-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathel.js.map
1 lines (1 loc) · 194 KB
/
el.js.map
1
{"version":3,"file":"el.js","sources":["node_modules/es-tostring/index.mjs","node_modules/es-is/src/function.coffee","node_modules/riot/lib/browser/common/global-variables.js","node_modules/riot/lib/browser/common/util/dom.js","node_modules/riot/lib/browser/tag/styleManager.js","node_modules/riot-tmpl/dist/es6.tmpl.js","node_modules/riot-observable/dist/es6.observable.js","node_modules/riot/lib/browser/common/util/check.js","node_modules/riot/lib/browser/common/util/misc.js","node_modules/riot/lib/settings.js","node_modules/riot/lib/browser/tag/setEventHandler.js","node_modules/riot/lib/browser/tag/update.js","node_modules/riot/lib/browser/tag/if.js","node_modules/riot/lib/browser/tag/ref.js","node_modules/riot/lib/browser/tag/each.js","node_modules/riot/lib/browser/tag/parse.js","node_modules/riot/lib/browser/tag/mkdom.js","node_modules/riot/lib/browser/tag/core.js","node_modules/riot/lib/browser/tag/tag.js","node_modules/riot/lib/browser/common/util/tags.js","node_modules/riot/lib/riot.js","node_modules/es-is/src/number.coffee","node_modules/es-is/src/object.coffee","node_modules/es-object-assign/src/index.coffee","node_modules/referential/src/ref.coffee","node_modules/referential/src/index.coffee","node_modules/broken/src/promise-inspection.coffee","node_modules/broken/src/utils.coffee","node_modules/broken/src/soon.coffee","node_modules/broken/src/promise.coffee","node_modules/broken/src/helpers.coffee","node_modules/broken/src/index.coffee","node_modules/es-raf/node_modules/es-now/lib/index.mjs","node_modules/es-raf/src/index.coffee","src/schedule.coffee","src/views/view.coffee","src/views/inputify.coffee","src/views/form.coffee","src/views/input.coffee","src/views/index.coffee","src/index.coffee"],"sourcesContent":["export default function(obj) {\n return Object.prototype.toString.call(obj)\n}\n","import toString from 'es-tostring'\n\n# Test if `value` is a function.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is a function, false otherwise\n# @api public\nexport default isFunction = (value) ->\n # Is alert\n return true if typeof window != 'undefined' and value == window.alert\n\n str = toString(value)\n\n str == '[object Function]' or\n str == '[object GeneratorFunction]' or\n str == '[object AsyncFunction]'\n","export\nconst\n // be aware, internal usage\n // ATTENTION: prefix the global dynamic variables with `__`\n // tags instances cache\n __TAGS_CACHE = [],\n // tags implementation cache\n __TAG_IMPL = {},\n YIELD_TAG = 'yield',\n\n /**\n * Const\n */\n GLOBAL_MIXIN = '__global_mixin',\n\n // riot specific prefixes or attributes\n ATTRS_PREFIX = 'riot-',\n\n // Riot Directives\n REF_DIRECTIVES = ['ref', 'data-ref'],\n IS_DIRECTIVE = 'data-is',\n CONDITIONAL_DIRECTIVE = 'if',\n LOOP_DIRECTIVE = 'each',\n LOOP_NO_REORDER_DIRECTIVE = 'no-reorder',\n SHOW_DIRECTIVE = 'show',\n HIDE_DIRECTIVE = 'hide',\n KEY_DIRECTIVE = 'key',\n RIOT_EVENTS_KEY = '__riot-events__',\n\n // for typeof == '' comparisons\n T_STRING = 'string',\n T_OBJECT = 'object',\n T_UNDEF = 'undefined',\n T_FUNCTION = 'function',\n\n XLINK_NS = 'http://www.w3.org/1999/xlink',\n SVG_NS = 'http://www.w3.org/2000/svg',\n XLINK_REGEX = /^xlink:(\\w+)/,\n\n WIN = typeof window === T_UNDEF ? undefined : window,\n\n // special native tags that cannot be treated like the others\n RE_SPECIAL_TAGS = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?|opt(?:ion|group))$/,\n RE_SPECIAL_TAGS_NO_OPTION = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?)$/,\n RE_EVENTS_PREFIX = /^on/,\n RE_HTML_ATTRS = /([-\\w]+) ?= ?(?:\"([^\"]*)|'([^']*)|({[^}]*}))/g,\n // some DOM attributes must be normalized\n CASE_SENSITIVE_ATTRIBUTES = {\n 'viewbox': 'viewBox',\n 'preserveaspectratio': 'preserveAspectRatio'\n },\n /**\n * Matches boolean HTML attributes in the riot tag definition.\n * With a long list like this, a regex is faster than `[].indexOf` in most browsers.\n * @const {RegExp}\n * @see [attributes.md](https://github.com/riot/compiler/blob/dev/doc/attributes.md)\n */\n RE_BOOL_ATTRS = /^(?:disabled|checked|readonly|required|allowfullscreen|auto(?:focus|play)|compact|controls|default|formnovalidate|hidden|ismap|itemscope|loop|multiple|muted|no(?:resize|shade|validate|wrap)?|open|reversed|seamless|selected|sortable|truespeed|typemustmatch)$/,\n // version# for IE 8-11, 0 for others\n IE_VERSION = (WIN && WIN.document || {}).documentMode | 0\n","import { RE_HTML_ATTRS, XLINK_NS, XLINK_REGEX, SVG_NS } from './../global-variables'\n\n/**\n * Shorter and fast way to select multiple nodes in the DOM\n * @param { String } selector - DOM selector\n * @param { Object } ctx - DOM node where the targets of our search will is located\n * @returns { Object } dom nodes found\n */\nexport function $$(selector, ctx) {\n return [].slice.call((ctx || document).querySelectorAll(selector))\n}\n\n/**\n * Shorter and fast way to select a single node in the DOM\n * @param { String } selector - unique dom selector\n * @param { Object } ctx - DOM node where the target of our search will is located\n * @returns { Object } dom node found\n */\nexport function $(selector, ctx) {\n return (ctx || document).querySelector(selector)\n}\n\n/**\n * Create a document fragment\n * @returns { Object } document fragment\n */\nexport function createFrag() {\n return document.createDocumentFragment()\n}\n\n/**\n * Create a document text node\n * @returns { Object } create a text node to use as placeholder\n */\nexport function createDOMPlaceholder() {\n return document.createTextNode('')\n}\n\n/**\n * Check if a DOM node is an svg tag or part of an svg\n * @param { HTMLElement } el - node we want to test\n * @returns {Boolean} true if it's an svg node\n */\nexport function isSvg(el) {\n const owner = el.ownerSVGElement\n return !!owner || owner === null\n}\n\n/**\n * Create a generic DOM node\n * @param { String } name - name of the DOM node we want to create\n * @returns { Object } DOM node just created\n */\nexport function mkEl(name) {\n return name === 'svg' ? document.createElementNS(SVG_NS, name) : document.createElement(name)\n}\n\n/**\n * Set the inner html of any DOM node SVGs included\n * @param { Object } container - DOM node where we'll inject new html\n * @param { String } html - html to inject\n * @param { Boolean } isSvg - svg tags should be treated a bit differently\n */\n/* istanbul ignore next */\nexport function setInnerHTML(container, html, isSvg) {\n // innerHTML is not supported on svg tags so we neet to treat them differently\n if (isSvg) {\n const node = container.ownerDocument.importNode(\n new DOMParser()\n .parseFromString(`<svg xmlns=\"${ SVG_NS }\">${ html }</svg>`, 'application/xml')\n .documentElement,\n true\n )\n\n container.appendChild(node)\n } else {\n container.innerHTML = html\n }\n}\n\n/**\n * Toggle the visibility of any DOM node\n * @param { Object } dom - DOM node we want to hide\n * @param { Boolean } show - do we want to show it?\n */\n\nexport function toggleVisibility(dom, show) {\n dom.style.display = show ? '' : 'none'\n dom.hidden = show ? false : true\n}\n\n/**\n * Remove any DOM attribute from a node\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to remove\n */\nexport function remAttr(dom, name) {\n dom.removeAttribute(name)\n}\n\n/**\n * Convert a style object to a string\n * @param { Object } style - style object we need to parse\n * @returns { String } resulting css string\n * @example\n * styleObjectToString({ color: 'red', height: '10px'}) // => 'color: red; height: 10px'\n */\nexport function styleObjectToString(style) {\n return Object.keys(style).reduce((acc, prop) => {\n return `${acc} ${prop}: ${style[prop]};`\n }, '')\n}\n\n/**\n * Get the value of any DOM attribute on a node\n * @param { Object } dom - DOM node we want to parse\n * @param { String } name - name of the attribute we want to get\n * @returns { String | undefined } name of the node attribute whether it exists\n */\nexport function getAttr(dom, name) {\n return dom.getAttribute(name)\n}\n\n/**\n * Set any DOM attribute\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to set\n * @param { String } val - value of the property we want to set\n */\nexport function setAttr(dom, name, val) {\n const xlink = XLINK_REGEX.exec(name)\n if (xlink && xlink[1])\n dom.setAttributeNS(XLINK_NS, xlink[1], val)\n else\n dom.setAttribute(name, val)\n}\n\n/**\n * Insert safely a tag to fix #1962 #1649\n * @param { HTMLElement } root - children container\n * @param { HTMLElement } curr - node to insert\n * @param { HTMLElement } next - node that should preceed the current node inserted\n */\nexport function safeInsert(root, curr, next) {\n root.insertBefore(curr, next.parentNode && next)\n}\n\n/**\n * Minimize risk: only zero or one _space_ between attr & value\n * @param { String } html - html string we want to parse\n * @param { Function } fn - callback function to apply on any attribute found\n */\nexport function walkAttrs(html, fn) {\n if (!html) return\n let m\n while (m = RE_HTML_ATTRS.exec(html))\n fn(m[1].toLowerCase(), m[2] || m[3] || m[4])\n}\n\n/**\n * Walk down recursively all the children tags starting dom node\n * @param { Object } dom - starting node where we will start the recursion\n * @param { Function } fn - callback to transform the child node just found\n * @param { Object } context - fn can optionally return an object, which is passed to children\n */\nexport function walkNodes(dom, fn, context) {\n if (dom) {\n const res = fn(dom, context)\n let next\n // stop the recursion\n if (res === false) return\n\n dom = dom.firstChild\n\n while (dom) {\n next = dom.nextSibling\n walkNodes(dom, fn, res)\n dom = next\n }\n }\n}","import { $, mkEl, setAttr } from './../common/util/dom'\nimport { WIN } from './../common/global-variables'\n\nlet styleNode\n// Create cache and shortcut to the correct property\nlet cssTextProp\nlet byName = {}\nlet remainder = []\nlet needsInject = false\n\n// skip the following code on the server\nif (WIN) {\n styleNode = ((() => {\n // create a new style element with the correct type\n const newNode = mkEl('style')\n // replace any user node or insert the new one into the head\n const userNode = $('style[type=riot]')\n\n setAttr(newNode, 'type', 'text/css')\n /* istanbul ignore next */\n if (userNode) {\n if (userNode.id) newNode.id = userNode.id\n userNode.parentNode.replaceChild(newNode, userNode)\n } else document.head.appendChild(newNode)\n\n return newNode\n }))()\n cssTextProp = styleNode.styleSheet\n}\n\n/**\n * Object that will be used to inject and manage the css of every tag instance\n */\nexport default {\n styleNode,\n /**\n * Save a tag style to be later injected into DOM\n * @param { String } css - css string\n * @param { String } name - if it's passed we will map the css to a tagname\n */\n add(css, name) {\n if (name) byName[name] = css\n else remainder.push(css)\n needsInject = true\n },\n /**\n * Inject all previously saved tag styles into DOM\n * innerHTML seems slow: http://jsperf.com/riot-insert-style\n */\n inject() {\n if (!WIN || !needsInject) return\n needsInject = false\n const style = Object.keys(byName)\n .map(k => byName[k])\n .concat(remainder).join('\\n')\n /* istanbul ignore next */\n if (cssTextProp) cssTextProp.cssText = style\n else styleNode.innerHTML = style\n }\n}\n","\n/**\n * The riot template engine\n * @version v3.0.8\n */\n\nvar skipRegex = (function () { //eslint-disable-line no-unused-vars\n\n var beforeReChars = '[{(,;:?=|&!^~>%*/'\n\n var beforeReWords = [\n 'case',\n 'default',\n 'do',\n 'else',\n 'in',\n 'instanceof',\n 'prefix',\n 'return',\n 'typeof',\n 'void',\n 'yield'\n ]\n\n var wordsLastChar = beforeReWords.reduce(function (s, w) {\n return s + w.slice(-1)\n }, '')\n\n var RE_REGEX = /^\\/(?=[^*>/])[^[/\\\\]*(?:(?:\\\\.|\\[(?:\\\\.|[^\\]\\\\]*)*\\])[^[\\\\/]*)*?\\/[gimuy]*/\n var RE_VN_CHAR = /[$\\w]/\n\n function prev (code, pos) {\n while (--pos >= 0 && /\\s/.test(code[pos]));\n return pos\n }\n\n function _skipRegex (code, start) {\n\n var re = /.*/g\n var pos = re.lastIndex = start++\n var match = re.exec(code)[0].match(RE_REGEX)\n\n if (match) {\n var next = pos + match[0].length\n\n pos = prev(code, pos)\n var c = code[pos]\n\n if (pos < 0 || ~beforeReChars.indexOf(c)) {\n return next\n }\n\n if (c === '.') {\n\n if (code[pos - 1] === '.') {\n start = next\n }\n\n } else if (c === '+' || c === '-') {\n\n if (code[--pos] !== c ||\n (pos = prev(code, pos)) < 0 ||\n !RE_VN_CHAR.test(code[pos])) {\n start = next\n }\n\n } else if (~wordsLastChar.indexOf(c)) {\n\n var end = pos + 1\n\n while (--pos >= 0 && RE_VN_CHAR.test(code[pos]));\n if (~beforeReWords.indexOf(code.slice(pos + 1, end))) {\n start = next\n }\n }\n }\n\n return start\n }\n\n return _skipRegex\n\n})()\n\n/**\n * riot.util.brackets\n *\n * - `brackets ` - Returns a string or regex based on its parameter\n * - `brackets.set` - Change the current riot brackets\n *\n * @module\n */\n\n/* global riot */\n\nexport\nvar brackets = (function (UNDEF) {\n\n var\n REGLOB = 'g',\n\n R_MLCOMMS = /\\/\\*[^*]*\\*+(?:[^*\\/][^*]*\\*+)*\\//g,\n\n R_STRINGS = /\"[^\"\\\\]*(?:\\\\[\\S\\s][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[\\S\\s][^'\\\\]*)*'|`[^`\\\\]*(?:\\\\[\\S\\s][^`\\\\]*)*`/g,\n\n S_QBLOCKS = R_STRINGS.source + '|' +\n /(?:\\breturn\\s+|(?:[$\\w\\)\\]]|\\+\\+|--)\\s*(\\/)(?![*\\/]))/.source + '|' +\n /\\/(?=[^*\\/])[^[\\/\\\\]*(?:(?:\\[(?:\\\\.|[^\\]\\\\]*)*\\]|\\\\.)[^[\\/\\\\]*)*?([^<]\\/)[gim]*/.source,\n\n UNSUPPORTED = RegExp('[\\\\' + 'x00-\\\\x1F<>a-zA-Z0-9\\'\",;\\\\\\\\]'),\n\n NEED_ESCAPE = /(?=[[\\]()*+?.^$|])/g,\n\n S_QBLOCK2 = R_STRINGS.source + '|' + /(\\/)(?![*\\/])/.source,\n\n FINDBRACES = {\n '(': RegExp('([()])|' + S_QBLOCK2, REGLOB),\n '[': RegExp('([[\\\\]])|' + S_QBLOCK2, REGLOB),\n '{': RegExp('([{}])|' + S_QBLOCK2, REGLOB)\n },\n\n DEFAULT = '{ }'\n\n var _pairs = [\n '{', '}',\n '{', '}',\n /{[^}]*}/,\n /\\\\([{}])/g,\n /\\\\({)|{/g,\n RegExp('\\\\\\\\(})|([[({])|(})|' + S_QBLOCK2, REGLOB),\n DEFAULT,\n /^\\s*{\\^?\\s*([$\\w]+)(?:\\s*,\\s*(\\S+))?\\s+in\\s+(\\S.*)\\s*}/,\n /(^|[^\\\\]){=[\\S\\s]*?}/\n ]\n\n var\n cachedBrackets = UNDEF,\n _regex,\n _cache = [],\n _settings\n\n function _loopback (re) { return re }\n\n function _rewrite (re, bp) {\n if (!bp) bp = _cache\n return new RegExp(\n re.source.replace(/{/g, bp[2]).replace(/}/g, bp[3]), re.global ? REGLOB : ''\n )\n }\n\n function _create (pair) {\n if (pair === DEFAULT) return _pairs\n\n var arr = pair.split(' ')\n\n if (arr.length !== 2 || UNSUPPORTED.test(pair)) {\n throw new Error('Unsupported brackets \"' + pair + '\"')\n }\n arr = arr.concat(pair.replace(NEED_ESCAPE, '\\\\').split(' '))\n\n arr[4] = _rewrite(arr[1].length > 1 ? /{[\\S\\s]*?}/ : _pairs[4], arr)\n arr[5] = _rewrite(pair.length > 3 ? /\\\\({|})/g : _pairs[5], arr)\n arr[6] = _rewrite(_pairs[6], arr)\n arr[7] = RegExp('\\\\\\\\(' + arr[3] + ')|([[({])|(' + arr[3] + ')|' + S_QBLOCK2, REGLOB)\n arr[8] = pair\n return arr\n }\n\n function _brackets (reOrIdx) {\n return reOrIdx instanceof RegExp ? _regex(reOrIdx) : _cache[reOrIdx]\n }\n\n _brackets.split = function split (str, tmpl, _bp) {\n // istanbul ignore next: _bp is for the compiler\n if (!_bp) _bp = _cache\n\n var\n parts = [],\n match,\n isexpr,\n start,\n pos,\n re = _bp[6]\n\n var qblocks = []\n var prevStr = ''\n var mark, lastIndex\n\n isexpr = start = re.lastIndex = 0\n\n while ((match = re.exec(str))) {\n\n lastIndex = re.lastIndex\n pos = match.index\n\n if (isexpr) {\n\n if (match[2]) {\n\n var ch = match[2]\n var rech = FINDBRACES[ch]\n var ix = 1\n\n rech.lastIndex = lastIndex\n while ((match = rech.exec(str))) {\n if (match[1]) {\n if (match[1] === ch) ++ix\n else if (!--ix) break\n } else {\n rech.lastIndex = pushQBlock(match.index, rech.lastIndex, match[2])\n }\n }\n re.lastIndex = ix ? str.length : rech.lastIndex\n continue\n }\n\n if (!match[3]) {\n re.lastIndex = pushQBlock(pos, lastIndex, match[4])\n continue\n }\n }\n\n if (!match[1]) {\n unescapeStr(str.slice(start, pos))\n start = re.lastIndex\n re = _bp[6 + (isexpr ^= 1)]\n re.lastIndex = start\n }\n }\n\n if (str && start < str.length) {\n unescapeStr(str.slice(start))\n }\n\n parts.qblocks = qblocks\n\n return parts\n\n function unescapeStr (s) {\n if (prevStr) {\n s = prevStr + s\n prevStr = ''\n }\n if (tmpl || isexpr) {\n parts.push(s && s.replace(_bp[5], '$1'))\n } else {\n parts.push(s)\n }\n }\n\n function pushQBlock(_pos, _lastIndex, slash) { //eslint-disable-line\n if (slash) {\n _lastIndex = skipRegex(str, _pos)\n }\n\n if (tmpl && _lastIndex > _pos + 2) {\n mark = '\\u2057' + qblocks.length + '~'\n qblocks.push(str.slice(_pos, _lastIndex))\n prevStr += str.slice(start, _pos) + mark\n start = _lastIndex\n }\n return _lastIndex\n }\n }\n\n _brackets.hasExpr = function hasExpr (str) {\n return _cache[4].test(str)\n }\n\n _brackets.loopKeys = function loopKeys (expr) {\n var m = expr.match(_cache[9])\n\n return m\n ? { key: m[1], pos: m[2], val: _cache[0] + m[3].trim() + _cache[1] }\n : { val: expr.trim() }\n }\n\n _brackets.array = function array (pair) {\n return pair ? _create(pair) : _cache\n }\n\n function _reset (pair) {\n if ((pair || (pair = DEFAULT)) !== _cache[8]) {\n _cache = _create(pair)\n _regex = pair === DEFAULT ? _loopback : _rewrite\n _cache[9] = _regex(_pairs[9])\n }\n cachedBrackets = pair\n }\n\n function _setSettings (o) {\n var b\n\n o = o || {}\n b = o.brackets\n Object.defineProperty(o, 'brackets', {\n set: _reset,\n get: function () { return cachedBrackets },\n enumerable: true\n })\n _settings = o\n _reset(b)\n }\n\n Object.defineProperty(_brackets, 'settings', {\n set: _setSettings,\n get: function () { return _settings }\n })\n\n /* istanbul ignore next: in the browser riot is always in the scope */\n _brackets.settings = typeof riot !== 'undefined' && riot.settings || {}\n _brackets.set = _reset\n _brackets.skipRegex = skipRegex\n\n _brackets.R_STRINGS = R_STRINGS\n _brackets.R_MLCOMMS = R_MLCOMMS\n _brackets.S_QBLOCKS = S_QBLOCKS\n _brackets.S_QBLOCK2 = S_QBLOCK2\n\n return _brackets\n\n})()\n\n/**\n * @module tmpl\n *\n * tmpl - Root function, returns the template value, render with data\n * tmpl.hasExpr - Test the existence of a expression inside a string\n * tmpl.loopKeys - Get the keys for an 'each' loop (used by `_each`)\n */\n\nexport\nvar tmpl = (function () {\n\n var _cache = {}\n\n function _tmpl (str, data) {\n if (!str) return str\n\n return (_cache[str] || (_cache[str] = _create(str))).call(\n data, _logErr.bind({\n data: data,\n tmpl: str\n })\n )\n }\n\n _tmpl.hasExpr = brackets.hasExpr\n\n _tmpl.loopKeys = brackets.loopKeys\n\n // istanbul ignore next\n _tmpl.clearCache = function () { _cache = {} }\n\n _tmpl.errorHandler = null\n\n function _logErr (err, ctx) {\n\n err.riotData = {\n tagName: ctx && ctx.__ && ctx.__.tagName,\n _riot_id: ctx && ctx._riot_id //eslint-disable-line camelcase\n }\n\n if (_tmpl.errorHandler) _tmpl.errorHandler(err)\n else if (\n typeof console !== 'undefined' &&\n typeof console.error === 'function'\n ) {\n console.error(err.message)\n console.log('<%s> %s', err.riotData.tagName || 'Unknown tag', this.tmpl) // eslint-disable-line\n console.log(this.data) // eslint-disable-line\n }\n }\n\n function _create (str) {\n var expr = _getTmpl(str)\n\n if (expr.slice(0, 11) !== 'try{return ') expr = 'return ' + expr\n\n return new Function('E', expr + ';') // eslint-disable-line no-new-func\n }\n\n var RE_DQUOTE = /\\u2057/g\n var RE_QBMARK = /\\u2057(\\d+)~/g\n\n function _getTmpl (str) {\n var parts = brackets.split(str.replace(RE_DQUOTE, '\"'), 1)\n var qstr = parts.qblocks\n var expr\n\n if (parts.length > 2 || parts[0]) {\n var i, j, list = []\n\n for (i = j = 0; i < parts.length; ++i) {\n\n expr = parts[i]\n\n if (expr && (expr = i & 1\n\n ? _parseExpr(expr, 1, qstr)\n\n : '\"' + expr\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\r\\n?|\\n/g, '\\\\n')\n .replace(/\"/g, '\\\\\"') +\n '\"'\n\n )) list[j++] = expr\n\n }\n\n expr = j < 2 ? list[0]\n : '[' + list.join(',') + '].join(\"\")'\n\n } else {\n\n expr = _parseExpr(parts[1], 0, qstr)\n }\n\n if (qstr.length) {\n expr = expr.replace(RE_QBMARK, function (_, pos) {\n return qstr[pos]\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n })\n }\n return expr\n }\n\n var RE_CSNAME = /^(?:(-?[_A-Za-z\\xA0-\\xFF][-\\w\\xA0-\\xFF]*)|\\u2057(\\d+)~):/\n var\n RE_BREND = {\n '(': /[()]/g,\n '[': /[[\\]]/g,\n '{': /[{}]/g\n }\n\n function _parseExpr (expr, asText, qstr) {\n\n expr = expr\n .replace(/\\s+/g, ' ').trim()\n .replace(/\\ ?([[\\({},?\\.:])\\ ?/g, '$1')\n\n if (expr) {\n var\n list = [],\n cnt = 0,\n match\n\n while (expr &&\n (match = expr.match(RE_CSNAME)) &&\n !match.index\n ) {\n var\n key,\n jsb,\n re = /,|([[{(])|$/g\n\n expr = RegExp.rightContext\n key = match[2] ? qstr[match[2]].slice(1, -1).trim().replace(/\\s+/g, ' ') : match[1]\n\n while (jsb = (match = re.exec(expr))[1]) skipBraces(jsb, re)\n\n jsb = expr.slice(0, match.index)\n expr = RegExp.rightContext\n\n list[cnt++] = _wrapExpr(jsb, 1, key)\n }\n\n expr = !cnt ? _wrapExpr(expr, asText)\n : cnt > 1 ? '[' + list.join(',') + '].join(\" \").trim()' : list[0]\n }\n return expr\n\n function skipBraces (ch, re) {\n var\n mm,\n lv = 1,\n ir = RE_BREND[ch]\n\n ir.lastIndex = re.lastIndex\n while (mm = ir.exec(expr)) {\n if (mm[0] === ch) ++lv\n else if (!--lv) break\n }\n re.lastIndex = lv ? expr.length : ir.lastIndex\n }\n }\n\n // istanbul ignore next: not both\n var // eslint-disable-next-line max-len\n JS_CONTEXT = '\"in this?this:' + (typeof window !== 'object' ? 'global' : 'window') + ').',\n JS_VARNAME = /[,{][\\$\\w]+(?=:)|(^ *|[^$\\w\\.{])(?!(?:typeof|true|false|null|undefined|in|instanceof|is(?:Finite|NaN)|void|NaN|new|Date|RegExp|Math)(?![$\\w]))([$_A-Za-z][$\\w]*)/g,\n JS_NOPROPS = /^(?=(\\.[$\\w]+))\\1(?:[^.[(]|$)/\n\n function _wrapExpr (expr, asText, key) {\n var tb\n\n expr = expr.replace(JS_VARNAME, function (match, p, mvar, pos, s) {\n if (mvar) {\n pos = tb ? 0 : pos + match.length\n\n if (mvar !== 'this' && mvar !== 'global' && mvar !== 'window') {\n match = p + '(\"' + mvar + JS_CONTEXT + mvar\n if (pos) tb = (s = s[pos]) === '.' || s === '(' || s === '['\n } else if (pos) {\n tb = !JS_NOPROPS.test(s.slice(pos))\n }\n }\n return match\n })\n\n if (tb) {\n expr = 'try{return ' + expr + '}catch(e){E(e,this)}'\n }\n\n if (key) {\n\n expr = (tb\n ? 'function(){' + expr + '}.call(this)' : '(' + expr + ')'\n ) + '?\"' + key + '\":\"\"'\n\n } else if (asText) {\n\n expr = 'function(v){' + (tb\n ? expr.replace('return ', 'v=') : 'v=(' + expr + ')'\n ) + ';return v||v===0?v:\"\"}.call(this)'\n }\n\n return expr\n }\n\n _tmpl.version = brackets.version = 'v3.0.8'\n\n return _tmpl\n\n})()\n\n","var observable = function(el) {\n\n /**\n * Extend the original object or create a new empty one\n * @type { Object }\n */\n\n el = el || {}\n\n /**\n * Private variables\n */\n var callbacks = {},\n slice = Array.prototype.slice\n\n /**\n * Public Api\n */\n\n // extend the el object adding the observable methods\n Object.defineProperties(el, {\n /**\n * Listen to the given `event` ands\n * execute the `callback` each time an event is triggered.\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n on: {\n value: function(event, fn) {\n if (typeof fn == 'function')\n (callbacks[event] = callbacks[event] || []).push(fn)\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Removes the given `event` listeners\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n off: {\n value: function(event, fn) {\n if (event == '*' && !fn) callbacks = {}\n else {\n if (fn) {\n var arr = callbacks[event]\n for (var i = 0, cb; cb = arr && arr[i]; ++i) {\n if (cb == fn) arr.splice(i--, 1)\n }\n } else delete callbacks[event]\n }\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Listen to the given `event` and\n * execute the `callback` at most once\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n one: {\n value: function(event, fn) {\n function on() {\n el.off(event, on)\n fn.apply(el, arguments)\n }\n return el.on(event, on)\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Execute all callback functions that listen to\n * the given `event`\n * @param { String } event - event id\n * @returns { Object } el\n */\n trigger: {\n value: function(event) {\n\n // getting the arguments\n var arglen = arguments.length - 1,\n args = new Array(arglen),\n fns,\n fn,\n i\n\n for (i = 0; i < arglen; i++) {\n args[i] = arguments[i + 1] // skip first argument\n }\n\n fns = slice.call(callbacks[event] || [], 0)\n\n for (i = 0; fn = fns[i]; ++i) {\n fn.apply(el, args)\n }\n\n if (callbacks['*'] && event != '*')\n el.trigger.apply(el, ['*', event].concat(args))\n\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n }\n })\n\n return el\n\n}\nexport default observable\n","import {\n T_STRING,\n T_OBJECT,\n T_FUNCTION,\n T_UNDEF,\n RE_BOOL_ATTRS\n} from './../global-variables'\n\nimport { getPropDescriptor } from './misc'\n\n/**\n * Check if the passed argument is a boolean attribute\n * @param { String } value -\n * @returns { Boolean } -\n */\nexport function isBoolAttr(value) {\n return RE_BOOL_ATTRS.test(value)\n}\n\n/**\n * Check if passed argument is a function\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport function isFunction(value) {\n return typeof value === T_FUNCTION\n}\n\n/**\n * Check if passed argument is an object, exclude null\n * NOTE: use isObject(x) && !isArray(x) to excludes arrays.\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport function isObject(value) {\n return value && typeof value === T_OBJECT // typeof null is 'object'\n}\n\n/**\n * Check if passed argument is undefined\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport function isUndefined(value) {\n return typeof value === T_UNDEF\n}\n\n/**\n * Check if passed argument is a string\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport function isString(value) {\n return typeof value === T_STRING\n}\n\n/**\n * Check if passed argument is empty. Different from falsy, because we dont consider 0 or false to be blank\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport function isBlank(value) {\n return isNil(value) || value === ''\n}\n\n/**\n * Check against the null and undefined values\n * @param { * } value -\n * @returns {Boolean} -\n */\nexport function isNil(value) {\n return isUndefined(value) || value === null\n}\n\n/**\n * Check if passed argument is a kind of array\n * @param { * } value -\n * @returns { Boolean } -\n */\nexport function isArray(value) {\n return Array.isArray(value) || value instanceof Array\n}\n\n/**\n * Check whether object's property could be overridden\n * @param { Object } obj - source object\n * @param { String } key - object property\n * @returns { Boolean } true if writable\n */\nexport function isWritable(obj, key) {\n const descriptor = getPropDescriptor(obj, key)\n return isUndefined(obj[key]) || descriptor && descriptor.writable\n}\n","import { isWritable } from './check'\n\n/**\n * Specialized function for looping an array-like collection with `each={}`\n * @param { Array } list - collection of items\n * @param {Function} fn - callback function\n * @returns { Array } the array looped\n */\nexport function each(list, fn) {\n const len = list ? list.length : 0\n let i = 0\n for (; i < len; i++) fn(list[i], i)\n return list\n}\n\n/**\n * Check whether an array contains an item\n * @param { Array } array - target array\n * @param { * } item - item to test\n * @returns { Boolean } -\n */\nexport function contains(array, item) {\n return array.indexOf(item) !== -1\n}\n\n/**\n * Convert a string containing dashes to camel case\n * @param { String } str - input string\n * @returns { String } my-string -> myString\n */\nexport function toCamel(str) {\n return str.replace(/-(\\w)/g, (_, c) => c.toUpperCase())\n}\n\n/**\n * Faster String startsWith alternative\n * @param { String } str - source string\n * @param { String } value - test string\n * @returns { Boolean } -\n */\nexport function startsWith(str, value) {\n return str.slice(0, value.length) === value\n}\n\n/**\n * Helper function to set an immutable property\n * @param { Object } el - object where the new property will be set\n * @param { String } key - object key where the new property will be stored\n * @param { * } value - value of the new property\n * @param { Object } options - set the propery overriding the default options\n * @returns { Object } - the initial object\n */\nexport function defineProperty(el, key, value, options) {\n Object.defineProperty(el, key, extend({\n value,\n enumerable: false,\n writable: false,\n configurable: true\n }, options))\n return el\n}\n\n/**\n * Function returning always a unique identifier\n * @returns { Number } - number from 0...n\n */\nexport const uid = (function() {\n let i = -1\n return () => ++i\n})()\n\n/**\n * Short alias for Object.getOwnPropertyDescriptor\n */\nexport const getPropDescriptor = (o, k) => Object.getOwnPropertyDescriptor(o, k)\n\n/**\n * Extend any object with other properties\n * @param { Object } src - source object\n * @returns { Object } the resulting extended object\n *\n * var obj = { foo: 'baz' }\n * extend(obj, {bar: 'bar', foo: 'bar'})\n * console.log(obj) => {bar: 'bar', foo: 'bar'}\n *\n */\nexport function extend(src) {\n let obj\n let i = 1\n const args = arguments\n const l = args.length\n\n for (; i < l; i++) {\n if (obj = args[i]) {\n for (const key in obj) {\n // check if this property of the source object could be overridden\n if (isWritable(src, key))\n src[key] = obj[key]\n }\n }\n }\n return src\n}","import { extend }from './browser/common/util/misc'\nimport { brackets } from 'riot-tmpl'\n\nexport default extend(Object.create(brackets.settings), {\n skipAnonymousTags: true,\n // handle the auto updates on any DOM event\n autoUpdate: true\n})","import { isWritable } from './../common/util/check'\nimport { contains } from './../common/util/misc'\nimport { RE_EVENTS_PREFIX, RIOT_EVENTS_KEY } from '../common/global-variables'\nimport { getImmediateCustomParentTag } from './../common/util/tags'\nimport settings from '../../settings'\n\n/**\n * Trigger DOM events\n * @param { HTMLElement } dom - dom element target of the event\n * @param { Function } handler - user function\n * @param { Object } e - event object\n */\nfunction handleEvent(dom, handler, e) {\n let ptag = this.__.parent\n let item = this.__.item\n\n if (!item)\n while (ptag && !item) {\n item = ptag.__.item\n ptag = ptag.__.parent\n }\n\n // override the event properties\n /* istanbul ignore next */\n if (isWritable(e, 'currentTarget')) e.currentTarget = dom\n /* istanbul ignore next */\n if (isWritable(e, 'target')) e.target = e.srcElement\n /* istanbul ignore next */\n if (isWritable(e, 'which')) e.which = e.charCode || e.keyCode\n\n e.item = item\n\n handler.call(this, e)\n\n // avoid auto updates\n if (!settings.autoUpdate) return\n\n if (!e.preventUpdate) {\n const p = getImmediateCustomParentTag(this)\n // fixes #2083\n if (p.isMounted) p.update()\n }\n}\n\n/**\n * Attach an event to a DOM node\n * @param { String } name - event name\n * @param { Function } handler - event callback\n * @param { Object } dom - dom node\n * @param { Tag } tag - tag instance\n */\nexport default function setEventHandler(name, handler, dom, tag) {\n let eventName\n const cb = handleEvent.bind(tag, dom, handler)\n\n // avoid to bind twice the same event\n // possible fix for #2332\n dom[name] = null\n\n // normalize event name\n eventName = name.replace(RE_EVENTS_PREFIX, '')\n\n // cache the listener into the listeners array\n if (!contains(tag.__.listeners, dom)) tag.__.listeners.push(dom)\n if (!dom[RIOT_EVENTS_KEY]) dom[RIOT_EVENTS_KEY] = {}\n if (dom[RIOT_EVENTS_KEY][name]) dom.removeEventListener(eventName, dom[RIOT_EVENTS_KEY][name])\n\n dom[RIOT_EVENTS_KEY][name] = cb\n dom.addEventListener(eventName, cb, false)\n}\n","import { tmpl } from 'riot-tmpl'\nimport { each, contains } from './../common/util/misc'\nimport { isFunction, isBlank, isObject, isString } from './../common/util/check'\nimport {\n remAttr,\n getAttr,\n setAttr,\n createDOMPlaceholder,\n toggleVisibility,\n styleObjectToString\n} from './../common/util/dom'\nimport setEventHandler from './setEventHandler'\nimport {\n initChildTag,\n arrayishRemove,\n inheritParentProps,\n makeReplaceVirtual\n} from './../common/util/tags'\n\nimport {\n __TAG_IMPL,\n ATTRS_PREFIX,\n SHOW_DIRECTIVE,\n HIDE_DIRECTIVE,\n IE_VERSION,\n CASE_SENSITIVE_ATTRIBUTES\n} from './../common/global-variables'\n\n/**\n * Update dynamically created data-is tags with changing expressions\n * @param { Object } expr - expression tag and expression info\n * @param { Tag } parent - parent for tag creation\n * @param { String } tagName - tag implementation we want to use\n */\nexport function updateDataIs(expr, parent, tagName) {\n let tag = expr.tag || expr.dom._tag\n let ref\n\n const { head } = tag ? tag.__ : {}\n const isVirtual = expr.dom.tagName === 'VIRTUAL'\n\n if (tag && expr.tagName === tagName) {\n tag.update()\n return\n }\n\n // sync _parent to accommodate changing tagnames\n if (tag) {\n // need placeholder before unmount\n if(isVirtual) {\n ref = createDOMPlaceholder()\n head.parentNode.insertBefore(ref, head)\n }\n\n tag.unmount(true)\n }\n\n // unable to get the tag name\n if (!isString(tagName)) return\n\n expr.impl = __TAG_IMPL[tagName]\n\n // unknown implementation\n if (!expr.impl) return\n\n expr.tag = tag = initChildTag(\n expr.impl, {\n root: expr.dom,\n parent,\n tagName\n },\n expr.dom.innerHTML,\n parent\n )\n\n each(expr.attrs, a => setAttr(tag.root, a.name, a.value))\n expr.tagName = tagName\n tag.mount()\n\n // root exist first time, after use placeholder\n if (isVirtual) makeReplaceVirtual(tag, ref || tag.root)\n\n // parent is the placeholder tag, not the dynamic tag so clean up\n parent.__.onUnmount = () => {\n const delName = tag.opts.dataIs\n arrayishRemove(tag.parent.tags, delName, tag)\n arrayishRemove(tag.__.parent.tags, delName, tag)\n tag.unmount()\n }\n}\n\n/**\n * Nomalize any attribute removing the \"riot-\" prefix\n * @param { String } attrName - original attribute name\n * @returns { String } valid html attribute name\n */\nexport function normalizeAttrName(attrName) {\n if (!attrName) return null\n attrName = attrName.replace(ATTRS_PREFIX, '')\n if (CASE_SENSITIVE_ATTRIBUTES[attrName]) attrName = CASE_SENSITIVE_ATTRIBUTES[attrName]\n return attrName\n}\n\n/**\n * Update on single tag expression\n * @this Tag\n * @param { Object } expr - expression logic\n * @returns { undefined }\n */\nexport function updateExpression(expr) {\n if (this.root && getAttr(this.root,'virtualized')) return\n\n const dom = expr.dom\n // remove the riot- prefix\n const attrName = normalizeAttrName(expr.attr)\n const isToggle = contains([SHOW_DIRECTIVE, HIDE_DIRECTIVE], attrName)\n const isVirtual = expr.root && expr.root.tagName === 'VIRTUAL'\n const { isAnonymous } = this.__\n const parent = dom && (expr.parent || dom.parentNode)\n // detect the style attributes\n const isStyleAttr = attrName === 'style'\n const isClassAttr = attrName === 'class'\n\n let value\n\n // if it's a tag we could totally skip the rest\n if (expr._riot_id) {\n if (expr.__.wasCreated) {\n expr.update()\n // if it hasn't been mounted yet, do that now.\n } else {\n expr.mount()\n if (isVirtual) {\n makeReplaceVirtual(expr, expr.root)\n }\n }\n return\n }\n\n // if this expression has the update method it means it can handle the DOM changes by itself\n if (expr.update) return expr.update()\n\n const context = isToggle && !isAnonymous ? inheritParentProps.call(this) : this\n\n // ...it seems to be a simple expression so we try to calculate its value\n value = tmpl(expr.expr, context)\n\n const hasValue = !isBlank(value)\n const isObj = isObject(value)\n\n // convert the style/class objects to strings\n if (isObj) {\n if (isClassAttr) {\n value = tmpl(JSON.stringify(value), this)\n } else if (isStyleAttr) {\n value = styleObjectToString(value)\n }\n }\n\n // remove original attribute\n if (expr.attr && (!expr.wasParsedOnce || !hasValue || value === false)) {\n // remove either riot-* attributes or just the attribute name\n remAttr(dom, getAttr(dom, expr.attr) ? expr.attr : attrName)\n }\n\n // for the boolean attributes we don't need the value\n // we can convert it to checked=true to checked=checked\n if (expr.bool) value = value ? attrName : false\n if (expr.isRtag) return updateDataIs(expr, this, value)\n if (expr.wasParsedOnce && expr.value === value) return\n\n // update the expression value\n expr.value = value\n expr.wasParsedOnce = true\n\n // if the value is an object (and it's not a style or class attribute) we can not do much more with it\n if (isObj && !isClassAttr && !isStyleAttr && !isToggle) return\n // avoid to render undefined/null values\n if (!hasValue) value = ''\n\n // textarea and text nodes have no attribute name\n if (!attrName) {\n // about #815 w/o replace: the browser converts the value to a string,\n // the comparison by \"==\" does too, but not in the server\n value += ''\n // test for parent avoids error with invalid assignment to nodeValue\n if (parent) {\n // cache the parent node because somehow it will become null on IE\n // on the next iteration\n expr.parent = parent\n if (parent.tagName === 'TEXTAREA') {\n parent.value = value // #1113\n if (!IE_VERSION) dom.nodeValue = value // #1625 IE throws here, nodeValue\n } // will be available on 'updated'\n else dom.nodeValue = value\n }\n return\n }\n\n\n // event handler\n if (isFunction(value)) {\n setEventHandler(attrName, value, dom, this)\n // show / hide\n } else if (isToggle) {\n toggleVisibility(dom, attrName === HIDE_DIRECTIVE ? !value : value)\n // handle attributes\n } else {\n if (expr.bool) {\n dom[attrName] = value\n }\n\n if (attrName === 'value' && dom.value !== value) {\n dom.value = value\n } else if (hasValue && value !== false) {\n setAttr(dom, attrName, value)\n }\n\n // make sure that in case of style changes\n // the element stays hidden\n if (isStyleAttr && dom.hidden) toggleVisibility(dom, false)\n }\n}\n\n/**\n * Update all the expressions in a Tag instance\n * @this Tag\n * @param { Array } expressions - expression that must be re evaluated\n */\nexport default function updateAllExpressions(expressions) {\n each(expressions, updateExpression.bind(this))\n}\n","import { remAttr, createDOMPlaceholder } from './../common/util/dom'\nimport { tmpl } from 'riot-tmpl'\nimport { unmountAll } from './../common/util/tags'\nimport { CONDITIONAL_DIRECTIVE } from './../common/global-variables'\nimport { parseExpressions } from './parse'\nimport updateAllExpressions from './update'\n\nexport default {\n init(dom, tag, expr) {\n remAttr(dom, CONDITIONAL_DIRECTIVE)\n this.tag = tag\n this.expr = expr\n this.stub = createDOMPlaceholder()\n this.pristine = dom\n\n const p = dom.parentNode\n p.insertBefore(this.stub, dom)\n p.removeChild(dom)\n\n return this\n },\n update() {\n this.value = tmpl(this.expr, this.tag)\n\n if (this.value && !this.current) { // insert\n this.current = this.pristine.cloneNode(true)\n this.stub.parentNode.insertBefore(this.current, this.stub)\n this.expressions = parseExpressions.apply(this.tag, [this.current, true])\n } else if (!this.value && this.current) { // remove\n unmountAll(this.expressions)\n if (this.current._tag) {\n this.current._tag.unmount()\n } else if (this.current.parentNode) {\n this.current.parentNode.removeChild(this.current)\n }\n this.current = null\n this.expressions = []\n }\n\n if (this.value) updateAllExpressions.call(this.tag, this.expressions)\n },\n unmount() {\n unmountAll(this.expressions || [])\n }\n}","import { tmpl } from 'riot-tmpl'\nimport { isBlank, isString } from './../common/util/check'\nimport { remAttr, setAttr } from './../common/util/dom'\n\nimport {\n getImmediateCustomParentTag,\n arrayishAdd,\n arrayishRemove\n} from './../common/util/tags'\n\nexport default {\n init(dom, parent, attrName, attrValue) {\n this.dom = dom\n this.attr = attrName\n this.rawValue = attrValue\n this.parent = parent\n this.hasExp = tmpl.hasExpr(attrValue)\n return this\n },\n update() {\n const old = this.value\n const customParent = this.parent && getImmediateCustomParentTag(this.parent)\n // if the referenced element is a custom tag, then we set the tag itself, rather than DOM\n const tagOrDom = this.dom.__ref || this.tag || this.dom\n\n this.value = this.hasExp ? tmpl(this.rawValue, this.parent) : this.rawValue\n\n // the name changed, so we need to remove it from the old key (if present)\n if (!isBlank(old) && customParent) arrayishRemove(customParent.refs, old, tagOrDom)\n if (!isBlank(this.value) && isString(this.value)) {\n // add it to the refs of parent tag (this behavior was changed >=3.0)\n if (customParent) arrayishAdd(\n customParent.refs,\n this.value,\n tagOrDom,\n // use an array if it's a looped node and the ref is not an expression\n null,\n this.parent.__.index\n )\n\n if (this.value !== old) {\n setAttr(this.dom, this.attr, this.value)\n }\n } else {\n remAttr(this.dom, this.attr)\n }\n\n // cache the ref bound to this dom node\n // to reuse it in future (see also #2329)\n if (!this.dom.__ref) this.dom.__ref = tagOrDom\n },\n unmount() {\n const tagOrDom = this.tag || this.dom\n const customParent = this.parent && getImmediateCustomParentTag(this.parent)\n if (!isBlank(this.value) && customParent)\n arrayishRemove(customParent.refs, this.value, tagOrDom)\n }\n}","import { isArray, isString } from './../common/util/check'\nimport { remAttr, getAttr, createDOMPlaceholder, safeInsert, createFrag } from './../common/util/dom'\nimport { each, contains, extend } from './../common/util/misc'\nimport { tmpl } from 'riot-tmpl'\nimport createTag from './tag'\n\nimport {\n T_STRING,\n T_OBJECT,\n __TAG_IMPL,\n CONDITIONAL_DIRECTIVE,\n LOOP_DIRECTIVE,\n LOOP_NO_REORDER_DIRECTIVE,\n KEY_DIRECTIVE\n} from './../common/global-variables'\n\nimport {\n moveChildTag,\n getTag,\n getTagName,\n arrayishAdd,\n arrayishRemove,\n makeVirtual,\n moveVirtual\n} from './../common/util/tags'\n\n/**\n * Convert the item looped into an object used to extend the child tag properties\n * @param { Object } expr - object containing the keys used to extend the children tags\n * @param { * } key - value to assign to the new object returned\n * @param { * } val - value containing the position of the item in the array\n * @param { Object } base - prototype object for the new item\n * @returns { Object } - new object containing the values of the original item\n *\n * The variables 'key' and 'val' are arbitrary.\n * They depend on the collection type looped (Array, Object)\n * and on the expression used on the each tag\n *\n */\nfunction mkitem(expr, key, val, base) {\n const item = base ? Object.create(base) : {}\n item[expr.key] = key\n if (expr.pos) item[expr.pos] = val\n return item\n}\n\n/**\n * Unmount the redundant tags\n * @param { Array } items - array containing the current items to loop\n * @param { Array } tags - array containing all the children tags\n */\nfunction unmountRedundant(items, tags) {\n let i = tags.length\n const j = items.length\n\n while (i > j) {\n i--\n remove.apply(tags[i], [tags, i])\n }\n}\n\n\n/**\n * Remove a child tag\n * @this Tag\n * @param { Array } tags - tags collection\n * @param { Number } i - index of the tag to remove\n */\nfunction remove(tags, i) {\n tags.splice(i, 1)\n this.unmount()\n arrayishRemove(this.parent, this, this.__.tagName, true)\n}\n\n/**\n * Move the nested custom tags in non custom loop tags\n * @this Tag\n * @param { Number } i - current position of the loop tag\n */\nfunction moveNestedTags(i) {\n each(Object.keys(this.tags), (tagName) => {\n moveChildTag.apply(this.tags[tagName], [tagName, i])\n })\n}\n\n/**\n * Move a child tag\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Tag } nextTag - instance of the next tag preceding the one we want to move\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\nfunction move(root, nextTag, isVirtual) {\n if (isVirtual)\n moveVirtual.apply(this, [root, nextTag])\n else\n safeInsert(root, this.root, nextTag.root)\n}\n\n/**\n * Insert and mount a child tag\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Tag } nextTag - instance of the next tag preceding the one we want to insert\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\nfunction insert(root, nextTag, isVirtual) {\n if (isVirtual)\n makeVirtual.apply(this, [root, nextTag])\n else\n safeInsert(root, this.root, nextTag.root)\n}\n\n/**\n * Append a new tag into the DOM\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\nfunction append(root, isVirtual) {\n if (isVirtual)\n makeVirtual.call(this, root)\n else\n root.appendChild(this.root)\n}\n\n/**\n * Return the value we want to use to lookup the postion of our items in the collection\n * @param { String } keyAttr - lookup string or expression\n * @param { * } originalItem - original item from the collection\n * @param { Object } keyedItem - object created by riot via { item, i in collection }\n * @param { Boolean } hasKeyAttrExpr - flag to check whether the key is an expression\n * @returns { * } value that we will use to figure out the item position via collection.indexOf\n */\nfunction getItemId(keyAttr, originalItem, keyedItem, hasKeyAttrExpr) {\n if (keyAttr) {\n return hasKeyAttrExpr ? tmpl(keyAttr, keyedItem) : originalItem[keyAttr]\n }\n\n return originalItem\n}\n\n/**\n * Manage tags having the 'each'\n * @param { HTMLElement } dom - DOM node we need to loop\n * @param { Tag } parent - parent tag instance where the dom node is contained\n * @param { String } expr - string contained in the 'each' attribute\n * @returns { Object } expression object for this each loop\n */\nexport default function _each(dom, parent, expr) {\n const mustReorder = typeof getAttr(dom, LOOP_NO_REORDER_DIRECTIVE) !== T_STRING || remAttr(dom, LOOP_NO_REORDER_DIRECTIVE)\n const keyAttr = getAttr(dom, KEY_DIRECTIVE)\n const hasKeyAttrExpr = keyAttr ? tmpl.hasExpr(keyAttr) : false\n const tagName = getTagName(dom)\n const impl = __TAG_IMPL[tagName]\n const parentNode = dom.parentNode\n const placeholder = createDOMPlaceholder()\n const child = getTag(dom)\n const ifExpr = getAttr(dom, CONDITIONAL_DIRECTIVE)\n const tags = []\n const isLoop = true\n const innerHTML = dom.innerHTML\n const isAnonymous = !__TAG_IMPL[tagName]\n const isVirtual = dom.tagName === 'VIRTUAL'\n let oldItems = []\n let hasKeys\n\n // remove the each property from the original tag\n remAttr(dom, LOOP_DIRECTIVE)\n remAttr(dom, KEY_DIRECTIVE)\n\n // parse the each expression\n expr = tmpl.loopKeys(expr)\n expr.isLoop = true\n\n if (ifExpr) remAttr(dom, CONDITIONAL_DIRECTIVE)\n\n // insert a marked where the loop tags will be injected\n parentNode.insertBefore(placeholder, dom)\n parentNode.removeChild(dom)\n\n expr.update = function updateEach() {\n // get the new items collection\n expr.value = tmpl(expr.val, parent)\n\n let items = expr.value\n const frag = createFrag()\n const isObject = !isArray(items) && !isString(items)\n const root = placeholder.parentNode\n const tmpItems = []\n\n // if this DOM was removed the update here is useless\n // this condition fixes also a weird async issue on IE in our unit test\n if (!root) return\n\n // object loop. any changes cause full redraw\n if (isObject) {\n hasKeys = items || false\n items = hasKeys ?\n Object.keys(items).map(key => mkitem(expr, items[key], key)) : []\n } else {\n hasKeys = false\n }\n\n if (ifExpr) {\n items = items.filter((item, i) => {\n if (expr.key && !isObject)\n return !!tmpl(ifExpr, mkitem(expr, item, i, parent))\n\n return !!tmpl(ifExpr, extend(Object.create(parent), item))\n })\n }\n\n // loop all the new items\n each(items, (_item, i) => {\n const item = !hasKeys && expr.key ? mkitem(expr, _item, i) : _item\n const itemId = getItemId(keyAttr, _item, item, hasKeyAttrExpr)\n // reorder only if the items are objects\n const doReorder = mustReorder && typeof _item === T_OBJECT && !hasKeys\n const oldPos = oldItems.indexOf(itemId)\n const isNew = oldPos === -1\n const pos = !isNew && doReorder ? oldPos : i\n // does a tag exist in this position?\n let tag = tags[pos]\n const mustAppend = i >= oldItems.length\n const mustCreate = doReorder && isNew || !doReorder && !tag\n\n // new tag\n if (mustCreate) {\n tag = createTag(impl, {\n parent,\n isLoop,\n isAnonymous,\n tagName,\n root: dom.cloneNode(isAnonymous),\n item,\n index: i,\n }, innerHTML)\n\n // mount the tag\n tag.mount()\n\n if (mustAppend)\n append.apply(tag, [frag || root, isVirtual])\n else\n insert.apply(tag, [root, tags[i], isVirtual])\n\n if (!mustAppend) oldItems.splice(i, 0, item)\n tags.splice(i, 0, tag)\n if (child) arrayishAdd(parent.tags, tagName, tag, true)\n } else if (pos !== i && doReorder) {\n // move\n if (keyAttr || contains(items, oldItems[pos])) {\n move.apply(tag, [root, tags[i], isVirtual])\n // move the old tag instance\n tags.splice(i, 0, tags.splice(pos, 1)[0])\n // move the old item\n oldItems.splice(i, 0, oldItems.splice(pos, 1)[0])\n }\n\n // update the position attribute if it exists\n if (expr.pos) tag[expr.pos] = i\n\n // if the loop tags are not custom\n // we need to move all their custom tags into the right position\n if (!child && tag.tags) moveNestedTags.call(tag, i)\n }\n\n // cache the original item to use it in the events bound to this node\n // and its children\n tag.__.item = item\n tag.__.index = i\n tag.__.parent = parent\n\n tmpItems[i] = itemId\n\n if (!mustCreate) tag.update(item)\n })\n\n // remove the redundant tags\n unmountRedundant(items, tags)\n\n // clone the items array\n oldItems = tmpItems.slice()\n\n root.insertBefore(frag, placeholder)\n }\n\n expr.unmount = () => {\n each(tags, t => { t.unmount() })\n }\n\n return expr\n}","import IfExpr from './if'\nimport RefExpr from './ref'\nimport _each from './each'\nimport { tmpl } from 'riot-tmpl'\nimport {\n CONDITIONAL_DIRECTIVE,\n LOOP_DIRECTIVE,\n IS_DIRECTIVE,\n REF_DIRECTIVES,\n YIELD_TAG\n} from './../common/global-variables'\nimport { isBoolAttr } from './../common/util/check'\nimport { walkNodes, getAttr, setAttr } from './../common/util/dom'\nimport { each, contains } from './../common/util/misc'\nimport { getTag, initChildTag } from './../common/util/tags'\nimport createTag from './tag'\n\n/**\n * Walk the tag DOM to detect the expressions to evaluate\n * @this Tag\n * @param { HTMLElement } root - root tag where we will start digging the expressions\n * @param { Boolean } mustIncludeRoot - flag to decide whether the root must be parsed as well\n * @returns { Array } all the expressions found\n */\nexport function parseExpressions(root, mustIncludeRoot) {\n const expressions = []\n\n walkNodes(root, (dom) => {\n const type = dom.nodeType\n let attr\n let tagImpl\n\n if (!mustIncludeRoot && dom === root) return\n\n // text node\n if (type === 3 && dom.parentNode.tagName !== 'STYLE' && tmpl.hasExpr(dom.nodeValue))\n expressions.push({dom, expr: dom.nodeValue})\n\n if (type !== 1) return\n\n const isVirtual = dom.tagName === 'VIRTUAL'\n\n // loop. each does it's own thing (for now)\n if (attr = getAttr(dom, LOOP_DIRECTIVE)) {\n if(isVirtual) setAttr(dom, 'loopVirtual', true) // ignore here, handled in _each\n expressions.push(_each(dom, this, attr))\n return false\n }\n\n // if-attrs become the new parent. Any following expressions (either on the current\n // element, or below it) become children of this expression.\n if (attr = getAttr(dom, CONDITIONAL_DIRECTIVE)) {\n expressions.push(Object.create(IfExpr).init(dom, this, attr))\n return false\n }\n\n if (attr = getAttr(dom, IS_DIRECTIVE)) {\n if (tmpl.hasExpr(attr)) {\n expressions.push({\n isRtag: true,\n expr: attr,\n dom,\n attrs: [].slice.call(dom.attributes)\n })\n\n return false\n }\n }\n\n // if this is a tag, stop traversing here.\n // we ignore the root, since parseExpressions is called while we're mounting that root\n tagImpl = getTag(dom)\n\n if(isVirtual) {\n if(getAttr(dom, 'virtualized')) {dom.parentElement.removeChild(dom) } // tag created, remove from dom\n if(!tagImpl && !getAttr(dom, 'virtualized') && !getAttr(dom, 'loopVirtual')) // ok to create virtual tag\n tagImpl = { tmpl: dom.outerHTML }\n }\n\n if (tagImpl && (dom !== root || mustIncludeRoot)) {\n if(isVirtual && !getAttr(dom, IS_DIRECTIVE)) { // handled in update\n // can not remove attribute like directives\n // so flag for removal after creation to prevent maximum stack error\n setAttr(dom, 'virtualized', true)\n const tag = createTag(\n {tmpl: dom.outerHTML},\n {root: dom, parent: this},\n dom.innerHTML\n )\n\n expressions.push(tag) // no return, anonymous tag, keep parsing\n } else {\n expressions.push(\n initChildTag(\n tagImpl,\n {\n root: dom,\n parent: this\n },\n dom.innerHTML,\n this\n )\n )\n return false\n }\n }\n\n // attribute expressions\n parseAttributes.apply(this, [dom, dom.attributes, (attr, expr) => {\n if (!expr) return\n expressions.push(expr)\n }])\n })\n\n return expressions\n}\n\n/**\n * Calls `fn` for every attribute on an element. If that attr has an expression,\n * it is also passed to fn.\n * @this Tag\n * @param { HTMLElement } dom - dom node to parse\n * @param { Array } attrs - array of attributes\n * @param { Function } fn - callback to exec on any iteration\n */\nexport function parseAttributes(dom, attrs, fn) {\n each(attrs, (attr) => {\n if (!attr) return false\n\n const name = attr.name\n const bool = isBoolAttr(name)\n let expr\n\n if (contains(REF_DIRECTIVES, name) && dom.tagName.toLowerCase() !== YIELD_TAG) {\n expr = Object.create(RefExpr).init(dom, this, name, attr.value)\n } else if (tmpl.hasExpr(attr.value)) {\n expr = {dom, expr: attr.value, attr: name, bool}\n }\n\n fn(attr, expr)\n })\n}\n","import { mkEl, setInnerHTML, $ } from './../common/util/dom'\n\nimport {\n IE_VERSION,\n RE_SPECIAL_TAGS,\n RE_SPECIAL_TAGS_NO_OPTION\n} from './../common/global-variables'\n\n/*\n Includes hacks needed for the Internet Explorer version 9 and below\n See: http://kangax.github.io/compat-table/es5/#ie8\n http://codeplanet.io/dropping-ie8/\n*/\n\nconst\n reHasYield = /<yield\\b/i,\n reYieldAll = /<yield\\s*(?:\\/>|>([\\S\\s]*?)<\\/yield\\s*>|>)/ig,\n reYieldSrc = /<yield\\s+to=['\"]([^'\">]*)['\"]\\s*>([\\S\\s]*?)<\\/yield\\s*>/ig,\n reYieldDest = /<yield\\s+from=['\"]?([-\\w]+)['\"]?\\s*(?:\\/>|>([\\S\\s]*?)<\\/yield\\s*>)/ig,\n rootEls = { tr: 'tbody', th: 'tr', td: 'tr', col: 'colgroup' },\n tblTags = IE_VERSION && IE_VERSION < 10 ? RE_SPECIAL_TAGS : RE_SPECIAL_TAGS_NO_OPTION,\n GENERIC = 'div',\n SVG = 'svg'\n\n\n/*\n Creates the root element for table or select child elements:\n tr/th/td/thead/tfoot/tbody/caption/col/colgroup/option/optgroup\n*/\nfunction specialTags(el, tmpl, tagName) {\n\n let\n select = tagName[0] === 'o',\n parent = select ? 'select>' : 'table>'\n\n // trim() is important here, this ensures we don't have artifacts,\n // so we can check if we have only one element inside the parent\n el.innerHTML = '<' + parent + tmpl.trim() + '</' + parent\n parent = el.firstChild\n\n // returns the immediate parent if tr/th/td/col is the only element, if not\n // returns the whole tree, as this can include additional elements\n /* istanbul ignore next */\n if (select) {\n parent.selectedIndex = -1 // for IE9, compatible w/current riot behavior\n } else {\n // avoids insertion of cointainer inside container (ex: tbody inside tbody)\n const tname = rootEls[tagName]\n if (tname && parent.childElementCount === 1) parent = $(tname, parent)\n }\n return parent\n}\n\n/*\n Replace the yield tag from any tag template with the innerHTML of the\n original tag in the page\n*/\nfunction replaceYield(tmpl, html) {\n // do nothing if no yield\n if (!reHasYield.test(tmpl)) return tmpl\n\n // be careful with #1343 - string on the source having `$1`\n const src = {}\n\n html = html && html.replace(reYieldSrc, function (_, ref, text) {\n src[ref] = src[ref] || text // preserve first definition\n return ''\n }).trim()\n\n return tmpl\n .replace(reYieldDest, function (_, ref, def) { // yield with from - to attrs\n return src[ref] || def || ''\n })\n .replace(reYieldAll, function (_, def) { // yield without any \"from\"\n return html || def || ''\n })\n}\n\n/**\n * Creates a DOM element to wrap the given content. Normally an `DIV`, but can be\n * also a `TABLE`, `SELECT`, `TBODY`, `TR`, or `COLGROUP` element.\n *\n * @param { String } tmpl - The template coming from the custom tag definition\n * @param { String } html - HTML content that comes from the DOM element where you\n * will mount the tag, mostly the original tag in the page\n * @param { Boolean } isSvg - true if the root node is an svg\n * @returns { HTMLElement } DOM element with _tmpl_ merged through `YIELD` with the _html_.\n */\nexport default function mkdom(tmpl, html, isSvg) {\n const match = tmpl && tmpl.match(/^\\s*<([-\\w]+)/)\n const tagName = match && match[1].toLowerCase()\n let el = mkEl(isSvg ? SVG : GENERIC)\n\n // replace all the yield tags with the tag inner html\n tmpl = replaceYield(tmpl, html)\n\n /* istanbul ignore next */\n if (tblTags.test(tagName))\n el = specialTags(el, tmpl, tagName)\n else\n setInnerHTML(el, tmpl, isSvg)\n\n return el\n}\n","import styleManager from './styleManager'\nimport { isString, isUndefined, isObject, isFunction } from './../common/util/check'\nimport { setAttr, getAttr, $$ } from './../common/util/dom'\nimport { each, extend } from './../common/util/misc'\nimport { mountTo, selectTags } from './../common/util/tags'\n\nimport {\n __TAG_IMPL,\n __TAGS_CACHE,\n GLOBAL_MIXIN,\n IS_DIRECTIVE\n} from './../common/global-variables'\n\n/**\n * Another way to create a riot tag a bit more es6 friendly\n * @param { HTMLElement } el - tag DOM selector or DOM node/s\n * @param { Object } opts - tag logic\n * @returns { Tag } new riot tag instance\n */\nexport function Tag(el, opts) {\n // get the tag properties from the class constructor\n const {name, tmpl, css, attrs, onCreate} = this\n // register a new tag and cache the class prototype\n if (!__TAG_IMPL[name]) {\n tag(name, tmpl, css, attrs, onCreate)\n // cache the class constructor\n __TAG_IMPL[name].class = this.constructor\n }\n\n // mount the tag using the class instance\n mountTo(el, name, opts, this)\n // inject the component css\n if (css) styleManager.inject()\n\n return this\n}\n\n/**\n * Create a new riot tag implementation\n * @param { String } name - name/id of the new riot tag\n * @param { String } tmpl - tag template\n * @param { String } css - custom tag css\n * @param { String } attrs - root tag attributes\n * @param { Function } fn - user function\n * @returns { String } name/id of the tag just created\n */\nexport function tag(name, tmpl, css, attrs, fn) {\n if (isFunction(attrs)) {\n fn = attrs\n\n if (/^[\\w-]+\\s?=/.test(css)) {\n attrs = css\n css = ''\n } else\n attrs = ''\n }\n\n if (css) {\n if (isFunction(css))\n fn = css\n else\n styleManager.add(css)\n }\n\n name = name.toLowerCase()\n __TAG_IMPL[name] = { name, tmpl, attrs, fn }\n\n return name\n}\n\n/**\n * Create a new riot tag implementation (for use by the compiler)\n * @param { String } name - name/id of the new riot tag\n * @param { String } tmpl - tag template\n * @param { String } css - custom tag css\n * @param { String } attrs - root tag attributes\n * @param { Function } fn - user function\n * @returns { String } name/id of the tag just created\n */\nexport function tag2(name, tmpl, css, attrs, fn) {\n if (css) styleManager.add(css, name)\n\n __TAG_IMPL[name] = { name, tmpl, attrs, fn }\n\n return name\n}\n\n/**\n * Mount a tag using a specific tag implementation\n * @param { * } selector - tag DOM selector or DOM node/s\n * @param { String } tagName - tag implementation name\n * @param { Object } opts - tag logic\n * @returns { Array } new tags instances\n */\nexport function mount(selector, tagName, opts) {\n const tags = []\n let elem, allTags\n\n function pushTagsTo(root) {\n if (root.tagName) {\n let riotTag = getAttr(root, IS_DIRECTIVE), tag\n\n // have tagName? force riot-tag to be the same\n if (tagName && riotTag !== tagName) {\n riotTag = tagName\n setAttr(root, IS_DIRECTIVE, tagName)\n }\n\n tag = mountTo(root, riotTag || root.tagName.toLowerCase(), opts)\n\n if (tag)\n tags.push(tag)\n } else if (root.length)\n each(root, pushTagsTo) // assume nodeList\n }\n\n // inject styles into DOM\n styleManager.inject()\n\n if (isObject(tagName)) {\n opts = tagName\n tagName = 0\n }\n\n // crawl the DOM to find the tag\n if (isString(selector)) {\n selector = selector === '*' ?\n // select all registered tags\n // & tags found with the riot-tag attribute set\n allTags = selectTags() :\n // or just the ones named like the selector\n selector + selectTags(selector.split(/, */))\n\n // make sure to pass always a selector\n // to the querySelectorAll function\n elem = selector ? $$(selector) : []\n }\n else\n // probably you have passed already a tag or a NodeList\n elem = selector\n\n // select all the registered and mount them inside their root elements\n if (tagName === '*') {\n // get all custom tags\n tagName = allTags || selectTags()\n // if the root els it's just a single tag\n if (elem.tagName)\n elem = $$(tagName, elem)\n else {\n // select all the children for all the different root elements\n var nodeList = []\n\n each(elem, _el => nodeList.push($$(tagName, _el)))\n\n elem = nodeList\n }\n // get rid of the tagName\n tagName = 0\n }\n\n pushTagsTo(elem)\n\n return tags\n}\n\n// Create a mixin that could be globally shared across all the tags\nconst mixins = {}\nconst globals = mixins[GLOBAL_MIXIN] = {}\nlet mixins_id = 0\n\n/**\n * Create/Return a mixin by its name\n * @param { String } name - mixin name (global mixin if object)\n * @param { Object } mix - mixin logic\n * @param { Boolean } g - is global?\n * @returns { Object } the mixin logic\n */\nexport function mixin(name, mix, g) {\n // Unnamed global\n if (isObject(name)) {\n mixin(`__${mixins_id++}__`, name, true)\n return\n }\n\n const store = g ? globals : mixins\n\n // Getter\n if (!mix) {\n if (isUndefined(store[name]))\n throw new Error(`Unregistered mixin: ${ name }`)\n\n return store[name]\n }\n\n // Setter\n store[name] = isFunction(mix) ?\n extend(mix.prototype, store[name] || {}) && mix :\n extend(store[name] || {}, mix)\n}\n\n/**\n * Update all the tags instances created\n * @returns { Array } all the tags instances\n */\nexport function update() {\n return each(__TAGS_CACHE, tag => tag.update())\n}\n\nexport function unregister(name) {\n __TAG_IMPL[name] = null\n}\n\nexport const version = 'WIP'\n","import observable from 'riot-observable'\nimport { parseExpressions, parseAttributes } from './parse'\nimport RefExpr from './ref'\nimport update, { updateExpression } from './update'\nimport mkdom from './mkdom'\nimport { mixin } from './core'\nimport settings from '../../settings'\nimport {\n isSvg,\n setAttr,\n remAttr,\n walkAttrs,\n setInnerHTML\n} from './../common/util/dom'\n\nimport {\n isString,\n isFunction\n} from './../common/util/check'\n\nimport {\n extend,\n each,\n uid,\n toCamel,\n contains,\n startsWith,\n defineProperty,\n getPropDescriptor\n} from './../common/util/misc'\n\nimport {\n unmountAll,\n getTagName,\n arrayishRemove,\n inheritParentProps,\n getImmediateCustomParentTag\n} from './../common/util/tags'\n\nimport {\n GLOBAL_MIXIN,\n __TAGS_CACHE,\n ATTRS_PREFIX,\n RIOT_EVENTS_KEY\n} from './../common/global-variables'\n\n/**\n * We need to update opts for this tag. That requires updating the expressions\n * in any attributes on the tag, and then copying the result onto opts.\n * @this Tag\n * @param {Boolean} isLoop - is it a loop tag?\n * @param { Tag } parent - parent tag node\n * @param { Boolean } isAnonymous - is it a tag without any impl? (a tag not registered)\n * @param { Object } opts - tag options\n * @param { Array } instAttrs - tag attributes array\n */\nfunction updateOpts(isLoop, parent, isAnonymous, opts, instAttrs) {\n // isAnonymous `each` tags treat `dom` and `root` differently. In this case\n // (and only this case) we don't need to do updateOpts, because the regular parse\n // will update those attrs. Plus, isAnonymous tags don't need opts anyway\n if (isLoop && isAnonymous) return\n const ctx = isLoop ? inheritParentProps.call(this) : parent || this\n\n each(instAttrs, (attr) => {\n if (attr.expr) updateExpression.call(ctx, attr.expr)\n // normalize the attribute names\n opts[toCamel(attr.name).replace(ATTRS_PREFIX, '')] = attr.expr ? attr.expr.value : attr.value\n })\n}\n\n/**\n * Manage the mount state of a tag triggering also the observable events\n * @this Tag\n * @param { Boolean } value - ..of the isMounted flag\n */\nfunction setMountState(value) {\n const { isAnonymous } = this.__\n\n defineProperty(this, 'isMounted', value)\n\n if (!isAnonymous) {\n if (value) this.trigger('mount')\n else {\n this.trigger('unmount')\n this.off('*')\n this.__.wasCreated = false\n }\n }\n}\n\n\n/**\n * Tag creation factory function\n * @constructor\n * @param { Object } impl - it contains the tag template, and logic\n * @param { Object } conf - tag options\n * @param { String } innerHTML - html that eventually we need to inject in the tag\n */\nexport default function createTag(impl = {}, conf = {}, innerHTML) {\n const tag = conf.context || {}\n const opts = extend({}, conf.opts)\n const parent = conf.parent\n const isLoop = conf.isLoop\n const isAnonymous = !!conf.isAnonymous\n const skipAnonymous = settings.skipAnonymousTags && isAnonymous\n const item = conf.item\n // available only for the looped nodes\n const index = conf.index\n // All attributes on the Tag when it's first parsed\n const instAttrs = []\n // expressions on this type of Tag\n const implAttrs = []\n const expressions = []\n const root = conf.root\n const tagName = conf.tagName || getTagName(root)\n const isVirtual = tagName === 'virtual'\n const isInline = !isVirtual && !impl.tmpl\n let dom\n\n // make this tag observable\n if (!skipAnonymous) observable(tag)\n // only call unmount if we have a valid __TAG_IMPL (has name property)\n if (impl.name && root._tag) root._tag.unmount(true)\n\n // not yet mounted\n defineProperty(tag, 'isMounted', false)\n\n defineProperty(tag, '__', {\n isAnonymous,\n instAttrs,\n innerHTML,\n tagName,\n index,\n isLoop,\n isInline,\n // tags having event listeners\n // it would be better to use weak maps here but we can not introduce breaking changes now\n listeners: [],\n // these vars will be needed only for the virtual tags\n virts: [],\n wasCreated: false,\n tail: null,\n head: null,\n parent: null,\n item: null\n })\n\n // create a unique id to this tag\n // it could be handy to use it also to improve the virtual dom rendering speed\n defineProperty(tag, '_riot_id', uid()) // base 1 allows test !t._riot_id\n defineProperty(tag, 'root', root)\n extend(tag, { opts }, item)\n // protect the \"tags\" and \"refs\" property from being overridden\n defineProperty(tag, 'parent', parent || null)\n defineProperty(tag, 'tags', {})\n defineProperty(tag, 'refs', {})\n\n if (isInline || isLoop && isAnonymous) {\n dom = root\n } else {\n if (!isVirtual) root.innerHTML = ''\n dom = mkdom(impl.tmpl, innerHTML, isSvg(root))\n }\n\n /**\n * Update the tag expressions and options\n * @param { * } data - data we want to use to extend the tag properties\n * @returns { Tag } the current tag instance\n */\n defineProperty(tag, 'update', function tagUpdate(data) {\n const nextOpts = {}\n const canTrigger = tag.isMounted && !skipAnonymous\n\n // inherit properties from the parent tag\n if (isAnonymous && parent) extend(tag, parent)\n extend(tag, data)\n\n updateOpts.apply(tag, [isLoop, parent, isAnonymous, nextOpts, instAttrs])\n\n if (\n canTrigger &&\n tag.isMounted &&\n isFunction(tag.shouldUpdate) && !tag.shouldUpdate(data, nextOpts)\n ) {\n return tag\n }\n\n extend(opts, nextOpts)\n\n if (canTrigger) tag.trigger('update', data)\n update.call(tag, expressions)\n if (canTrigger) tag.trigger('updated')\n\n return tag\n })\n\n /**\n * Add a mixin to this tag\n * @returns { Tag } the current tag instance\n */\n defineProperty(tag, 'mixin', function tagMixin() {\n each(arguments, (mix) => {\n let instance\n let obj\n let props = []\n\n // properties blacklisted and will not be bound to the tag instance\n const propsBlacklist = ['init', '__proto__']\n\n mix = isString(mix) ? mixin(mix) : mix\n\n // check if the mixin is a function\n if (isFunction(mix)) {\n // create the new mixin instance\n instance = new mix()\n } else instance = mix\n\n const proto = Object.getPrototypeOf(instance)\n\n // build multilevel prototype inheritance chain property list\n do props = props.concat(Object.getOwnPropertyNames(obj || instance))\n while (obj = Object.getPrototypeOf(obj || instance))\n\n // loop the keys in the function prototype or the all object keys\n each(props, (key) => {\n // bind methods to tag\n // allow mixins to override other properties/parent mixins\n if (!contains(propsBlacklist, key)) {\n // check for getters/setters\n const descriptor = getPropDescriptor(instance, key) || getPropDescriptor(proto, key)\n const hasGetterSetter = descriptor && (descriptor.get || descriptor.set)\n\n // apply method only if it does not already exist on the instance\n if (!tag.hasOwnProperty(key) && hasGetterSetter) {\n Object.defineProperty(tag, key, descriptor)\n } else {\n tag[key] = isFunction(instance[key]) ?\n instance[key].bind(tag) :\n instance[key]\n }\n }\n })\n\n // init method will be called automatically\n if (instance.init)\n instance.init.bind(tag)(opts)\n })\n\n return tag\n })\n\n /**\n * Mount the current tag instance\n * @returns { Tag } the current tag instance\n */\n defineProperty(tag, 'mount', function tagMount() {\n root._tag = tag // keep a reference to the tag just created\n\n // Read all the attrs on this instance. This give us the info we need for updateOpts\n parseAttributes.apply(parent, [root, root.attributes, (attr, expr) => {\n if (!isAnonymous && RefExpr.isPrototypeOf(expr)) expr.tag = tag\n attr.expr = expr\n instAttrs.push(attr)\n }])\n\n // update the root adding custom attributes coming from the compiler\n walkAttrs(impl.attrs, (k, v) => { implAttrs.push({name: k, value: v}) })\n parseAttributes.apply(tag, [root, implAttrs, (attr, expr) => {\n if (expr) expressions.push(expr)\n else setAttr(root, attr.name, attr.value)\n }])\n\n // initialiation\n updateOpts.apply(tag, [isLoop, parent, isAnonymous, opts, instAttrs])\n\n // add global mixins\n const globalMixin = mixin(GLOBAL_MIXIN)\n\n if (globalMixin && !skipAnonymous) {\n for (const i in globalMixin) {\n if (globalMixin.hasOwnProperty(i)) {\n tag.mixin(globalMixin[i])\n }\n }\n }\n\n if (impl.fn) impl.fn.call(tag, opts)\n\n if (!skipAnonymous) tag.trigger('before-mount')\n\n // parse layout after init. fn may calculate args for nested custom tags\n each(parseExpressions.apply(tag, [dom, isAnonymous]), e => expressions.push(e))\n\n tag.update(item)\n\n if (!isAnonymous && !isInline) {\n while (dom.firstChild) root.appendChild(dom.firstChild)\n }\n\n defineProperty(tag, 'root', root)\n\n // if we need to wait that the parent \"mount\" or \"updated\" event gets triggered\n if (!skipAnonymous && tag.parent) {\n const p = getImmediateCustomParentTag(tag.parent)\n p.one(!p.isMounted ? 'mount' : 'updated', () => {\n setMountState.call(tag, true)\n })\n } else {\n // otherwise it's not a child tag we can trigger its mount event\n setMountState.call(tag, true)\n }\n\n tag.__.wasCreated = true\n\n return tag\n\n })\n\n /**\n * Unmount the tag instance\n * @param { Boolean } mustKeepRoot - if it's true the root node will not be removed\n * @returns { Tag } the current tag instance\n */\n defineProperty(tag, 'unmount', function tagUnmount(mustKeepRoot) {\n const el = tag.root\n const p = el.parentNode\n const tagIndex = __TAGS_CACHE.indexOf(tag)\n\n if (!skipAnonymous) tag.trigger('before-unmount')\n\n // clear all attributes coming from the mounted tag\n walkAttrs(impl.attrs, (name) => {\n if (startsWith(name, ATTRS_PREFIX))\n name = name.slice(ATTRS_PREFIX.length)\n\n remAttr(root, name)\n })\n\n // remove all the event listeners\n tag.__.listeners.forEach((dom) => {\n Object.keys(dom[RIOT_EVENTS_KEY]).forEach((eventName) => {\n dom.removeEventListener(eventName, dom[RIOT_EVENTS_KEY][eventName])\n })\n })\n\n // remove tag instance from the global tags cache collection\n if (tagIndex !== -1) __TAGS_CACHE.splice(tagIndex, 1)\n\n // clean up the parent tags object\n if (parent && !isAnonymous) {\n const ptag = getImmediateCustomParentTag(parent)\n\n if (isVirtual) {\n Object\n .keys(tag.tags)\n .forEach(tagName => arrayishRemove(ptag.tags, tagName, tag.tags[tagName]))\n } else {\n arrayishRemove(ptag.tags, tagName, tag)\n }\n }\n\n // unmount all the virtual directives\n if (tag.__.virts) {\n each(tag.__.virts, (v) => {\n if (v.parentNode) v.parentNode.removeChild(v)\n })\n }\n\n // allow expressions to unmount themselves\n unmountAll(expressions)\n each(instAttrs, a => a.expr && a.expr.unmount && a.expr.unmount())\n\n // clear the tag html if it's necessary\n if (mustKeepRoot) setInnerHTML(el, '')\n // otherwise detach the root tag from the DOM\n else if (p) p.removeChild(el)\n\n // custom internal unmount function to avoid relying on the observable\n if (tag.__.onUnmount) tag.__.onUnmount()\n\n // weird fix for a weird edge case #2409 and #2436\n // some users might use your software not as you've expected\n // so I need to add these dirty hacks to mitigate unexpected issues\n if (!tag.isMounted) setMountState.call(tag, true)\n\n setMountState.call(tag, false)\n\n delete tag.root._tag\n\n return tag\n })\n\n return tag\n}\n","import createTag from './../../tag/tag'\nimport { getAttr, createDOMPlaceholder, createFrag } from './dom'\nimport { contains, each, defineProperty, extend } from './misc'\nimport { isArray, isUndefined } from './check'\nimport { tmpl } from 'riot-tmpl'\n\nimport {\n __TAG_IMPL,\n __TAGS_CACHE,\n IS_DIRECTIVE\n} from './../global-variables'\n\n/**\n * Detect the tag implementation by a DOM node\n * @param { Object } dom - DOM node we need to parse to get its tag implementation\n * @returns { Object } it returns an object containing the implementation of a custom tag (template and boot function)\n */\nexport function getTag(dom) {\n return dom.tagName && __TAG_IMPL[getAttr(dom, IS_DIRECTIVE) ||\n getAttr(dom, IS_DIRECTIVE) || dom.tagName.toLowerCase()]\n}\n\n/**\n * Move the position of a custom tag in its parent tag\n * @this Tag\n * @param { String } tagName - key where the tag was stored\n * @param { Number } newPos - index where the new tag will be stored\n */\nexport function moveChildTag(tagName, newPos) {\n const parent = this.parent\n let tags\n // no parent no move\n if (!parent) return\n\n tags = parent.tags[tagName]\n\n if (isArray(tags))\n tags.splice(newPos, 0, tags.splice(tags.indexOf(this), 1)[0])\n else arrayishAdd(parent.tags, tagName, this)\n}\n\n/**\n * Create a new child tag including it correctly into its parent\n * @param { Object } child - child tag implementation\n * @param { Object } opts - tag options containing the DOM node where the tag will be mounted\n * @param { String } innerHTML - inner html of the child node\n * @param { Object } parent - instance of the parent tag including the child custom tag\n * @returns { Object } instance of the new child tag just created\n */\nexport function initChildTag(child, opts, innerHTML, parent) {\n const tag = createTag(child, opts, innerHTML)\n const tagName = opts.tagName || getTagName(opts.root, true)\n const ptag = getImmediateCustomParentTag(parent)\n // fix for the parent attribute in the looped elements\n defineProperty(tag, 'parent', ptag)\n // store the real parent tag\n // in some cases this could be different from the custom parent tag\n // for example in nested loops\n tag.__.parent = parent\n\n // add this tag to the custom parent tag\n arrayishAdd(ptag.tags, tagName, tag)\n\n // and also to the real parent tag\n if (ptag !== parent)\n arrayishAdd(parent.tags, tagName, tag)\n\n return tag\n}\n\n/**\n * Loop backward all the parents tree to detect the first custom parent tag\n * @param { Object } tag - a Tag instance\n * @returns { Object } the instance of the first custom parent tag found\n */\nexport function getImmediateCustomParentTag(tag) {\n let ptag = tag\n while (ptag.__.isAnonymous) {\n if (!ptag.parent) break\n ptag = ptag.parent\n }\n return ptag\n}\n\n/**\n * Trigger the unmount method on all the expressions\n * @param { Array } expressions - DOM expressions\n */\nexport function unmountAll(expressions) {\n each(expressions, expr => {\n if (expr.unmount) expr.unmount(true)\n else if (expr.tagName) expr.tag.unmount(true)\n else if (expr.unmount) expr.unmount()\n })\n}\n\n/**\n * Get the tag name of any DOM node\n * @param { Object } dom - DOM node we want to parse\n * @param { Boolean } skipDataIs - hack to ignore the data-is attribute when attaching to parent\n * @returns { String } name to identify this dom node in riot\n */\nexport function getTagName(dom, skipDataIs) {\n const child = getTag(dom)\n const namedTag = !skipDataIs && getAttr(dom, IS_DIRECTIVE)\n return namedTag && !tmpl.hasExpr(namedTag) ?\n namedTag : child ? child.name : dom.tagName.toLowerCase()\n}\n\n/**\n * Set the property of an object for a given key. If something already\n * exists there, then it becomes an array containing both the old and new value.\n * @param { Object } obj - object on which to set the property\n * @param { String } key - property name\n * @param { Object } value - the value of the property to be set\n * @param { Boolean } ensureArray - ensure that the property remains an array\n * @param { Number } index - add the new item in a certain array position\n */\nexport function arrayishAdd(obj, key, value, ensureArray, index) {\n const dest = obj[key]\n const isArr = isArray(dest)\n const hasIndex = !isUndefined(index)\n\n if (dest && dest === value) return\n\n // if the key was never set, set it once\n if (!dest && ensureArray) obj[key] = [value]\n else if (!dest) obj[key] = value\n // if it was an array and not yet set\n else {\n if (isArr) {\n const oldIndex = dest.indexOf(value)\n // this item never changed its position\n if (oldIndex === index) return\n // remove the item from its old position\n if (oldIndex !== -1) dest.splice(oldIndex, 1)\n // move or add the item\n if (hasIndex) {\n dest.splice(index, 0, value)\n } else {\n dest.push(value)\n }\n } else obj[key] = [dest, value]\n }\n}\n\n/**\n * Removes an item from an object at a given key. If the key points to an array,\n * then the item is just removed from the array.\n * @param { Object } obj - object on which to remove the property\n * @param { String } key - property name\n * @param { Object } value - the value of the property to be removed\n * @param { Boolean } ensureArray - ensure that the property remains an array\n*/\nexport function arrayishRemove(obj, key, value, ensureArray) {\n if (isArray(obj[key])) {\n let index = obj[key].indexOf(value)\n if (index !== -1) obj[key].splice(index, 1)\n if (!obj[key].length) delete obj[key]\n else if (obj[key].length === 1 && !ensureArray) obj[key] = obj[key][0]\n } else if (obj[key] === value)\n delete obj[key] // otherwise just delete the key\n}\n\n/**\n * Mount a tag creating new Tag instance\n * @param { Object } root - dom node where the tag will be mounted\n * @param { String } tagName - name of the riot tag we want to mount\n * @param { Object } opts - options to pass to the Tag instance\n * @param { Object } ctx - optional context that will be used to extend an existing class ( used in riot.Tag )\n * @returns { Tag } a new Tag instance\n */\nexport function mountTo(root, tagName, opts, ctx) {\n const impl = __TAG_IMPL[tagName]\n const implClass = __TAG_IMPL[tagName].class\n const context = ctx || (implClass ? Object.create(implClass.prototype) : {})\n // cache the inner HTML to fix #855\n const innerHTML = root._innerHTML = root._innerHTML || root.innerHTML\n const conf = extend({ root, opts, context }, { parent: opts ? opts.parent : null })\n let tag\n\n if (impl && root) tag = createTag(impl, conf, innerHTML)\n\n if (tag && tag.mount) {\n tag.mount(true)\n // add this tag to the virtualDom variable\n if (!contains(__TAGS_CACHE, tag)) __TAGS_CACHE.push(tag)\n }\n\n return tag\n}\n\n/**\n * makes a tag virtual and replaces a reference in the dom\n * @this Tag\n * @param { tag } the tag to make virtual\n * @param { ref } the dom reference location\n */\nexport function makeReplaceVirtual(tag, ref) {\n const frag = createFrag()\n makeVirtual.call(tag, frag)\n ref.parentNode.replaceChild(frag, ref)\n}\n\n/**\n * Adds the elements for a virtual tag\n * @this Tag\n * @param { Node } src - the node that will do the inserting or appending\n * @param { Tag } target - only if inserting, insert before this tag's first child\n */\nexport function makeVirtual(src, target) {\n const head = createDOMPlaceholder()\n const tail = createDOMPlaceholder()\n const frag = createFrag()\n let sib\n let el\n\n this.root.insertBefore(head, this.root.firstChild)\n this.root.appendChild(tail)\n\n this.__.head = el = head\n this.__.tail = tail\n\n while (el) {\n sib = el.nextSibling\n frag.appendChild(el)\n this.__.virts.push(el) // hold for unmounting\n el = sib\n }\n\n if (target)\n src.insertBefore(frag, target.__.head)\n else\n src.appendChild(frag)\n}\n\n/**\n * Return a temporary context containing also the parent properties\n * @this Tag\n * @param { Tag } - temporary tag context containing all the parent properties\n */\nexport function inheritParentProps() {\n if (this.parent) return extend(Object.create(this), this.parent)\n return this\n}\n\n/**\n * Move virtual tag and all child nodes\n * @this Tag\n * @param { Node } src - the node that will do the inserting\n * @param { Tag } target - insert before this tag's first child\n */\nexport function moveVirtual(src, target) {\n let el = this.__.head\n let sib\n const frag = createFrag()\n\n while (el) {\n sib = el.nextSibling\n frag.appendChild(el)\n el = sib\n if (el === this.__.tail) {\n frag.appendChild(el)\n src.insertBefore(frag, target.__.head)\n break\n }\n }\n}\n\n/**\n * Get selectors for tags\n * @param { Array } tags - tag names to select\n * @returns { String } selector\n */\nexport function selectTags(tags) {\n // select all tags\n if (!tags) {\n const keys = Object.keys(__TAG_IMPL)\n return keys + selectTags(keys)\n }\n\n return tags\n .filter(t => !/[^-\\w]/.test(t))\n .reduce((list, t) => {\n const name = t.trim().toLowerCase()\n return list + `,[${IS_DIRECTIVE}=\"${name}\"]`\n }, '')\n}\n","import styleManager from './browser/tag/styleManager'\nimport { tmpl, brackets } from 'riot-tmpl'\nimport o from 'riot-observable'\nimport s from './settings'\nimport { __TAGS_CACHE as vdom } from './browser/common/global-variables'\nimport * as dom from './browser/common/util/dom'\nimport * as check from './browser/common/util/check'\nimport * as misc from './browser/common/util/misc'\nimport * as tags from './browser/common/util/tags'\nimport * as core from './browser/tag/core'\n\n/**\n * Riot public api\n */\nexport const settings = s\nexport const util = {\n tmpl,\n brackets,\n styleManager,\n vdom,\n styleNode: styleManager.styleNode,\n // export the riot internal utils as well\n dom,\n check,\n misc,\n tags\n}\n\n// export the core props/methods\nexport const Tag = core.Tag\nexport const tag = core.tag\nexport const tag2 = core.tag2\nexport const mount = core.mount\nexport const mixin = core.mixin\nexport const update = core.update\nexport const unregister = core.unregister\nexport const version = core.version\nexport const observable = o\n\nexport default misc.extend({}, core, {\n observable: o,\n settings,\n util,\n})\n","import toString from 'es-tostring'\n\n# Test if `value` is a number.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is a number, false otherwise\n# @api public\nexport default isNumber = (value) ->\n toString(value) == '[object Number]'\n","import toString from 'es-tostring'\n\n# Test if `value` is an object.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is an object, false otherwise\n# @api public\nexport default isObject = (value) ->\n toString(value) == '[object Object]'\n","getOwnSymbols = Object.getOwnPropertySymbols\n\ntoObject = (val) ->\n if val == null or val == undefined\n throw new TypeError('Object.assign cannot be called with null or undefined')\n Object val\n\nshouldUseNative = ->\n try\n return false unless Object.assign\n\n # Detect buggy property enumeration order in older V8 versions.\n\n # https://bugs.chromium.org/p/v8/issues/detail?id=4118\n test1 = new String('abc')\n test1[5] = 'de'\n return false if Object.getOwnPropertyNames(test1)[0] == '5'\n\n # https://bugs.chromium.org/p/v8/issues/detail?id=3056\n test2 = {}\n for i in [0..9]\n test2['_' + String.fromCharCode(i)] = i\n order2 = Object.getOwnPropertyNames(test2).map (n) -> test2[n]\n return false if order2.join('') != '0123456789'\n\n # https://bugs.chromium.org/p/v8/issues/detail?id=3056\n test3 = {}\n for letter in 'abcdefghijklmnopqrst'.split('')\n test3[letter] = letter\n if Object.keys(Object.assign({}, test3)).join('') != 'abcdefghijklmnopqrst'\n return false\n true\n catch err\n # We don't expect any of the above to throw, but better to be safe.\n false\n\nexport default objectAssign = do ->\n return Object.assign if shouldUseNative()\n\n (target, sources...) ->\n to = toObject target\n\n for source in sources\n from = Object(source)\n for key of from\n if Object::hasOwnProperty.call(from, key)\n to[key] = from[key]\n if getOwnSymbols\n for symbol in getOwnSymbols(from)\n if Object::propIsEnumerable.call from, symbol\n to[symbol] = from[symbol]\n to\n","import isNumber from 'es-is/number'\nimport isObject from 'es-is/object'\nimport objectAssign from 'es-object-assign'\nimport observable from 'riot-observable'\n\nnextId = do ->\n ids = 0\n -> ids++\n\nexport default class Ref\n constructor: (@_value, @parent, @key) ->\n @_cache = {}\n @_children = {}\n @_numChildren = 0\n @_id = nextId()\n\n if @parent?\n @parent._children[@_id] = @\n @parent._numChildren++\n observable @\n @\n\n # Clear the cache\n _mutate: (key) ->\n # TODO: do something smarter with key rather than wiping out entire cache\n @_cache = {}\n\n # clear children as well\n child._mutate() for id, child of @_children\n\n @\n\n # clear everything\n clear: ()->\n @_cache = {}\n\n child.clear() for id, child of @_children\n @_children = {}\n @_numChildren = 0\n\n #clear out the values\n @_value = undefined\n\n if @parent?\n @parent.set @key, undefined\n\n # Removes reference\n destroy: () ->\n child.destroy() for id, child of @_children\n delete @_cache\n delete @_children\n @off '*'\n\n if @parent\n delete @parent._children[@_id]\n @parent._numChildren--\n @\n\n # Get value of this or parent Ref\n value: (state) ->\n unless @parent\n if state?\n @_value = state\n return @_value\n\n if state?\n @parent.set @key, state\n else\n @parent.get @key\n\n # Get a ref to this or subtree\n ref: (key) ->\n unless key\n return @\n\n new Ref null, @, key\n\n # Get state or subtree\n get: (key) ->\n unless key\n @value()\n else\n return @_cache[key] if @_cache[key]\n @_cache[key] = @index key\n\n # Set value overwriting tree along way\n set: (key, value) ->\n # handle case of object\n if isObject key\n for k, v of key\n @set k, v\n\n return @\n\n oldValue = @get key\n\n @_mutate key\n\n unless value?\n # avoid strings/nulls etc being thrown into object assign\n if isObject key\n @value objectAssign @value(), key\n # fall back to standard assignment by setting key to ull/undefined\n else\n @index key, value, false\n else\n @index key, value, false\n\n # set event\n @_triggerSet key, value, oldValue\n @_triggerSetChildren key, value, oldValue\n @\n\n _triggerSetChildren: (key, value, oldValue) ->\n return @ if @_numChildren == 0\n key = key + ''\n keyParts = key.split '.'\n partialKey = ''\n childKeys = []\n regExps = {}\n\n for i, keyPart of keyParts\n if partialKey == ''\n partialKey = keyPart\n else\n partialKey += '.' + keyPart\n childKeys[i] = partialKey\n\n regExps[partialKey] = new RegExp '^' + partialKey + '\\.?'\n\n for id, child of @_children\n if child.key in childKeys\n childRemainderKey = key.replace regExps[child.key], ''\n child.trigger 'set', childRemainderKey, value, oldValue\n child._triggerSetChildren childRemainderKey, value, oldValue\n\n _triggerSet: (key, value, oldValue) ->\n @trigger 'set', key, value, oldValue\n if @parent\n parentKey = @key + '.' + key\n @parent._triggerSet parentKey, value, oldValue\n\n # Deep set some value\n extend: (key, value) ->\n @_mutate key\n\n unless value?\n @value objectAssign @value(), key\n else\n if isObject value\n @value objectAssign (@ref key).get(), value\n else\n clone = @clone()\n @set key, value\n @value objectAssign clone.get(), @value()\n @\n\n clone: (key) ->\n new Ref objectAssign {}, @get key\n\n # Walk tree using key, optionally update value\n index: (key, value, get=true, obj=@value()) ->\n if @parent\n return @parent.index @key + '.' + key, value, get\n\n if isNumber key\n key = String key\n\n props = key.split '.'\n\n if get\n # Get is simple, doesn't need to create properties as it goes\n while prop = props.shift()\n unless props.length\n return obj?[prop]\n obj = obj?[prop]\n return\n\n if !@_value?\n @_value = {}\n if !obj?\n obj = @_value\n\n # Set version creates tree if necessary\n while prop = props.shift()\n unless props.length\n return obj[prop] = value\n else\n next = props[0]\n unless obj[prop]?\n if isNaN Number next\n obj[prop] ?= {}\n else\n obj[prop] ?= []\n obj = obj[prop]\n return\n","import Ref from './ref'\n\nmethods = [\n 'extend'\n 'get'\n 'index'\n 'ref'\n 'set'\n 'value'\n 'clear'\n 'destroy'\n\n 'on'\n 'off'\n 'one'\n 'trigger'\n]\n\nrefer = (state, ref=null) ->\n ref ?= new Ref state\n\n wrapper = (key) -> ref.get key\n\n for method in methods\n do (method) ->\n wrapper[method] = ->\n ref[method].apply ref, arguments\n\n wrapper.refer = (key) -> refer null, ref.ref key\n wrapper.clone = (key) -> refer null, ref.clone key\n wrapper\n\nrefer.Ref = Ref\n\nexport default refer\n","export default class PromiseInspection\n constructor: ({@state, @value, @reason}) ->\n\n isFulfilled: ->\n @state is 'fulfilled'\n\n isRejected: ->\n @state is 'rejected'\n","# Let the obfiscator compress these down by assigning them to variables\nexport _undefined = undefined\nexport _undefinedString = 'undefined'\n","import {_undefined, _undefinedString} from './utils'\n\n# See http://www.bluejava.com/4NS/Speed-up-your-Websites-with-a-Faster-setTimeout-using-soon\n# This is a very fast \"asynchronous\" flow control - i.e. it yields the thread\n# and executes later, but not much later. It is far faster and lighter than\n# using setTimeout(fn,0) for yielding threads. Its also faster than other\n# setImmediate shims, as it uses Mutation Observer and \"mainlines\" successive\n# calls internally.\n#\n# WARNING: This does not yield to the browser UI loop, so by using this\n# repeatedly you can starve the UI and be unresponsive to the user.\n#\n# This is an even FASTER version of https://gist.github.com/bluejava/9b9542d1da2a164d0456\n# that gives up passing context and arguments, in exchange for a 25x speed\n# increase. (Use anon function to pass context/args)\nsoon = do ->\n # Function queue\n fq = []\n\n # Avoid using shift() by maintaining a start pointer - and remove items in\n # chunks of 1024 (bufferSize)\n fqStart = 0\n bufferSize = 1024\n\n callQueue = ->\n # This approach allows new yields to pile on during the execution of these\n while fq.length - fqStart\n try\n # No context or args...\n fq[fqStart]()\n catch err\n unless typeof console is 'undefined'\n console.error err\n\n # Increase start pointer and dereference function just called\n fq[fqStart++] = _undefined\n\n if fqStart == bufferSize\n fq.splice 0, bufferSize\n fqStart = 0\n\n return\n\n # Run the callQueue function asynchronously, as fast as possible\n cqYield = do ->\n # This is the fastest way browsers have to yield processing\n if typeof MutationObserver != _undefinedString\n # First, create a div not attached to DOM to 'observe'\n dd = document.createElement 'div'\n mo = new MutationObserver callQueue\n mo.observe dd, attributes: true\n\n return ->\n dd.setAttribute 'a', 0\n return\n\n # If No MutationObserver - this is the next best thing - handles Node and MSIE\n if typeof setImmediate != _undefinedString\n return ->\n setImmediate callQueue\n return\n\n # Final fallback - shouldn't be used for much except very old browsers\n ->\n setTimeout callQueue, 0\n return\n\n\n # This is the function that will be assigned to soon it takes the function to\n # call and examines all arguments.\n (fn) ->\n # Push the function and any remaining arguments along with context\n fq.push fn\n\n # Upon adding our first entry, kick off the callback\n if fq.length - fqStart == 1\n cqYield()\n return\n\nexport default soon\n","# Largely copied from Zousan: https://github.com/bluejava/zousan\nimport PromiseInspection from './promise-inspection'\nimport soon from './soon'\n\n# Let the obfiscator compress these down by assigning them to variables\n_undefined = undefined\n_undefinedString = 'undefined'\n\n# These are the three possible states (PENDING remains undefined - as intended)\n# a promise can be in. The state is stored in this.state as read-only\nSTATE_PENDING = _undefined\nSTATE_FULFILLED = 'fulfilled'\nSTATE_REJECTED = 'rejected'\n\nresolveClient = (c, arg) ->\n if typeof c.y == 'function'\n try\n yret = c.y.call(_undefined, arg)\n c.p.resolve yret\n catch err\n c.p.reject err\n else\n # pass this along...\n c.p.resolve arg\n return\n\nrejectClient = (c, reason) ->\n if typeof c.n == 'function'\n try\n yret = c.n.call(_undefined, reason)\n c.p.resolve yret\n catch err\n c.p.reject err\n else\n # pass this along...\n c.p.reject reason\n return\n\n\nclass Promise\n constructor: (fn) ->\n if fn\n fn (arg) =>\n @resolve arg\n , (arg) =>\n @reject arg\n\n resolve: (value) ->\n if @state != STATE_PENDING\n return\n\n if value == @\n return @reject new TypeError 'Attempt to resolve promise with self'\n\n if value and (typeof value == 'function' or typeof value == 'object')\n try\n # First time through?\n first = true\n next = value.then\n\n if typeof next == 'function'\n # And call the value.then (which is now in \"then\") with value as the\n # context and the resolve/reject functions per thenable spec\n next.call value, (ra) =>\n if first\n first = false if first\n @resolve ra\n return\n , (rr) =>\n if first\n first = false\n @reject rr\n return\n return\n catch err\n @reject err if first\n return\n\n @state = STATE_FULFILLED\n @v = value\n\n if clients = @c\n soon =>\n resolveClient c, value for c in clients\n return\n return\n\n reject: (reason) ->\n return if @state != STATE_PENDING\n\n @state = STATE_REJECTED\n @v = reason\n\n if clients = @c\n soon ->\n rejectClient c, reason for c in clients\n return\n else if !Promise.suppressUncaughtRejectionError and typeof console != 'undefined'\n console.log 'Broken Promise, please catch rejections: ', reason, if reason then reason.stack else null\n\n return\n\n then: (onFulfilled, onRejected) ->\n p = new Promise\n\n client =\n y: onFulfilled\n n: onRejected\n p: p\n\n if @state == STATE_PENDING\n # We are pending, so client must wait - so push client to end of this.c\n # array (create if necessary for efficiency)\n if @c\n @c.push client\n else\n @c = [ client ]\n else\n s = @state\n a = @v\n soon ->\n # We are not pending, so yield script and resolve/reject as needed\n if s == STATE_FULFILLED\n resolveClient client, a\n else\n rejectClient client, a\n return\n p\n\n catch: (cfn) ->\n @then null, cfn\n\n finally: (cfn) ->\n @then cfn, cfn\n\n timeout: (ms, msg) ->\n msg = msg or 'timeout'\n\n new Promise (resolve, reject) =>\n setTimeout ->\n # This will fail silently if promise already resolved or rejected\n reject Error(msg)\n , ms\n\n # This will fail silently if promise already timed out\n @then (val) ->\n resolve val\n return\n , (err) ->\n reject err\n return\n return\n\n callback: (cb) ->\n if typeof cb is 'function'\n @then (val) -> cb null, val\n @catch (err) -> cb err, null\n @\n\nexport default Promise\n","import Promise from './promise'\nimport PromiseInspection from './promise-inspection'\n\nexport resolve = (val) ->\n z = new Promise\n z.resolve val\n z\n\nexport reject = (err) ->\n z = new Promise\n z.reject err\n z\n\nexport all = (ps) ->\n # Sesults and resolved count\n results = []\n rc = 0\n retP = new Promise()\n\n resolvePromise = (p, i) ->\n if !p or typeof p.then != 'function'\n p = resolve(p)\n\n p.then (yv) ->\n results[i] = yv\n rc++\n if rc == ps.length\n retP.resolve results\n return\n\n , (nv) ->\n retP.reject nv\n return\n\n return\n\n resolvePromise p, i for p, i in ps\n\n # For zero length arrays, resolve immediately\n if !ps.length\n retP.resolve results\n\n retP\n\nexport reflect = (promise) ->\n new Promise (resolve, reject) ->\n promise\n .then (value) ->\n resolve new PromiseInspection\n state: 'fulfilled'\n value: value\n .catch (err) ->\n resolve new PromiseInspection\n state: 'rejected'\n reason: err\n\nexport settle = (promises) ->\n all promises.map reflect\n","import PromiseInspection from './promise-inspection'\nimport Promise from './promise'\nimport soon from './soon'\nimport {all, reflect, reject, resolve, settle} from './helpers'\n\nPromise.all = all\nPromise.reflect = reflect\nPromise.reject = reject\nPromise.resolve = resolve\nPromise.settle = settle\nPromise.soon = soon\n\nexport default Promise\n","var browser = (function() {\n var loadTime, now;\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n now = function() {\n return performance.now();\n };\n } else {\n now = function() {\n return Date.now() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n return now;\n})();\n\nexport default browser;\n","import now from 'es-now'\n\nframeDuration = 1000 / 60\nid = 0\nlast = 0\nqueue = []\n\nexport raf = requestAnimationFrame = (callback) ->\n if queue.length == 0\n now_ = now()\n next = Math.max(0, frameDuration - (now_ - last))\n last = next + now_\n\n setTimeout ->\n cp = queue.slice(0)\n\n # Clear queue here to prevent callbacks from appending listeners to the\n # current frame's queue\n queue.length = 0\n\n for x in cp\n unless x.cancelled\n try\n x.callback last\n catch err\n setTimeout ->\n throw err\n , 0\n return\n , Math.round next\n queue.push\n handle: ++id\n callback: callback\n cancelled: false\n id\n\nexport caf = cancelAnimationFrame = (handle) ->\n for x in queue\n if x.handle == handle\n x.cancelled = true\n return\n","import Promise from 'broken'\nimport riot from 'riot/lib/riot'\nimport {raf} from 'es-raf'\n\ntodos = {}\nrafId = -1\np = null\nid = 0\n\nwindow.Promise ?= Promise\nwindow.requestAnimationFrame ?= raf\n\nscheduleUpdate = (tag)->\n if !p\n p = new Promise\n p.then ()->\n for _, todo of todos\n todo.update()\n p = null\n todos = {}\n rafId = -1\n\n if todos['*']\n return p\n\n if !tag\n todos =\n '*': riot\n else if !tag.update?\n throw new Error 'tag has no update routine'\n else\n currentTag = tag\n\n while currentTag?\n parentTag = currentTag.parent\n if !currentTag._schedulingId\n currentTag._schedulingId = id++\n else if todos[currentTag.schedulingId]?\n return p\n currentTag = parentTag\n\n todos[tag._schedulingId] = tag\n\n if rafId == -1\n rafId = requestAnimationFrame ()->\n p.resolve()\n\n return p\n\n\nexport { scheduleUpdate }\n","import isFunction from 'es-is/function'\nimport objectAssign from 'es-object-assign'\nimport riot from 'riot/lib/riot'\n\nimport {scheduleUpdate} from '../schedule'\n\nsetPrototypeOf = (()->\n setProtoOf = (obj, proto)->\n obj.__proto__ = proto\n\n mixinProperties = (obj, proto)->\n for prop of proto\n obj[prop] = proto[prop] if !obj[prop]?\n\n return if Object.setPrototypeOf || {__proto__:[]} instanceof Array then setProtoOf else mixinProperties\n)()\n\ncollapsePrototype = (collapse, proto)->\n if proto == View.prototype\n return\n\n parentProto = Object.getPrototypeOf proto\n collapsePrototype collapse, parentProto\n\n if members = Object.getOwnPropertyNames parentProto\n for member in members\n collapse[member] = parentProto[member]\n\n objectAssign collapse, parentProto\n\nclass View\n @register: ->\n new @\n\n tag: ''\n html: ''\n css: ''\n attrs: ''\n events: null\n\n constructor: ->\n newProto = collapsePrototype {}, @\n\n @beforeInit()\n\n riot.tag @tag, @html, @css, @attrs, (opts)->\n if newProto?\n for k, v of newProto\n if isFunction(v)\n do (v) =>\n if @[k]?\n oldFn = @[k]\n @[k] = (args...)=>\n oldFn.apply @, args\n return v.apply @, args\n else\n @[k] = (args...)=>\n return v.apply @, args\n else\n @[k] = v\n\n # Loop up the parents setting parent as the prototype so you have access to vars on it\n # Might be terrible, might be great, who knows?\n self = @\n parent = self.parent ? opts.parent\n proto = Object.getPrototypeOf self\n while parent && parent != proto\n setPrototypeOf self, parent\n self = parent\n parent = self.parent\n proto = Object.getPrototypeOf self\n\n if opts?\n for k, v of opts\n @[k] = v\n\n if @events?\n for name, handler of @events\n do (name, handler) =>\n if typeof handler == 'string'\n @on name, (args...)=> @[handler].apply @, args\n else\n @on name, (args...)=> handler.apply @, args\n\n @init opts\n\n beforeInit: ->\n init: ->\n scheduleUpdate: ->\n scheduleUpdate @\n\nexport default View\n","import Promise from 'broken'\nimport refer from 'referential'\nimport isFunction from 'es-is/function'\nimport observable from 'riot-observable'\n\nisRef = (o) -> o? and isFunction o.ref\n\n# inputify takes a model and a configuration and returns observable values\n# data: an generic dictionary object that you want to generate observable properties from\n# configs: a mapping of model values to a middleware stack eg.\n# field1: middleware\n# where middleware is an array of (value, name, model)-> value\ninputify = (data, configs = {}) ->\n ref = data\n if !isRef ref\n ref = refer data\n inputs = {}\n\n for name, config of configs\n do (name, config)->\n middleware = []\n\n if config && config.length > 0\n for middlewareFn in config\n do (name, middlewareFn)->\n middleware.push (pair)->\n [ref, name] = pair\n return Promise.resolve pair\n .then (pair)->\n return middlewareFn.call(pair[0], pair[0].get(pair[1]), pair[1], pair[0])\n .then (v)->\n ref.set(name, v)\n return pair\n\n middleware.push (pair)->\n [ref, name] = pair\n # on success resolve the value in the ref\n return Promise.resolve ref.get name\n\n validate = (ref, name)->\n p = Promise.resolve [ref, name]\n for middlewareFn in middleware\n p = p.then middlewareFn\n return p\n\n input =\n name: name\n ref: ref\n\n config: config\n validate: validate\n\n # make the input an observable so both form and input can observe it\n observable input\n\n inputs[name] = input\n\n return inputs\n\nexport default inputify\n","import View from './view'\nimport inputify from './inputify'\n\nimport Promise from 'broken'\n\n# Supported Events:\n# submit - fired when form is submitted\n\nclass Form extends View\n # input for validate\n # configs: null\n\n # output from validate that's used for configuring InputViews\n # inputs: null\n\n # ref to use for validate\n # data: null\n\n # default transclude contents\n html: '<yield/>'\n\n initInputs: ->\n @inputs = {}\n\n if @configs?\n @inputs = inputify @data, @configs\n\n init: ->\n @initInputs()\n\n submit: (e) ->\n ps = []\n for name, input of @inputs\n pRef = {}\n input.trigger 'validate', pRef\n if pRef.p?\n ps.push pRef.p\n\n p = Promise.settle(ps).then (results) =>\n for result in results\n if !result.isFulfilled()\n return\n @_submit.apply @, arguments\n\n if e?\n e.preventDefault()\n e.stopPropagation()\n\n return p\n\n _submit: ->\n # do actual submit stuff\n\nexport default Form\n","import View from './view'\nimport observable from 'riot-observable'\n\n# Input binds to specific fields in the data tree and automatically\n# updates the UI from the data tree on update and updates fields in\n# the data tree on user interaction.\nclass Input extends View\n input: null\n\n # Is the input validated?\n #\n # Input state is calculated like this:\n # initial: @value = false\n # valid: @value = true\n # invald: @value = false && @errorMessage != ''\n valid: false\n\n # Records the error from any validation middleware if any\n errorMessage: ''\n\n init: ->\n # if no input or lookup, throw error\n if !@input? && !@lookup? && !@bind?\n throw new Error 'No input or bind provided'\n\n # lookup input in parent input by key if things exist\n if !@input? && @inputs?\n @input = @inputs[(@lookup ? @bind)]\n\n # manually create using parent data\n if !@input?\n @input =\n name: (@lookup ? @bind)\n ref: @data\n validate: (ref, name)->\n return Promise.resolve [ref, name]\n\n observable @input\n\n @input.on 'validate', (pRef) => @validate pRef\n\n # auto refresh on update of field\n @input.ref.on 'set', (n, v1, v2) =>\n if n == @input.name && v1 != v2\n @_change v1, true\n @scheduleUpdate()\n\n getValue: (event) ->\n return event.target.value\n\n change: (event) ->\n value = @getValue event\n\n @_change value\n\n _change: (value, forced) ->\n {ref, name} = @input\n\n if !forced && value == ref.get name\n return\n\n @input.ref.set name, value\n\n @clearError()\n @validate()\n\n error: (err) ->\n @errorMessage = err?.message ? err\n\n changed: ->\n\n clearError: ->\n @errorMessage = ''\n\n # support pass by reference since observable.trigger doesn't return things\n validate: (pRef) ->\n p = @input.validate @input.ref, @input.name\n .then (value)=>\n @changed(value)\n @valid = true\n @scheduleUpdate()\n .catch (err)=>\n @error(err)\n @valid = false\n @scheduleUpdate()\n throw err\n\n if pRef?\n pRef.p = p\n\n return p\n\nexport default Input\n","import Form from './form'\nimport Input from './input'\nimport View from './view'\nimport inputify from './inputify'\n\nexport default Views =\n Form: Form\n Input: Input\n View: View\n inputify: inputify\n","import isFunction from 'es-is/function'\nimport riot from 'riot/lib/riot'\nimport refer from 'referential'\n\nimport Views from './views'\nimport {scheduleUpdate} from './schedule'\n\nEl =\n # deprecated\n Views: Views\n\n View: Views.View\n Form: Views.Form\n Input: Views.Input\n\n ref: refer\n riot: riot\n\n scheduleUpdate: ()->\n scheduleUpdate()\n\nfor k, v of riot\n do (k, v) ->\n if isFunction v\n El[k] = ->\n v.apply riot, arguments\n\nexport default El\n"],"names":["observable","isFunction","settings","isObject","isSvg","Tag","tag","tag2","mount","mixin","update","unregister","version","s","vdom","misc.extend","o","objectAssign","isNumber","Ref","_undefined","_undefinedString","Promise","soon","PromiseInspection","id","requestAnimationFrame","now","riot","slice","refer","extend","inputify","View","Form","Input","Views"],"mappings":"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"}