{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///../node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///../node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./helpers/resize.js","webpack:///./helpers/deriveStyle.js","webpack:///./dom.js","webpack:///./index.js","webpack:///../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///../src/util.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///../node_modules/@babel/runtime/helpers/slicedToArray.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","arr","Array","isArray","len","arr2","TypeError","obj","configurable","writable","sizeRecipeCard","mvRecipeCardSizeClass","sizes","xl","lg","md","sm","mvRecipeCardTimes","root","getElementsByClassName","mvRecipeTimesSize","scrollWidth","classList","remove","add","mvRecipeCardSize","mvResizeTimer","className","replace","addEventListener","passive","DONE","documentElement","style","objFits","querySelectorAll","forEach","el","parent","img","props","els","from","dict","source","entries","ref","querySelector","reduce","one","getComputedStyle","deriveStyle","__webpack_public_path__","MV_CREATE_SETTINGS","__OPTIONS__","asset_url","mvCreate","firstRun","hasRun","firstIo","stylesheet","item","link","evt","preventDefault","open","location","btn","init","id","includes","card","DomOperations","MV_REVIEWS_INIT","default","MV_HANDS_FREE_INIT","IntersectionObserver","observer","self","filter","isIntersecting","unobserve","observe","reviewsObserver","reviewsId","__REVIEWS_DIV__","reviewsRoot","delayListener","removeEventListener","pageurl","hash","commentsLink","reviewsClick","loadCreateReviewsUIToComments","_i","iterator","_s","_e","_arr","_n","_d","next","done","arrayLikeToArray","require","minLen","toString","constructor","test","assign","removeNode","node","children","normalizedProps","arguments","defaultProps","createVNode","original","vnode","vnodeId","options","createRef","current","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","rerenderQueue","process","prevDebounce","debounceRendering","defer","queue","sort","a","b","some","component","commitQueue","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","unmount","applyRef","tmp","toChildArray","out","nextDom","sibDom","outer","nextSibling","insertBefore","setStyle","setProperty","IS_NON_DIMENSIONAL","dom","oldValue","useCapture","cssText","toLowerCase","_listeners","eventProxyCapture","eventProxy","removeAttribute","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","newType","contextType","render","doRender","sub","state","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","cb","oldHtml","newHtml","nodeType","localName","createTextNode","createElementNS","is","childNodes","dangerouslySetInnerHTML","attributes","innerHTML","hydrate","diffProps","checked","parentVNode","skipRemove","componentWillUnmount","this","replaceNode","firstChild","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","splice","isValidElement","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","forceUpdate","h","Preact","interopDefault","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","JSON","parse","decodeURI","url","CLI_DATA","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest"],"mappings":"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","file":"bundle.1.9.11.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 + \"\" + ({\"1\":\"mv-handsfree\",\"2\":\"mv-pinbutton\",\"3\":\"mv-printbutton\",\"4\":\"mv-reviews\"}[chunkId]||chunkId) + \".chunk.\" + {\"1\":\"89ae9\",\"2\":\"53ba7\",\"3\":\"9b887\",\"4\":\"5364a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"4\":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 = \"\" + ({\"1\":\"mv-handsfree\",\"2\":\"mv-pinbutton\",\"3\":\"mv-printbutton\",\"4\":\"mv-reviews\"}[chunkId]||chunkId) + \".chunk.\" + {\"1\":\"31d6c\",\"2\":\"31d6c\",\"3\":\"31d6c\",\"4\":\"4846c\"}[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[\"mvCreateJsonp\"] = window[\"mvCreateJsonp\"] || [];\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","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\nexport const sizeRecipeCard = (root= null) => {\n\n if (!root) {\n return\n }\n\n // Change mv-no-js to js class\n root.className = root.className.replace(/\\bmv-no-js\\b/,'js')\n\n // Change class based on width\n function mvRecipeCardSizeClass() {\n\n // TODO: Localize size breakpoints so themes can adjust\n const sizes = {\n card: {\n xl: 900,\n lg: 630,\n md: 520,\n sm: 400,\n },\n times: {\n lg: 400,\n md: 300,\n sm: 250,\n }\n }\n\n const mvRecipeCardTimes = root.getElementsByClassName('mv-create-times')[0]\n if ( mvRecipeCardTimes ) {\n let mvRecipeTimesSize = 'xl'\n\n if ( mvRecipeCardTimes.scrollWidth < sizes.times.lg ) {\n mvRecipeTimesSize = 'lg'\n }\n\n if ( mvRecipeCardTimes.scrollWidth < sizes.times.md ) {\n mvRecipeTimesSize = 'md'\n }\n\n if ( mvRecipeCardTimes.scrollWidth < sizes.times.sm ) {\n mvRecipeTimesSize = 'sm'\n }\n\n mvRecipeCardTimes.classList.remove( 'mv-create-times-sm' )\n mvRecipeCardTimes.classList.remove( 'mv-create-times-md' )\n mvRecipeCardTimes.classList.remove( 'mv-create-times-lg' )\n mvRecipeCardTimes.classList.remove( 'mv-create-times-xl' )\n mvRecipeCardTimes.classList.add( 'mv-create-times-' + mvRecipeTimesSize )\n }\n\n let mvRecipeCardSize = 'xxl'\n\n if ( root.scrollWidth < sizes.card.xl ) {\n mvRecipeCardSize = 'xl';\n }\n\n if ( root.scrollWidth < sizes.card.lg ) {\n mvRecipeCardSize = 'lg';\n }\n\n if ( root.scrollWidth < sizes.card.md ) {\n mvRecipeCardSize = 'md';\n }\n\n if ( root.scrollWidth < sizes.card.sm ) {\n mvRecipeCardSize = 'sm';\n }\n\n root.classList.remove( 'mv-create-sm' )\n root.classList.remove( 'mv-create-md' )\n root.classList.remove( 'mv-create-lg' )\n root.classList.remove( 'mv-create-xl' )\n root.classList.remove( 'mv-create-xxl' )\n root.classList.add( 'mv-create-' + mvRecipeCardSize )\n }\n mvRecipeCardSizeClass()\n\n function mvResizeTimer() {\n window.clearTimeout(mvResizeTimer)\n window.mvResizeTimer = window.setTimeout(mvRecipeCardSizeClass, 100)\n }\n window.addEventListener('resize', mvResizeTimer, {passive: true})\n\n mvResizeTimer()\n}\n\nexport default sizeRecipeCard\n","const DONE = 'done'\nexport default (key, ...props) => {\n const els = Array.from(document.querySelectorAll(`[${key}]`))\n const dict = {}\n els.forEach((el) => {\n const source = el.getAttribute(key)\n if (source === DONE) {\n //\n } else if (dict[source]) {\n Object.entries(dict[source]).forEach(([attr, value]) => {\n el.style[attr] = value // eslint-disable-line\n })\n el.setAttribute(key, DONE)\n } else {\n const ref = document.querySelector(source)\n if (!ref) return\n const style = props.reduce((all, one) => ({ ...all, [one]: getComputedStyle(ref)[one] }), {})\n dict[source] = style\n Object.entries(style).forEach(([attr, value]) => {\n el.style[attr] = value // eslint-disable-line\n })\n el.setAttribute(key, DONE)\n }\n })\n}\n","import { sizeRecipeCard } from './helpers/resize'\nimport deriveStyle from './helpers/deriveStyle'\n\nexport default (root) => {\n // DOM manip stuff\n sizeRecipeCard(root)\n\n // Add fallback for browsers that don't support object fit (IE11)\n if ('objectFit' in document.documentElement.style === false) {\n const objFits = root.querySelectorAll('.obj-fit')\n Array.prototype.forEach.call(objFits, (el) => {\n const parent = el.parentNode\n const img = el.getAttribute('src')\n el.setAttribute('style', 'opacity: 0;')\n parent.setAttribute('style', `background-image: url(${img}); background-size: cover; background-position: center`)\n })\n }\n\n deriveStyle('data-derive-font-from', 'fontFamily')\n}\n","import DomOperations from './dom'\nimport './style/card-all.scss'\n\n__webpack_public_path__ = ENV === 'production'\n ? `${window.MV_CREATE_SETTINGS.__OPTIONS__.asset_url}/client/build/`\n : 'http://localhost:8080/'\n\nwindow.mvCreate = {\n firstRun: false,\n hasRun: [],\n firstIo: () => {\n const stylesheet = document.querySelector('.mv-create-styles')\n if (stylesheet) {\n stylesheet.rel = 'stylesheet'\n stylesheet.type = 'text/css'\n }\n\n if (document.querySelector('.mv-art-link')) {\n document.querySelectorAll('.mv-art-link').forEach((item) => {\n const link = item.getAttribute('data-mv-create-link-href')\n const target = item.getAttribute('data-mv-create-link-target')\n if (link) {\n const img = item.querySelector('img')\n if (img) {\n img.addEventListener('click', (evt) => {\n evt.preventDefault()\n if (target === 'true') {\n window.open(link, '_blank')\n } else {\n window.location.href = link\n }\n }, false)\n }\n const btn = item.querySelector('button')\n if (btn) {\n btn.addEventListener('click', (evt) => {\n evt.preventDefault()\n if (target === 'true') {\n window.open(link, '_blank')\n } else {\n window.location.href = link\n }\n }, false)\n }\n }\n })\n }\n },\n init: (root = null ) => {\n if ( !window.mvCreate.firstRun ) {\n window.mvCreate.firstIo()\n window.mvCreate.firstRun = true\n }\n if (root && root.id) {\n if (window.mvCreate.hasRun.includes(root.id)) {\n return\n }\n window.mvCreate.hasRun.push(root.id)\n }\n\n // ensure we don't instantiate multiple comment/reviews apps\n if (!root) {\n Array.prototype.forEach.call(document.getElementsByClassName('mv-create-card'), (card) => {\n DomOperations(card)\n })\n\n if (!window.MV_REVIEWS_INIT) {\n window.MV_REVIEWS_INIT = true\n import(/* webpackChunkName: \"mv-reviews\" */ './Reviews').then(\n (module) => {\n module.default()\n }\n )\n }\n\n if (!window.MV_HANDS_FREE_INIT) {\n window.MV_HANDS_FREE_INIT = true\n import(/* webpackChunkName: \"mv-handsfree\" */ './HandsFree').then(\n (module) => {\n module.default()\n }\n )\n }\n }\n\n DomOperations(root)\n\n if (!window.MV_REVIEWS_INIT) {\n window.MV_REVIEWS_INIT = true\n import(/* webpackChunkName: \"mv-reviews\" */ './Reviews').then(\n (module) => {\n module.default()\n }\n )\n }\n\n if (!window.MV_HANDS_FREE_INIT) {\n window.MV_HANDS_FREE_INIT = true\n import(/* webpackChunkName: \"mv-handsfree\" */ './HandsFree').then(\n (module) => {\n module.default()\n }\n )\n }\n\n import(/* webpackChunkName: \"mv-printbutton\" */'./PrintButton').then(\n (module) => {\n module.default(document.querySelectorAll('[data-mv-print]'))\n }\n )\n import(/* webpackChunkName: \"mv-pinbutton\" */'./PinterestButton').then(\n (module) => {\n module.default(document.querySelectorAll('.mv-pinterest-btn'))\n }\n )\n\n return true\n },\n}\n\nif (window.IntersectionObserver) {\n\n const observer = new IntersectionObserver(((entries, self) => {\n // Get cards in current intersection\n const visibleCards = entries.filter(card => card.isIntersecting)\n\n // For each card, initialize and unobserve\n visibleCards.forEach(({ target }) => {\n window.mvCreate.init(target)\n self.unobserve(target)\n })\n }))\n\n // Get all cards and observe theme\n const cards = Array.from(document.getElementsByClassName('mv-create-card'))\n cards.forEach(card => observer.observe(card))\n\n const reviewsObserver = new IntersectionObserver(((entries, self) => {\n const items = entries.filter(item => item.isIntersecting)\n\n // For each card, initialize and unobserve\n items.forEach(({ target }) => {\n if (!window.MV_REVIEWS_INIT) {\n window.MV_REVIEWS_INIT = true\n import(/* webpackChunkName: \"mv-reviews\" */ './Reviews').then(\n (module) => {\n module.default()\n }\n )\n }\n self.unobserve(target)\n })\n }))\n\n const reviewsId = window.MV_CREATE_SETTINGS.__REVIEWS_DIV__ // eslint-disable-line\n const reviewsRoot = reviewsId && document.querySelector(reviewsId)\n if (reviewsRoot) {\n reviewsObserver.observe(reviewsRoot)\n }\n} else {\n const delayListener = () => {\n window.mvCreate.init()\n document.removeEventListener('scroll', delayListener, false)\n }\n document.addEventListener('scroll', delayListener, {passive: true})\n}\n\nconst loadCreateReviewsUIToComments = () => {\n const paginatedComments = window.location.href.includes('comment')\n if (paginatedComments) {\n if (!window.MV_REVIEWS_INIT) {\n window.MV_REVIEWS_INIT = true\n import(/* webpackChunkName: \"mv-reviews\" */ './Reviews').then(\n (module) => {\n window.mvCreate.firstIo()\n module.default()\n }\n )\n }\n return\n }\n\n let pageurl = window.location.href\n pageurl = pageurl.replace(window.location.hash, '')\n\n const commentsLink = document.querySelectorAll('[href=\"'+ pageurl + window.MV_CREATE_SETTINGS.__REVIEWS_DIV__ +'\"]')\n if (commentsLink) {\n const reviewsClick = (evt) => {\n if (!window.MV_REVIEWS_INIT) {\n window.MV_REVIEWS_INIT = true\n import(/* webpackChunkName: \"mv-reviews\" */ './Reviews').then(\n (module) => {\n window.mvCreate.firstIo()\n module.default()\n evt.target.removeEventListener(reviewsClick)\n }\n )\n }\n }\n commentsLink.forEach(item => {\n item.addEventListener('click', reviewsClick)\n })\n return\n }\n}\n\nif ( window.MV_CREATE_SETTINGS.__REVIEWS_DIV__ ) {\n loadCreateReviewsUIToComments()\n}\n","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { EMPTY_ARR } from \"./constants\";\r\n\r\n/**\r\n * Assign properties from `props` to `obj`\r\n * @template O, P The obj and props types\r\n * @param {O} obj The object to copy properties to\r\n * @param {P} props The object to copy properties from\r\n * @returns {O & P}\r\n */\r\nexport function assign(obj, props) {\r\n\t// @ts-ignore We change the type of `obj` to be `O & P`\r\n\tfor (let i in props) obj[i] = props[i];\r\n\treturn /** @type {O & P} */ (obj);\r\n}\r\n\r\n/**\r\n * Remove a child node from its parent if attached. This is a workaround for\r\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\r\n * is smaller than including a dedicated polyfill.\r\n * @param {Node} node The node to remove\r\n */\r\nexport function removeNode(node) {\r\n\tlet parentNode = node.parentNode;\r\n\tif (parentNode) parentNode.removeChild(node);\r\n}\r\n\r\nexport const slice = EMPTY_ARR.slice;\r\n","import { slice } from './util';\r\nimport options from './options';\r\n\r\nlet vnodeId = 0;\r\n\r\n/**\r\n * Create an virtual node (used for JSX)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * constructor for this virtual node\r\n * @param {object | null | undefined} [props] The properties of the virtual node\r\n * @param {Array} [children] The children of the virtual node\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createElement(type, props, children) {\r\n\tlet normalizedProps = {},\r\n\t\tkey,\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'key') key = props[i];\r\n\t\telse if (i == 'ref') ref = props[i];\r\n\t\telse normalizedProps[i] = props[i];\r\n\t}\r\n\r\n\tif (arguments.length > 2) {\r\n\t\tnormalizedProps.children =\r\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\r\n\t}\r\n\r\n\t// If a Component VNode, check for and apply defaultProps\r\n\t// Note: type may be undefined in development, must never error here.\r\n\tif (typeof type == 'function' && type.defaultProps != null) {\r\n\t\tfor (i in type.defaultProps) {\r\n\t\t\tif (normalizedProps[i] === undefined) {\r\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn createVNode(type, normalizedProps, key, ref, null);\r\n}\r\n\r\n/**\r\n * Create a VNode (used internally by Preact)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * Constructor for this virtual node\r\n * @param {object | string | number | null} props The properties of this virtual node.\r\n * If this virtual node represents a text node, this is the text of the node (string or number).\r\n * @param {string | number | null} key The key for this virtual node, used when\r\n * diffing it against its children\r\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\r\n * receive a reference to its created child\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createVNode(type, props, key, ref, original) {\r\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\r\n\t// Do not inline into createElement and coerceToVNode!\r\n\tconst vnode = {\r\n\t\ttype,\r\n\t\tprops,\r\n\t\tkey,\r\n\t\tref,\r\n\t\t_children: null,\r\n\t\t_parent: null,\r\n\t\t_depth: 0,\r\n\t\t_dom: null,\r\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\r\n\t\t// be set to dom.nextSibling which can return `null` and it is important\r\n\t\t// to be able to distinguish between an uninitialized _nextDom and\r\n\t\t// a _nextDom that has been set to `null`\r\n\t\t_nextDom: undefined,\r\n\t\t_component: null,\r\n\t\t_hydrating: null,\r\n\t\tconstructor: undefined,\r\n\t\t_original: original == null ? ++vnodeId : original\r\n\t};\r\n\r\n\t// Only invoke the vnode hook if this was *not* a direct copy:\r\n\tif (original == null && options.vnode != null) options.vnode(vnode);\r\n\r\n\treturn vnode;\r\n}\r\n\r\nexport function createRef() {\r\n\treturn { current: null };\r\n}\r\n\r\nexport function Fragment(props) {\r\n\treturn props.children;\r\n}\r\n\r\n/**\r\n * Check if a the argument is a valid Preact VNode.\r\n * @param {*} vnode\r\n * @returns {vnode is import('./internal').VNode}\r\n */\r\nexport const isValidElement = vnode =>\r\n\tvnode != null && vnode.constructor === undefined;\r\n","import { assign } from './util';\r\nimport { diff, commitRoot } from './diff/index';\r\nimport options from './options';\r\nimport { Fragment } from './create-element';\r\n\r\n/**\r\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\r\n * trigger rendering\r\n * @param {object} props The initial component props\r\n * @param {object} context The initial context from parent components'\r\n * getChildContext\r\n */\r\nexport function Component(props, context) {\r\n\tthis.props = props;\r\n\tthis.context = context;\r\n}\r\n\r\n/**\r\n * Update component state and schedule a re-render.\r\n * @this {import('./internal').Component}\r\n * @param {object | ((s: object, p: object) => object)} update A hash of state\r\n * properties to update with new values or a function that given the current\r\n * state and props returns a new partial state\r\n * @param {() => void} [callback] A function to be called once component state is\r\n * updated\r\n */\r\nComponent.prototype.setState = function(update, callback) {\r\n\t// only clone state when copying to nextState the first time.\r\n\tlet s;\r\n\tif (this._nextState != null && this._nextState !== this.state) {\r\n\t\ts = this._nextState;\r\n\t} else {\r\n\t\ts = this._nextState = assign({}, this.state);\r\n\t}\r\n\r\n\tif (typeof update == 'function') {\r\n\t\t// Some libraries like `immer` mark the current state as readonly,\r\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\r\n\t\tupdate = update(assign({}, s), this.props);\r\n\t}\r\n\r\n\tif (update) {\r\n\t\tassign(s, update);\r\n\t}\r\n\r\n\t// Skip update if updater function returned null\r\n\tif (update == null) return;\r\n\r\n\tif (this._vnode) {\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Immediately perform a synchronous re-render of the component\r\n * @this {import('./internal').Component}\r\n * @param {() => void} [callback] A function to be called after component is\r\n * re-rendered\r\n */\r\nComponent.prototype.forceUpdate = function(callback) {\r\n\tif (this._vnode) {\r\n\t\t// Set render mode so that we can differentiate where the render request\r\n\t\t// is coming from. We need this because forceUpdate should never call\r\n\t\t// shouldComponentUpdate\r\n\t\tthis._force = true;\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\r\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\r\n * @param {object} props Props (eg: JSX attributes) received from parent\r\n * element/component\r\n * @param {object} state The component's current state\r\n * @param {object} context Context object, as returned by the nearest\r\n * ancestor's `getChildContext()`\r\n * @returns {import('./index').ComponentChildren | void}\r\n */\r\nComponent.prototype.render = Fragment;\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n * @param {number | null} [childIndex]\r\n */\r\nexport function getDomSibling(vnode, childIndex) {\r\n\tif (childIndex == null) {\r\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\r\n\t\treturn vnode._parent\r\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\tlet sibling;\r\n\tfor (; childIndex < vnode._children.length; childIndex++) {\r\n\t\tsibling = vnode._children[childIndex];\r\n\r\n\t\tif (sibling != null && sibling._dom != null) {\r\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\r\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\r\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\r\n\t\t\treturn sibling._dom;\r\n\t\t}\r\n\t}\r\n\r\n\t// If we get here, we have not found a DOM node in this vnode's children.\r\n\t// We must resume from this vnode's sibling (in it's parent _children array)\r\n\t// Only climb up and search the parent if we aren't searching through a DOM\r\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\r\n\t// the search)\r\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\r\n}\r\n\r\n/**\r\n * Trigger in-place re-rendering of a component.\r\n * @param {import('./internal').Component} component The component to rerender\r\n */\r\nfunction renderComponent(component) {\r\n\tlet vnode = component._vnode,\r\n\t\toldDom = vnode._dom,\r\n\t\tparentDom = component._parentDom;\r\n\r\n\tif (parentDom) {\r\n\t\tlet commitQueue = [];\r\n\t\tconst oldVNode = assign({}, vnode);\r\n\t\toldVNode._original = vnode._original + 1;\r\n\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tvnode,\r\n\t\t\toldVNode,\r\n\t\t\tcomponent._globalContext,\r\n\t\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\r\n\t\t\tvnode._hydrating\r\n\t\t);\r\n\t\tcommitRoot(commitQueue, vnode);\r\n\r\n\t\tif (vnode._dom != oldDom) {\r\n\t\t\tupdateParentDomPointers(vnode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n */\r\nfunction updateParentDomPointers(vnode) {\r\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\r\n\t\tvnode._dom = vnode._component.base = null;\r\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\r\n\t\t\tlet child = vnode._children[i];\r\n\t\t\tif (child != null && child._dom != null) {\r\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn updateParentDomPointers(vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * The render queue\r\n * @type {Array}\r\n */\r\nlet rerenderQueue = [];\r\n\r\n/**\r\n * Asynchronously schedule a callback\r\n * @type {(cb: () => void) => void}\r\n */\r\n/* istanbul ignore next */\r\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\r\nconst defer =\r\n\ttypeof Promise == 'function'\r\n\t\t? Promise.prototype.then.bind(Promise.resolve())\r\n\t\t: setTimeout;\r\n\r\n/*\r\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\r\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\r\n * do, and when their effects will be applied. See the links below for some further reading on designing\r\n * asynchronous APIs.\r\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\r\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\r\n */\r\n\r\nlet prevDebounce;\r\n\r\n/**\r\n * Enqueue a rerender of a component\r\n * @param {import('./internal').Component} c The component to rerender\r\n */\r\nexport function enqueueRender(c) {\r\n\tif (\r\n\t\t(!c._dirty &&\r\n\t\t\t(c._dirty = true) &&\r\n\t\t\trerenderQueue.push(c) &&\r\n\t\t\t!process._rerenderCount++) ||\r\n\t\tprevDebounce !== options.debounceRendering\r\n\t) {\r\n\t\tprevDebounce = options.debounceRendering;\r\n\t\t(prevDebounce || defer)(process);\r\n\t}\r\n}\r\n\r\n/** Flush the render queue by rerendering all queued components */\r\nfunction process() {\r\n\tlet queue;\r\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\r\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\r\n\t\trerenderQueue = [];\r\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\r\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\r\n\t\tqueue.some(c => {\r\n\t\t\tif (c._dirty) renderComponent(c);\r\n\t\t});\r\n\t}\r\n}\r\nprocess._rerenderCount = 0;\r\n","import { diff, unmount, applyRef } from './index';\r\nimport { createVNode, Fragment } from '../create-element';\r\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\r\nimport { getDomSibling } from '../component';\r\n\r\n/**\r\n * Diff the children of a virtual node\r\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\r\n * children are being diffed\r\n * @param {import('../internal').ComponentChildren[]} renderResult\r\n * @param {import('../internal').VNode} newParentVNode The new virtual\r\n * node whose children should be diff'ed against oldParentVNode\r\n * @param {import('../internal').VNode} oldParentVNode The old virtual\r\n * node whose children should be diff'ed against newParentVNode\r\n * @param {object} globalContext The current context object - modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n */\r\nexport function diffChildren(\r\n\tparentDom,\r\n\trenderResult,\r\n\tnewParentVNode,\r\n\toldParentVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\r\n\r\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\r\n\t// as EMPTY_OBJ._children should be `undefined`.\r\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\r\n\r\n\tlet oldChildrenLength = oldChildren.length;\r\n\r\n\tnewParentVNode._children = [];\r\n\tfor (i = 0; i < renderResult.length; i++) {\r\n\t\tchildVNode = renderResult[i];\r\n\r\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\r\n\t\t\tchildVNode = newParentVNode._children[i] = null;\r\n\t\t}\r\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\r\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\r\n\t\t// it's own DOM & etc. pointers\r\n\t\telse if (\r\n\t\t\ttypeof childVNode == 'string' ||\r\n\t\t\ttypeof childVNode == 'number' ||\r\n\t\t\t// eslint-disable-next-line valid-typeof\r\n\t\t\ttypeof childVNode == 'bigint'\r\n\t\t) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode\r\n\t\t\t);\r\n\t\t} else if (Array.isArray(childVNode)) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tFragment,\r\n\t\t\t\t{ children: childVNode },\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull\r\n\t\t\t);\r\n\t\t} else if (childVNode._depth > 0) {\r\n\t\t\t// VNode is already in use, clone it. This can happen in the following\r\n\t\t\t// scenario:\r\n\t\t\t// const reuse =
\r\n\t\t\t//
{reuse}{reuse}
\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tchildVNode.type,\r\n\t\t\t\tchildVNode.props,\r\n\t\t\t\tchildVNode.key,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode._original\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\r\n\t\t}\r\n\r\n\t\t// Terser removes the `continue` here and wraps the loop body\r\n\t\t// in a `if (childVNode) { ... } condition\r\n\t\tif (childVNode == null) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tchildVNode._parent = newParentVNode;\r\n\t\tchildVNode._depth = newParentVNode._depth + 1;\r\n\r\n\t\t// Check if we find a corresponding element in oldChildren.\r\n\t\t// If found, delete the array item by setting to `undefined`.\r\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\r\n\t\t// (holes).\r\n\t\toldVNode = oldChildren[i];\r\n\r\n\t\tif (\r\n\t\t\toldVNode === null ||\r\n\t\t\t(oldVNode &&\r\n\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\tchildVNode.type === oldVNode.type)\r\n\t\t) {\r\n\t\t\toldChildren[i] = undefined;\r\n\t\t} else {\r\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\r\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\r\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\r\n\t\t\t\toldVNode = oldChildren[j];\r\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\r\n\t\t\t\t// We always match by type (in either case).\r\n\t\t\t\tif (\r\n\t\t\t\t\toldVNode &&\r\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\t\tchildVNode.type === oldVNode.type\r\n\t\t\t\t) {\r\n\t\t\t\t\toldChildren[j] = undefined;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\toldVNode = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toldVNode = oldVNode || EMPTY_OBJ;\r\n\r\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tchildVNode,\r\n\t\t\toldVNode,\r\n\t\t\tglobalContext,\r\n\t\t\tisSvg,\r\n\t\t\texcessDomChildren,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom,\r\n\t\t\tisHydrating\r\n\t\t);\r\n\r\n\t\tnewDom = childVNode._dom;\r\n\r\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\r\n\t\t\tif (!refs) refs = [];\r\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\r\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\r\n\t\t}\r\n\r\n\t\tif (newDom != null) {\r\n\t\t\tif (firstChildDom == null) {\r\n\t\t\t\tfirstChildDom = newDom;\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\ttypeof childVNode.type == 'function' &&\r\n\t\t\t\tchildVNode._children === oldVNode._children\r\n\t\t\t) {\r\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldDom,\r\n\t\t\t\t\tparentDom\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldVNode,\r\n\t\t\t\t\toldChildren,\r\n\t\t\t\t\tnewDom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof newParentVNode.type == 'function') {\r\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\r\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\r\n\t\t\t\t//\r\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\r\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\r\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\r\n\t\t\t\t// node's nextSibling.\r\n\t\t\t\tnewParentVNode._nextDom = oldDom;\r\n\t\t\t}\r\n\t\t} else if (\r\n\t\t\toldDom &&\r\n\t\t\toldVNode._dom == oldDom &&\r\n\t\t\toldDom.parentNode != parentDom\r\n\t\t) {\r\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\r\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\r\n\t\t\toldDom = getDomSibling(oldVNode);\r\n\t\t}\r\n\t}\r\n\r\n\tnewParentVNode._dom = firstChildDom;\r\n\r\n\t// Remove remaining oldChildren if there are any.\r\n\tfor (i = oldChildrenLength; i--; ) {\r\n\t\tif (oldChildren[i] != null) {\r\n\t\t\tif (\r\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\r\n\t\t\t\toldChildren[i]._dom != null &&\r\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\r\n\t\t\t) {\r\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\r\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\r\n\t\t\t\t// _nextDom to it\r\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\r\n\t\t\t}\r\n\r\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t// Set refs only after unmount\r\n\tif (refs) {\r\n\t\tfor (i = 0; i < refs.length; i++) {\r\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction reorderChildren(childVNode, oldDom, parentDom) {\r\n\t// Note: VNodes in nested suspended trees may be missing _children.\r\n\tlet c = childVNode._children;\r\n\tlet tmp = 0;\r\n\tfor (; c && tmp < c.length; tmp++) {\r\n\t\tlet vnode = c[tmp];\r\n\t\tif (vnode) {\r\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\r\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\r\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\r\n\t\t\t// (childVNode here).\r\n\t\t\tvnode._parent = childVNode;\r\n\r\n\t\t\tif (typeof vnode.type == 'function') {\r\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tc,\r\n\t\t\t\t\tvnode._dom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn oldDom;\r\n}\r\n\r\n/**\r\n * Flatten and loop through the children of a virtual node\r\n * @param {import('../index').ComponentChildren} children The unflattened\r\n * children of a virtual node\r\n * @returns {import('../internal').VNode[]}\r\n */\r\nexport function toChildArray(children, out) {\r\n\tout = out || [];\r\n\tif (children == null || typeof children == 'boolean') {\r\n\t} else if (Array.isArray(children)) {\r\n\t\tchildren.some(child => {\r\n\t\t\ttoChildArray(child, out);\r\n\t\t});\r\n\t} else {\r\n\t\tout.push(children);\r\n\t}\r\n\treturn out;\r\n}\r\n\r\nfunction placeChild(\r\n\tparentDom,\r\n\tchildVNode,\r\n\toldVNode,\r\n\toldChildren,\r\n\tnewDom,\r\n\toldDom\r\n) {\r\n\tlet nextDom;\r\n\tif (childVNode._nextDom !== undefined) {\r\n\t\t// Only Fragments or components that return Fragment like VNodes will\r\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\r\n\t\t// of last DOM child of this child VNode\r\n\t\tnextDom = childVNode._nextDom;\r\n\r\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\r\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\r\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\r\n\t\t// can clean up the property\r\n\t\tchildVNode._nextDom = undefined;\r\n\t} else if (\r\n\t\toldVNode == null ||\r\n\t\tnewDom != oldDom ||\r\n\t\tnewDom.parentNode == null\r\n\t) {\r\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\r\n\t\t\tparentDom.appendChild(newDom);\r\n\t\t\tnextDom = null;\r\n\t\t} else {\r\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\r\n\t\t\t// - className --> class\r\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\r\n\t\t} else if (\r\n\t\t\tname !== 'href' &&\r\n\t\t\tname !== 'list' &&\r\n\t\t\tname !== 'form' &&\r\n\t\t\t// Default value in browsers is `-1` and an empty string is\r\n\t\t\t// cast to `0` instead\r\n\t\t\tname !== 'tabIndex' &&\r\n\t\t\tname !== 'download' &&\r\n\t\t\tname in dom\r\n\t\t) {\r\n\t\t\ttry {\r\n\t\t\t\tdom[name] = value == null ? '' : value;\r\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\r\n\t\t\t\tbreak o;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\t// ARIA-attributes have a different notion of boolean values.\r\n\t\t// The value `false` is different from the attribute not\r\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\r\n\t\t// ARIA-attributes we could treat false as a removal, but the\r\n\t\t// amount of exceptions would cost us too many bytes. On top of\r\n\t\t// that other VDOM frameworks also always stringify `false`.\r\n\r\n\t\tif (typeof value === 'function') {\r\n\t\t\t// never serialize functions as attribute values\r\n\t\t} else if (\r\n\t\t\tvalue != null &&\r\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\r\n\t\t) {\r\n\t\t\tdom.setAttribute(name, value);\r\n\t\t} else {\r\n\t\t\tdom.removeAttribute(name);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Proxy an event to hooked event handlers\r\n * @param {Event} e The event object from the browser\r\n * @private\r\n */\r\nfunction eventProxy(e) {\r\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\r\n}\r\n\r\nfunction eventProxyCapture(e) {\r\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\r\n}\r\n","import { EMPTY_OBJ } from '../constants';\r\nimport { Component, getDomSibling } from '../component';\r\nimport { Fragment } from '../create-element';\r\nimport { diffChildren } from './children';\r\nimport { diffProps, setProperty } from './props';\r\nimport { assign, removeNode, slice } from '../util';\r\nimport options from '../options';\r\n\r\n/**\r\n * Diff two virtual nodes and apply proper changes to the DOM\r\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object. Modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this element is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} [isHydrating] Whether or not we are in hydration\r\n */\r\nexport function diff(\r\n\tparentDom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet tmp,\r\n\t\tnewType = newVNode.type;\r\n\r\n\t// When passing through createElement it assigns the object\r\n\t// constructor as undefined. This to prevent JSON-injection.\r\n\tif (newVNode.constructor !== undefined) return null;\r\n\r\n\t// If the previous diff bailed out, resume creating/hydrating.\r\n\tif (oldVNode._hydrating != null) {\r\n\t\tisHydrating = oldVNode._hydrating;\r\n\t\toldDom = newVNode._dom = oldVNode._dom;\r\n\t\t// if we resume, we want the tree to be \"unlocked\"\r\n\t\tnewVNode._hydrating = null;\r\n\t\texcessDomChildren = [oldDom];\r\n\t}\r\n\r\n\tif ((tmp = options._diff)) tmp(newVNode);\r\n\r\n\ttry {\r\n\t\touter: if (typeof newType == 'function') {\r\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\r\n\t\t\tlet newProps = newVNode.props;\r\n\r\n\t\t\t// Necessary for createContext api. Setting this property will pass\r\n\t\t\t// the context value as `this.context` just for this component.\r\n\t\t\ttmp = newType.contextType;\r\n\t\t\tlet provider = tmp && globalContext[tmp._id];\r\n\t\t\tlet componentContext = tmp\r\n\t\t\t\t? provider\r\n\t\t\t\t\t? provider.props.value\r\n\t\t\t\t\t: tmp._defaultValue\r\n\t\t\t\t: globalContext;\r\n\r\n\t\t\t// Get component and set it to `c`\r\n\t\t\tif (oldVNode._component) {\r\n\t\t\t\tc = newVNode._component = oldVNode._component;\r\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\r\n\t\t\t} else {\r\n\t\t\t\t// Instantiate the new component\r\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\r\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\r\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\r\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\r\n\t\t\t\t\tc.constructor = newType;\r\n\t\t\t\t\tc.render = doRender;\r\n\t\t\t\t}\r\n\t\t\t\tif (provider) provider.sub(c);\r\n\r\n\t\t\t\tc.props = newProps;\r\n\t\t\t\tif (!c.state) c.state = {};\r\n\t\t\t\tc.context = componentContext;\r\n\t\t\t\tc._globalContext = globalContext;\r\n\t\t\t\tisNew = c._dirty = true;\r\n\t\t\t\tc._renderCallbacks = [];\r\n\t\t\t}\r\n\r\n\t\t\t// Invoke getDerivedStateFromProps\r\n\t\t\tif (c._nextState == null) {\r\n\t\t\t\tc._nextState = c.state;\r\n\t\t\t}\r\n\t\t\tif (newType.getDerivedStateFromProps != null) {\r\n\t\t\t\tif (c._nextState == c.state) {\r\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tassign(\r\n\t\t\t\t\tc._nextState,\r\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\toldProps = c.props;\r\n\t\t\toldState = c.state;\r\n\r\n\t\t\t// Invoke pre-render lifecycle methods\r\n\t\t\tif (isNew) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tc.componentWillMount != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillMount();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidMount != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tnewProps !== oldProps &&\r\n\t\t\t\t\tc.componentWillReceiveProps != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t(!c._force &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate(\r\n\t\t\t\t\t\t\tnewProps,\r\n\t\t\t\t\t\t\tc._nextState,\r\n\t\t\t\t\t\t\tcomponentContext\r\n\t\t\t\t\t\t) === false) ||\r\n\t\t\t\t\tnewVNode._original === oldVNode._original\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.props = newProps;\r\n\t\t\t\t\tc.state = c._nextState;\r\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\r\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\r\n\t\t\t\t\tc._vnode = newVNode;\r\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\r\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\t\t\tcommitQueue.push(c);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak outer;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentWillUpdate != null) {\r\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidUpdate != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(() => {\r\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tc.context = componentContext;\r\n\t\t\tc.props = newProps;\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\r\n\r\n\t\t\tc._dirty = false;\r\n\t\t\tc._vnode = newVNode;\r\n\t\t\tc._parentDom = parentDom;\r\n\r\n\t\t\ttmp = c.render(c.props, c.state, c.context);\r\n\r\n\t\t\t// Handle setState called in render, see #2553\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif (c.getChildContext != null) {\r\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\r\n\t\t\t}\r\n\r\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\r\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\r\n\t\t\t}\r\n\r\n\t\t\tlet isTopLevelFragment =\r\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\r\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\r\n\r\n\t\t\tdiffChildren(\r\n\t\t\t\tparentDom,\r\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\toldDom,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\tc.base = newVNode._dom;\r\n\r\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\r\n\t\t\tnewVNode._hydrating = null;\r\n\r\n\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\tcommitQueue.push(c);\r\n\t\t\t}\r\n\r\n\t\t\tif (clearProcessingException) {\r\n\t\t\t\tc._pendingError = c._processingException = null;\r\n\t\t\t}\r\n\r\n\t\t\tc._force = false;\r\n\t\t} else if (\r\n\t\t\texcessDomChildren == null &&\r\n\t\t\tnewVNode._original === oldVNode._original\r\n\t\t) {\r\n\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t} else {\r\n\t\t\tnewVNode._dom = diffElementNodes(\r\n\t\t\t\toldVNode._dom,\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\r\n\t} catch (e) {\r\n\t\tnewVNode._original = null;\r\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\r\n\t\tif (isHydrating || excessDomChildren != null) {\r\n\t\t\tnewVNode._dom = oldDom;\r\n\t\t\tnewVNode._hydrating = !!isHydrating;\r\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\r\n\t\t\t// ^ could possibly be simplified to:\r\n\t\t\t// excessDomChildren.length = 0;\r\n\t\t}\r\n\t\toptions._catchError(e, newVNode, oldVNode);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').VNode} root\r\n */\r\nexport function commitRoot(commitQueue, root) {\r\n\tif (options._commit) options._commit(root, commitQueue);\r\n\r\n\tcommitQueue.some(c => {\r\n\t\ttry {\r\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\r\n\t\t\tcommitQueue = c._renderCallbacks;\r\n\t\t\tc._renderCallbacks = [];\r\n\t\t\tcommitQueue.some(cb => {\r\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\r\n\t\t\t\tcb.call(c);\r\n\t\t\t});\r\n\t\t} catch (e) {\r\n\t\t\toptions._catchError(e, c._vnode);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Diff two virtual nodes representing DOM element\r\n * @param {import('../internal').PreactElement} dom The DOM element representing\r\n * the virtual nodes being diffed\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {*} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n * @returns {import('../internal').PreactElement}\r\n */\r\nfunction diffElementNodes(\r\n\tdom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\tisHydrating\r\n) {\r\n\tlet oldProps = oldVNode.props;\r\n\tlet newProps = newVNode.props;\r\n\tlet nodeType = newVNode.type;\r\n\tlet i = 0;\r\n\r\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\r\n\tif (nodeType === 'svg') isSvg = true;\r\n\r\n\tif (excessDomChildren != null) {\r\n\t\tfor (; i < excessDomChildren.length; i++) {\r\n\t\t\tconst child = excessDomChildren[i];\r\n\r\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\r\n\t\t\t// argument matches an element in excessDomChildren, remove it from\r\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\r\n\t\t\tif (\r\n\t\t\t\tchild &&\r\n\t\t\t\t'setAttribute' in child === !!nodeType &&\r\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\r\n\t\t\t) {\r\n\t\t\t\tdom = child;\r\n\t\t\t\texcessDomChildren[i] = null;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (dom == null) {\r\n\t\tif (nodeType === null) {\r\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\r\n\t\t\treturn document.createTextNode(newProps);\r\n\t\t}\r\n\r\n\t\tif (isSvg) {\r\n\t\t\tdom = document.createElementNS(\r\n\t\t\t\t'http://www.w3.org/2000/svg',\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tdom = document.createElement(\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType,\r\n\t\t\t\tnewProps.is && newProps\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// we created a new parent, so none of the previously attached children can be reused:\r\n\t\texcessDomChildren = null;\r\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\r\n\t\tisHydrating = false;\r\n\t}\r\n\r\n\tif (nodeType === null) {\r\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\r\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\r\n\t\t\tdom.data = newProps;\r\n\t\t}\r\n\t} else {\r\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\r\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\r\n\r\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\r\n\r\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\r\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\r\n\r\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\r\n\t\t// @TODO we should warn in debug mode when props don't match here.\r\n\t\tif (!isHydrating) {\r\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\r\n\t\t\t// we should read the existing DOM attributes to diff them\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\toldProps = {};\r\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\r\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (newHtml || oldHtml) {\r\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\r\n\t\t\t\tif (\r\n\t\t\t\t\t!newHtml ||\r\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\r\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\r\n\t\t\t\t) {\r\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\r\n\r\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\r\n\t\tif (newHtml) {\r\n\t\t\tnewVNode._children = [];\r\n\t\t} else {\r\n\t\t\ti = newVNode.props.children;\r\n\t\t\tdiffChildren(\r\n\t\t\t\tdom,\r\n\t\t\t\tArray.isArray(i) ? i : [i],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\texcessDomChildren\r\n\t\t\t\t\t? excessDomChildren[0]\r\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\t// Remove children that are not part of any vnode.\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\r\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// (as above, don't diff props during hydration)\r\n\t\tif (!isHydrating) {\r\n\t\t\tif (\r\n\t\t\t\t'value' in newProps &&\r\n\t\t\t\t(i = newProps.value) !== undefined &&\r\n\t\t\t\t// #2756 For the -element the initial value is 0,\r\n\t\t\t\t// despite the attribute not being present. When the attribute\r\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\r\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\r\n\t\t\t\t(i !== oldProps.value ||\r\n\t\t\t\t\ti !== dom.value ||\r\n\t\t\t\t\t(nodeType === 'progress' && !i))\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t'checked' in newProps &&\r\n\t\t\t\t(i = newProps.checked) !== undefined &&\r\n\t\t\t\ti !== dom.checked\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn dom;\r\n}\r\n\r\n/**\r\n * Invoke or update a ref, depending on whether it is a function or object ref.\r\n * @param {object|function} ref\r\n * @param {any} value\r\n * @param {import('../internal').VNode} vnode\r\n */\r\nexport function applyRef(ref, value, vnode) {\r\n\ttry {\r\n\t\tif (typeof ref == 'function') ref(value);\r\n\t\telse ref.current = value;\r\n\t} catch (e) {\r\n\t\toptions._catchError(e, vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * Unmount a virtual node from the tree and apply DOM changes\r\n * @param {import('../internal').VNode} vnode The virtual node to unmount\r\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\r\n * initiated the unmount\r\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\r\n * current element is already detached from the DOM.\r\n */\r\nexport function unmount(vnode, parentVNode, skipRemove) {\r\n\tlet r;\r\n\tif (options.unmount) options.unmount(vnode);\r\n\r\n\tif ((r = vnode.ref)) {\r\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\r\n\t}\r\n\r\n\tif ((r = vnode._component) != null) {\r\n\t\tif (r.componentWillUnmount) {\r\n\t\t\ttry {\r\n\t\t\t\tr.componentWillUnmount();\r\n\t\t\t} catch (e) {\r\n\t\t\t\toptions._catchError(e, parentVNode);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tr.base = r._parentDom = null;\r\n\t}\r\n\r\n\tif ((r = vnode._children)) {\r\n\t\tfor (let i = 0; i < r.length; i++) {\r\n\t\t\tif (r[i]) {\r\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\r\n\r\n\t// Must be set to `undefined` to properly clean up `_nextDom`\r\n\t// for which `null` is a valid value. See comment in `create-element.js`\r\n\tvnode._dom = vnode._nextDom = undefined;\r\n}\r\n\r\n/** The `.render()` method for a PFC backing instance. */\r\nfunction doRender(props, state, context) {\r\n\treturn this.constructor(props, context);\r\n}\r\n","import { EMPTY_OBJ } from './constants';\r\nimport { commitRoot, diff } from './diff/index';\r\nimport { createElement, Fragment } from './create-element';\r\nimport options from './options';\r\nimport { slice } from './util';\r\n\r\n/**\r\n * Render a Preact virtual node into a DOM element\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * render into\r\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\r\n * existing DOM tree rooted at `replaceNode`\r\n */\r\nexport function render(vnode, parentDom, replaceNode) {\r\n\tif (options._root) options._root(vnode, parentDom);\r\n\r\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\r\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\r\n\t// element..\r\n\tlet isHydrating = typeof replaceNode === 'function';\r\n\r\n\t// To be able to support calling `render()` multiple times on the same\r\n\t// DOM node, we need to obtain a reference to the previous tree. We do\r\n\t// this by assigning a new `_children` property to DOM nodes which points\r\n\t// to the last rendered tree. By default this property is not present, which\r\n\t// means that we are mounting a new tree for the first time.\r\n\tlet oldVNode = isHydrating\r\n\t\t? null\r\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\r\n\r\n\tvnode = (\r\n\t\t(!isHydrating && replaceNode) ||\r\n\t\tparentDom\r\n\t)._children = createElement(Fragment, null, [vnode]);\r\n\r\n\t// List of effects that need to be called after diffing.\r\n\tlet commitQueue = [];\r\n\tdiff(\r\n\t\tparentDom,\r\n\t\t// Determine the new vnode tree and store it on the DOM element on\r\n\t\t// our custom `_children` property.\r\n\t\tvnode,\r\n\t\toldVNode || EMPTY_OBJ,\r\n\t\tEMPTY_OBJ,\r\n\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? [replaceNode]\r\n\t\t\t: oldVNode\r\n\t\t\t? null\r\n\t\t\t: parentDom.firstChild\r\n\t\t\t? slice.call(parentDom.childNodes)\r\n\t\t\t: null,\r\n\t\tcommitQueue,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? replaceNode\r\n\t\t\t: oldVNode\r\n\t\t\t? oldVNode._dom\r\n\t\t\t: parentDom.firstChild,\r\n\t\tisHydrating\r\n\t);\r\n\r\n\t// Flush all queued effects\r\n\tcommitRoot(commitQueue, vnode);\r\n}\r\n\r\n/**\r\n * Update an existing DOM element with data from a Preact virtual node\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * update\r\n */\r\nexport function hydrate(vnode, parentDom) {\r\n\trender(vnode, parentDom, hydrate);\r\n}\r\n","import { assign, slice } from './util';\r\nimport { createVNode } from './create-element';\r\n\r\n/**\r\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\r\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\r\n * @param {object} props Attributes/props to add when cloning\r\n * @param {Array} rest Any additional arguments will be used as replacement children.\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function cloneElement(vnode, props, children) {\r\n\tlet normalizedProps = assign({}, vnode.props),\r\n\t\tkey,\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'key') key = props[i];\r\n\t\telse if (i == 'ref') ref = props[i];\r\n\t\telse normalizedProps[i] = props[i];\r\n\t}\r\n\r\n\tif (arguments.length > 2) {\r\n\t\tnormalizedProps.children =\r\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\r\n\t}\r\n\r\n\treturn createVNode(\r\n\t\tvnode.type,\r\n\t\tnormalizedProps,\r\n\t\tkey || vnode.key,\r\n\t\tref || vnode.ref,\r\n\t\tnull\r\n\t);\r\n}\r\n","import { enqueueRender } from './component';\r\n\r\nexport let i = 0;\r\n\r\nexport function createContext(defaultValue, contextId) {\r\n\tcontextId = '__cC' + i++;\r\n\r\n\tconst context = {\r\n\t\t_id: contextId,\r\n\t\t_defaultValue: defaultValue,\r\n\t\t/** @type {import('./internal').FunctionComponent} */\r\n\t\tConsumer(props, contextValue) {\r\n\t\t\t// return props.children(\r\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\r\n\t\t\t// );\r\n\t\t\treturn props.children(contextValue);\r\n\t\t},\r\n\t\t/** @type {import('./internal').FunctionComponent} */\r\n\t\tProvider(props) {\r\n\t\t\tif (!this.getChildContext) {\r\n\t\t\t\tlet subs = [];\r\n\t\t\t\tlet ctx = {};\r\n\t\t\t\tctx[contextId] = this;\r\n\r\n\t\t\t\tthis.getChildContext = () => ctx;\r\n\r\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\r\n\t\t\t\t\tif (this.props.value !== _props.value) {\r\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\r\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\r\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\r\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\r\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\r\n\t\t\t\t\t\t// subs.some(c => {\r\n\t\t\t\t\t\t// \tc.context = _props.value;\r\n\t\t\t\t\t\t// \tenqueueRender(c);\r\n\t\t\t\t\t\t// });\r\n\r\n\t\t\t\t\t\t// subs.some(c => {\r\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\r\n\t\t\t\t\t\t// \tenqueueRender(c);\r\n\t\t\t\t\t\t// });\r\n\t\t\t\t\t\tsubs.some(enqueueRender);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.sub = c => {\r\n\t\t\t\t\tsubs.push(c);\r\n\t\t\t\t\tlet old = c.componentWillUnmount;\r\n\t\t\t\t\tc.componentWillUnmount = () => {\r\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\r\n\t\t\t\t\t\tif (old) old.call(c);\r\n\t\t\t\t\t};\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn props.children;\r\n\t\t}\r\n\t};\r\n\r\n\t// Devtools needs access to the context object when it\r\n\t// encounters a Provider. This is necessary to support\r\n\t// setting `displayName` on the context object instead\r\n\t// of on the component itself. See:\r\n\t// https://reactjs.org/docs/context.html#contextdisplayname\r\n\r\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\r\n}\r\n","export const EMPTY_OBJ = {};\r\nexport const EMPTY_ARR = [];\r\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\r\n","import { _catchError } from './diff/catch-error';\r\n\r\n/**\r\n * The `option` object can potentially contain callback functions\r\n * that are called during various stages of our renderer. This is the\r\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\r\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\r\n * for a full list of available option hooks (most editors/IDEs allow you to\r\n * ctrl+click or cmd+click on mac the type definition below).\r\n * @type {import('./internal').Options}\r\n */\r\nconst options = {\r\n\t_catchError\r\n};\r\n\r\nexport default options;\r\n","/**\r\n * Find the closest error boundary to a thrown error and call it\r\n * @param {object} error The thrown value\r\n * @param {import('../internal').VNode} vnode The vnode that threw\r\n * the error that was caught (except for unmounting when this parameter\r\n * is the highest parent that was being unmounted)\r\n */\r\nexport function _catchError(error, vnode) {\r\n\t/** @type {import('../internal').Component} */\r\n\tlet component, ctor, handled;\r\n\r\n\tfor (; (vnode = vnode._parent); ) {\r\n\t\tif ((component = vnode._component) && !component._processingException) {\r\n\t\t\ttry {\r\n\t\t\t\tctor = component.constructor;\r\n\r\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\r\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (component.componentDidCatch != null) {\r\n\t\t\t\t\tcomponent.componentDidCatch(error);\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\r\n\t\t\t\tif (handled) {\r\n\t\t\t\t\treturn (component._pendingError = component);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\terror = e;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthrow error;\r\n}\r\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\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(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\troot = doRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}