{"version":3,"sources":["webpack:///./node_modules/riot/riot.js"],"names":["window","undefined","riot","version","settings","__uid","__virtualDom","__tagImpl","T_UNDEF","XLINK_REGEX","SPECIAL_TAGS_REGEX","RESERVED_WORDS_BLACKLIST","SVG_TAGS_LIST","IE_VERSION","document","documentMode","FIREFOX","InstallTrigger","observable","el","callbacks","slice","Array","prototype","onEachEvent","e","fn","es","split","l","length","i","name","Object","defineProperties","on","value","events","pos","push","typed","enumerable","writable","configurable","off","cb","arr","splice","one","apply","arguments","trigger","fns","arglen","args","call","busy","concat","debouncedEmit","base","current","parser","secondParser","RE_ORIGIN","win","doc","hist","history","loc","location","prot","Router","clickEvent","ontouchstart","started","central","routeFound","emitStack","emitStackLevel","DEFAULT_PARSER","path","DEFAULT_SECOND_PARSER","filter","re","RegExp","match","start","autoExec","delay","t","emit","clearTimeout","setTimeout","click","this","$","s","bind","normalize","isString","str","getPathFromRoot","href","getPathFromBase","force","first","isRoot","shift","which","metaKey","ctrlKey","shiftKey","defaultPrevented","target","nodeName","parentNode","indexOf","go","title","preventDefault","shouldReplace","replaceState","pushState","m","second","third","r","some","action","mainRouter","route","create","newSubRouter","router","stop","arg","exec","fn2","query","q","_","k","v","readyState","brackets","UNDEF","_regex","_settings","R_STRINGS","S_QBLOCKS","source","UNSUPPORTED","NEED_ESCAPE","FINDBRACES","_pairs","cachedBrackets","_cache","_loopback","_rewrite","bp","replace","global","_create","pair","test","Error","_brackets","reOrIdx","_reset","tmpl","_bp","isexpr","parts","lastIndex","index","skipBraces","unescapeStr","ch","ix","recch","hasExpr","loopKeys","expr","key","val","trim","array","defineProperty","set","o","b","get","R_MLCOMMS","_tmpl","data","qstr","RE_DQUOTE","j","list","_parseExpr","join","RE_QBMARK","_getTmpl","Function","_logErr","err","ctx","errorHandler","riotData","tagName","root","_riot_id","haveRaw","hasRaw","clearCache","CH_IDEXPR","String","fromCharCode","RE_CSNAME","RE_QBLOCK","RE_BREND","asText","div","cnt","jsb","rightContext","_wrapExpr","mm","lv","ir","JS_CONTEXT","JS_VARNAME","JS_NOPROPS","tb","p","mvar","mkdom","reHasYield","reYieldAll","reYieldSrc","reYieldDest","rootEls","tr","th","td","col","tblTags","_mkdom","templ","html","checkSvg","toLowerCase","mkEl","src","ref","text","def","replaceYield","select","parent","innerHTML","firstChild","selectedIndex","tname","childElementCount","specialTags","container","DOMParser","parseFromString","appendChild","ownerDocument","importNode","documentElement","setInnerHTML","stub","mkitem","item","moveNestedTags","child","keys","tags","forEach","tag","isArray","each","moveChildTag","addVirtual","sib","_root","_virts","nextSibling","insertBefore","moveVirtual","len","insertTag","isVirtual","prevTag","newTag","virtualFn","dom","isInStub","childNodes","styleManager","_riot","add","inject","styleNode","newNode","setAttr","userNode","id","replaceChild","getElementsByTagName","cssTextProp","styleSheet","stylesToInject","css","cssText","parseNamedElements","childTags","forceParsingNamed","walk","nodeType","isLoop","getAttr","getTag","opts","Tag","getTagName","ptag","getImmediateCustomParentTag","_parent","addChildTag","initChildTag","isArr","getNamedKey","contains","setNamed","parseExpressions","expressions","addExpr","extra","extend","attr","type","nodeValue","remAttr","hasKeys","mustReorder","impl","getOuterHTML","useRoot","createTextNode","isOption","oldItems","removeChild","items","frag","createDocumentFragment","map","itemsLength","_mustReorder","oldPos","hasImpl","cloneNode","mount","update","_item","unmount","unmountRedundant","multiple","n","__riot1374","_each","attributes","bool","conf","self","inherit","cleanUpData","propsInSyncWithParent","updateOpts","toCamel","inheritFrom","mustSync","onChildUpdate","toggle","isMount","evt","_tag","isMounted","isInherited","isObject","isWritable","normalizeData","attrName","isFunction","handler","event","currentTarget","srcElement","charCode","keyCode","returnValue","preventUpdate","setEventHandler","remove","insertTo","inStub","style","display","RIOT_PREFIX","rAF","mix","instance","obj","props","mixin","proto","getPrototypeOf","getOwnPropertyNames","descriptor","getOwnPropertyDescriptor","hasGetterSetter","hasOwnProperty","init","globalMixin","attrs","walkAttributes","keepRootTag","tagIndex","node","before","els","outerHTML","removeAttribute","string","c","toUpperCase","getAttribute","xlink","setAttributeNS","setAttribute","cachedTag","newPos","options","namedTag","a","isSvg","createElementNS","createElement","$$","selector","querySelectorAll","querySelector","mixins","globals","_id","w","raf","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","navigator","userAgent","lastTime","nowtime","Date","now","timeout","Math","max","util","g","store","tag2","allTags","addRiotTags","selectAllTags","nodeList","_el","pushTags","riotTag","_innerHTML","mountTo","vdom","exports","module"],"mappings":"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","file":"script/chunks/chunk.vendor-riot.71d03a8915.js","sourcesContent":["/* Riot v2.6.8, @license MIT */\n\n;(function(window, undefined) {\n 'use strict';\nvar riot = { version: 'v2.6.8', settings: {} },\n // be aware, internal usage\n // ATTENTION: prefix the global dynamic variables with `__`\n\n // counter to give a unique id to all the Tag instances\n __uid = 0,\n // tags instances cache\n __virtualDom = [],\n // tags implementation cache\n __tagImpl = {},\n\n /**\n * Const\n */\n GLOBAL_MIXIN = '__global_mixin',\n\n // riot specific prefixes\n RIOT_PREFIX = 'riot-',\n RIOT_TAG = RIOT_PREFIX + 'tag',\n RIOT_TAG_IS = 'data-is',\n\n // for typeof == '' comparisons\n T_STRING = 'string',\n T_OBJECT = 'object',\n T_UNDEF = 'undefined',\n T_FUNCTION = 'function',\n XLINK_NS = 'http://www.w3.org/1999/xlink',\n XLINK_REGEX = /^xlink:(\\w+)/,\n // special native tags that cannot be treated like the others\n SPECIAL_TAGS_REGEX = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?|opt(?:ion|group))$/,\n RESERVED_WORDS_BLACKLIST = /^(?:_(?:item|id|parent)|update|root|(?:un)?mount|mixin|is(?:Mounted|Loop)|tags|parent|opts|trigger|o(?:n|ff|ne))$/,\n // SVG tags list https://www.w3.org/TR/SVG/attindex.html#PresentationAttributes\n SVG_TAGS_LIST = ['altGlyph', 'animate', 'animateColor', 'circle', 'clipPath', 'defs', 'ellipse', 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feFlood', 'feGaussianBlur', 'feImage', 'feMerge', 'feMorphology', 'feOffset', 'feSpecularLighting', 'feTile', 'feTurbulence', 'filter', 'font', 'foreignObject', 'g', 'glyph', 'glyphRef', 'image', 'line', 'linearGradient', 'marker', 'mask', 'missing-glyph', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'switch', 'symbol', 'text', 'textPath', 'tref', 'tspan', 'use'],\n\n // version# for IE 8-11, 0 for others\n IE_VERSION = (window && window.document || {}).documentMode | 0,\n\n // detect firefox to fix #1374\n FIREFOX = window && !!window.InstallTrigger\n/* istanbul ignore next */\nriot.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 * Private Methods\n */\n\n /**\n * Helper function needed to get and loop all the events in a string\n * @param { String } e - event string\n * @param {Function} fn - callback\n */\n function onEachEvent(e, fn) {\n var es = e.split(' '), l = es.length, i = 0\n for (; i < l; i++) {\n var name = es[i]\n if (name) fn(name, i)\n }\n }\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 space separated list of `events` and\n * execute the `callback` each time an event is triggered.\n * @param { String } events - events ids\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n on: {\n value: function(events, fn) {\n if (typeof fn != 'function') return el\n\n onEachEvent(events, function(name, pos) {\n (callbacks[name] = callbacks[name] || []).push(fn)\n fn.typed = pos > 0\n })\n\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Removes the given space separated list of `events` listeners\n * @param { String } events - events ids\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n off: {\n value: function(events, fn) {\n if (events == '*' && !fn) callbacks = {}\n else {\n onEachEvent(events, function(name, pos) {\n if (fn) {\n var arr = callbacks[name]\n for (var i = 0, cb; cb = arr && arr[i]; ++i) {\n if (cb == fn) arr.splice(i--, 1)\n }\n } else delete callbacks[name]\n })\n }\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Listen to the given space separated list of `events` and\n * execute the `callback` at most once\n * @param { String } events - events ids\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n one: {\n value: function(events, fn) {\n function on() {\n el.off(events, on)\n fn.apply(el, arguments)\n }\n return el.on(events, 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 space separated list of `events`\n * @param { String } events - events ids\n * @returns { Object } el\n */\n trigger: {\n value: function(events) {\n\n // getting the arguments\n var arglen = arguments.length - 1,\n args = new Array(arglen),\n fns\n\n for (var i = 0; i < arglen; i++) {\n args[i] = arguments[i + 1] // skip first argument\n }\n\n onEachEvent(events, function(name, pos) {\n\n fns = slice.call(callbacks[name] || [], 0)\n\n for (var i = 0, fn; fn = fns[i]; ++i) {\n if (fn.busy) continue\n fn.busy = 1\n fn.apply(el, fn.typed ? [name].concat(args) : args)\n if (fns[i] !== fn) { i-- }\n fn.busy = 0\n }\n\n if (callbacks['*'] && name != '*')\n el.trigger.apply(el, ['*', name].concat(args))\n\n })\n\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n }\n })\n\n return el\n\n}\n/* istanbul ignore next */\n;(function(riot) {\n\n/**\n * Simple client-side router\n * @module riot-route\n */\n\n\nvar RE_ORIGIN = /^.+?\\/\\/+[^\\/]+/,\n EVENT_LISTENER = 'EventListener',\n REMOVE_EVENT_LISTENER = 'remove' + EVENT_LISTENER,\n ADD_EVENT_LISTENER = 'add' + EVENT_LISTENER,\n HAS_ATTRIBUTE = 'hasAttribute',\n REPLACE = 'replace',\n POPSTATE = 'popstate',\n HASHCHANGE = 'hashchange',\n TRIGGER = 'trigger',\n MAX_EMIT_STACK_LEVEL = 3,\n win = typeof window != 'undefined' && window,\n doc = typeof document != 'undefined' && document,\n hist = win && history,\n loc = win && (hist.location || win.location), // see html5-history-api\n prot = Router.prototype, // to minify more\n clickEvent = doc && doc.ontouchstart ? 'touchstart' : 'click',\n started = false,\n central = riot.observable(),\n routeFound = false,\n debouncedEmit,\n base, current, parser, secondParser, emitStack = [], emitStackLevel = 0\n\n/**\n * Default parser. You can replace it via router.parser method.\n * @param {string} path - current path (normalized)\n * @returns {array} array\n */\nfunction DEFAULT_PARSER(path) {\n return path.split(/[/?#]/)\n}\n\n/**\n * Default parser (second). You can replace it via router.parser method.\n * @param {string} path - current path (normalized)\n * @param {string} filter - filter string (normalized)\n * @returns {array} array\n */\nfunction DEFAULT_SECOND_PARSER(path, filter) {\n var re = new RegExp('^' + filter[REPLACE](/\\*/g, '([^/?#]+?)')[REPLACE](/\\.\\./, '.*') + '$'),\n args = path.match(re)\n\n if (args) return args.slice(1)\n}\n\n/**\n * Simple/cheap debounce implementation\n * @param {function} fn - callback\n * @param {number} delay - delay in seconds\n * @returns {function} debounced function\n */\nfunction debounce(fn, delay) {\n var t\n return function () {\n clearTimeout(t)\n t = setTimeout(fn, delay)\n }\n}\n\n/**\n * Set the window listeners to trigger the routes\n * @param {boolean} autoExec - see route.start\n */\nfunction start(autoExec) {\n debouncedEmit = debounce(emit, 1)\n win[ADD_EVENT_LISTENER](POPSTATE, debouncedEmit)\n win[ADD_EVENT_LISTENER](HASHCHANGE, debouncedEmit)\n doc[ADD_EVENT_LISTENER](clickEvent, click)\n if (autoExec) emit(true)\n}\n\n/**\n * Router class\n */\nfunction Router() {\n this.$ = []\n riot.observable(this) // make it observable\n central.on('stop', this.s.bind(this))\n central.on('emit', this.e.bind(this))\n}\n\nfunction normalize(path) {\n return path[REPLACE](/^\\/|\\/$/, '')\n}\n\nfunction isString(str) {\n return typeof str == 'string'\n}\n\n/**\n * Get the part after domain name\n * @param {string} href - fullpath\n * @returns {string} path from root\n */\nfunction getPathFromRoot(href) {\n return (href || loc.href)[REPLACE](RE_ORIGIN, '')\n}\n\n/**\n * Get the part after base\n * @param {string} href - fullpath\n * @returns {string} path from base\n */\nfunction getPathFromBase(href) {\n return base[0] == '#'\n ? (href || loc.href || '').split(base)[1] || ''\n : (loc ? getPathFromRoot(href) : href || '')[REPLACE](base, '')\n}\n\nfunction emit(force) {\n // the stack is needed for redirections\n var isRoot = emitStackLevel == 0, first\n if (MAX_EMIT_STACK_LEVEL <= emitStackLevel) return\n\n emitStackLevel++\n emitStack.push(function() {\n var path = getPathFromBase()\n if (force || path != current) {\n central[TRIGGER]('emit', path)\n current = path\n }\n })\n if (isRoot) {\n while (first = emitStack.shift()) first() // stack increses within this call\n emitStackLevel = 0\n }\n}\n\nfunction click(e) {\n if (\n e.which != 1 // not left click\n || e.metaKey || e.ctrlKey || e.shiftKey // or meta keys\n || e.defaultPrevented // or default prevented\n ) return\n\n var el = e.target\n while (el && el.nodeName != 'A') el = el.parentNode\n\n if (\n !el || el.nodeName != 'A' // not A tag\n || el[HAS_ATTRIBUTE]('download') // has download attr\n || !el[HAS_ATTRIBUTE]('href') // has no href attr\n || el.target && el.target != '_self' // another window or frame\n || el.href.indexOf(loc.href.match(RE_ORIGIN)[0]) == -1 // cross origin\n ) return\n\n if (el.href != loc.href\n && (\n el.href.split('#')[0] == loc.href.split('#')[0] // internal jump\n || base[0] != '#' && getPathFromRoot(el.href).indexOf(base) !== 0 // outside of base\n || base[0] == '#' && el.href.split(base)[0] != loc.href.split(base)[0] // outside of #base\n || !go(getPathFromBase(el.href), el.title || doc.title) // route not found\n )) return\n\n e.preventDefault()\n}\n\n/**\n * Go to the path\n * @param {string} path - destination path\n * @param {string} title - page title\n * @param {boolean} shouldReplace - use replaceState or pushState\n * @returns {boolean} - route not found flag\n */\nfunction go(path, title, shouldReplace) {\n // Server-side usage: directly execute handlers for the path\n if (!hist) return central[TRIGGER]('emit', getPathFromBase(path))\n\n path = base + normalize(path)\n title = title || doc.title\n // browsers ignores the second parameter `title`\n shouldReplace\n ? hist.replaceState(null, title, path)\n : hist.pushState(null, title, path)\n // so we need to set it manually\n doc.title = title\n routeFound = false\n emit()\n return routeFound\n}\n\n/**\n * Go to path or set action\n * a single string: go there\n * two strings: go there with setting a title\n * two strings and boolean: replace history with setting a title\n * a single function: set an action on the default route\n * a string/RegExp and a function: set an action on the route\n * @param {(string|function)} first - path / action / filter\n * @param {(string|RegExp|function)} second - title / action\n * @param {boolean} third - replace flag\n */\nprot.m = function(first, second, third) {\n if (isString(first) && (!second || isString(second))) go(first, second, third || false)\n else if (second) this.r(first, second)\n else this.r('@', first)\n}\n\n/**\n * Stop routing\n */\nprot.s = function() {\n this.off('*')\n this.$ = []\n}\n\n/**\n * Emit\n * @param {string} path - path\n */\nprot.e = function(path) {\n this.$.concat('@').some(function(filter) {\n var args = (filter == '@' ? parser : secondParser)(normalize(path), normalize(filter))\n if (typeof args != 'undefined') {\n this[TRIGGER].apply(null, [filter].concat(args))\n return routeFound = true // exit from loop\n }\n }, this)\n}\n\n/**\n * Register route\n * @param {string} filter - filter for matching to url\n * @param {function} action - action to register\n */\nprot.r = function(filter, action) {\n if (filter != '@') {\n filter = '/' + normalize(filter)\n this.$.push(filter)\n }\n this.on(filter, action)\n}\n\nvar mainRouter = new Router()\nvar route = mainRouter.m.bind(mainRouter)\n\n/**\n * Create a sub router\n * @returns {function} the method of a new Router object\n */\nroute.create = function() {\n var newSubRouter = new Router()\n // assign sub-router's main method\n var router = newSubRouter.m.bind(newSubRouter)\n // stop only this sub-router\n router.stop = newSubRouter.s.bind(newSubRouter)\n return router\n}\n\n/**\n * Set the base of url\n * @param {(str|RegExp)} arg - a new base or '#' or '#!'\n */\nroute.base = function(arg) {\n base = arg || '#'\n current = getPathFromBase() // recalculate current path\n}\n\n/** Exec routing right now **/\nroute.exec = function() {\n emit(true)\n}\n\n/**\n * Replace the default router to yours\n * @param {function} fn - your parser function\n * @param {function} fn2 - your secondParser function\n */\nroute.parser = function(fn, fn2) {\n if (!fn && !fn2) {\n // reset parser for testing...\n parser = DEFAULT_PARSER\n secondParser = DEFAULT_SECOND_PARSER\n }\n if (fn) parser = fn\n if (fn2) secondParser = fn2\n}\n\n/**\n * Helper function to get url query as an object\n * @returns {object} parsed query\n */\nroute.query = function() {\n var q = {}\n var href = loc.href || current\n href[REPLACE](/[?&](.+?)=([^&]*)/g, function(_, k, v) { q[k] = v })\n return q\n}\n\n/** Stop routing **/\nroute.stop = function () {\n if (started) {\n if (win) {\n win[REMOVE_EVENT_LISTENER](POPSTATE, debouncedEmit)\n win[REMOVE_EVENT_LISTENER](HASHCHANGE, debouncedEmit)\n doc[REMOVE_EVENT_LISTENER](clickEvent, click)\n }\n central[TRIGGER]('stop')\n started = false\n }\n}\n\n/**\n * Start routing\n * @param {boolean} autoExec - automatically exec after starting if true\n */\nroute.start = function (autoExec) {\n if (!started) {\n if (win) {\n if (document.readyState == 'complete') start(autoExec)\n // the timeout is needed to solve\n // a weird safari bug https://github.com/riot/route/issues/33\n else win[ADD_EVENT_LISTENER]('load', function() {\n setTimeout(function() { start(autoExec) }, 1)\n })\n }\n started = true\n }\n}\n\n/** Prepare the router **/\nroute.base()\nroute.parser()\n\nriot.route = route\n})(riot)\n/* istanbul ignore next */\n\n/**\n * The riot template engine\n * @version v2.4.2\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\nvar brackets = (function (UNDEF) {\n\n var\n REGLOB = 'g',\n\n R_MLCOMMS = /\\/\\*[^*]*\\*+(?:[^*\\/][^*]*\\*+)*\\//g,\n\n R_STRINGS = /\"[^\"\\\\]*(?:\\\\[\\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 FINDBRACES = {\n '(': RegExp('([()])|' + S_QBLOCKS, REGLOB),\n '[': RegExp('([[\\\\]])|' + S_QBLOCKS, REGLOB),\n '{': RegExp('([{}])|' + S_QBLOCKS, REGLOB)\n },\n\n DEFAULT = '{ }'\n\n var _pairs = [\n '{', '}',\n '{', '}',\n /{[^}]*}/,\n /\\\\([{}])/g,\n /\\\\({)|{/g,\n RegExp('\\\\\\\\(})|([[({])|(})|' + S_QBLOCKS, 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_QBLOCKS, 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 isexpr = start = re.lastIndex = 0\n\n while ((match = re.exec(str))) {\n\n pos = match.index\n\n if (isexpr) {\n\n if (match[2]) {\n re.lastIndex = skipBraces(str, match[2], re.lastIndex)\n continue\n }\n if (!match[3]) {\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 return parts\n\n function unescapeStr (s) {\n if (tmpl || isexpr) {\n parts.push(s && s.replace(_bp[5], '$1'))\n } else {\n parts.push(s)\n }\n }\n\n function skipBraces (s, ch, ix) {\n var\n match,\n recch = FINDBRACES[ch]\n\n recch.lastIndex = ix\n ix = 1\n while ((match = recch.exec(s))) {\n if (match[1] &&\n !(match[1] === ch ? ++ix : --ix)) break\n }\n return ix ? s.length : recch.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\n _brackets.R_STRINGS = R_STRINGS\n _brackets.R_MLCOMMS = R_MLCOMMS\n _brackets.S_QBLOCKS = S_QBLOCKS\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\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(data, _logErr)\n }\n\n _tmpl.haveRaw = brackets.hasRaw\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 if (_tmpl.errorHandler) {\n\n err.riotData = {\n tagName: ctx && ctx.root && ctx.root.tagName,\n _riot_id: ctx && ctx._riot_id //eslint-disable-line camelcase\n }\n _tmpl.errorHandler(err)\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\n CH_IDEXPR = String.fromCharCode(0x2057),\n RE_CSNAME = /^(?:(-?[_A-Za-z\\xA0-\\xFF][-\\w\\xA0-\\xFF]*)|\\u2057(\\d+)~):/,\n RE_QBLOCK = RegExp(brackets.S_QBLOCKS, 'g'),\n RE_DQUOTE = /\\u2057/g,\n RE_QBMARK = /\\u2057(\\d+)~/g\n\n function _getTmpl (str) {\n var\n qstr = [],\n expr,\n parts = brackets.split(str.replace(RE_DQUOTE, '\"'), 1)\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[0]) {\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\n RE_BREND = {\n '(': /[()]/g,\n '[': /[[\\]]/g,\n '{': /[{}]/g\n }\n\n function _parseExpr (expr, asText, qstr) {\n\n expr = expr\n .replace(RE_QBLOCK, function (s, div) {\n return s.length > 2 && !div ? CH_IDEXPR + (qstr.push(s) - 1) + '~' : s\n })\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 = 'v2.4.2'\n\n return _tmpl\n\n})()\n\n/*\n lib/browser/tag/mkdom.js\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*/\nvar mkdom = (function _mkdom() {\n var\n reHasYield = /|>([\\S\\s]*?)<\\/yield\\s*>|>)/ig,\n reYieldSrc = /]*)['\"]\\s*>([\\S\\s]*?)<\\/yield\\s*>/ig,\n reYieldDest = /|>([\\S\\s]*?)<\\/yield\\s*>)/ig\n var\n rootEls = { tr: 'tbody', th: 'tr', td: 'tr', col: 'colgroup' },\n tblTags = IE_VERSION && IE_VERSION < 10\n ? SPECIAL_TAGS_REGEX : /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?)$/\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 } templ - 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 } checkSvg - flag needed to know if we need to force the svg rendering in case of loop nodes\n * @returns {HTMLElement} DOM element with _templ_ merged through `YIELD` with the _html_.\n */\n function _mkdom(templ, html, checkSvg) {\n var\n match = templ && templ.match(/^\\s*<([-\\w]+)/),\n tagName = match && match[1].toLowerCase(),\n el = mkEl('div', checkSvg && isSVGTag(tagName))\n\n // replace all the yield tags with the tag inner html\n templ = replaceYield(templ, html)\n\n /* istanbul ignore next */\n if (tblTags.test(tagName))\n el = specialTags(el, templ, tagName)\n else\n setInnerHTML(el, templ)\n\n el.stub = true\n\n return el\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 */\n function specialTags(el, templ, tagName) {\n var\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 + templ.trim() + ' j) {\n t = tags[--i]\n tags.splice(i, 1)\n t.unmount()\n }\n}\n\n/**\n * Move the nested custom tags in non custom loop tags\n * @param { Object } child - non custom loop tag\n * @param { Number } i - current position of the loop tag\n */\nfunction moveNestedTags(child, i) {\n Object.keys(child.tags).forEach(function(tagName) {\n var tag = child.tags[tagName]\n if (isArray(tag))\n each(tag, function (t) {\n moveChildTag(t, tagName, i)\n })\n else\n moveChildTag(tag, tagName, i)\n })\n}\n\n/**\n * Adds the elements for a virtual tag\n * @param { Tag } tag - the tag whose root's children will be inserted or appended\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 */\nfunction addVirtual(tag, src, target) {\n var el = tag._root, sib\n tag._virts = []\n while (el) {\n sib = el.nextSibling\n if (target)\n src.insertBefore(el, target._root)\n else\n src.appendChild(el)\n\n tag._virts.push(el) // hold for unmounting\n el = sib\n }\n}\n\n/**\n * Move virtual tag and all child nodes\n * @param { Tag } tag - first child reference used to start move\n * @param { Node } src - the node that will do the inserting\n * @param { Tag } target - insert before this tag's first child\n * @param { Number } len - how many child nodes to move\n */\nfunction moveVirtual(tag, src, target, len) {\n var el = tag._root, sib, i = 0\n for (; i < len; i++) {\n sib = el.nextSibling\n src.insertBefore(el, target._root)\n el = sib\n }\n}\n\n/**\n * Insert a new tag avoiding the insert for the conditional tags\n * @param {Boolean} isVirtual [description]\n * @param { Tag } prevTag - tag instance used as reference to prepend our new tag\n * @param { Tag } newTag - new tag to be inserted\n * @param { HTMLElement } root - loop parent node\n * @param { Array } tags - array containing the current tags list\n * @param { Function } virtualFn - callback needed to move or insert virtual DOM\n * @param { Object } dom - DOM node we need to loop\n */\nfunction insertTag(isVirtual, prevTag, newTag, root, tags, virtualFn, dom) {\n if (isInStub(prevTag.root)) return\n if (isVirtual) virtualFn(prevTag, root, newTag, dom.childNodes.length)\n else root.insertBefore(prevTag.root, newTag.root) // #1374 some browsers reset selected here\n}\n\n\n/**\n * Manage tags having the 'each'\n * @param { Object } 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 */\nfunction _each(dom, parent, expr) {\n\n // remove the each property from the original tag\n remAttr(dom, 'each')\n\n var mustReorder = typeof getAttr(dom, 'no-reorder') !== T_STRING || remAttr(dom, 'no-reorder'),\n tagName = getTagName(dom),\n impl = __tagImpl[tagName] || { tmpl: getOuterHTML(dom) },\n useRoot = SPECIAL_TAGS_REGEX.test(tagName),\n root = dom.parentNode,\n ref = document.createTextNode(''),\n child = getTag(dom),\n isOption = tagName.toLowerCase() === 'option', // the option tags must be treated differently\n tags = [],\n oldItems = [],\n hasKeys,\n isVirtual = dom.tagName == 'VIRTUAL'\n\n // parse the each expression\n expr = tmpl.loopKeys(expr)\n\n // insert a marked where the loop tags will be injected\n root.insertBefore(ref, dom)\n\n // clean template code\n parent.one('before-mount', function () {\n\n // remove the original DOM node\n dom.parentNode.removeChild(dom)\n if (root.stub) root = parent.root\n\n }).on('update', function () {\n // get the new items collection\n var items = tmpl(expr.val, parent),\n // create a fragment to hold the new DOM nodes to inject in the parent tag\n frag = document.createDocumentFragment()\n\n // object loop. any changes cause full redraw\n if (!isArray(items)) {\n hasKeys = items || false\n items = hasKeys ?\n Object.keys(items).map(function (key) {\n return mkitem(expr, key, items[key])\n }) : []\n }\n\n // loop all the new items\n var i = 0,\n itemsLength = items.length\n\n for (; i < itemsLength; i++) {\n // reorder only if the items are objects\n var\n item = items[i],\n _mustReorder = mustReorder && typeof item == T_OBJECT && !hasKeys,\n oldPos = oldItems.indexOf(item),\n pos = ~oldPos && _mustReorder ? oldPos : i,\n // does a tag exist in this position?\n tag = tags[pos]\n\n item = !hasKeys && expr.key ? mkitem(expr, item, i) : item\n\n // new tag\n if (\n !_mustReorder && !tag // with no-reorder we just update the old tags\n ||\n _mustReorder && !~oldPos || !tag // by default we always try to reorder the DOM elements\n ) {\n\n tag = new Tag(impl, {\n parent: parent,\n isLoop: true,\n hasImpl: !!__tagImpl[tagName],\n root: useRoot ? root : dom.cloneNode(),\n item: item\n }, dom.innerHTML)\n\n tag.mount()\n\n if (isVirtual) tag._root = tag.root.firstChild // save reference for further moves or inserts\n // this tag must be appended\n if (i == tags.length || !tags[i]) { // fix 1581\n if (isVirtual)\n addVirtual(tag, frag)\n else frag.appendChild(tag.root)\n }\n // this tag must be insert\n else {\n insertTag(isVirtual, tag, tags[i], root, tags, addVirtual, dom)\n oldItems.splice(i, 0, item)\n }\n\n tags.splice(i, 0, tag)\n pos = i // handled here so no move\n } else tag.update(item, true)\n\n // reorder the tag if it's not located in its previous position\n if (\n pos !== i && _mustReorder &&\n tags[i] // fix 1581 unable to reproduce it in a test!\n ) {\n // #closes 2040 PLEASE DON'T REMOVE IT!\n // there are no tests for this feature\n if (contains(items, oldItems[i]))\n insertTag(isVirtual, tag, tags[i], root, tags, moveVirtual, dom)\n\n // update the position attribute if it exists\n if (expr.pos)\n tag[expr.pos] = i\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 // 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(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 // cache the real parent tag internally\n defineProperty(tag, '_parent', parent)\n }\n\n // remove the redundant tags\n unmountRedundant(items, tags)\n\n // insert the new nodes\n root.insertBefore(frag, ref)\n if (isOption) {\n\n // #1374 FireFox bug in