mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-23 00:14:21 +00:00
1 line
No EOL
168 KiB
Text
Generated
1 line
No EOL
168 KiB
Text
Generated
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./routes/vldigeometria.js?971d","webpack:///./routes/apprendimentoSistemiArtificiali.js?75cd","webpack:///./routes/statistica.js?3c70","webpack:///./contexts/LatexRenderColor.js","webpack:///./routes/mingwinstall.js?cec4","webpack:///./routes/calcoloNumerico.js?8c12","webpack:///./components/old/copyright.css","webpack:///./index.js","webpack:///../node_modules/@preact/async-loader/async-legacy.js","webpack:///./routes/basiDiDati.js?e91b","webpack:///./routes/home.js?7109","webpack:///../src/util.js","webpack:///../src/index.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///./components/old/copyright.js","webpack:///./routes/ottimizzazioneLineare.js?deb9","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../node_modules/resolve-pathname/esm/resolve-pathname.js","webpack:///../node_modules/history/esm/history.js","webpack:///../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack:///../src/component-stack.js","webpack:///../src/debug.js","webpack:///../src/devtools.js","webpack:///../src/check-props.js","webpack:///./routes/fisica.js?9847"],"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","1","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","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","cb","createContext","id","Provider","history","createHashHistory","path","req","Async","b","old","Component","this","componentWillMount","base","nextBase","__b","setState","child","default","shouldComponentUpdate","_","nxt","nodeType","h","nodeName","dangerouslySetInnerHTML","__html","innerHTML","render","constructor","let","EMPTY","getCurrentUrl","url","customHistory","location","getCurrentLocation","pathname","search","route","replace","ROUTERS","canRoute","setUrl","routeTo","didRoute","subscribers","routeFromLink","node","match","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","String","toUpperCase","hasAttribute","eventListenersInitialized","Router","props","super","state","addEventListener","static","onChange","const","children","getMatchingChildren","updating","forceUpdate","componentDidMount","unlisten","listen","componentWillUnmount","splice","indexOf","componentWillUpdate","componentDidUpdate","invoke","filter","prepareVNodeForRanking","sort","pathRankSort","map","vnode","matches","exec","newProps","assign","ref","Boolean","active","current","previous","previousUrl","router","Route","component","Link","onClick","obj","removeNode","normalizedProps","arguments","defaultProps","createVNode","original","_children","_parent","_depth","_dom","_nextDom","_component","_original","options","createRef","Fragment","context","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","_dirty","rerenderQueue","rerenderCount","prevDebounce","debounceRendering","defer","process","queue","a","_vnode","some","commitQueue","oldVNode","newDom","oldDom","parentDom","_parentDom","diff","_globalContext","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","sibDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","toChildArray","childVNode","nextDom","outer","nextSibling","insertBefore","unmount","applyRef","callback","flattened","Array","isArray","setStyle","style","setProperty","IS_NON_DIMENSIONAL","test","dom","oldValue","useCapture","nameLower","cssText","toLowerCase","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","provider","componentContext","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","doRender","sub","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillReceiveProps","_force","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","oldHtml","newHtml","localName","createTextNode","createElementNS","is","childNodes","attributes","hydrate","diffProps","checked","parentVNode","skipRemove","replaceNode","_root","IS_HYDRATE","cloneElement","defaultValue","ctx","Consumer","subs","_this","_props","isValidElement","hasCaught","getDerivedStateFromError","componentDidCatch","update","Copyright","class","copyright","Preact","interopDefault","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","CLI_DATA","init","_extends","source","apply","isAbsolute","charAt","spliceOne","list","index","k","pop","addLeadingSlash","stripLeadingSlash","substr","stripBasename","prefix","hasBasename","stripTrailingSlash","createPath","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","result","appendListener","fn","listener","isActive","item","notifyListeners","_len","args","_key","forEach","getConfirmation","confirm","stripHash","getHashPath","substring","replaceHashPath","getDOMLocation","decodePath","basename","nextState","globalHistory","transitionManager","handleHashChange","encodedPath","encodePath","forceNextPop","ignorePath","ok","fromLocation","toIndex","allPaths","lastIndexOf","fromIndex","delta","go","revertPop","handlePop","checkDOMListeners","listenerCount","canUseDOM","invariant","_props$getUserConfirm","userAgent","_props$hashType","hashType","_HashPathCoders$hashT","HashPathCoders","initialLocation","isBlocked","createHref","baseTag","pushHashPath","prevIndex","nextPaths","goBack","goForward","block","unblock","to","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","last","up","part","unshift","join","condition","hashbang","noslash","slash","getDisplayName","displayName","getCurrentVNode","renderStack","isPossibleOwner","getOwnerStack","stack","next","_owner","reduce","acc","owner","__source","fileName","lineNumber","hasBabelPlugin","warn","serializeVNode","attrs","prop","toString","stringify","__PREACT_DEVTOOLS__","attachPreact","loggedTypeFailures","ownerStack","isWeakMapSupported","WeakMap","oldDiff","oldDiffed","oldRoot","oldRender","parent","setupComponentStack","oldBeforeDiff","oldVnode","oldCatchError","oldHook","_hook","warnedComponents","useEffect","useLayoutEffect","lazyPropTypes","_childDidSuspend","isValid","componentName","typeSpecs","values","getClosestDomNodeParent","propTypes","has","lazyVNode","set","keys","typeSpecName","comp","deprecatedAttributes","deprecatedProto","v","__self","setPrototypeOf","__hooks","hooks","_list","hook","_factory","_args"],"mappings":"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","file":"bundle.f6a31.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\t1: 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\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare\",\"3\":\"route-apprendimentoSistemiArtificiali\",\"4\":\"route-basiDiDati\",\"5\":\"route-calcoloNumerico\",\"6\":\"route-fisica\",\"7\":\"route-home\",\"8\":\"route-mingwinstall\",\"9\":\"route-ottimizzazioneLineare\",\"10\":\"route-statistica\",\"11\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"0ad22\",\"3\":\"d0fa4\",\"4\":\"0e8d8\",\"5\":\"67eea\",\"6\":\"9892b\",\"7\":\"6edcf\",\"8\":\"22ffb\",\"9\":\"0d083\",\"10\":\"67526\",\"11\":\"ddac8\"}[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 = {\"0\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":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 = \"\" + ({\"0\":\"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare\",\"3\":\"route-apprendimentoSistemiArtificiali\",\"4\":\"route-basiDiDati\",\"5\":\"route-calcoloNumerico\",\"6\":\"route-fisica\",\"7\":\"route-home\",\"8\":\"route-mingwinstall\",\"9\":\"route-ottimizzazioneLineare\",\"10\":\"route-statistica\",\"11\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"2ca12\",\"3\":\"31d6c\",\"4\":\"e409b\",\"5\":\"4d04d\",\"6\":\"598fe\",\"7\":\"81f93\",\"8\":\"5a95a\",\"9\":\"ce59d\",\"10\":\"4bfa5\",\"11\":\"96070\"}[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 \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.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 = \"mdyV\");\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./vldigeometria.js\") );\n\t\t\t}, \"route-vldigeometria\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./apprendimentoSistemiArtificiali.js\") );\n\t\t\t}, \"route-apprendimentoSistemiArtificiali\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./statistica.js\") );\n\t\t\t}, \"route-statistica\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {createContext} from \"preact\";\r\n\r\nexport default createContext(\"White\");\r\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./mingwinstall.js\") );\n\t\t\t}, \"route-mingwinstall\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./calcoloNumerico.js\") );\n\t\t\t}, \"route-calcoloNumerico\");\n\t\t}\n\n\t\texport default Async(load);\n\t","// extracted by mini-css-extract-plugin\nmodule.exports = {\"copyright\":\"copyright__E8xyG\"};","import \"preact/debug\";\n\n// noinspection ES6UnusedImports\nimport _style from './index.less';\n// noinspection ES6UnusedImports\nimport _manifest from './meta/manifest.json';\n// noinspection ES6UnusedImports\nimport _cname from './meta/CNAME';\n// noinspection ES6UnusedImports\nimport _nojekyll from './meta/.nojekyll';\n\nimport Router from 'preact-router';\nimport {createHashHistory} from \"history\";\nimport Home from './routes/home';\nimport Fisica from './routes/fisica';\nimport VlDiGeometria from './routes/vldigeometria';\nimport MingwInstall from './routes/mingwinstall';\nimport Copyright from './components/old/copyright';\nimport Statistica from './routes/statistica';\nimport OttimizzazioneLineare from \"./routes/ottimizzazioneLineare\";\nimport BasiDiDati from './routes/basiDiDati';\nimport CalcoloNumerico from './routes/calcoloNumerico';\nimport ApprendimentoSistemiArtificiali from \"./routes/apprendimentoSistemiArtificiali\";\nimport LatexRenderColor from \"./contexts/LatexRenderColor\";\n\n// noinspection JSUnusedGlobalSymbols\nexport default function(props) {\n\treturn (\n\t\t<div id=\"app\">\n\t\t\t<LatexRenderColor.Provider value={\"White\"}>\n\t\t\t\t<h1><a href=\"/\">Appuntiweb</a> <small>di <a href=\"https://steffo.eu/\">Steffo</a></small></h1>\n\t\t\t\t<Router history={createHashHistory()}>\n\t\t\t\t\t<Home path=\"/\"/>\n\t\t\t\t\t<Fisica path=\"/fisica\"/>\n\t\t\t\t\t<VlDiGeometria path=\"/vldigeometria\"/>\n\t\t\t\t\t<MingwInstall path=\"/mingwinstall\"/>\n\t\t\t\t\t<Statistica path=\"/statistica\"/>\n\t\t\t\t\t<OttimizzazioneLineare path=\"/ottimizzazionelineare\"/>\n\t\t\t\t\t<BasiDiDati path=\"/basididati\"/>\n\t\t\t\t\t<CalcoloNumerico path=\"/calcolonumerico\"/>\n\t\t\t\t\t<ApprendimentoSistemiArtificiali path={\"/apprendimentosistemiartificiali\"}/>\n\t\t\t\t</Router>\n\t\t\t\t<Copyright/>\n\t\t\t</LatexRenderColor.Provider>\n\t\t</div>\n\t);\n}\n","import { h, Component } from 'preact';\n\nexport default function(req) {\n\tfunction Async() {\n\t\tComponent.call(this);\n\n\t\tlet b, old;\n\t\tthis.componentWillMount = () => {\n\t\t\tb = this.base = this.nextBase || this.__b; // short circuits 1st render\n\t\t\treq(m => {\n\t\t\t\tthis.setState({ child: m.default || m });\n\t\t\t});\n\t\t};\n\n\t\tthis.shouldComponentUpdate = (_, nxt) => {\n\t\t\tnxt = nxt.child === void 0;\n\t\t\tif (nxt && old === void 0 && b) {\n\t\t\t\t// Node.TEXT_NODE\n\t\t\t\tif (b.nodeType === 3) {\n\t\t\t\t\told = b.data;\n\t\t\t\t} else {\n\t\t\t\t\told = h(b.nodeName, {\n\t\t\t\t\t\tdangerouslySetInnerHTML: { __html: b.innerHTML },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\told = ''; // dump it\n\t\t\t}\n\t\t\treturn !nxt;\n\t\t};\n\n\t\tthis.render = (p, s) => (s.child ? h(s.child, p) : old);\n\t}\n\t(Async.prototype = new Component()).constructor = Async;\n\treturn Async;\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./basiDiDati.js\") );\n\t\t\t}, \"route-basiDiDati\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./home.js\") );\n\t\t\t}, \"route-home\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/**\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\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","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\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\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\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)===true) {\n\t\t\tdidRoute = true;\n\t\t}\n\t}\n\tfor (let i=subscribers.length; i--; ) {\n\t\tsubscribers[i](url);\n\t}\n\treturn didRoute;\n}\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))) return;\n\n\t// attempt to route, if no match simply cede control to browser\n\treturn route(href);\n}\n\n\nfunction handleLinkClick(e) {\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) return;\n\trouteFromLink(e.currentTarget || e.target || this);\n\treturn prevent(e);\n}\n\n\nfunction prevent(e) {\n\tif (e) {\n\t\tif (e.stopImmediatePropagation) e.stopImmediatePropagation();\n\t\tif (e.stopPropagation) e.stopPropagation();\n\t\te.preventDefault();\n\t}\n\treturn false;\n}\n\n\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!==0) return;\n\n\tlet t = e.target;\n\tdo {\n\t\tif (String(t.nodeName).toUpperCase()==='A' && t.getAttribute('href')) {\n\t\t\tif (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\n\nlet eventListenersInitialized = false;\n\nfunction initEventListeners() {\n\tif (eventListenersInitialized) return;\n\n\tif (typeof addEventListener==='function') {\n\t\tif (!customHistory) {\n\t\t\taddEventListener('popstate', () => {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\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.getMatchingChildren(children, url, false).length > 0;\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\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\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\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","import options from './options';\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<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = 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(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref,\n\t\tnull\n\t);\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\tconstructor: undefined,\n\t\t_original: original\n\t};\n\n\tif (original == null) vnode._original = vnode;\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\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 * @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 !== 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\tupdate = update(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) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the 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 = oldVNode;\n\n\t\tlet newDom = diff(\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\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != 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<import('./internal').Component>}\n */\nlet rerenderQueue = [];\nlet rerenderCount = 0;\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\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!rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((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","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\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').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<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} 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\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, 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\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tglobalContext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nextDom;\n\t\t\t\t\tif (childVNode._nextDom !== undefined) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\t\t\tnextDom = childVNode._nextDom;\n\n\t\t\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t\t\t// can clean up the property\n\t\t\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t\tnextDom = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\tsibDom = oldDom, j = 0;\n\t\t\t\t\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildrenLength;\n\t\t\t\t\t\t\t\tj += 2\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\t\t\t\t\tnextDom = oldDom;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t\t\t\t// there are probably some internal data structures that aren't\n\t\t\t\t\t\t// updated properly.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t\t\t\t// value check in `diff()` won't be skipped.\n\t\t\t\t\t\tif (newParentVNode.type == 'option') {\n\t\t\t\t\t\t\tparentDom.value = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t\t\t\t\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t\t\t\t\t// See more detail in create-element.js:createVNode\n\t\t\t\t\tif (nextDom !== undefined) {\n\t\t\t\t\t\toldDom = nextDom;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toldDom = newDom.nextSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\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\t\t// node's nextSibling.\n\n\t\t\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\toldDom &&\n\t\t\t\t\toldVNode._dom == oldDom &&\n\t\t\t\t\toldDom.parentNode != parentDom\n\t\t\t\t) {\n\t\t\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\t\t\toldDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti++;\n\t\t\treturn childVNode;\n\t\t}\n\t);\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\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\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 * @param {(vnode: import('../internal').VNode) => import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array<import('../internal').VNode | string | number>} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children == 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children == 'string' || typeof children == 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null, children)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(\n\t\t\t\tcreateVNode(\n\t\t\t\t\tchildren.type,\n\t\t\t\t\tchildren.props,\n\t\t\t\t\tchildren.key,\n\t\t\t\t\tnull,\n\t\t\t\t\tchildren._original\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value == 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tlet s, useCapture, nameLower;\n\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'style') {\n\t\ts = dom.style;\n\n\t\tif (typeof value == 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tnameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\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](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } 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<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} 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\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\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\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}\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\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\t(newVNode._original === oldVNode._original && !c._processingException)\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\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\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\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.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = isTopLevelFragment\n\t\t\t\t? tmp.props.children\n\t\t\t\t: Array.isArray(tmp)\n\t\t\t\t? tmp\n\t\t\t\t: [tmp];\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\tdiffChildren(\n\t\t\t\tparentDom,\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\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\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array<import('../internal').Component>} 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\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\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<import('../internal').Component>} 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 i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; 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 != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\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 (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\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 (newVNode.type === null) {\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\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\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let 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 (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\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\tnewVNode._children = newVNode.props.children;\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (!newHtml) {\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\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\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./index').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(\n\t\tvnode.type,\n\t\tprops,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\n","export const ELEMENT_NODE = 1;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, hasCaught;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\n\t\t\t\tif (hasCaught)\n\t\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import style from './copyright.css';\nimport { Component } from 'preact';\n\nexport default class Copyright extends Component {\n\trender() {\n\t\treturn <div class={style.copyright}>© 2020 - Stefano Pigozzi - <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA 4.0</a> - <a href=\"https://github.com/Steffo99/appuntiweb\">Codice sorgente</a> - <a href={\"https://ko-fi.com/steffo\"}>Supportami</a></div>;\n\t}\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./ottimizzazioneLineare.js\") );\n\t\t\t}, \"route-ottimizzazioneLineare\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/* 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\tif (process.env.RHL) {\n\t\t// enable hot loader\n\t\tconst hotLoader = interopDefault(require('react-hot-loader'));\n\t\thotLoader.preact(interopDefault(require('preact')));\n\t}\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\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (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\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (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(inlineDataElement.innerHTML).preRenderData || preRenderData;\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 === location.pathname;\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\troot = doRender(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","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import { options, Fragment } from 'preact';\n\n/**\n * Get human readable name of the component/dom node\n * @param {import('./internal').VNode} vnode\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type === Fragment) {\n\t\treturn 'Fragment';\n\t} else if (typeof vnode.type == 'function') {\n\t\treturn vnode.type.displayName || vnode.type.name;\n\t} else if (typeof vnode.type == 'string') {\n\t\treturn vnode.type;\n\t}\n\n\treturn '#text';\n}\n\n/**\n * Used to keep track of the currently rendered `vnode` and print it\n * in debug messages.\n */\nlet renderStack = [];\n\n/**\n * Keep track of the current owners. An owner describes a component\n * which was responsible to render a specific `vnode`. This exclude\n * children that are passed via `props.children`, because they belong\n * to the parent owner.\n *\n * ```jsx\n * const Foo = props => <div>{props.children}</div> // div's owner is Foo\n * const Bar = props => {\n * return (\n * <Foo><span /></Foo> // Foo's owner is Bar, span's owner is Bar\n * )\n * }\n * ```\n *\n * Note: A `vnode` may be hoisted to the root scope due to compiler\n * optimiztions. In these cases the `_owner` will be different.\n */\nlet ownerStack = [];\n\n/**\n * Get the currently rendered `vnode`\n * @returns {import('./internal').VNode | null}\n */\nexport function getCurrentVNode() {\n\treturn renderStack.length > 0 ? renderStack[renderStack.length - 1] : null;\n}\n\n/**\n * If the user doesn't have `@babel/plugin-transform-react-jsx-source`\n * somewhere in his tool chain we can't print the filename and source\n * location of a component. In that case we just omit that, but we'll\n * print a helpful message to the console, notifying the user of it.\n */\nlet hasBabelPlugin = false;\n\n/**\n * Check if a `vnode` is a possible owner.\n * @param {import('./internal').VNode} vnode\n */\nfunction isPossibleOwner(vnode) {\n\treturn typeof vnode.type == 'function' && vnode.type != Fragment;\n}\n\n/**\n * Return the component stack that was captured up to this point.\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getOwnerStack(vnode) {\n\tconst stack = [vnode];\n\tlet next = vnode;\n\twhile (next._owner != null) {\n\t\tstack.push(next._owner);\n\t\tnext = next._owner;\n\t}\n\n\treturn stack.reduce((acc, owner) => {\n\t\tacc += ` in ${getDisplayName(owner)}`;\n\n\t\tconst source = owner.__source;\n\t\tif (source) {\n\t\t\tacc += ` (at ${source.fileName}:${source.lineNumber})`;\n\t\t} else if (!hasBabelPlugin) {\n\t\t\thasBabelPlugin = true;\n\t\t\tconsole.warn(\n\t\t\t\t'Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.'\n\t\t\t);\n\t\t}\n\n\t\treturn (acc += '\\n');\n\t}, '');\n}\n\n/**\n * Setup code to capture the component trace while rendering. Note that\n * we cannot simply traverse `vnode._parent` upwards, because we have some\n * debug messages for `this.setState` where the `vnode` is `undefined`.\n */\nexport function setupComponentStack() {\n\tlet oldDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldRoot = options._root;\n\tlet oldVNode = options.vnode;\n\tlet oldRender = options._render;\n\n\toptions.diffed = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.pop();\n\t\t}\n\t\trenderStack.pop();\n\t\tif (oldDiffed) oldDiffed(vnode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\trenderStack.push(vnode);\n\t\t}\n\t\tif (oldDiff) oldDiff(vnode);\n\t};\n\n\toptions._root = (vnode, parent) => {\n\t\townerStack = [];\n\t\tif (oldRoot) oldRoot(vnode, parent);\n\t};\n\n\toptions.vnode = vnode => {\n\t\tvnode._owner =\n\t\t\townerStack.length > 0 ? ownerStack[ownerStack.length - 1] : null;\n\t\tif (oldVNode) oldVNode(vnode);\n\t};\n\n\toptions._render = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.push(vnode);\n\t\t}\n\n\t\tif (oldRender) oldRender(vnode);\n\t};\n}\n","import { checkPropTypes } from './check-props';\nimport { options, Component } from 'preact';\nimport {\n\tELEMENT_NODE,\n\tDOCUMENT_NODE,\n\tDOCUMENT_FRAGMENT_NODE\n} from './constants';\nimport {\n\tgetOwnerStack,\n\tsetupComponentStack,\n\tgetCurrentVNode,\n\tgetDisplayName\n} from './component-stack';\n\nconst isWeakMapSupported = typeof WeakMap == 'function';\n\nfunction getClosestDomNodeParent(parent) {\n\tif (!parent) return {};\n\tif (typeof parent.type == 'function') {\n\t\treturn getClosestDomNodeParent(parent._parent);\n\t}\n\treturn parent;\n}\n\nexport function initDebug() {\n\tsetupComponentStack();\n\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldVnode = options.vnode;\n\tlet oldCatchError = options._catchError;\n\tlet oldRoot = options._root;\n\tlet oldHook = options._hook;\n\tconst warnedComponents = !isWeakMapSupported\n\t\t? null\n\t\t: {\n\t\t\t\tuseEffect: new WeakMap(),\n\t\t\t\tuseLayoutEffect: new WeakMap(),\n\t\t\t\tlazyPropTypes: new WeakMap()\n\t\t };\n\n\toptions._catchError = (error, vnode, oldVNode) => {\n\t\tlet component = vnode && vnode._component;\n\t\tif (component && typeof error.then == 'function') {\n\t\t\tconst promise = error;\n\t\t\terror = new Error(\n\t\t\t\t`Missing Suspense. The throwing component was: ${getDisplayName(vnode)}`\n\t\t\t);\n\n\t\t\tlet parent = vnode;\n\t\t\tfor (; parent; parent = parent._parent) {\n\t\t\t\tif (parent._component && parent._component._childDidSuspend) {\n\t\t\t\t\terror = promise;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We haven't recovered and we know at this point that there is no\n\t\t\t// Suspense component higher up in the tree\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\toldCatchError(error, vnode, oldVNode);\n\t};\n\n\toptions._root = (vnode, parentNode) => {\n\t\tif (!parentNode) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined parent passed to render(), this is the second argument.\\n' +\n\t\t\t\t\t'Check if the element is available in the DOM/has the correct id.'\n\t\t\t);\n\t\t}\n\t\tlet isValid;\n\t\tswitch (parentNode.nodeType) {\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tcase DOCUMENT_NODE:\n\t\t\t\tisValid = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tisValid = false;\n\t\t}\n\n\t\tif (!isValid) {\n\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a valid HTML node as a second argument to render.\tReceived ${parentNode} instead: render(<${componentName} />, ${parentNode});`\n\t\t\t);\n\t\t}\n\n\t\tif (oldRoot) oldRoot(vnode, parentNode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tlet { type, _parent: parent } = vnode;\n\t\tlet parentVNode = getClosestDomNodeParent(parent);\n\n\t\tif (type === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined component passed to createElement()\\n\\n' +\n\t\t\t\t\t'You likely forgot to export your component or might have mixed up default and named imports' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type != null && typeof type == 'object') {\n\t\t\tif (type._children !== undefined && type._dom !== undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid type passed to createElement(): ${type}\\n\\n` +\n\t\t\t\t\t\t'Did you accidentally pass a JSX literal as JSX twice?\\n\\n' +\n\t\t\t\t\t\t` let My${getDisplayName(vnode)} = ${serializeVNode(type)};\\n` +\n\t\t\t\t\t\t` let vnode = <My${getDisplayName(vnode)} />;\\n\\n` +\n\t\t\t\t\t\t'This usually happens when you export a JSX literal and not the component.' +\n\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t'Invalid type passed to createElement(): ' +\n\t\t\t\t\t(Array.isArray(type) ? 'array' : type)\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(type === 'thead' || type === 'tfoot' || type === 'tbody') &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <thead/tbody/tfoot> should have a <table> parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (\n\t\t\ttype === 'tr' &&\n\t\t\tparentVNode.type !== 'thead' &&\n\t\t\tparentVNode.type !== 'tfoot' &&\n\t\t\tparentVNode.type !== 'tbody' &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <tr> should have a <thead/tbody/tfoot/table> parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'td' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <td> should have a <tr> parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'th' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your <th> should have a <tr>.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref !== undefined &&\n\t\t\ttypeof vnode.ref != 'function' &&\n\t\t\ttypeof vnode.ref != 'object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (typeof vnode.type == 'string') {\n\t\t\tfor (const key in vnode.props) {\n\t\t\t\tif (\n\t\t\t\t\tkey[0] === 'o' &&\n\t\t\t\t\tkey[1] === 'n' &&\n\t\t\t\t\ttypeof vnode.props[key] != 'function' &&\n\t\t\t\t\tvnode.props[key] != null\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Component's \"${key}\" property should be a function, ` +\n\t\t\t\t\t\t\t`but got [${typeof vnode.props[key]}] instead\\n` +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type == 'function' && vnode.type.propTypes) {\n\t\t\tif (\n\t\t\t\tvnode.type.displayName === 'Lazy' &&\n\t\t\t\twarnedComponents &&\n\t\t\t\t!warnedComponents.lazyPropTypes.has(vnode.type)\n\t\t\t) {\n\t\t\t\tconst m =\n\t\t\t\t\t'PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ';\n\t\t\t\ttry {\n\t\t\t\t\tconst lazyVNode = vnode.type();\n\t\t\t\t\twarnedComponents.lazyPropTypes.set(vnode.type, true);\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + `Component wrapped in lazy() is ${getDisplayName(lazyVNode)}`\n\t\t\t\t\t);\n\t\t\t\t} catch (promise) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + \"We will log the wrapped component's name once it is loaded.\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckPropTypes(\n\t\t\t\tvnode.type.propTypes,\n\t\t\t\tvnode.props,\n\t\t\t\t'prop',\n\t\t\t\tgetDisplayName(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n\n\toptions._hook = comp => {\n\t\tif (!comp) {\n\t\t\tthrow new Error('Hook can only be invoked from render methods.');\n\t\t}\n\n\t\tif (oldHook) oldHook(comp);\n\t};\n\n\tconst warn = (property, err) => ({\n\t\tget() {\n\t\t\tthrow new Error(`getting vnode.${property} is deprecated, ${err}`);\n\t\t},\n\t\tset() {\n\t\t\tthrow new Error(`setting vnode.${property} is not allowed, ${err}`);\n\t\t}\n\t});\n\n\tconst deprecatedAttributes = {\n\t\tnodeName: warn('nodeName', 'use vnode.type'),\n\t\tattributes: warn('attributes', 'use vnode.props'),\n\t\tchildren: warn('children', 'use vnode.props.children')\n\t};\n\n\tconst deprecatedProto = Object.create({}, deprecatedAttributes);\n\n\toptions.vnode = vnode => {\n\t\tconst props = vnode.props;\n\t\tif (\n\t\t\tvnode.type !== null &&\n\t\t\tprops != null &&\n\t\t\t('__source' in props || '__self' in props)\n\t\t) {\n\t\t\tconst newProps = (vnode.props = {});\n\t\t\tfor (let i in props) {\n\t\t\t\tconst v = props[i];\n\t\t\t\tif (i === '__source') vnode.__source = v;\n\t\t\t\telse if (i === '__self') vnode.__self = v;\n\t\t\t\telse newProps[i] = v;\n\t\t\t}\n\t\t}\n\t\tObject.setPrototypeOf(vnode, deprecatedProto);\n\t\tif (oldVnode) oldVnode(vnode);\n\t};\n\n\toptions.diffed = vnode => {\n\t\t// Check if the user passed plain objects as children. Note that we cannot\n\t\t// move this check into `options.vnode` because components can receive\n\t\t// children in any shape they want (e.g.\n\t\t// `<MyJSONFormatter>{{ foo: 123, bar: \"abc\" }}</MyJSONFormatter>`).\n\t\t// Putting this check in `options.diffed` ensures that\n\t\t// `vnode._children` is set and that we only validate the children\n\t\t// that were actually rendered.\n\t\tif (vnode._children) {\n\t\t\tvnode._children.forEach(child => {\n\t\t\t\tif (child && child.type === undefined) {\n\t\t\t\t\t// Remove internal vnode keys that will always be patched\n\t\t\t\t\tdelete child._parent;\n\t\t\t\t\tdelete child._depth;\n\t\t\t\t\tconst keys = Object.keys(child).join(',');\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Objects are not valid as a child. Encountered an object with the keys {${keys}}.` +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/** @type {import('./internal').Component} */\n\t\tconst component = vnode._component;\n\t\tif (component && component.__hooks) {\n\t\t\tlet hooks = component.__hooks;\n\t\t\tif (Array.isArray(hooks._list)) {\n\t\t\t\thooks._list.forEach(hook => {\n\t\t\t\t\tif (hook._factory && (!hook._args || !Array.isArray(hook._args))) {\n\t\t\t\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`In ${componentName} you are calling useMemo/useCallback without passing arguments.\\n` +\n\t\t\t\t\t\t\t\t`This is a noop since it will not be able to memoize, it will execute it every render.` +\n\t\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (oldDiffed) oldDiffed(vnode);\n\n\t\tif (vnode._children != null) {\n\t\t\tconst keys = [];\n\t\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\t\tconst child = vnode._children[i];\n\t\t\t\tif (!child || child.key == null) continue;\n\n\t\t\t\tconst key = child.key;\n\t\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\n\t\t\t\t\t// Break early to not spam the console\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\t};\n}\n\nconst setState = Component.prototype.setState;\nComponent.prototype.setState = function(update, callback) {\n\tif (this._vnode == null) {\n\t\t// `this._vnode` will be `null` during componentWillMount. But it\n\t\t// is perfectly valid to call `setState` during cWM. So we\n\t\t// need an additional check to verify that we are dealing with a\n\t\t// call inside constructor.\n\t\tif (this.state == null) {\n\t\t\tconsole.warn(\n\t\t\t\t`Calling \"this.setState\" inside the constructor of a component is a ` +\n\t\t\t\t\t`no-op and might be a bug in your application. Instead, set ` +\n\t\t\t\t\t`\"this.state = {}\" directly.\\n\\n${getOwnerStack(getCurrentVNode())}`\n\t\t\t);\n\t\t}\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.setState\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\n\treturn setState.call(this, update, callback);\n};\n\nconst forceUpdate = Component.prototype.forceUpdate;\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode == null) {\n\t\tconsole.warn(\n\t\t\t`Calling \"this.forceUpdate\" inside the constructor of a component is a ` +\n\t\t\t\t`no-op and might be a bug in your application.\\n\\n${getOwnerStack(\n\t\t\t\t\tgetCurrentVNode()\n\t\t\t\t)}`\n\t\t);\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.forceUpdate\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\treturn forceUpdate.call(this, callback);\n};\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tfor (let prop in props) {\n\t\tif (props.hasOwnProperty(prop) && prop !== 'children') {\n\t\t\tlet value = props[prop];\n\n\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\tif (typeof value == 'function') {\n\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t}\n\n\t\t\tvalue =\n\t\t\t\tObject(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${\n\t\tchildren && children.length ? '>..</' + name + '>' : ' />'\n\t}`;\n}\n","import { options, Fragment } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.0.5', options, {\n\t\t\tFragment\n\t\t});\n\t}\n}\n","const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nlet loggedTypeFailures = {};\n\n/**\n * Reset the history of which prop type warnings have been logged.\n */\nexport function resetPropWarnings() {\n\tloggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * Adapted from https://github.com/facebook/prop-types/blob/master/checkPropTypes.js\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n */\nexport function checkPropTypes(\n\ttypeSpecs,\n\tvalues,\n\tlocation,\n\tcomponentName,\n\tgetStack\n) {\n\tObject.keys(typeSpecs).forEach(typeSpecName => {\n\t\tlet error;\n\t\ttry {\n\t\t\terror = typeSpecs[typeSpecName](\n\t\t\t\tvalues,\n\t\t\t\ttypeSpecName,\n\t\t\t\tcomponentName,\n\t\t\t\tlocation,\n\t\t\t\tnull,\n\t\t\t\tReactPropTypesSecret\n\t\t\t);\n\t\t} catch (e) {\n\t\t\terror = e;\n\t\t}\n\t\tif (error && !(error.message in loggedTypeFailures)) {\n\t\t\tloggedTypeFailures[error.message] = true;\n\t\t\tconsole.error(\n\t\t\t\t`Failed ${location} type: ${error.message}${(getStack && getStack()) ||\n\t\t\t\t\t''}`\n\t\t\t);\n\t\t}\n\t});\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./fisica.js\") );\n\t\t\t}, \"route-fisica\");\n\t\t}\n\n\t\texport default Async(load);\n\t"],"sourceRoot":""} |