{"mappings":"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","sources":["node_modules/htmx.org/dist/ext/multi-swap.js","node_modules/@parcel/runtime-js/lib/helpers/bundle-manifest.js","node_modules/prop-types/factoryWithThrowingShims.js","node_modules/prop-types/lib/ReactPropTypesSecret.js","node_modules/@parcel/runtime-js/lib/runtime-53fae96f98699fde.js","node_modules/@parcel/runtime-js/lib/runtime-7c68b705d704d91f.js","node_modules/@parcel/runtime-js/lib/runtime-26baeb30944ccb26.js","node_modules/@parcel/runtime-js/lib/runtime-0df8bd60eb461ec7.js","node_modules/htmx.org/dist/ext/ajax-header.js","node_modules/htmx.org/dist/ext/class-tools.js","node_modules/htmx.org/dist/ext/disable-element.js","node_modules/htmx.org/dist/ext/event-header.js","node_modules/htmx.org/dist/ext/head-support.js","node_modules/htmx.org/dist/ext/json-enc.js","node_modules/htmx.org/dist/ext/loading-states.js","node_modules/htmx.org/dist/ext/method-override.js","node_modules/htmx.org/dist/ext/morphdom-swap.js","node_modules/htmx.org/dist/ext/path-deps.js","node_modules/htmx.org/dist/ext/preload.js","node_modules/htmx.org/dist/ext/remove-me.js","node_modules/htmx.org/dist/ext/restored.js","node_modules/htmx.org/dist/ext/sse.js","node_modules/htmx.org/dist/ext/ws.js","node_modules/tslib/tslib.es6.js","node_modules/@lit/reactive-element/src/css-tag.ts","node_modules/@lit/reactive-element/src/reactive-element.ts","node_modules/lit-html/src/lit-html.ts","node_modules/lit-element/src/lit-element.ts","node_modules/lit-html/src/is-server.ts","node_modules/@lit/reactive-element/src/decorators/property.ts","node_modules/@lit/reactive-element/src/decorators/state.ts","node_modules/@lit/reactive-element/src/decorators/base.ts","node_modules/@lit/reactive-element/src/decorators/query.ts","node_modules/@lit/reactive-element/src/decorators/query-assigned-elements.ts","src/web-components/audio-player/player.ts","node_modules/preact/src/util.js","node_modules/preact/src/options.js","node_modules/preact/src/create-element.js","node_modules/preact/src/component.js","node_modules/preact/src/create-context.js","node_modules/preact/src/constants.js","node_modules/preact/src/diff/children.js","node_modules/preact/src/diff/props.js","node_modules/preact/src/diff/index.js","node_modules/preact/src/render.js","node_modules/preact/src/clone-element.js","node_modules/preact/src/diff/catch-error.js","node_modules/preact/hooks/src/index.js","node_modules/preact/compat/src/util.js","node_modules/preact/compat/src/PureComponent.js","node_modules/preact/compat/src/forwardRef.js","node_modules/preact/compat/src/Children.js","node_modules/preact/compat/src/suspense.js","node_modules/preact/compat/src/suspense-list.js","node_modules/preact/compat/src/portals.js","node_modules/preact/compat/src/render.js","node_modules/preact/compat/src/index.js","node_modules/preact/compat/src/memo.js","node_modules/@fortawesome/free-solid-svg-icons/index.mjs","node_modules/@fortawesome/fontawesome-svg-core/index.mjs","node_modules/@fortawesome/react-fontawesome/index.es.js","node_modules/prop-types/index.js","src/web-components/audio-trimmer/spinner.tsx","src/web-components/audio-trimmer/AudioTrimmer.tsx","node_modules/react-shadow-dom-retarget-events/index.js","src/web-components/audio-trimmer/AudioTrimmerInput.ts","src/web-components/drawing/Drawing.tsx","src/web-components/drawing/DrawingInput.ts","src/web-components/video-player/player.ts","node_modules/lit-html/src/directive.ts","node_modules/lit-html/src/directive-helpers.ts","node_modules/lit-html/src/async-directive.ts","node_modules/lit-html/src/directives/repeat.ts","node_modules/@lit-labs/virtualizer/src/events.ts","node_modules/@lit-labs/virtualizer/src/ScrollerController.ts","node_modules/@lit-labs/virtualizer/src/Virtualizer.ts","node_modules/@lit-labs/virtualizer/src/virtualize.ts","node_modules/@lit-labs/virtualizer/src/LitVirtualizer.ts","node_modules/@lit-labs/virtualizer/src/lit-virtualizer.ts","node_modules/lit-html/src/static.ts","src/web-components/virtual-list/virtual-list.ts","src/custom-elements.ts","src/htmx.ts"],"sourcesContent":["(function () {\n\n /** @type {import(\"../htmx\").HtmxInternalApi} */\n var api;\n\n htmx.defineExtension('multi-swap', {\n init: function (apiRef) {\n api = apiRef;\n },\n isInlineSwap: function (swapStyle) {\n return swapStyle.indexOf('multi:') === 0;\n },\n handleSwap: function (swapStyle, target, fragment, settleInfo) {\n if (swapStyle.indexOf('multi:') === 0) {\n var selectorToSwapStyle = {};\n var elements = swapStyle.replace(/^multi\\s*:\\s*/, '').split(/\\s*,\\s*/);\n\n elements.map(function (element) {\n var split = element.split(/\\s*:\\s*/);\n var elementSelector = split[0];\n var elementSwapStyle = typeof (split[1]) !== \"undefined\" ? split[1] : \"innerHTML\";\n\n if (elementSelector.charAt(0) !== '#') {\n console.error(\"HTMX multi-swap: unsupported selector '\" + elementSelector + \"'. Only ID selectors starting with '#' are supported.\");\n return;\n }\n\n selectorToSwapStyle[elementSelector] = elementSwapStyle;\n });\n\n for (var selector in selectorToSwapStyle) {\n var swapStyle = selectorToSwapStyle[selector];\n var elementToSwap = fragment.querySelector(selector);\n if (elementToSwap) {\n api.oobSwap(swapStyle, elementToSwap, settleInfo);\n } else {\n console.warn(\"HTMX multi-swap: selector '\" + selector + \"' not found in source content.\");\n }\n }\n\n return true;\n }\n }\n });\n})();","\"use strict\";\n\nvar mapping = {};\n\nfunction register(pairs) {\n var keys = Object.keys(pairs);\n\n for (var i = 0; i < keys.length; i++) {\n mapping[keys[i]] = pairs[keys[i]];\n }\n}\n\nfunction resolve(id) {\n var resolved = mapping[id];\n\n if (resolved == null) {\n throw new Error('Could not resolve bundle with id ' + id);\n }\n\n return resolved;\n}\n\nmodule.exports.register = register;\nmodule.exports.resolve = resolve;","/**\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","/**\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","module.exports = (__parcel__import__(\"./\" + require('./helpers/bundle-manifest').resolve(\"cYZjW\"))).then(() => parcelRequire('24Grz'));","module.exports = (__parcel__import__(\"./\" + require('./helpers/bundle-manifest').resolve(\"iQpeU\"))).then(() => parcelRequire('8Ko3E'));","module.exports = (__parcel__import__(\"./\" + require('./helpers/bundle-manifest').resolve(\"he5Q1\"))).then(() => parcelRequire('5bIEr'));","require('./helpers/bundle-manifest').register(JSON.parse(\"{\\\"cz8t6\\\":\\\"index.e9bcf9d1.js\\\",\\\"cYZjW\\\":\\\"wavesurfer.e387a334.js\\\",\\\"iQpeU\\\":\\\"wavesurfer.regions.9b7f1aa9.js\\\",\\\"he5Q1\\\":\\\"flow.ed639f98.js\\\"}\"));","htmx.defineExtension('ajax-header', {\n onEvent: function (name, evt) {\n if (name === \"htmx:configRequest\") {\n evt.detail.headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n }\n});","(function () {\n\n function splitOnWhitespace(trigger) {\n return trigger.split(/\\s+/);\n }\n\n function parseClassOperation(trimmedValue) {\n var split = splitOnWhitespace(trimmedValue);\n if (split.length > 1) {\n var operation = split[0];\n var classDef = split[1].trim();\n var cssClass;\n var delay;\n if (classDef.indexOf(\":\") > 0) {\n var splitCssClass = classDef.split(':');\n cssClass = splitCssClass[0];\n delay = htmx.parseInterval(splitCssClass[1]);\n } else {\n cssClass = classDef;\n delay = 100;\n }\n return {\n operation: operation,\n cssClass: cssClass,\n delay: delay\n }\n } else {\n return null;\n }\n }\n\n function performOperation(elt, classOperation, classList, currentRunTime) {\n setTimeout(function () {\n elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass);\n }, currentRunTime)\n }\n\n function toggleOperation(elt, classOperation, classList, currentRunTime) {\n setTimeout(function () {\n setInterval(function () {\n elt.classList[classOperation.operation].call(elt.classList, classOperation.cssClass);\n }, classOperation.delay);\n }, currentRunTime)\n }\n\n function processClassList(elt, classList) {\n var runs = classList.split(\"&\");\n for (var i = 0; i < runs.length; i++) {\n var run = runs[i];\n var currentRunTime = 0;\n var classOperations = run.split(\",\");\n for (var j = 0; j < classOperations.length; j++) {\n var value = classOperations[j];\n var trimmedValue = value.trim();\n var classOperation = parseClassOperation(trimmedValue);\n if (classOperation) {\n if (classOperation.operation === \"toggle\") {\n toggleOperation(elt, classOperation, classList, currentRunTime);\n currentRunTime = currentRunTime + classOperation.delay;\n } else {\n currentRunTime = currentRunTime + classOperation.delay;\n performOperation(elt, classOperation, classList, currentRunTime);\n }\n }\n }\n }\n }\n\n function maybeProcessClasses(elt) {\n if (elt.getAttribute) {\n var classList = elt.getAttribute(\"classes\") || elt.getAttribute(\"data-classes\");\n if (classList) {\n processClassList(elt, classList);\n }\n }\n }\n\n htmx.defineExtension('class-tools', {\n onEvent: function (name, evt) {\n if (name === \"htmx:afterProcessNode\") {\n var elt = evt.detail.elt;\n maybeProcessClasses(elt);\n if (elt.querySelectorAll) {\n var children = elt.querySelectorAll(\"[classes], [data-classes]\");\n for (var i = 0; i < children.length; i++) {\n maybeProcessClasses(children[i]);\n }\n }\n }\n }\n });\n})();","\"use strict\";\n\n// Disable Submit Button\nhtmx.defineExtension('disable-element', {\n onEvent: function (name, evt) {\n let elt = evt.detail.elt;\n let target = elt.getAttribute(\"hx-disable-element\");\n let targetElement = (target == \"self\") ? elt : document.querySelector(target);\n\n if (name === \"htmx:beforeRequest\" && targetElement) {\n targetElement.disabled = true;\n } else if (name == \"htmx:afterRequest\" && targetElement) {\n targetElement.disabled = false;\n }\n }\n});","(function(){\n function stringifyEvent(event) {\n var obj = {};\n for (var key in event) {\n obj[key] = event[key];\n }\n return JSON.stringify(obj, function(key, value){\n if(value instanceof Node){\n var nodeRep = value.tagName;\n if (nodeRep) {\n nodeRep = nodeRep.toLowerCase();\n if(value.id){\n nodeRep += \"#\" + value.id;\n }\n if(value.classList && value.classList.length){\n nodeRep += \".\" + value.classList.toString().replace(\" \", \".\")\n }\n return nodeRep;\n } else {\n return \"Node\"\n }\n }\n if (value instanceof Window) return 'Window';\n return value;\n });\n }\n\n htmx.defineExtension('event-header', {\n onEvent: function (name, evt) {\n if (name === \"htmx:configRequest\") {\n if (evt.detail.triggeringEvent) {\n evt.detail.headers['Triggering-Event'] = stringifyEvent(evt.detail.triggeringEvent);\n }\n }\n }\n });\n})();\n","//==========================================================\n// head-support.js\n//\n// An extension to htmx 1.0 to add head tag merging.\n//==========================================================\n(function(){\n\n var api = null;\n\n function log() {\n //console.log(arguments);\n }\n\n function mergeHead(newContent, defaultMergeStrategy) {\n\n if (newContent && newContent.indexOf(' -1) {\n const htmlDoc = document.createElement(\"html\");\n // remove svgs to avoid conflicts\n var contentWithSvgsRemoved = newContent.replace(/]*>|>)([\\s\\S]*?)<\\/svg>/gim, '');\n // extract head tag\n var headTag = contentWithSvgsRemoved.match(/(]*>|>)([\\s\\S]*?)<\\/head>)/im);\n\n // if the head tag exists...\n if (headTag) {\n\n var added = []\n var removed = []\n var preserved = []\n var nodesToAppend = []\n\n htmlDoc.innerHTML = headTag;\n var newHeadTag = htmlDoc.querySelector(\"head\");\n var currentHead = document.head;\n\n if (newHeadTag == null) {\n return;\n } else {\n // put all new head elements into a Map, by their outerHTML\n var srcToNewHeadNodes = new Map();\n for (const newHeadChild of newHeadTag.children) {\n srcToNewHeadNodes.set(newHeadChild.outerHTML, newHeadChild);\n }\n }\n\n\n\n // determine merge strategy\n var mergeStrategy = api.getAttributeValue(newHeadTag, \"hx-head\") || defaultMergeStrategy;\n\n // get the current head\n for (const currentHeadElt of currentHead.children) {\n\n // If the current head element is in the map\n var inNewContent = srcToNewHeadNodes.has(currentHeadElt.outerHTML);\n var isReAppended = currentHeadElt.getAttribute(\"hx-head\") === \"re-eval\";\n var isPreserved = api.getAttributeValue(currentHeadElt, \"hx-preserve\") === \"true\";\n if (inNewContent || isPreserved) {\n if (isReAppended) {\n // remove the current version and let the new version replace it and re-execute\n removed.push(currentHeadElt);\n } else {\n // this element already exists and should not be re-appended, so remove it from\n // the new content map, preserving it in the DOM\n srcToNewHeadNodes.delete(currentHeadElt.outerHTML);\n preserved.push(currentHeadElt);\n }\n } else {\n if (mergeStrategy === \"append\") {\n // we are appending and this existing element is not new content\n // so if and only if it is marked for re-append do we do anything\n if (isReAppended) {\n removed.push(currentHeadElt);\n nodesToAppend.push(currentHeadElt);\n }\n } else {\n // if this is a merge, we remove this content since it is not in the new head\n if (api.triggerEvent(document.body, \"htmx:removingHeadElement\", {headElement: currentHeadElt}) !== false) {\n removed.push(currentHeadElt);\n }\n }\n }\n }\n\n // Push the tremaining new head elements in the Map into the\n // nodes to append to the head tag\n nodesToAppend.push(...srcToNewHeadNodes.values());\n log(\"to append: \", nodesToAppend);\n\n for (const newNode of nodesToAppend) {\n log(\"adding: \", newNode);\n var newElt = document.createRange().createContextualFragment(newNode.outerHTML);\n log(newElt);\n if (api.triggerEvent(document.body, \"htmx:addingHeadElement\", {headElement: newElt}) !== false) {\n currentHead.appendChild(newElt);\n added.push(newElt);\n }\n }\n\n // remove all removed elements, after we have appended the new elements to avoid\n // additional network requests for things like style sheets\n for (const removedElement of removed) {\n if (api.triggerEvent(document.body, \"htmx:removingHeadElement\", {headElement: removedElement}) !== false) {\n currentHead.removeChild(removedElement);\n }\n }\n\n api.triggerEvent(document.body, \"htmx:afterHeadMerge\", {added: added, kept: preserved, removed: removed});\n }\n }\n }\n\n htmx.defineExtension(\"head-support\", {\n init: function(apiRef) {\n // store a reference to the internal API.\n api = apiRef;\n\n htmx.on('htmx:afterSwap', function(evt){\n var serverResponse = evt.detail.xhr.response;\n if (api.triggerEvent(document.body, \"htmx:beforeHeadMerge\", evt.detail)) {\n mergeHead(serverResponse, evt.detail.boosted ? \"merge\" : \"append\");\n }\n })\n\n htmx.on('htmx:historyRestore', function(evt){\n if (api.triggerEvent(document.body, \"htmx:beforeHeadMerge\", evt.detail)) {\n if (evt.detail.cacheMiss) {\n mergeHead(evt.detail.serverResponse, \"merge\");\n } else {\n mergeHead(evt.detail.item.head, \"merge\");\n }\n }\n })\n\n htmx.on('htmx:historyItemCreated', function(evt){\n var historyItem = evt.detail.item;\n historyItem.head = document.head.outerHTML;\n })\n }\n });\n\n})()","htmx.defineExtension('json-enc', {\n onEvent: function (name, evt) {\n if (name === \"htmx:configRequest\") {\n evt.detail.headers['Content-Type'] = \"application/json\";\n }\n },\n \n encodeParameters : function(xhr, parameters, elt) {\n xhr.overrideMimeType('text/json');\n return (JSON.stringify(parameters));\n }\n});",";(function () {\n\tlet loadingStatesUndoQueue = []\n\n\tfunction loadingStateContainer(target) {\n\t\treturn htmx.closest(target, '[data-loading-states]') || document.body\n\t}\n\n\tfunction mayProcessUndoCallback(target, callback) {\n\t\tif (document.body.contains(target)) {\n\t\t\tcallback()\n\t\t}\n\t}\n\n\tfunction mayProcessLoadingStateByPath(elt, requestPath) {\n\t\tconst pathElt = htmx.closest(elt, '[data-loading-path]')\n\t\tif (!pathElt) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn pathElt.getAttribute('data-loading-path') === requestPath\n\t}\n\n\tfunction queueLoadingState(sourceElt, targetElt, doCallback, undoCallback) {\n\t\tconst delayElt = htmx.closest(sourceElt, '[data-loading-delay]')\n\t\tif (delayElt) {\n\t\t\tconst delayInMilliseconds =\n\t\t\t\tdelayElt.getAttribute('data-loading-delay') || 200\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tdoCallback()\n\n\t\t\t\tloadingStatesUndoQueue.push(() => {\n\t\t\t\t\tmayProcessUndoCallback(targetElt, () => undoCallback())\n\t\t\t\t})\n\t\t\t}, delayInMilliseconds)\n\n\t\t\tloadingStatesUndoQueue.push(() => {\n\t\t\t\tmayProcessUndoCallback(targetElt, () => clearTimeout(timeout))\n\t\t\t})\n\t\t} else {\n\t\t\tdoCallback()\n\t\t\tloadingStatesUndoQueue.push(() => {\n\t\t\t\tmayProcessUndoCallback(targetElt, () => undoCallback())\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction getLoadingStateElts(loadingScope, type, path) {\n\t\treturn Array.from(htmx.findAll(loadingScope, `[${type}]`)).filter(\n\t\t\t(elt) => mayProcessLoadingStateByPath(elt, path)\n\t\t)\n\t}\n\n\tfunction getLoadingTarget(elt) {\n\t\tif (elt.getAttribute('data-loading-target')) {\n\t\t\treturn Array.from(\n\t\t\t\thtmx.findAll(elt.getAttribute('data-loading-target'))\n\t\t\t)\n\t\t}\n\t\treturn [elt]\n\t}\n\n\thtmx.defineExtension('loading-states', {\n\t\tonEvent: function (name, evt) {\n\t\t\tif (name === 'htmx:beforeRequest') {\n\t\t\t\tconst container = loadingStateContainer(evt.target)\n\n\t\t\t\tconst loadingStateTypes = [\n\t\t\t\t\t'data-loading',\n\t\t\t\t\t'data-loading-class',\n\t\t\t\t\t'data-loading-class-remove',\n\t\t\t\t\t'data-loading-disable',\n\t\t\t\t\t'data-loading-aria-busy',\n\t\t\t\t]\n\n\t\t\t\tlet loadingStateEltsByType = {}\n\n\t\t\t\tloadingStateTypes.forEach((type) => {\n\t\t\t\t\tloadingStateEltsByType[type] = getLoadingStateElts(\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tevt.detail.pathInfo.requestPath\n\t\t\t\t\t)\n\t\t\t\t})\n\n\t\t\t\tloadingStateEltsByType['data-loading'].forEach((sourceElt) => {\n\t\t\t\t\tgetLoadingTarget(sourceElt).forEach((targetElt) => {\n\t\t\t\t\t\tqueueLoadingState(\n\t\t\t\t\t\t\tsourceElt,\n\t\t\t\t\t\t\ttargetElt,\n\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t(targetElt.style.display =\n\t\t\t\t\t\t\t\t\tsourceElt.getAttribute('data-loading') ||\n\t\t\t\t\t\t\t\t\t'inline-block'),\n\t\t\t\t\t\t\t() => (targetElt.style.display = 'none')\n\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t})\n\n\t\t\t\tloadingStateEltsByType['data-loading-class'].forEach(\n\t\t\t\t\t(sourceElt) => {\n\t\t\t\t\t\tconst classNames = sourceElt\n\t\t\t\t\t\t\t.getAttribute('data-loading-class')\n\t\t\t\t\t\t\t.split(' ')\n\n\t\t\t\t\t\tgetLoadingTarget(sourceElt).forEach((targetElt) => {\n\t\t\t\t\t\t\tqueueLoadingState(\n\t\t\t\t\t\t\t\tsourceElt,\n\t\t\t\t\t\t\t\ttargetElt,\n\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\tclassNames.forEach((className) =>\n\t\t\t\t\t\t\t\t\t\ttargetElt.classList.add(className)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\tclassNames.forEach((className) =>\n\t\t\t\t\t\t\t\t\t\ttargetElt.classList.remove(className)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tloadingStateEltsByType['data-loading-class-remove'].forEach(\n\t\t\t\t\t(sourceElt) => {\n\t\t\t\t\t\tconst classNames = sourceElt\n\t\t\t\t\t\t\t.getAttribute('data-loading-class-remove')\n\t\t\t\t\t\t\t.split(' ')\n\n\t\t\t\t\t\tgetLoadingTarget(sourceElt).forEach((targetElt) => {\n\t\t\t\t\t\t\tqueueLoadingState(\n\t\t\t\t\t\t\t\tsourceElt,\n\t\t\t\t\t\t\t\ttargetElt,\n\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\tclassNames.forEach((className) =>\n\t\t\t\t\t\t\t\t\t\ttargetElt.classList.remove(className)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\tclassNames.forEach((className) =>\n\t\t\t\t\t\t\t\t\t\ttargetElt.classList.add(className)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tloadingStateEltsByType['data-loading-disable'].forEach(\n\t\t\t\t\t(sourceElt) => {\n\t\t\t\t\t\tgetLoadingTarget(sourceElt).forEach((targetElt) => {\n\t\t\t\t\t\t\tqueueLoadingState(\n\t\t\t\t\t\t\t\tsourceElt,\n\t\t\t\t\t\t\t\ttargetElt,\n\t\t\t\t\t\t\t\t() => (targetElt.disabled = true),\n\t\t\t\t\t\t\t\t() => (targetElt.disabled = false)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tloadingStateEltsByType['data-loading-aria-busy'].forEach(\n\t\t\t\t\t(sourceElt) => {\n\t\t\t\t\t\tgetLoadingTarget(sourceElt).forEach((targetElt) => {\n\t\t\t\t\t\t\tqueueLoadingState(\n\t\t\t\t\t\t\t\tsourceElt,\n\t\t\t\t\t\t\t\ttargetElt,\n\t\t\t\t\t\t\t\t() => (targetElt.setAttribute(\"aria-busy\", \"true\")),\n\t\t\t\t\t\t\t\t() => (targetElt.removeAttribute(\"aria-busy\"))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (name === 'htmx:beforeOnLoad') {\n\t\t\t\twhile (loadingStatesUndoQueue.length > 0) {\n\t\t\t\t\tloadingStatesUndoQueue.shift()()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t})\n})()\n","htmx.defineExtension('method-override', {\n onEvent: function (name, evt) {\n if (name === \"htmx:configRequest\") {\n var method = evt.detail.verb;\n if (method !== \"get\" || method !== \"post\") {\n evt.detail.headers['X-HTTP-Method-Override'] = method.toUpperCase();\n evt.detail.verb = \"post\";\n }\n }\n }\n});\n","htmx.defineExtension('morphdom-swap', {\n isInlineSwap: function(swapStyle) {\n return swapStyle === 'morphdom';\n },\n handleSwap: function (swapStyle, target, fragment) {\n if (swapStyle === 'morphdom') {\n if (fragment.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n morphdom(target, fragment.firstElementChild);\n return [target];\n } else {\n morphdom(target, fragment.outerHTML);\n return [target];\n }\n }\n }\n});\n","(function(undefined){\n 'use strict';\n\n // Save a reference to the global object (window in the browser)\n var _root = this;\n \n function dependsOn(pathSpec, url) {\n if (pathSpec === \"ignore\") {\n return false;\n }\n var dependencyPath = pathSpec.split(\"/\");\n var urlPath = url.split(\"/\");\n for (var i = 0; i < urlPath.length; i++) {\n var dependencyElement = dependencyPath.shift();\n var pathElement = urlPath[i];\n if (dependencyElement !== pathElement && dependencyElement !== \"*\") {\n return false;\n }\n if (dependencyPath.length === 0 || (dependencyPath.length === 1 && dependencyPath[0] === \"\")) {\n return true;\n }\n }\n return false;\n }\n\n function refreshPath(path) {\n var eltsWithDeps = htmx.findAll(\"[path-deps]\");\n for (var i = 0; i < eltsWithDeps.length; i++) {\n var elt = eltsWithDeps[i];\n if (dependsOn(elt.getAttribute('path-deps'), path)) {\n htmx.trigger(elt, \"path-deps\");\n }\n } \n } \n\n htmx.defineExtension('path-deps', {\n onEvent: function (name, evt) {\n if (name === \"htmx:beforeOnLoad\") {\n var config = evt.detail.requestConfig;\n // mutating call\n if (config.verb !== \"get\" && evt.target.getAttribute('path-deps') !== 'ignore') {\n refreshPath(config.path);\n }\n } \n }\n });\n\n /**\n * ********************\n * Expose functionality\n * ********************\n */ \n\n _root.PathDeps = {\n refresh: function(path) {\n refreshPath(path);\n }\n };\n \n}).call(this);\n","// This adds the \"preload\" extension to htmx. By default, this will \n// preload the targets of any tags with `href` or `hx-get` attributes \n// if they also have a `preload` attribute as well. See documentation\n// for more details\nhtmx.defineExtension(\"preload\", {\n\n\tonEvent: function(name, event) {\n\n\t\t// Only take actions on \"htmx:afterProcessNode\"\n\t\tif (name !== \"htmx:afterProcessNode\") {\n\t\t\treturn;\n\t\t}\n\n\t\t// SOME HELPER FUNCTIONS WE'LL NEED ALONG THE WAY\n\n\t\t// attr gets the closest non-empty value from the attribute.\n\t\tvar attr = function(node, property) {\n\t\t\tif (node == undefined) {return undefined;}\n\t\t\treturn node.getAttribute(property) || node.getAttribute(\"data-\" + property) || attr(node.parentElement, property)\n\t\t}\n\t\t\n\t\t// load handles the actual HTTP fetch, and uses htmx.ajax in cases where we're \n\t\t// preloading an htmx resource (this sends the same HTTP headers as a regular htmx request)\n\t\tvar load = function(node) {\n\n\t\t\t// Called after a successful AJAX request, to mark the\n\t\t\t// content as loaded (and prevent additional AJAX calls.)\n\t\t\tvar done = function(html) {\n\t\t\t\tif (!node.preloadAlways) {\n\t\t\t\t\tnode.preloadState = \"DONE\"\n\t\t\t\t}\n\n\t\t\t\tif (attr(node, \"preload-images\") == \"true\") {\n\t\t\t\t\tdocument.createElement(\"div\").innerHTML = html // create and populate a node to load linked resources, too.\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn function() {\n\n\t\t\t\t// If this value has already been loaded, then do not try again.\n\t\t\t\tif (node.preloadState !== \"READY\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Special handling for HX-GET - use built-in htmx.ajax function\n\t\t\t\t// so that headers match other htmx requests, then set \n\t\t\t\t// node.preloadState = TRUE so that requests are not duplicated\n\t\t\t\t// in the future\n\t\t\t\tvar hxGet = node.getAttribute(\"hx-get\") || node.getAttribute(\"data-hx-get\")\n\t\t\t\tif (hxGet) {\n\t\t\t\t\thtmx.ajax(\"GET\", hxGet, {\n\t\t\t\t\t\tsource: node,\n\t\t\t\t\t\thandler:function(elt, info) {\n\t\t\t\t\t\t\tdone(info.xhr.responseText);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, perform a standard xhr request, then set \n\t\t\t\t// node.preloadState = TRUE so that requests are not duplicated \n\t\t\t\t// in the future.\n\t\t\t\tif (node.getAttribute(\"href\")) {\n\t\t\t\t\tvar r = new XMLHttpRequest();\n\t\t\t\t\tr.open(\"GET\", node.getAttribute(\"href\"));\n\t\t\t\t\tr.onload = function() {done(r.responseText);};\n\t\t\t\t\tr.send();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// This function processes a specific node and sets up event handlers.\n\t\t// We'll search for nodes and use it below.\n\t\tvar init = function(node) {\n\n\t\t\t// If this node DOES NOT include a \"GET\" transaction, then there's nothing to do here.\n\t\t\tif (node.getAttribute(\"href\") + node.getAttribute(\"hx-get\") + node.getAttribute(\"data-hx-get\") == \"\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Guarantee that we only initialize each node once.\n\t\t\tif (node.preloadState !== undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\t// Get event name from config.\n\t\t\tvar on = attr(node, \"preload\") || \"mousedown\"\n\t\t\tconst always = on.indexOf(\"always\") !== -1\n\t\t\tif (always) {\n\t\t\t\ton = on.replace('always', '').trim()\n\t\t\t}\n\t\t\t\t\t\t\n\t\t\t// FALL THROUGH to here means we need to add an EventListener\n\t\n\t\t\t// Apply the listener to the node\n\t\t\tnode.addEventListener(on, function(evt) {\n\t\t\t\tif (node.preloadState === \"PAUSE\") { // Only add one event listener\n\t\t\t\t\tnode.preloadState = \"READY\"; // Required for the `load` function to trigger\n\n\t\t\t\t\t// Special handling for \"mouseover\" events. Wait 100ms before triggering load.\n\t\t\t\t\tif (on === \"mouseover\") {\n\t\t\t\t\t\twindow.setTimeout(load(node), 100);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tload(node)() // all other events trigger immediately.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// Special handling for certain built-in event handlers\n\t\t\tswitch (on) {\n\n\t\t\t\tcase \"mouseover\":\n\t\t\t\t\t// Mirror `touchstart` events (fires immediately)\n\t\t\t\t\tnode.addEventListener(\"touchstart\", load(node));\n\n\t\t\t\t\t// WHhen the mouse leaves, immediately disable the preload\n\t\t\t\t\tnode.addEventListener(\"mouseout\", function(evt) {\n\t\t\t\t\t\tif ((evt.target === node) && (node.preloadState === \"READY\")) {\n\t\t\t\t\t\t\tnode.preloadState = \"PAUSE\";\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"mousedown\":\n\t\t\t\t\t // Mirror `touchstart` events (fires immediately)\n\t\t\t\t\tnode.addEventListener(\"touchstart\", load(node));\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Mark the node as ready to run.\n\t\t\tnode.preloadState = \"PAUSE\";\n\t\t\tnode.preloadAlways = always;\n\t\t\thtmx.trigger(node, \"preload:init\") // This event can be used to load content immediately.\n\t\t}\n\n\t\t// Search for all child nodes that have a \"preload\" attribute\n\t\tevent.target.querySelectorAll(\"[preload]\").forEach(function(node) {\n\n\t\t\t// Initialize the node with the \"preload\" attribute\n\t\t\tinit(node)\n\n\t\t\t// Initialize all child elements that are anchors or have `hx-get` (use with care)\n\t\t\tnode.querySelectorAll(\"a,[hx-get],[data-hx-get]\").forEach(init)\n\t\t})\n\t}\n})\n","(function(){\n function maybeRemoveMe(elt) {\n var timing = elt.getAttribute(\"remove-me\") || elt.getAttribute(\"data-remove-me\");\n if (timing) {\n setTimeout(function () {\n elt.parentElement.removeChild(elt);\n }, htmx.parseInterval(timing));\n }\n }\n\n htmx.defineExtension('remove-me', {\n onEvent: function (name, evt) {\n if (name === \"htmx:afterProcessNode\") {\n var elt = evt.detail.elt;\n if (elt.getAttribute) {\n maybeRemoveMe(elt);\n if (elt.querySelectorAll) {\n var children = elt.querySelectorAll(\"[remove-me], [data-remove-me]\");\n for (var i = 0; i < children.length; i++) {\n maybeRemoveMe(children[i]);\n }\n }\n }\n }\n }\n });\n})();\n","htmx.defineExtension('restored', {\n onEvent : function(name, evt) {\n if (name === 'htmx:restored'){\n var restoredElts = evt.detail.document.querySelectorAll(\n \"[hx-trigger='restored'],[data-hx-trigger='restored']\"\n );\n // need a better way to do this, would prefer to just trigger from evt.detail.elt\n var foundElt = Array.from(restoredElts).find(\n (x) => (x.outerHTML === evt.detail.elt.outerHTML)\n );\n var restoredEvent = evt.detail.triggerEvent(foundElt, 'restored');\n }\n return;\n }\n})","/*\nServer Sent Events Extension\n============================\nThis extension adds support for Server Sent Events to htmx. See /www/extensions/sse.md for usage instructions.\n\n*/\n\n(function(){\n\n\t/** @type {import(\"../htmx\").HtmxInternalApi} */\n\tvar api;\n\n\thtmx.defineExtension(\"sse\", {\n\n\t\t/**\n\t\t * Init saves the provided reference to the internal HTMX API.\n\t\t * \n\t\t * @param {import(\"../htmx\").HtmxInternalApi} api \n\t\t * @returns void\n\t\t */\n\t\tinit: function(apiRef) {\n\t\t\t// store a reference to the internal API.\n\t\t\tapi = apiRef;\n\n\t\t\t// set a function in the public API for creating new EventSource objects\n\t\t\tif (htmx.createEventSource == undefined) {\n\t\t\t\thtmx.createEventSource = createEventSource;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * onEvent handles all events passed to this extension.\n\t\t * \n\t\t * @param {string} name \n\t\t * @param {Event} evt \n\t\t * @returns void\n\t\t */\n\t\tonEvent: function(name, evt) {\n\n\t\t\tswitch (name) {\n\n\t\t\t// Try to remove remove an EventSource when elements are removed\n\t\t\tcase \"htmx:beforeCleanupElement\":\n\t\t\t\tvar internalData = api.getInternalData(evt.target)\n\t\t\t\tif (internalData.sseEventSource) {\n\t\t\t\t\tinternalData.sseEventSource.close();\n\t\t\t\t}\n\t\t\t\treturn;\n\n\t\t\t// Try to create EventSources when elements are processed\n\t\t\tcase \"htmx:afterProcessNode\":\n\t\t\t\tcreateEventSourceOnElement(evt.target);\n\t\t\t}\n\t\t}\n\t});\n\n\t///////////////////////////////////////////////\n\t// HELPER FUNCTIONS\n\t///////////////////////////////////////////////\n\n\n\t/**\n\t * createEventSource is the default method for creating new EventSource objects.\n\t * it is hoisted into htmx.config.createEventSource to be overridden by the user, if needed.\n\t * \n\t * @param {string} url \n\t * @returns EventSource\n\t */\n\t function createEventSource(url) {\n\t\treturn new EventSource(url, {withCredentials:true});\n\t}\n\n\tfunction splitOnWhitespace(trigger) {\n\t\treturn trigger.trim().split(/\\s+/);\n\t}\n\n\tfunction getLegacySSEURL(elt) {\n\t\tvar legacySSEValue = api.getAttributeValue(elt, \"hx-sse\");\n\t\tif (legacySSEValue) {\n\t\t\tvar values = splitOnWhitespace(legacySSEValue);\n\t\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\t\tvar value = values[i].split(/:(.+)/);\n\t\t\t\tif (value[0] === \"connect\") {\n\t\t\t\t\treturn value[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getLegacySSESwaps(elt) {\n\t\tvar legacySSEValue = api.getAttributeValue(elt, \"hx-sse\");\n\t\tvar returnArr = [];\n\t\tif (legacySSEValue) {\n\t\t\tvar values = splitOnWhitespace(legacySSEValue);\n\t\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\t\tvar value = values[i].split(/:(.+)/);\n\t\t\t\tif (value[0] === \"swap\") {\n\t\t\t\t\treturnArr.push(value[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn returnArr;\n\t}\n\n\t/**\n\t * createEventSourceOnElement creates a new EventSource connection on the provided element.\n\t * If a usable EventSource already exists, then it is returned. If not, then a new EventSource\n\t * is created and stored in the element's internalData.\n\t * @param {HTMLElement} elt\n\t * @param {number} retryCount\n\t * @returns {EventSource | null}\n\t */\n\tfunction createEventSourceOnElement(elt, retryCount) {\n\n\t\tif (elt == null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar internalData = api.getInternalData(elt);\n\n\t\t// get URL from element's attribute\n\t\tvar sseURL = api.getAttributeValue(elt, \"sse-connect\");\n\n\n\t\tif (sseURL == undefined) {\n\t\t\tvar legacyURL = getLegacySSEURL(elt)\n\t\t\tif (legacyURL) {\n\t\t\t\tsseURL = legacyURL;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\t// Connect to the EventSource\n\t\tvar source = htmx.createEventSource(sseURL);\n\t\tinternalData.sseEventSource = source;\n\n\t\t// Create event handlers\n\t\tsource.onerror = function (err) {\n\n\t\t\t// Log an error event\n\t\t\tapi.triggerErrorEvent(elt, \"htmx:sseError\", {error:err, source:source});\n\n\t\t\t// If parent no longer exists in the document, then clean up this EventSource\n\t\t\tif (maybeCloseSSESource(elt)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, try to reconnect the EventSource\n\t\t\tif (source.readyState === EventSource.CLOSED) {\n\t\t\t\tretryCount = retryCount || 0;\n\t\t\t\tvar timeout = Math.random() * (2 ^ retryCount) * 500;\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\tcreateEventSourceOnElement(elt, Math.min(7, retryCount+1));\n\t\t\t\t}, timeout);\n\t\t\t}\t\t\t\n\t\t};\n\n\t\tsource.onopen = function (evt) {\n\t\t\tapi.triggerEvent(elt, \"htmx:sseOpen\", {source: source});\n\t\t}\n\t\t\n\t\t// Add message handlers for every `sse-swap` attribute\n\t\tqueryAttributeOnThisOrChildren(elt, \"sse-swap\").forEach(function(child) {\n\n\t\t\tvar sseSwapAttr = api.getAttributeValue(child, \"sse-swap\");\n\t\t\tif (sseSwapAttr) {\n\t\t\t\tvar sseEventNames = sseSwapAttr.split(\",\");\n\t\t\t} else {\n\t\t\t\tvar sseEventNames = getLegacySSESwaps(child);\n\t\t\t}\n\n\t\t\tfor (var i = 0 ; i < sseEventNames.length ; i++) {\n\t\t\t\tvar sseEventName = sseEventNames[i].trim();\n\t\t\t\tvar listener = function(event) {\n\n\t\t\t\t\t// If the parent is missing then close SSE and remove listener\n\t\t\t\t\tif (maybeCloseSSESource(elt)) {\n\t\t\t\t\t\tsource.removeEventListener(sseEventName, listener);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// swap the response into the DOM and trigger a notification\n\t\t\t\t\tswap(child, event.data);\n\t\t\t\t\tapi.triggerEvent(elt, \"htmx:sseMessage\", event);\n\t\t\t\t};\n\n\t\t\t\t// Register the new listener\n\t\t\t\tapi.getInternalData(elt).sseEventListener = listener;\n\t\t\t\tsource.addEventListener(sseEventName, listener);\n\t\t\t}\n\t\t});\n\n\t\t// Add message handlers for every `hx-trigger=\"sse:*\"` attribute\n\t\tqueryAttributeOnThisOrChildren(elt, \"hx-trigger\").forEach(function(child) {\n\n\t\t\tvar sseEventName = api.getAttributeValue(child, \"hx-trigger\");\n\t\t\tif (sseEventName == null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process hx-triggers for events with the \"sse:\" prefix\n\t\t\tif (sseEventName.slice(0, 4) != \"sse:\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar listener = function(event) {\n\n\t\t\t\t// If parent is missing, then close SSE and remove listener\n\t\t\t\tif (maybeCloseSSESource(elt)) {\n\t\t\t\t\tsource.removeEventListener(sseEventName, listener);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Trigger events to be handled by the rest of htmx\n\t\t\t\thtmx.trigger(child, sseEventName, event);\n\t\t\t\thtmx.trigger(child, \"htmx:sseMessage\", event);\n\t\t\t}\n\n\t\t\t// Register the new listener\n\t\t\tapi.getInternalData(elt).sseEventListener = listener;\n\t\t\tsource.addEventListener(sseEventName.slice(4), listener);\n\t\t});\n\t}\n\n\t/**\n\t * maybeCloseSSESource confirms that the parent element still exists.\n\t * If not, then any associated SSE source is closed and the function returns true.\n\t * \n\t * @param {HTMLElement} elt \n\t * @returns boolean\n\t */\n\tfunction maybeCloseSSESource(elt) {\n\t\tif (!api.bodyContains(elt)) {\n\t\t\tvar source = api.getInternalData(elt).sseEventSource;\n\t\t\tif (source != undefined) {\n\t\t\t\tsource.close();\n\t\t\t\t// source = null\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * queryAttributeOnThisOrChildren returns all nodes that contain the requested attributeName, INCLUDING THE PROVIDED ROOT ELEMENT.\n\t * \n\t * @param {HTMLElement} elt \n\t * @param {string} attributeName \n\t */\n\tfunction queryAttributeOnThisOrChildren(elt, attributeName) {\n\n\t\tvar result = [];\n\n\t\t// If the parent element also contains the requested attribute, then add it to the results too.\n\t\tif (api.hasAttribute(elt, attributeName) || api.hasAttribute(elt, \"hx-sse\")) {\n\t\t\tresult.push(elt);\n\t\t}\n\n\t\t// Search all child nodes that match the requested attribute\n\t\telt.querySelectorAll(\"[\" + attributeName + \"], [data-\" + attributeName + \"], [hx-sse], [data-hx-sse]\").forEach(function(node) {\n\t\t\tresult.push(node);\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * @param {HTMLElement} elt\n\t * @param {string} content \n\t */\n\tfunction swap(elt, content) {\n\n\t\tapi.withExtensions(elt, function(extension) {\n\t\t\tcontent = extension.transformResponse(content, null, elt);\n\t\t});\n\n\t\tvar swapSpec = api.getSwapSpecification(elt);\n\t\tvar target = api.getTarget(elt);\n\t\tvar settleInfo = api.makeSettleInfo(elt);\n\n\t\tapi.selectAndSwap(swapSpec.swapStyle, target, elt, content, settleInfo);\n\n\t\tsettleInfo.elts.forEach(function (elt) {\n\t\t\tif (elt.classList) {\n\t\t\t\telt.classList.add(htmx.config.settlingClass);\n\t\t\t}\n\t\t\tapi.triggerEvent(elt, 'htmx:beforeSettle');\n\t\t});\n\n\t\t// Handle settle tasks (with delay if requested)\n\t\tif (swapSpec.settleDelay > 0) {\n\t\t\tsetTimeout(doSettle(settleInfo), swapSpec.settleDelay);\n\t\t} else {\n\t\t\tdoSettle(settleInfo)();\n\t\t}\n\t}\n\n\t/**\n\t * doSettle mirrors much of the functionality in htmx that \n\t * settles elements after their content has been swapped.\n\t * TODO: this should be published by htmx, and not duplicated here\n\t * @param {import(\"../htmx\").HtmxSettleInfo} settleInfo \n\t * @returns () => void\n\t */\n\tfunction doSettle(settleInfo) {\n\n\t\treturn function() {\n\t\t\tsettleInfo.tasks.forEach(function (task) {\n\t\t\t\ttask.call();\n\t\t\t});\n\n\t\t\tsettleInfo.elts.forEach(function (elt) {\n\t\t\t\tif (elt.classList) {\n\t\t\t\t\telt.classList.remove(htmx.config.settlingClass);\n\t\t\t\t}\n\t\t\t\tapi.triggerEvent(elt, 'htmx:afterSettle');\n\t\t\t});\n\t\t}\n\t}\n\n})();","/*\nWebSockets Extension\n============================\nThis extension adds support for WebSockets to htmx. See /www/extensions/ws.md for usage instructions.\n*/\n\n(function () {\n\n\t/** @type {import(\"../htmx\").HtmxInternalApi} */\n\tvar api;\n\n\thtmx.defineExtension(\"ws\", {\n\n\t\t/**\n\t\t * init is called once, when this extension is first registered.\n\t\t * @param {import(\"../htmx\").HtmxInternalApi} apiRef\n\t\t */\n\t\tinit: function (apiRef) {\n\n\t\t\t// Store reference to internal API\n\t\t\tapi = apiRef;\n\n\t\t\t// Default function for creating new EventSource objects\n\t\t\tif (!htmx.createWebSocket) {\n\t\t\t\thtmx.createWebSocket = createWebSocket;\n\t\t\t}\n\n\t\t\t// Default setting for reconnect delay\n\t\t\tif (!htmx.config.wsReconnectDelay) {\n\t\t\t\thtmx.config.wsReconnectDelay = \"full-jitter\";\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * onEvent handles all events passed to this extension.\n\t\t *\n\t\t * @param {string} name\n\t\t * @param {Event} evt\n\t\t */\n\t\tonEvent: function (name, evt) {\n\n\t\t\tswitch (name) {\n\n\t\t\t\t// Try to close the socket when elements are removed\n\t\t\t\tcase \"htmx:beforeCleanupElement\":\n\n\t\t\t\t\tvar internalData = api.getInternalData(evt.target)\n\n\t\t\t\t\tif (internalData.webSocket) {\n\t\t\t\t\t\tinternalData.webSocket.close();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\n\t\t\t\t// Try to create websockets when elements are processed\n\t\t\t\tcase \"htmx:beforeProcessNode\":\n\t\t\t\t\tvar parent = evt.target;\n\n\t\t\t\t\tforEach(queryAttributeOnThisOrChildren(parent, \"ws-connect\"), function (child) {\n\t\t\t\t\t\tensureWebSocket(child)\n\t\t\t\t\t});\n\t\t\t\t\tforEach(queryAttributeOnThisOrChildren(parent, \"ws-send\"), function (child) {\n\t\t\t\t\t\tensureWebSocketSend(child)\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\tfunction splitOnWhitespace(trigger) {\n\t\treturn trigger.trim().split(/\\s+/);\n\t}\n\n\tfunction getLegacyWebsocketURL(elt) {\n\t\tvar legacySSEValue = api.getAttributeValue(elt, \"hx-ws\");\n\t\tif (legacySSEValue) {\n\t\t\tvar values = splitOnWhitespace(legacySSEValue);\n\t\t\tfor (var i = 0; i < values.length; i++) {\n\t\t\t\tvar value = values[i].split(/:(.+)/);\n\t\t\t\tif (value[0] === \"connect\") {\n\t\t\t\t\treturn value[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * ensureWebSocket creates a new WebSocket on the designated element, using\n\t * the element's \"ws-connect\" attribute.\n\t * @param {HTMLElement} socketElt\n\t * @returns\n\t */\n\tfunction ensureWebSocket(socketElt) {\n\n\t\t// If the element containing the WebSocket connection no longer exists, then\n\t\t// do not connect/reconnect the WebSocket.\n\t\tif (!api.bodyContains(socketElt)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Get the source straight from the element's value\n\t\tvar wssSource = api.getAttributeValue(socketElt, \"ws-connect\")\n\n\t\tif (wssSource == null || wssSource === \"\") {\n\t\t\tvar legacySource = getLegacyWebsocketURL(socketElt);\n\t\t\tif (legacySource == null) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\twssSource = legacySource;\n\t\t\t}\n\t\t}\n\n\t\t// Guarantee that the wssSource value is a fully qualified URL\n\t\tif (wssSource.indexOf(\"/\") === 0) {\n\t\t\tvar base_part = location.hostname + (location.port ? ':' + location.port : '');\n\t\t\tif (location.protocol === 'https:') {\n\t\t\t\twssSource = \"wss://\" + base_part + wssSource;\n\t\t\t} else if (location.protocol === 'http:') {\n\t\t\t\twssSource = \"ws://\" + base_part + wssSource;\n\t\t\t}\n\t\t}\n\n\t\tvar socketWrapper = createWebsocketWrapper(socketElt, function () {\n\t\t\treturn htmx.createWebSocket(wssSource)\n\t\t});\n\n\t\tsocketWrapper.addEventListener('message', function (event) {\n\t\t\tif (maybeCloseWebSocketSource(socketElt)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar response = event.data;\n\t\t\tif (!api.triggerEvent(socketElt, \"htmx:wsBeforeMessage\", {\n\t\t\t\tmessage: response,\n\t\t\t\tsocketWrapper: socketWrapper.publicInterface\n\t\t\t})) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tapi.withExtensions(socketElt, function (extension) {\n\t\t\t\tresponse = extension.transformResponse(response, null, socketElt);\n\t\t\t});\n\n\t\t\tvar settleInfo = api.makeSettleInfo(socketElt);\n\t\t\tvar fragment = api.makeFragment(response);\n\n\t\t\tif (fragment.children.length) {\n\t\t\t\tvar children = Array.from(fragment.children);\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tapi.oobSwap(api.getAttributeValue(children[i], \"hx-swap-oob\") || \"true\", children[i], settleInfo);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tapi.settleImmediately(settleInfo.tasks);\n\t\t\tapi.triggerEvent(socketElt, \"htmx:wsAfterMessage\", { message: response, socketWrapper: socketWrapper.publicInterface })\n\t\t});\n\n\t\t// Put the WebSocket into the HTML Element's custom data.\n\t\tapi.getInternalData(socketElt).webSocket = socketWrapper;\n\t}\n\n\t/**\n\t * @typedef {Object} WebSocketWrapper\n\t * @property {WebSocket} socket\n\t * @property {Array<{message: string, sendElt: Element}>} messageQueue\n\t * @property {number} retryCount\n\t * @property {(message: string, sendElt: Element) => void} sendImmediately sendImmediately sends message regardless of websocket connection state\n\t * @property {(message: string, sendElt: Element) => void} send\n\t * @property {(event: string, handler: Function) => void} addEventListener\n\t * @property {() => void} handleQueuedMessages\n\t * @property {() => void} init\n\t * @property {() => void} close\n\t */\n\t/**\n\t *\n\t * @param socketElt\n\t * @param socketFunc\n\t * @returns {WebSocketWrapper}\n\t */\n\tfunction createWebsocketWrapper(socketElt, socketFunc) {\n\t\tvar wrapper = {\n\t\t\tsocket: null,\n\t\t\tmessageQueue: [],\n\t\t\tretryCount: 0,\n\n\t\t\t/** @type {Object} */\n\t\t\tevents: {},\n\n\t\t\taddEventListener: function (event, handler) {\n\t\t\t\tif (this.socket) {\n\t\t\t\t\tthis.socket.addEventListener(event, handler);\n\t\t\t\t}\n\n\t\t\t\tif (!this.events[event]) {\n\t\t\t\t\tthis.events[event] = [];\n\t\t\t\t}\n\n\t\t\t\tthis.events[event].push(handler);\n\t\t\t},\n\n\t\t\tsendImmediately: function (message, sendElt) {\n\t\t\t\tif (!this.socket) {\n\t\t\t\t\tapi.triggerErrorEvent()\n\t\t\t\t}\n\t\t\t\tif (sendElt && api.triggerEvent(sendElt, 'htmx:wsBeforeSend', {\n\t\t\t\t\tmessage: message,\n\t\t\t\t\tsocketWrapper: this.publicInterface\n\t\t\t\t})) {\n\t\t\t\t\tthis.socket.send(message);\n\t\t\t\t\tsendElt && api.triggerEvent(sendElt, 'htmx:wsAfterSend', {\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\tsocketWrapper: this.publicInterface\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tsend: function (message, sendElt) {\n\t\t\t\tif (this.socket.readyState !== this.socket.OPEN) {\n\t\t\t\t\tthis.messageQueue.push({ message: message, sendElt: sendElt });\n\t\t\t\t} else {\n\t\t\t\t\tthis.sendImmediately(message, sendElt);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\thandleQueuedMessages: function () {\n\t\t\t\twhile (this.messageQueue.length > 0) {\n\t\t\t\t\tvar queuedItem = this.messageQueue[0]\n\t\t\t\t\tif (this.socket.readyState === this.socket.OPEN) {\n\t\t\t\t\t\tthis.sendImmediately(queuedItem.message, queuedItem.sendElt);\n\t\t\t\t\t\tthis.messageQueue.shift();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tinit: function () {\n\t\t\t\tif (this.socket && this.socket.readyState === this.socket.OPEN) {\n\t\t\t\t\t// Close discarded socket\n\t\t\t\t\tthis.socket.close()\n\t\t\t\t}\n\n\t\t\t\t// Create a new WebSocket and event handlers\n\t\t\t\t/** @type {WebSocket} */\n\t\t\t\tvar socket = socketFunc();\n\n\t\t\t\t// The event.type detail is added for interface conformance with the\n\t\t\t\t// other two lifecycle events (open and close) so a single handler method\n\t\t\t\t// can handle them polymorphically, if required.\n\t\t\t\tapi.triggerEvent(socketElt, \"htmx:wsConnecting\", { event: { type: 'connecting' } });\n\n\t\t\t\tthis.socket = socket;\n\n\t\t\t\tsocket.onopen = function (e) {\n\t\t\t\t\twrapper.retryCount = 0;\n\t\t\t\t\tapi.triggerEvent(socketElt, \"htmx:wsOpen\", { event: e, socketWrapper: wrapper.publicInterface });\n\t\t\t\t\twrapper.handleQueuedMessages();\n\t\t\t\t}\n\n\t\t\t\tsocket.onclose = function (e) {\n\t\t\t\t\t// If socket should not be connected, stop further attempts to establish connection\n\t\t\t\t\t// If Abnormal Closure/Service Restart/Try Again Later, then set a timer to reconnect after a pause.\n\t\t\t\t\tif (!maybeCloseWebSocketSource(socketElt) && [1006, 1012, 1013].indexOf(e.code) >= 0) {\n\t\t\t\t\t\tvar delay = getWebSocketReconnectDelay(wrapper.retryCount);\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\twrapper.retryCount += 1;\n\t\t\t\t\t\t\twrapper.init();\n\t\t\t\t\t\t}, delay);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Notify client code that connection has been closed. Client code can inspect `event` field\n\t\t\t\t\t// to determine whether closure has been valid or abnormal\n\t\t\t\t\tapi.triggerEvent(socketElt, \"htmx:wsClose\", { event: e, socketWrapper: wrapper.publicInterface })\n\t\t\t\t};\n\n\t\t\t\tsocket.onerror = function (e) {\n\t\t\t\t\tapi.triggerErrorEvent(socketElt, \"htmx:wsError\", { error: e, socketWrapper: wrapper });\n\t\t\t\t\tmaybeCloseWebSocketSource(socketElt);\n\t\t\t\t};\n\n\t\t\t\tvar events = this.events;\n\t\t\t\tObject.keys(events).forEach(function (k) {\n\t\t\t\t\tevents[k].forEach(function (e) {\n\t\t\t\t\t\tsocket.addEventListener(k, e);\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tclose: function () {\n\t\t\t\tthis.socket.close()\n\t\t\t}\n\t\t}\n\n\t\twrapper.init();\n\n\t\twrapper.publicInterface = {\n\t\t\tsend: wrapper.send.bind(wrapper),\n\t\t\tsendImmediately: wrapper.sendImmediately.bind(wrapper),\n\t\t\tqueue: wrapper.messageQueue\n\t\t};\n\n\t\treturn wrapper;\n\t}\n\n\t/**\n\t * ensureWebSocketSend attaches trigger handles to elements with\n\t * \"ws-send\" attribute\n\t * @param {HTMLElement} elt\n\t */\n\tfunction ensureWebSocketSend(elt) {\n\t\tvar legacyAttribute = api.getAttributeValue(elt, \"hx-ws\");\n\t\tif (legacyAttribute && legacyAttribute !== 'send') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar webSocketParent = api.getClosestMatch(elt, hasWebSocket)\n\t\tprocessWebSocketSend(webSocketParent, elt);\n\t}\n\n\t/**\n\t * hasWebSocket function checks if a node has webSocket instance attached\n\t * @param {HTMLElement} node\n\t * @returns {boolean}\n\t */\n\tfunction hasWebSocket(node) {\n\t\treturn api.getInternalData(node).webSocket != null;\n\t}\n\n\t/**\n\t * processWebSocketSend adds event listeners to the
element so that\n\t * messages can be sent to the WebSocket server when the form is submitted.\n\t * @param {HTMLElement} socketElt\n\t * @param {HTMLElement} sendElt\n\t */\n\tfunction processWebSocketSend(socketElt, sendElt) {\n\t\tvar nodeData = api.getInternalData(sendElt);\n\t\tvar triggerSpecs = api.getTriggerSpecs(sendElt);\n\t\ttriggerSpecs.forEach(function (ts) {\n\t\t\tapi.addTriggerHandler(sendElt, ts, nodeData, function (elt, evt) {\n\t\t\t\tif (maybeCloseWebSocketSource(socketElt)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t/** @type {WebSocketWrapper} */\n\t\t\t\tvar socketWrapper = api.getInternalData(socketElt).webSocket;\n\t\t\t\tvar headers = api.getHeaders(sendElt, api.getTarget(sendElt));\n\t\t\t\tvar results = api.getInputValues(sendElt, 'post');\n\t\t\t\tvar errors = results.errors;\n\t\t\t\tvar rawParameters = results.values;\n\t\t\t\tvar expressionVars = api.getExpressionVars(sendElt);\n\t\t\t\tvar allParameters = api.mergeObjects(rawParameters, expressionVars);\n\t\t\t\tvar filteredParameters = api.filterValues(allParameters, sendElt);\n\n\t\t\t\tvar sendConfig = {\n\t\t\t\t\tparameters: filteredParameters,\n\t\t\t\t\tunfilteredParameters: allParameters,\n\t\t\t\t\theaders: headers,\n\t\t\t\t\terrors: errors,\n\n\t\t\t\t\ttriggeringEvent: evt,\n\t\t\t\t\tmessageBody: undefined,\n\t\t\t\t\tsocketWrapper: socketWrapper.publicInterface\n\t\t\t\t};\n\n\t\t\t\tif (!api.triggerEvent(elt, 'htmx:wsConfigSend', sendConfig)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (errors && errors.length > 0) {\n\t\t\t\t\tapi.triggerEvent(elt, 'htmx:validation:halted', errors);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar body = sendConfig.messageBody;\n\t\t\t\tif (body === undefined) {\n\t\t\t\t\tvar toSend = Object.assign({}, sendConfig.parameters);\n\t\t\t\t\tif (sendConfig.headers)\n\t\t\t\t\t\ttoSend['HEADERS'] = headers;\n\t\t\t\t\tbody = JSON.stringify(toSend);\n\t\t\t\t}\n\n\t\t\t\tsocketWrapper.send(body, elt);\n\n\t\t\t\tif (api.shouldCancel(evt, elt)) {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * getWebSocketReconnectDelay is the default easing function for WebSocket reconnects.\n\t * @param {number} retryCount // The number of retries that have already taken place\n\t * @returns {number}\n\t */\n\tfunction getWebSocketReconnectDelay(retryCount) {\n\n\t\t/** @type {\"full-jitter\" | ((retryCount:number) => number)} */\n\t\tvar delay = htmx.config.wsReconnectDelay;\n\t\tif (typeof delay === 'function') {\n\t\t\treturn delay(retryCount);\n\t\t}\n\t\tif (delay === 'full-jitter') {\n\t\t\tvar exp = Math.min(retryCount, 6);\n\t\t\tvar maxDelay = 1000 * Math.pow(2, exp);\n\t\t\treturn maxDelay * Math.random();\n\t\t}\n\n\t\tlogError('htmx.config.wsReconnectDelay must either be a function or the string \"full-jitter\"');\n\t}\n\n\t/**\n\t * maybeCloseWebSocketSource checks to the if the element that created the WebSocket\n\t * still exists in the DOM. If NOT, then the WebSocket is closed and this function\n\t * returns TRUE. If the element DOES EXIST, then no action is taken, and this function\n\t * returns FALSE.\n\t *\n\t * @param {*} elt\n\t * @returns\n\t */\n\tfunction maybeCloseWebSocketSource(elt) {\n\t\tif (!api.bodyContains(elt)) {\n\t\t\tapi.getInternalData(elt).webSocket.close();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * createWebSocket is the default method for creating new WebSocket objects.\n\t * it is hoisted into htmx.createWebSocket to be overridden by the user, if needed.\n\t *\n\t * @param {string} url\n\t * @returns WebSocket\n\t */\n\tfunction createWebSocket(url) {\n\t\tvar sock = new WebSocket(url, []);\n\t\tsock.binaryType = htmx.config.wsBinaryType;\n\t\treturn sock;\n\t}\n\n\t/**\n\t * queryAttributeOnThisOrChildren returns all nodes that contain the requested attributeName, INCLUDING THE PROVIDED ROOT ELEMENT.\n\t *\n\t * @param {HTMLElement} elt\n\t * @param {string} attributeName\n\t */\n\tfunction queryAttributeOnThisOrChildren(elt, attributeName) {\n\n\t\tvar result = []\n\n\t\t// If the parent element also contains the requested attribute, then add it to the results too.\n\t\tif (api.hasAttribute(elt, attributeName) || api.hasAttribute(elt, \"hx-ws\")) {\n\t\t\tresult.push(elt);\n\t\t}\n\n\t\t// Search all child nodes that match the requested attribute\n\t\telt.querySelectorAll(\"[\" + attributeName + \"], [data-\" + attributeName + \"], [data-hx-ws], [hx-ws]\").forEach(function (node) {\n\t\t\tresult.push(node)\n\t\t})\n\n\t\treturn result\n\t}\n\n\t/**\n\t * @template T\n\t * @param {T[]} arr\n\t * @param {(T) => void} func\n\t */\n\tfunction forEach(arr, func) {\n\t\tif (arr) {\n\t\t\tfor (var i = 0; i < arr.length; i++) {\n\t\t\t\tfunc(arr[i]);\n\t\t\t}\n\t\t}\n\t}\n\n})();\n\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets: boolean =\n global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\n\n/**\n * A CSSResult or native CSSStyleSheet.\n *\n * In browsers that support constructible CSS style sheets, CSSStyleSheet\n * object can be used for styling along side CSSResult from the `css`\n * template tag.\n */\nexport type CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nexport type CSSResultArray = Array;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst cssTagCache = new WeakMap();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n // This property needs to remain unminified.\n ['_$cssResult$'] = true;\n readonly cssText: string;\n private _styleSheet?: CSSStyleSheet;\n private _strings: TemplateStringsArray | undefined;\n\n private constructor(\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ) {\n if (safeToken !== constructionToken) {\n throw new Error(\n 'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n );\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet(): CSSStyleSheet | undefined {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(\n this.cssText\n );\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n\n toString(): string {\n return this.cssText;\n }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n new (\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n // This property needs to remain unminified.\n if ((value as CSSResult)['_$cssResult$'] === true) {\n return (value as CSSResult).cssText;\n } else if (typeof value === 'number') {\n return value;\n } else {\n throw new Error(\n `Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`\n );\n }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n new (CSSResult as ConstructableCSSResult)(\n typeof value === 'string' ? value : String(value),\n undefined,\n constructionToken\n );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n strings: TemplateStringsArray,\n ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n const cssText =\n strings.length === 1\n ? strings[0]\n : values.reduce(\n (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n strings[0]\n );\n return new (CSSResult as ConstructableCSSResult)(\n cssText,\n strings,\n constructionToken\n );\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic spec behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n renderRoot: ShadowRoot,\n styles: Array\n) => {\n if (supportsAdoptingStyleSheets) {\n (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n s instanceof CSSStyleSheet ? s : s.styleSheet!\n );\n } else {\n styles.forEach((s) => {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = (global as any)['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = (s as CSSResult).cssText;\n renderRoot.appendChild(style);\n });\n }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle =\n supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s: CSSResultOrNative) => s\n : (s: CSSResultOrNative) =>\n s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n getCompatibleStyle,\n adoptStyles,\n CSSResultGroup,\n CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\n\nexport * from './css-tag.js';\nexport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\nconst NODE_MODE = false;\nconst global = NODE_MODE ? globalThis : window;\n\nif (NODE_MODE) {\n global.customElements ??= customElements;\n}\n\nconst DEV_MODE = true;\n\nlet requestUpdateThenable: (name: string) => {\n then: (\n onfulfilled?: (value: boolean) => void,\n _onrejected?: () => void\n ) => void;\n};\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (global as unknown as {trustedTypes?: {emptyScript: ''}})\n .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings: Set = (global.litIssuedWarnings ??=\n new Set());\n\n // Issue a warning, if we haven't already.\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n\n // Issue polyfill support warning.\n if (global.ShadyDOM?.inUse && polyfillSupport === undefined) {\n issueWarning(\n 'polyfill-support-missing',\n `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`\n );\n }\n\n requestUpdateThenable = (name) => ({\n then: (\n onfulfilled?: (value: boolean) => void,\n _onrejected?: () => void\n ) => {\n issueWarning(\n 'request-update-promise',\n `The \\`requestUpdate\\` method should no longer return a Promise but ` +\n `does so on \\`${name}\\`. Use \\`updateComplete\\` instead.`\n );\n if (onfulfilled !== undefined) {\n onfulfilled(false);\n }\n },\n });\n}\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ReactiveUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry = Update;\n export interface Update {\n kind: 'update';\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: ReactiveUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty =

(\n prop: P,\n _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter {\n /**\n * Called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter =\n | ComplexAttributeConverter\n | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration {\n /**\n * When set to `true`, indicates the property is internal private state. The\n * property should not be set by users. When using TypeScript, this property\n * should be marked as `private` or `protected`, and it is also a common\n * practice to use a leading `_` in the name. The property is not added to\n * `observedAttributes`.\n */\n readonly state?: boolean;\n\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: AttributeConverter;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map;\n\ntype AttributeMap = Map;\n\n/**\n * A Map of property keys to values.\n *\n * Takes an optional type parameter T, which when specified as a non-any,\n * non-unknown type, will make the Map more strongly-typed, associating the map\n * keys with their corresponding value type on T.\n *\n * Use `PropertyValues` when overriding ReactiveElement.update() and\n * other lifecycle methods in order to get stronger type-checking on keys\n * and values.\n */\n// This type is conditional so that if the parameter T is not specified, or\n// is `any`, the type will include `Map`. Since T is not\n// given in the uses of PropertyValues in this file, all uses here fallback to\n// meaning `Map`, but if a developer uses\n// `PropertyValues` (or any other value for T) they will get a\n// strongly-typed Map type.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues = T extends object\n ? PropertyValueMap\n : Map;\n\n/**\n * Do not use, instead prefer {@linkcode PropertyValues}.\n */\n// This type must be exported such that JavaScript generated by the Google\n// Closure Compiler can import a type reference.\nexport interface PropertyValueMap extends Map {\n get(k: K): T[K];\n set(key: K, value: T[K]): this;\n has(k: K): boolean;\n delete(k: K): boolean;\n}\n\nexport const defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: unknown): unknown {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: unknown) {\n let fromValue: unknown = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value!) as unknown;\n } catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n\nexport interface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n\n/**\n * The Closure JS Compiler doesn't currently have good support for static\n * property semantics where \"this\" is dynamic (e.g.\n * https://github.com/google/closure-compiler/issues/3177 and others) so we use\n * this hack to bypass any rewriting by the compiler.\n */\nconst finalized = 'finalized';\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind = 'change-in-update' | 'migration';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n // In the Node build, this `extends` clause will be substituted with\n // `(globalThis.HTMLElement ?? HTMLElement)`.\n //\n // This way, we will first prefer any global `HTMLElement` polyfill that the\n // user has assigned, and then fall back to the `HTMLElement` shim which has\n // been imported (see note at the top of this file about how this import is\n // generated by Rollup). Note that the `HTMLElement` variable has been\n // shadowed by this import, so it no longer refers to the global.\n extends HTMLElement\n implements ReactiveControllerHost\n{\n // Note: these are patched in only in DEV_MODE.\n /**\n * Read or set all the enabled warning categories for this class.\n *\n * This property is only used in development builds.\n *\n * @nocollapse\n * @category dev-mode\n */\n static enabledWarnings?: WarningKind[];\n\n /**\n * Enable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Enable for all ReactiveElement subclasses\n * ReactiveElement.enableWarning?.('migration');\n *\n * // Enable for only MyElement and subclasses\n * MyElement.enableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static enableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Disable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Disable for all ReactiveElement subclasses\n * ReactiveElement.disableWarning?.('migration');\n *\n * // Disable for only MyElement and subclasses\n * MyElement.disableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static disableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer: Initializer) {\n this.finalize();\n (this._initializers ??= []).push(initializer);\n }\n\n static _initializers?: Initializer[];\n\n /*\n * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n * all static methods and properties with initializers. Reference:\n * - https://github.com/google/closure-compiler/issues/1776\n */\n\n /**\n * Maps attribute names to properties; for example `foobar` attribute to\n * `fooBar` property. Created lazily on user subclasses when finalizing the\n * class.\n * @nocollapse\n */\n private static __attributeToPropertyMap: AttributeMap;\n\n /**\n * Marks class as having finished creating properties.\n */\n protected static [finalized] = true;\n\n /**\n * Memoized list of all element properties, including any superclass properties.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category properties\n */\n static elementProperties: PropertyDeclarationMap = new Map();\n\n /**\n * User-supplied object that maps property names to `PropertyDeclaration`\n * objects containing options for configuring reactive properties. When\n * a reactive property is set the element will update and render.\n *\n * By default properties are public fields, and as such, they should be\n * considered as primarily settable by element users, either via attribute or\n * the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state: true` option. Properties\n * marked as `state` do not reflect from the corresponding attribute\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating\n * public properties should typically not be done for non-primitive (object or\n * array) properties. In other cases when an element needs to manage state, a\n * private property set with the `state: true` option should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n * @nocollapse\n * @category properties\n */\n static properties: PropertyDeclarations;\n\n /**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\n static elementStyles: Array = [];\n\n /**\n * Array of styles to apply to the element. The styles should be defined\n * using the {@linkcode css} tag function, via constructible stylesheets, or\n * imported from native CSS module scripts.\n *\n * Note on Content Security Policy:\n *\n * Element styles are implemented with `\n\t\t\t{Canvas}\n\t\t\t

\n\t\t\t\t context!.clearRect(0, 0, canvas!.width, canvas!.height)}\n\t\t\t\t>\n\t\t\t\t\t↺\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t{config.brushSizes.map((size) => (\n\t\t\t\t\t\t setBrushSize(size)}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: `${size}px`,\n\t\t\t\t\t\t\t\theight: `${size}px`,\n\t\t\t\t\t\t\t\toutlineWidth: brushSize === size ? '3px' : '0',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t))}\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t{config.colors.map((c) => (\n\t\t\t\t\t\t setColor(c)}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: c,\n\t\t\t\t\t\t\t\toutlineWidth: color === c ? '4px' : '2px',\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n});\nDrawing.displayName = 'Drawing';\n\nconst createResizedImage = (canvas: HTMLCanvasElement, new_width: number, new_height: number) => {\n\t// Create a new canvas element with the same aspect ratio as the original canvas\n\tconst new_canvas = document.createElement('canvas');\n\tnew_canvas.width = new_width;\n\tnew_canvas.height = new_height;\n\n\t// Draw the original canvas onto the new canvas\n\tconst ctx = new_canvas.getContext('2d');\n\tctx!.drawImage(canvas, 0, 0, new_width, new_height);\n\n\t// Convert the new canvas to a base64-encoded PNG image\n\tconst dataURL = new_canvas.toDataURL('image/png');\n\treturn dataURL;\n};\n\nexport { Drawing };\n","// this is a HTML custom element wrapper around AudioTrimmer to make it usable via\n// HTMX. It's a form-associated element so that the resulting cut will be submitted as part of the sourounding form\n\nimport * as React from 'preact/compat';\nimport retargetEvents from 'react-shadow-dom-retarget-events';\nimport { Drawing, DrawingConfig } from './Drawing';\n\n// this gets inlined by Parcel\nimport fs from 'fs';\nconst mycss = fs.readFileSync(__dirname + '/element.css', 'utf8');\n\nexport default class DrawingInput extends HTMLElement {\n\tstatic formAssociated = true;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.internals = this.attachInternals();\n\t}\n\n\tinternals: ElementInternals;\n\tmountPoint?: HTMLElement;\n\tconfig?: DrawingConfig;\n\twidth: number = 100;\n\theight: number = 100;\n\textraCSS?: string;\n\tname?: string;\n\n\tconnectedCallback() {\n\t\tthis.config = JSON.parse(this.getAttribute('config') ?? 'null');\n\t\tthis.width = Number(this.getAttribute('width'));\n\t\tthis.height = Number(this.getAttribute('height'));\n\t\tthis.extraCSS = this.getAttribute('extraCSS') ?? undefined;\n\t\tthis.name = this.getAttribute('name') ?? undefined;\n\n\t\tthis.mountPoint = document.createElement('div');\n\n\t\tconst shadowRoot = this.attachShadow({ mode: 'open' });\n\t\tconst style = document.createElement('style');\n\t\tstyle.innerHTML = mycss;\n\t\tshadowRoot.appendChild(style);\n\t\tshadowRoot.appendChild(this.mountPoint);\n\n\t\tthis.createElement();\n\t\tretargetEvents(shadowRoot);\n\t}\n\n\tcreateElement() {\n\t\tReact.render(\n\t\t\tReact.createElement(Drawing, {\n\t\t\t\textraCSS: this.extraCSS,\n\t\t\t\twidth: this.width,\n\t\t\t\theight: this.height,\n\t\t\t\tconfig: this.config,\n\t\t\t\tonDrawDone: (d) => this.onDrawDone(d),\n\t\t\t}),\n\t\t\tthis.mountPoint!\n\t\t);\n\t}\n\n\tonDrawDone(imageData: string) {\n\t\tconst formData = new FormData(this.internals.form ?? undefined);\n\t\tformData.set(this.name || 'img', imageData);\n\t\tthis.internals.setFormValue(formData);\n\t}\n\n\tstatic get observedAttributes() {\n\t\t// we don't support dynamic changes\n\t\treturn [];\n\t}\n\n\tattributeChangedCallback(name: string, oldValue: any, newValue: any) {\n\t\t// we don't support dynamic changes\n\t}\n}\n","import { LitElement, css, html, unsafeCSS } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\n\n// this gets inlined by Parcel\nimport fs from 'fs';\nconst mycss = fs.readFileSync(__dirname + '/element.css', 'utf8');\n\nexport default class VideoPlayer extends LitElement {\n\tstatic styles = css`\n\t\t${unsafeCSS(mycss)}\n\t`;\n\n\t@property()\n\tpreload?: string;\n\t@property({ type: Boolean })\n\tautoplay?: boolean;\n\t@property({ type: Boolean })\n\tloop?: boolean;\n\t@property()\n\tsrc?: string;\n\t@property()\n\tposter?: string;\n\t@property()\n\textraCSS?: string;\n\t@property({ type: Boolean })\n\tmuted = true;\n\n\t@state()\n\tprotected playing = false;\n\n\t@query('video')\n\tprotected _video!: HTMLVideoElement;\n\n\tprotected render() {\n\t\treturn html`\n
\n\t\t\t\t\n \n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n `;\n\t}\n\n\tprotected play(e: MouseEvent) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\tthis.playing = true;\n\t\t// weird bug(?) in Chrome which ignores the attribute in the HTML when it's added dynamically\n\t\t// https://stackoverflow.com/a/51755171/4321944\n\t\tthis._video.muted = this.muted;\n\t\tthis._video.play();\n\t}\n\n\tprotected pause(e: MouseEvent) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\tthis.playing = false;\n\t\tthis._video.pause();\n\t}\n\n\tprotected togglePlay(e: MouseEvent) {\n\t\tif (this.playing) {\n\t\t\tthis.pause(e);\n\t\t} else {\n\t\t\tthis.play(e);\n\t\t}\n\t}\n\n\tprotected mute(e: MouseEvent) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\tthis.muted = true;\n\t\tthis._video.muted = this.muted;\n\t}\n\n\tprotected unmute(e: MouseEvent) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\tthis.muted = false;\n\t\tthis._video.muted = this.muted;\n\t}\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {Disconnectable, Part} from './lit-html.js';\n\nexport {\n AttributePart,\n BooleanAttributePart,\n ChildPart,\n ElementPart,\n EventPart,\n Part,\n PropertyPart,\n} from './lit-html.js';\n\nexport interface DirectiveClass {\n new (part: PartInfo): Directive;\n}\n\n/**\n * This utility type extracts the signature of a directive class's render()\n * method so we can use it for the type of the generated directive function.\n */\nexport type DirectiveParameters = Parameters;\n\n/**\n * A generated directive function doesn't evaluate the directive, but just\n * returns a DirectiveResult object that captures the arguments.\n */\nexport interface DirectiveResult {\n /**\n * This property needs to remain unminified.\n * @internal */\n ['_$litDirective$']: C;\n /** @internal */\n values: DirectiveParameters>;\n}\n\nexport const PartType = {\n ATTRIBUTE: 1,\n CHILD: 2,\n PROPERTY: 3,\n BOOLEAN_ATTRIBUTE: 4,\n EVENT: 5,\n ELEMENT: 6,\n} as const;\n\nexport type PartType = (typeof PartType)[keyof typeof PartType];\n\nexport interface ChildPartInfo {\n readonly type: typeof PartType.CHILD;\n}\n\nexport interface AttributePartInfo {\n readonly type:\n | typeof PartType.ATTRIBUTE\n | typeof PartType.PROPERTY\n | typeof PartType.BOOLEAN_ATTRIBUTE\n | typeof PartType.EVENT;\n readonly strings?: ReadonlyArray;\n readonly name: string;\n readonly tagName: string;\n}\n\nexport interface ElementPartInfo {\n readonly type: typeof PartType.ELEMENT;\n}\n\n/**\n * Information about the part a directive is bound to.\n *\n * This is useful for checking that a directive is attached to a valid part,\n * such as with directive that can only be used on attribute bindings.\n */\nexport type PartInfo = ChildPartInfo | AttributePartInfo | ElementPartInfo;\n\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n */\nexport const directive =\n (c: C) =>\n (...values: DirectiveParameters>): DirectiveResult => ({\n // This property needs to remain unminified.\n ['_$litDirective$']: c,\n values,\n });\n\n/**\n * Base class for creating custom directives. Users should extend this class,\n * implement `render` and/or `update`, and then pass their subclass to\n * `directive`.\n */\nexport abstract class Directive implements Disconnectable {\n //@internal\n __part!: Part;\n //@internal\n __attributeIndex: number | undefined;\n //@internal\n __directive?: Directive;\n\n //@internal\n _$parent!: Disconnectable;\n\n // These will only exist on the AsyncDirective subclass\n //@internal\n _$disconnectableChildren?: Set;\n // This property needs to remain unminified.\n //@internal\n ['_$notifyDirectiveConnectionChanged']?(isConnected: boolean): void;\n\n constructor(_partInfo: PartInfo) {}\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n /** @internal */\n _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n this.__part = part;\n this._$parent = parent;\n this.__attributeIndex = attributeIndex;\n }\n /** @internal */\n _$resolve(part: Part, props: Array): unknown {\n return this.update(part, props);\n }\n\n abstract render(...props: Array): unknown;\n\n update(_part: Part, props: Array): unknown {\n return this.render(...props);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {\n _$LH,\n Part,\n DirectiveParent,\n TemplateResult,\n CompiledTemplateResult,\n} from './lit-html.js';\nimport {\n DirectiveResult,\n DirectiveClass,\n PartInfo,\n AttributePartInfo,\n} from './directive.js';\ntype Primitive = null | undefined | boolean | number | string | symbol | bigint;\n\nconst {_ChildPart: ChildPart} = _$LH;\n\ntype ChildPart = InstanceType;\n\nconst ENABLE_SHADYDOM_NOPATCH = true;\n\nconst wrap =\n ENABLE_SHADYDOM_NOPATCH &&\n window.ShadyDOM?.inUse &&\n window.ShadyDOM?.noPatch === true\n ? window.ShadyDOM!.wrap\n : (node: Node) => node;\n\n/**\n * Tests if a value is a primitive value.\n *\n * See https://tc39.github.io/ecma262/#sec-typeof-operator\n */\nexport const isPrimitive = (value: unknown): value is Primitive =>\n value === null || (typeof value != 'object' && typeof value != 'function');\n\nexport const TemplateResultType = {\n HTML: 1,\n SVG: 2,\n} as const;\n\nexport type TemplateResultType =\n (typeof TemplateResultType)[keyof typeof TemplateResultType];\n\ntype IsTemplateResult = {\n (val: unknown): val is TemplateResult | CompiledTemplateResult;\n (\n val: unknown,\n type: T\n ): val is TemplateResult;\n};\n\n/**\n * Tests if a value is a TemplateResult or a CompiledTemplateResult.\n */\nexport const isTemplateResult: IsTemplateResult = (\n value: unknown,\n type?: TemplateResultType\n): value is TemplateResult =>\n type === undefined\n ? // This property needs to remain unminified.\n (value as TemplateResult)?.['_$litType$'] !== undefined\n : (value as TemplateResult)?.['_$litType$'] === type;\n\n/**\n * Tests if a value is a CompiledTemplateResult.\n */\nexport const isCompiledTemplateResult = (\n value: unknown\n): value is CompiledTemplateResult => {\n return (value as CompiledTemplateResult)?.['_$litType$']?.h != null;\n};\n\n/**\n * Tests if a value is a DirectiveResult.\n */\nexport const isDirectiveResult = (value: unknown): value is DirectiveResult =>\n // This property needs to remain unminified.\n (value as DirectiveResult)?.['_$litDirective$'] !== undefined;\n\n/**\n * Retrieves the Directive class for a DirectiveResult\n */\nexport const getDirectiveClass = (value: unknown): DirectiveClass | undefined =>\n // This property needs to remain unminified.\n (value as DirectiveResult)?.['_$litDirective$'];\n\n/**\n * Tests whether a part has only a single-expression with no strings to\n * interpolate between.\n *\n * Only AttributePart and PropertyPart can have multiple expressions.\n * Multi-expression parts have a `strings` property and single-expression\n * parts do not.\n */\nexport const isSingleExpression = (part: PartInfo) =>\n (part as AttributePartInfo).strings === undefined;\n\nconst createMarker = () => document.createComment('');\n\n/**\n * Inserts a ChildPart into the given container ChildPart's DOM, either at the\n * end of the container ChildPart, or before the optional `refPart`.\n *\n * This does not add the part to the containerPart's committed value. That must\n * be done by callers.\n *\n * @param containerPart Part within which to add the new ChildPart\n * @param refPart Part before which to add the new ChildPart; when omitted the\n * part added to the end of the `containerPart`\n * @param part Part to insert, or undefined to create a new part\n */\nexport const insertPart = (\n containerPart: ChildPart,\n refPart?: ChildPart,\n part?: ChildPart\n): ChildPart => {\n const container = wrap(containerPart._$startNode).parentNode!;\n\n const refNode =\n refPart === undefined ? containerPart._$endNode : refPart._$startNode;\n\n if (part === undefined) {\n const startNode = wrap(container).insertBefore(createMarker(), refNode);\n const endNode = wrap(container).insertBefore(createMarker(), refNode);\n part = new ChildPart(\n startNode,\n endNode,\n containerPart,\n containerPart.options\n );\n } else {\n const endNode = wrap(part._$endNode!).nextSibling;\n const oldParent = part._$parent;\n const parentChanged = oldParent !== containerPart;\n if (parentChanged) {\n part._$reparentDisconnectables?.(containerPart);\n // Note that although `_$reparentDisconnectables` updates the part's\n // `_$parent` reference after unlinking from its current parent, that\n // method only exists if Disconnectables are present, so we need to\n // unconditionally set it here\n part._$parent = containerPart;\n // Since the _$isConnected getter is somewhat costly, only\n // read it once we know the subtree has directives that need\n // to be notified\n let newConnectionState;\n if (\n part._$notifyConnectionChanged !== undefined &&\n (newConnectionState = containerPart._$isConnected) !==\n oldParent!._$isConnected\n ) {\n part._$notifyConnectionChanged(newConnectionState);\n }\n }\n if (endNode !== refNode || parentChanged) {\n let start: Node | null = part._$startNode;\n while (start !== endNode) {\n const n: Node | null = wrap(start!).nextSibling;\n wrap(container).insertBefore(start!, refNode);\n start = n;\n }\n }\n }\n\n return part;\n};\n\n/**\n * Sets the value of a Part.\n *\n * Note that this should only be used to set/update the value of user-created\n * parts (i.e. those created using `insertPart`); it should not be used\n * by directives to set the value of the directive's container part. Directives\n * should return a value from `update`/`render` to update their part state.\n *\n * For directives that require setting their part value asynchronously, they\n * should extend `AsyncDirective` and call `this.setValue()`.\n *\n * @param part Part to set\n * @param value Value to set\n * @param index For `AttributePart`s, the index to set\n * @param directiveParent Used internally; should not be set by user\n */\nexport const setChildPartValue = (\n part: T,\n value: unknown,\n directiveParent: DirectiveParent = part\n): T => {\n part._$setValue(value, directiveParent);\n return part;\n};\n\n// A sentinel value that can never appear as a part value except when set by\n// live(). Used to force a dirty-check to fail and cause a re-render.\nconst RESET_VALUE = {};\n\n/**\n * Sets the committed value of a ChildPart directly without triggering the\n * commit stage of the part.\n *\n * This is useful in cases where a directive needs to update the part such\n * that the next update detects a value change or not. When value is omitted,\n * the next update will be guaranteed to be detected as a change.\n *\n * @param part\n * @param value\n */\nexport const setCommittedValue = (part: Part, value: unknown = RESET_VALUE) =>\n (part._$committedValue = value);\n\n/**\n * Returns the committed value of a ChildPart.\n *\n * The committed value is used for change detection and efficient updates of\n * the part. It can differ from the value set by the template or directive in\n * cases where the template value is transformed before being committed.\n *\n * - `TemplateResult`s are committed as a `TemplateInstance`\n * - Iterables are committed as `Array`\n * - All other types are committed as the template value or value returned or\n * set by a directive.\n *\n * @param part\n */\nexport const getCommittedValue = (part: ChildPart) => part._$committedValue;\n\n/**\n * Removes a ChildPart from the DOM, including any of its content.\n *\n * @param part The Part to remove\n */\nexport const removePart = (part: ChildPart) => {\n part._$notifyConnectionChanged?.(false, true);\n let start: ChildNode | null = part._$startNode;\n const end: ChildNode | null = wrap(part._$endNode!).nextSibling;\n while (start !== end) {\n const n: ChildNode | null = wrap(start!).nextSibling;\n (wrap(start!) as ChildNode).remove();\n start = n;\n }\n};\n\nexport const clearPart = (part: ChildPart) => {\n part._$clear();\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Overview:\n *\n * This module is designed to add support for an async `setValue` API and\n * `disconnected` callback to directives with the least impact on the core\n * runtime or payload when that feature is not used.\n *\n * The strategy is to introduce a `AsyncDirective` subclass of\n * `Directive` that climbs the \"parent\" tree in its constructor to note which\n * branches of lit-html's \"logical tree\" of data structures contain such\n * directives and thus need to be crawled when a subtree is being cleared (or\n * manually disconnected) in order to run the `disconnected` callback.\n *\n * The \"nodes\" of the logical tree include Parts, TemplateInstances (for when a\n * TemplateResult is committed to a value of a ChildPart), and Directives; these\n * all implement a common interface called `DisconnectableChild`. Each has a\n * `_$parent` reference which is set during construction in the core code, and a\n * `_$disconnectableChildren` field which is initially undefined.\n *\n * The sparse tree created by means of the `AsyncDirective` constructor\n * crawling up the `_$parent` tree and placing a `_$disconnectableChildren` Set\n * on each parent that includes each child that contains a\n * `AsyncDirective` directly or transitively via its children. In order to\n * notify connection state changes and disconnect (or reconnect) a tree, the\n * `_$notifyConnectionChanged` API is patched onto ChildParts as a directive\n * climbs the parent tree, which is called by the core when clearing a part if\n * it exists. When called, that method iterates over the sparse tree of\n * Set built up by AsyncDirectives, and calls\n * `_$notifyDirectiveConnectionChanged` on any directives that are encountered\n * in that tree, running the required callbacks.\n *\n * A given \"logical tree\" of lit-html data-structures might look like this:\n *\n * ChildPart(N1) _$dC=[D2,T3]\n * ._directive\n * AsyncDirective(D2)\n * ._value // user value was TemplateResult\n * TemplateInstance(T3) _$dC=[A4,A6,N10,N12]\n * ._$parts[]\n * AttributePart(A4) _$dC=[D5]\n * ._directives[]\n * AsyncDirective(D5)\n * AttributePart(A6) _$dC=[D7,D8]\n * ._directives[]\n * AsyncDirective(D7)\n * Directive(D8) _$dC=[D9]\n * ._directive\n * AsyncDirective(D9)\n * ChildPart(N10) _$dC=[D11]\n * ._directive\n * AsyncDirective(D11)\n * ._value\n * string\n * ChildPart(N12) _$dC=[D13,N14,N16]\n * ._directive\n * AsyncDirective(D13)\n * ._value // user value was iterable\n * Array\n * ChildPart(N14) _$dC=[D15]\n * ._value\n * string\n * ChildPart(N16) _$dC=[D17,T18]\n * ._directive\n * AsyncDirective(D17)\n * ._value // user value was TemplateResult\n * TemplateInstance(T18) _$dC=[A19,A21,N25]\n * ._$parts[]\n * AttributePart(A19) _$dC=[D20]\n * ._directives[]\n * AsyncDirective(D20)\n * AttributePart(A21) _$dC=[22,23]\n * ._directives[]\n * AsyncDirective(D22)\n * Directive(D23) _$dC=[D24]\n * ._directive\n * AsyncDirective(D24)\n * ChildPart(N25) _$dC=[D26]\n * ._directive\n * AsyncDirective(D26)\n * ._value\n * string\n *\n * Example 1: The directive in ChildPart(N12) updates and returns `nothing`. The\n * ChildPart will _clear() itself, and so we need to disconnect the \"value\" of\n * the ChildPart (but not its directive). In this case, when `_clear()` calls\n * `_$notifyConnectionChanged()`, we don't iterate all of the\n * _$disconnectableChildren, rather we do a value-specific disconnection: i.e.\n * since the _value was an Array (because an iterable had been\n * committed), we iterate the array of ChildParts (N14, N16) and run\n * `setConnected` on them (which does recurse down the full tree of\n * `_$disconnectableChildren` below it, and also removes N14 and N16 from N12's\n * `_$disconnectableChildren`). Once the values have been disconnected, we then\n * check whether the ChildPart(N12)'s list of `_$disconnectableChildren` is empty\n * (and would remove it from its parent TemplateInstance(T3) if so), but since\n * it would still contain its directive D13, it stays in the disconnectable\n * tree.\n *\n * Example 2: In the course of Example 1, `setConnected` will reach\n * ChildPart(N16); in this case the entire part is being disconnected, so we\n * simply iterate all of N16's `_$disconnectableChildren` (D17,T18) and\n * recursively run `setConnected` on them. Note that we only remove children\n * from `_$disconnectableChildren` for the top-level values being disconnected\n * on a clear; doing this bookkeeping lower in the tree is wasteful since it's\n * all being thrown away.\n *\n * Example 3: If the LitElement containing the entire tree above becomes\n * disconnected, it will run `childPart.setConnected()` (which calls\n * `childPart._$notifyConnectionChanged()` if it exists); in this case, we\n * recursively run `setConnected()` over the entire tree, without removing any\n * children from `_$disconnectableChildren`, since this tree is required to\n * re-connect the tree, which does the same operation, simply passing\n * `isConnected: true` down the tree, signaling which callback to run.\n */\n\nimport {AttributePart, ChildPart, Disconnectable, Part} from './lit-html.js';\nimport {isSingleExpression} from './directive-helpers.js';\nimport {Directive, PartInfo, PartType} from './directive.js';\nexport * from './directive.js';\n\nconst DEV_MODE = true;\n\n/**\n * Recursively walks down the tree of Parts/TemplateInstances/Directives to set\n * the connected state of directives and run `disconnected`/ `reconnected`\n * callbacks.\n *\n * @return True if there were children to disconnect; false otherwise\n */\nconst notifyChildrenConnectedChanged = (\n parent: Disconnectable,\n isConnected: boolean\n): boolean => {\n const children = parent._$disconnectableChildren;\n if (children === undefined) {\n return false;\n }\n for (const obj of children) {\n // The existence of `_$notifyDirectiveConnectionChanged` is used as a \"brand\" to\n // disambiguate AsyncDirectives from other DisconnectableChildren\n // (as opposed to using an instanceof check to know when to call it); the\n // redundancy of \"Directive\" in the API name is to avoid conflicting with\n // `_$notifyConnectionChanged`, which exists `ChildParts` which are also in\n // this list\n // Disconnect Directive (and any nested directives contained within)\n // This property needs to remain unminified.\n (obj as AsyncDirective)['_$notifyDirectiveConnectionChanged']?.(\n isConnected,\n false\n );\n // Disconnect Part/TemplateInstance\n notifyChildrenConnectedChanged(obj, isConnected);\n }\n return true;\n};\n\n/**\n * Removes the given child from its parent list of disconnectable children, and\n * if the parent list becomes empty as a result, removes the parent from its\n * parent, and so forth up the tree when that causes subsequent parent lists to\n * become empty.\n */\nconst removeDisconnectableFromParent = (obj: Disconnectable) => {\n let parent, children;\n do {\n if ((parent = obj._$parent) === undefined) {\n break;\n }\n children = parent._$disconnectableChildren!;\n children.delete(obj);\n obj = parent;\n } while (children?.size === 0);\n};\n\nconst addDisconnectableToParent = (obj: Disconnectable) => {\n // Climb the parent tree, creating a sparse tree of children needing\n // disconnection\n for (let parent; (parent = obj._$parent); obj = parent) {\n let children = parent._$disconnectableChildren;\n if (children === undefined) {\n parent._$disconnectableChildren = children = new Set();\n } else if (children.has(obj)) {\n // Once we've reached a parent that already contains this child, we\n // can short-circuit\n break;\n }\n children.add(obj);\n installDisconnectAPI(parent);\n }\n};\n\n/**\n * Changes the parent reference of the ChildPart, and updates the sparse tree of\n * Disconnectable children accordingly.\n *\n * Note, this method will be patched onto ChildPart instances and called from\n * the core code when parts are moved between different parents.\n */\nfunction reparentDisconnectables(this: ChildPart, newParent: Disconnectable) {\n if (this._$disconnectableChildren !== undefined) {\n removeDisconnectableFromParent(this);\n this._$parent = newParent;\n addDisconnectableToParent(this);\n } else {\n this._$parent = newParent;\n }\n}\n\n/**\n * Sets the connected state on any directives contained within the committed\n * value of this part (i.e. within a TemplateInstance or iterable of\n * ChildParts) and runs their `disconnected`/`reconnected`s, as well as within\n * any directives stored on the ChildPart (when `valueOnly` is false).\n *\n * `isClearingValue` should be passed as `true` on a top-level part that is\n * clearing itself, and not as a result of recursively disconnecting directives\n * as part of a `clear` operation higher up the tree. This both ensures that any\n * directive on this ChildPart that produced a value that caused the clear\n * operation is not disconnected, and also serves as a performance optimization\n * to avoid needless bookkeeping when a subtree is going away; when clearing a\n * subtree, only the top-most part need to remove itself from the parent.\n *\n * `fromPartIndex` is passed only in the case of a partial `_clear` running as a\n * result of truncating an iterable.\n *\n * Note, this method will be patched onto ChildPart instances and called from the\n * core code when parts are cleared or the connection state is changed by the\n * user.\n */\nfunction notifyChildPartConnectedChanged(\n this: ChildPart,\n isConnected: boolean,\n isClearingValue = false,\n fromPartIndex = 0\n) {\n const value = this._$committedValue;\n const children = this._$disconnectableChildren;\n if (children === undefined || children.size === 0) {\n return;\n }\n if (isClearingValue) {\n if (Array.isArray(value)) {\n // Iterable case: Any ChildParts created by the iterable should be\n // disconnected and removed from this ChildPart's disconnectable\n // children (starting at `fromPartIndex` in the case of truncation)\n for (let i = fromPartIndex; i < value.length; i++) {\n notifyChildrenConnectedChanged(value[i], false);\n removeDisconnectableFromParent(value[i]);\n }\n } else if (value != null) {\n // TemplateInstance case: If the value has disconnectable children (will\n // only be in the case that it is a TemplateInstance), we disconnect it\n // and remove it from this ChildPart's disconnectable children\n notifyChildrenConnectedChanged(value as Disconnectable, false);\n removeDisconnectableFromParent(value as Disconnectable);\n }\n } else {\n notifyChildrenConnectedChanged(this, isConnected);\n }\n}\n\n/**\n * Patches disconnection API onto ChildParts.\n */\nconst installDisconnectAPI = (obj: Disconnectable) => {\n if ((obj as ChildPart).type == PartType.CHILD) {\n (obj as ChildPart)._$notifyConnectionChanged ??=\n notifyChildPartConnectedChanged;\n (obj as ChildPart)._$reparentDisconnectables ??= reparentDisconnectables;\n }\n};\n\n/**\n * An abstract `Directive` base class whose `disconnected` method will be\n * called when the part containing the directive is cleared as a result of\n * re-rendering, or when the user calls `part.setConnected(false)` on\n * a part that was previously rendered containing the directive (as happens\n * when e.g. a LitElement disconnects from the DOM).\n *\n * If `part.setConnected(true)` is subsequently called on a\n * containing part, the directive's `reconnected` method will be called prior\n * to its next `update`/`render` callbacks. When implementing `disconnected`,\n * `reconnected` should also be implemented to be compatible with reconnection.\n *\n * Note that updates may occur while the directive is disconnected. As such,\n * directives should generally check the `this.isConnected` flag during\n * render/update to determine whether it is safe to subscribe to resources\n * that may prevent garbage collection.\n */\nexport abstract class AsyncDirective extends Directive {\n // As opposed to other Disconnectables, AsyncDirectives always get notified\n // when the RootPart connection changes, so the public `isConnected`\n // is a locally stored variable initialized via its part's getter and synced\n // via `_$notifyDirectiveConnectionChanged`. This is cheaper than using\n // the _$isConnected getter, which has to look back up the tree each time.\n /**\n * The connection state for this Directive.\n */\n isConnected!: boolean;\n\n // @internal\n override _$disconnectableChildren?: Set = undefined;\n /**\n * Initialize the part with internal fields\n * @param part\n * @param parent\n * @param attributeIndex\n */\n override _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n super._$initialize(part, parent, attributeIndex);\n addDisconnectableToParent(this);\n this.isConnected = part._$isConnected;\n }\n // This property needs to remain unminified.\n /**\n * Called from the core code when a directive is going away from a part (in\n * which case `shouldRemoveFromParent` should be true), and from the\n * `setChildrenConnected` helper function when recursively changing the\n * connection state of a tree (in which case `shouldRemoveFromParent` should\n * be false).\n *\n * @param isConnected\n * @param isClearingDirective - True when the directive itself is being\n * removed; false when the tree is being disconnected\n * @internal\n */\n override ['_$notifyDirectiveConnectionChanged'](\n isConnected: boolean,\n isClearingDirective = true\n ) {\n if (isConnected !== this.isConnected) {\n this.isConnected = isConnected;\n if (isConnected) {\n this.reconnected?.();\n } else {\n this.disconnected?.();\n }\n }\n if (isClearingDirective) {\n notifyChildrenConnectedChanged(this, isConnected);\n removeDisconnectableFromParent(this);\n }\n }\n\n /**\n * Sets the value of the directive's Part outside the normal `update`/`render`\n * lifecycle of a directive.\n *\n * This method should not be called synchronously from a directive's `update`\n * or `render`.\n *\n * @param directive The directive to update\n * @param value The value to set\n */\n setValue(value: unknown) {\n if (isSingleExpression(this.__part as unknown as PartInfo)) {\n this.__part._$setValue(value, this);\n } else {\n // this.__attributeIndex will be defined in this case, but\n // assert it in dev mode\n if (DEV_MODE && this.__attributeIndex === undefined) {\n throw new Error(`Expected this.__attributeIndex to be a number`);\n }\n const newValues = [...(this.__part._$committedValue as Array)];\n newValues[this.__attributeIndex!] = value;\n (this.__part as AttributePart)._$setValue(newValues, this, 0);\n }\n }\n\n /**\n * User callbacks for implementing logic to release any resources/subscriptions\n * that may have been retained by this directive. Since directives may also be\n * re-connected, `reconnected` should also be implemented to restore the\n * working state of the directive prior to the next render.\n */\n protected disconnected() {}\n protected reconnected() {}\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ChildPart, noChange} from '../lit-html.js';\nimport {directive, Directive, PartInfo, PartType} from '../directive.js';\nimport {\n insertPart,\n getCommittedValue,\n removePart,\n setCommittedValue,\n setChildPartValue,\n} from '../directive-helpers.js';\n\nexport type KeyFn = (item: T, index: number) => unknown;\nexport type ItemTemplate = (item: T, index: number) => unknown;\n\n// Helper for generating a map of array item to its index over a subset\n// of an array (used to lazily generate `newKeyToIndexMap` and\n// `oldKeyToIndexMap`)\nconst generateMap = (list: unknown[], start: number, end: number) => {\n const map = new Map();\n for (let i = start; i <= end; i++) {\n map.set(list[i], i);\n }\n return map;\n};\n\nclass RepeatDirective extends Directive {\n private _itemKeys?: unknown[];\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error('repeat() can only be used in text expressions');\n }\n }\n\n private _getValuesAndKeys(\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ) {\n let keyFn: KeyFn | undefined;\n if (template === undefined) {\n template = keyFnOrTemplate;\n } else if (keyFnOrTemplate !== undefined) {\n keyFn = keyFnOrTemplate as KeyFn;\n }\n const keys = [];\n const values = [];\n let index = 0;\n for (const item of items) {\n keys[index] = keyFn ? keyFn(item, index) : index;\n values[index] = template!(item, index);\n index++;\n }\n return {\n values,\n keys,\n };\n }\n\n render(items: Iterable, template: ItemTemplate): Array;\n render(\n items: Iterable,\n keyFn: KeyFn | ItemTemplate,\n template: ItemTemplate\n ): Array;\n render(\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ) {\n return this._getValuesAndKeys(items, keyFnOrTemplate, template).values;\n }\n\n override update(\n containerPart: ChildPart,\n [items, keyFnOrTemplate, template]: [\n Iterable,\n KeyFn | ItemTemplate,\n ItemTemplate\n ]\n ) {\n // Old part & key lists are retrieved from the last update (which may\n // be primed by hydration)\n const oldParts = getCommittedValue(\n containerPart\n ) as Array;\n const {values: newValues, keys: newKeys} = this._getValuesAndKeys(\n items,\n keyFnOrTemplate,\n template\n );\n\n // We check that oldParts, the committed value, is an Array as an\n // indicator that the previous value came from a repeat() call. If\n // oldParts is not an Array then this is the first render and we return\n // an array for lit-html's array handling to render, and remember the\n // keys.\n if (!Array.isArray(oldParts)) {\n this._itemKeys = newKeys;\n return newValues;\n }\n\n // In SSR hydration it's possible for oldParts to be an array but for us\n // to not have item keys because the update() hasn't run yet. We set the\n // keys to an empty array. This will cause all oldKey/newKey comparisons\n // to fail and execution to fall to the last nested brach below which\n // reuses the oldPart.\n const oldKeys = (this._itemKeys ??= []);\n\n // New part list will be built up as we go (either reused from\n // old parts or created for new keys in this update). This is\n // saved in the above cache at the end of the update.\n const newParts: ChildPart[] = [];\n\n // Maps from key to index for current and previous update; these\n // are generated lazily only when needed as a performance\n // optimization, since they are only required for multiple\n // non-contiguous changes in the list, which are less common.\n let newKeyToIndexMap!: Map;\n let oldKeyToIndexMap!: Map;\n\n // Head and tail pointers to old parts and new values\n let oldHead = 0;\n let oldTail = oldParts.length - 1;\n let newHead = 0;\n let newTail = newValues.length - 1;\n\n // Overview of O(n) reconciliation algorithm (general approach\n // based on ideas found in ivi, vue, snabbdom, etc.):\n //\n // * We start with the list of old parts and new values (and\n // arrays of their respective keys), head/tail pointers into\n // each, and we build up the new list of parts by updating\n // (and when needed, moving) old parts or creating new ones.\n // The initial scenario might look like this (for brevity of\n // the diagrams, the numbers in the array reflect keys\n // associated with the old parts or new values, although keys\n // and parts/values are actually stored in parallel arrays\n // indexed using the same head/tail pointers):\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [ , , , , , , ]\n // newKeys: [0, 2, 1, 4, 3, 7, 6] <- reflects the user's new\n // item order\n // newHead ^ ^ newTail\n //\n // * Iterate old & new lists from both sides, updating,\n // swapping, or removing parts at the head/tail locations\n // until neither head nor tail can move.\n //\n // * Example below: keys at head pointers match, so update old\n // part 0 in-place (no need to move it) and record part 0 in\n // the `newParts` list. The last thing we do is advance the\n // `oldHead` and `newHead` pointers (will be reflected in the\n // next diagram).\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , ] <- heads matched: update 0\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldHead\n // & newHead\n // newHead ^ ^ newTail\n //\n // * Example below: head pointers don't match, but tail\n // pointers do, so update part 6 in place (no need to move\n // it), and record part 6 in the `newParts` list. Last,\n // advance the `oldTail` and `oldHead` pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , 6] <- tails matched: update 6\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldTail\n // & newTail\n // newHead ^ ^ newTail\n //\n // * If neither head nor tail match; next check if one of the\n // old head/tail items was removed. We first need to generate\n // the reverse map of new keys to index (`newKeyToIndexMap`),\n // which is done once lazily as a performance optimization,\n // since we only hit this case if multiple non-contiguous\n // changes were made. Note that for contiguous removal\n // anywhere in the list, the head and tails would advance\n // from either end and pass each other before we get to this\n // case and removals would be handled in the final while loop\n // without needing to generate the map.\n //\n // * Example below: The key at `oldTail` was removed (no longer\n // in the `newKeyToIndexMap`), so remove that part from the\n // DOM and advance just the `oldTail` pointer.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , 6] <- 5 not in new map: remove\n // newKeys: [0, 2, 1, 4, 3, 7, 6] 5 and advance oldTail\n // newHead ^ ^ newTail\n //\n // * Once head and tail cannot move, any mismatches are due to\n // either new or moved items; if a new key is in the previous\n // \"old key to old index\" map, move the old part to the new\n // location, otherwise create and insert a new part. Note\n // that when moving an old part we null its position in the\n // oldParts array if it lies between the head and tail so we\n // know to skip it when the pointers get there.\n //\n // * Example below: neither head nor tail match, and neither\n // were removed; so find the `newHead` key in the\n // `oldKeyToIndexMap`, and move that old part's DOM into the\n // next head position (before `oldParts[oldHead]`). Last,\n // null the part in the `oldPart` array since it was\n // somewhere in the remaining oldParts still to be scanned\n // (between the head and tail pointers) so that we know to\n // skip that old part on future iterations.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, , , , , 6] <- stuck: update & move 2\n // newKeys: [0, 2, 1, 4, 3, 7, 6] into place and advance\n // newHead\n // newHead ^ ^ newTail\n //\n // * Note that for moves/insertions like the one above, a part\n // inserted at the head pointer is inserted before the\n // current `oldParts[oldHead]`, and a part inserted at the\n // tail pointer is inserted before `newParts[newTail+1]`. The\n // seeming asymmetry lies in the fact that new parts are\n // moved into place outside in, so to the right of the head\n // pointer are old parts, and to the right of the tail\n // pointer are new parts.\n //\n // * We always restart back from the top of the algorithm,\n // allowing matching and simple updates in place to\n // continue...\n //\n // * Example below: the head pointers once again match, so\n // simply update part 1 and record it in the `newParts`\n // array. Last, advance both head pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, , , , 6] <- heads matched: update 1\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldHead\n // & newHead\n // newHead ^ ^ newTail\n //\n // * As mentioned above, items that were moved as a result of\n // being stuck (the final else clause in the code below) are\n // marked with null, so we always advance old pointers over\n // these so we're comparing the next actual old value on\n // either end.\n //\n // * Example below: `oldHead` is null (already placed in\n // newParts), so advance `oldHead`.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6] <- old head already used:\n // newParts: [0, 2, 1, , , , 6] advance oldHead\n // newKeys: [0, 2, 1, 4, 3, 7, 6]\n // newHead ^ ^ newTail\n //\n // * Note it's not critical to mark old parts as null when they\n // are moved from head to tail or tail to head, since they\n // will be outside the pointer range and never visited again.\n //\n // * Example below: Here the old tail key matches the new head\n // key, so the part at the `oldTail` position and move its\n // DOM to the new head position (before `oldParts[oldHead]`).\n // Last, advance `oldTail` and `newHead` pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, , , 6] <- old tail matches new\n // newKeys: [0, 2, 1, 4, 3, 7, 6] head: update & move 4,\n // advance oldTail & newHead\n // newHead ^ ^ newTail\n //\n // * Example below: Old and new head keys match, so update the\n // old head part in place, and advance the `oldHead` and\n // `newHead` pointers.\n //\n // oldHead v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, 3, ,6] <- heads match: update 3\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance oldHead &\n // newHead\n // newHead ^ ^ newTail\n //\n // * Once the new or old pointers move past each other then all\n // we have left is additions (if old list exhausted) or\n // removals (if new list exhausted). Those are handled in the\n // final while loops at the end.\n //\n // * Example below: `oldHead` exceeded `oldTail`, so we're done\n // with the main loop. Create the remaining part and insert\n // it at the new head position, and the update is complete.\n //\n // (oldHead > oldTail)\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, 3, 7 ,6] <- create and insert 7\n // newKeys: [0, 2, 1, 4, 3, 7, 6]\n // newHead ^ newTail\n //\n // * Note that the order of the if/else clauses is not\n // important to the algorithm, as long as the null checks\n // come first (to ensure we're always working on valid old\n // parts) and that the final else clause comes last (since\n // that's where the expensive moves occur). The order of\n // remaining clauses is is just a simple guess at which cases\n // will be most common.\n //\n // * Note, we could calculate the longest\n // increasing subsequence (LIS) of old items in new position,\n // and only move those not in the LIS set. However that costs\n // O(nlogn) time and adds a bit more code, and only helps\n // make rare types of mutations require fewer moves. The\n // above handles removes, adds, reversal, swaps, and single\n // moves of contiguous items in linear time, in the minimum\n // number of moves. As the number of multiple moves where LIS\n // might help approaches a random shuffle, the LIS\n // optimization becomes less helpful, so it seems not worth\n // the code at this point. Could reconsider if a compelling\n // case arises.\n\n while (oldHead <= oldTail && newHead <= newTail) {\n if (oldParts[oldHead] === null) {\n // `null` means old part at head has already been used\n // below; skip\n oldHead++;\n } else if (oldParts[oldTail] === null) {\n // `null` means old part at tail has already been used\n // below; skip\n oldTail--;\n } else if (oldKeys[oldHead] === newKeys[newHead]) {\n // Old head matches new head; update in place\n newParts[newHead] = setChildPartValue(\n oldParts[oldHead]!,\n newValues[newHead]\n );\n oldHead++;\n newHead++;\n } else if (oldKeys[oldTail] === newKeys[newTail]) {\n // Old tail matches new tail; update in place\n newParts[newTail] = setChildPartValue(\n oldParts[oldTail]!,\n newValues[newTail]\n );\n oldTail--;\n newTail--;\n } else if (oldKeys[oldHead] === newKeys[newTail]) {\n // Old head matches new tail; update and move to new tail\n newParts[newTail] = setChildPartValue(\n oldParts[oldHead]!,\n newValues[newTail]\n );\n insertPart(containerPart, newParts[newTail + 1], oldParts[oldHead]!);\n oldHead++;\n newTail--;\n } else if (oldKeys[oldTail] === newKeys[newHead]) {\n // Old tail matches new head; update and move to new head\n newParts[newHead] = setChildPartValue(\n oldParts[oldTail]!,\n newValues[newHead]\n );\n insertPart(containerPart, oldParts[oldHead]!, oldParts[oldTail]!);\n oldTail--;\n newHead++;\n } else {\n if (newKeyToIndexMap === undefined) {\n // Lazily generate key-to-index maps, used for removals &\n // moves below\n newKeyToIndexMap = generateMap(newKeys, newHead, newTail);\n oldKeyToIndexMap = generateMap(oldKeys, oldHead, oldTail);\n }\n if (!newKeyToIndexMap.has(oldKeys[oldHead])) {\n // Old head is no longer in new list; remove\n removePart(oldParts[oldHead]!);\n oldHead++;\n } else if (!newKeyToIndexMap.has(oldKeys[oldTail])) {\n // Old tail is no longer in new list; remove\n removePart(oldParts[oldTail]!);\n oldTail--;\n } else {\n // Any mismatches at this point are due to additions or\n // moves; see if we have an old part we can reuse and move\n // into place\n const oldIndex = oldKeyToIndexMap.get(newKeys[newHead]);\n const oldPart = oldIndex !== undefined ? oldParts[oldIndex] : null;\n if (oldPart === null) {\n // No old part for this value; create a new one and\n // insert it\n const newPart = insertPart(containerPart, oldParts[oldHead]!);\n setChildPartValue(newPart, newValues[newHead]);\n newParts[newHead] = newPart;\n } else {\n // Reuse old part\n newParts[newHead] = setChildPartValue(oldPart, newValues[newHead]);\n insertPart(containerPart, oldParts[oldHead]!, oldPart);\n // This marks the old part as having been used, so that\n // it will be skipped in the first two checks above\n oldParts[oldIndex as number] = null;\n }\n newHead++;\n }\n }\n }\n // Add parts for any remaining new values\n while (newHead <= newTail) {\n // For all remaining additions, we insert before last new\n // tail, since old pointers are no longer valid\n const newPart = insertPart(containerPart, newParts[newTail + 1]);\n setChildPartValue(newPart, newValues[newHead]);\n newParts[newHead++] = newPart;\n }\n // Remove any remaining unused old parts\n while (oldHead <= oldTail) {\n const oldPart = oldParts[oldHead++];\n if (oldPart !== null) {\n removePart(oldPart);\n }\n }\n\n // Save order of new parts for next round\n this._itemKeys = newKeys;\n // Directly set part value, bypassing it's dirty-checking\n setCommittedValue(containerPart, newParts);\n return noChange;\n }\n}\n\nexport interface RepeatDirectiveFn {\n (\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ): unknown;\n (items: Iterable, template: ItemTemplate): unknown;\n (\n items: Iterable,\n keyFn: KeyFn | ItemTemplate,\n template: ItemTemplate\n ): unknown;\n}\n\n/**\n * A directive that repeats a series of values (usually `TemplateResults`)\n * generated from an iterable, and updates those items efficiently when the\n * iterable changes based on user-provided `keys` associated with each item.\n *\n * Note that if a `keyFn` is provided, strict key-to-DOM mapping is maintained,\n * meaning previous DOM for a given key is moved into the new position if\n * needed, and DOM will never be reused with values for different keys (new DOM\n * will always be created for new keys). This is generally the most efficient\n * way to use `repeat` since it performs minimum unnecessary work for insertions\n * and removals.\n *\n * The `keyFn` takes two parameters, the item and its index, and returns a unique key value.\n *\n * ```js\n * html`\n *
    \n * ${repeat(this.items, (item) => item.id, (item, index) => {\n * return html`
  1. ${index}: ${item.name}
  2. `;\n * })}\n *
\n * `\n * ```\n *\n * **Important**: If providing a `keyFn`, keys *must* be unique for all items in a\n * given call to `repeat`. The behavior when two or more items have the same key\n * is undefined.\n *\n * If no `keyFn` is provided, this directive will perform similar to mapping\n * items to values, and DOM will be reused against potentially different items.\n */\nexport const repeat = directive(RepeatDirective) as RepeatDirectiveFn;\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {RepeatDirective};\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nexport class RangeChangedEvent extends Event {\n static eventName = 'rangeChanged';\n\n first: number;\n last: number;\n\n constructor(range: Range) {\n super(RangeChangedEvent.eventName, {bubbles: false});\n this.first = range.first;\n this.last = range.last;\n }\n}\n\nexport class VisibilityChangedEvent extends Event {\n static eventName = 'visibilityChanged';\n\n first: number;\n last: number;\n\n constructor(range: Range) {\n super(VisibilityChangedEvent.eventName, {bubbles: false});\n this.first = range.first;\n this.last = range.last;\n }\n}\n\nexport class UnpinnedEvent extends Event {\n static eventName = 'unpinned';\n\n constructor() {\n super(UnpinnedEvent.eventName, {bubbles: false});\n }\n}\n\ninterface Range {\n first: number;\n last: number;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ScrollToCoordinates} from './layouts/shared/Layout.js';\n\ntype retargetScrollCallback = () => ScrollToCoordinates;\ntype endScrollCallback = () => void;\ntype Nullable = T | null;\n\nexport class ScrollerShim {\n protected _node: Element | Window;\n protected _element: Nullable = null;\n\n constructor(element?: Element) {\n const node = element ?? window;\n this._node = node;\n if (element) {\n this._element = element;\n }\n }\n\n public get element() {\n return (\n this._element || document.scrollingElement || document.documentElement\n );\n }\n\n public get scrollTop() {\n return this.element.scrollTop || window.scrollY;\n }\n\n public get scrollLeft() {\n return this.element.scrollLeft || window.scrollX;\n }\n\n public get scrollHeight() {\n return this.element.scrollHeight;\n }\n\n public get scrollWidth() {\n return this.element.scrollWidth;\n }\n\n public get viewportHeight() {\n return this._element\n ? this._element.getBoundingClientRect().height\n : window.innerHeight;\n }\n\n public get viewportWidth() {\n return this._element\n ? this._element.getBoundingClientRect().width\n : window.innerWidth;\n }\n\n public get maxScrollTop() {\n return this.scrollHeight - this.viewportHeight;\n }\n\n public get maxScrollLeft() {\n return this.scrollWidth - this.viewportWidth;\n }\n}\n\nexport class ScrollerController extends ScrollerShim {\n private _originalScrollTo:\n | typeof Element.prototype.scrollTo\n | typeof window.scrollTo;\n private _originalScrollBy:\n | typeof Element.prototype.scrollBy\n | typeof window.scrollBy;\n private _originalScroll:\n | typeof Element.prototype.scroll\n | typeof window.scroll;\n private _clients = new Set();\n private _retarget: Nullable = null;\n private _end: Nullable = null;\n private __destination: Nullable = null;\n\n constructor(client: unknown, element?: Element) {\n super(element);\n\n this._checkForArrival = this._checkForArrival.bind(this);\n this._updateManagedScrollTo = this._updateManagedScrollTo.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.scrollBy = this.scrollBy.bind(this);\n\n const node = this._node;\n\n this._originalScrollTo = node.scrollTo;\n this._originalScrollBy = node.scrollBy;\n this._originalScroll = node.scroll;\n this._attach(client);\n }\n\n public correctingScrollError = false;\n\n private get _destination() {\n return this.__destination;\n }\n\n public get scrolling() {\n return this._destination !== null;\n }\n\n public scrollTo(options: ScrollToOptions): void;\n public scrollTo(x: number, y: number): void;\n public scrollTo(p1: ScrollToOptions | number, p2?: number): void;\n public scrollTo(p1: ScrollToOptions | number, p2?: number) {\n const options: ScrollToOptions =\n typeof p1 === 'number' && typeof p2 === 'number'\n ? {left: p1, top: p2}\n : (p1 as ScrollToOptions);\n this._scrollTo(options);\n }\n\n public scrollBy(options: ScrollToOptions): void;\n public scrollBy(x: number, y: number): void;\n public scrollBy(p1: ScrollToOptions | number, p2?: number): void;\n public scrollBy(p1: ScrollToOptions | number, p2?: number) {\n const options: ScrollToOptions =\n typeof p1 === 'number' && typeof p2 === 'number'\n ? {left: p1, top: p2}\n : (p1 as ScrollToOptions);\n if (options.top !== undefined) {\n options.top += this.scrollTop;\n }\n if (options.left !== undefined) {\n options.left += this.scrollLeft;\n }\n this._scrollTo(options);\n }\n\n private _nativeScrollTo(options: ScrollToOptions) {\n this._originalScrollTo!.bind(this._element || window)(options);\n }\n\n private _scrollTo(\n options: ScrollToOptions,\n retarget: retargetScrollCallback | null = null,\n end: endScrollCallback | null = null\n ) {\n if (this._end !== null) {\n this._end();\n }\n if (options.behavior === 'smooth') {\n this._setDestination(options);\n this._retarget = retarget;\n this._end = end;\n } else {\n this._resetScrollState();\n }\n this._nativeScrollTo(options);\n }\n\n private _setDestination(options: ScrollToOptions) {\n let {top, left} = options;\n top =\n top === undefined\n ? undefined\n : Math.max(0, Math.min(top, this.maxScrollTop));\n left =\n left === undefined\n ? undefined\n : Math.max(0, Math.min(left, this.maxScrollLeft));\n if (\n this._destination !== null &&\n left === this._destination.left &&\n top === this._destination.top\n ) {\n return false;\n }\n this.__destination = {top, left, behavior: 'smooth'};\n return true;\n }\n\n private _resetScrollState() {\n this.__destination = null;\n this._retarget = null;\n this._end = null;\n }\n\n private _updateManagedScrollTo(coordinates: ScrollToCoordinates) {\n if (this._destination) {\n if (this._setDestination(coordinates)) {\n this._nativeScrollTo(this._destination);\n }\n }\n }\n\n public managedScrollTo(\n options: ScrollToOptions,\n retarget: retargetScrollCallback,\n end: endScrollCallback\n ) {\n this._scrollTo(options, retarget, end);\n return this._updateManagedScrollTo;\n }\n\n public correctScrollError(coordinates: ScrollToCoordinates) {\n this.correctingScrollError = true;\n requestAnimationFrame(() =>\n requestAnimationFrame(() => (this.correctingScrollError = false))\n );\n // Correct the error\n this._nativeScrollTo(coordinates);\n // Then, if we were headed for a specific destination, we continue scrolling:\n // First, we update our target destination, if applicable...\n if (this._retarget) {\n this._setDestination(this._retarget());\n }\n // Then we go ahead and resume scrolling\n if (this._destination) {\n this._nativeScrollTo(this._destination);\n }\n }\n\n private _checkForArrival() {\n if (this._destination !== null) {\n const {scrollTop, scrollLeft} = this;\n let {top, left} = this._destination;\n top = Math.min(top || 0, this.maxScrollTop);\n left = Math.min(left || 0, this.maxScrollLeft);\n const topDiff = Math.abs(top - scrollTop);\n const leftDiff = Math.abs(left - scrollLeft);\n // We check to see if we've arrived at our destination.\n if (topDiff < 1 && leftDiff < 1) {\n if (this._end) {\n this._end();\n }\n this._resetScrollState();\n }\n }\n }\n\n public detach(client: unknown) {\n this._clients.delete(client);\n\n /**\n * If there aren't any more clients, then return the node's default\n * scrolling methods\n */\n if (this._clients.size === 0) {\n this._node.scrollTo = this._originalScrollTo;\n this._node.scrollBy = this._originalScrollBy;\n this._node.scroll = this._originalScroll;\n this._node.removeEventListener('scroll', this._checkForArrival);\n }\n return null;\n }\n\n private _attach(client: unknown) {\n this._clients.add(client);\n\n /**\n * The node should only have the methods shimmed when adding the first\n * client – otherwise it's redundant\n */\n if (this._clients.size === 1) {\n this._node.scrollTo = this.scrollTo;\n this._node.scrollBy = this.scrollBy;\n this._node.scroll = this.scrollTo;\n this._node.addEventListener('scroll', this._checkForArrival);\n }\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {\n ItemBox,\n Margins,\n LayoutConfigValue,\n ChildPositions,\n ChildMeasurements,\n Layout,\n LayoutConstructor,\n LayoutSpecifier,\n StateChangedMessage,\n Size,\n InternalRange,\n MeasureChildFunction,\n ScrollToCoordinates,\n BaseLayoutConfig,\n LayoutHostMessage,\n} from './layouts/shared/Layout.js';\nimport {\n RangeChangedEvent,\n VisibilityChangedEvent,\n UnpinnedEvent,\n} from './events.js';\nimport {ScrollerController} from './ScrollerController.js';\n\n// Virtualizer depends on `ResizeObserver`, which is supported in\n// all modern browsers. For developers whose browser support\n// matrix includes older browsers, we include a compatible\n// polyfill in the package; this bit of module state facilitates\n// a simple mechanism (see ./polyfillLoaders/ResizeObserver.js.)\n// for loading the polyfill.\nlet _ResizeObserver: typeof ResizeObserver | undefined = window?.ResizeObserver;\n\n/**\n * Call this function to provide a `ResizeObserver` polyfill for Virtualizer to use.\n * @param Ctor Constructor for a `ResizeObserver` polyfill (recommend using the one provided with the Virtualizer package)\n */\nexport function provideResizeObserver(Ctor: typeof ResizeObserver) {\n _ResizeObserver = Ctor;\n}\n\nexport const virtualizerRef = Symbol('virtualizerRef');\nconst SIZER_ATTRIBUTE = 'virtualizer-sizer';\n\ndeclare global {\n interface HTMLElementEventMap {\n rangeChanged: RangeChangedEvent;\n visibilityChanged: VisibilityChangedEvent;\n unpinned: UnpinnedEvent;\n }\n}\n\nexport interface VirtualizerHostElement extends HTMLElement {\n [virtualizerRef]?: Virtualizer;\n}\n\n/**\n * A very limited proxy object for a virtualizer child,\n * returned by Virtualizer.element(idx: number). Introduced\n * to enable scrolling a virtual element into view using\n * a call that looks and behaves essentially the same as for\n * a real Element. May be useful for other things later.\n */\nexport interface VirtualizerChildElementProxy {\n scrollIntoView: (options?: ScrollIntoViewOptions) => void;\n}\n\n/**\n * Used internally for scrolling a (possibly virtual) element\n * into view, given its index\n */\ninterface ScrollElementIntoViewOptions extends ScrollIntoViewOptions {\n index: number;\n}\n\nexport interface VirtualizerConfig {\n layout?: LayoutConfigValue;\n\n /**\n * The parent of all child nodes to be rendered.\n */\n hostElement: VirtualizerHostElement;\n\n scroller?: boolean;\n}\n\nlet DefaultLayoutConstructor: LayoutConstructor;\n\n/**\n * Provides virtual scrolling boilerplate.\n *\n * Extensions of this class must set hostElement and layout.\n *\n * Extensions of this class must also override VirtualRepeater's DOM\n * manipulation methods.\n */\nexport class Virtualizer {\n private _benchmarkStart: number | null = null;\n\n private _layout: Layout | null = null;\n\n private _clippingAncestors: HTMLElement[] = [];\n\n /**\n * Layout provides these values, we set them on _render().\n * TODO @straversi: Can we find an XOR type, usable for the key here?\n */\n private _scrollSize: Size | null = null;\n\n /**\n * Difference between scroll target's current and required scroll offsets.\n * Provided by layout.\n */\n private _scrollError: {left: number; top: number} | null = null;\n\n /**\n * A list of the positions (top, left) of the children in the current range.\n */\n private _childrenPos: ChildPositions | null = null;\n\n // TODO: (graynorton): type\n private _childMeasurements: ChildMeasurements | null = null;\n\n private _toBeMeasured: Map = new Map();\n\n private _rangeChanged = true;\n\n private _itemsChanged = true;\n\n private _visibilityChanged = true;\n\n /**\n * The HTMLElement that hosts the virtualizer. Set by hostElement.\n */\n protected _hostElement?: VirtualizerHostElement;\n\n private _scrollerController: ScrollerController | null = null;\n\n private _isScroller = false;\n\n private _sizer: HTMLElement | null = null;\n\n /**\n * Resize observer attached to hostElement.\n */\n private _hostElementRO: ResizeObserver | null = null;\n\n /**\n * Resize observer attached to children.\n */\n private _childrenRO: ResizeObserver | null = null;\n\n private _mutationObserver: MutationObserver | null = null;\n\n private _scrollEventListeners: (Element | Window)[] = [];\n private _scrollEventListenerOptions: AddEventListenerOptions = {\n passive: true,\n };\n\n // TODO (graynorton): Rethink, per longer comment below\n\n private _loadListener = this._childLoaded.bind(this);\n\n /**\n * Index of element to scroll into view, plus scroll\n * behavior options, as imperatively specified via\n * `element(index).scrollIntoView()`\n */\n private _scrollIntoViewTarget: ScrollElementIntoViewOptions | null = null;\n\n private _updateScrollIntoViewCoordinates:\n | ((coordinates: ScrollToCoordinates) => void)\n | null = null;\n\n /**\n * Items to render. Set by items.\n */\n private _items: Array = [];\n\n /**\n * Index of the first child in the range, not necessarily the first visible child.\n * TODO @straversi: Consider renaming these.\n */\n protected _first = -1;\n\n /**\n * Index of the last child in the range.\n */\n protected _last = -1;\n\n /**\n * Index of the first item intersecting the viewport.\n */\n private _firstVisible = -1;\n\n /**\n * Index of the last item intersecting the viewport.\n */\n private _lastVisible = -1;\n\n protected _scheduled = new WeakSet();\n\n /**\n * Invoked at the end of each render cycle: children in the range are\n * measured, and their dimensions passed to this callback. Use it to layout\n * children as needed.\n */\n protected _measureCallback: ((sizes: ChildMeasurements) => void) | null =\n null;\n\n protected _measureChildOverride: MeasureChildFunction | null = null;\n\n /**\n * State for `layoutComplete` promise\n */\n private _layoutCompletePromise: Promise | null = null;\n private _layoutCompleteResolver: Function | null = null;\n private _layoutCompleteRejecter: Function | null = null;\n private _pendingLayoutComplete: number | null = null;\n\n /**\n * Layout initialization is async because we dynamically load\n * the default layout if none is specified. This state is to track\n * whether init is complete.\n */\n private _layoutInitialized: Promise | null = null;\n\n constructor(config: VirtualizerConfig) {\n if (!config) {\n throw new Error(\n 'Virtualizer constructor requires a configuration object'\n );\n }\n if (config.hostElement) {\n this._init(config);\n } else {\n throw new Error(\n 'Virtualizer configuration requires the \"hostElement\" property'\n );\n }\n }\n\n set items(items: Array | undefined) {\n if (Array.isArray(items) && items !== this._items) {\n this._itemsChanged = true;\n this._items = items;\n this._schedule(this._updateLayout);\n }\n }\n\n _init(config: VirtualizerConfig) {\n this._isScroller = !!config.scroller;\n this._initHostElement(config);\n // If no layout is specified, we make an empty\n // layout config, which will result in the default\n // layout with default parameters\n const layoutConfig = config.layout || ({} as BaseLayoutConfig);\n // Save the promise returned by `_initLayout` as a state\n // variable we can check before updating layout config\n this._layoutInitialized = this._initLayout(layoutConfig);\n }\n\n private _initObservers() {\n this._mutationObserver = new MutationObserver(\n this._finishDOMUpdate.bind(this)\n );\n this._hostElementRO = new _ResizeObserver!(() =>\n this._hostElementSizeChanged()\n );\n this._childrenRO = new _ResizeObserver!(\n this._childrenSizeChanged.bind(this)\n );\n }\n\n _initHostElement(config: VirtualizerConfig) {\n const hostElement = (this._hostElement = config.hostElement);\n this._applyVirtualizerStyles();\n hostElement[virtualizerRef] = this;\n }\n\n connected() {\n this._initObservers();\n const includeSelf = this._isScroller;\n this._clippingAncestors = getClippingAncestors(\n this._hostElement!,\n includeSelf\n );\n\n this._scrollerController = new ScrollerController(\n this,\n this._clippingAncestors[0]\n );\n\n this._schedule(this._updateLayout);\n this._observeAndListen();\n }\n\n _observeAndListen() {\n this._mutationObserver!.observe(this._hostElement!, {childList: true});\n this._hostElementRO!.observe(this._hostElement!);\n this._scrollEventListeners.push(window);\n window.addEventListener('scroll', this, this._scrollEventListenerOptions);\n this._clippingAncestors.forEach((ancestor) => {\n ancestor.addEventListener(\n 'scroll',\n this,\n this._scrollEventListenerOptions\n );\n this._scrollEventListeners.push(ancestor);\n this._hostElementRO!.observe(ancestor);\n });\n this._hostElementRO!.observe(this._scrollerController!.element);\n this._children.forEach((child) => this._childrenRO!.observe(child));\n this._scrollEventListeners.forEach((target) =>\n target.addEventListener('scroll', this, this._scrollEventListenerOptions)\n );\n }\n\n disconnected() {\n this._scrollEventListeners.forEach((target) =>\n target.removeEventListener(\n 'scroll',\n this,\n this._scrollEventListenerOptions\n )\n );\n this._scrollEventListeners = [];\n this._clippingAncestors = [];\n this._scrollerController!.detach(this);\n this._scrollerController = null;\n this._mutationObserver!.disconnect();\n this._hostElementRO!.disconnect();\n this._childrenRO!.disconnect();\n this._rejectLayoutCompletePromise('disconnected');\n }\n\n private _applyVirtualizerStyles() {\n const hostElement = this._hostElement!;\n // Would rather set these CSS properties on the host using Shadow Root\n // style scoping (and falling back to a global stylesheet where native\n // Shadow DOM is not available), but this Mobile Safari bug is preventing\n // that from working: https://bugs.webkit.org/show_bug.cgi?id=226195\n const style = hostElement.style as CSSStyleDeclaration & {contain: string};\n style.display = style.display || 'block';\n style.position = style.position || 'relative';\n style.contain = style.contain || 'size layout';\n\n if (this._isScroller) {\n style.overflow = style.overflow || 'auto';\n style.minHeight = style.minHeight || '150px';\n }\n }\n\n _getSizer() {\n const hostElement = this._hostElement!;\n if (!this._sizer) {\n // Use a preexisting sizer element if provided (for better integration\n // with vDOM renderers)\n let sizer = hostElement.querySelector(\n `[${SIZER_ATTRIBUTE}]`\n ) as HTMLElement;\n if (!sizer) {\n sizer = document.createElement('div');\n sizer.setAttribute(SIZER_ATTRIBUTE, '');\n hostElement.appendChild(sizer);\n }\n // When the scrollHeight is large, the height of this element might be\n // ignored. Setting content and font-size ensures the element has a size.\n Object.assign(sizer.style, {\n position: 'absolute',\n margin: '-2px 0 0 0',\n padding: 0,\n visibility: 'hidden',\n fontSize: '2px',\n });\n sizer.textContent = ' ';\n sizer.setAttribute(SIZER_ATTRIBUTE, '');\n this._sizer = sizer;\n }\n return this._sizer;\n }\n\n async updateLayoutConfig(layoutConfig: LayoutConfigValue) {\n // If layout initialization hasn't finished yet, we wait\n // for it to finish so we can check whether the new config\n // is compatible with the existing layout before proceeding.\n await this._layoutInitialized;\n const Ctor =\n ((layoutConfig as LayoutSpecifier).type as LayoutConstructor) ||\n // The new config is compatible with the current layout,\n // so we update the config and return true to indicate\n // a successful update\n DefaultLayoutConstructor;\n if (typeof Ctor === 'function' && this._layout instanceof Ctor) {\n const config = {...(layoutConfig as LayoutSpecifier)} as {\n type?: LayoutConstructor;\n };\n delete config.type;\n this._layout.config = config as BaseLayoutConfig;\n // The new config requires a different layout altogether, but\n // to limit implementation complexity we don't support dynamically\n // changing the layout of an existing virtualizer instance.\n // Returning false here lets the caller know that they should\n // instead make a new virtualizer instance with the desired layout.\n return true;\n }\n return false;\n }\n\n private async _initLayout(layoutConfig: LayoutConfigValue) {\n let config: BaseLayoutConfig | undefined;\n let Ctor: LayoutConstructor | undefined;\n if (typeof (layoutConfig as LayoutSpecifier).type === 'function') {\n // If we have a full LayoutSpecifier, the `type` property\n // gives us our constructor...\n Ctor = (layoutConfig as LayoutSpecifier).type as LayoutConstructor;\n // ...while the rest of the specifier is our layout config\n const copy = {...(layoutConfig as LayoutSpecifier)} as {\n type?: LayoutConstructor;\n };\n delete copy.type;\n config = copy as BaseLayoutConfig;\n } else {\n // If we don't have a full LayoutSpecifier, we just\n // have a config for the default layout\n config = layoutConfig as BaseLayoutConfig;\n }\n\n if (Ctor === undefined) {\n // If we don't have a constructor yet, load the default\n DefaultLayoutConstructor = Ctor = (await import('./layouts/flow.js'))\n .FlowLayout as unknown as LayoutConstructor;\n }\n\n this._layout = new Ctor(\n (message: LayoutHostMessage) => this._handleLayoutMessage(message),\n config\n );\n\n if (\n this._layout.measureChildren &&\n typeof this._layout.updateItemSizes === 'function'\n ) {\n if (typeof this._layout.measureChildren === 'function') {\n this._measureChildOverride = this._layout.measureChildren;\n }\n this._measureCallback = this._layout.updateItemSizes.bind(this._layout);\n }\n\n if (this._layout.listenForChildLoadEvents) {\n this._hostElement!.addEventListener('load', this._loadListener, true);\n }\n\n this._schedule(this._updateLayout);\n }\n\n // TODO (graynorton): Rework benchmarking so that it has no API and\n // instead is always on except in production builds\n startBenchmarking() {\n if (this._benchmarkStart === null) {\n this._benchmarkStart = window.performance.now();\n }\n }\n\n stopBenchmarking() {\n if (this._benchmarkStart !== null) {\n const now = window.performance.now();\n const timeElapsed = now - this._benchmarkStart;\n const entries = performance.getEntriesByName(\n 'uv-virtualizing',\n 'measure'\n );\n const virtualizationTime = entries\n .filter(\n (e) => e.startTime >= this._benchmarkStart! && e.startTime < now\n )\n .reduce((t, m) => t + m.duration, 0);\n this._benchmarkStart = null;\n return {timeElapsed, virtualizationTime};\n }\n return null;\n }\n\n private _measureChildren(): void {\n const mm: ChildMeasurements = {};\n const children = this._children;\n const fn = this._measureChildOverride || this._measureChild;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n const idx = this._first + i;\n if (this._itemsChanged || this._toBeMeasured.has(child)) {\n mm[idx] = fn.call(this, child, this._items[idx]);\n }\n }\n this._childMeasurements = mm;\n this._schedule(this._updateLayout);\n this._toBeMeasured.clear();\n }\n\n /**\n * Returns the width, height, and margins of the given child.\n */\n _measureChild(element: Element): ItemBox {\n // offsetWidth doesn't take transforms in consideration, so we use\n // getBoundingClientRect which does.\n const {width, height} = element.getBoundingClientRect();\n return Object.assign({width, height}, getMargins(element));\n }\n\n protected async _schedule(method: Function): Promise {\n if (!this._scheduled.has(method)) {\n this._scheduled.add(method);\n await Promise.resolve();\n this._scheduled.delete(method);\n method.call(this);\n }\n }\n\n async _updateDOM(state: StateChangedMessage) {\n this._scrollSize = state.scrollSize;\n this._adjustRange(state.range);\n this._childrenPos = state.childPositions;\n this._scrollError = state.scrollError || null;\n const {_rangeChanged, _itemsChanged} = this;\n if (this._visibilityChanged) {\n this._notifyVisibility();\n this._visibilityChanged = false;\n }\n if (_rangeChanged || _itemsChanged) {\n this._notifyRange();\n this._rangeChanged = false;\n }\n this._finishDOMUpdate();\n }\n\n _finishDOMUpdate() {\n this._children.forEach((child) => this._childrenRO!.observe(child));\n this._checkScrollIntoViewTarget(this._childrenPos);\n this._positionChildren(this._childrenPos);\n this._sizeHostElement(this._scrollSize);\n this._correctScrollError();\n if (this._benchmarkStart && 'mark' in window.performance) {\n window.performance.mark('uv-end');\n }\n }\n\n _updateLayout() {\n if (this._layout) {\n this._layout!.items = this._items;\n this._updateView();\n if (this._childMeasurements !== null) {\n // If the layout has been changed, we may have measurements but no callback\n if (this._measureCallback) {\n this._measureCallback(this._childMeasurements);\n }\n this._childMeasurements = null;\n }\n this._layout!.reflowIfNeeded();\n if (this._benchmarkStart && 'mark' in window.performance) {\n window.performance.mark('uv-end');\n }\n }\n }\n\n private _handleScrollEvent() {\n if (this._benchmarkStart && 'mark' in window.performance) {\n try {\n window.performance.measure('uv-virtualizing', 'uv-start', 'uv-end');\n } catch (e) {\n console.warn('Error measuring performance data: ', e);\n }\n window.performance.mark('uv-start');\n }\n if (this._scrollerController!.correctingScrollError === false) {\n // This is a user-initiated scroll, so we unpin the layout\n this._layout?.unpin();\n }\n this._schedule(this._updateLayout);\n }\n\n handleEvent(event: CustomEvent) {\n switch (event.type) {\n case 'scroll':\n if (\n event.currentTarget === window ||\n this._clippingAncestors.includes(event.currentTarget as HTMLElement)\n ) {\n this._handleScrollEvent();\n }\n break;\n default:\n console.warn('event not handled', event);\n }\n }\n\n _handleLayoutMessage(message: LayoutHostMessage) {\n if (message.type === 'stateChanged') {\n this._updateDOM(message);\n } else if (message.type === 'visibilityChanged') {\n this._firstVisible = message.firstVisible;\n this._lastVisible = message.lastVisible;\n this._notifyVisibility();\n } else if (message.type === 'unpinned') {\n this._hostElement!.dispatchEvent(new UnpinnedEvent());\n }\n }\n\n get _children(): Array {\n const arr: Array = [];\n let next = this._hostElement!.firstElementChild as HTMLElement;\n while (next) {\n if (!next.hasAttribute(SIZER_ATTRIBUTE)) {\n arr.push(next);\n }\n next = next.nextElementSibling as HTMLElement;\n }\n return arr;\n }\n\n private _updateView() {\n const hostElement = this._hostElement;\n const scrollingElement = this._scrollerController?.element;\n const layout = this._layout;\n\n if (hostElement && scrollingElement && layout) {\n let top, left, bottom, right;\n\n const hostElementBounds = hostElement.getBoundingClientRect();\n\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n\n const ancestorBounds = this._clippingAncestors.map((ancestor) =>\n ancestor.getBoundingClientRect()\n );\n ancestorBounds.unshift(hostElementBounds);\n\n for (const bounds of ancestorBounds) {\n top = Math.max(top, bounds.top);\n left = Math.max(left, bounds.left);\n bottom = Math.min(bottom, bounds.bottom);\n right = Math.min(right, bounds.right);\n }\n\n const scrollingElementBounds = scrollingElement.getBoundingClientRect();\n\n const offsetWithinScroller = {\n left: hostElementBounds.left - scrollingElementBounds.left,\n top: hostElementBounds.top - scrollingElementBounds.top,\n };\n\n const totalScrollSize = {\n width: scrollingElement.scrollWidth,\n height: scrollingElement.scrollHeight,\n };\n\n const scrollTop = top - hostElementBounds.top + hostElement.scrollTop;\n const scrollLeft = left - hostElementBounds.left + hostElement.scrollLeft;\n\n const height = Math.max(1, bottom - top);\n const width = Math.max(1, right - left);\n\n layout.viewportSize = {width, height};\n layout.viewportScroll = {top: scrollTop, left: scrollLeft};\n layout.totalScrollSize = totalScrollSize;\n layout.offsetWithinScroller = offsetWithinScroller;\n }\n }\n\n /**\n * Styles the host element so that its size reflects the\n * total size of all items.\n */\n private _sizeHostElement(size?: Size | null) {\n // Some browsers seem to crap out if the host element gets larger than\n // a certain size, so we clamp it here (this value based on ad hoc\n // testing in Chrome / Safari / Firefox Mac)\n const max = 8200000;\n const h = size && size.width !== null ? Math.min(max, size.width) : 0;\n const v = size && size.height !== null ? Math.min(max, size.height) : 0;\n\n if (this._isScroller) {\n this._getSizer().style.transform = `translate(${h}px, ${v}px)`;\n } else {\n const style = this._hostElement!.style;\n (style.minWidth as string | null) = h ? `${h}px` : '100%';\n (style.minHeight as string | null) = v ? `${v}px` : '100%';\n }\n }\n\n /**\n * Sets the top and left transform style of the children from the values in\n * pos.\n */\n private _positionChildren(pos: ChildPositions | null) {\n if (pos) {\n pos.forEach(({top, left, width, height, xOffset, yOffset}, index) => {\n const child = this._children[index - this._first];\n if (child) {\n child.style.position = 'absolute';\n child.style.boxSizing = 'border-box';\n child.style.transform = `translate(${left}px, ${top}px)`;\n if (width !== undefined) {\n child.style.width = width + 'px';\n }\n if (height !== undefined) {\n child.style.height = height + 'px';\n }\n (child.style.left as string | null) =\n xOffset === undefined ? null : xOffset + 'px';\n (child.style.top as string | null) =\n yOffset === undefined ? null : yOffset + 'px';\n }\n });\n }\n }\n\n private async _adjustRange(range: InternalRange) {\n const {_first, _last, _firstVisible, _lastVisible} = this;\n this._first = range.first;\n this._last = range.last;\n this._firstVisible = range.firstVisible;\n this._lastVisible = range.lastVisible;\n this._rangeChanged =\n this._rangeChanged || this._first !== _first || this._last !== _last;\n this._visibilityChanged =\n this._visibilityChanged ||\n this._firstVisible !== _firstVisible ||\n this._lastVisible !== _lastVisible;\n }\n\n private _correctScrollError() {\n if (this._scrollError) {\n const {scrollTop, scrollLeft} = this._scrollerController!;\n const {top, left} = this._scrollError;\n this._scrollError = null;\n this._scrollerController!.correctScrollError({\n top: scrollTop - top,\n left: scrollLeft - left,\n });\n }\n }\n\n public element(index: number): VirtualizerChildElementProxy | undefined {\n if (index === Infinity) {\n index = this._items.length - 1;\n }\n return this._items?.[index] === undefined\n ? undefined\n : {\n scrollIntoView: (options: ScrollIntoViewOptions = {}) =>\n this._scrollElementIntoView({...options, index}),\n };\n }\n\n private _scrollElementIntoView(options: ScrollElementIntoViewOptions) {\n if (options.index >= this._first && options.index <= this._last) {\n this._children[options.index - this._first].scrollIntoView(options);\n } else {\n options.index = Math.min(options.index, this._items.length - 1);\n if (options.behavior === 'smooth') {\n const coordinates = this._layout!.getScrollIntoViewCoordinates(options);\n const {behavior} = options;\n this._updateScrollIntoViewCoordinates =\n this._scrollerController!.managedScrollTo(\n Object.assign(coordinates, {behavior}),\n () => this._layout!.getScrollIntoViewCoordinates(options),\n () => (this._scrollIntoViewTarget = null)\n );\n this._scrollIntoViewTarget = options;\n } else {\n this._layout!.pin = options;\n }\n }\n }\n\n /**\n * If we are smoothly scrolling to an element and the target element\n * is in the DOM, we update our target coordinates as needed\n */\n private _checkScrollIntoViewTarget(pos: ChildPositions | null) {\n const {index} = this._scrollIntoViewTarget || {};\n if (index && pos?.has(index)) {\n this._updateScrollIntoViewCoordinates!(\n this._layout!.getScrollIntoViewCoordinates(this._scrollIntoViewTarget!)\n );\n }\n }\n\n /**\n * Emits a rangechange event with the current first, last, firstVisible, and\n * lastVisible.\n */\n private _notifyRange() {\n this._hostElement!.dispatchEvent(\n new RangeChangedEvent({first: this._first, last: this._last})\n );\n }\n\n private _notifyVisibility() {\n this._hostElement!.dispatchEvent(\n new VisibilityChangedEvent({\n first: this._firstVisible,\n last: this._lastVisible,\n })\n );\n }\n\n public get layoutComplete(): Promise {\n // Lazily create promise\n if (!this._layoutCompletePromise) {\n this._layoutCompletePromise = new Promise((resolve, reject) => {\n this._layoutCompleteResolver = resolve;\n this._layoutCompleteRejecter = reject;\n });\n }\n return this._layoutCompletePromise!;\n }\n\n private _rejectLayoutCompletePromise(reason: string) {\n if (this._layoutCompleteRejecter !== null) {\n this._layoutCompleteRejecter!(reason);\n }\n this._resetLayoutCompleteState();\n }\n\n private _scheduleLayoutComplete() {\n // Don't do anything unless we have a pending promise\n // And only request a frame if we haven't already done so\n if (this._layoutCompletePromise && this._pendingLayoutComplete === null) {\n // Wait one additional frame to be sure the layout is stable\n this._pendingLayoutComplete = requestAnimationFrame(() =>\n requestAnimationFrame(() => this._resolveLayoutCompletePromise())\n );\n }\n }\n\n private _resolveLayoutCompletePromise() {\n if (this._layoutCompleteResolver !== null) {\n this._layoutCompleteResolver();\n }\n this._resetLayoutCompleteState();\n }\n\n private _resetLayoutCompleteState() {\n this._layoutCompletePromise = null;\n this._layoutCompleteResolver = null;\n this._layoutCompleteRejecter = null;\n this._pendingLayoutComplete = null;\n }\n\n /**\n * Render and update the view at the next opportunity with the given\n * hostElement size.\n */\n private _hostElementSizeChanged() {\n this._schedule(this._updateLayout);\n }\n\n // TODO (graynorton): Rethink how this works. Probably child loading is too specific\n // to have dedicated support for; might want some more generic lifecycle hooks for\n // layouts to use. Possibly handle measurement this way, too, or maybe that remains\n // a first-class feature?\n\n private _childLoaded() {}\n\n // This is the callback for the ResizeObserver that watches the\n // virtualizer's children. We land here at the end of every virtualizer\n // update cycle that results in changes to physical items, and we also\n // end up here if one or more children change size independently of\n // the virtualizer update cycle.\n private _childrenSizeChanged(changes: ResizeObserverEntry[]) {\n // Only measure if the layout requires it\n if (this._layout?.measureChildren) {\n for (const change of changes) {\n this._toBeMeasured.set(\n change.target as HTMLElement,\n change.contentRect\n );\n }\n this._measureChildren();\n }\n // If this is the end of an update cycle, we need to reset some\n // internal state. This should be a harmless no-op if we're handling\n // an out-of-cycle ResizeObserver callback, so we don't need to\n // distinguish between the two cases.\n this._scheduleLayoutComplete();\n this._itemsChanged = false;\n this._rangeChanged = false;\n }\n}\n\nfunction getMargins(el: Element): Margins {\n const style = window.getComputedStyle(el);\n return {\n marginTop: getMarginValue(style.marginTop),\n marginRight: getMarginValue(style.marginRight),\n marginBottom: getMarginValue(style.marginBottom),\n marginLeft: getMarginValue(style.marginLeft),\n };\n}\n\nfunction getMarginValue(value: string): number {\n const float = value ? parseFloat(value) : NaN;\n return Number.isNaN(float) ? 0 : float;\n}\n\n// TODO (graynorton): Deal with iframes?\nfunction getParentElement(el: Element) {\n if (el.assignedSlot !== null) {\n return el.assignedSlot;\n }\n if (el.parentElement !== null) {\n return el.parentElement;\n }\n const parentNode = el.parentNode;\n if (parentNode && parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n return (parentNode as ShadowRoot).host || null;\n }\n return null;\n}\n\n///\n\nfunction getElementAncestors(el: HTMLElement, includeSelf = false) {\n const ancestors: Array = [];\n let parent = includeSelf ? el : (getParentElement(el) as HTMLElement);\n while (parent !== null) {\n ancestors.push(parent);\n parent = getParentElement(parent) as HTMLElement;\n }\n return ancestors;\n}\n\nfunction getClippingAncestors(el: HTMLElement, includeSelf = false) {\n let foundFixed = false;\n return getElementAncestors(el, includeSelf).filter((a) => {\n if (foundFixed) {\n return false;\n }\n const style = getComputedStyle(a);\n foundFixed = style.position === 'fixed';\n return style.overflow !== 'visible';\n });\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {TemplateResult, ChildPart, html, noChange} from 'lit';\nimport {directive, DirectiveResult, PartInfo, PartType} from 'lit/directive.js';\nimport {AsyncDirective} from 'lit/async-directive.js';\nimport {repeat, KeyFn} from 'lit/directives/repeat.js';\nimport {Virtualizer} from './Virtualizer.js';\nimport {RangeChangedEvent} from './events.js';\nimport {LayoutConfigValue} from './layouts/shared/Layout.js';\n\nexport {virtualizerRef, VirtualizerHostElement} from './Virtualizer.js';\n\n/**\n * Configuration options for the virtualize directive.\n */\nexport interface VirtualizeDirectiveConfig {\n /**\n * A function that returns a lit-html TemplateResult. It will be used\n * to generate the DOM for each item in the virtual list.\n */\n renderItem?: RenderItemFunction;\n\n keyFunction?: KeyFn;\n\n scroller?: boolean;\n\n // TODO (graynorton): Document...\n layout?: LayoutConfigValue;\n\n /**\n * The list of items to display via the renderItem function.\n */\n items?: Array;\n}\n\nexport type RenderItemFunction = (\n item: T,\n index: number\n) => TemplateResult;\n\nexport const defaultKeyFunction: KeyFn = (item: unknown) => item;\nexport const defaultRenderItem: RenderItemFunction = (\n item: unknown,\n idx: number\n) => html`${idx}: ${JSON.stringify(item, null, 2)}`;\n\nclass VirtualizeDirective extends AsyncDirective {\n _virtualizer: Virtualizer | null = null;\n _first = 0;\n _last = -1;\n _renderItem: RenderItemFunction = (item: T, idx: number) =>\n defaultRenderItem(item, idx + this._first);\n _keyFunction: KeyFn = (item: T, idx: number) =>\n defaultKeyFunction(item, idx + this._first);\n _items: Array = [];\n\n constructor(part: PartInfo) {\n super(part);\n if (part.type !== PartType.CHILD) {\n throw new Error(\n 'The virtualize directive can only be used in child expressions'\n );\n }\n }\n\n render(config?: VirtualizeDirectiveConfig) {\n if (config) {\n this._setFunctions(config);\n }\n const itemsToRender: Array = [];\n\n if (this._first >= 0 && this._last >= this._first) {\n for (let i = this._first; i <= this._last; i++) {\n itemsToRender.push(this._items[i]);\n }\n }\n return repeat(itemsToRender, this._keyFunction, this._renderItem);\n }\n\n update(part: ChildPart, [config]: [VirtualizeDirectiveConfig]) {\n this._setFunctions(config);\n const itemsChanged = this._items !== config.items;\n this._items = config.items || [];\n if (this._virtualizer) {\n this._updateVirtualizerConfig(part, config);\n } else {\n this._initialize(part, config);\n }\n return itemsChanged ? noChange : this.render();\n }\n\n private async _updateVirtualizerConfig(\n part: ChildPart,\n config: VirtualizeDirectiveConfig\n ) {\n const compatible = await this._virtualizer!.updateLayoutConfig(\n config.layout || {}\n );\n if (!compatible) {\n const hostElement = part.parentNode as HTMLElement;\n this._makeVirtualizer(hostElement, config);\n }\n this._virtualizer!.items = this._items;\n }\n\n private _setFunctions(config: VirtualizeDirectiveConfig) {\n const {renderItem, keyFunction} = config;\n if (renderItem) {\n this._renderItem = (item, idx) => renderItem(item, idx + this._first);\n }\n if (keyFunction) {\n this._keyFunction = (item, idx) => keyFunction(item, idx + this._first);\n }\n }\n\n private _makeVirtualizer(\n hostElement: HTMLElement,\n config: VirtualizeDirectiveConfig\n ) {\n if (this._virtualizer) {\n this._virtualizer.disconnected();\n }\n const {layout, scroller, items} = config;\n this._virtualizer = new Virtualizer({hostElement, layout, scroller});\n this._virtualizer.items = items;\n this._virtualizer!.connected();\n }\n\n private _initialize(part: ChildPart, config: VirtualizeDirectiveConfig) {\n const hostElement = part.parentNode as HTMLElement;\n if (hostElement && hostElement.nodeType === 1) {\n hostElement.addEventListener('rangeChanged', (e: RangeChangedEvent) => {\n this._first = e.first;\n this._last = e.last;\n this.setValue(this.render());\n });\n this._makeVirtualizer(hostElement, config);\n }\n }\n\n disconnected() {\n this._virtualizer?.disconnected();\n }\n\n reconnected() {\n this._virtualizer?.connected();\n }\n}\n\nexport const virtualize = directive(VirtualizeDirective) as (\n config?: VirtualizeDirectiveConfig\n) => DirectiveResult;\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {html, LitElement} from 'lit';\nimport {property} from 'lit/decorators/property.js';\nimport {KeyFn} from 'lit/directives/repeat.js';\nimport {LayoutConfigValue} from './layouts/shared/Layout.js';\nimport {\n virtualize,\n virtualizerRef,\n VirtualizerHostElement,\n defaultRenderItem,\n defaultKeyFunction,\n RenderItemFunction,\n} from './virtualize.js';\n\nexport class LitVirtualizer extends LitElement {\n @property({attribute: false})\n items: T[] = [];\n\n @property()\n renderItem: RenderItemFunction = defaultRenderItem;\n\n @property()\n keyFunction: KeyFn = defaultKeyFunction;\n\n @property({attribute: false})\n layout: LayoutConfigValue = {};\n\n @property({reflect: true, type: Boolean})\n scroller = false;\n\n createRenderRoot() {\n return this;\n }\n\n render() {\n const {items, renderItem, keyFunction, layout, scroller} = this;\n return html`${virtualize({\n items,\n renderItem,\n keyFunction,\n layout,\n scroller,\n })}`;\n }\n\n element(index: number) {\n return (this as VirtualizerHostElement)[virtualizerRef]?.element(index);\n }\n\n get layoutComplete() {\n return (this as VirtualizerHostElement)[virtualizerRef]?.layoutComplete;\n }\n\n /**\n * This scrollToIndex() shim is here to provide backwards compatibility with other 0.x versions of\n * lit-virtualizer. It is deprecated and will likely be removed in the 1.0.0 release.\n */\n scrollToIndex(\n index: number,\n position: 'start' | 'center' | 'end' | 'nearest' = 'start'\n ) {\n this.element(index)?.scrollIntoView({block: position});\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {LitVirtualizer} from './LitVirtualizer.js';\nexport {LitVirtualizer};\nexport {RangeChangedEvent, VisibilityChangedEvent} from './events.js';\n\n/**\n * Import this module to declare the lit-virtualizer custom element.\n */\ncustomElements.define('lit-virtualizer', LitVirtualizer);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lit-virtualizer': LitVirtualizer;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// Any new exports need to be added to the export statement in\n// `packages/lit/src/index.all.ts`.\n\nimport {html as coreHtml, svg as coreSvg, TemplateResult} from './lit-html.js';\n\nexport interface StaticValue {\n /** The value to interpolate as-is into the template. */\n _$litStatic$: string;\n\n /**\n * A value that can't be decoded from ordinary JSON, make it harder for\n * a attacker-controlled data that goes through JSON.parse to produce a valid\n * StaticValue.\n */\n r: typeof brand;\n}\n\n/**\n * Prevents JSON injection attacks.\n *\n * The goals of this brand:\n * 1) fast to check\n * 2) code is small on the wire\n * 3) multiple versions of Lit in a single page will all produce mutually\n * interoperable StaticValues\n * 4) normal JSON.parse (without an unusual reviver) can not produce a\n * StaticValue\n *\n * Symbols satisfy (1), (2), and (4). We use Symbol.for to satisfy (3), but\n * we don't care about the key, so we break ties via (2) and use the empty\n * string.\n */\nconst brand = Symbol.for('');\n\n/** Safely extracts the string part of a StaticValue. */\nconst unwrapStaticValue = (value: unknown): string | undefined => {\n if ((value as Partial)?.r !== brand) {\n return undefined;\n }\n return (value as Partial)?.['_$litStatic$'];\n};\n\n/**\n * Wraps a string so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Note that this function is unsafe to use on untrusted content, as it will be\n * directly parsed into HTML. Do not pass user input to this function\n * without sanitizing it.\n *\n * Static values can be changed, but they will cause a complete re-render\n * since they effectively create a new template.\n */\nexport const unsafeStatic = (value: string): StaticValue => ({\n ['_$litStatic$']: value,\n r: brand,\n});\n\nconst textFromStatic = (value: StaticValue) => {\n if (value['_$litStatic$'] !== undefined) {\n return value['_$litStatic$'];\n } else {\n throw new Error(\n `Value passed to 'literal' function must be a 'literal' result: ${value}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`\n );\n }\n};\n\n/**\n * Tags a string literal so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * The only values that may be used in template expressions are other tagged\n * `literal` results or `unsafeStatic` values (note that untrusted content\n * should never be passed to `unsafeStatic`).\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Static values can be changed, but they will cause a complete re-render since\n * they effectively create a new template.\n */\nexport const literal = (\n strings: TemplateStringsArray,\n ...values: unknown[]\n): StaticValue => ({\n ['_$litStatic$']: values.reduce(\n (acc, v, idx) => acc + textFromStatic(v as StaticValue) + strings[idx + 1],\n strings[0]\n ) as string,\n r: brand,\n});\n\nconst stringsCache = new Map();\n\n/**\n * Wraps a lit-html template tag (`html` or `svg`) to add static value support.\n */\nexport const withStatic =\n (coreTag: typeof coreHtml | typeof coreSvg) =>\n (strings: TemplateStringsArray, ...values: unknown[]): TemplateResult => {\n const l = values.length;\n let staticValue: string | undefined;\n let dynamicValue: unknown;\n const staticStrings: Array = [];\n const dynamicValues: Array = [];\n let i = 0;\n let hasStatics = false;\n let s: string;\n\n while (i < l) {\n s = strings[i];\n // Collect any unsafeStatic values, and their following template strings\n // so that we treat a run of template strings and unsafe static values as\n // a single template string.\n while (\n i < l &&\n ((dynamicValue = values[i]),\n (staticValue = unwrapStaticValue(dynamicValue))) !== undefined\n ) {\n s += staticValue + strings[++i];\n hasStatics = true;\n }\n // If the last value is static, we don't need to push it.\n if (i !== l) {\n dynamicValues.push(dynamicValue);\n }\n staticStrings.push(s);\n i++;\n }\n // If the last value isn't static (which would have consumed the last\n // string), then we need to add the last string.\n if (i === l) {\n staticStrings.push(strings[l]);\n }\n\n if (hasStatics) {\n const key = staticStrings.join('$$lit$$');\n strings = stringsCache.get(key)!;\n if (strings === undefined) {\n // Beware: in general this pattern is unsafe, and doing so may bypass\n // lit's security checks and allow an attacker to execute arbitrary\n // code and inject arbitrary content.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (staticStrings as any).raw = staticStrings;\n stringsCache.set(\n key,\n (strings = staticStrings as unknown as TemplateStringsArray)\n );\n }\n values = dynamicValues;\n }\n return coreTag(strings, ...values);\n };\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const html = withStatic(coreHtml);\n\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const svg = withStatic(coreSvg);\n","import '@lit-labs/virtualizer';\nimport { LitElement, TemplateResult, html } from 'lit';\nimport { property, state } from 'lit/decorators';\nimport { unsafeStatic, withStatic } from 'lit/static-html.js';\n\nexport default class VirtualizedList extends LitElement {\n\t@property()\n\tinnerStyle?: string;\n\t@property()\n\tscroller?: boolean;\n\n\t@state()\n\tprotected _slottedHTML: TemplateResult[] = [];\n\n\tprotected render() {\n\t\treturn html`\n\t\t\t i}> \n\t\t\t\n\t\t`;\n\t}\n\n\thandleSlotchange(e: Event) {\n\t\tconst slot = e.target as HTMLSlotElement;\n\t\tconst newNodes = slot?.assignedElements({ flatten: true }).map((e) => withStatic(html)`${unsafeStatic(e.outerHTML)}`);\n\t\tif (!newNodes || !newNodes.length) return;\n\t\tthis._slottedHTML = newNodes;\n\t\t// console.log(\"slotted\", this._slottedHTML.length);\n\t\tslot.remove();\n\t}\n}\n","import AudioPlayer from './web-components/audio-player/player';\nimport AudioTrimmerInput from './web-components/audio-trimmer/AudioTrimmerInput';\nimport DrawingInput from './web-components/drawing/DrawingInput';\nimport VideoPlayer from './web-components/video-player/player';\nimport VirtualizedList from './web-components/virtual-list/virtual-list';\n\nwindow.customElements.define('audio-trimmer-input', AudioTrimmerInput);\nwindow.customElements.define('drawing-input', DrawingInput);\nwindow.customElements.define('audio-player', AudioPlayer);\nwindow.customElements.define('video-player', VideoPlayer);\nwindow.customElements.define('virtualized-list', VirtualizedList);\n","import type htmxType from 'htmx.org';\n\nimport 'htmx.org/dist/ext/ajax-header.js';\nimport 'htmx.org/dist/ext/class-tools.js';\nimport 'htmx.org/dist/ext/disable-element.js';\nimport 'htmx.org/dist/ext/event-header.js';\nimport 'htmx.org/dist/ext/head-support.js';\nimport 'htmx.org/dist/ext/json-enc.js';\nimport 'htmx.org/dist/ext/loading-states.js';\nimport 'htmx.org/dist/ext/method-override.js';\nimport 'htmx.org/dist/ext/morphdom-swap.js';\nimport 'htmx.org/dist/ext/multi-swap.js';\nimport 'htmx.org/dist/ext/path-deps.js';\nimport 'htmx.org/dist/ext/preload.js';\nimport 'htmx.org/dist/ext/remove-me.js';\nimport 'htmx.org/dist/ext/restored.js';\nimport 'htmx.org/dist/ext/sse.js';\nimport 'htmx.org/dist/ext/ws.js';\n\nimport './custom-elements';\n\nconst htmx = (window as any).htmx as typeof htmxType;\nhtmx.config.allowEval = false;\n// this enables cookies to be used\nhtmx.config.withCredentials = true;\n// htmx.config.requestClass = 'grouprequestActive';\n// htmx.config.defaultSwapStyle = 'morphdom';\n// (htmx.config as any).inlineScriptNonce = 'myscript'; // wrong types :(\n// htmx.config.getCacheBusterParam\n\nconst Twitch = window.Twitch;\nlet twitchAuth: Twitch.ext.Authorized | undefined;\nlet twitchCtx: Partial | undefined;\nlet twitchExtVisible: boolean | undefined;\nif (Twitch) {\n\t// https://dev.twitch.tv/docs/extensions/reference#javascript-helper\n\tTwitch.ext.onContext((ctx) => {\n\t\ttwitchCtx = { ...twitchCtx, ...ctx };\n\t\t// segment.setStreamInfo(ctx);\n\t\tTwitch.ext.onVisibilityChanged((visible: boolean) => {\n\t\t\ttwitchExtVisible = visible;\n\t\t});\n\t});\n\tTwitch.ext.onAuthorized((auth) => {\n\t\t//console.log(\"The JWT that will be passed to the EBS is\", auth.token);\n\t\t//console.log(\"The channel ID is\", auth.channelId);\n\t\ttwitchAuth = auth;\n\t\thtmx.trigger(window.document.body, 'tangiaTwitchAuth', {});\n\t\tTwitch.ext.onContext((ctx) => {\n\t\t\ttwitchCtx = { ...twitchCtx, ...ctx };\n\t\t\t// segment.setStreamInfo(ctx);\n\t\t\tTwitch.ext.onVisibilityChanged((visible: boolean) => {\n\t\t\t\ttwitchExtVisible = visible;\n\t\t\t});\n\t\t});\n\t});\n}\n\n/*\nvar requestConfig = {\n boosted: eltIsBoosted,\n parameters: filteredParameters,\n unfilteredParameters: allParameters,\n headers:headers,\n target:target,\n verb:verb,\n errors:errors,\n withCredentials: etc.credentials || requestAttrValues.credentials || htmx.config.withCredentials,\n timeout: etc.timeout || requestAttrValues.timeout || htmx.config.timeout,\n path:path,\n triggeringEvent:event\n};\n*/\n// this hooks into all HTMX requests and modifies them\ndocument.body.addEventListener('htmx:configRequest', function (evt: any) {\n\tif (evt.detail.path.startsWith('/')) {\n\t\t// staging\n\t\tif (window.location.href.includes('m1sy1tatqtoy9lesb0qgrta1kfs8c2')) {\n\t\t\tevt.detail.path = 'https://staging.tangiatwitchext.pages.dev' + evt.detail.path;\n\t\t} else if (window.location.href.includes('127.0.0.1') || window.location.href.includes('localhost') || window.location.href.includes('twitch-ext-local') ) {\n\t\t\t// keep relative during development\n\t\t} else {\n\t\t\t// default to production\n\t\t\tevt.detail.path = 'https://tangiatwitchext-frontend.cf.tangia.co' + evt.detail.path;\n\t\t}\n\t}\n\tevt.detail.headers['Authorization'] = 'Bearer ' + (twitchAuth?.token || 'MISSING-TOKEN');\n\tevt.detail.headers['X-Twitch-Features'] = JSON.stringify(Twitch?.ext?.features || {});\n\tevt.detail.headers['X-Twitch-Context'] = JSON.stringify(twitchCtx || {});\n\tevt.detail.headers['X-Twitch-Visible'] = `${twitchExtVisible}`;\n\n\t// workaround for https://github.com/bigskysoftware/htmx/issues/1323\n\tif (evt.target.tagName === 'FORM') {\n\t\tconst formData = new FormData(evt.target); // this triggers a formdata event, which is handled by our custom elements\n\t\t// add the form data as request parameters\n\t\tfor (const pair of formData.entries()) {\n\t\t\tconst name = pair[0];\n\t\t\tconst value = pair[1];\n\t\t\tconst parameters = evt.detail.parameters;\n\t\t\t// for multivalued form fields, FormData.entries() may contain multiple entries with the same name\n\t\t\tif (parameters[name] == null) {\n\t\t\t\tparameters[name] = [value]; // single element array\n\t\t\t} else if (Array.isArray(parameters[name]) && !parameters[name].includes(value)) {\n\t\t\t\tparameters[name].push(value);\n\t\t\t}\n\t\t}\n\t}\n});\n\n// extension that passes through event details. Useful for custom events like the twitch purchase\nhtmx.defineExtension('event-detail-header', {\n\tonEvent: function (name, evt) {\n\t\tif (name === 'htmx:configRequest') {\n\t\t\tif (evt.detail.triggeringEvent) {\n\t\t\t\tconst { elt, ...eventDetails } = evt.detail.triggeringEvent.detail || {};\n\t\t\t\tevt.detail.headers['X-Event-Details'] = JSON.stringify(eventDetails);\n\t\t\t}\n\t\t}\n\t},\n});\n\n// each new img gets a fallback\ndocument.body.addEventListener('htmx:afterProcessNode', function (evt: any) {\n\t(evt.detail.elt as HTMLElement).querySelectorAll('img').forEach((img) => {\n\t\tconst fallbackCSS = img.getAttribute('data-fallback-css');\n\t\tif (fallbackCSS === null) {\n\t\t\treturn;\n\t\t}\n\t\timg.addEventListener('error', function () {\n\t\t\timg.classList.add(...fallbackCSS.split(' '));\n\t\t});\n\t});\n});\n\ndocument.body.addEventListener('htmx:swapError', function (evt: any) {\n\tconsole.error('swapError', evt);\n});\ndocument.body.addEventListener('htmx:targetError', function (evt: any) {\n\tconsole.error('targetError', evt);\n});\ndocument.body.addEventListener('htmx:oobErrorNoTarget', function (evt: any) {\n\tconsole.error('targetError', evt);\n});\n\ndocument.body.addEventListener('tangia:buyTwitchProduct', async function (evt: any) {\n\tconsole.log('tangia:buyTwitchProduct', evt.detail);\n\ttry {\n\t\twindow.document.body.classList.add('opacity-50');\n\t\t// segment?.track(\"Ext Purchase Started\", { interaction: i, interactionInfo, buyerVars });\n\t\tconst bitsTransaction = new Promise((complete, cancel) => {\n\t\t\tTwitch.ext.bits.onTransactionComplete(complete);\n\t\t\tTwitch.ext.bits.onTransactionCancelled(cancel);\n\t\t});\n\t\tTwitch.ext.bits.useBits(evt.detail.ProductID);\n\t\t// this contains the signed JWT of the buy transaction\n\t\tconst tx = await bitsTransaction;\n\t\thtmx.trigger(window.document.body, 'tangia:purchaseCompleted', { ...evt.detail, ...tx });\n\t\t// segment?.track(\"Ext Purchase Completed\", { interaction: i, interactionInfo, buyerVars, product: p });\n\t} catch (e: any) {\n\t\thtmx.trigger(window.document.body, 'tangia:purchaseCancelled', { ...evt.detail, ...e });\n\n\t\t// segment?.track(\"Ext Purchase Failed\", { interaction: i, interactionInfo, buyerVars, error: e });\n\t} finally {\n\t\twindow.document.body.classList.remove('opacity-50');\n\t\tTwitch.ext.bits.onTransactionComplete(() => {});\n\t\tTwitch.ext.bits.onTransactionCancelled(() => {});\n\t}\n});\n\ndocument.body.addEventListener('tangia:purchaseCompleted', async function (evt: any) {\n\t// console.log('tangia:purchaseCompleted', evt.detail);\n});\n\ndocument.body.addEventListener('tangia:purchaseCancelled', async function (evt: any) {\n\tconsole.log('tangia:purchaseCancelled', evt.detail);\n});\n\ndocument.body.addEventListener('tangia:requestIdShare', async function (evt: any) {\n\tconsole.log('tangia:requestIdShare');\n\tTwitch.ext.actions.requestIdShare();\n});\n"],"names":["api","$18c11f3350a906ea$export$6503ec6e8aabbaf","$18c11f3350a906ea$export$f7ad0328861e2f03","$18c11f3350a906ea$var$mapping","pairs","keys","Object","i","length","id","resolved","Error","$cf82e2ef667d5788$var$emptyFunction","$cf82e2ef667d5788$var$emptyFunctionWithReset","resetWarningCache","module","exports","shim","props","propName","componentName","location","propFullName","secret","$kZO5c","err","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","import","parcelRequire","resolve","then","register","JSON","parse","htmx","defineExtension","onEvent","evt","detail","headers","parseClassOperation","trimmedValue","split","cssClass","delay","operation","classDef","trim","indexOf","splitCssClass","parseInterval","performOperation","elt","classOperation","classList","currentRunTime","setTimeout","call","toggleOperation","setInterval","maybeProcessClasses","getAttribute","runs","classOperations","j","processClassList","querySelectorAll","children","target","targetElement","document","querySelector","disabled","triggeringEvent","event","obj","key","stringify","value","Node","nodeRep","tagName","toLowerCase","toString","replace","Window","stringifyEvent","mergeHead","newContent","defaultMergeStrategy","htmlDoc","createElement","headTag","match","added","removed","preserved","nodesToAppend","innerHTML","newHeadTag","currentHead","head","srcToNewHeadNodes","Map","newHeadChild","set","outerHTML","mergeStrategy","getAttributeValue","currentHeadElt","inNewContent","has","isReAppended","isPreserved","push","delete","triggerEvent","body","headElement","values","newNode","newElt","createRange","createContextualFragment","appendChild","removedElement","removeChild","kept","init","apiRef","on","serverResponse","xhr","response","boosted","cacheMiss","item","encodeParameters","parameters","overrideMimeType","loadingStatesUndoQueue","mayProcessUndoCallback","callback","contains","queueLoadingState","sourceElt","targetElt","doCallback","undoCallback","delayElt","closest","delayInMilliseconds","timeout","clearTimeout","getLoadingStateElts","loadingScope","type","path","Array","from","findAll","filter","requestPath","pathElt","mayProcessLoadingStateByPath","getLoadingTarget","container","loadingStateEltsByType","forEach","pathInfo","style","display","classNames","className","add","remove","setAttribute","removeAttribute","shift","method","verb","toUpperCase","isInlineSwap","swapStyle","handleSwap","fragment","nodeType","DOCUMENT_FRAGMENT_NODE","morphdom","firstElementChild","settleInfo","selectorToSwapStyle","elements","selector","map","elementSelector","elementSwapStyle","charAt","console","error","elementToSwap","oobSwap","warn","undefined","dependsOn","pathSpec","url","dependencyPath","urlPath","dependencyElement","refreshPath","eltsWithDeps","trigger","config","requestConfig","this","PathDeps","refresh","attr","property","parentElement","load","done","html","preloadAlways","preloadState","hxGet","ajax","source","handler","info","responseText","r","XMLHttpRequest","open","onload","send","always","addEventListener","window","maybeRemoveMe","timing","restoredElts","foundElt","find","x","createEventSource","EventSource","withCredentials","splitOnWhitespace","createEventSourceOnElement","retryCount","internalData","getInternalData","sseURL","legacyURL","legacySSEValue","getLegacySSEURL","sseEventSource","onerror","triggerErrorEvent","maybeCloseSSESource","readyState","CLOSED","Math","random","min","onopen","queryAttributeOnThisOrChildren","child","sseSwapAttr","sseEventNames","returnArr","getLegacySSESwaps","sseEventName","listener","removeEventListener","swap","data","sseEventListener","slice","bodyContains","close","attributeName","result","hasAttribute","content","withExtensions","extension","transformResponse","swapSpec","getSwapSpecification","getTarget","makeSettleInfo","selectAndSwap","elts","settlingClass","settleDelay","doSettle","tasks","task","hasWebSocket","webSocket","maybeCloseWebSocketSource","createWebSocket","sock","WebSocket","binaryType","wsBinaryType","arr","wsReconnectDelay","parent","socketElt","wssSource","legacySource","getLegacyWebsocketURL","base_part","hostname","port","protocol","socketWrapper","socketFunc","wrapper","socket","messageQueue","events","sendImmediately","message","sendElt","publicInterface","OPEN","handleQueuedMessages","queuedItem","e","onclose","code","exp","pow","logError","getWebSocketReconnectDelay","k","bind","queue","createWebsocketWrapper","makeFragment","settleImmediately","ensureWebSocket","legacyAttribute","getClosestMatch","nodeData","getTriggerSpecs","ts","addTriggerHandler","getHeaders","results","getInputValues","errors","rawParameters","expressionVars","getExpressionVars","allParameters","mergeObjects","sendConfig","filterValues","unfilteredParameters","messageBody","toSend","assign","shouldCancel","preventDefault","ensureWebSocketSend","$5c96a02c592fcff1$export$29e00dfd3077644b","decorators","desc","d","c","arguments","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","create","SuppressedError","global","supportsAdoptingStyleSheets","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","constructionToken","Symbol","cssTagCache","WeakMap","CSSResult","constructor","cssText","strings","safeToken","_$cssResult$","_strings","styleSheet","_styleSheet","cacheable","get","replaceSync","unsafeCSS","String","css","reduce","acc","v","idx","adoptStyles","renderRoot","styles","adoptedStyleSheets","s","nonce","litNonce","textContent","getCompatibleStyle","sheet","rule","cssRules","$27fcf98b67c2a783$var$s","trustedTypes","emptyStringForBooleanAttribute","emptyScript","polyfillSupport","reactiveElementPolyfillSupport","defaultConverter","toAttribute","Boolean","fromAttribute","fromValue","Number","notEqual","old","defaultPropertyDeclaration","attribute","converter","reflect","hasChanged","finalized","ReactiveElement","HTMLElement","super","__instanceProperties","isUpdatePending","hasUpdated","__reflectingProperty","_initialize","static","initializer","finalize","_a","_initializers","observedAttributes","attributes","elementProperties","p","__attributeNameForProperty","__attributeToPropertyMap","options","state","noAccessor","hasOwnProperty","descriptor","getPropertyDescriptor","oldValue","requestUpdate","configurable","enumerable","superCtor","getPrototypeOf","properties","propKeys","getOwnPropertyNames","getOwnPropertySymbols","createProperty","elementStyles","finalizeStyles","isArray","Set","flat","Infinity","reverse","unshift","__updatePromise","Promise","res","enableUpdating","_$changedProperties","__saveInstanceProperties","addController","controller","__controllers","isConnected","_b","hostConnected","removeController","splice","_v","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","_requestedUpdate","disconnectedCallback","hostDisconnected","attributeChangedCallback","_old","_$attributeToProperty","__propertyToAttribute","attrValue","ctor","getPropertyOptions","shouldRequestUpdate","__reflectingProperties","__enqueueUpdate","async","reject","scheduleUpdate","performUpdate","shouldUpdate","changedProperties","willUpdate","hostUpdate","update","__markUpdated","_$didUpdate","_changedProperties","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","$e5ed8027d647799b$var$t","mode","_d","reactiveElementVersions","policy","createPolicy","createHTML","boundAttributeSuffix","marker","markerMatch","nodeMarker","createMarker","createComment","isPrimitive","isIterable","iterator","SPACE_CHAR","textEndRegex","commentEndRegex","comment2EndRegex","tagEndRegex","RegExp","singleQuoteAttrEndRegex","doubleQuoteAttrEndRegex","rawTextElement","tag","_$litType$","svg","noChange","for","nothing","templateCache","walker","createTreeWalker","trustFromTemplateString","tsa","stringFromTSA","getTemplateHtml","l","attrNames","rawTextEndRegex","regex","attrName","attrNameEndIndex","lastIndex","exec","test","end","startsWith","Template","parts","nodeIndex","attrNameIndex","partCount","el","currentNode","svgElement","firstChild","append","childNodes","nextNode","hasAttributes","attrsToRemove","getAttributeNames","endsWith","realName","statics","m","index","PropertyPart","BooleanAttributePart","EventPart","AttributePart","_options","resolveDirective","part","attributeIndex","currentDirective","__directives","__directive","nextDirectiveConstructor","_$litDirective$","_$AO","_$initialize","_c","_$resolve","TemplateInstance","template","_$parts","_$disconnectableChildren","_$template","_$parent","parentNode","_$isConnected","_clone","creationScope","importNode","partIndex","templatePart","ChildPart","nextSibling","ElementPart","_update","_$setValue","startNode","endNode","_$committedValue","_$startNode","_$endNode","__isConnected","directiveParent","_$clear","_commitText","_commitTemplateResult","_commitNode","_commitIterable","_insert","insertBefore","createTextNode","_$getTemplate","h","instance","itemParts","itemPart","start","_$notifyConnectionChanged","n","setConnected","fill","valueIndex","noCommit","change","_commitValue","newListener","oldListener","shouldRemoveListener","capture","once","passive","shouldAddListener","handleEvent","host","_$LH","_boundAttributeSuffix","_marker","_markerMatch","_HTML_RESULT","_getTemplateHtml","_TemplateInstance","_isIterable","_resolveDirective","_ChildPart","_AttributePart","_BooleanAttributePart","_EventPart","_PropertyPart","_ElementPart","litHtmlPolyfillSupport","litHtmlVersions","render","partOwnerNode","renderBefore","_$litPart$","$fe586ba0757c37f7$var$l","$fe586ba0757c37f7$var$o","LitElement","renderOptions","__childPart","_$litElement$","globalThis","litElementHydrateSupport","litElementPolyfillSupport","litElementVersions","standardProperty","kind","finisher","clazz","placement","originalKey","legacyProperty","proto","protoOrDescriptor","decorateProperty","query","cache","o","t","$43ca3aec390b0561$var$n","HTMLSlotElement","assignedElements","$2078bf130028ea66$export$2e2bcd8739ae039","$fe586ba0757c37f7$export$3f2f9f5909897157","playing","$3233927aa82734f9$export$dbf350e5966cf602","$3233927aa82734f9$export$8d80f9cac07cdb3","$e5ed8027d647799b$export$c0bb0b647f701bb5","preload","src","pause","play","stopImmediatePropagation","_audio","$b2fdcbe153c88f81$export$d541bacb2bda4494","$7162e77b40ffab5c$export$ca000e230c0caa3e","$10a410638b7df95b$export$2fa187e846a241c4","vnodeId","rerenderQueue","prevDebounce","defer","depthSort","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","removeNode","ref","normalizedProps","defaultProps","createVNode","original","vnode","__k","__","__b","__e","__d","__c","__h","__v","Fragment","Component","context","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","process","__r","debounceRendering","renderQueueLength","component","commitQueue","oldVNode","oldDom","parentDom","sort","__P","diff","__n","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","reorderChildren","placeChild","getLastDom","unmount","applyRef","tmp","toChildArray","out","some","nextDom","sibDom","outer","lastDom","setStyle","setProperty","dom","useCapture","eventProxyCapture","eventProxy","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","renderHook","count","newType","contextType","__E","doRender","sub","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","oldHtml","newHtml","localName","createElementNS","is","dangerouslySetInnerHTML","__html","hydrate","diffProps","checked","diffElementNodes","diffed","root","cb","current","parentVNode","skipRemove","componentWillUnmount","replaceNode","cloneElement","errorInfo","handled","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","a","b","currentIndex","currentComponent","previousComponent","prevRaf","currentHook","afterPaintEffects","EMPTY","oldBeforeDiff","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","getHookState","hooks","__H","__V","useState","initialState","useReducer","invokeOrReturn","reducer","hookState","_reducer","action","currentValue","__N","nextValue","_hasScuFromHooks","updateHookState","stateHooks","every","prevScu","hookItem","prevCWU","useEffect","args","argsChanged","_pendingArgs","useLayoutEffect","useRef","initialValue","useMemo","useImperativeHandle","createHandle","concat","factory","flushAfterPaintEffects","invokeCleanup","invokeEffect","requestAnimationFrame","afterNextFrame","hasErrored","HAS_RAF","raf","cancelAnimationFrame","hook","comp","cleanup","oldArgs","newArgs","arg","f","shallowDiffers","y","PureComponent","isPureReactComponent","oldDiffHook","__f","REACT_FORWARD_SYMBOL","forwardRef","fn","Forwarded","clone","$$typeof","isReactComponent","displayName","mapFn","Children","only","normalized","toArray","oldCatchError","oldUnmount","detachedClone","detachedParent","effect","removeOriginal","originalParent","Suspense","__u","_suspenders","suspended","__a","SuspenseList","_next","_map","__R","promise","suspendingVNode","suspendingComponent","onResolved","onSuspensionComplete","suspendedVNode","pop","wasHydrating","detachedComponent","__O","fallback","list","revealOrder","size","ContextProvider","Portal","_this","_container","_temp","before","delegated","unsuspend","wrappedUnsuspend","REACT_ELEMENT_TYPE","CAMEL_PROPS","ON_ANI","CAMEL_REPLACE","IS_DOM","onChangeInputType","preactRender","writable","oldEventHook","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","persist","nativeEvent","classNameDescriptorNonEnumberable","class","oldVNodeHook","lowerCased","multiple","selected","defaultValue","oldDiffed","isValidElement","startTransition","useId","__m","mask","useInsertionEffect","useTransition","useDeferredValue","val","useSyncExternalStore","subscribe","getSnapshot","_useState","_instance","_getSnapshot","useCallback","useContext","useDebugValue","formatter","version","preactHydrate","unmountComponentAtNode","createPortal","containerInfo","createContext","contextId","Consumer","contextValue","Provider","subs","ctx","_props","createFactory","preactCloneElement","apply","createRef","findDOMNode","memo","comparer","nextProps","updateRef","Memoed","flushSync","unstable_batchedUpdates","StrictMode","lazy","loader","prom","Lazy","default","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","readContext","$d8206b3ab2e65c05$export$da79f048408b1722","prefix","iconName","icon","$d8206b3ab2e65c05$export$436587205947bca5","$d8206b3ab2e65c05$export$1cbf6e649ce86166","$d8206b3ab2e65c05$export$3d249b63b52cce7c","$a43d996a7aa8a839$var$ownKeys","enumerableOnly","symbols","sym","$a43d996a7aa8a839$var$_objectSpread2","$a43d996a7aa8a839$var$_defineProperty","getOwnPropertyDescriptors","defineProperties","$a43d996a7aa8a839$var$_typeof","$a43d996a7aa8a839$var$_defineProperties","$a43d996a7aa8a839$var$_slicedToArray","$a43d996a7aa8a839$var$_arrayWithHoles","_i","_s","_e","_arr","_n","next","$a43d996a7aa8a839$var$_iterableToArrayLimit","$a43d996a7aa8a839$var$_unsupportedIterableToArray","TypeError","$a43d996a7aa8a839$var$_nonIterableRest","$a43d996a7aa8a839$var$_toConsumableArray","$a43d996a7aa8a839$var$_arrayLikeToArray","$a43d996a7aa8a839$var$_arrayWithoutHoles","iter","$a43d996a7aa8a839$var$_iterableToArray","$a43d996a7aa8a839$var$_nonIterableSpread","minLen","len","arr2","$a43d996a7aa8a839$var$noop","$a43d996a7aa8a839$var$_WINDOW","$a43d996a7aa8a839$var$_DOCUMENT","$a43d996a7aa8a839$var$_MUTATION_OBSERVER","$a43d996a7aa8a839$var$_PERFORMANCE","mark","measure","MutationObserver","performance","$a43d996a7aa8a839$var$_familyProxy","$a43d996a7aa8a839$var$_familyProxy2","$a43d996a7aa8a839$var$_familyProxy3","$a43d996a7aa8a839$var$_familyProxy4","$a43d996a7aa8a839$var$_familyProxy5","$a43d996a7aa8a839$var$_ref$userAgent","navigator","userAgent","$a43d996a7aa8a839$var$userAgent","$a43d996a7aa8a839$var$WINDOW","$a43d996a7aa8a839$var$DOCUMENT","$a43d996a7aa8a839$var$MUTATION_OBSERVER","$a43d996a7aa8a839$var$PERFORMANCE","$a43d996a7aa8a839$var$IS_DOM","documentElement","$a43d996a7aa8a839$var$IS_IE","$a43d996a7aa8a839$var$NAMESPACE_IDENTIFIER","$a43d996a7aa8a839$var$UNITS_IN_GRID","$a43d996a7aa8a839$var$DEFAULT_CSS_PREFIX","$a43d996a7aa8a839$var$DEFAULT_REPLACEMENT_CLASS","$a43d996a7aa8a839$var$DATA_FA_I2SVG","$a43d996a7aa8a839$var$DATA_FA_PSEUDO_ELEMENT","$a43d996a7aa8a839$var$DATA_FA_PSEUDO_ELEMENT_PENDING","$a43d996a7aa8a839$var$DATA_PREFIX","$a43d996a7aa8a839$var$DATA_ICON","$a43d996a7aa8a839$var$HTML_CLASS_I2SVG_BASE_CLASS","$a43d996a7aa8a839$var$MUTATION_APPROACH_ASYNC","$a43d996a7aa8a839$var$TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","$a43d996a7aa8a839$var$PRODUCTION","$a43d996a7aa8a839$var$FAMILY_CLASSIC","$a43d996a7aa8a839$var$FAMILY_SHARP","$a43d996a7aa8a839$var$FAMILIES","$a43d996a7aa8a839$var$familyProxy","Proxy","prop","$a43d996a7aa8a839$var$PREFIX_TO_STYLE","fa","fas","far","fal","fat","fad","fab","fak","fass","fasr","fasl","$a43d996a7aa8a839$var$STYLE_TO_PREFIX","solid","regular","light","thin","duotone","brands","kit","$a43d996a7aa8a839$var$PREFIX_TO_LONG_STYLE","$a43d996a7aa8a839$var$LONG_STYLE_TO_PREFIX","$a43d996a7aa8a839$var$ICON_SELECTION_SYNTAX_PATTERN","$a43d996a7aa8a839$var$LAYERS_TEXT_CLASSNAME","$a43d996a7aa8a839$var$FONT_FAMILY_PATTERN","$a43d996a7aa8a839$var$FONT_WEIGHT_TO_PREFIX","normal","$a43d996a7aa8a839$var$oneToTen","$a43d996a7aa8a839$var$oneToTwenty","$a43d996a7aa8a839$var$ATTRIBUTES_WATCHED_FOR_MUTATION","$a43d996a7aa8a839$var$DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","$a43d996a7aa8a839$var$prefixes","$a43d996a7aa8a839$var$RESERVED_CLASSES","$a43d996a7aa8a839$var$initial","FontAwesomeConfig","_ref","_ref2","$a43d996a7aa8a839$var$coerce","$a43d996a7aa8a839$var$getAttrConfig","$a43d996a7aa8a839$var$_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","$a43d996a7aa8a839$var$_config","$a43d996a7aa8a839$var$config","$a43d996a7aa8a839$var$_onChangeCb","$a43d996a7aa8a839$var$d","$a43d996a7aa8a839$var$meaninglessTransform","rotate","flipX","flipY","$a43d996a7aa8a839$var$idPool","$a43d996a7aa8a839$var$nextUniqueId","$a43d996a7aa8a839$var$toArray","$a43d996a7aa8a839$var$classArray","$a43d996a7aa8a839$var$htmlEscape","str","$a43d996a7aa8a839$var$joinStyles","styleName","$a43d996a7aa8a839$var$transformIsMeaningful","transform","$a43d996a7aa8a839$var$baseStyles","$a43d996a7aa8a839$var$css","dcp","drc","fp","rc","dPatt","customPropPatt","rPatt","$a43d996a7aa8a839$var$_cssInserted","$a43d996a7aa8a839$var$ensureCss","headChildren","beforeChild","$a43d996a7aa8a839$var$insertCss","$a43d996a7aa8a839$var$InjectCSS","mixout","insertCss","beforeDOMElementCreation","beforeI2svg","$a43d996a7aa8a839$var$w","shims","$a43d996a7aa8a839$var$namespace","$a43d996a7aa8a839$var$functions","$a43d996a7aa8a839$var$loaded","$a43d996a7aa8a839$var$toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","$a43d996a7aa8a839$var$joinAttributes","join","$a43d996a7aa8a839$var$iconFromMapping","mapping","doScroll","$a43d996a7aa8a839$var$reduce","subject","thisContext","$a43d996a7aa8a839$var$bindInternal4","$a43d996a7aa8a839$var$toHex","unicode","decoded","output","counter","charCodeAt","extra","$a43d996a7aa8a839$var$ucs2decode","$a43d996a7aa8a839$var$normalizeIcons","icons","$a43d996a7aa8a839$var$defineIcons","_params$skipHooks","skipHooks","addPack","$a43d996a7aa8a839$var$_LONG_STYLE","$a43d996a7aa8a839$var$_PREFIXES","$a43d996a7aa8a839$var$_PREFIXES_FOR_FAMILY","$a43d996a7aa8a839$var$styles","$a43d996a7aa8a839$var$shims","$a43d996a7aa8a839$var$LONG_STYLE","$a43d996a7aa8a839$var$_defaultUsablePrefix","$a43d996a7aa8a839$var$_byUnicode","$a43d996a7aa8a839$var$_byLigature","$a43d996a7aa8a839$var$_byOldName","$a43d996a7aa8a839$var$_byOldUnicode","$a43d996a7aa8a839$var$_byAlias","$a43d996a7aa8a839$var$PREFIXES","$a43d996a7aa8a839$var$getIconName","cls","$a43d996a7aa8a839$var$build","lookup","alias","aliases","hasRegular","autoFetchSvg","shimLookups","maybeNameMaybeUnicode","names","unicodes","$a43d996a7aa8a839$var$getCanonicalPrefix","family","$a43d996a7aa8a839$var$byUnicode","$a43d996a7aa8a839$var$byAlias","$a43d996a7aa8a839$var$byOldName","$a43d996a7aa8a839$var$getDefaultUsablePrefix","$a43d996a7aa8a839$var$emptyCanonicalIcon","rest","styleOrPrefix","_params$family","defined","$a43d996a7aa8a839$var$PREFIXES_FOR_FAMILY","$a43d996a7aa8a839$var$getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","canonical","aliasIconName","$a43d996a7aa8a839$var$Library","Library","Constructor","$a43d996a7aa8a839$var$_classCallCheck","definitions","protoProps","staticProps","_len","_key","additions","_pullDefinitions","longPrefix","definition","_normalized$key","$a43d996a7aa8a839$var$_plugins","$a43d996a7aa8a839$var$_hooks","$a43d996a7aa8a839$var$providers","$a43d996a7aa8a839$var$defaultProviderKeys","$a43d996a7aa8a839$var$chainHooks","accumulator","hookFn","$a43d996a7aa8a839$var$callHooks","_len2","_key2","$a43d996a7aa8a839$var$callProvided","$a43d996a7aa8a839$var$findIconDefinition","iconLookup","$a43d996a7aa8a839$var$library","$a43d996a7aa8a839$var$dom","i2svg","params","watch","autoReplaceSvgRoot","$a43d996a7aa8a839$var$autoReplace","$a43d996a7aa8a839$export$644d8ea042df96a6","noAuto","_icon","canonicalIcon","_prefix","library","findIconDefinition","toHtml","_params$autoReplaceSv","$a43d996a7aa8a839$var$domVariants","abstractCreator","abstract","$a43d996a7aa8a839$var$makeInlineSvgAbstract","_params$icons","main","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","role","xmlns","viewBox","uploadedIconWidthStyle","$a43d996a7aa8a839$var$asSymbol","offset","$a43d996a7aa8a839$var$asIcon","$a43d996a7aa8a839$var$makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","$a43d996a7aa8a839$var$transformForCss","styleString","$a43d996a7aa8a839$var$styles$1","$a43d996a7aa8a839$var$asFoundIcon","vectorData","$a43d996a7aa8a839$var$missingIconResolutionMixin","$a43d996a7aa8a839$var$findIcon","$a43d996a7aa8a839$var$maybeNotifyMissing","$a43d996a7aa8a839$var$noop$1","$a43d996a7aa8a839$var$p","$a43d996a7aa8a839$var$preamble","$a43d996a7aa8a839$var$end","$a43d996a7aa8a839$var$perf","begin","$a43d996a7aa8a839$var$noop$2","$a43d996a7aa8a839$var$isWatched","$a43d996a7aa8a839$var$createElementNS","$a43d996a7aa8a839$var$createElement","$a43d996a7aa8a839$var$convertSVG","abstractObj","_params$ceFn","ceFn","$a43d996a7aa8a839$var$mutators","mutation","_abstract","comment","$a43d996a7aa8a839$var$nodeAsComment","replaceChild","nest","_abstract2","forSvg","splitClasses","toSvg","toNode","newInnerHTML","$a43d996a7aa8a839$var$performOperationSync","op","$a43d996a7aa8a839$var$perform","mutations","callbackFunction","frame","mutator","$a43d996a7aa8a839$var$disabled","$a43d996a7aa8a839$var$disableObservation","$a43d996a7aa8a839$var$enableObservation","$a43d996a7aa8a839$var$mo","$a43d996a7aa8a839$var$observe","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","addedNodes","$a43d996a7aa8a839$var$hasPrefixAndIcon","_getCanonicalIcon","observe","childList","characterData","subtree","$a43d996a7aa8a839$var$classParser","ligature","existingPrefix","existingIconName","innerText","TEXT_NODE","$a43d996a7aa8a839$var$parseMeta","parser","styleParser","_classParser","extraClasses","extraAttributes","$a43d996a7aa8a839$var$attributesParser","pluginMeta","extraStyles","$a43d996a7aa8a839$var$styleParser","$a43d996a7aa8a839$var$styles$2","$a43d996a7aa8a839$var$generateMutation","nodeMeta","$a43d996a7aa8a839$var$knownPrefixes","$a43d996a7aa8a839$var$onTree","htmlClassList","hclAdd","suffix","hclRemove","prefixes","prefixesDomQuery","candidates","all","resolvedMutations","catch","$a43d996a7aa8a839$var$onNode","$a43d996a7aa8a839$var$render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","$a43d996a7aa8a839$var$ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","$a43d996a7aa8a839$var$Layers","layer","assembler","$a43d996a7aa8a839$var$LayersCounter","$a43d996a7aa8a839$var$makeLayersCounterAbstract","$a43d996a7aa8a839$var$LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","$a43d996a7aa8a839$var$CLEAN_CONTENT_PATTERN","$a43d996a7aa8a839$var$SECONDARY_UNICODE_RANGE","$a43d996a7aa8a839$var$replaceForPosition","position","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","_content","_hexValueFromContent","second","first","cleaned","codePoint","isPrependTen","isDoubled","isSecondary","$a43d996a7aa8a839$var$hexValueFromContent","hexValue","isV4","iconIdentifier","iconName4","meta","$a43d996a7aa8a839$var$replace","$a43d996a7aa8a839$var$processable","$a43d996a7aa8a839$var$searchPseudoElements","operations","$a43d996a7aa8a839$var$_unwatched","$a43d996a7aa8a839$var$parseTransformString","transformString","parseFloat","isNaN","$a43d996a7aa8a839$var$PowerTransforms","parseNodeAttributes","providers","generateAbstractTransformGrouping","innerTranslate","innerScale","innerRotate","inner","$a43d996a7aa8a839$var$ALL_SPACE","$a43d996a7aa8a839$var$fillBlack","force","$a43d996a7aa8a839$var$Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","$a43d996a7aa8a839$var$transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","mixoutsTo","pseudoElements2svg","unwatch","bootstrap","disconnect","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","opacity","symbolData","plugin","tk","sk","$a43d996a7aa8a839$export$98e6a39c04603d36","$a43d996a7aa8a839$export$1ca1ec8b29a4ce27","$e4ec753f5c716375$var$ownKeys","$e4ec753f5c716375$var$_objectSpread2","$e4ec753f5c716375$var$_defineProperty","$e4ec753f5c716375$var$_typeof","$e4ec753f5c716375$var$_objectWithoutProperties","excluded","sourceKeys","$e4ec753f5c716375$var$_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","$e4ec753f5c716375$var$_toConsumableArray","$e4ec753f5c716375$var$_arrayLikeToArray","$e4ec753f5c716375$var$_arrayWithoutHoles","$e4ec753f5c716375$var$_iterableToArray","$e4ec753f5c716375$var$_unsupportedIterableToArray","$e4ec753f5c716375$var$_nonIterableSpread","$e4ec753f5c716375$var$camelize","$e4ec753f5c716375$var$_isNumerical","chr","substr","$8da5bfbbed271cd7$exports","$e4ec753f5c716375$var$_excluded","$e4ec753f5c716375$var$PRODUCTION","$e4ec753f5c716375$var$normalizeIconArgs","$e4ec753f5c716375$var$objectWithKey","$e4ec753f5c716375$export$2b9260d4a45c8710","$e21355414fd2bd2a$export$2e2bcd8739ae039","iconArgs","maskArgs","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","$e4ec753f5c716375$var$classList","renderedIcon","_console","$e4ec753f5c716375$var$log","extraProps","$e4ec753f5c716375$var$convertCurry","propTypes","$parcel$interopDefault","$e4ec753f5c716375$var$convert","mixins","attrs","pair","_extraProps$style","existingStyle","remaining","$856b11ab1dfc9254$var$sizes","xs","sm","md","lg","xl","$856b11ab1dfc9254$export$7f7cbe89f1eacd2","$e21355414fd2bd2a$export$257a8862b851cb5b","sizeVariant","$856b11ab1dfc9254$var$createMemoClass","$13c40c34b78c8ee2$export$c8a8987d4410bf2d","stroke","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinecap","$a7dc0a2f4f9539e2$var$formatSecondsToTimeString","seconds","sec","round","minutes","floor","secondsLeft","$a7dc0a2f4f9539e2$export$5947162123d1304a","audioUrl","minCut","maxCut","onTrim","fRef","wavesurfer","$204a33a7557cbbd0$export$b8f5890fc79d6aca","setContainer","$204a33a7557cbbd0$export$60241385465d0a34","songData","setSongData","$204a33a7557cbbd0$export$13e3392192263954","newState","loading","isPlaying","duration","trimStart","trimEnd","$204a33a7557cbbd0$export$6d9c69b0de29b591","log","WaveSurfer","RegionsPlugin","destroy","waveColor","progressColor","barWidth","barHeight","barGap","barRadius","cursorWidth","cursorColor","responsive","normalize","plugins","regionsMaxLength","maxRegions","regions","loop","color","minLength","maxLength","dragSelection","getDuration","initWaveSurfer","$204a33a7557cbbd0$export$d5a552a76deda3c2","onClick","region","left","$f76dc3547a0fc079$var$reactEvents","$f76dc3547a0fc079$var$divergentNativeEvents","onDoubleClick","$f76dc3547a0fc079$var$mimickedReactEvents","onInput","onFocusOut","onSelectionChange","$f76dc3547a0fc079$var$findReactEventHandlers","$f76dc3547a0fc079$var$findReactProperty","propertyPrefix","$f76dc3547a0fc079$var$findReactProps","memoizedProps","_currentElement","$f76dc3547a0fc079$var$dispatchEvent","eventType","componentProps","isPersistent","$f76dc3547a0fc079$exports","removeEventListeners","reactEventName","nativeEventName","$f76dc3547a0fc079$var$getNativeEventName","retargetEvent","composedPath","$f76dc3547a0fc079$var$composedPath","reactComponent","eventHandlers","$3e84179ef2cfe303$export$2e2bcd8739ae039","internals","attachInternals","mountPoint","$e21355414fd2bd2a$export$b3890eb0ae9dca99","formData","FormData","form","setFormValue","newValue","$d3d58abe8e7d5b8a$var$defaultConfig","brushSizes","colors","colorNames","$d3d58abe8e7d5b8a$export$6c98c30b3a286440","extraCSS","configProp","onDrawDone","canvas","setCanvas","brushSize","setBrushSize","setColor","$204a33a7557cbbd0$export$1538c33de8887b59","getContext","bounds","onResize","drawDoneTimeout","isDrawing","lastX","lastY","draw","newX","newY","strokeStyle","lineWidth","lineCap","beginPath","moveTo","lineTo","$d3d58abe8e7d5b8a$var$createResizedImage","onMouseDown","offsetX","offsetY","onTouchStart","touches","clientX","clientY","top","onMouseMove","onTouchMove","drawStop","Canvas","aspectRatio","cursor","backgroundImage","clearRect","outlineWidth","backgroundColor","new_width","new_height","new_canvas","drawImage","toDataURL","$7d9545ab0deb5143$export$2e2bcd8739ae039","imageData","$b5c10f5d5db2f1d2$export$2e2bcd8739ae039","muted","togglePlay","autoplay","poster","mute","unmute","_video","PartType","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","EVENT","ELEMENT","directive","Directive","_partInfo","__part","__attributeIndex","_part","insertPart","containerPart","refPart","refNode","oldParent","parentChanged","newConnectionState","_$reparentDisconnectables","setChildPartValue","RESET_VALUE","setCommittedValue","removePart","notifyChildrenConnectedChanged","removeDisconnectableFromParent","addDisconnectableToParent","installDisconnectAPI","reparentDisconnectables","newParent","notifyChildPartConnectedChanged","isClearingValue","fromPartIndex","AsyncDirective","isClearingDirective","reconnected","disconnected","setValue","newValues","generateMap","repeat","partInfo","_getValuesAndKeys","items","keyFnOrTemplate","keyFn","oldParts","newKeys","_itemKeys","oldKeys","newParts","newKeyToIndexMap","oldKeyToIndexMap","oldHead","oldTail","newHead","newTail","oldIndex","oldPart","newPart","$cb3280cee8f77ea2$export$f5757bf67849641e","Event","range","eventName","bubbles","last","$cb3280cee8f77ea2$export$2e78a2ddb0c53ec7","$cb3280cee8f77ea2$export$b59ccc68ca42c831","$6e2c24e08b71ab69$export$eadd4f3ea688dbb1","_element","_node","scrollingElement","scrollTop","scrollY","scrollLeft","scrollX","scrollHeight","scrollWidth","viewportHeight","innerHeight","viewportWidth","innerWidth","maxScrollTop","maxScrollLeft","$6e2c24e08b71ab69$export$c01e13d0206631f5","client","_clients","_retarget","_end","__destination","correctingScrollError","_checkForArrival","_updateManagedScrollTo","scrollTo","scrollBy","_originalScrollTo","_originalScrollBy","_originalScroll","scroll","_attach","_destination","scrolling","p1","p2","_scrollTo","_nativeScrollTo","retarget","behavior","_setDestination","_resetScrollState","max","coordinates","managedScrollTo","correctScrollError","topDiff","abs","leftDiff","detach","$a391b4d07c302e90$var$_ResizeObserver","ResizeObserver","$a391b4d07c302e90$export$d5975bc47eaa720c","$a391b4d07c302e90$var$SIZER_ATTRIBUTE","$a391b4d07c302e90$var$DefaultLayoutConstructor","$a391b4d07c302e90$export$89be5a243e59c4b2","_benchmarkStart","_layout","_clippingAncestors","_scrollSize","_scrollError","_childrenPos","_childMeasurements","_toBeMeasured","_rangeChanged","_itemsChanged","_visibilityChanged","_scrollerController","_isScroller","_sizer","_hostElementRO","_childrenRO","_mutationObserver","_scrollEventListeners","_scrollEventListenerOptions","_loadListener","_childLoaded","_scrollIntoViewTarget","_updateScrollIntoViewCoordinates","_items","_first","_last","_firstVisible","_lastVisible","_scheduled","WeakSet","_measureCallback","_measureChildOverride","_layoutCompletePromise","_layoutCompleteResolver","_layoutCompleteRejecter","_pendingLayoutComplete","_layoutInitialized","hostElement","_init","_schedule","_updateLayout","scroller","_initHostElement","layoutConfig","layout","_initLayout","_initObservers","_finishDOMUpdate","_hostElementSizeChanged","_childrenSizeChanged","_hostElement","_applyVirtualizerStyles","connected","includeSelf","foundFixed","ancestors","$a391b4d07c302e90$var$getParentElement","$a391b4d07c302e90$var$getElementAncestors","overflow","$a391b4d07c302e90$var$getClippingAncestors","_observeAndListen","ancestor","_children","_rejectLayoutCompletePromise","contain","minHeight","_getSizer","sizer","margin","padding","visibility","updateLayoutConfig","Ctor","copy","FlowLayout","_handleLayoutMessage","measureChildren","updateItemSizes","listenForChildLoadEvents","startBenchmarking","now","stopBenchmarking","timeElapsed","virtualizationTime","getEntriesByName","startTime","_measureChildren","mm","_measureChild","clear","marginTop","$a391b4d07c302e90$var$getMarginValue","marginRight","marginBottom","marginLeft","$a391b4d07c302e90$var$getMargins","_updateDOM","scrollSize","_adjustRange","childPositions","scrollError","_notifyVisibility","_notifyRange","_checkScrollIntoViewTarget","_positionChildren","_sizeHostElement","_correctScrollError","_updateView","reflowIfNeeded","_handleScrollEvent","unpin","currentTarget","firstVisible","lastVisible","dispatchEvent","nextElementSibling","bottom","right","hostElementBounds","ancestorBounds","scrollingElementBounds","offsetWithinScroller","totalScrollSize","viewportSize","viewportScroll","minWidth","pos","xOffset","yOffset","boxSizing","scrollIntoView","_scrollElementIntoView","getScrollIntoViewCoordinates","pin","layoutComplete","reason","_resetLayoutCompleteState","_scheduleLayoutComplete","_resolveLayoutCompletePromise","changes","contentRect","float","NaN","assignedSlot","$746878a853dfe13c$export$38a09bb60e00059f","$746878a853dfe13c$export$16cdfcd1242daf4e","$746878a853dfe13c$export$2f0d778a9691c1c7","$3baabda811939da5$export$99b43ad1ed32e735","$f3bd3fa2e54a33fb$export$7d025501802325e","_virtualizer","_renderItem","_keyFunction","$3baabda811939da5$export$9ba3b3f20a85bfa","_setFunctions","itemsToRender","$e41d1b66de65ecc4$export$76d90c956114f2c2","itemsChanged","_updateVirtualizerConfig","$e5ed8027d647799b$export$9c068ae9cc5db4e8","_makeVirtualizer","renderItem","keyFunction","$686d4b9dec563d06$export$b735ecd0e4ed3ddf","scrollToIndex","block","customElements","define","brand","unwrapStaticValue","_$litStatic$","stringsCache","withStatic","coreTag","staticValue","dynamicValue","staticStrings","dynamicValues","hasStatics","raw","coreHtml","coreSvg","$5a14fa1dc1d5632f$export$2e2bcd8739ae039","_slottedHTML","innerStyle","handleSlotchange","slot","newNodes","flatten","$54f4e21f80f6eaaa$export$878791788f808fc0","$d5d4c23c32f7074a$var$htmx","allowEval","$d5d4c23c32f7074a$var$Twitch","Twitch","$d5d4c23c32f7074a$var$twitchAuth","$d5d4c23c32f7074a$var$twitchCtx","$d5d4c23c32f7074a$var$twitchExtVisible","ext","onContext","onVisibilityChanged","visible","onAuthorized","auth","href","token","features","entries","eventDetails","img","fallbackCSS","bitsTransaction","complete","cancel","bits","onTransactionComplete","onTransactionCancelled","useBits","ProductID","tx","actions","requestIdShare"],"version":3,"file":"index.e9bcf9d1.js.map"}