-
Notifications
You must be signed in to change notification settings - Fork 0
/
bundle.45222.esm.js.map
1 lines (1 loc) · 244 KB
/
bundle.45222.esm.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/react-fast-compare/index.js","webpack:///../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///../node_modules/shallowequal/index.js","webpack:///../node_modules/object-assign/index.js","webpack:///../node_modules/prop-types/factoryWithThrowingShims.js","webpack:///../src/index.js","webpack:///../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","webpack:///../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","webpack:///../node_modules/@preact/async-loader/async.js","webpack:///./components/header/style.css","webpack:///./components/menuicon/index.js","webpack:///../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","webpack:///./components/header/index.js","webpack:///../node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js","webpack:///./routes/home/index.js?ae36","webpack:///./routes/about/index.js?cfaf","webpack:///./index.js","webpack:///./components/app.js","webpack:///../node_modules/prop-types/index.js","webpack:///../node_modules/react-side-effect/lib/index.js","webpack:///../src/util.js","webpack:///../node_modules/react-helmet/lib/HelmetConstants.js","webpack:///../node_modules/react-helmet/lib/HelmetUtils.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/options.js","webpack:///../src/constants.js","webpack:///../src/diff/catch-error.js","webpack:///../src/PureComponent.js","webpack:///../src/memo.js","webpack:///../src/forwardRef.js","webpack:///../src/suspense.js","webpack:///../src/suspense-list.js","webpack:///../src/portals.js","webpack:///../src/Children.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///../node_modules/preact-router/match.js","webpack:///../node_modules/webpack/buildin/global.js","webpack:///../node_modules/react-helmet/lib/Helmet.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onerror","onload","event","errorType","realHref","target","err","Error","code","request","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","src","jsonpScriptSrc","error","clearTimeout","chunk","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","equal","a","b","arrA","isArray","arrB","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","toString","keys","keyList","hasProp","hasElementType","Element","$$typeof","Array","match","number","warn","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","toObject","val","TypeError","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","shouldUseNative","from","symbols","to","arguments","emptyFunction","emptyFunctionWithReset","ReactPropTypesSecret","require","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","getHookState","index","options","__h","currentComponent","currentHook","hooks","__H","__","__V","EMPTY","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_reducer","__c","currentValue","__N","nextValue","action","setState","_hasScuFromHooks","prevScu","shouldComponentUpdate","stateHooks","filter","x","every","this","shouldUpdate","hookItem","useEffect","callback","args","state","__s","argsChanged","_pendingArgs","useLayoutEffect","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","useCallback","useContext","context","provider","sub","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","errorInfo","useId","root","__v","__m","mask","flushAfterPaintEffects","component","afterPaintEffects","invokeCleanup","invokeEffect","__e","afterNextFrame","raf","done","HAS_RAF","cancelAnimationFrame","requestAnimationFrame","hook","comp","cleanup","oldArgs","newArgs","some","arg","f","previousComponent","prevRaf","oldBeforeDiff","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","vnode","commitQueue","hasErrored","_extends","source","apply","useTheme","React","ThemeContext","getThemeProps","params","theme","defaultProps","getPreviousSibling","inner","parent","children","__k","end","indexOf","child","dom","async","load","AsyncComponent","Component","componentWillMount","mod","default","render","h","prev","me","nextSibling","__P","_parentDom","firstChild","localName","dangerouslySetInnerHTML","PENDING","preload","constructor","MenuIcon","version","id","xmlns","width","height","viewBox","style","fill","createContext","Header","mediaQuery","queryInput","query","replace","supportMatchMedia","matchMedia","_props$options","_props$options$defaul","defaultMatches","_props$options$matchM","_props$options$noSsr","noSsr","_props$options$ssrMat","ssrMatchMedia","_React$useState","matches","setMatch","active","queryList","updateMatch","addListener","removeListener","useMediaQuery","class","alt","activeClassName","result","App","currentUrl","url","Helmet","content","onChange","handleRoute","path","user","_interopDefault","ex","_defineProperty","obj","configurable","writable","React__default","shallowEqual","canUseDOM","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","emitChange","mountedInstances","instance","SideEffect","_Component","subClass","superClass","__proto__","peek","rewind","recordedState","_proto","nextProps","componentDidUpdate","componentWillUnmount","splice","displayName","getDisplayName","let","exec","route","opts","reg","decodeURIComponent","segmentize","max","Math","charAt","param","flags","plus","star","pathRankSort","rank","prepareVNodeForRanking","rankSegment","rankChild","segment","getCurrentUrl","customHistory","getCurrentLocation","pathname","search","ROUTERS","canRoute","history","setUrl","routeTo","didRoute","subscribers","routeFromLink","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","nodeName","toUpperCase","hasAttribute","eventListenersInitialized","Router","super","addEventListener","static","const","toChildArray","getMatchingChildren","updating","forceUpdate","unlisten","listen","invoke","sort","newProps","cloneElement","Boolean","ref$1","previous","previousUrl","router","Link","onClick","Route","ATTRIBUTE_NAMES","BODY","HTML","TITLE","TAG_NAMES","BASE","HEAD","LINK","META","NOSCRIPT","SCRIPT","STYLE","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","NAME","PROPERTY","REL","SRC","accesskey","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_interopRequireDefault","handleClientStateChange","convertReactPropstoHtmlAttributes","clock","_typeof","iterator","_react2","_objectAssign2","_HelmetConstants","encodeSpecialCharacters","str","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","toLowerCase","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","now","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","global","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","baseTag","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","bodyAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","_i","removeAttribute","tags","headElement","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","innerHTML","styleSheet","cssText","createTextNode","existingTag","isEqualNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","defer","_ref","_ref$title","base","link","meta","noscript","removeNode","normalizedProps","createVNode","original","__b","__d","vnodeId","createRef","Fragment","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","rerenderQueue","process","prevDebounce","debounceRendering","queue","__r","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","reorderChildren","placeChild","applyRef","tmp","out","nextDom","sibDom","outer","insertBefore","setStyle","setProperty","IS_NON_DIMENSIONAL","test","oldValue","useCapture","eventProxyCapture","eventProxy","removeEventListener","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","componentContext","renderHook","count","newType","contextType","__E","doRender","getDerivedStateFromProps","componentDidMount","componentWillReceiveProps","_sb","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","oldHtml","newHtml","nodeType","createElementNS","is","childNodes","diffProps","hydrate","checked","parentVNode","skipRemove","replaceNode","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","isValidElement","ctor","handled","getDerivedStateFromError","update","shallowDiffers","y","PureComponent","memo","comparer","updateRef","Memoed","isReactComponent","forwardRef","fn","Forwarded","clone","REACT_FORWARD_SYMBOL","__f","detachedClone","detachedParent","effect","removeOriginal","originalParent","Suspense","_suspenders","suspended","__a","lazy","loader","Lazy","prom","SuspenseList","_next","_map","ContextProvider","Portal","_this","container","_container","_temp","createPortal","el","containerInfo","textContent","preactRender","preactHydrate","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","createFactory","REACT_ELEMENT_TYPE","preactCloneElement","unmountComponentAtNode","findDOMNode","startTransition","useDeferredValue","useTransition","useSyncExternalStore","subscribe","getSnapshot","_useState","_instance","_getSnapshot","isPureReactComponent","oldDiffHook","for","mapFn","Children","only","normalized","toArray","oldCatchError","oldUnmount","__R","suspendingVNode","suspendingComponent","resolved","onResolved","onSuspensionComplete","__u","suspendedVNode","pop","wasHydrating","detachedComponent","fallback","list","delete","revealOrder","size","delegated","unsuspend","wrappedUnsuspend","Map","set","CAMEL_PROPS","IS_DOM","onChangeInputType","v","oldEventHook","persist","nativeEvent","classNameDescriptor","oldVNodeHook","nonCustomElement","multiple","selected","className","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","readContext","unstable_batchedUpdates","flushSync","StrictMode","useInsertionEffect","Preact","interopDefault","normalizeURL","navigator","serviceWorker","register","__webpack_public_path__","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","JSON","parse","decodeURI","CLI_DATA","currentURL","_possibleConstructorReturn","self","ReferenceError","Match","_preact","_preactRouter","_len","_key","nextUrl","setPrototypeOf","_inherits","_objectWithoutProperties","_ref2","g","Function","_class","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_propTypes2","_reactSideEffect2","_reactFastCompare2","_HelmetUtils","HelmetSideEffects","HelmetExport","_React$Component","HelmetWrapper","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_extends3","_extends4","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","_this2","_child$props","childProps","propTypes","defaultTitle","titleTemplate","mappedState","renderStatic"],"mappings":"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","file":"bundle.45222.esm.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t0: 0\n \t};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"2\":\"route-about\",\"3\":\"route-home\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"c2762\",\"3\":\"10d45\"}[chunkId] + \".esm.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"2\":1,\"3\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"2\":\"route-about\",\"3\":\"route-home\"}[chunkId]||chunkId) + \".chunk.\" + {\"2\":\"a9877\",\"3\":\"60671\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tvar onLinkComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks.\n \t\t\t\t\tlinkTag.onerror = linkTag.onload = null;\n \t\t\t\t\tif (event.type === 'load') {\n \t\t\t\t\t\tresolve();\n \t\t\t\t\t} else {\n \t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n \t\t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n \t\t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\t\terr.type = errorType;\n \t\t\t\t\t\terr.request = realHref;\n \t\t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\t\treject(err);\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tdocument.head.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"mdyV\");\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport { is } from './util';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '17.0.2'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional arugment that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport function startTransition(cb) {\n\tcb();\n}\n\nexport function useDeferredValue(val) {\n\treturn val;\n}\n\nexport function useTransition() {\n\treturn [false, startTransition];\n}\n\n// TODO: in theory this should be done after a VNode is diffed as we want to insert\n// styles/... before it attaches\nexport const useInsertionEffect = useLayoutEffect;\n\n/**\n * This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84\n * on a high level this cuts out the warnings, ... and attempts a smaller implementation\n */\nexport function useSyncExternalStore(subscribe, getSnapshot) {\n\tconst value = getSnapshot();\n\n\tconst [{ _instance }, forceUpdate] = useState({\n\t\t_instance: { _value: value, _getSnapshot: getSnapshot }\n\t});\n\n\tuseLayoutEffect(() => {\n\t\t_instance._value = value;\n\t\t_instance._getSnapshot = getSnapshot;\n\n\t\tif (!is(_instance._value, getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\t}, [subscribe, value, getSnapshot]);\n\n\tuseEffect(() => {\n\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\n\t\treturn subscribe(() => {\n\t\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\t\tforceUpdate({ _instance });\n\t\t\t}\n\t\t});\n\t}, [subscribe]);\n\n\treturn value;\n}\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseInsertionEffect,\n\tuseTransition,\n\tuseDeferredValue,\n\tuseSyncExternalStore,\n\tstartTransition,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}","import { h, Component } from 'preact';\n\nconst PENDING = {};\n\n// Given a VNode, finds its previous element sibling\nfunction getPreviousSibling(vnode, inner) {\n\t// in an element parent with no preceeding siblings means we're the first child\n\tif (typeof vnode.type === 'string') return null;\n\tconst parent = vnode.__;\n\tif (!parent) return;\n\tlet children = parent.__k;\n\tif (children) {\n\t\tif (!Array.isArray(children)) children = [children];\n\t\t// only search previous children\n\t\tlet end = children.indexOf(vnode);\n\t\tif (end === -1) end = children.length;\n\t\tfor (let i=end; i--; ) {\n\t\t\tconst child = children[i];\n\t\t\tconst dom = child && child.__e || getPreviousSibling(child, true);\n\t\t\tif (dom) return dom;\n\t\t}\n\t}\n\tif (!inner) return getPreviousSibling(parent);\n}\n\nexport default function async(load) {\n\tlet component;\n\n\tfunction AsyncComponent() {\n\t\tComponent.call(this);\n\n\t\tif (!component) {\n\t\t\tthis.componentWillMount = () => {\n\t\t\t\tload((mod) => {\n\t\t\t\t\tcomponent = (mod && mod.default) || mod;\n\t\t\t\t\tthis.setState({});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = () => component != null;\n\t\t}\n\n\t\tthis.render = (props) => {\n\t\t\tif (component) {\n\t\t\t\treturn h(component, props);\n\t\t\t}\n\n\t\t\tconst prev = getPreviousSibling(this.__v);\n\t\t\tconst me = prev && prev.nextSibling || (this.__P || this._parentDom).firstChild;\n\n\t\t\treturn (\n\t\t\t\tme &&\n\t\t\t\th(me.localName, {\n\t\t\t\t\tdangerouslySetInnerHTML: PENDING,\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t}\n\n\tAsyncComponent.preload = load;\n\t(AsyncComponent.prototype = new Component()).constructor = AsyncComponent;\n\n\treturn AsyncComponent;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"logo__jPF5-\",\"header\":\"header__OVZyn\",\"active\":\"active__r+Z6z\",\"menu\":\"menu__lHSdu\"};","import { h } from \"preact\";\n\nconst MenuIcon = () => {\n return (\n <svg\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"35px\"\n height=\"35px\"\n viewBox=\"0 0 384.97 384.97\"\n style=\"enable-background:new 0 0 384.97 384.97;\"\n fill=\"white\"\n >\n <g>\n <g id=\"Menu_1_\">\n <path\n d=\"M12.03,120.303h360.909c6.641,0,12.03-5.39,12.03-12.03c0-6.641-5.39-12.03-12.03-12.03H12.03\n \t\t\tc-6.641,0-12.03,5.39-12.03,12.03C0,114.913,5.39,120.303,12.03,120.303z\"\n />\n <path\n d=\"M372.939,180.455H12.03c-6.641,0-12.03,5.39-12.03,12.03s5.39,12.03,12.03,12.03h360.909c6.641,0,12.03-5.39,12.03-12.03\n \t\t\tS379.58,180.455,372.939,180.455z\"\n />\n <path\n d=\"M372.939,264.667H132.333c-6.641,0-12.03,5.39-12.03,12.03c0,6.641,5.39,12.03,12.03,12.03h240.606\n \t\t\tc6.641,0,12.03-5.39,12.03-12.03C384.97,270.056,379.58,264.667,372.939,264.667z\"\n />\n </g>\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n </g>\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n <g />\n </svg>\n );\n};\n\nexport default MenuIcon;\n","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import { h } from \"preact\";\nimport { Link } from \"preact-router/match\";\nimport style from \"./style.css\";\nimport MenuIcon from \"../menuicon\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\n\nconst Header = () => {\n const mediaQuery = useMediaQuery(\"(min-width:600px)\");\n\n return (\n <header class={style.header}>\n <div class={style.logo}>\n <img\n src=\"../../assets/logo.png\"\n width=\"30\"\n height=\"30\"\n alt=\"WebNFC Logo\"\n />\n <h1>\n <strong>\n web<span>nfc</span>\n </strong>\n </h1>\n </div>\n {mediaQuery ? (\n <nav>\n <Link activeClassName={style.active} href=\"/\">\n Home\n </Link>\n <Link activeClassName={style.active} href=\"/about\">\n About\n </Link>\n </nav>\n ) : (\n <span class={style.menu}>\n <MenuIcon />\n </span>\n )}\n </header>\n );\n};\n\nexport default Header;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { getThemeProps, useTheme } from '@material-ui/styles';\nexport default function useMediaQuery(queryInput) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var theme = useTheme();\n var props = getThemeProps({\n theme: theme,\n name: 'MuiUseMediaQuery',\n props: {}\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['Material-UI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n var query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // Wait for jsdom to support the match media feature.\n // All the browsers Material-UI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n var supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n\n var _props$options = _extends({}, props, options),\n _props$options$defaul = _props$options.defaultMatches,\n defaultMatches = _props$options$defaul === void 0 ? false : _props$options$defaul,\n _props$options$matchM = _props$options.matchMedia,\n matchMedia = _props$options$matchM === void 0 ? supportMatchMedia ? window.matchMedia : null : _props$options$matchM,\n _props$options$noSsr = _props$options.noSsr,\n noSsr = _props$options$noSsr === void 0 ? false : _props$options$noSsr,\n _props$options$ssrMat = _props$options.ssrMatchMedia,\n ssrMatchMedia = _props$options$ssrMat === void 0 ? null : _props$options$ssrMat;\n\n var _React$useState = React.useState(function () {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n\n return defaultMatches;\n }),\n match = _React$useState[0],\n setMatch = _React$useState[1];\n\n React.useEffect(function () {\n var active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n var queryList = matchMedia(query);\n\n var updateMatch = function updateMatch() {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui-org/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch();\n queryList.addListener(updateMatch);\n return function () {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query: query,\n match: match\n });\n }\n\n return match;\n}","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-home\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../node_modules/babel-loader/lib/index.js??ref--4!./index.js\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-about\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import \"./style\";\nimport App from \"./components/app\";\n\nexport default App;\n","import { h, Component } from \"preact\";\nimport { Router } from \"preact-router\";\nimport { Helmet } from \"react-helmet\";\n\nimport Header from \"./header\";\n\n// Code-splitting is automated for routes\nimport Home from \"../routes/home\";\nimport About from \"../routes/about\";\n\nexport default class App extends Component {\n /** Gets fired when the route changes.\n *\t@param {Object} event\t\t\"change\" event from [preact-router](http://git.io/preact-router)\n *\t@param {string} event.url\tThe newly routed URL\n */\n handleRoute = e => {\n this.currentUrl = e.url;\n };\n\n render() {\n return (\n <div id=\"app\">\n <Helmet>\n /* Global site tag (gtag.js) - Google Analytics */\n {/* <script\n async\n src=\"https://www.googletagmanager.com/gtag/js?id=UA-155874130-2\"\n />\n <script>\n {`\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'UA-155874130-2');\n `}\n </script> \n <meta\n http-equiv=\"origin-trial\"\n content={process.env.PREACT_APP_ORIGIN_TOKEN}\n />*/}\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <meta\n name=\"Description\"\n content=\"WebNFC is a web app that runs on your Chrome browser for reading and writing NFC tags.\"\n />\n <link\n href=\"https://fonts.googleapis.com/css?family=Cabin&display=swap\"\n rel=\"stylesheet\"\n />\n <title>webNFC</title>\n </Helmet>\n <Header />\n <Router onChange={this.handleRoute}>\n <Home path=\"/\" />\n <About path=\"/about/\" user=\"me\" />\n </Router>\n </div>\n );\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(SideEffect, _Component);\n\n function SideEffect() {\n return _Component.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n _proto.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\n\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","exports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<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\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 1\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\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 (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\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 */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\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 (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\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\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<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\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<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 oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && i !== oldProps.value))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\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) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\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\tvnode._component = undefined;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type !== 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) {\n\t\tremoveNode(vnode._dom);\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._parent = vnode._dom = vnode._nextDom = undefined;\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 {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/i\n\t\t: /fil|che|ra/i\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t\tcontinue;\n\t\t\t} else if (i === 'value' && 'defaultValue' in props && value == null) {\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t\t// a default value\n\t\t\t\tcontinue;\n\t\t\t} else if (\n\t\t\t\ti === 'defaultValue' &&\n\t\t\t\t'value' in props &&\n\t\t\t\tprops.value == null\n\t\t\t) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^onfocus$/i.test(i)) {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (/^onblur$/i.test(i)) {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/g, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\t// Add support for onInput and onChange, see #3561\n\t\t\t// if we have an oninput prop already change it to oninputCapture\n\t\t\tif (/^oninput$/i.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t\tif (normalizedProps[i]) {\n\t\t\t\t\ti = 'oninputCapture';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: <select multiple value={[]} />\n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\t// Adding support for defaultValue in select tag\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tif (normalizedProps.multiple) {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t\t} else {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t\t}\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","import { assign, slice } from './util';\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('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.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\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\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\tif (old) 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\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\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","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\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 * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\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 { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.register(\n\t\t\tnormalizeURL(__webpack_public_path__) + 'sw-debug.js'\n\t\t);\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.register(\n\t\t\tnormalizeURL(__webpack_public_path__) +\n\t\t\t\t(process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\tnavigator.serviceWorker.register(\n\t\tnormalizeURL(__webpack_public_path__) +\n\t\t\t(process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(decodeURI(inlineDataElement.innerHTML)).preRenderData ||\n\t\t\t\tpreRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === normalizeURL(location.pathname);\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\tdoRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.Link = exports.Match = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _preact = require('preact');\n\nvar _preactRouter = require('preact-router');\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Match = exports.Match = function (_Component) {\n\t_inherits(Match, _Component);\n\n\tfunction Match() {\n\t\tvar _temp, _this, _ret;\n\n\t\t_classCallCheck(this, Match);\n\n\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\targs[_key] = arguments[_key];\n\t\t}\n\n\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.update = function (url) {\n\t\t\t_this.nextUrl = url;\n\t\t\t_this.setState({});\n\t\t}, _temp), _possibleConstructorReturn(_this, _ret);\n\t}\n\n\tMatch.prototype.componentDidMount = function componentDidMount() {\n\t\t_preactRouter.subscribers.push(this.update);\n\t};\n\n\tMatch.prototype.componentWillUnmount = function componentWillUnmount() {\n\t\t_preactRouter.subscribers.splice(_preactRouter.subscribers.indexOf(this.update) >>> 0, 1);\n\t};\n\n\tMatch.prototype.render = function render(props) {\n\t\tvar url = this.nextUrl || (0, _preactRouter.getCurrentUrl)(),\n\t\t path = url.replace(/\\?.+$/, '');\n\t\tthis.nextUrl = null;\n\t\treturn props.children({\n\t\t\turl: url,\n\t\t\tpath: path,\n\t\t\tmatches: (0, _preactRouter.exec)(path, props.path, {}) !== false\n\t\t});\n\t};\n\n\treturn Match;\n}(_preact.Component);\n\nvar Link = function Link(_ref) {\n\tvar activeClassName = _ref.activeClassName,\n\t path = _ref.path,\n\t props = _objectWithoutProperties(_ref, ['activeClassName', 'path']);\n\n\treturn (0, _preact.h)(\n\t\tMatch,\n\t\t{ path: path || props.href },\n\t\tfunction (_ref2) {\n\t\t\tvar matches = _ref2.matches;\n\t\t\treturn (0, _preact.h)(_preactRouter.Link, _extends({}, props, { 'class': [props.class || props.className, matches && activeClassName].filter(Boolean).join(' ') }));\n\t\t}\n\t);\n};\n\nexports.Link = Link;\nexports.default = Match;\n\nMatch.Link = Link;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _reactFastCompare = require(\"react-fast-compare\");\n\nvar _reactFastCompare2 = _interopRequireDefault(_reactFastCompare);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _reactFastCompare2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n defer: _propTypes2.default.bool,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;"],"sourceRoot":""}