{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/preact-router/src/util.js","webpack:///../node_modules/preact-router/src/index.js","webpack:///../node_modules/preact-router/match/index.module.js","webpack:///../node_modules/preact-cli/src/lib/entry.js","webpack:///../node_modules/preact/hooks/src/index.js","webpack:///../node_modules/preact/src/util.js","webpack:///../node_modules/preact/src/create-element.js","webpack:///../node_modules/preact/src/component.js","webpack:///../node_modules/preact/src/diff/children.js","webpack:///../node_modules/preact/src/diff/props.js","webpack:///../node_modules/preact/src/diff/index.js","webpack:///../node_modules/preact/src/render.js","webpack:///../node_modules/preact/src/clone-element.js","webpack:///../node_modules/preact/src/create-context.js","webpack:///../node_modules/preact/src/options.js","webpack:///../node_modules/preact/src/constants.js","webpack:///../node_modules/preact/src/diff/catch-error.js","webpack:///../node_modules/@preact/async-loader/async.js","webpack:///./components/header/style.scss","webpack:///./components/header/index.tsx","webpack:///./routes/home/index.tsx?6912","webpack:///./routes/games/index.tsx?c20f","webpack:///./routes/bloop/index.tsx?1b87","webpack:///./routes/about/index.tsx?058d","webpack:///./routes/contact/index.tsx?40b1","webpack:///./components/footer/style.scss","webpack:///./components/footer/index.tsx","webpack:///./index.ts","webpack:///./components/app.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onerror","onload","event","errorType","realHref","target","err","Error","code","request","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","src","jsonpScriptSrc","error","clearTimeout","chunk","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","assign","obj","props","exec","url","route","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","replace","max","Math","charAt","param","flags","EMPTY","plus","indexOf","star","val","map","pathRankSort","a","b","rank","index","prepareVNodeForRanking","vnode","path","rankSegment","segment","useRouter","ctx","useContext","RouterContext","GLOBAL_ROUTE_CONTEXT","update","useState","useEffect","SUBS","splice","getCurrentUrl","customHistory","location","getCurrentLocation","pathname","search","ROUTERS","canRoute","history","routeTo","didRoute","routeFromLink","node","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","ctrlKey","metaKey","altKey","shiftKey","button","localName","hasAttribute","Router","this","state","createContext","eventListenersInitialized","Component","shouldComponentUpdate","onChange","children","toChildArray","_getMatchingChild","setState","_updating","forceUpdate","componentWillMount","componentDidMount","addEventListener","_unlisten","listen","action","_this","componentWillUnmount","componentWillUpdate","componentDidUpdate","filter","sort","render","current","_contextValue","active","cloneElement","ref","previous","router","Provider","Link","h","onClick","Route","component","className","activeClass","u","activeClassName","keys","f","class","Preact","interopDefault","default","normalizeURL","navigator","serviceWorker","register","__webpack_public_path__","require","root","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","decodeURI","innerHTML","CLI_DATA","init","getHookState","options","__h","currentComponent","currentHook","hooks","__H","__","__V","initialState","reducer","hookState","currentIndex","_reducer","__c","invokeOrReturn","currentValue","__N","nextValue","_hasScuFromHooks","prevScu","stateHooks","x","every","shouldUpdate","forEach","hookItem","useReducer","callback","args","__s","argsChanged","_pendingArgs","useRef","initialValue","useMemo","factory","context","provider","sub","flushAfterPaintEffects","afterPaintEffects","invokeCleanup","invokeEffect","__e","afterNextFrame","raf","done","HAS_RAF","cancelAnimationFrame","requestAnimationFrame","hook","comp","cleanup","oldArgs","newArgs","some","arg","previousComponent","prevRaf","oldBeforeDiff","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","commitQueue","cb","__v","hasErrored","removeNode","normalizedProps","arguments","defaultProps","createVNode","original","__k","__b","__d","constructor","vnodeId","Fragment","getDomSibling","childIndex","sibling","updateParentDomPointers","child","base","enqueueRender","rerenderQueue","process","prevDebounce","debounceRendering","queue","__r","oldVNode","oldDom","parentDom","__P","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","Array","isArray","EMPTY_OBJ","reorderChildren","placeChild","applyRef","tmp","out","nextDom","sibDom","outer","nextSibling","insertBefore","setStyle","style","setProperty","IS_NON_DIMENSIONAL","test","dom","oldValue","useCapture","cssText","toLowerCase","eventProxyCapture","eventProxy","removeEventListener","removeAttribute","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","componentContext","renderHook","count","newType","contextType","__E","doRender","getDerivedStateFromProps","componentWillReceiveProps","_sb","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","oldHtml","newHtml","nodeType","createTextNode","createElementNS","is","childNodes","dangerouslySetInnerHTML","attributes","__html","diffProps","hydrate","checked","parentVNode","skipRemove","replaceNode","firstChild","defaultValue","contextId","Consumer","contextValue","subs","_props","old","errorInfo","ctor","handled","getDerivedStateFromError","componentDidCatch","getPreviousSibling","inner","parent","end","async","load","AsyncComponent","mod","prev","me","_parentDom","PENDING","preload","Header","alt","result","Footer","Date","getFullYear","App","title","id","scrollTo","Home","About","Contact","Games","Bloop"],"mappings":"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","file":"bundle.6b0c5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t0: 0\n \t};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"2\":\"route-about\",\"3\":\"route-bloop\",\"4\":\"route-contact\",\"5\":\"route-games\",\"6\":\"route-home\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"57977\",\"3\":\"b6552\",\"4\":\"9b5e9\",\"5\":\"0b7fb\",\"6\":\"f4eed\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"2\":\"route-about\",\"3\":\"route-bloop\",\"4\":\"route-contact\",\"5\":\"route-games\",\"6\":\"route-home\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"57f27\",\"3\":\"0f4c7\",\"4\":\"3355e\",\"5\":\"3ebdc\",\"6\":\"da909\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tvar onLinkComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks.\n \t\t\t\t\tlinkTag.onerror = linkTag.onload = null;\n \t\t\t\t\tif (event.type === 'load') {\n \t\t\t\t\t\tresolve();\n \t\t\t\t\t} else {\n \t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n \t\t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n \t\t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\t\terr.type = errorType;\n \t\t\t\t\t\terr.request = realHref;\n \t\t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\t\treject(err);\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tdocument.head.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"Pq/i\");\n","const EMPTY = {};\n\nexport function assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (let i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nexport function exec(url, route, opts) {\n\tlet reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tlet p = c[1].split('&');\n\t\tfor (let i = 0; i < p.length; i++) {\n\t\t\tlet r = p[i].split('=');\n\t\t\tmatches[decodeURIComponent(r[0])] = decodeURIComponent(\n\t\t\t\tr.slice(1).join('=')\n\t\t\t);\n\t\t}\n\t}\n\turl = segmentize(url.replace(reg, ''));\n\troute = segmentize(route || '');\n\tlet max = Math.max(url.length, route.length);\n\tfor (let i = 0; i < max; i++) {\n\t\tif (route[i] && route[i].charAt(0) === ':') {\n\t\t\tlet param = route[i].replace(/(^:|[+*?]+$)/g, ''),\n\t\t\t\tflags = (route[i].match(/[+*?]+$/) || EMPTY)[0] || '',\n\t\t\t\tplus = ~flags.indexOf('+'),\n\t\t\t\tstar = ~flags.indexOf('*'),\n\t\t\t\tval = url[i] || '';\n\t\t\tif (!val && !star && (flags.indexOf('?') < 0 || plus)) {\n\t\t\t\tret = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatches[param] = decodeURIComponent(val);\n\t\t\tif (plus || star) {\n\t\t\t\tmatches[param] = url.slice(i).map(decodeURIComponent).join('/');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if (route[i] !== url[i]) {\n\t\t\tret = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (opts.default !== true && ret === false) return false;\n\treturn matches;\n}\n\nexport function pathRankSort(a, b) {\n\treturn a.rank < b.rank ? 1 : a.rank > b.rank ? -1 : a.index - b.index;\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nexport function prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nexport function segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nexport function rankSegment(segment) {\n\treturn segment.charAt(0) == ':'\n\t\t? 1 + '*+?'.indexOf(segment.charAt(segment.length - 1)) || 4\n\t\t: 5;\n}\n\nexport function rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n","import {\n\th,\n\tcloneElement,\n\tComponent,\n\ttoChildArray,\n\tcreateContext\n} from 'preact';\nimport { useContext, useState, useEffect } from 'preact/hooks';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nconst EMPTY = {};\nconst ROUTERS = [];\nconst SUBS = [];\nlet customHistory = null;\n\nconst GLOBAL_ROUTE_CONTEXT = {\n\turl: getCurrentUrl()\n};\n\nconst RouterContext = createContext(GLOBAL_ROUTE_CONTEXT);\n\nfunction useRouter() {\n\tconst ctx = useContext(RouterContext);\n\t// Note: this condition can't change without a remount, so it's a safe conditional hook call\n\tif (ctx === GLOBAL_ROUTE_CONTEXT) {\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tconst update = useState()[1];\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseEffect(() => {\n\t\t\tSUBS.push(update);\n\t\t\treturn () => SUBS.splice(SUBS.indexOf(update), 1);\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t}, []);\n\t}\n\treturn [ctx, route];\n}\n\nfunction setUrl(url, type = 'push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t} else if (typeof history !== 'undefined' && history[`${type}State`]) {\n\t\thistory[`${type}State`](null, null, url);\n\t}\n}\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t} else if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t} else {\n\t\turl = typeof location !== 'undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\nfunction route(url, replace = false) {\n\tif (typeof url !== 'string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i = ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i = 0; i < ROUTERS.length; i++) {\n\t\tif (ROUTERS[i].routeTo(url)) {\n\t\t\tdidRoute = true;\n\t\t}\n\t}\n\treturn didRoute;\n}\n\nfunction routeFromLink(node) {\n\t// only valid elements\n\tif (!node || !node.getAttribute) return;\n\n\tlet href = node.getAttribute('href'),\n\t\ttarget = node.getAttribute('target');\n\n\t// ignore links with targets and non-path URLs\n\tif (!href || !href.match(/^\\//g) || (target && !target.match(/^_?self$/i)))\n\t\treturn;\n\n\t// attempt to route, if no match simply cede control to browser\n\treturn route(href);\n}\n\nfunction prevent(e) {\n\tif (e.stopImmediatePropagation) e.stopImmediatePropagation();\n\tif (e.stopPropagation) e.stopPropagation();\n\te.preventDefault();\n\treturn false;\n}\n\n// Handles both delegated and direct-bound link clicks\nfunction delegateLinkHandler(e) {\n\t// ignore events the browser takes care of already:\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button) return;\n\n\tlet t = e.target;\n\tdo {\n\t\tif (t.localName === 'a' && t.getAttribute('href')) {\n\t\t\tif (t.hasAttribute('data-native') || t.hasAttribute('native')) return;\n\t\t\t// if link is handled by the router, prevent browser defaults\n\t\t\tif (routeFromLink(t)) {\n\t\t\t\treturn prevent(e);\n\t\t\t}\n\t\t}\n\t} while ((t = t.parentNode));\n}\n\nlet eventListenersInitialized = false;\n\nfunction initEventListeners() {\n\tif (eventListenersInitialized) return;\n\teventListenersInitialized = true;\n\n\tif (!customHistory) {\n\t\taddEventListener('popstate', () => {\n\t\t\trouteTo(getCurrentUrl());\n\t\t});\n\t}\n\taddEventListener('click', delegateLinkHandler);\n}\n\n/**\n * @class\n * @this {import('preact').Component}\n */\nfunction Router(props) {\n\tif (props.history) {\n\t\tcustomHistory = props.history;\n\t}\n\n\tthis.state = {\n\t\turl: props.url || getCurrentUrl()\n\t};\n}\n\n// @ts-ignore-next-line\nconst RouterProto = (Router.prototype = new Component());\n\nassign(RouterProto, {\n\tshouldComponentUpdate(props) {\n\t\tif (props.static !== true) return true;\n\t\treturn (\n\t\t\tprops.url !== this.props.url || props.onChange !== this.props.onChange\n\t\t);\n\t},\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this._getMatchingChild(children, url) !== undefined;\n\t},\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this._updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t},\n\n\tcomponentWillMount() {\n\t\tthis._updating = true;\n\t},\n\n\tcomponentDidMount() {\n\t\tinitEventListeners();\n\t\tROUTERS.push(this);\n\t\tif (customHistory) {\n\t\t\tthis._unlisten = customHistory.listen(action => {\n\t\t\t\tlet location = action.location || action;\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis._updating = false;\n\t},\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this._unlisten === 'function') this._unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t},\n\n\tcomponentWillUpdate() {\n\t\tthis._updating = true;\n\t},\n\n\tcomponentDidUpdate() {\n\t\tthis._updating = false;\n\t},\n\n\t_getMatchingChild(children, url) {\n\t\tchildren = children.filter(prepareVNodeForRanking).sort(pathRankSort);\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\tlet vnode = children[i];\n\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\tif (matches) return [vnode, matches];\n\t\t}\n\t},\n\n\trender({ children, onChange }, { url }) {\n\t\tlet ctx = this._contextValue;\n\n\t\tlet active = this._getMatchingChild(toChildArray(children), url);\n\t\tlet matches, current;\n\t\tif (active) {\n\t\t\tmatches = active[1];\n\t\t\tcurrent = cloneElement(\n\t\t\t\tactive[0],\n\t\t\t\tassign(assign({ url, matches }, matches), {\n\t\t\t\t\tkey: undefined,\n\t\t\t\t\tref: undefined\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (url !== (ctx && ctx.url)) {\n\t\t\tlet newCtx = {\n\t\t\t\turl,\n\t\t\t\tprevious: ctx && ctx.url,\n\t\t\t\tcurrent,\n\t\t\t\tpath: current ? current.props.path : null,\n\t\t\t\tmatches\n\t\t\t};\n\n\t\t\t// only copy simple properties to the global context:\n\t\t\tassign(GLOBAL_ROUTE_CONTEXT, (ctx = this._contextValue = newCtx));\n\n\t\t\t// these are only available within the subtree of a Router:\n\t\t\tctx.router = this;\n\t\t\tctx.active = current ? [current] : [];\n\n\t\t\t// notify useRouter subscribers outside this subtree:\n\t\t\tfor (let i = SUBS.length; i--; ) SUBS[i]({});\n\n\t\t\tif (typeof onChange === 'function') {\n\t\t\t\tonChange(ctx);\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t{current}\n\t\t);\n\t}\n});\n\nconst Link = props => h('a', assign({ onClick: delegateLinkHandler }, props));\n\nconst Route = props => h(props.component, props);\n\nexport { getCurrentUrl, route, Router, Route, Link, exec, useRouter };\nexport default Router;\n","import{h as a}from\"preact\";import{useRouter as t,exec as r,Link as e}from\"preact-router\";var s=[\"className\",\"activeClass\",\"activeClassName\",\"path\"];function l(a){var e=t()[0];return a.children({url:e.url,path:e.path,matches:!1!==r(e.path||e.url,a.path,{})})}function c(l){var c=l.className,n=l.activeClass,u=l.activeClassName,i=l.path,p=function(a,t){if(null==a)return{};var r,e,s={},l=Object.keys(a);for(e=0;e=0||(s[r]=a[r]);return s}(l,s),h=t()[0],f=i&&h.path&&r(h.path,i,{})||r(h.url,p.href,{}),o=p.class||c||\"\",m=f&&(n||u)||\"\";return p.class=o+(o&&m&&\" \")+m,a(e,p)}export{c as Link,l as Match,l as default};\n","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.register(\n\t\t\tnormalizeURL(__webpack_public_path__) + 'sw-debug.js'\n\t\t);\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.register(\n\t\t\tnormalizeURL(__webpack_public_path__) +\n\t\t\t\t(process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\tnavigator.serviceWorker.register(\n\t\tnormalizeURL(__webpack_public_path__) +\n\t\t\t(process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(decodeURI(inlineDataElement.innerHTML)).preRenderData ||\n\t\t\t\tpreRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === normalizeURL(location.pathname);\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\tdoRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array} */\nlet afterPaintEffects = [];\n\nlet EMPTY = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingValue = EMPTY;\n\t\t\t\thookItem._nextValue = hookItem._pendingArgs = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\tif (hookItem._pendingValue !== EMPTY) {\n\t\t\t\thookItem._value = hookItem._pendingValue;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t\thookItem._pendingValue = EMPTY;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({ _pendingValue: EMPTY });\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tconst prevScu = currentComponent.shouldComponentUpdate;\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\tcurrentComponent.shouldComponentUpdate = function(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\tconst stateHooks = hookState._component.__hooks._list.filter(\n\t\t\t\t\tx => x._component\n\t\t\t\t);\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t};\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._pendingValue = factory();\n\t\tstate._pendingArgs = args;\n\t\tstate._factory = factory;\n\t\treturn state._pendingValue;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any, errorInfo: import('preact').ErrorInfo) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\nexport function useId() {\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix