@shgysk8zer0/polyfills 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/all.min.js +7 -7
- package/all.min.js.map +1 -1
- package/element.js +21 -0
- package/package.json +1 -1
package/all.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all.min.js","sources":["utils.js","math.js","globalThis.js","deprefixer.js","map.js","array.js","symbols.js","function.js","url.js","number.js","iterator.js","secure-context.js","assets/utility.js","assets/Lock.js","assets/LockManager.js","assets/error.js","locks.js","share.js","appBadge.js","navigator.js","performance.js","abort.js","errors.js","match-media.js","promise.js","assets/TextEncoder.js","assets/TextDecoder.js","textEncoder.js","crypto.js","assets/CookieStore.js","assets/trust.js","animation.js","assets/attributes.js","assets/csp.js","assets/TrustedTypes.js","trustedTypes.js","assets/SanitizerConfigW3C.js","assets/sanitizerUtils.js","assets/Sanitizer.js","deprecated/sanitizer.js","assets/adoptedStylesheets.js","CSSStyleSheet.js","Document.js","ShadowRoot.js","aom.js","element.js","set.js","weakMap.js","window.js","assets/Scheduler.js","scheduler.js","elementInternals.js","response.js"],"sourcesContent":["export function polyfillMethod(parent, name, value, {\n\twritable = true,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! (parent[name] instanceof Function)) {\n\t\tObject.defineProperty(parent, name, { value, writable, enumerable, configurable });\n\t}\n}\n\nexport function polyfillGetterSetter(parent, name, {\n\tget,\n\tset,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! parent.hasOwnProperty(name)) {\n\t\tObject.defineProperty(parent, name, { get, set, enumerable, configurable });\n\t}\n}\n\nexport function overwriteMethod(parent, name, func) {\n\tconst { value, enumerable, configurable, writable } = Object.getOwnPropertyDescriptor(parent, name);\n\tconst newMethod = func(value);\n\n\tif (! (newMethod instanceof Function)) {\n\t\tthrow new TypeError(`Error overwriting ${name}. The func MUST be a function that accepts the original as an argument and return a function.`);\n\t} else {\n\t\tObject.defineProperty(parent, name, { value: newMethod, enumerable, configurable, writable });\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (! Number.hasOwnProperty('isSafeInteger')) {\n\t\tNumber.MAX_SAFE_INTEGER = 2**53 -1;\n\t\tNumber.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;\n\t\tNumber.isSafeInteger = num => num <= Number.MAX_SAFE_INTEGER && num >= Number.MIN_SAFE_INTEGER;\n\t}\n\n\tif (! Number.hasOwnProperty('EPSILON')) {\n\t\tNumber.EPSILON = 2**-52;\n\t}\n\n\tif (! Math.hasOwnProperty('sign')) {\n\t\tMath.sign = x => ((x > 0) - (x < 0)) || +x;\n\t}\n\n\tif (! Math.hasOwnProperty('trunc')) {\n\t\tMath.trunc = x => {\n\t\t\tconst n = x - x%1;\n\t\t\treturn n===0 && (x<0 || (x===0 && (1/x !== 1/0))) ? -0 : n;\n\t\t};\n\t}\n\n\tif (! Math.hasOwnProperty('expm1')) {\n\t\tMath.expm1 = x => Math.exp(x) - 1;\n\t}\n\n\tif (! Math.hasOwnProperty('hypot')) {\n\t\tMath.hypot = (...nums) => Math.sqrt(nums.reduce((sum, num) => sum + num**2, 0));\n\t}\n\n\tif (! Math.hasOwnProperty('cbrt')) {\n\t\tMath.cbrt = x => x**(1/3);\n\t}\n\n\tif (! Math.hasOwnProperty('log10')) {\n\t\tMath.log10 = x => Math.log(x) * Math.LOG10E;\n\t}\n\n\tif (! Math.hasOwnProperty('log2')) {\n\t\tMath.log2 = x => Math.log(x) * Math.LOG2E;\n\t}\n\n\tif (! Math.hasOwnProperty('log1p')) {\n\t\tMath.log1p = x => Math.log(1 + x);\n\t}\n\n\tif (! Math.hasOwnProperty('fround')) {\n\t\tMath.fround = (function (array) {\n\t\t\treturn function(x) {\n\t\t\t\treturn array[0] = x, array[0];\n\t\t\t};\n\t\t})(new Float32Array(1));\n\t}\n\n\tif (! (Math.clamp instanceof Function)) {\n\t\tMath.clamp = function(value, min, max) {\n\t\t\treturn Math.min(Math.max(value, min), max);\n\t\t};\n\t}\n\n\t/*\n\t * Question of if it will be `Math.clamp` or `Math.constrain`\n\t */\n\tif (! (Math.constrain instanceof Function)) {\n\t\tMath.constrain = Math.clamp;\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (typeof globalThis === 'undefined') {\n\t\t/* global global: true */\n\t\tif (typeof window !== 'undefined') {\n\t\t\tObject.defineProperty(Window.prototype, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: window,\n\t\t\t});\n\t\t} else if (typeof global !== 'undefined') {\n\t\t\tObject.defineProperty(global, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: global,\n\t\t\t});\n\t\t} else if (typeof self !== 'undefined') {\n\t\t\tObject.defineProperty(self, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: self,\n\t\t\t});\n\t\t} else {\n\t\t\tObject.defineProperty(this, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: this,\n\t\t\t});\n\t\t}\n\t}\n})();\n","if (! ('crypto' in window) && 'msCrypto' in window) {\n\tglobalThis.crypto = globalThis.msCrypto;\n}\n\nif (!('Notification' in window)) {\n\tglobalThis.Notification = globalThis.notifications || globalThis.webkitNotifications || globalThis.oNotifications || globalThis.msNotifications || false;\n}\n\nif (!('doNotTrack' in navigator)) {\n\tnavigator.doNotTrack = globalThis.doNotTrack || navigator.msDoNotTrack || 'unspecified';\n}\n\nif (!('indexedDB' in window)) {\n\tglobalThis.indexedDB = globalThis.indexedDB || globalThis.mozIndexedDB || globalThis.webkitIndexedDB || globalThis.msIndexedDB || false;\n}\n\nif (!('hidden' in document)) {\n\tdocument.hidden = document.webkitHidden || document.msHidden || document.mozHidden || false;\n}\n\nif (!('visibilityState' in document)) {\n\tdocument.visibilityState = document.webkitVisibilityState || document.msVisibilityState || document.mozVisibilityState || 'visible';\n}\n\nif (!('fullscreenElement' in document)) {\n\tdocument.fullscreenElement = document.mozFullScreenElement || document.webkitFullscreenElement || false;\n}\n\nif (!('requestAnimationFrame' in window)) {\n\tglobalThis.requestAnimationFrame = globalThis.mozRequestAnimationFrame || globalThis.webkitRequestAnimationFrame || globalThis.msRequestAnimationFrame || false;\n}\n\nif (!('exitFullscreen' in Document.prototype)) {\n\tDocument.prototype.exitFullscreen = document.mozCancelFullScreen || document.webkitCancelFullScreen || document.msCancelFullScreen || false;\n}\n\nif (!('requestFullscreen' in HTMLElement.prototype)) {\n\tHTMLElement.prototype.requestFullscreen = HTMLElement.prototype.requestFullScreen || HTMLElement.prototype.mozRequestFullScreen || HTMLElement.prototype.webkitRequestFullScreen || false;\n}\n\nif (!('fullscreen' in Document.prototype)) {\n\tObject.defineProperty(Document.prototype, 'fullscreen', {\n\t\tget:() => document.fullscreenElement instanceof Element,\n\t});\n}\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-upsert\n\t */\n\n\tif (! (Map.prototype.emplace instanceof Function)) {\n\t\tMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, value);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @SEE https://github.com/tc39/proposal-relative-indexing-method#polyfill\n\t * @SEE https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\n\t */\n\n\tconst SHIM_TARGETS = [Array, String, globalThis.Int8Array, globalThis.Uint8Array,\n\t\tglobalThis.Uint8ClampedArray, globalThis.Int16Array, globalThis.Uint16Array,\n\t\tglobalThis.Int32Array, globalThis.Uint32Array, globalThis.Float32Array,\n\t\tglobalThis.Float64Array, globalThis.BigInt64Array, globalThis.BigUint64Array,\n\t];\n\n\tif (! (Array.prototype.flat instanceof Function)) {\n\t\tArray.prototype.flat = function(depth = 1) {\n\t\t\tconst result = [];\n\t\t\tdepth = Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, depth));\n\n\t\t\tconst flattenFn = (item, depth) => {\n\t\t\t\tif (Array.isArray(item) && depth >= 0) {\n\t\t\t\t\titem.forEach(i => flattenFn(i, depth - 1));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(item);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tflattenFn(this, Number.isNaN(depth) ? 0 : depth);\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.flatMap instanceof Function)) {\n\t\tArray.prototype.flatMap = function(cb, thisArg) {\n\t\t\treturn this.map(cb, thisArg).flat(1);\n\t\t};\n\t}\n\n\tif (! (Array.prototype.findLast instanceof Function)) {\n\t\tArray.prototype.findLast = function(callback, thisArg) {\n\t\t\tlet found = undefined;\n\n\t\t\tthis.forEach((item, index, arr) => {\n\t\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\t\tfound = item;\n\t\t\t\t}\n\t\t\t}, thisArg);\n\n\t\t\treturn found;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.findLastIndex instanceof Function)) {\n\t\tArray.prototype.findLastIndex = function(callback, thisArg) {\n\t\t\tlet found = -1;\n\n\t\t\tthis.forEach((item, index, arr) => {\n\t\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\t\tfound = index;\n\t\t\t\t}\n\t\t\t}, thisArg);\n\n\t\t\treturn found;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.at instanceof Function)) {\n\t\tconst at = function at(n) {\n\t\t\tn = Math.trunc(n) || 0;\n\t\t\tif (n < 0) n += this.length;\n\t\t\tif (n < 0 || n >= this.length) return undefined;\n\t\t\treturn this[n];\n\t\t};\n\n\t\tfor (const C of SHIM_TARGETS) {\n\t\t\tif (typeof C !== 'undefined') {\n\t\t\t\tObject.defineProperty(C.prototype, 'at', {\n\t\t\t\t\tvalue: at,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-grouping\n\t */\n\tif (! (Array.prototype.group instanceof Function)) {\n\t\tArray.prototype.group = function group(callback, thisArg = globalThis) {\n\t\t\treturn this.reduce((groups, item, index, arr) => {\n\t\t\t\tconst key = callback.call(thisArg, item, index, arr);\n\n\t\t\t\tif (! groups.hasOwnProperty(key)) {\n\t\t\t\t\tgroups[key] = [item];\n\t\t\t\t} else {\n\t\t\t\t\tgroups[key].push(item);\n\t\t\t\t}\n\n\t\t\t\treturn groups;\n\t\t\t}, {});\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated [renamed to `group()`]\n\t */\n\tArray.prototype.groupBy = function groupBy(...args) {\n\t\tconsole.warn('`goupBy` is deprecated. Please use `group` instead.');\n\t\treturn this.group(...args);\n\t};\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-grouping\n\t * @requires `Map.prototype.emplace`\n\t */\n\tif (! (Array.prototype.groupToMap instanceof Function) && (Map.prototype.emplace instanceof Function)) {\n\t\tArray.prototype.groupToMap = function groupToMap(callback, thisArg = globalThis) {\n\t\t\treturn this.reduce((map, item, index, arr) => {\n\t\t\t\tmap.emplace(callback.call(thisArg, item, index, arr), {\n\t\t\t\t\tinsert: () => [item],\n\t\t\t\t\tupdate: existing => {\n\t\t\t\t\t\texisting.push(item);\n\t\t\t\t\t\treturn existing;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn map;\n\t\t\t}, new Map());\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated [renamed to `groupToMap()`]\n\t */\n\tif (Map.prototype.emplace instanceof Function) {\n\t\tArray.prototype.groupByToMap = function groupByToMap(...args) {\n\t\t\tconsole.warn('`goupByToMap` is deprecated. Please use `groupToMap` instead.');\n\t\t\treturn this.groupToMap(...args);\n\t\t};\n\t}\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-from-async\n\t */\n\tif (! (Array.fromAsync instanceof Function)) {\n\t\tArray.fromAsync = async function fromAsync(items, mapFn, thisArg = globalThis) {\n\t\t\tlet arr = [];\n\n\t\t\tfor await (const item of items) {\n\t\t\t\tarr.push(await item);\n\t\t\t}\n\n\t\t\treturn Array.from(arr, mapFn, thisArg);\n\t\t};\n\t}\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-equality/\n\t */\n\tif (! (Array.prototype.equals instanceof Function)) {\n\t\tArray.prototype.equals = function equals(arr) {\n\t\t\tif (this === arr) {\n\t\t\t\treturn true;\n\t\t\t} else if (! Array.isArray(arr)) {\n\t\t\t\treturn false;\n\t\t\t} else if (this.length !== arr.length) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn this.every((item, i) => {\n\t\t\t\t\tconst val = arr[i];\n\t\t\t\t\tif (Array.isArray(item)) {\n\t\t\t\t\t\treturn Array.isArray(val) && item.equals(val);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn Object.is(item, val);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\t/**\n\t * @see https://github.com/tc39/proposal-array-unique\n\t */\n\tif (! (Array.prototype.uniqueBy instanceof Function)) {\n\t\tArray.prototype.uniqueBy = function uniqueBy(arg) {\n\t\t\tif (typeof arg === 'undefined') {\n\t\t\t\treturn [...new Set(this)];\n\t\t\t} else if (typeof arg === 'string') {\n\t\t\t\tconst found = [];\n\n\t\t\t\treturn this.filter(obj => {\n\t\t\t\t\tconst key = obj[arg];\n\t\t\t\t\tif (found.includes(key)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfound.push(key);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (arg instanceof Function) {\n\t\t\t\tconst found = [];\n\n\t\t\t\treturn this.filter((...args) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst key = arg.apply(this, args);\n\n\t\t\t\t\t\tif (typeof key !== 'string') {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else if (found.includes(key)) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfound.push(key);\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthrow new TypeError('Not a valid argument for uniqueBy');\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Change Array by copy proposal\n\t * @Note: Not clear if should use `structedClone` or `[...this]` for copies\n\t * @see https://github.com/tc39/proposal-change-array-by-copy\n\t */\n\tif (! (Array.prototype.toReversed instanceof Function)) {\n\t\tArray.prototype.toReversed = function toReversed() {\n\t\t\treturn [...this].reverse();\n\t\t};\n\t}\n\n\tif (! (Array.prototype.toSorted instanceof Function)) {\n\t\tArray.prototype.toSorted = function toSorted(cmpFn) {\n\t\t\treturn [...this].sort(cmpFn);\n\t\t};\n\t}\n\n\tif (! (Array.prototype.toSpliced instanceof Function)) {\n\t\tArray.prototype.toSpliced = function toSpliced(start, deleteCount, ...items) {\n\t\t\tconst cpy = [...this];\n\t\t\tcpy.splice(start, deleteCount, ...items);\n\t\t\treturn cpy;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.with instanceof Function)) {\n\t\tArray.prototype.with = function (index, value) {\n\t\t\tconst cpy = [...this];\n\t\t\tcpy[index] = value;\n\t\t\treturn cpy;\n\t\t};\n\t}\n})();\n","if ('Symbol' in globalThis) {\n\tif (typeof Symbol.toStringTag === 'undefined') {\n\t\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n\t}\n\n\tif (typeof Symbol.iterator === 'undefined') {\n\t\tSymbol.iterator = Symbol('Symbol.iterator');\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (! (Function.prototype.once instanceof Function)) {\n\t\tconst funcs = new WeakMap();\n\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-function-once\n\t\t */\n\t\tFunction.prototype.once = function once(thisArg) {\n\t\t\tconst callback = this;\n\t\t\treturn function(...args) {\n\t\t\t\tif (funcs.has(callback)) {\n\t\t\t\t\treturn funcs.get(callback);\n\t\t\t\t} else if (callback.constructor.name === 'AsyncFunction') {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args).catch(err => {\n\t\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t});\n\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t} else if (callback instanceof Function) {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args);\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t}\n})();\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(URL, 'canParse', (str, base) => {\n\ttry {\n\t\tnew URL(str, base);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n});\n","(function() {\n\t'use strict';\n\n\tif (! (Number.range instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-Number.range\n\t\t * @deprecated - changed to `Iterator.range`\n\t\t */\n\t\tNumber.range = function range(start, end, step = 1) {\n\t\t\tconsole.warn('`Number.range()` is deprecated. Use `Iterator.range()` instead.');\n\t\t\treturn globalThis.Iterator.range(start, end, { step });\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-iterator-helpers\n\t * @TODO implement `flat()`\n\t * @TODO implement `flatMap()`\n\t * @TODO implement `from()`\n\t */\n\tif (! ('Iterator' in globalThis)) {\n\t\tglobalThis.Iterator = {\n\t\t\t'prototype': Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())),\n\t\t};\n\t}\n\n\tconst Iterator = globalThis.Iterator;\n\n\tif (! (Iterator.range instanceof Function)) {\n\t\tIterator.range = function* range(start, end, option) {\n\t\t\tif (typeof option === 'number' || typeof option === 'bigint') {\n\t\t\t\tfor (const n of Iterator.range(start, end, { step: option })) {\n\t\t\t\t\tyield n;\n\t\t\t\t}\n\t\t\t} else if (typeof option !== 'object' || Object.is(option, null)) {\n\t\t\t\tfor (const n of Iterator.range(start, end, {})) {\n\t\t\t\t\tyield n;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst {\n\t\t\t\t\t// Default to +/-, Number/BigInt based on start & end\n\t\t\t\t\tstep = typeof start === 'number'\n\t\t\t\t\t\t? start < end ? 1 : -1\n\t\t\t\t\t\t: start < end ? 1n : -1n,\n\t\t\t\t\tinclusive = false,\n\t\t\t\t} = option;\n\n\t\t\t\tif (typeof start !== 'number' && typeof start !== 'bigint') {\n\t\t\t\t\tthrow new TypeError('Start must be a number');\n\t\t\t\t} else if (Number.isNaN(start)) {\n\t\t\t\t\tthrow new RangeError('Invalid start');\n\t\t\t\t} else if (typeof end !== 'number' && typeof end !== 'bigint') {\n\t\t\t\t\tthrow new TypeError('End must be a number');\n\t\t\t\t} else if (Number.isNaN(end)) {\n\t\t\t\t\tthrow new RangeError('Invalid end');\n\t\t\t\t} else if (typeof step !== 'number' && typeof step !== 'bigint') {\n\t\t\t\t\tthrow new TypeError('Step must be a number');\n\t\t\t\t} else if (Number.isNaN(step)) {\n\t\t\t\t\tthrow new RangeError('Invalid step');\n\t\t\t\t} else if (step === 0) {\n\t\t\t\t\tthrow new RangeError('Step must not be 0');\n\t\t\t\t} else if ((step < 0 && start < end) || (step > 0 && start > end)) {\n\t\t\t\t\treturn;\n\t\t\t\t} else if (inclusive) {\n\t\t\t\t\tif (step > 0) {\n\t\t\t\t\t\tfor (let n = start; n <= end; n+= step) {\n\t\t\t\t\t\t\tyield n;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let n = start; n >= end; n+= step) {\n\t\t\t\t\t\t\tyield n;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (step > 0) {\n\t\t\t\t\t\tfor (let n = start; n < end; n+= step) {\n\t\t\t\t\t\t\tyield n;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let n = start; n > end; n+= step) {\n\t\t\t\t\t\t\tyield n;\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\n\tif (! (Iterator.prototype[Symbol.toStringTag])) {\n\t\tIterator.prototype[Symbol.toStringTag] = 'Iterator';\n\t}\n\n\tif (! (Iterator.prototype.take instanceof Function)) {\n\t\tIterator.prototype.take = function* take(limit) {\n\t\t\tlet n = 0;\n\n\t\t\tfor (const item of this) {\n\t\t\t\tif (++n > limit) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.drop instanceof Function)) {\n\t\tIterator.prototype.drop = function* drop(limit) {\n\t\t\tlet n = 0;\n\t\t\tfor (const item of this) {\n\t\t\t\tif (n++ >= limit) {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.toArray instanceof Function)) {\n\t\tIterator.prototype.toArray = function toArray() {\n\t\t\treturn Array.from(this);\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.forEach instanceof Function)) {\n\t\tIterator.prototype.forEach = function forEach(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tcallback(item);\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.map instanceof Function)) {\n\t\tIterator.prototype.map = function* map(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tyield callback(item);\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.reduce instanceof Function)) {\n\t\tIterator.prototype.reduce = function reduce(callback, initialValue) {\n\t\t\tlet current = typeof initialValue === 'undefined' ? this.next().value : initialValue;\n\n\t\t\tfor (const item of this) {\n\t\t\t\tcurrent = callback(current, item);\n\t\t\t}\n\n\t\t\treturn current;\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.filter instanceof Function)) {\n\t\tIterator.prototype.filter = function* filter(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tif (callback(item)) {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.some instanceof Function)) {\n\t\tIterator.prototype.some = function some(callback) {\n\t\t\tlet retVal = false;\n\t\t\tfor (const item of this) {\n\t\t\t\tif (callback(item)) {\n\t\t\t\t\tretVal = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn retVal;\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.every instanceof Function)) {\n\t\tIterator.prototype.every = function every(callback) {\n\t\t\tlet retVal = true;\n\t\t\tfor (const item of this) {\n\t\t\t\tif (! callback(item)) {\n\t\t\t\t\tretVal = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn retVal;\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.find instanceof Function)) {\n\t\tIterator.prototype.find = function find(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tif (callback(item)) {\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.indexed instanceof Function)) {\n\t\tIterator.prototype.indexed = function* indexed() {\n\t\t\tlet n = 0;\n\t\t\tfor (const item of this) {\n\t\t\t\tyield [n++, item];\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! ('isSecureContext' in globalThis)) {\n\t\tconst hostnames = ['localhost', '127.0.0.1'];\n\t\tconst HTTPS = 'https:';\n\t\tconst protocols = [HTTPS, 'file:', 'wss:'];\n\t\tconst hasSecureScripts = (document = globalThis.document) => {\n\t\t\treturn [...document.scripts].every(({ src }) => {\n\t\t\t\tif (src.length === 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tconst { protocol, hostname } = new URL(src, document.baseURI);\n\t\t\t\t\treturn protocol === HTTPS || hostname === location.hostname;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tObject.defineProperty(globalThis, 'isSecureContext', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function isSecureContext() {\n\t\t\t\tif (window.parent !== window) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (protocols.includes(location.protocol) || hostnames.includes(location.hostname)) {\n\t\t\t\t\treturn hasSecureScripts();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n})();\n","const funcs = new WeakMap();\n\nexport const between = (min, val, max) => typeof val === 'number' && val >= min && val <= max;\n\nexport function getDeferred() {\n\tif (Promise.withResolvers instanceof Function) {\n\t\treturn Promise.withResolvers();\n\t} else {\n\t\tconst def = {};\n\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\tdef.resolve = resolve;\n\t\t\tdef.reject = reject;\n\t\t});\n\n\t\treturn def;\n\t}\n}\n\nexport function isAsyncFunction(what) {\n\treturn what instanceof Function && what.constructor.name === 'AsyncFunction';\n}\n\nexport function isAsync(what) {\n\treturn isAsyncFunction(what) || what instanceof Promise;\n}\n\nexport function isObject(thing) {\n\treturn typeof thing === 'object' && ! Object.is(thing, null) && ! Array.isArray(thing);\n}\n\nexport function getType(thing) {\n\tswitch (typeof thing) {\n\t\tcase 'undefined':\n\t\t\treturn 'Undefined';\n\n\t\tcase 'function':\n\t\t\tif ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else {\n\t\t\t\treturn 'Function';\n\t\t\t}\n\n\t\tcase 'object':\n\t\t\tif (Object.is(thing, null)) {\n\t\t\t\treturn 'Null';\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else if (Symbol.toStringTag in thing) {\n\t\t\t\treturn thing[Symbol.toStringTag];\n\t\t\t} else if ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else {\n\t\t\t\tconsole.log(thing);\n\t\t\t\treturn 'Unknown Object';\n\t\t\t}\n\n\t\tcase 'string':\n\t\t\treturn 'String';\n\n\t\tcase 'number':\n\t\t\treturn Number.isNaN(thing) ? 'NaN' : 'Number';\n\n\t\tcase 'bigint':\n\t\t\treturn 'BigInt';\n\n\t\tcase 'boolean':\n\t\t\treturn 'Boolean';\n\n\t\tcase 'symbol':\n\t\t\treturn 'Symbol';\n\n\t\tdefault:\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function callOnce(callback, thisArg) {\n\tif (callback.once instanceof Function) {\n\t\treturn callback.once(thisArg);\n\t} else {\n\t\treturn function(...args) {\n\t\t\tif (funcs.has(callback)) {\n\t\t\t\treturn funcs.get(callback);\n\t\t\t} else if (isAsyncFunction(callback)) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args).catch(err => {\n\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\tthrow err;\n\t\t\t\t});\n\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t} else if (callback instanceof Function) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args);\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t}\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Lock\n */\nconst protectedData = new WeakMap();\n\nexport class Lock {\n\tconstructor(name, mode = 'exclusive') {\n\t\tif (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`'${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tif (name.startsWith('-')) {\n\t\t\tthrow new DOMException('Names starting with `-` are reserved');\n\t\t}\n\n\t\tprotectedData.set(this, { name, mode });\n\t}\n\n\tget name() {\n\t\treturn protectedData.get(this).name;\n\t}\n\n\tget mode() {\n\t\treturn protectedData.get(this).mode;\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { getDeferred, isAsync } from './utility.js';\nimport { Lock } from './Lock.js';\nconst locks = new Map();\nconst symbols = {\n\tlockKey: Symbol('lock-key'),\n};\n\nexport const nativeSupport = 'locks' in navigator && navigator.locks.request instanceof Function;\nexport async function checkSupport() {\n\treturn await new Promise(resolve => {\n\t\tif ('locks' in navigator && navigator.locks.request instanceof Function) {\n\t\t\tnavigator.locks.query().then(() => resolve(true)).catch(() => resolve(false));\n\t\t} else {\n\t\t\tresolve(false);\n\t\t}\n\t});\n}\n/**\n * Some browsing contexts (iframes) have `navigator.locks` but methods only throw\n */\nexport const actuallySupported = checkSupport();\n\nasync function callFunction(callback, arg = null) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (isAsync(callback)) {\n\t\t\tcallback.call(globalThis, arg).then(resolve, reject);\n\t\t} else {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = callback.call(globalThis, arg);\n\t\t\t\t\tresolve(result);\n\t\t\t\t} catch(err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction shouldPend({ name, mode }) {\n\tswitch(mode) {\n\t\tcase 'exclusive': return getLocks().some(lock => lock.name === name);\n\t\tcase 'shared': return getLocks().some(lock => lock.name === name && lock.mode === 'exclusive');\n\t}\n}\n\nfunction stealLocks(name) {\n\t[...locks.entries()].filter(([lock]) => lock.name === name).forEach(([lock, { reject, controller }]) => {\n\t\trequestIdleCallback(() => {\n\t\t\tcontroller.abort();\n\t\t\tlocks.delete(lock);\n\t\t});\n\t\treject(new DOMException('The lock request is aborted'));\n\t});\n}\n\nasync function whenReleased(lock) {\n\tif (locks.has(lock)) {\n\t\tawait locks.get(lock).promise.catch(console.error);\n\t}\n}\n\nfunction queueTask(name, mode, callback) {\n\tconst { resolve, reject, promise } = getDeferred();\n\tconst controller = new AbortController();\n\tconst lock = new Lock(name, mode);\n\tconst pending = shouldPend(lock);\n\tlocks.set(lock, { resolve, reject, promise, callback, pending, controller });\n\treturn lock;\n}\n\nfunction setPending(lock, pending = true) {\n\tif (locks.has(lock)) {\n\t\tlocks.set(lock, {...locks.get(lock), pending });\n\t}\n}\n\nfunction isPending(lock) {\n\treturn lock instanceof Lock && locks.has(lock) && locks.get(lock).pending;\n}\n\nfunction getLocks(name) {\n\tif (typeof name === 'string') {\n\t\treturn [...locks.keys()].filter(lock => lock.name === name);\n\t} else {\n\t\treturn [...locks.keys()];\n\t}\n}\n\nfunction getHeldLocks(name) {\n\treturn getLocks(name).filter(lock => ! isPending(lock));\n}\n\nfunction getPendingLocks(name) {\n\treturn getLocks(name).filter(lock => isPending(lock));\n}\n\nasync function whenNotBlocked(lock) {\n\tswitch(lock.mode) {\n\t\tcase 'exclusive':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t\tcase 'shared':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l.mode === 'exclusive' && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t}\n}\n\nfunction getLockSignal(lock) {\n\tif (locks.has(lock)) {\n\t\treturn locks.get(lock).controller.signal;\n\t}\n}\n\nasync function executeLock(lock) {\n\tif (locks.has(lock)) {\n\t\tconst { resolve, reject, promise, callback, pending, controller } = locks.get(lock);\n\t\tif (pending) {\n\t\t\tsetPending(lock, false);\n\t\t}\n\n\t\tcallFunction(callback, lock).then(resolve, reject).finally(() => {\n\t\t\tlocks.delete(lock);\n\t\t\trequestIdleCallback(() => controller.abort());\n\t\t});\n\n\t\treturn promise;\n\t}\n}\n\n/**\n * @see https://w3c.github.io/web-locks/\n * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager\n */\nexport class LockManager {\n\tconstructor(key) {\n\t\tif (key !== symbols.lockKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\t}\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n\t * @param {[type]} name [description]\n\t * @param {[type]} args [description]\n\t * @return {Promise} [description]\n\t * static async request(name, callback)\n\t * static async request(name, { mode = 'exclusive', ifAvailable = false, steal = false, signal }, callback)\n\t */\n\tstatic async request(name, ...args) {\n\t\tlet opts = {}, callback;\n\t\tif (args[0] instanceof Function) {\n\t\t\tcallback = args[0];\n\t\t} else if (args[1] instanceof Function) {\n\t\t\t[opts, callback] = args;\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tconst { mode = 'exclusive', ifAvailable = false, steal = false, signal } = opts;\n\n\t\tif (steal && ifAvailable) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` and `ifAvailable` cannot be used together');\n\t\t} else if (name.startsWith('-')) {\n\t\t\tthrow new DOMException('LockManager.request: Names starting with `-` are reserved');\n\t\t} else if (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t} else if (signal instanceof AbortSignal && signal.aborted) {\n\t\t\tthrow signal.reason;\n\t\t} else if (mode === 'shared' && steal) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` is only supported for exclusive lock requests');\n\t\t}\n\n\t\tconst held = getHeldLocks(name);\n\t\tconst pending = getPendingLocks(name);\n\t\tconst alreadyLocked = [...held, ...pending].some(lock => lock.name === name);\n\n\t\tif (steal && alreadyLocked) {\n\t\t\tstealLocks(name);\n\t\t}\n\n\t\t/**\n\t\t * If shared & held lock found (none exclusive), then this lock may be held as well\n\t\t * If exclusive & held or pending lock found, this is pending\n\t\t */\n\t\tconst lock = queueTask(name, mode, callback);\n\t\tif (signal instanceof AbortSignal) {\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\tif (locks.has(lock)) {\n\t\t\t\t\tconst { reject, controller } = locks.get(lock);\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treject(new DOMException('The lock request is aborted'));\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t}\n\t\t\t}, { once: true, signal: getLockSignal(lock) });\n\t\t}\n\n\t\tswitch(mode) {\n\t\t\tcase 'exclusive': {\n\t\t\t\tif (ifAvailable && (held.length !== 0 || pending.length !== 0)) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'shared': {\n\t\t\t\tif (! ifAvailable) {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t} else if ([...held, ...pending].some(lock => lock.mode === 'exclusive')) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/query\n\t * @return {Promise} { held: [], pending: [] }\n\t */\n\tstatic async query() {\n\t\treturn {\n\t\t\theld: getHeldLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t\tpending: getPendingLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t};\n\t}\n}\n\nexport async function request(...args) {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.request(...args);\n\t} else {\n\t\treturn LockManager.request(...args);\n\t}\n}\n\nexport async function query() {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.query();\n\t} else {\n\t\treturn LockManager.query();\n\t}\n}\n\nexport async function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.Lock = Lock;\n\t\tglobalThis.LockManager = LockManager;\n\t\tnavigator.locks = LockManager;\n\t} else if (! await actuallySupported) {\n\t\tnavigator.locks.request = (...args) => LockManager.request(...args);\n\t\tnavigator.locks.query = () => LockManager.query();\n\t}\n}\n","export function errorToEvent(error, type = 'error') {\n\tif (error instanceof Error) {\n\t\tconst { message, name, fileName: filename, lineNumber: lineno, columnNumber: colno } = error;\n\t\treturn new ErrorEvent(type, { error, message: `${name}: ${message}`, filename, lineno, colno });\n\t} else {\n\t\tthrow new TypeError('`errorToEvent()` only accepts Errors');\n\t}\n}\n","import { LockManager, actuallySupported, nativeSupport } from './assets/LockManager.js';\nimport { errorToEvent } from './assets/error.js';\nlet polyfilled = false;\n\nconst polyfilledPromise = new Promise(async resolve => {\n\tif (nativeSupport) {\n\t\tif (await actuallySupported) {\n\t\t\tresolve(false);\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tnavigator.locks.request = LockManager.request;\n\t\t\t\tnavigator.locks.query = LockManager.query;\n\t\t\t\tpolyfilled = true;\n\t\t\t\tresolve(true);\n\t\t\t} catch(err) {\n\t\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\tnavigator.locks = LockManager;\n\t\t\tpolyfilled = true;\n\t\t\tresolve(true);\n\t\t} catch(err) {\n\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\tresolve(false);\n\t\t}\n\t}\n});\n\n\nexport { polyfilled, polyfilledPromise };\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.canShare instanceof Function)) {\n\t\tnavigator.canShare = function({ title, text, url, files } = {}) {\n\t\t\tif (! (navigator.share instanceof Function)) {\n\t\t\t\treturn false;\n\t\t\t} else if (Array.isArray(files) && files.length !== 0) {\n\t\t\t\treturn false;\n\t\t\t} else if ([title, text, url].every(arg => typeof arg === 'undefined')) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn [title, text, url].some(arg => typeof arg === 'string' && arg.length !== 0);\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.setAppBadge instanceof Function)) {\n\t\tnavigator.setAppBadge = async (n) => {\n\t\t\tif (! Number.isInteger(n)) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is not of type \\'unsigned long long\\'');\n\t\t\t} else if (n < 0) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is outside the \\'unsigned long long\\' value range.');\n\t\t\t} else if (n === 0) {\n\t\t\t\tif (document.title.startsWith('(')) {\n\t\t\t\t\tdocument.title = document.title.replace(/^\\((\\d{1,2}\\+?)\\)\\s/, '');\n\t\t\t\t}\n\t\t\t} else if (n < 100) {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(${n}) ${document.title}`;\n\t\t\t} else {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(99+) ${document.title}`;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (navigator.clearAppBadge instanceof Function)) {\n\t\tnavigator.clearAppBadge = () => navigator.setAppBadge(0);\n\t}\n})();\n","import './locks.js';\nimport './share.js';\nimport './appBadge.js';\n\nif (! Navigator.prototype.hasOwnProperty('pdfViewerEnabled')) {\n\tObject.defineProperty(navigator, 'pdfViewerEnabled', {\n\t\tenumerable: true,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t\tvalue: false,\n\t});\n}\n\nif (! (Navigator.prototype.getInstalledRelatedApps instanceof Function)) {\n\tNavigator.prototype.getInstalledRelatedApps = async () => [];\n}\n\nif (! (Navigator.prototype.getGamepads instanceof Function)) {\n\tNavigator.prototype.getGamepads = () => [];\n}\n\nif (! ('hardwareConcurrency' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'hardwareConcurrency', {\n\t\tget: () => 1,\n\t});\n}\n\nif (! ('connection' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'connection', {\n\t\tget: () => Object.create(EventTarget.prototype, {\n\t\t\ttype: { value: 'unknown' },\n\t\t\teffectiveType: { value: '4g' },\n\t\t\trtt: { value: NaN },\n\t\t\tdownlink: { value: NaN },\n\t\t\tdownlinkMax: { value: Infinity },\n\t\t\tsaveData: { value: false },\n\t\t\tonchange: { value: null, writable: true },\n\t\t\tontypechange: { value: null, writable: true },\n\t\t})\n\t});\n} else if (! ('type' in navigator.connection)) {\n\tnavigator.connection.type = 'unknown';\n}\n\nif (! ('doNotTrack' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'doNotTrack', {\n\t\tget: () => 'unspecified',\n\t});\n}\n\nif (! ('globalPrivacyControl' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'globalPrivacyControl', {\n\t\tget: () => false,\n\t});\n}\n","(function() {\n\t'use strict';\n\n\tif (! (globalThis.requestIdleCallback instanceof Function)) {\n\t\tconst isValidTimeout = timeout => Number.isSafeInteger(timeout) && timeout > 0;\n\n\t\tglobalThis.requestIdleCallback = function(callback, { timeout } = {}) {\n\t\t\tconst start = performance.now();\n\t\t\tconst timeRemaining = () => isValidTimeout(timeout)\n\t\t\t\t? Math.max(0, timeout - (performance.now() - start))\n\t\t\t\t: Math.max(0, 600 - (performance.now() - start));\n\n\t\t\treturn setTimeout(() => callback({\n\t\t\t\tdidTimeout: isValidTimeout(timeout) ? timeRemaining() === 0 : false,\n\t\t\t\ttimeRemaining,\n\t\t\t}), 1);\n\t\t};\n\t}\n\n\tif (! (globalThis.cancelIdleCallback instanceof Function)) {\n\t\tglobalThis.cancelIdleCallback = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.requestAnimationFrame instanceof Function)) {\n\t\tglobalThis.requestAnimationFrame = callback => setTimeout(() => callback(performance.now()), 1000 / 60);\n\t}\n\n\tif (! (globalThis.cancelAnimationFrame instanceof Function)) {\n\t\tglobalThis.cancelAnimationFrame = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.queueMicrotask instanceof Function)) {\n\t\tglobalThis.queueMicrotask = cb => Promise.resolve().then(cb)\n\t\t\t.catch(e => setTimeout(() => { throw e; }));\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! ('AbortSignal' in globalThis)) {\n\t\tconst symbols = {\n\t\t\tsignal: Symbol('signal'),\n\t\t\taborted: Symbol('aborted'),\n\t\t\treason: Symbol('reason'),\n\t\t\tonabort: Symbol('onabort'),\n\t\t};\n\n\t\tglobalThis.AbortError = class AbortError extends Error {};\n\n\t\tglobalThis.AbortSignal = class AbortSignal extends EventTarget {\n\t\t\tconstructor() {\n\t\t\t\tsuper();\n\n\t\t\t\tObject.defineProperties(this,{\n\t\t\t\t\t[symbols.aborted]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: false,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.reason]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.onabort]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tthis.addEventListener('abort', event => {\n\t\t\t\t\tif (this.onabort instanceof Function) {\n\t\t\t\t\t\tthis.onabort.call(this, event);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tget aborted() {\n\t\t\t\treturn this[symbols.aborted];\n\t\t\t}\n\n\t\t\tget onabort() {\n\t\t\t\treturn this[symbols.onabort];\n\t\t\t}\n\n\t\t\tset onabort(value) {\n\t\t\t\tif (value instanceof Function) {\n\t\t\t\t\tthis[symbols.onabort] = value;\n\t\t\t\t} else {\n\t\t\t\t\tthis[symbols.onabort] = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tget reason() {\n\t\t\t\treturn this[symbols.reason];\n\t\t\t}\n\n\t\t\tthrowIfAborted() {\n\t\t\t\tif (this.aborted) {\n\t\t\t\t\tthrow this.reason;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstatic abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = new AbortSignal();\n\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\treturn signal;\n\t\t\t}\n\t\t};\n\n\t\tglobalThis.AbortController = class AbortController {\n\t\t\tconstructor() {\n\t\t\t\tthis[symbols.signal] = new AbortSignal();\n\t\t\t}\n\n\t\t\tget signal() {\n\t\t\t\treturn this[symbols.signal];\n\t\t\t}\n\n\t\t\tabort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = this.signal;\n\n\t\t\t\tif (! signal.aborted) {\n\t\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\t\tsignal.dispatchEvent(new Event('abort'));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! ('reason' in AbortSignal.prototype)) {\n\t\tconst reasons = new WeakMap();\n\t\tconst abort = AbortController.prototype.abort;\n\n\t\tif (AbortSignal.abort instanceof Function) {\n\t\t\tconst staticAbort = AbortSignal.abort;\n\n\t\t\tAbortSignal.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = staticAbort();\n\t\t\t\treasons.set(signal, reason);\n\t\t\t\treturn signal;\n\t\t\t};\n\t\t} else {\n\t\t\tAbortSignal.abort = function abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tcontroller.abort(reason);\n\t\t\t\treturn controller.reason;\n\t\t\t};\n\t\t}\n\n\t\tObject.defineProperty(AbortSignal.prototype, 'reason', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function() {\n\t\t\t\tif (reasons.has(this)) {\n\t\t\t\t\treturn reasons.get(this);\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tAbortController.prototype.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\treasons.set(this.signal, reason);\n\t\t\tabort.call(this);\n\t\t};\n\t}\n\n\tif (! (AbortSignal.prototype.throwIfAborted instanceof Function)) {\n\t\tAbortSignal.prototype.throwIfAborted = function() {\n\t\t\tif (this.aborted) {\n\t\t\t\tthrow this.reason;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (AbortSignal.timeout instanceof Function)) {\n\t\tAbortSignal.timeout = function(ms) {\n\t\t\tif (typeof ms === 'undefined') {\n\t\t\t\tthrow new TypeError('At least one 1 argument required but only 0 passed');\n\t\t\t} else if (! Number.isFinite(ms)) {\n\t\t\t\tthrow new TypeError('Argument 1 is not a finite value, so it is out of range for unsigned long long.');\n\t\t\t} else if (ms < 0) {\n\t\t\t\tthrow new TypeError('Argument 1 is out of range for unsigned long long.');\n\t\t\t} else {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tsetTimeout(() => controller.abort(new DOMException('The operation timed out.')), ms);\n\t\t\t\treturn controller.signal;\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * @see https://chromestatus.com/feature/5202879349522432\n\t * @TODO How do I handle if a signal is already aborted\n\t * @TODO Should controller abort on a TypeError\n\t */\n\tif (! (AbortSignal.any instanceof Function)) {\n\t\tAbortSignal.any = function(signals) {\n\t\t\tif (! Array.isArray(signals)) {\n\t\t\t\tthrow new TypeError('Expected an array of signals');\n\t\t\t}\n\n\t\t\tconst controller = new AbortController();\n\n\t\t\tfor (const signal of signals) {\n\t\t\t\tif (! (signal instanceof AbortSignal)) {\n\t\t\t\t\tconst err = new TypeError('`signal` is not an `AbortSignal`');\n\t\t\t\t\tcontroller.abort(err);\n\t\t\t\t\tthrow err;\n\t\t\t\t} else if (signal.aborted) {\n\t\t\t\t\tcontroller.abort(signal.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\tcontroller.abort(target.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\t}, { signal: controller.signal });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn controller.signal;\n\t\t};\n\t}\n})();\n","import { errorToEvent } from './assets/error.js';\n\nif (! globalThis.hasOwnProperty('AggregateError')) {\n\tglobalThis.AggregateError = class AggregateError extends Error {\n\t\tconstructor(errors, message) {\n\t\t\tif (typeof message === 'undefined') {\n\t\t\t\tsuper(errors);\n\t\t\t\tthis.errors = [];\n\t\t\t} else {\n\t\t\t\tsuper(message);\n\t\t\t\tthis.errors = errors;\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (globalThis.reportError instanceof Function)) {\n\tglobalThis.reportError = function reportError(error) {\n\t\tglobalThis.dispatchEvent(errorToEvent(error));\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! ('MediaQueryListEvent' in globalThis)) {\n\t\t/**\n\t\t * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryListEvent\n\t\t */\n\t\tglobalThis.MediaQueryListEvent = class MediaQueryListEvent extends Event {\n\t\t\tconstructor(type, { media, matches } = {}) {\n\t\t\t\tsuper(type);\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t'media': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: media,\n\t\t\t\t\t},\n\t\t\t\t\t'matches': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: matches,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\n\tif ('MediaQueryList' in globalThis && ! (globalThis.MediaQueryList.prototype.addEventListener instanceof Function)) {\n\t\tconst targets = new WeakMap();\n\n\t\tconst listener = function listener() {\n\t\t\tconst { media, matches } = this;\n\t\t\tthis.dispatchEvent(new MediaQueryListEvent('change', { media, matches }));\n\t\t};\n\n\t\tconst init = function init(mql) {\n\t\t\tif (! targets.has(mql)) {\n\t\t\t\ttargets.set(mql, new EventTarget());\n\t\t\t\tmql.addListener(listener.bind(mql));\n\t\t\t}\n\n\t\t\treturn targets.get(mql);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.addEventListener = function addEventListener(type, callback, opts) {\n\t\t\tinit(this).addEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.removeEventListener = function removeEventListner(type, callback, opts) {\n\t\t\tinit(this).removeEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.dispatchEvent = function dispatchEvent(event) {\n\t\t\tinit(this).dispatchEvent(event);\n\t\t};\n\t}\n})();\n","if ('Promise' in globalThis) {\n\tif (! (Promise.prototype.finally instanceof Function)) {\n\t\tPromise.prototype.finally = function(callback) {\n\t\t\treturn this.then(async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t}, async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t});\n\t\t};\n\t}\n\n\tif (! (Promise.allSettled instanceof Function)) {\n\t\tPromise.allSettled = function(promises) {\n\t\t\treturn Promise.all(Array.from(promises).map(function(call) {\n\t\t\t\treturn new Promise(function(resolve) {\n\t\t\t\t\tif (! (call instanceof Promise)) {\n\t\t\t\t\t\tcall = Promise.resolve(call);\n\t\t\t\t\t}\n\t\t\t\t\tcall.then(function(value) {\n\t\t\t\t\t\tresolve({ status: 'fulfilled', value: value });\n\t\t\t\t\t}).catch(function(reason) {\n\t\t\t\t\t\tresolve({ status: 'rejected', reason: reason });\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}));\n\t\t};\n\t}\n\n\tif (! (Promise.any instanceof Function)) {\n\t\tPromise.any = (promises) => new Promise((resolve, reject) => {\n\t\t\tlet errors = [];\n\n\t\t\tpromises.forEach(promise => {\n\t\t\t\tpromise.then(resolve).catch(e => {\n\t\t\t\t\terrors.push(e);\n\t\t\t\t\tif (errors.length === promises.length) {\n\t\t\t\t\t\treject(new globalThis.AggregateError(errors, 'No Promise in Promise.any was resolved'));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tif (! (Promise.race instanceof Function)) {\n\t\tPromise.race = (promises) => new Promise((resolve, reject) => {\n\t\t\tpromises.forEach(promise => promise.then(resolve, reject));\n\t\t});\n\t}\n\n\tif (! (Promise.try instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-promise-try\n\t\t */\n\t\tPromise.try = callback => new Promise(resolve => resolve(callback()));\n\t}\n\n\tif (! (Promise.withResolvers instanceof Function)) {\n\t\tPromise.withResolvers = function() {\n\t\t\tconst def = {};\n\t\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\t\tdef.resolve = resolve;\n\t\t\t\tdef.reject = reject;\n\t\t\t});\n\n\t\t\treturn def;\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport class TextEncoder {\n\tget encoding() {\n\t\treturn 'utf-8';\n\t}\n\n\tencode(str) {\n\t\t// Identical to char up to 127, then [194, (n)] for n=(128-191),\n\t\t// then [194, (128-191)] for n=(192-255)\n\t\t// and it looks like this holds in intervals of 64\n\t\treturn new Uint8Array(str.split('').flatMap(char => {\n\t\t\tconst code = char.charCodeAt(0);\n\n\t\t\tif (code < 128) {\n\t\t\t\treturn [code];\n\t\t\t} else {\n\t\t\t\tconst pt = 194 + Math.floor((code - 128) / 64);\n\t\t\t\treturn [pt, (code % 64) + 128];\n\t\t\t}\n\t\t}));\n\t}\n\n\tencodeInto(str, ui8arr) {\n\t\tif (! (ui8arr instanceof Uint8Array)) {\n\t\t\tthrow new TypeError('TextEncoder.encodeInto: Argument 2 does not implement interface Uint8Array.');\n\t\t} else {\n\t\t\tconst encoded = this.encode(str);\n\t\t\tconst len = Math.min(ui8arr.length, encoded.length);\n\n\t\t\tif (encoded.length > ui8arr.length) {\n\t\t\t\tui8arr.set(encoded.slice(0, len));\n\t\t\t} else {\n\t\t\t\tui8arr.set(encoded);\n\t\t\t}\n\n\t\t\treturn { read: len, written: len };\n\t\t}\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { between } from './utility.js';\n/**\n *\n * Array of supported encodings\n * @Todo: At least add utf-16\n * @type {Array}\n */\nconst supportedEncodings = ['utf-8', 'utf8'];\n\nexport const BOM = new Uint8Array([0xEF, 0xBB, 0xBF]);\n\nexport class TextDecoder {\n\tconstructor(encoding = 'utf-8', { fatal = false, ignoreBOM = false } = {}) {\n\t\tif (typeof encoding !== 'string') {\n\t\t\tencoding = encoding.toString().toLowerCase();\n\t\t} else {\n\t\t\tencoding = encoding.toLowerCase();\n\t\t}\n\n\t\tif (! supportedEncodings.includes(encoding)) {\n\t\t\tthrow new RangeError(`TextDecoder constructor: The given encoding '${encoding}' is not supported.`);\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\tencoding: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: encoding,\n\t\t\t},\n\t\t\tfatal: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fatal,\n\t\t\t},\n\t\t\tignoreBOM: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: ignoreBOM,\n\t\t\t},\n\t\t});\n\t}\n\n\tdecode(data) {\n\t\tswitch(this.encoding) {\n\t\t\tcase 'utf-8':\n\t\t\tcase 'utf8': {\n\t\t\t\tlet prev = NaN;\n\t\t\t\t/**\n\t\t\t\t * For (0,127) we just take the charCode\n\t\t\t\t * For charCode 128+this will be in the form [n=194+, m=(128-191)]\n\t\t\t\t * where n increments after m reaches 191, increments, and rolls back to 128\n\t\t\t\t */\n\t\t\t\treturn data.reduce((str, i, n) => {\n\t\t\t\t\tif (Number.isNaN(prev) && i < 128) {\n\t\t\t\t\t\treturn str + String.fromCharCode(i);\n\t\t\t\t\t} else if (Number.isNaN(prev) && i > 193) {\n\t\t\t\t\t\tprev = i;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t} else if (prev > 193 && between(128, i, 194)) {\n\t\t\t\t\t\tconst offset = (prev - 194) * 64;\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str + String.fromCharCode(offset + i);\n\t\t\t\t\t} else if (this.fatal) {\n\t\t\t\t\t\tthrow new RangeError(`Unhandled character at postion ${n}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t}\n\t\t\t\t}, '');\n\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Unsupported encoding '${this.encoding}'`);\n\t\t}\n\t}\n}\n","import { TextEncoder } from './assets/TextEncoder.js';\nimport { TextDecoder } from './assets/TextDecoder.js';\n\nif (! ('TextEncoder' in globalThis)) {\n\tglobalThis.TextEncoder = TextEncoder;\n}\n\nif (! ('TextDecoder' in globalThis)) {\n\tglobalThis.TextDecoder = TextDecoder;\n}\n\nif (! (globalThis.TextEncoder.prototype.encodeInto instanceof Function)) {\n\tglobalThis.TextEncoder.prototype.encodeInto = function(...args) {\n\t\treturn TextEncoder.prototype.encodeInto.apply(this, args);\n\t};\n}\n","if (crypto in globalThis && ! (crypto.randomUUID instanceof Function)) {\n\tcrypto.randomUUID = function randomUUID() {\n\t\t'use strict';\n\t\treturn ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>\n\t\t\t(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n\t\t);\n\t};\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @SEE https://wicg.github.io/cookie-store/\n * @SEE https://wicg.github.io/cookie-store/explainer.html\n * @NOTE: This offers similar methods but is not a substitute and cannot get extended\n * cookie properties, such as expires, etc.\n *\n * @TODO verify spec compliance as best as is possible\n */\n\nexport const nativeSupport = 'cookieStore' in globalThis;\n\nconst symbols = {\n\tconstructor: Symbol('constructor'),\n};\n\nfunction getAllCookies() {\n\tif (document.cookie.length === 0) {\n\t\treturn [];\n\t} else {\n\t\treturn document.cookie.split(';').map(str => {\n\t\t\tconst [name, value = null] = str.split('=');\n\t\t\treturn {\n\t\t\t\tname: decodeURIComponent(name.trim()),\n\t\t\t\tvalue: typeof value === 'string' ? decodeURIComponent(value.trim()) : null,\n\t\t\t\tpath: undefined,\n\t\t\t\texpires: undefined,\n\t\t\t\tdomain: undefined,\n\t\t\t\tsameSite: undefined,\n\t\t\t\tsecure: undefined,\n\t\t\t};\n\t\t});\n\t}\n}\n\nfunction defaultParams({\n\tname,\n\tvalue = null,\n\tdomain = null,\n\tpath = '/',\n\texpires = null,\n\tmaxAge = null,\n\tsameSite = 'strict',\n\tsecure = false,\n\thttpOnly = false,\n}) {\n\treturn { name, value, domain, path, expires, maxAge, sameSite, secure, httpOnly };\n}\n\nfunction getter({ name = null, value = null } = {}) {\n\tif (typeof name === 'string') {\n\t\tname = decodeURIComponent(name);\n\t}\n\n\tif (typeof value === 'string') {\n\t\tvalue = decodeURIComponent(value);\n\t}\n\n\tif (typeof name === 'string' && typeof value === 'string') {\n\t\treturn getAllCookies().filter((cookie) =>\n\t\t\tcookie.name === name && cookie.value === value\n\t\t);\n\t} else if (typeof name === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.name === name);\n\t} else if (typeof value === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.value === value);\n\t} else {\n\t\treturn getAllCookies();\n\t}\n}\n\nfunction setter({\n\tname,\n\tvalue,\n\texpires = null,\n\tmaxAge = null,\n\tpath = '/',\n\tsameSite = 'strict',\n\tdomain = null,\n\tsecure = false,\n\thttpOnly = false,\n}) {\n\tif (Number.isInteger(maxAge)) {\n\t\tsetter({\n\t\t\tname, value, expires: Date.now() + maxAge, path, sameSite, domain, secure, httpOnly,\n\t\t});\n\t} else {\n\t\tlet cookie = `${encodeURIComponent(name)}=`;\n\n\t\tif (value) {\n\t\t\tcookie += encodeURIComponent(value);\n\t\t}\n\n\t\tif (Number.isInteger(expires)) {\n\t\t\tcookie += `;expires=${new Date(expires).toUTCString()}`;\n\t\t} else if (expires instanceof Date) {\n\t\t\tcookie += `;expires=${expires.toUTCString()}`;\n\t\t}\n\n\t\tif (typeof path === 'string') {\n\t\t\tcookie += `;path=${path}`;\n\t\t}\n\n\t\tif (typeof domain === 'string') {\n\t\t\tcookie += `;domain=${domain}`;\n\t\t}\n\n\t\tif (typeof sameSite === 'string') {\n\t\t\tcookie += `;sameSite=${sameSite}`;\n\t\t}\n\n\t\tif (secure === true) {\n\t\t\tcookie += ';secure';\n\t\t}\n\n\t\t/**\n\t\t * Does not work in any browser, but set regardless\n\t\t */\n\t\tif (httpOnly === true) {\n\t\t\tcookie += ';httponly';\n\t\t}\n\n\t\tdocument.cookie = cookie;\n\t}\n}\n\nexport class CookieStore extends EventTarget {\n\tconstructor(key) {\n\t\tif (key !== symbols.constructor) {\n\t\t\tthrow new DOMException('Invalid constructor');\n\t\t}\n\n\t\tsuper();\n\n\t\tObject.defineProperty(this, symbols.onchange, {\n\t\t\tenumerable: false,\n\t\t\tconfigurable: false,\n\t\t\twritable: true,\n\t\t\tvalue: null,\n\t\t});\n\t}\n\n\tget onchange() {\n\t\treturn this[symbols.onchange];\n\t}\n\n\tset onchange(callback) {\n\t\tif (this[symbols.onchange] instanceof Function) {\n\t\t\tthis.removeEventListener('change', this[symbols.onchange]);\n\t\t}\n\n\t\tif (callback instanceof Function) {\n\t\t\tthis.addEventListener('change', callback);\n\t\t}\n\t}\n\n\tasync get(args) {\n\t\tconst cookies = await this.getAll(args);\n\n\t\tif (Array.isArray(cookies) && cookies.length !== 0) {\n\t\t\treturn cookies[0];\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync getAll(args) {\n\t\tif (typeof args === 'string') {\n\t\t\treturn getter({ name: args });\n\t\t} else {\n\t\t\treturn getter(args);\n\t\t}\n\t}\n\n\tasync set(...args) {\n\t\tif (args.length === 1 && typeof args[0].name === 'string') {\n\t\t\tconst cookie = defaultParams(args[0]);\n\t\t\tsetter(cookie);\n\t\t\tconst event = new Event('change');\n\t\t\tevent.changed = [cookie];\n\t\t\tevent.deleted = [];\n\n\t\t\tthis.dispatchEvent(event);\n\t\t} else if (args.length === 2) {\n\t\t\tthis.set({ name: args[0], value: args[1] });\n\t\t} else {\n\t\t\tthrow new Error('Invalid arguments');\n\t\t}\n\t}\n\n\tasync delete(args = {}) {\n\t\tif (typeof args === 'string') {\n\t\t\tthis.delete({ name: args });\n\t\t} else if (typeof args.name === 'string') {\n\t\t\tconst cookies = await this.getAll(args);\n\n\t\t\tif (cookies.length !== 0) {\n\t\t\t\tconst event = new Event('change');\n\t\t\t\tevent.changed = [];\n\t\t\t\tevent.deleted = new Array(cookies.length);\n\n\t\t\t\tcookies.forEach((cookie, i) => {\n\t\t\t\t\tcookie.path = args.path || '/';\n\t\t\t\t\tcookie.domain = args.domain || null;\n\t\t\t\t\tcookie.secure = args.secure || null;\n\t\t\t\t\tdelete cookie.value;\n\t\t\t\t\tcookie.sameSite = args.sameSite || 'strict';\n\n\t\t\t\t\tevent.deleted[i] = cookie;\n\t\t\t\t\tsetter({...cookie, value: null, expires: 1 });\n\t\t\t\t});\n\n\t\t\t\tthis.dispatchEvent(event);\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to execute \\'delete\\' on \\'CookieStore\\': required member name is undefined.');\n\t\t}\n\t}\n}\n\nexport const cookieStore = new CookieStore(symbols.constructor);\n\nexport function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.cookieStore = cookieStore;\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { callOnce } from './utility.js';\n\nexport function setProp(el, prop, val, {\n\tpolicy,\n} = {}) {\n\tswitch(getPropertyType(el.tagName, prop)) {\n\t\tcase 'TrustedScript':\n\t\t\tel[prop] = createScript(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedScriptURL':\n\t\t\tel[prop] = createScriptURL(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tel[prop] = createHTML(val, { policy });\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tel[prop] = val;\n\t}\n}\n\nexport function setAttr(el, attr, val, {\n\telementNs,\n\tpolicy,\n} = {}) {\n\tswitch(getAttributeType(el.tagName, attr, elementNs)) {\n\t\tcase 'TrustedScriptURL':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNs(elementNs, attr, createScriptURL(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScriptURL(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedScript':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createScript(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScript(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createHTML(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createHTML(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, val);\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, val);\n\t\t\t}\n\t}\n}\n\nexport function supported() {\n\treturn 'trustedTypes' in globalThis\n\t\t&& trustedTypes instanceof EventTarget\n\t\t&& trustedTypes.createPolicy instanceof Function;\n}\n\nexport function isTrustPolicy(policy) {\n\tif ('TrustedTypePolicy' in globalThis && policy instanceof TrustedTypePolicy) {\n\t\treturn true;\n\t} else {\n\t\treturn policy != null && policy.createHTML instanceof Function;\n\t}\n}\n\nexport function hasDefaultPolicy() {\n\treturn supported() && isTrustPolicy(trustedTypes.defaultPolicy);\n}\n\nexport function getAttributeType(tagName, attribute, elementNs) {\n\tif (supported()) {\n\t\treturn trustedTypes.getAttributeType(tagName.toLowerCase(), attribute, elementNs);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function getPropertyType(tagName, property) {\n\tif (supported()) {\n\t\treturn trustedTypes.getPropertyType(tagName.toLowerCase(), property);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function isHTML(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScript(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScript(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScriptURL(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn typeof input === 'string' || input instanceof URL;\n\t}\n}\n\nexport function isTrustedType(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input) || trustedTypes.isScript(input) || trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn true;\n\t}\n}\n\nexport function createHTML(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isHTML(input)) {\n\t\treturn policy.createHTML(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScript(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScript(input)) {\n\t\treturn policy.createScript(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScriptURL(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScriptURL(input)) {\n\t\treturn policy.createScriptURL(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createPolicy(name, {\n\tcreateHTML = () => {\n\t\tthrow new TypeError('This policy does not provide `createHTML()`');\n\t},\n\tcreateScript = () => {\n\t\tthrow new TypeError('This policy does not provide `createScript()`');\n\t},\n\tcreateScriptURL = () => {\n\t\tthrow new TypeError('This policy does not provide `createScriptURL()`');\n\t},\n}) {\n\tif (supported()) {\n\t\treturn trustedTypes.createPolicy(name, { createHTML, createScript, createScriptURL });\n\t} else {\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tcreateHTML: (input, ...args) => createHTML(input.toString(), ...args),\n\t\t\tcreateScript: (input, ...args) => createScript(input.toString(), ...args),\n\t\t\tcreateScriptURL: (input, ...args) => createScriptURL(input.toString(), ...args),\n\t\t});\n\t}\n}\n\nexport function getDefaultPolicy() {\n\tif (supported()) {\n\t\treturn trustedTypes.defaultPolicy;\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport const createHTMLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createHTML: cb }));\n\nexport const createScriptPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScript: cb }));\n\nexport const createScriptURLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScriptURL: cb }));\n","(function() {\n\t'use strict';\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('finished')) {\n\t\tObject.defineProperty(Animation.prototype, 'finished', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (this.playState === 'finished') {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('finish', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('ready')) {\n\t\tObject.defineProperty(Animation.prototype, 'ready', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (! this.pending) {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('ready', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const events = Object.keys(\n\tObject.getOwnPropertyDescriptors(HTMLElement.prototype)\n).filter(desc => desc.startsWith('on'));\n\nexport const urls = [\n\t'action',\n\t'cite',\n\t'formaction',\n\t'href',\n\t'ping',\n\t'src',\n];\n","import { callOnce } from './utility.js';\n\nexport const getHTTPCSP = callOnce(async function getHTTPCSP() {\n\tconst { ok, headers } = await fetch(location.href, { method: 'HEAD' });\n\n\tif (ok && headers.has('Content-Security-Policy')) {\n\t\tconst directives = headers.get('Content-Security-Policy').trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t}\n});\n\nexport function getMetaCSP() {\n\tconst meta = document.head.querySelector('meta[http-equiv=\"Content-Security-Policy\"][content]');\n\n\tif (meta instanceof HTMLMetaElement) {\n\t\tconst directives = meta.content.trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t} else {\n\t\treturn {};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { supported as isSupported } from './trust.js';\nimport { events } from './attributes.js';\nimport { getMetaCSP, getHTTPCSP } from './csp.js';\n/**\n * @See https://github.com/w3c/webappsec-trusted-types/blob/main/src/trustedtypes.js\n * @See https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API\n */\n\n// `<html data-fetch-trust-csp=\"1\">` will enable using actual CSP\nconst fetchCSP = document.documentElement.dataset.fetchTrustCsp === '1';\n\nfunction parseCSP({ 'trusted-types': trustedTypes = null } = {}) {\n\tif (Array.isArray(trustedTypes)) {\n\t\tconst policies = new Set(trustedTypes);\n\t\tconst allowDuplicates = policies.has('\\'allow-duplicates\\'');\n\t\tconst hasNone = policies.has('\\'none\\'');\n\n\t\tif (allowDuplicates) {\n\t\t\tpolicies.delete('\\'allow-duplicates\\'');\n\t\t}\n\n\t\tif (hasNone) {\n\t\t\tpolicies.clear();\n\t\t}\n\n\t\tpolicies.add('empty#html');\n\t\tpolicies.add('empty#script');\n\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nasync function getActualCSP() {\n\tconst { policies, allowDuplicates = false, hasNone = false } = await getHTTPCSP().then(parseCSP);\n\n\tif (policies instanceof Set) {\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nfunction init() {\n\t// Temporary config if/while fetching actual CSP\n\t// Maps to `trusted-types 'allow-duplicates'`\n\tconst getAllowDuplicates = () => {\n\t\tconst csp = parseCSP(getMetaCSP());\n\n\t\tif (typeof csp === 'object' && 'allowDuplicates' in csp) {\n\t\t\treturn csp.allowDuplicates;\n\t\t} else {\n\t\t\treturn document.documentElement.dataset.allowTrustDuplicates === '1';\n\t\t}\n\t};\n\n\tconst getAllowedPolicies = () => {\n\t\tif (document.documentElement.dataset.hasOwnProperty('trustedPolicies')) {\n\t\t\treturn new Set([\n\t\t\t\t'empty#html', 'empty#script',\n\t\t\t\t...document.documentElement.dataset.trustedPolicies.split(' '),\n\t\t\t]);\n\t\t} else {\n\t\t\tconst { policies } = parseCSP(getMetaCSP());\n\n\t\t\tif (policies instanceof Set) {\n\t\t\t\treturn policies;\n\t\t\t} else {\n\t\t\t\treturn new Set(['empty#html', 'empty#script']);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst fromCSP = parseCSP(getMetaCSP());\n\n\tif (typeof fromCSP === 'object' && fromCSP.policies instanceof Set) {\n\t\tconst { policies: allowedPolicies, allowDuplicates } = fromCSP;\n\t\treturn { allowDuplicates, allowedPolicies };\n\t} else {\n\t\tconst allowDuplicates = getAllowDuplicates();\n\t\tconst allowedPolicies = getAllowedPolicies();\n\n\t\tif (allowedPolicies.has('\\'none\\'')) {\n\t\t\tallowedPolicies.clear();\n\t\t}\n\n\t\tallowedPolicies.add('empty#html');\n\t\tallowedPolicies.add('empty#script');\n\n\t\treturn { allowDuplicates, allowedPolicies };\n\t}\n}\n\nconst { allowDuplicates, allowedPolicies } = init();\n\n/**\n * [supported description]\n */\nexport const supported = isSupported();\n\n/**\n * [symbols description]\n * @type {Object}\n */\nconst symbols = {\n\ttrustedValue: Symbol('[[Data]]'),\n\ttrustedKey: Symbol('trusted-key'),\n\temptyHTML: Symbol('policy-empty#html'),\n\temptyScript: Symbol('policy-empty#script'),\n\tpolicy: Symbol.for('trust-policy'),\n\tdefaultPolicy: Symbol('default-policy'),\n\ttrustedTypesCSP: Symbol('trusted-types-csp'),\n};\n\nif (! Symbol.hasOwnProperty('toStringTag')) {\n\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n}\n\nconst policies = [];\n\nfunction getPolicy(name) {\n\treturn policies.find(policy => policy.name === name) || null;\n}\n\nfunction hasPolicy(name) {\n\treturn getPolicy(name) !== null;\n}\n\n/**\n * [getUnsetPolicyException description]\n * @param {TrustedTypePolicy} policy [description]\n * @param {String} method [description]\n */\nfunction getUnsetPolicyException(policy, method) {\n\treturn function() {\n\t\tthrow new TypeError(`Failed to execute '${method}' on 'TrustedTypePolicy': Policy ${policy.name}'s TrustedTypePolicyOptions did not specify a '${method}' member.`);\n\t};\n}\n\n/**\n * [TrustedType description]\n * @type {TrustedType}\n */\nexport class TrustedType {\n\t/**\n\t * [constructor description]\n\t * @param {String} value [description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(value, { key, policy }) {\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\t[symbols.trustedValue]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: value.toString(),\n\t\t\t\t},\n\t\t\t\t[symbols.policy]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: policy.name,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.freeze(this);\n\t\t}\n\t}\n\n\t/**\n\t * [toString description]\n\t * @return {String} [description]\n\t */\n\ttoString() {\n\t\treturn this.valueOf();\n\t}\n\n\t/**\n\t * [toJSON description]\n\t * @return {String} [description]\n\t */\n\ttoJSON() {\n\t\treturn this.valueOf();\n\t}\n\n\tvalueOf() {\n\t\treturn this[symbols.trustedValue];\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedHTML}\n */\nexport class TrustedHTML extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedHTML';\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedScript}\n */\nexport class TrustedScript extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScript';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedScriptURL}\n */\nexport class TrustedScriptURL extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScriptURL';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedTypePolicy}\n */\nexport class TrustedTypePolicy {\n\t/**\n\t * [constructor description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t * @param {String} key [description]\n\t */\n\tconstructor(name, { createHTML, createScript, createScriptURL } = {}, { key }) {\n\t\t// @TODO: Chrome seems to allow any same-origin scripts creating policies\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: name.toString(),\n\t\t\t\t},\n\t\t\t\tcreateHTML: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createHTML instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedHTML(\n\t\t\t\t\t\t\tcreateHTML(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createHTML'),\n\t\t\t\t},\n\t\t\t\tcreateScript: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScript instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScript(\n\t\t\t\t\t\t\tcreateScript(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScript'),\n\t\t\t\t},\n\t\t\t\tcreateScriptURL: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScriptURL instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScriptURL(\n\t\t\t\t\t\t\tcreateScriptURL(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScriptURL'),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * [enumerable description]\n * @type {TrustedTypePolicyFactory}\n */\nexport class TrustedTypePolicyFactory extends EventTarget {\n\t/**\n\t * [constructor description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(key) {\n\t\tsuper();\n\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\n\t\tif (fetchCSP) {\n\t\t\tgetActualCSP().then(({ policies, allowDuplicates = false, hasNone = false }) => {\n\t\t\t\tif (typeof policies !== 'undefined') {\n\t\t\t\t\tObject.defineProperty(TrustedTypePolicyFactory, symbols.trustedTypesCSP, {\n\t\t\t\t\t\tvalue: { policies, allowDuplicates, hasNone },\n\t\t\t\t\t\tenumberable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}).catch(err => console.error(err));\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\t[symbols.defaultPolicy]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: null,\n\t\t\t},\n\t\t\t[symbols.emptyHTML]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#html', { createHTML: () => '' }),\n\t\t\t},\n\t\t\t[symbols.emptyScript]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#script', { createScript: () => '' }),\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * [isHTML description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisHTML(value) {\n\t\treturn value instanceof globalThis.TrustedHTML;\n\t}\n\n\t/**\n\t * [isScript description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScript(value) {\n\t\treturn value instanceof globalThis.TrustedScript;\n\t}\n\n\t/**\n\t * [isScriptURL description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScriptURL(value) {\n\t\treturn value instanceof globalThis.TrustedScriptURL;\n\t}\n\n\t/**\n\t * [createPolicy description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t */\n\tcreatePolicy(name, { createHTML, createScript, createScriptURL } = {}) {\n\t\tconst policy = new TrustedTypePolicy(name, { createHTML, createScript, createScriptURL }, { key: symbols.trustedKey });\n\n\t\tif (! name.toString().match(/^[-#a-zA-Z0-9=_/@.%]+$/g)) {\n\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" contains invalid characters.`);\n\t\t} else if (TrustedTypePolicyFactory.hasOwnProperty(symbols.trustedTypesCSP)) {\n\t\t\t// This requires `fetch()` and parsing response headers, so will not be immediately available\n\t\t\tconst { policies, allowDuplicates, hasNone } = TrustedTypePolicyFactory[symbols.trustedTypesCSP];\n\n\t\t\t// Will always allow `empty#html` and `empty#script`\n\t\t\tif (hasNone && name !== 'empty#html' && name !== 'empty#script') {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if (! policies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t} else {\n\t\t\t// This is the fallback for before CSP headers are fetched and uses `document.documentElement.dataset`\n\t\t\tif (allowedPolicies.size > 2 && ! allowedPolicies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t}\n\n\t\tif (policy.name === 'default') {\n\t\t\tthis[symbols.defaultPolicy] = policy;\n\t\t}\n\n\t\tpolicies.push(policy);\n\n\t\treturn policy;\n\t}\n\n\t/**\n\t * [getAttributeType description]\n\t * @param {String} tagName [description]\n\t * @param {String} attribute [description]\n\t * @param {String} elementNs [description]\n\t * @return {String} [description]\n\t */\n\tgetAttributeType(tagName, attribute, elementNs/*, attrNs*/) {\n\t\ttagName = tagName.toLowerCase();\n\t\tattribute = attribute.toLowerCase();\n\n\t\t/**\n\t\t * @Todo handle namespaced attributes\n\t\t */\n\t\tif (typeof elementNS === 'string' && elementNs.length !== 0) {\n\t\t\treturn events.includes(attribute) ? 'TrustedScript' : null;\n\t\t}\n\n\t\t/**\n\t\t * This is an `on*` attribute\n\t\t */\n\t\tif (events.includes(attribute)) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'script': {\n\t\t\t\tif (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'iframe': {\n\t\t\t\tif (attribute === 'srcdoc') {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else if (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * [getPropertyType description]\n\t * @param {String} tagName [description]\n\t * @param {String} property [description]\n\t * @return {String} [description]\n\t */\n\tgetPropertyType(tagName, property/*, elementNS*/) {\n\t\ttagName = tagName.toLowerCase();\n\n\t\tif (events.includes(property.toLowerCase())) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'embed':\n\t\t\tcase 'iframe': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'script': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else if (['text', 'innerText', 'textContent', 'innerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedScript';\n\t\t\t\t} else if (['outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (['innerHTML', 'outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * [emptyHTML description]\n\t * @return {TrustedHTML}\n\t */\n\tget emptyHTML() {\n\t\treturn this[symbols.emptyHTML].createHTML('');\n\t}\n\n\t/**\n\t * [emptyScript description]\n\t * @return {TrustedScript}\n\t */\n\tget emptyScript() {\n\t\treturn this[symbols.emptyScript].createScript('');\n\t}\n\n\t/**\n\t * [defaultPolicy description]\n\t * @return {TrustedTypePolicy} [description]\n\t */\n\tget defaultPolicy() {\n\t\treturn this[symbols.defaultPolicy];\n\t}\n\n\t/**\n\t * For consistency with existing polyfill\n\t * @return {Boolean} [description]\n\t */\n\tget _isPolyfill_() {\n\t\treturn true;\n\t}\n\n\tstatic get allowDuplicates() {\n\t\treturn allowDuplicates;\n\t}\n}\n\n/**\n * [trustedTypes description]\n * @type {TrustedTypeFactory}\n */\nexport const trustedTypes = new TrustedTypePolicyFactory(symbols.trustedKey);\n\n/**\n * [polyfill description]\n * @return {[type]} [description]\n */\nexport function polyfill() {\n\tif (! ('TrustedTypePolicyFactory' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicyFactory = TrustedTypePolicyFactory;\n\t}\n\n\tif (! ('TrustedTypePolicy' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicy = TrustedTypePolicy;\n\t}\n\n\tif (! ('TrustedType' in globalThis)) {\n\t\tglobalThis.TrustedType = TrustedType;\n\t}\n\n\tif (! ('TrustedHTML' in globalThis)) {\n\t\tglobalThis.TrustedHTML = TrustedHTML;\n\t}\n\n\tif (! ('TrustedScript' in globalThis)) {\n\t\tglobalThis.TrustedScript = TrustedScript;\n\t}\n\n\tif (! ('TrustedScriptURL' in globalThis)) {\n\t\tglobalThis.TrustedScriptURL = TrustedScriptURL;\n\t}\n\n\tif (! ('trustedTypes' in globalThis)) {\n\t\tglobalThis.trustedTypes = trustedTypes;\n\t} else {\n\t\ttry {\n\t\t\t/**\n\t\t\t * Create these policies even if not needed to prevent\n\t\t\t * their use elsewhere. Not creating them but allowing them via CSP\n\t\t\t * would allow creating them as arbitrary policies.\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#html', { createHTML: () => '' });\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#script', { createScript: () => '' });\n\t\t} catch(err) {\n\t\t\tconsole.error(err);\n\t\t}\n\t}\n}\n\nexport const trustPolicies = [...allowedPolicies];\n","import { polyfill, trustPolicies } from './assets/TrustedTypes.js';\nconst polyfilled = polyfill();\nexport { trustPolicies, polyfilled };\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://wicg.github.io/sanitizer-api/#default-configuration-dictionary\n */\nexport const SanitizerConfigW3C = JSON.parse(`{\n \"allowCustomElements\": false,\n \"allowUnknownMarkup\": false,\n \"allowElements\": [\n \"a\",\n \"abbr\",\n \"acronym\",\n \"address\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"bdi\",\n \"bdo\",\n \"bgsound\",\n \"big\",\n \"blockquote\",\n \"body\",\n \"br\",\n \"button\",\n \"canvas\",\n \"caption\",\n \"center\",\n \"cite\",\n \"code\",\n \"col\",\n \"colgroup\",\n \"datalist\",\n \"dd\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"font\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"html\",\n \"i\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"keygen\",\n \"label\",\n \"layer\",\n \"legend\",\n \"li\",\n \"link\",\n \"listing\",\n \"main\",\n \"map\",\n \"mark\",\n \"marquee\",\n \"menu\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"nobr\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"output\",\n \"p\",\n \"picture\",\n \"popup\",\n \"pre\",\n \"progress\",\n \"q\",\n \"rb\",\n \"rp\",\n \"rt\",\n \"rtc\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"section\",\n \"select\",\n \"selectmenu\",\n \"small\",\n \"source\",\n \"span\",\n \"strike\",\n \"strong\",\n \"style\",\n \"sub\",\n \"summary\",\n \"sup\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"time\",\n \"tr\",\n \"track\",\n \"tt\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\"\n ],\n \"allowAttributes\": {\n \"abbr\": [\n \"*\"\n ],\n \"accept\": [\n \"*\"\n ],\n \"accept-charset\": [\n \"*\"\n ],\n \"accesskey\": [\n \"*\"\n ],\n \"action\": [\n \"*\"\n ],\n \"align\": [\n \"*\"\n ],\n \"alink\": [\n \"*\"\n ],\n \"allow\": [\n \"*\"\n ],\n \"allowfullscreen\": [\n \"*\"\n ],\n \"alt\": [\n \"*\"\n ],\n \"anchor\": [\n \"*\"\n ],\n \"archive\": [\n \"*\"\n ],\n \"as\": [\n \"*\"\n ],\n \"async\": [\n \"*\"\n ],\n \"autocapitalize\": [\n \"*\"\n ],\n \"autocomplete\": [\n \"*\"\n ],\n \"autocorrect\": [\n \"*\"\n ],\n \"autofocus\": [\n \"*\"\n ],\n \"autopictureinpicture\": [\n \"*\"\n ],\n \"autoplay\": [\n \"*\"\n ],\n \"axis\": [\n \"*\"\n ],\n \"background\": [\n \"*\"\n ],\n \"behavior\": [\n \"*\"\n ],\n \"bgcolor\": [\n \"*\"\n ],\n \"border\": [\n \"*\"\n ],\n \"bordercolor\": [\n \"*\"\n ],\n \"capture\": [\n \"*\"\n ],\n \"cellpadding\": [\n \"*\"\n ],\n \"cellspacing\": [\n \"*\"\n ],\n \"challenge\": [\n \"*\"\n ],\n \"char\": [\n \"*\"\n ],\n \"charoff\": [\n \"*\"\n ],\n \"charset\": [\n \"*\"\n ],\n \"checked\": [\n \"*\"\n ],\n \"cite\": [\n \"*\"\n ],\n \"class\": [\n \"*\"\n ],\n \"classid\": [\n \"*\"\n ],\n \"clear\": [\n \"*\"\n ],\n \"code\": [\n \"*\"\n ],\n \"codebase\": [\n \"*\"\n ],\n \"codetype\": [\n \"*\"\n ],\n \"color\": [\n \"*\"\n ],\n \"cols\": [\n \"*\"\n ],\n \"colspan\": [\n \"*\"\n ],\n \"compact\": [\n \"*\"\n ],\n \"content\": [\n \"*\"\n ],\n \"contenteditable\": [\n \"*\"\n ],\n \"controls\": [\n \"*\"\n ],\n \"controlslist\": [\n \"*\"\n ],\n \"conversiondestination\": [\n \"*\"\n ],\n \"coords\": [\n \"*\"\n ],\n \"crossorigin\": [\n \"*\"\n ],\n \"csp\": [\n \"*\"\n ],\n \"data\": [\n \"*\"\n ],\n \"datetime\": [\n \"*\"\n ],\n \"declare\": [\n \"*\"\n ],\n \"decoding\": [\n \"*\"\n ],\n \"default\": [\n \"*\"\n ],\n \"defer\": [\n \"*\"\n ],\n \"dir\": [\n \"*\"\n ],\n \"direction\": [\n \"*\"\n ],\n \"dirname\": [\n \"*\"\n ],\n \"disabled\": [\n \"*\"\n ],\n \"disablepictureinpicture\": [\n \"*\"\n ],\n \"disableremoteplayback\": [\n \"*\"\n ],\n \"disallowdocumentaccess\": [\n \"*\"\n ],\n \"download\": [\n \"*\"\n ],\n \"draggable\": [\n \"*\"\n ],\n \"elementtiming\": [\n \"*\"\n ],\n \"enctype\": [\n \"*\"\n ],\n \"end\": [\n \"*\"\n ],\n \"enterkeyhint\": [\n \"*\"\n ],\n \"event\": [\n \"*\"\n ],\n \"exportparts\": [\n \"*\"\n ],\n \"face\": [\n \"*\"\n ],\n \"for\": [\n \"*\"\n ],\n \"form\": [\n \"*\"\n ],\n \"formaction\": [\n \"*\"\n ],\n \"formenctype\": [\n \"*\"\n ],\n \"formmethod\": [\n \"*\"\n ],\n \"formnovalidate\": [\n \"*\"\n ],\n \"formtarget\": [\n \"*\"\n ],\n \"frame\": [\n \"*\"\n ],\n \"frameborder\": [\n \"*\"\n ],\n \"headers\": [\n \"*\"\n ],\n \"height\": [\n \"*\"\n ],\n \"hidden\": [\n \"*\"\n ],\n \"high\": [\n \"*\"\n ],\n \"href\": [\n \"*\"\n ],\n \"hreflang\": [\n \"*\"\n ],\n \"hreftranslate\": [\n \"*\"\n ],\n \"hspace\": [\n \"*\"\n ],\n \"http-equiv\": [\n \"*\"\n ],\n \"id\": [\n \"*\"\n ],\n \"imagesizes\": [\n \"*\"\n ],\n \"imagesrcset\": [\n \"*\"\n ],\n \"importance\": [\n \"*\"\n ],\n \"impressiondata\": [\n \"*\"\n ],\n \"impressionexpiry\": [\n \"*\"\n ],\n \"incremental\": [\n \"*\"\n ],\n \"inert\": [\n \"*\"\n ],\n \"inputmode\": [\n \"*\"\n ],\n \"integrity\": [\n \"*\"\n ],\n \"invisible\": [\n \"*\"\n ],\n \"is\": [\n \"*\"\n ],\n \"ismap\": [\n \"*\"\n ],\n \"keytype\": [\n \"*\"\n ],\n \"kind\": [\n \"*\"\n ],\n \"label\": [\n \"*\"\n ],\n \"lang\": [\n \"*\"\n ],\n \"language\": [\n \"*\"\n ],\n \"latencyhint\": [\n \"*\"\n ],\n \"leftmargin\": [\n \"*\"\n ],\n \"link\": [\n \"*\"\n ],\n \"list\": [\n \"*\"\n ],\n \"loading\": [\n \"*\"\n ],\n \"longdesc\": [\n \"*\"\n ],\n \"loop\": [\n \"*\"\n ],\n \"low\": [\n \"*\"\n ],\n \"lowsrc\": [\n \"*\"\n ],\n \"manifest\": [\n \"*\"\n ],\n \"marginheight\": [\n \"*\"\n ],\n \"marginwidth\": [\n \"*\"\n ],\n \"max\": [\n \"*\"\n ],\n \"maxlength\": [\n \"*\"\n ],\n \"mayscript\": [\n \"*\"\n ],\n \"media\": [\n \"*\"\n ],\n \"method\": [\n \"*\"\n ],\n \"min\": [\n \"*\"\n ],\n \"minlength\": [\n \"*\"\n ],\n \"multiple\": [\n \"*\"\n ],\n \"muted\": [\n \"*\"\n ],\n \"name\": [\n \"*\"\n ],\n \"nohref\": [\n \"*\"\n ],\n \"nomodule\": [\n \"*\"\n ],\n \"nonce\": [\n \"*\"\n ],\n \"noresize\": [\n \"*\"\n ],\n \"noshade\": [\n \"*\"\n ],\n \"novalidate\": [\n \"*\"\n ],\n \"nowrap\": [\n \"*\"\n ],\n \"object\": [\n \"*\"\n ],\n \"open\": [\n \"*\"\n ],\n \"optimum\": [\n \"*\"\n ],\n \"part\": [\n \"*\"\n ],\n \"pattern\": [\n \"*\"\n ],\n \"ping\": [\n \"*\"\n ],\n \"placeholder\": [\n \"*\"\n ],\n \"playsinline\": [\n \"*\"\n ],\n \"policy\": [\n \"*\"\n ],\n \"poster\": [\n \"*\"\n ],\n \"preload\": [\n \"*\"\n ],\n \"pseudo\": [\n \"*\"\n ],\n \"readonly\": [\n \"*\"\n ],\n \"referrerpolicy\": [\n \"*\"\n ],\n \"rel\": [\n \"*\"\n ],\n \"reportingorigin\": [\n \"*\"\n ],\n \"required\": [\n \"*\"\n ],\n \"resources\": [\n \"*\"\n ],\n \"rev\": [\n \"*\"\n ],\n \"reversed\": [\n \"*\"\n ],\n \"role\": [\n \"*\"\n ],\n \"rows\": [\n \"*\"\n ],\n \"rowspan\": [\n \"*\"\n ],\n \"rules\": [\n \"*\"\n ],\n \"sandbox\": [\n \"*\"\n ],\n \"scheme\": [\n \"*\"\n ],\n \"scope\": [\n \"*\"\n ],\n \"scopes\": [\n \"*\"\n ],\n \"scrollamount\": [\n \"*\"\n ],\n \"scrolldelay\": [\n \"*\"\n ],\n \"scrolling\": [\n \"*\"\n ],\n \"select\": [\n \"*\"\n ],\n \"selected\": [\n \"*\"\n ],\n \"shadowroot\": [\n \"*\"\n ],\n \"shadowrootdelegatesfocus\": [\n \"*\"\n ],\n \"shape\": [\n \"*\"\n ],\n \"size\": [\n \"*\"\n ],\n \"sizes\": [\n \"*\"\n ],\n \"slot\": [\n \"*\"\n ],\n \"span\": [\n \"*\"\n ],\n \"spellcheck\": [\n \"*\"\n ],\n \"src\": [\n \"*\"\n ],\n \"srcdoc\": [\n \"*\"\n ],\n \"srclang\": [\n \"*\"\n ],\n \"srcset\": [\n \"*\"\n ],\n \"standby\": [\n \"*\"\n ],\n \"start\": [\n \"*\"\n ],\n \"step\": [\n \"*\"\n ],\n \"style\": [\n \"*\"\n ],\n \"summary\": [\n \"*\"\n ],\n \"tabindex\": [\n \"*\"\n ],\n \"target\": [\n \"*\"\n ],\n \"text\": [\n \"*\"\n ],\n \"title\": [\n \"*\"\n ],\n \"topmargin\": [\n \"*\"\n ],\n \"translate\": [\n \"*\"\n ],\n \"truespeed\": [\n \"*\"\n ],\n \"trusttoken\": [\n \"*\"\n ],\n \"type\": [\n \"*\"\n ],\n \"usemap\": [\n \"*\"\n ],\n \"valign\": [\n \"*\"\n ],\n \"value\": [\n \"*\"\n ],\n \"valuetype\": [\n \"*\"\n ],\n \"version\": [\n \"*\"\n ],\n \"virtualkeyboardpolicy\": [\n \"*\"\n ],\n \"vlink\": [\n \"*\"\n ],\n \"vspace\": [\n \"*\"\n ],\n \"webkitdirectory\": [\n \"*\"\n ],\n \"width\": [\n \"*\"\n ],\n \"wrap\": [\n \"*\"\n ]\n }\n}`);\n\nexport const {\n\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n} = SanitizerConfigW3C;\n\nexport const SanitizerConfig = SanitizerConfigW3C;\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { SanitizerConfig as defaultConfig } from './SanitizerConfigW3C.js';\nimport { createPolicy } from './trust.js';\nimport { isObject, getType, callOnce } from './utility.js';\nimport { urls } from './attributes.js';\n\nexport const supported = () => 'Sanitizer' in globalThis;\nexport const nativeSupport = supported();\n\nexport const setHTML = function setHTML(el, input, opts = defaultConfig) {\n\tconst doc = safeParseHTML(input, opts);\n\tel.replaceChildren(documentToFragment(doc));\n};\n\nconst allowProtocols = ['https:'];\n\nif (! allowProtocols.includes(location.protocol)) {\n\tallowProtocols.push(location.protocol);\n}\nconst policyName = 'sanitizer-raw#html';\nconst getPolicy = callOnce(() => createPolicy(policyName, { createHTML: input => input }));\nconst createHTML = input => getPolicy().createHTML(input);\n\nexport function documentToFragment(doc) {\n\tconst frag = document.createDocumentFragment();\n\tconst clone = doc.cloneNode(true);\n\tfrag.append(...clone.head.childNodes, ...clone.body.childNodes);\n\treturn frag;\n}\n\n/**\n * Helper function to adapt to changes in spec\n */\nexport function convertSanitizerConfig({\n\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\tblockElements, dropAttributes, dropElements, allowUnknownMarkup, sanitizer,\n} = {}, context) {\n\tif (sanitizer instanceof Sanitizer) {\n\t\treturn convertSanitizerConfig(sanitizer.getConfiguration(), context);\n\t} else {\n\t\tswitch (context) {\n\t\t\tdefault:\n\t\t\t\tif (typeof allowAttributes === 'undefined' && typeof dropAttributes === 'undefined') {\n\t\t\t\t\tallowAttributes = defaultConfig.allowAttributes;\n\t\t\t\t}\n\n\t\t\t\tif (typeof allowElements === 'undefined' && typeof dropElements === 'undefined') {\n\t\t\t\t\tallowElements = defaultConfig.allowElements;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t};\n\t\t}\n\t}\n}\n\nexport function convertToSanitizerConfig({\n\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n} = {}) {\n\tif (typeof allowAttributes === 'undefined' && typeof dropAttributes === 'undefined') {\n\t\tallowAttributes = defaultConfig.allowAttributes;\n\t}\n\n\tif (typeof allowElements === 'undefined' && typeof dropElements === 'undefined') {\n\t\tallowElements = defaultConfig.allowElements;\n\t}\n\treturn {\n\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t};\n}\n\nexport function safeParseHTML(input, opts = defaultConfig) {\n\tconst doc = new DOMParser().parseFromString(createHTML(input), 'text/html');\n\t// Not sure if this will be in spec, but it is necessary\n\tif (Array.isArray(opts.allowElements) && ! opts.allowElements.includes('html') ) {\n\t\topts.allowElements = [...new Set([...opts.allowElements, 'html' ,'head', 'body'])];\n\t}\n\treturn sanitizeNode(doc, opts);\n}\n\nexport function sanitize(input, opts = defaultConfig) {\n\tif (! (input instanceof Node)) {\n\t\tthrow new TypeError('sanitize requires a Document or DocumentFragment');\n\t} else if (input.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\treturn sanitizeNode(input, opts);\n\t} else if (input.nodeType === Node.DOCUMENT_NODE) {\n\t\treturn sanitizeNode(documentToFragment(input), opts);\n\t} else {\n\t\tthrow new TypeError('sanitize requires a Document or DocumentFragment');\n\t}\n}\n\nexport function sanitizeFor(tag, content, opts = defaultConfig) {\n\tconst el = document.createElement(tag);\n\tconst temp = document.createElement('template');\n\ttemp.innerHTML = createHTML(content);\n\tel.append(sanitize(temp.content, opts));\n\treturn el;\n}\n\nexport function sanitizeNode(root, opts = defaultConfig) {\n\ttry {\n\t\tif (! (root instanceof Node)) {\n\t\t\tthrow new TypeError(`Expected a Node but got a ${getType(root)}.`);\n\t\t} else if (! isObject(opts)) {\n\t\t\tthrow new TypeError(`Expected config to be an object but got ${getType(opts)}.`);\n\t\t}\n\n\t\tconst {\n\t\t\tallowElements, allowComments, allowAttributes, allowCustomElements,\n\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t} = convertSanitizerConfig(opts);\n\n\t\tconst iter = document.createNodeIterator(\n\t\t\troot,\n\t\t\tNodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT,\n\t\t);\n\n\t\tlet node = iter.root.nodeType === Node.ELEMENT_NODE\n\t\t\t? iter.root\n\t\t\t: iter.nextNode();\n\n\t\twhile (node instanceof Node) {\n\t\t\tswitch(node.nodeType) {\n\t\t\t\tcase Node.ELEMENT_NODE: {\n\t\t\t\t\tif (\n\t\t\t\t\t\t! allowUnknownMarkup\n\t\t\t\t\t\t&& ( ! (node instanceof HTMLElement) || node instanceof HTMLUnknownElement)\n\t\t\t\t\t) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tag = node.tagName.toLowerCase();\n\n\t\t\t\t\tif (Array.isArray(dropElements) && dropElements.includes(tag)) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t} else if (Array.isArray(blockElements) && blockElements.includes(tag)) {\n\t\t\t\t\t\tif (node.hasChildNodes()) {\n\t\t\t\t\t\t\tnode.replaceWith(...node.childNodes);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tag.includes('-') && ! allowCustomElements) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t} else if (Array.isArray(allowElements) && ! allowElements.includes(tag)) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (node.hasAttributes()) {\n\t\t\t\t\t\t\tnode.getAttributeNames().forEach(name => {\n\t\t\t\t\t\t\t\tconst attr = node.getAttributeNode(name);\n\t\t\t\t\t\t\t\tconst { value } = attr;\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\turls.includes(name)\n\t\t\t\t\t\t\t\t\t&& ! allowProtocols.includes(new URL(value, document.baseURI).protocol)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tnode.removeAttributeNode(attr);\n\t\t\t\t\t\t\t\t} else if (isObject(dropAttributes)) {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tname in dropAttributes\n\t\t\t\t\t\t\t\t\t\t&& ['*', tag].some(sel => dropAttributes[name].includes(sel))\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tnode.removeAttributeNode(attr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (isObject(allowAttributes)) {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t! (name in allowAttributes\n\t\t\t\t\t\t\t\t\t\t&& ['*', tag].some(sel => allowAttributes[name].includes(sel)))\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tnode.removeAttributeNode(attr);\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});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase Node.COMMENT_NODE: {\n\t\t\t\t\tif (! allowComments) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.localName === 'template') {\n\t\t\t\tsanitizeNode(node.content, opts);\n\t\t\t}\n\n\t\t\tnode = iter.nextNode();\n\t\t}\n\n\t\treturn root;\n\t} catch(err) {\n\t\tconsole.error(err);\n\t\troot.parentElement.removeChild(root);\n\t}\n}\n\nexport function getSantizerUtils(Sanitizer, defaultConfig) {\n\tconst polyfill = function polyfill() {\n\t\tlet polyfilled = false;\n\n\t\tif (! supported()) {\n\t\t\tglobalThis.Sanitizer = Sanitizer;\n\t\t\tpolyfilled = true;\n\t\t} else {\n\t\t\tif (! (globalThis.Sanitizer.getDefaultConfiguration instanceof Function)) {\n\t\t\t\tglobalThis.Sanitizer.getDefaultConfiguration = function() {\n\t\t\t\t\treturn defaultConfig;\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (globalThis.Sanitizer.prototype.getConfiguration instanceof Function)) {\n\t\t\t\tconst configs = new WeakMap();\n\t\t\t\tconst SanitizerNative = globalThis.Sanitizer;\n\n\t\t\t\tglobalThis.Sanitizer = class Sanitizer extends SanitizerNative {\n\t\t\t\t\tconstructor({\n\t\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t\t} = SanitizerNative.getDefaultConfiguration()) {\n\t\t\t\t\t\tsuper({\n\t\t\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconfigs.set(this, {\n\t\t\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tgetConfiguration() {\n\t\t\t\t\t\treturn configs.get(this);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (globalThis.Sanitizer.prototype.sanitize instanceof Function)) {\n\t\t\t\tglobalThis.Sanitizer.prototype.sanitize = function(input) {\n\t\t\t\t\tif (! (input instanceof Node)) {\n\t\t\t\t\t\tthrow new TypeError('`Sanitizer.sanitize()` expects a `Node`');\n\t\t\t\t\t} else if (! [Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE].includes(input.nodeType)) {\n\t\t\t\t\t\tthrow new TypeError('Expected a Document or DocumentFragment in `Sanitizer.sanitize()`.');\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn sanitize(input, this.getConfiguration());\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (globalThis.Sanitizer.prototype.sanitizeFor instanceof Function)) {\n\t\t\t\tglobalThis.Sanitizer.prototype.sanitizeFor = function(element, input) {\n\t\t\t\t\tconst el = document.createElement(element);\n\t\t\t\t\tsetHTML(el, input,this.getConfiguration());\n\t\t\t\t\treturn el;\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (Element.prototype.setHTML instanceof Function)) {\n\t\t\t\tElement.prototype.setHTML = function(input, opts = defaultConfig) {\n\t\t\t\t\tsetHTML(this, input, opts);\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\t\t}\n\n\t\treturn polyfilled;\n\t};\n\n\treturn { setHTML, polyfill };\n}\n\nexport const trustPolicies = [policyName];\n","/**\n * @copyright 2022-2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { nativeSupport, getSantizerUtils, sanitize, trustPolicies } from './sanitizerUtils.js';\nimport { SanitizerConfig as defaultConfig } from './SanitizerConfigW3C.js';\n\nconst protectedData = new WeakMap();\n\n/**\n * Need to create a policy for the Sanitizer API since\n * `trustedTypes.defaultPolicy.createHTML` will most likely use `new Sanitizer().sanitize()`\n * which would create infinite recursion.\n * @type {TrustedTypePolicy}\n */\n\n\n/**\n * @SEE https://wicg.github.io/sanitizer-api/\n * @SEE https://developer.mozilla.org/en-US/docs/Web/API/Sanitizer/Sanitizer\n * @TODO: Figure out how to handle `allowElements`, `allowAttributes`, and how each\n * works with their `block*` and/or `drop*` counterparts.\n * @TODO: Handle `svg:*` and `mathml:*`\n *\n * @NOTE: The spec is still under development and is likely to change.\n * @NOTE: This is a very imperfect implementation and may not perform very well,\n * as it may involve a lot of querying & modifying.\n */\nexport class Sanitizer {\n\tconstructor({\n\t\tallowElements, allowAttributes, blockElements, dropAttributes,\n\t\tdropElements, allowComments = defaultConfig.allowComments,\n\t\tallowCustomElements = defaultConfig.allowCustomElements,\n\t\tallowUnknownMarkup = defaultConfig.allowUnknownMarkup,\n\t} = Sanitizer.getDefaultConfiguration()) {\n\t\tprotectedData.set(this, {\n\t\t\tallowElements, allowComments, allowAttributes, allowCustomElements,\n\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t});\n\t}\n\n\tgetConfiguration() {\n\t\treturn protectedData.get(this);\n\t}\n\n\tsanitize(input) {\n\t\treturn sanitize(input, this.getConfiguration());\n\t}\n\n\tsanitizeFor(tag, content) {\n\t\tconst el = document.createElement(tag);\n\t\tel.setHTML(content, this.getConfiguration());\n\t\treturn el;\n\t}\n\n\tstatic getDefaultConfiguration() {\n\t\treturn defaultConfig;\n\t}\n}\n\nconst { setHTML, polyfill } = getSantizerUtils(Sanitizer, defaultConfig);\nexport { nativeSupport, setHTML, polyfill, trustPolicies };\n","import { polyfill, trustPolicies } from '../assets/Sanitizer.js';\nexport const polyfilled = polyfill();\nexport { trustPolicies };\n","/**\n * This **REQUIRES** a CSP with `style-src blob:`\n */\nexport const adoptedStyleSheets = {\n\tget() {\n\t\treturn Array.from(this.styleSheets)\n\t\t\t.filter(sheet => sheet.ownerNode.classList.contains('_adopted'));\n\t},\n\tset(sheets) {\n\t\tif (! Array.isArray(sheets)) {\n\t\t\tthrow new TypeError('Must be an array');\n\t\t} else {\n\t\t\tconst current = new Set(this.adoptedStyleSheets);\n\n\t\t\tcurrent.difference(sheets).forEach(sheet => sheet.ownerNode.remove());\n\n\t\t\tconst links = [...new Set(sheets).difference(current)].map(sheet => {\n\t\t\t\tconst link = document.createElement('link');\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tconst signal = controller.signal;\n\t\t\t\tconst url = URL.createObjectURL(new File([], 'adopted.css', { type: 'text/css' }));\n\t\t\t\tlink.rel = 'stylesheet';\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.classList.add('_adopted');\n\t\t\t\tlink.disabled = sheet.disabled;\n\n\n\t\t\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tlink.media = sheet.media.mediaText;\n\t\t\t\t\t[...sheet.cssRules].forEach((rule, index) => {\n\t\t\t\t\t\ttarget.sheet.insertRule(rule.cssText, index);\n\t\t\t\t\t});\n\n\t\t\t\t\tsetTimeout(() => URL.revokeObjectURL(target.href), 100);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tURL.revokeObjectURL(target.href);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\treturn link;\n\t\t\t});\n\n\t\t\tif (this instanceof Document) {\n\t\t\t\tthis.head.append(...links);\n\t\t\t} else {\n\t\t\t\tthis.append(...links);\n\t\t\t}\n\t\t}\n\t}\n};\n","export function createSheet(rules = '', { disabled = false, media } = {}) {\n\tconst style = Document.parseHTML(\n\t\t`<style>${rules}</style>`,\n\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t);\n\n\tconst sheet = style.styleSheets.item(0);\n\n\tif (typeof media === 'string') {\n\t\tsheet.media.appendMedium(media);\n\t}\n\tsheet.disabled = disabled;\n\treturn sheet;\n}\n\nexport function clearCSSRules(sheet) {\n\twhile (sheet.cssRules.length > 0) {\n\t\tsheet.deleteRule(0);\n\t}\n}\n\ntry {\n\tnew CSSStyleSheet();\n} catch {\n\tconst NativeStyleSheet = globalThis.CSSStyleSheet;\n\n\tglobalThis.CSSStyleSheet = function CSSStyleSheet({ disabled = false, media } = {}) {\n\t\t// Need at least one rule to create the `.sheet`\n\t\tconst sheet = createSheet('#dfgbkjdfg{color:red;}', { disabled, media });\n\t\tsheet.deleteRule(0);\n\t\treturn sheet;\n\t};\n\n\tglobalThis.CSSStyleSheet.prototype = NativeStyleSheet.prototype;\n\tNativeStyleSheet.prototype.constructor = globalThis.CSSStyleSheet;\n}\n\nif (! (CSSStyleSheet.prototype.replace instanceof Function)) {\n\tCSSStyleSheet.prototype.replace = function replace(rules) {\n\t\tconst link = document.createElement('link');\n\t\tconst controller = new AbortController();\n\t\tconst { resolve, reject, promise } = Promise.withResolvers();\n\n\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\tclearCSSRules(this);\n\t\t\t[...target.sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t\t\tresolve(this);\n\t\t\tcontroller.abort();\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\tconst error = new DOMException('Error loading stylesheet.');\n\t\t\treject(error);\n\t\t\tcontroller.abort(error);\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.rel = 'stylesheet';\n\t\tlink.crossOrigin = 'anonymous';\n\t\tlink.referrerPolicy = 'no-referrer';\n\t\tlink.media = 'no-op';\n\t\tlink.href = URL.createObjectURL(new File([rules], 'tmp.css', { type: 'text/css' }));\n\t\tdocument.head.append(link);\n\n\t\treturn promise;\n\t};\n}\n\nif (! (CSSStyleSheet.prototype.replaceSync instanceof Function)) {\n\tCSSStyleSheet.prototype.replaceSync = function replaceSync(rules) {\n\t\tconst sheet = Document.parseHTML(\n\t\t\t`<style>${rules}</style>`,\n\t\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t\t).styleSheets.item(0);\n\n\t\tclearCSSRules(this);\n\n\t\t[...sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t};\n}\n","import { polyfillMethod, polyfillGetterSetter } from './utils.js';\nimport { safeParseHTML } from './assets/sanitizerUtils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\npolyfillMethod(Document, 'parseHTML', (...args) => safeParseHTML(...args));\npolyfillGetterSetter(Document.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n","import { polyfillGetterSetter } from './utils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\nif ('ShadowRoot' in globalThis) {\n\tpolyfillGetterSetter(ShadowRoot.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n}\n","export const aria = {\n\tariaAtomic: 'aria-atomic',\n\tariaAutoComplete: 'aria-autocomplete',\n\tariaBusy: 'aria-busy',\n\tariaChecked: 'aria-checked',\n\tariaColCount: 'aria-colcount',\n\tariaColIndex: 'aria-colindex',\n\tariaColIndexText: 'aria-colindextext',\n\tariaColSpan: 'aria-colspan',\n\tariaCurrent: 'aria-current',\n\tariaDisabled: 'aria-disabled',\n\tariaExpanded: 'aria-expanded',\n\tariaHasPopup: 'aria-haspopup',\n\tariaHidden: 'aria-hidden',\n\tariaInvalid: 'aria-invalid',\n\tariaKeyShortcuts: 'aria-keyshortcuts',\n\tariaLabel: 'aria-label',\n\tariaLevel: 'aria-level',\n\tariaLive: 'aria-live',\n\tariaModal: 'aria-modal',\n\tariaMultiLine: 'aria-multiline',\n\tariaMultiSelectable: 'aria-multiselectable',\n\tariaOrientation: 'aria-orientation',\n\tariaPlaceholder: 'aria-placeholder',\n\tariaPosInSet: 'aria-posinset',\n\tariaPressed: 'aria-pressed',\n\tariaReadOnly: 'aria-readonly',\n\tariaRelevant: 'aria-relevant',\n\tariaRequired: 'aria-required',\n\tariaRoleDescription: 'aria-roledescription',\n\tariaRowCount: 'aria-rowcount',\n\tariaRowIndex: 'aria-rowindex',\n\tariaRowIndexText: 'aria-rowindextext',\n\tariaRowSpan: 'aria-rowspan',\n\tariaSelected: 'aria-selected',\n\tariaSetSize: 'aria-setsize',\n\tariaSort: 'aria-sort',\n\tariaValueMax: 'aria-valuemax',\n\tariaValueMin: 'aria-valuemin',\n\tariaValueNow: 'aria-valuenow',\n\tariaValueText: 'aria-valuetext',\n\trole: 'role'\n};\n","import { aria } from './aom.js';\nimport { overwriteMethod } from './utils.js';\nimport { SanitizerConfig as defaultConfig } from './assets/SanitizerConfigW3C.js';\nimport { setHTML as safeSetHTML, convertToSanitizerConfig } from './assets/sanitizerUtils.js';\n\nif (! (HTMLScriptElement.supports instanceof Function)) {\n\tHTMLScriptElement.supports = function supports(type) {\n\t\tswitch(type.toLowerCase()) {\n\t\t\tcase 'classic':\n\t\t\t\treturn true;\n\n\t\t\tcase 'module':\n\t\t\t\treturn 'noModule' in HTMLScriptElement.prototype;\n\n\t\t\tcase 'importmap':\n\t\t\t\treturn false;\n\n\t\t\tcase 'speculationrules':\n\t\t\t\treturn false;\n\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n}\n\nif (! Element.prototype.hasOwnProperty(aria.role)) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\n\tconst props = Object.fromEntries(Object.entries(aria).map(([prop, attr]) => [prop, {\n\t\tget: function() {\n\t\t\treturn this.getAttribute(attr);\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (typeof val === 'string') {\n\t\t\t\tthis.setAttribute(attr, val);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute(attr);\n\t\t\t}\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(Element.prototype, props);\n}\n\nif (! HTMLElement.prototype.hasOwnProperty('inert')) {\n\t// CSS will handle pointer events\n\tconst previous = new WeakMap();\n\tconst restoreTabIndex = el => {\n\t\tif (previous.has(el)) {\n\t\t\tel.tabIndex = previous.get(el);\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(restoreTabIndex);\n\t\t}\n\t};\n\n\tconst setTabIndex = el => {\n\t\tif (el.tabIndex !== -1) {\n\t\t\tprevious.set(el, el.tabIndex);\n\t\t\tel.tabIndex = -1;\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(setTabIndex);\n\t\t}\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'inert', {\n\t\tget: function() {\n\t\t\treturn this.hasAttribute('inert');\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (val) {\n\t\t\t\tthis.setAttribute('aria-hidden', 'true');\n\t\t\t\tthis.setAttribute('inert', '');\n\t\t\t\tsetTabIndex(this);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute('aria-hidden');\n\t\t\t\tthis.removeAttribute('inert');\n\t\t\t\trestoreTabIndex(this);\n\t\t\t}\n\t\t},\n\t\tenumerable: true, configurable: true,\n\t});\n}\n\nif (! HTMLImageElement.prototype.hasOwnProperty('complete')) {\n\t/**\n\t * Note: This shim cannot detect if an image has an error while loading\n\t * and will return false on an invalid URL, for example. It also does not\n\t * work for 0-sized images, if such a thing is possible.\n\t */\n\tObject.defineProperty(HTMLImageElement.prototype, 'complete', {\n\t\tget: function() {\n\t\t\treturn this.src === '' || this.naturalHeight > 0;\n\t\t}\n\t});\n}\n\nif (! (HTMLImageElement.prototype.decode instanceof Function)) {\n\tHTMLImageElement.prototype.decode = function () {\n\t\tif (this.complete) {\n\t\t\treturn Promise.resolve();\n\t\t} else {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst load = () => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst error = (err) => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\treject(err);\n\t\t\t\t};\n\n\t\t\t\tthis.addEventListener('load', load);\n\t\t\t\tthis.addEventListener('error', error);\n\t\t\t});\n\t\t}\n\t};\n}\n\nif (! (Element.prototype.setHTML instanceof Function)) {\n\tElement.prototype.setHTML = function setHTML(input, opts = defaultConfig) {\n\t\tsafeSetHTML(this, input, opts);\n\t};\n} else {\n\toverwriteMethod(Element.prototype, 'setHTML', function(orig) {\n\t\treturn function setHTML(input, opts = {}) {\n\t\t\tif (! (opts.sanitizer instanceof Sanitizer)) {\n\t\t\t\tconst sanitizer = new Sanitizer(convertToSanitizerConfig(opts));\n\t\t\t\torig.call(this, input, { sanitizer });\n\t\t\t} else {\n\t\t\t\torig.call(this, input, opts);\n\t\t\t}\n\t\t};\n\t});\n}\n\nif (! HTMLTemplateElement.prototype.hasOwnProperty('shadowRootMode')) {\n\tObject.defineProperty(HTMLTemplateElement.prototype, 'shadowRootMode', {\n\t\tget: function() {\n\t\t\treturn this.getAttribute('shadowrootmode');\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.setAttribute('shadowrootmode', val);\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t});\n\n\tconst attachShadows = (base = document) => {\n\t\tbase.querySelectorAll('template[shadowrootmode]').forEach(tmp => {\n\t\t\tconst shadow = tmp.parentElement.attachShadow({ mode: tmp.shadowRootMode });\n\t\t\tshadow.append(tmp.content);\n\t\t\ttmp.remove();\n\t\t\tattachShadows(shadow);\n\t\t});\n\t};\n\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('readystatechange', () => attachShadows(document), { once: true });\n\t} else {\n\t\tattachShadows(document);\n\t}\n}\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-set-methods\n\t */\n\n\tif (! (Set.prototype.intersection instanceof Function)) {\n\t\tSet.prototype.intersection = function intersection(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this].filter(item => iterable.has(item)));\n\t\t};\n\t}\n\n\tif (! (Set.prototype.difference instanceof Function)) {\n\t\tSet.prototype.difference = function difference(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this].filter(item => ! iterable.has(item)));\n\t\t};\n\t}\n\n\tif (! (Set.prototype.union instanceof Function)) {\n\t\tSet.prototype.union = function union(iterable) {\n\t\t\treturn new Set([...this, ...iterable]);\n\t\t};\n\t}\n\n\tif (! (Set.prototype.isSubsetOf instanceof Function)) {\n\t\tSet.prototype.isSubsetOf = function isSubsetOf(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn [...this].every(item => iterable.has(item));\n\t\t};\n\t}\n\n\tif (! (Set.prototype.isSupersetOf instanceof Function)) {\n\t\tSet.prototype.isSupersetOf = function isSupersetOf(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn iterable.isSubsetOf(this);\n\t\t};\n\t}\n\n\tif (! (Set.prototype.symmetricDifference instanceof Function)) {\n\t\tSet.prototype.symmetricDifference = function symmetricDifference(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this.difference(iterable), ...iterable.difference(this)]);\n\t\t};\n\t}\n\n\tif (! (Set.prototype.isDisjointFrom instanceof Function)) {\n\t\tSet.prototype.isDisjointFrom = function isDisjointFrom(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this, ...iterable]).size === this.size + iterable.size;\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! (WeakMap.prototype.emplace instanceof Function)) {\n\t\tWeakMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, existing);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif ('screen' in globalThis && ! (globalThis.getScreenDetails instanceof Function)) {\n\t\tclass ScreenDetailed extends EventTarget {\n\t\t\tget availHeight() {\n\t\t\t\treturn screen.availHeight;\n\t\t\t}\n\n\t\t\tget availLeft() {\n\t\t\t\treturn screen.availLeft;\n\t\t\t}\n\n\t\t\tget availTop() {\n\t\t\t\treturn screen.availTop;\n\t\t\t}\n\n\t\t\tget availWidth() {\n\t\t\t\treturn screen.availWidth;\n\t\t\t}\n\n\t\t\tget colorDepth() {\n\t\t\t\treturn screen.colorDepth;\n\t\t\t}\n\n\t\t\tget devicePixelRatio() {\n\t\t\t\treturn globalThis.devicePixelRatio || 1;\n\t\t\t}\n\n\t\t\tget height() {\n\t\t\t\treturn screen.height;\n\t\t\t}\n\n\t\t\tget isExtended() {\n\t\t\t\treturn screen.isExtended;\n\t\t\t}\n\n\t\t\tget isInternal() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget isPrimary() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget label() {\n\t\t\t\treturn 'Unknown';\n\t\t\t}\n\n\t\t\tget orientation() {\n\t\t\t\treturn screen.orientation;\n\t\t\t}\n\n\t\t\tget pixelDepth() {\n\t\t\t\treturn screen.pixelDepth;\n\t\t\t}\n\n\t\t\tget top() {\n\t\t\t\treturn screen.top;\n\t\t\t}\n\n\t\t\tget width() {\n\t\t\t\treturn screen.width;\n\t\t\t}\n\t\t}\n\n\t\tclass ScreenDetails extends EventTarget {\n\t\t\tget currentScreen() {\n\t\t\t\treturn new ScreenDetailed();\n\t\t\t}\n\n\t\t\tget screens() {\n\t\t\t\treturn [this.currentScreen];\n\t\t\t}\n\t\t}\n\n\t\tObject.defineProperty(Screen.prototype, 'isExtended', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => false,\n\t\t});\n\n\t\tglobalThis.getScreenDetails = async () => new ScreenDetails();\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const PRIORITIES = {\n\tblocking: 'user-blocking',\n\tvisible: 'user-visible',\n\tbackground: 'background',\n};\n\nasync function delayCallback(cb, { delay = 0, signal } = {}) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\treject(signal.reason);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst handle = setTimeout(() => {\n\t\t\t\tresolve(cb());\n\t\t\t\tcontroller.abort();\n\t\t\t}, delay);\n\n\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\treject(target.reason);\n\t\t\t\t\tclearTimeout(handle);\n\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport class Scheduler {\n\tasync postTask(callback, {\n\t\tpriority = PRIORITIES.visible,\n\t\tdelay,\n\t\tsignal,\n\t} = {}) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t} else {\n\t\t\t\tswitch(priority) {\n\t\t\t\t\tcase PRIORITIES.blocking:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(callback, { delay, signal })\n\t\t\t\t\t\t\t\t.then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve((async () => await callback())());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.visible:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelAnimationFrame(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.background:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelIdleCallback(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new TypeError(`Scheduler.postTask: '${priority}' (value of 'priority' member of SchedulerPostTaskOptions) is not a valid value for enumeration TaskPriority.`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Scheduler } from './assets/Scheduler.js';\n\nif (! ('scheduler' in globalThis)) {\n\tglobalThis.scheduler = new Scheduler();\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals\n * @see https://caniuse.com/mdn-api_formdataevent\n * @see https://caniuse.com/mdn-api_elementinternals\n * @todo: Figure out how to cleanup MutationObserver for removed inputs\n * @todo: Can I add a MutationObserver to automatically set/unset forms,\n * even in `ShadowRoot`s?\n *\n * This polyfill needs a bit of extra work from the custom element to work.\n * Check if `internals._polyfilled` to see if extra steps are necessary:\n * - Call `internals._associateForm(form, this)` in `connectedCallback()`\n * - Call again with `(null, this)` in `disconnectedCallback()` to disassociate\n *\n * Additionally, if `internals.states._polyfilled`\n * - Use `._state--*` in addition to `:--*` to query element internals states\n * - This includes `:disabled` -> `._state--disabled` & `:invalid` -> `._state--invalid`\n */\nimport { aria } from './aom.js';\n\nconst symbols = {\n\tkey: Symbol('key'),\n\tinternals: Symbol('element-internals'),\n\tform: Symbol('form'),\n\tfieldset: Symbol('fieldset'),\n\telement: Symbol('element'),\n\tvalidity: Symbol('validity'),\n\tvalidationMessage: Symbol('validation-message'),\n\tvalue: Symbol('value'),\n\tstate: Symbol('state'),\n\tformController: Symbol('form-controller'),\n\tanchor: Symbol('anchor'),\n\tcustomInputs: Symbol('custom-inputs'),\n};\n\nfunction shimAria(prototype) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\tconst props = Object.fromEntries(Object.keys(aria).map(prop => [prop, {\n\t\tget: function() {\n\t\t\treturn this[symbols.element][prop];\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis[symbols.element][prop] = val;\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(prototype, props);\n}\n\nif (! (HTMLElement.prototype.attachInternals instanceof Function) && 'FormDataEvent' in globalThis) {\n\tconst validationObject = {\n\t\tvalueMissing: false, typeMismatch: false, patternMismatch: false, tooLong: false,\n\t\ttooShort: false, rangeUnderflow: false, rangeOverflow: false, stepMismatch: false,\n\t\tbadInput: false, customError: false, valid: true,\n\t};\n\n\tconst hasDisabledFieldset = component => component.hasOwnProperty(symbols.fieldset)\n\t\t&& component[symbols.fieldset] instanceof HTMLFieldSetElement\n\t\t&& component[symbols.fieldset].disabled;\n\n\tconst isFormAssociated = (component) => {\n\t\treturn component instanceof HTMLElement\n\t\t\t&& component.tagName.includes('-')\n\t\t\t&& customElements.get(component.tagName.toLowerCase()).formAssociated;\n\t};\n\n\tconst getFormDataHandler = (component, internals) => {\n\t\treturn function(event) {\n\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tevent.stopPropagation();\n\t\t\t} else if (internals.willValidate && event.formData instanceof FormData) {\n\t\t\t\tconst value = internals[symbols.value];\n\n\t\t\t\tif (value instanceof FormData) {\n\t\t\t\t\tvalue.entries().forEach(([k, v]) => event.formData.set(k, v));\n\t\t\t\t} else if (component.hasAttribute('name')) {\n\t\t\t\t\tevent.formData.set(component.getAttribute('name'), internals[symbols.value]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\tconst css = (el, rules) => {\n\t\tObject.entries(rules).forEach(([k, v]) => el.style.setProperty(k, v));\n\t};\n\n\tconst findAssociatedForm = (component) => {\n\t\tif (component.hasAttribute('form')) {\n\t\t\treturn document.forms[component.getAttribute('form')] || component.closest('form');\n\t\t} else {\n\t\t\treturn component.closest('form');\n\t\t}\n\t};\n\n\t// To be used in/after `connectedCallback`\n\tconst associateForm = (form, internals, component) => {\n\t\tif (! (form instanceof HTMLFormElement)) {\n\t\t\tif (internals[symbols.formController] instanceof AbortController) {\n\t\t\t\tinternals[symbols.formController].abort();\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = null;\n\t\t\tinternals[symbols.formController] = null;\n\n\t\t\tif (component.hasOwnProperty(symbols.fieldset)) {\n\t\t\t\tconst fieldset = component[symbols.fieldset];\n\n\t\t\t\tif (fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs].delete(component);\n\n\t\t\t\t\tif (fieldset[symbols.customInputs.size] === 0) {\n\t\t\t\t\t\tdelete fieldset[symbols.customInputs];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcomponent[symbols.fieldset] = null;\n\t\t\t}\n\t\t} else if (! (component instanceof HTMLElement && component.tagName.includes('-'))) {\n\t\t\tthrow new TypeError('Not a custom element');\n\t\t} else if (! (internals instanceof ElementInternals || internals instanceof globalThis.ElementInternals)) {\n\t\t\tthrow new TypeError('Invalid ElementInternals');\n\t\t} else if (! isFormAssociated(component)) {\n\t\t\tthrow new TypeError(`${component.tagName} is not form associated.`);\n\t\t} else if (! (component.formAssociatedCallback instanceof Function)) {\n\t\t\tthrow new TypeError(`${component.tagName} is missing a formAssociatedCallback method.`);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst fieldset = component.closest('fieldset');\n\n\t\t\tif (fieldset instanceof Element) {\n\t\t\t\tcomponent[symbols.fieldset] = fieldset;\n\t\t\t\tif (! fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs] = new Set();\n\t\t\t\t}\n\n\t\t\t\tfieldset[symbols.customInputs].add(component);\n\t\t\t\tobserver.observe(fieldset, observerOpts);\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = form;\n\t\t\tinternals[symbols.formController] = controller;\n\n\t\t\tconst { checkValidity, reportValidity } = form;\n\n\t\t\tform.reportValidity = function() {\n\t\t\t\tif (! reportValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.reportValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tform.checkValidity = function() {\n\t\t\t\tif (! checkValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.checkValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcontroller.signal.addEventListener('abort', () => {\n\t\t\t\tform.reportValidity = reportValidity;\n\t\t\t\tform.checkValidity = checkValidity;\n\t\t\t}, { once: true });\n\n\t\t\tform.addEventListener('formdata', getFormDataHandler(component, internals), { signal: controller.signal });\n\t\t\tform.addEventListener('submit', event => {\n\t\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t}, { signal: controller.signal });\n\n\t\t\tif (component.formResetCallback instanceof Function) {\n\t\t\t\tform.addEventListener('reset', () => component.formResetCallback(), { signal: controller.signal });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst observer = new MutationObserver((mutations) => {\n\t\tmutations.forEach(({ target, type, attributeName }) => {\n\t\t\tif (type === 'attributes' && attributeName === 'disabled') {\n\t\t\t\tconst disabled = target.hasAttribute('disabled');\n\n\t\t\t\t/**\n\t\t\t\t * Check that target is a valid candiate and not a child of a\n\t\t\t\t * `<fieldset disabled>`, unless they are both being toggled\n\t\t\t\t * together to the same value.\n\t\t\t\t */\n\t\t\t\tif (\n\t\t\t\t\tisFormAssociated(target)\n\t\t\t\t\t&& target.hasOwnProperty(symbols.internals)\n\t\t\t\t\t&& target[symbols.internals].states.has('--disabled') !== disabled\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t\t// target is not a descendant of a `<fieldset disabled>`\n\t\t\t\t\t\t\t? ! hasDisabledFieldset(target)\n\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\t// target & `<fieldset>` are being enabled/disabled together\n\t\t\t\t\t\t\t\ttarget.hasAttribute('disabled') === hasDisabledFieldset(target)\n\t\t\t\t\t\t\t\t&& mutations.some((m) =>\n\t\t\t\t\t\t\t\t\tm.target.isSameNode(target[symbols.fieldset])\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst internals = target[symbols.internals];\n\n\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\tinternals.states.add('--disabled');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinternals.states.delete('--disabled');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\ttarget.formDisabledCallback(disabled);\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\ttarget.tagName === 'FIELDSET'\n\t\t\t\t\t&& target.hasOwnProperty(symbols.customInputs)\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t|| ! mutations.some(m => target[symbols.customInputs].has(m.target))\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\ttarget[symbols.customInputs].forEach(el => {\n\t\t\t\t\t\tif (el.isConnected && el.hasOwnProperty(symbols.internals)) {\n\t\t\t\t\t\t\t// Do not toggle disabled on elements that are `disabled`\n\t\t\t\t\t\t\tif (! el.hasAttribute('disabled')) {\n\t\t\t\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.add('--disabled');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.delete('--disabled');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (el.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\t\t\t\tel.formDisabledCallback(disabled);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget[symbols.customInputs].delete(el);\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\n\tconst observerOpts = { attributes :true, attributeFilter: ['disabled'] };\n\n\tclass ElementInternals {\n\t\tconstructor(element, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal constructor');\n\t\t\t} else if (! (element instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('Must be called on an HTMLElement');\n\t\t\t} else if (! element.tagName.includes('-')) {\n\t\t\t\tthrow new DOMException('Cannot attach internals to a built-in element.');\n\t\t\t} else {\n\t\t\t\t// internals.add(this);\n\t\t\t\tconst configurable = true;\n\t\t\t\tconst enumerable = false;\n\t\t\t\tconst writable = true;\n\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t[symbols.element]: { value: element, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.form]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.fieldset]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.anchor]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validity]: { value: validationObject, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validationMessage]: { value: '', configurable, enumerable, writable },\n\t\t\t\t\t[symbols.value]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.state]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.formController]: { value: null, configurable, enumerable, writable },\n\t\t\t\t});\n\n\t\t\t\tif (isFormAssociated(element)) {\n\t\t\t\t\tobserver.observe(element, observerOpts);\n\t\t\t\t}\n\n\t\t\t\tObject.defineProperty(element, symbols.internals, {\n\t\t\t\t\tvalue: this,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t});\n\n\t\t\t\tsetTimeout(() => this.states.add('--element-internals-polyfilled'), 10);\n\t\t\t}\n\t\t}\n\n\t\tget form() {\n\t\t\treturn this[symbols.form];\n\t\t}\n\n\t\tget labels() {\n\t\t\tconst form = this.form;\n\n\t\t\tif (form instanceof HTMLFormElement && this[symbols.element].id.length !== 0) {\n\t\t\t\treturn form.querySelectorAll(`label[for=\"${this[symbols.element].id}\"]`);\n\t\t\t} else {\n\t\t\t\treturn document.createDocumentFragment().childNodes;\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget shadowRoot() {\n\t\t\tconst el = this[symbols.element];\n\t\t\treturn el.shadowRoot;\n\t\t}\n\n\t\tget validity() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validity];\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget validationMessage() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validationMessage] || '';\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget willValidate() {\n\t\t\tconst element = this[symbols.element];\n\n\t\t\treturn isFormAssociated(element)\n\t\t\t\t&& ! hasDisabledFieldset(element)\n\t\t\t\t&& ! ['disabled', 'readonly'].some(attr => element.hasAttribute(attr));\n\t\t}\n\n\t\tcheckValidity() {\n\t\t\tif (! this.willValidate) {\n\t\t\t\treturn true;\n\t\t\t} else if (! this.validity.valid) {\n\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\tif (next instanceof HTMLElement && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\tnext.remove();\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treportValidity() {\n\t\t\tif (! this.checkValidity()) {\n\t\t\t\tconst message = this.validationMessage;\n\n\t\t\t\tif (typeof message === 'string' && message.length !== 0) {\n\t\t\t\t\t// this[symbols.element].scrollIntoView({ block: 'start' });\n\t\t\t\t\tconst { bottom, left } = this[symbols.element].getBoundingClientRect();\n\t\t\t\t\tconst el = document.createElement('div');\n\t\t\t\t\tel.textContent = message;\n\n\t\t\t\t\tcss(el, {\n\t\t\t\t\t\t'position': 'fixed',\n\t\t\t\t\t\t'background-color': '#2b2a33',\n\t\t\t\t\t\t'color': '#fafafa',\n\t\t\t\t\t\t'top': `${bottom + 2}px`,\n\t\t\t\t\t\t'left': `${left}px`,\n\t\t\t\t\t\t'z-index': 2147483647,\n\t\t\t\t\t\t'color-scheme': 'light-dark',\n\t\t\t\t\t\t'font-family': 'system-ui, serif',\n\t\t\t\t\t\t'font-size': '18px',\n\t\t\t\t\t\t'display': 'inline-block',\n\t\t\t\t\t\t'padding': '0.6em 0.8em',\n\t\t\t\t\t\t'border': '1px solid #1a1a1a',\n\t\t\t\t\t\t'border-radius': '6px',\n\t\t\t\t\t});\n\n\t\t\t\t\tel.classList.add('_element-internals-popup');\n\n\t\t\t\t\tthis[symbols.element].focus();\n\n\t\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\t\tif (next instanceof Element && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\t\tnext.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis[symbols.element].insertAdjacentElement('afterend', el);\n\n\t\t\t\t\tif (this[symbols.anchor] instanceof Element) {\n\t\t\t\t\t\tthis[symbols.anchor].focus();\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (el.isConnected) {\n\t\t\t\t\t\t\tel.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 3000);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tsetFormValue(value, state) {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\tthis[symbols.value] = value;\n\t\t\t\tthis[symbols.state] = state;\n\t\t\t} else {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t}\n\t\t}\n\n\t\tsetValidity({\n\t\t\tvalueMissing = false,\n\t\t\ttypeMismatch = false,\n\t\t\tpatternMismatch = false,\n\t\t\ttooLong = false,\n\t\t\ttooShort = false,\n\t\t\trangeUnderflow = false,\n\t\t\trangeOverflow = false,\n\t\t\tstepMismatch = false,\n\t\t\tbadInput = false,\n\t\t\tcustomError = false,\n\t\t}, message = '', anchor) {\n\t\t\tif (! isFormAssociated(this[symbols.element])) {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t} else if (\n\t\t\t\t(typeof message !== 'string' || message.length === 0)\n\t\t\t\t&& (\n\t\t\t\t\tvalueMissing || typeMismatch || patternMismatch || tooLong || tooShort\n\t\t\t\t\t|| rangeUnderflow || rangeOverflow || stepMismatch || badInput || customError\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new DOMException('Message required if any flags are true.');\n\t\t\t} else {\n\t\t\t\tconst valid = [\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t].every(val => val === false);\n\n\t\t\t\tthis[symbols.validity] = {\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t\tvalid,\n\t\t\t\t};\n\n\t\t\t\tthis[symbols.validationMessage] = message;\n\t\t\t\tthis[symbols.anchor] = anchor;\n\n\t\t\t\tif (! valid) {\n\t\t\t\t\tthis.states.add('--invalid');\n\t\t\t\t\tthis.states.delete('--valid');\n\t\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\t} else {\n\t\t\t\t\tthis.states.delete('--invalid');\n\t\t\t\t\tthis.states.add('--valid');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t_associateForm(form, component) {\n\t\t\tassociateForm(form, this, component);\n\t\t}\n\n\t\t_findAssociatedForm(component) {\n\t\t\treturn findAssociatedForm(component);\n\t\t}\n\t}\n\n\tHTMLElement.prototype.attachInternals = function attachInternals() {\n\t\tif (this.hasOwnProperty(symbols.internals)) {\n\t\t\tthrow new DOMException('Invalid operation');\n\t\t} else if (! this.tagName.includes('-')) {\n\t\t\tthrow new DOMException('Cannot call attachInternals on built-in elements.');\n\t\t} else {\n\t\t\treturn new ElementInternals(this, symbols.key);\n\t\t}\n\t};\n\n\tglobalThis.ElementInternals = ElementInternals;\n}\n\n/**\n * Add `states` to `ElementInternals`\n * Uses `._state--foo` instead of `:--foo` though\n * Requires Iterator Helpers (`./iterator.js`)\n */\nif ('ElementInternals' in globalThis && ! ('CustomStateSet' in globalThis)) {\n\tconst prefix = '_state';\n\tconst protectedData = new WeakMap();\n\tconst getCName = state => {\n\t\tif (! state.toString().startsWith('--')) {\n\t\t\tthrow new DOMException(`Failed to execute 'add' on 'CustomStateSet': The specified value '${state}' must start with '--'.`);\n\t\t} else {\n\t\t\treturn `${prefix}${state}`;\n\t\t}\n\t};\n\n\tconst {\n\t\tvalue, writable, configurable, enumerable,\n\t} = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'attachInternals');\n\n\tclass CustomStateSet {\n\t\tconstructor(el, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal Constructor');\n\t\t\t} else if (! (el instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('el must be an HTMLElement');\n\t\t\t} else {\n\t\t\t\tprotectedData.set(this, el);\n\t\t\t\tthis.add('--custom-states-polyfilled');\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget size() {\n\t\t\treturn [...this.values()].length;\n\t\t}\n\n\t\tadd(state) {\n\t\t\tprotectedData.get(this).classList.add(getCName(state));\n\t\t}\n\n\t\thas(state) {\n\t\t\treturn protectedData.get(this).classList.contains(getCName(state));\n\t\t}\n\n\t\tdelete(state) {\n\t\t\tconst c = getCName(state);\n\n\t\t\tif (protectedData.get(this).classList.contains(c)) {\n\t\t\t\tprotectedData.get(this).classList.remove(c);\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tclear() {\n\t\t\tthis.values().forEach(state => this.delete(state));\n\t\t}\n\n\t\tkeys() {\n\t\t\treturn this.values();\n\t\t}\n\n\t\tvalues() {\n\t\t\tconst states = protectedData.get(this).classList.values()\n\t\t\t\t.filter(c => c.startsWith(`${prefix}--`));\n\n\t\t\treturn states.map(c => c.substr(prefix.length));\n\t\t}\n\n\t\tentries() {\n\t\t\treturn this.values().map(c => [c, c]);\n\t\t}\n\n\t\tforEach(callbackFn, thisArg) {\n\t\t\tthis.values().forEach(state => callbackFn.call(thisArg || this, state, state, this));\n\t\t}\n\n\t\t[Symbol.toStringTag]() {\n\t\t\treturn 'CustomStateSet';\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values();\n\t\t}\n\t}\n\n\tObject.defineProperty(HTMLElement.prototype, 'attachInternals', {\n\t\tvalue: function() {\n\t\t\tconst internals = value.call(this);\n\n\t\t\tObject.defineProperty(internals, symbols.element, {\n\t\t\t\tvalue: this,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t});\n\n\t\t\tObject.defineProperty(internals, 'states', {\n\t\t\t\tvalue: new CustomStateSet(this, symbols.key),\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumberable: true,\n\t\t\t});\n\n\t\t\tif (Object.is(internals.shadowRoot, null) && ! Object.is(this.shadowRoot, null)) {\n\t\t\t\tObject.defineProperty(internals, 'shadowRoot', {\n\t\t\t\t\tvalue: this.shadowRoot,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn internals;\n\t\t},\n\t\twritable, configurable, enumerable,\n\t});\n\n\tglobalThis.CustomStateSet = CustomStateSet;\n\tshimAria(ElementInternals.prototype);\n}\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(Response, 'json', (data, { status = 200, statusText = '', headers = new Headers() } = {}) => {\n\tif (! (headers instanceof Headers)) {\n\t\treturn Response.json(data, { status, statusText, headers: new Headers(headers) });\n\t} else {\n\t\theaders.set('Content-Type', 'application/json');\n\t\treturn new Response(JSON.stringify(data), { status, statusText, headers });\n\t}\n});\n\npolyfillMethod(Response, 'redirect', (url, status = 302) => {\n\treturn new Response('', {\n\t\tstatus,\n\t\theaders: new Headers({ Location: url }),\n\t});\n});\n"],"names":["polyfillMethod","parent","name","value","writable","enumerable","configurable","Function","Object","defineProperty","polyfillGetterSetter","get","set","hasOwnProperty","array","globalThis","window","Window","prototype","global","self","this","crypto","msCrypto","Notification","notifications","webkitNotifications","oNotifications","msNotifications","navigator","doNotTrack","msDoNotTrack","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","document","hidden","webkitHidden","msHidden","mozHidden","visibilityState","webkitVisibilityState","msVisibilityState","mozVisibilityState","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","Document","exitFullscreen","mozCancelFullScreen","webkitCancelFullScreen","msCancelFullScreen","HTMLElement","requestFullscreen","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","Element","Map","emplace","key","insert","update","has","existing","call","Error","SHIM_TARGETS","Array","String","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","flat","depth","result","Math","min","Number","MAX_SAFE_INTEGER","max","flattenFn","item","isArray","forEach","i","push","isNaN","flatMap","cb","thisArg","map","findLast","callback","found","index","arr","findLastIndex","at","n","trunc","length","C","group","reduce","groups","groupBy","args","console","warn","groupToMap","groupByToMap","fromAsync","async","items","mapFn","from","equals","every","val","is","uniqueBy","arg","Set","filter","obj","includes","apply","err","TypeError","toReversed","reverse","toSorted","cmpFn","sort","toSpliced","start","deleteCount","cpy","splice","with","Symbol","toStringTag","iterator","once","funcs","WeakMap","constructor","retVal","catch","delete","URL","str","base","range","end","step","Iterator","getPrototypeOf","option","inclusive","RangeError","take","limit","drop","toArray","initialValue","current","next","some","find","indexed","MIN_SAFE_INTEGER","isSafeInteger","num","EPSILON","sign","x","expm1","exp","hypot","nums","sqrt","sum","cbrt","log10","log","LOG10E","log2","LOG2E","log1p","fround","clamp","constrain","hostnames","HTTPS","protocols","hasSecureScripts","scripts","src","protocol","hostname","baseURI","location","isAsyncFunction","what","isObject","thing","getType","callOnce","protectedData","Lock","mode","toString","startsWith","DOMException","locks","symbols","nativeSupport","request","actuallySupported","Promise","resolve","query","then","checkSupport","callFunction","reject","queueMicrotask","whenReleased","lock","promise","error","queueTask","withResolvers","def","getDeferred","controller","AbortController","pending","getLocks","shouldPend","isPending","keys","getHeldLocks","getPendingLocks","whenNotBlocked","allSettled","l","getLockSignal","signal","executeLock","setPending","finally","requestIdleCallback","abort","LockManager","static","opts","ifAvailable","steal","AbortSignal","aborted","reason","held","alreadyLocked","entries","stealLocks","addEventListener","clientId","errorToEvent","type","message","fileName","filename","lineNumber","lineno","columnNumber","colno","ErrorEvent","polyfilled","dispatchEvent","canShare","title","text","url","files","share","setAppBadge","isInteger","replace","clearAppBadge","Navigator","getInstalledRelatedApps","getGamepads","connection","create","EventTarget","effectiveType","rtt","NaN","downlink","downlinkMax","Infinity","saveData","onchange","ontypechange","isValidTimeout","timeout","performance","now","timeRemaining","setTimeout","didTimeout","cancelIdleCallback","id","clearTimeout","cancelAnimationFrame","e","onabort","AbortError","super","defineProperties","undefined","event","throwIfAborted","Event","reasons","staticAbort","ms","isFinite","any","signals","target","AggregateError","errors","reportError","MediaQueryListEvent","media","matches","MediaQueryList","targets","listener","init","mql","addListener","bind","removeEventListener","promises","all","status","race","try","TextEncoder","encoding","encode","split","char","code","charCodeAt","floor","encodeInto","ui8arr","encoded","len","slice","read","written","supportedEncodings","TextDecoder","fatal","ignoreBOM","toLowerCase","decode","data","prev","fromCharCode","offset","randomUUID","c","getRandomValues","getAllCookies","cookie","decodeURIComponent","trim","path","expires","domain","sameSite","secure","getter","setter","maxAge","httpOnly","Date","encodeURIComponent","toUTCString","CookieStore","cookies","getAll","defaultParams","changed","deleted","cookieStore","supported","trustedTypes","createPolicy","Animation","playState","events","getOwnPropertyDescriptors","desc","urls","getHTTPCSP","ok","headers","fetch","href","method","directives","fromEntries","directive","rest","part","getMetaCSP","meta","head","querySelector","HTMLMetaElement","content","fetchCSP","documentElement","dataset","fetchTrustCsp","parseCSP","policies","allowDuplicates","hasNone","clear","add","allowedPolicies","fromCSP","csp","allowTrustDuplicates","getAllowDuplicates","trustedPolicies","getAllowedPolicies","isSupported","trustedValue","trustedKey","emptyHTML","emptyScript","policy","for","defaultPolicy","trustedTypesCSP","hasPolicy","getPolicy","getUnsetPolicyException","TrustedType","freeze","valueOf","toJSON","TrustedHTML","TrustedScript","TrustedScriptURL","TrustedTypePolicy","createHTML","createScript","createScriptURL","input","TrustedTypePolicyFactory","getActualCSP","enumberable","isHTML","isScript","isScriptURL","match","size","getAttributeType","tagName","attribute","elementNs","elementNS","getPropertyType","property","_isPolyfill_","polyfill$1","SanitizerConfig","JSON","parse","setHTML","el","defaultConfig","doc","safeParseHTML","replaceChildren","documentToFragment","allowProtocols","frag","createDocumentFragment","clone","cloneNode","append","childNodes","body","convertSanitizerConfig","allowAttributes","allowComments","allowElements","allowCustomElements","blockElements","dropAttributes","dropElements","allowUnknownMarkup","sanitizer","context","Sanitizer","getConfiguration","DOMParser","parseFromString","sanitizeNode","sanitize","Node","nodeType","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","root","iter","createNodeIterator","NodeFilter","SHOW_ELEMENT","SHOW_COMMENT","node","ELEMENT_NODE","nextNode","HTMLUnknownElement","remove","tag","hasChildNodes","replaceWith","hasAttributes","getAttributeNames","attr","getAttributeNode","removeAttributeNode","sel","COMMENT_NODE","localName","parentElement","removeChild","polyfill","getDefaultConfiguration","configs","SanitizerNative","sanitizeFor","element","createElement","getSantizerUtils","adoptedStyleSheets","styleSheets","sheet","ownerNode","classList","contains","sheets","difference","links","link","createObjectURL","File","rel","disabled","mediaText","cssRules","rule","insertRule","cssText","revokeObjectURL","clearCSSRules","deleteRule","ShadowRoot","CSSStyleSheet","NativeStyleSheet","rules","parseHTML","appendMedium","createSheet","crossOrigin","referrerPolicy","replaceSync","aria","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColIndexText","ariaColSpan","ariaCurrent","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowIndexText","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","HTMLScriptElement","supports","props","prop","getAttribute","setAttribute","removeAttribute","previous","restoreTabIndex","tabIndex","children","setTabIndex","hasAttribute","HTMLImageElement","naturalHeight","complete","load","func","getOwnPropertyDescriptor","newMethod","overwriteMethod","orig","convertToSanitizerConfig","safeSetHTML","HTMLTemplateElement","attachShadows","querySelectorAll","tmp","shadow","attachShadow","shadowRootMode","readyState","intersection","iterable","union","isSubsetOf","isSupersetOf","symmetricDifference","isDisjointFrom","getScreenDetails","ScreenDetailed","availHeight","screen","availLeft","availTop","availWidth","colorDepth","devicePixelRatio","height","isExtended","isInternal","isPrimary","label","orientation","pixelDepth","top","width","ScreenDetails","currentScreen","screens","Screen","PRIORITIES","delayCallback","delay","handle","Scheduler","priority","scheduler","internals","form","fieldset","validity","validationMessage","state","formController","anchor","customInputs","attachInternals","validationObject","valueMissing","typeMismatch","patternMismatch","tooLong","tooShort","rangeUnderflow","rangeOverflow","stepMismatch","badInput","customError","valid","hasDisabledFieldset","component","HTMLFieldSetElement","isFormAssociated","customElements","formAssociated","getFormDataHandler","reportValidity","willValidate","formData","FormData","k","v","preventDefault","stopImmediatePropagation","stopPropagation","css","style","setProperty","findAssociatedForm","forms","closest","associateForm","HTMLFormElement","ElementInternals","formAssociatedCallback","observer","observe","observerOpts","checkValidity","formResetCallback","MutationObserver","mutations","attributeName","states","m","isSameNode","formDisabledCallback","isConnected","attributes","attributeFilter","labels","_polyfilled","shadowRoot","nextElementSibling","bottom","left","getBoundingClientRect","textContent","position","color","display","padding","border","focus","insertAdjacentElement","setFormValue","setValidity","_associateForm","_findAssociatedForm","prefix","getCName","CustomStateSet","values","substr","callbackFn","shimAria","Response","statusText","Headers","stringify","json","Location"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"all.min.js","sources":["utils.js","math.js","globalThis.js","deprefixer.js","map.js","array.js","symbols.js","function.js","url.js","number.js","iterator.js","secure-context.js","assets/utility.js","assets/Lock.js","assets/LockManager.js","assets/error.js","locks.js","share.js","appBadge.js","navigator.js","performance.js","abort.js","errors.js","match-media.js","promise.js","assets/TextEncoder.js","assets/TextDecoder.js","textEncoder.js","crypto.js","assets/CookieStore.js","assets/trust.js","animation.js","assets/attributes.js","assets/csp.js","assets/TrustedTypes.js","trustedTypes.js","assets/SanitizerConfigW3C.js","assets/sanitizerUtils.js","assets/Sanitizer.js","deprecated/sanitizer.js","assets/adoptedStylesheets.js","CSSStyleSheet.js","Document.js","ShadowRoot.js","aom.js","element.js","set.js","weakMap.js","window.js","assets/Scheduler.js","scheduler.js","elementInternals.js","response.js"],"sourcesContent":["export function polyfillMethod(parent, name, value, {\n\twritable = true,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! (parent[name] instanceof Function)) {\n\t\tObject.defineProperty(parent, name, { value, writable, enumerable, configurable });\n\t}\n}\n\nexport function polyfillGetterSetter(parent, name, {\n\tget,\n\tset,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! parent.hasOwnProperty(name)) {\n\t\tObject.defineProperty(parent, name, { get, set, enumerable, configurable });\n\t}\n}\n\nexport function overwriteMethod(parent, name, func) {\n\tconst { value, enumerable, configurable, writable } = Object.getOwnPropertyDescriptor(parent, name);\n\tconst newMethod = func(value);\n\n\tif (! (newMethod instanceof Function)) {\n\t\tthrow new TypeError(`Error overwriting ${name}. The func MUST be a function that accepts the original as an argument and return a function.`);\n\t} else {\n\t\tObject.defineProperty(parent, name, { value: newMethod, enumerable, configurable, writable });\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (! Number.hasOwnProperty('isSafeInteger')) {\n\t\tNumber.MAX_SAFE_INTEGER = 2**53 -1;\n\t\tNumber.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;\n\t\tNumber.isSafeInteger = num => num <= Number.MAX_SAFE_INTEGER && num >= Number.MIN_SAFE_INTEGER;\n\t}\n\n\tif (! Number.hasOwnProperty('EPSILON')) {\n\t\tNumber.EPSILON = 2**-52;\n\t}\n\n\tif (! Math.hasOwnProperty('sign')) {\n\t\tMath.sign = x => ((x > 0) - (x < 0)) || +x;\n\t}\n\n\tif (! Math.hasOwnProperty('trunc')) {\n\t\tMath.trunc = x => {\n\t\t\tconst n = x - x%1;\n\t\t\treturn n===0 && (x<0 || (x===0 && (1/x !== 1/0))) ? -0 : n;\n\t\t};\n\t}\n\n\tif (! Math.hasOwnProperty('expm1')) {\n\t\tMath.expm1 = x => Math.exp(x) - 1;\n\t}\n\n\tif (! Math.hasOwnProperty('hypot')) {\n\t\tMath.hypot = (...nums) => Math.sqrt(nums.reduce((sum, num) => sum + num**2, 0));\n\t}\n\n\tif (! Math.hasOwnProperty('cbrt')) {\n\t\tMath.cbrt = x => x**(1/3);\n\t}\n\n\tif (! Math.hasOwnProperty('log10')) {\n\t\tMath.log10 = x => Math.log(x) * Math.LOG10E;\n\t}\n\n\tif (! Math.hasOwnProperty('log2')) {\n\t\tMath.log2 = x => Math.log(x) * Math.LOG2E;\n\t}\n\n\tif (! Math.hasOwnProperty('log1p')) {\n\t\tMath.log1p = x => Math.log(1 + x);\n\t}\n\n\tif (! Math.hasOwnProperty('fround')) {\n\t\tMath.fround = (function (array) {\n\t\t\treturn function(x) {\n\t\t\t\treturn array[0] = x, array[0];\n\t\t\t};\n\t\t})(new Float32Array(1));\n\t}\n\n\tif (! (Math.clamp instanceof Function)) {\n\t\tMath.clamp = function(value, min, max) {\n\t\t\treturn Math.min(Math.max(value, min), max);\n\t\t};\n\t}\n\n\t/*\n\t * Question of if it will be `Math.clamp` or `Math.constrain`\n\t */\n\tif (! (Math.constrain instanceof Function)) {\n\t\tMath.constrain = Math.clamp;\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (typeof globalThis === 'undefined') {\n\t\t/* global global: true */\n\t\tif (typeof window !== 'undefined') {\n\t\t\tObject.defineProperty(Window.prototype, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: window,\n\t\t\t});\n\t\t} else if (typeof global !== 'undefined') {\n\t\t\tObject.defineProperty(global, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: global,\n\t\t\t});\n\t\t} else if (typeof self !== 'undefined') {\n\t\t\tObject.defineProperty(self, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: self,\n\t\t\t});\n\t\t} else {\n\t\t\tObject.defineProperty(this, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: this,\n\t\t\t});\n\t\t}\n\t}\n})();\n","if (! ('crypto' in window) && 'msCrypto' in window) {\n\tglobalThis.crypto = globalThis.msCrypto;\n}\n\nif (!('Notification' in window)) {\n\tglobalThis.Notification = globalThis.notifications || globalThis.webkitNotifications || globalThis.oNotifications || globalThis.msNotifications || false;\n}\n\nif (!('doNotTrack' in navigator)) {\n\tnavigator.doNotTrack = globalThis.doNotTrack || navigator.msDoNotTrack || 'unspecified';\n}\n\nif (!('indexedDB' in window)) {\n\tglobalThis.indexedDB = globalThis.indexedDB || globalThis.mozIndexedDB || globalThis.webkitIndexedDB || globalThis.msIndexedDB || false;\n}\n\nif (!('hidden' in document)) {\n\tdocument.hidden = document.webkitHidden || document.msHidden || document.mozHidden || false;\n}\n\nif (!('visibilityState' in document)) {\n\tdocument.visibilityState = document.webkitVisibilityState || document.msVisibilityState || document.mozVisibilityState || 'visible';\n}\n\nif (!('fullscreenElement' in document)) {\n\tdocument.fullscreenElement = document.mozFullScreenElement || document.webkitFullscreenElement || false;\n}\n\nif (!('requestAnimationFrame' in window)) {\n\tglobalThis.requestAnimationFrame = globalThis.mozRequestAnimationFrame || globalThis.webkitRequestAnimationFrame || globalThis.msRequestAnimationFrame || false;\n}\n\nif (!('exitFullscreen' in Document.prototype)) {\n\tDocument.prototype.exitFullscreen = document.mozCancelFullScreen || document.webkitCancelFullScreen || document.msCancelFullScreen || false;\n}\n\nif (!('requestFullscreen' in HTMLElement.prototype)) {\n\tHTMLElement.prototype.requestFullscreen = HTMLElement.prototype.requestFullScreen || HTMLElement.prototype.mozRequestFullScreen || HTMLElement.prototype.webkitRequestFullScreen || false;\n}\n\nif (!('fullscreen' in Document.prototype)) {\n\tObject.defineProperty(Document.prototype, 'fullscreen', {\n\t\tget:() => document.fullscreenElement instanceof Element,\n\t});\n}\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-upsert\n\t */\n\n\tif (! (Map.prototype.emplace instanceof Function)) {\n\t\tMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, value);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @SEE https://github.com/tc39/proposal-relative-indexing-method#polyfill\n\t * @SEE https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\n\t */\n\n\tconst SHIM_TARGETS = [Array, String, globalThis.Int8Array, globalThis.Uint8Array,\n\t\tglobalThis.Uint8ClampedArray, globalThis.Int16Array, globalThis.Uint16Array,\n\t\tglobalThis.Int32Array, globalThis.Uint32Array, globalThis.Float32Array,\n\t\tglobalThis.Float64Array, globalThis.BigInt64Array, globalThis.BigUint64Array,\n\t];\n\n\tif (! (Array.prototype.flat instanceof Function)) {\n\t\tArray.prototype.flat = function(depth = 1) {\n\t\t\tconst result = [];\n\t\t\tdepth = Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, depth));\n\n\t\t\tconst flattenFn = (item, depth) => {\n\t\t\t\tif (Array.isArray(item) && depth >= 0) {\n\t\t\t\t\titem.forEach(i => flattenFn(i, depth - 1));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(item);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tflattenFn(this, Number.isNaN(depth) ? 0 : depth);\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.flatMap instanceof Function)) {\n\t\tArray.prototype.flatMap = function(cb, thisArg) {\n\t\t\treturn this.map(cb, thisArg).flat(1);\n\t\t};\n\t}\n\n\tif (! (Array.prototype.findLast instanceof Function)) {\n\t\tArray.prototype.findLast = function(callback, thisArg) {\n\t\t\tlet found = undefined;\n\n\t\t\tthis.forEach((item, index, arr) => {\n\t\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\t\tfound = item;\n\t\t\t\t}\n\t\t\t}, thisArg);\n\n\t\t\treturn found;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.findLastIndex instanceof Function)) {\n\t\tArray.prototype.findLastIndex = function(callback, thisArg) {\n\t\t\tlet found = -1;\n\n\t\t\tthis.forEach((item, index, arr) => {\n\t\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\t\tfound = index;\n\t\t\t\t}\n\t\t\t}, thisArg);\n\n\t\t\treturn found;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.at instanceof Function)) {\n\t\tconst at = function at(n) {\n\t\t\tn = Math.trunc(n) || 0;\n\t\t\tif (n < 0) n += this.length;\n\t\t\tif (n < 0 || n >= this.length) return undefined;\n\t\t\treturn this[n];\n\t\t};\n\n\t\tfor (const C of SHIM_TARGETS) {\n\t\t\tif (typeof C !== 'undefined') {\n\t\t\t\tObject.defineProperty(C.prototype, 'at', {\n\t\t\t\t\tvalue: at,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-grouping\n\t */\n\tif (! (Array.prototype.group instanceof Function)) {\n\t\tArray.prototype.group = function group(callback, thisArg = globalThis) {\n\t\t\treturn this.reduce((groups, item, index, arr) => {\n\t\t\t\tconst key = callback.call(thisArg, item, index, arr);\n\n\t\t\t\tif (! groups.hasOwnProperty(key)) {\n\t\t\t\t\tgroups[key] = [item];\n\t\t\t\t} else {\n\t\t\t\t\tgroups[key].push(item);\n\t\t\t\t}\n\n\t\t\t\treturn groups;\n\t\t\t}, {});\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated [renamed to `group()`]\n\t */\n\tArray.prototype.groupBy = function groupBy(...args) {\n\t\tconsole.warn('`goupBy` is deprecated. Please use `group` instead.');\n\t\treturn this.group(...args);\n\t};\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-grouping\n\t * @requires `Map.prototype.emplace`\n\t */\n\tif (! (Array.prototype.groupToMap instanceof Function) && (Map.prototype.emplace instanceof Function)) {\n\t\tArray.prototype.groupToMap = function groupToMap(callback, thisArg = globalThis) {\n\t\t\treturn this.reduce((map, item, index, arr) => {\n\t\t\t\tmap.emplace(callback.call(thisArg, item, index, arr), {\n\t\t\t\t\tinsert: () => [item],\n\t\t\t\t\tupdate: existing => {\n\t\t\t\t\t\texisting.push(item);\n\t\t\t\t\t\treturn existing;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn map;\n\t\t\t}, new Map());\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated [renamed to `groupToMap()`]\n\t */\n\tif (Map.prototype.emplace instanceof Function) {\n\t\tArray.prototype.groupByToMap = function groupByToMap(...args) {\n\t\t\tconsole.warn('`goupByToMap` is deprecated. Please use `groupToMap` instead.');\n\t\t\treturn this.groupToMap(...args);\n\t\t};\n\t}\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-from-async\n\t */\n\tif (! (Array.fromAsync instanceof Function)) {\n\t\tArray.fromAsync = async function fromAsync(items, mapFn, thisArg = globalThis) {\n\t\t\tlet arr = [];\n\n\t\t\tfor await (const item of items) {\n\t\t\t\tarr.push(await item);\n\t\t\t}\n\n\t\t\treturn Array.from(arr, mapFn, thisArg);\n\t\t};\n\t}\n\n\t/**\n\t * @see https://github.com/tc39/proposal-array-equality/\n\t */\n\tif (! (Array.prototype.equals instanceof Function)) {\n\t\tArray.prototype.equals = function equals(arr) {\n\t\t\tif (this === arr) {\n\t\t\t\treturn true;\n\t\t\t} else if (! Array.isArray(arr)) {\n\t\t\t\treturn false;\n\t\t\t} else if (this.length !== arr.length) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn this.every((item, i) => {\n\t\t\t\t\tconst val = arr[i];\n\t\t\t\t\tif (Array.isArray(item)) {\n\t\t\t\t\t\treturn Array.isArray(val) && item.equals(val);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn Object.is(item, val);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\t/**\n\t * @see https://github.com/tc39/proposal-array-unique\n\t */\n\tif (! (Array.prototype.uniqueBy instanceof Function)) {\n\t\tArray.prototype.uniqueBy = function uniqueBy(arg) {\n\t\t\tif (typeof arg === 'undefined') {\n\t\t\t\treturn [...new Set(this)];\n\t\t\t} else if (typeof arg === 'string') {\n\t\t\t\tconst found = [];\n\n\t\t\t\treturn this.filter(obj => {\n\t\t\t\t\tconst key = obj[arg];\n\t\t\t\t\tif (found.includes(key)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfound.push(key);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (arg instanceof Function) {\n\t\t\t\tconst found = [];\n\n\t\t\t\treturn this.filter((...args) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst key = arg.apply(this, args);\n\n\t\t\t\t\t\tif (typeof key !== 'string') {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else if (found.includes(key)) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfound.push(key);\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthrow new TypeError('Not a valid argument for uniqueBy');\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Change Array by copy proposal\n\t * @Note: Not clear if should use `structedClone` or `[...this]` for copies\n\t * @see https://github.com/tc39/proposal-change-array-by-copy\n\t */\n\tif (! (Array.prototype.toReversed instanceof Function)) {\n\t\tArray.prototype.toReversed = function toReversed() {\n\t\t\treturn [...this].reverse();\n\t\t};\n\t}\n\n\tif (! (Array.prototype.toSorted instanceof Function)) {\n\t\tArray.prototype.toSorted = function toSorted(cmpFn) {\n\t\t\treturn [...this].sort(cmpFn);\n\t\t};\n\t}\n\n\tif (! (Array.prototype.toSpliced instanceof Function)) {\n\t\tArray.prototype.toSpliced = function toSpliced(start, deleteCount, ...items) {\n\t\t\tconst cpy = [...this];\n\t\t\tcpy.splice(start, deleteCount, ...items);\n\t\t\treturn cpy;\n\t\t};\n\t}\n\n\tif (! (Array.prototype.with instanceof Function)) {\n\t\tArray.prototype.with = function (index, value) {\n\t\t\tconst cpy = [...this];\n\t\t\tcpy[index] = value;\n\t\t\treturn cpy;\n\t\t};\n\t}\n})();\n","if ('Symbol' in globalThis) {\n\tif (typeof Symbol.toStringTag === 'undefined') {\n\t\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n\t}\n\n\tif (typeof Symbol.iterator === 'undefined') {\n\t\tSymbol.iterator = Symbol('Symbol.iterator');\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (! (Function.prototype.once instanceof Function)) {\n\t\tconst funcs = new WeakMap();\n\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-function-once\n\t\t */\n\t\tFunction.prototype.once = function once(thisArg) {\n\t\t\tconst callback = this;\n\t\t\treturn function(...args) {\n\t\t\t\tif (funcs.has(callback)) {\n\t\t\t\t\treturn funcs.get(callback);\n\t\t\t\t} else if (callback.constructor.name === 'AsyncFunction') {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args).catch(err => {\n\t\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t});\n\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t} else if (callback instanceof Function) {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args);\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t}\n})();\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(URL, 'canParse', (str, base) => {\n\ttry {\n\t\tnew URL(str, base);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n});\n","(function() {\n\t'use strict';\n\n\tif (! (Number.range instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-Number.range\n\t\t * @deprecated - changed to `Iterator.range`\n\t\t */\n\t\tNumber.range = function range(start, end, step = 1) {\n\t\t\tconsole.warn('`Number.range()` is deprecated. Use `Iterator.range()` instead.');\n\t\t\treturn globalThis.Iterator.range(start, end, { step });\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-iterator-helpers\n\t * @TODO implement `flat()`\n\t * @TODO implement `flatMap()`\n\t * @TODO implement `from()`\n\t */\n\tif (! ('Iterator' in globalThis)) {\n\t\tglobalThis.Iterator = {\n\t\t\t'prototype': Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())),\n\t\t};\n\t}\n\n\tconst Iterator = globalThis.Iterator;\n\n\tif (! (Iterator.range instanceof Function)) {\n\t\tIterator.range = function* range(start, end, option) {\n\t\t\tif (typeof option === 'number' || typeof option === 'bigint') {\n\t\t\t\tfor (const n of Iterator.range(start, end, { step: option })) {\n\t\t\t\t\tyield n;\n\t\t\t\t}\n\t\t\t} else if (typeof option !== 'object' || Object.is(option, null)) {\n\t\t\t\tfor (const n of Iterator.range(start, end, {})) {\n\t\t\t\t\tyield n;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst {\n\t\t\t\t\t// Default to +/-, Number/BigInt based on start & end\n\t\t\t\t\tstep = typeof start === 'number'\n\t\t\t\t\t\t? start < end ? 1 : -1\n\t\t\t\t\t\t: start < end ? 1n : -1n,\n\t\t\t\t\tinclusive = false,\n\t\t\t\t} = option;\n\n\t\t\t\tif (typeof start !== 'number' && typeof start !== 'bigint') {\n\t\t\t\t\tthrow new TypeError('Start must be a number');\n\t\t\t\t} else if (Number.isNaN(start)) {\n\t\t\t\t\tthrow new RangeError('Invalid start');\n\t\t\t\t} else if (typeof end !== 'number' && typeof end !== 'bigint') {\n\t\t\t\t\tthrow new TypeError('End must be a number');\n\t\t\t\t} else if (Number.isNaN(end)) {\n\t\t\t\t\tthrow new RangeError('Invalid end');\n\t\t\t\t} else if (typeof step !== 'number' && typeof step !== 'bigint') {\n\t\t\t\t\tthrow new TypeError('Step must be a number');\n\t\t\t\t} else if (Number.isNaN(step)) {\n\t\t\t\t\tthrow new RangeError('Invalid step');\n\t\t\t\t} else if (step === 0) {\n\t\t\t\t\tthrow new RangeError('Step must not be 0');\n\t\t\t\t} else if ((step < 0 && start < end) || (step > 0 && start > end)) {\n\t\t\t\t\treturn;\n\t\t\t\t} else if (inclusive) {\n\t\t\t\t\tif (step > 0) {\n\t\t\t\t\t\tfor (let n = start; n <= end; n+= step) {\n\t\t\t\t\t\t\tyield n;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let n = start; n >= end; n+= step) {\n\t\t\t\t\t\t\tyield n;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (step > 0) {\n\t\t\t\t\t\tfor (let n = start; n < end; n+= step) {\n\t\t\t\t\t\t\tyield n;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let n = start; n > end; n+= step) {\n\t\t\t\t\t\t\tyield n;\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\n\tif (! (Iterator.prototype[Symbol.toStringTag])) {\n\t\tIterator.prototype[Symbol.toStringTag] = 'Iterator';\n\t}\n\n\tif (! (Iterator.prototype.take instanceof Function)) {\n\t\tIterator.prototype.take = function* take(limit) {\n\t\t\tlet n = 0;\n\n\t\t\tfor (const item of this) {\n\t\t\t\tif (++n > limit) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.drop instanceof Function)) {\n\t\tIterator.prototype.drop = function* drop(limit) {\n\t\t\tlet n = 0;\n\t\t\tfor (const item of this) {\n\t\t\t\tif (n++ >= limit) {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.toArray instanceof Function)) {\n\t\tIterator.prototype.toArray = function toArray() {\n\t\t\treturn Array.from(this);\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.forEach instanceof Function)) {\n\t\tIterator.prototype.forEach = function forEach(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tcallback(item);\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.map instanceof Function)) {\n\t\tIterator.prototype.map = function* map(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tyield callback(item);\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.reduce instanceof Function)) {\n\t\tIterator.prototype.reduce = function reduce(callback, initialValue) {\n\t\t\tlet current = typeof initialValue === 'undefined' ? this.next().value : initialValue;\n\n\t\t\tfor (const item of this) {\n\t\t\t\tcurrent = callback(current, item);\n\t\t\t}\n\n\t\t\treturn current;\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.filter instanceof Function)) {\n\t\tIterator.prototype.filter = function* filter(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tif (callback(item)) {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.some instanceof Function)) {\n\t\tIterator.prototype.some = function some(callback) {\n\t\t\tlet retVal = false;\n\t\t\tfor (const item of this) {\n\t\t\t\tif (callback(item)) {\n\t\t\t\t\tretVal = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn retVal;\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.every instanceof Function)) {\n\t\tIterator.prototype.every = function every(callback) {\n\t\t\tlet retVal = true;\n\t\t\tfor (const item of this) {\n\t\t\t\tif (! callback(item)) {\n\t\t\t\t\tretVal = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn retVal;\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.find instanceof Function)) {\n\t\tIterator.prototype.find = function find(callback) {\n\t\t\tfor (const item of this) {\n\t\t\t\tif (callback(item)) {\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Iterator.prototype.indexed instanceof Function)) {\n\t\tIterator.prototype.indexed = function* indexed() {\n\t\t\tlet n = 0;\n\t\t\tfor (const item of this) {\n\t\t\t\tyield [n++, item];\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! ('isSecureContext' in globalThis)) {\n\t\tconst hostnames = ['localhost', '127.0.0.1'];\n\t\tconst HTTPS = 'https:';\n\t\tconst protocols = [HTTPS, 'file:', 'wss:'];\n\t\tconst hasSecureScripts = (document = globalThis.document) => {\n\t\t\treturn [...document.scripts].every(({ src }) => {\n\t\t\t\tif (src.length === 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tconst { protocol, hostname } = new URL(src, document.baseURI);\n\t\t\t\t\treturn protocol === HTTPS || hostname === location.hostname;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tObject.defineProperty(globalThis, 'isSecureContext', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function isSecureContext() {\n\t\t\t\tif (window.parent !== window) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (protocols.includes(location.protocol) || hostnames.includes(location.hostname)) {\n\t\t\t\t\treturn hasSecureScripts();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n})();\n","const funcs = new WeakMap();\n\nexport const between = (min, val, max) => typeof val === 'number' && val >= min && val <= max;\n\nexport function getDeferred() {\n\tif (Promise.withResolvers instanceof Function) {\n\t\treturn Promise.withResolvers();\n\t} else {\n\t\tconst def = {};\n\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\tdef.resolve = resolve;\n\t\t\tdef.reject = reject;\n\t\t});\n\n\t\treturn def;\n\t}\n}\n\nexport function isAsyncFunction(what) {\n\treturn what instanceof Function && what.constructor.name === 'AsyncFunction';\n}\n\nexport function isAsync(what) {\n\treturn isAsyncFunction(what) || what instanceof Promise;\n}\n\nexport function isObject(thing) {\n\treturn typeof thing === 'object' && ! Object.is(thing, null) && ! Array.isArray(thing);\n}\n\nexport function getType(thing) {\n\tswitch (typeof thing) {\n\t\tcase 'undefined':\n\t\t\treturn 'Undefined';\n\n\t\tcase 'function':\n\t\t\tif ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else {\n\t\t\t\treturn 'Function';\n\t\t\t}\n\n\t\tcase 'object':\n\t\t\tif (Object.is(thing, null)) {\n\t\t\t\treturn 'Null';\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else if (Symbol.toStringTag in thing) {\n\t\t\t\treturn thing[Symbol.toStringTag];\n\t\t\t} else if ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else {\n\t\t\t\tconsole.log(thing);\n\t\t\t\treturn 'Unknown Object';\n\t\t\t}\n\n\t\tcase 'string':\n\t\t\treturn 'String';\n\n\t\tcase 'number':\n\t\t\treturn Number.isNaN(thing) ? 'NaN' : 'Number';\n\n\t\tcase 'bigint':\n\t\t\treturn 'BigInt';\n\n\t\tcase 'boolean':\n\t\t\treturn 'Boolean';\n\n\t\tcase 'symbol':\n\t\t\treturn 'Symbol';\n\n\t\tdefault:\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function callOnce(callback, thisArg) {\n\tif (callback.once instanceof Function) {\n\t\treturn callback.once(thisArg);\n\t} else {\n\t\treturn function(...args) {\n\t\t\tif (funcs.has(callback)) {\n\t\t\t\treturn funcs.get(callback);\n\t\t\t} else if (isAsyncFunction(callback)) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args).catch(err => {\n\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\tthrow err;\n\t\t\t\t});\n\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t} else if (callback instanceof Function) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args);\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t}\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Lock\n */\nconst protectedData = new WeakMap();\n\nexport class Lock {\n\tconstructor(name, mode = 'exclusive') {\n\t\tif (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`'${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tif (name.startsWith('-')) {\n\t\t\tthrow new DOMException('Names starting with `-` are reserved');\n\t\t}\n\n\t\tprotectedData.set(this, { name, mode });\n\t}\n\n\tget name() {\n\t\treturn protectedData.get(this).name;\n\t}\n\n\tget mode() {\n\t\treturn protectedData.get(this).mode;\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { getDeferred, isAsync } from './utility.js';\nimport { Lock } from './Lock.js';\nconst locks = new Map();\nconst symbols = {\n\tlockKey: Symbol('lock-key'),\n};\n\nexport const nativeSupport = 'locks' in navigator && navigator.locks.request instanceof Function;\nexport async function checkSupport() {\n\treturn await new Promise(resolve => {\n\t\tif ('locks' in navigator && navigator.locks.request instanceof Function) {\n\t\t\tnavigator.locks.query().then(() => resolve(true)).catch(() => resolve(false));\n\t\t} else {\n\t\t\tresolve(false);\n\t\t}\n\t});\n}\n/**\n * Some browsing contexts (iframes) have `navigator.locks` but methods only throw\n */\nexport const actuallySupported = checkSupport();\n\nasync function callFunction(callback, arg = null) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (isAsync(callback)) {\n\t\t\tcallback.call(globalThis, arg).then(resolve, reject);\n\t\t} else {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = callback.call(globalThis, arg);\n\t\t\t\t\tresolve(result);\n\t\t\t\t} catch(err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction shouldPend({ name, mode }) {\n\tswitch(mode) {\n\t\tcase 'exclusive': return getLocks().some(lock => lock.name === name);\n\t\tcase 'shared': return getLocks().some(lock => lock.name === name && lock.mode === 'exclusive');\n\t}\n}\n\nfunction stealLocks(name) {\n\t[...locks.entries()].filter(([lock]) => lock.name === name).forEach(([lock, { reject, controller }]) => {\n\t\trequestIdleCallback(() => {\n\t\t\tcontroller.abort();\n\t\t\tlocks.delete(lock);\n\t\t});\n\t\treject(new DOMException('The lock request is aborted'));\n\t});\n}\n\nasync function whenReleased(lock) {\n\tif (locks.has(lock)) {\n\t\tawait locks.get(lock).promise.catch(console.error);\n\t}\n}\n\nfunction queueTask(name, mode, callback) {\n\tconst { resolve, reject, promise } = getDeferred();\n\tconst controller = new AbortController();\n\tconst lock = new Lock(name, mode);\n\tconst pending = shouldPend(lock);\n\tlocks.set(lock, { resolve, reject, promise, callback, pending, controller });\n\treturn lock;\n}\n\nfunction setPending(lock, pending = true) {\n\tif (locks.has(lock)) {\n\t\tlocks.set(lock, {...locks.get(lock), pending });\n\t}\n}\n\nfunction isPending(lock) {\n\treturn lock instanceof Lock && locks.has(lock) && locks.get(lock).pending;\n}\n\nfunction getLocks(name) {\n\tif (typeof name === 'string') {\n\t\treturn [...locks.keys()].filter(lock => lock.name === name);\n\t} else {\n\t\treturn [...locks.keys()];\n\t}\n}\n\nfunction getHeldLocks(name) {\n\treturn getLocks(name).filter(lock => ! isPending(lock));\n}\n\nfunction getPendingLocks(name) {\n\treturn getLocks(name).filter(lock => isPending(lock));\n}\n\nasync function whenNotBlocked(lock) {\n\tswitch(lock.mode) {\n\t\tcase 'exclusive':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t\tcase 'shared':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l.mode === 'exclusive' && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t}\n}\n\nfunction getLockSignal(lock) {\n\tif (locks.has(lock)) {\n\t\treturn locks.get(lock).controller.signal;\n\t}\n}\n\nasync function executeLock(lock) {\n\tif (locks.has(lock)) {\n\t\tconst { resolve, reject, promise, callback, pending, controller } = locks.get(lock);\n\t\tif (pending) {\n\t\t\tsetPending(lock, false);\n\t\t}\n\n\t\tcallFunction(callback, lock).then(resolve, reject).finally(() => {\n\t\t\tlocks.delete(lock);\n\t\t\trequestIdleCallback(() => controller.abort());\n\t\t});\n\n\t\treturn promise;\n\t}\n}\n\n/**\n * @see https://w3c.github.io/web-locks/\n * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager\n */\nexport class LockManager {\n\tconstructor(key) {\n\t\tif (key !== symbols.lockKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\t}\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n\t * @param {[type]} name [description]\n\t * @param {[type]} args [description]\n\t * @return {Promise} [description]\n\t * static async request(name, callback)\n\t * static async request(name, { mode = 'exclusive', ifAvailable = false, steal = false, signal }, callback)\n\t */\n\tstatic async request(name, ...args) {\n\t\tlet opts = {}, callback;\n\t\tif (args[0] instanceof Function) {\n\t\t\tcallback = args[0];\n\t\t} else if (args[1] instanceof Function) {\n\t\t\t[opts, callback] = args;\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tconst { mode = 'exclusive', ifAvailable = false, steal = false, signal } = opts;\n\n\t\tif (steal && ifAvailable) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` and `ifAvailable` cannot be used together');\n\t\t} else if (name.startsWith('-')) {\n\t\t\tthrow new DOMException('LockManager.request: Names starting with `-` are reserved');\n\t\t} else if (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t} else if (signal instanceof AbortSignal && signal.aborted) {\n\t\t\tthrow signal.reason;\n\t\t} else if (mode === 'shared' && steal) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` is only supported for exclusive lock requests');\n\t\t}\n\n\t\tconst held = getHeldLocks(name);\n\t\tconst pending = getPendingLocks(name);\n\t\tconst alreadyLocked = [...held, ...pending].some(lock => lock.name === name);\n\n\t\tif (steal && alreadyLocked) {\n\t\t\tstealLocks(name);\n\t\t}\n\n\t\t/**\n\t\t * If shared & held lock found (none exclusive), then this lock may be held as well\n\t\t * If exclusive & held or pending lock found, this is pending\n\t\t */\n\t\tconst lock = queueTask(name, mode, callback);\n\t\tif (signal instanceof AbortSignal) {\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\tif (locks.has(lock)) {\n\t\t\t\t\tconst { reject, controller } = locks.get(lock);\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treject(new DOMException('The lock request is aborted'));\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t}\n\t\t\t}, { once: true, signal: getLockSignal(lock) });\n\t\t}\n\n\t\tswitch(mode) {\n\t\t\tcase 'exclusive': {\n\t\t\t\tif (ifAvailable && (held.length !== 0 || pending.length !== 0)) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'shared': {\n\t\t\t\tif (! ifAvailable) {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t} else if ([...held, ...pending].some(lock => lock.mode === 'exclusive')) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/query\n\t * @return {Promise} { held: [], pending: [] }\n\t */\n\tstatic async query() {\n\t\treturn {\n\t\t\theld: getHeldLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t\tpending: getPendingLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t};\n\t}\n}\n\nexport async function request(...args) {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.request(...args);\n\t} else {\n\t\treturn LockManager.request(...args);\n\t}\n}\n\nexport async function query() {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.query();\n\t} else {\n\t\treturn LockManager.query();\n\t}\n}\n\nexport async function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.Lock = Lock;\n\t\tglobalThis.LockManager = LockManager;\n\t\tnavigator.locks = LockManager;\n\t} else if (! await actuallySupported) {\n\t\tnavigator.locks.request = (...args) => LockManager.request(...args);\n\t\tnavigator.locks.query = () => LockManager.query();\n\t}\n}\n","export function errorToEvent(error, type = 'error') {\n\tif (error instanceof Error) {\n\t\tconst { message, name, fileName: filename, lineNumber: lineno, columnNumber: colno } = error;\n\t\treturn new ErrorEvent(type, { error, message: `${name}: ${message}`, filename, lineno, colno });\n\t} else {\n\t\tthrow new TypeError('`errorToEvent()` only accepts Errors');\n\t}\n}\n","import { LockManager, actuallySupported, nativeSupport } from './assets/LockManager.js';\nimport { errorToEvent } from './assets/error.js';\nlet polyfilled = false;\n\nconst polyfilledPromise = new Promise(async resolve => {\n\tif (nativeSupport) {\n\t\tif (await actuallySupported) {\n\t\t\tresolve(false);\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tnavigator.locks.request = LockManager.request;\n\t\t\t\tnavigator.locks.query = LockManager.query;\n\t\t\t\tpolyfilled = true;\n\t\t\t\tresolve(true);\n\t\t\t} catch(err) {\n\t\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\tnavigator.locks = LockManager;\n\t\t\tpolyfilled = true;\n\t\t\tresolve(true);\n\t\t} catch(err) {\n\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\tresolve(false);\n\t\t}\n\t}\n});\n\n\nexport { polyfilled, polyfilledPromise };\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.canShare instanceof Function)) {\n\t\tnavigator.canShare = function({ title, text, url, files } = {}) {\n\t\t\tif (! (navigator.share instanceof Function)) {\n\t\t\t\treturn false;\n\t\t\t} else if (Array.isArray(files) && files.length !== 0) {\n\t\t\t\treturn false;\n\t\t\t} else if ([title, text, url].every(arg => typeof arg === 'undefined')) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn [title, text, url].some(arg => typeof arg === 'string' && arg.length !== 0);\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.setAppBadge instanceof Function)) {\n\t\tnavigator.setAppBadge = async (n) => {\n\t\t\tif (! Number.isInteger(n)) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is not of type \\'unsigned long long\\'');\n\t\t\t} else if (n < 0) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is outside the \\'unsigned long long\\' value range.');\n\t\t\t} else if (n === 0) {\n\t\t\t\tif (document.title.startsWith('(')) {\n\t\t\t\t\tdocument.title = document.title.replace(/^\\((\\d{1,2}\\+?)\\)\\s/, '');\n\t\t\t\t}\n\t\t\t} else if (n < 100) {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(${n}) ${document.title}`;\n\t\t\t} else {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(99+) ${document.title}`;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (navigator.clearAppBadge instanceof Function)) {\n\t\tnavigator.clearAppBadge = () => navigator.setAppBadge(0);\n\t}\n})();\n","import './locks.js';\nimport './share.js';\nimport './appBadge.js';\n\nif (! Navigator.prototype.hasOwnProperty('pdfViewerEnabled')) {\n\tObject.defineProperty(navigator, 'pdfViewerEnabled', {\n\t\tenumerable: true,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t\tvalue: false,\n\t});\n}\n\nif (! (Navigator.prototype.getInstalledRelatedApps instanceof Function)) {\n\tNavigator.prototype.getInstalledRelatedApps = async () => [];\n}\n\nif (! (Navigator.prototype.getGamepads instanceof Function)) {\n\tNavigator.prototype.getGamepads = () => [];\n}\n\nif (! ('hardwareConcurrency' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'hardwareConcurrency', {\n\t\tget: () => 1,\n\t});\n}\n\nif (! ('connection' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'connection', {\n\t\tget: () => Object.create(EventTarget.prototype, {\n\t\t\ttype: { value: 'unknown' },\n\t\t\teffectiveType: { value: '4g' },\n\t\t\trtt: { value: NaN },\n\t\t\tdownlink: { value: NaN },\n\t\t\tdownlinkMax: { value: Infinity },\n\t\t\tsaveData: { value: false },\n\t\t\tonchange: { value: null, writable: true },\n\t\t\tontypechange: { value: null, writable: true },\n\t\t})\n\t});\n} else if (! ('type' in navigator.connection)) {\n\tnavigator.connection.type = 'unknown';\n}\n\nif (! ('doNotTrack' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'doNotTrack', {\n\t\tget: () => 'unspecified',\n\t});\n}\n\nif (! ('globalPrivacyControl' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'globalPrivacyControl', {\n\t\tget: () => false,\n\t});\n}\n","(function() {\n\t'use strict';\n\n\tif (! (globalThis.requestIdleCallback instanceof Function)) {\n\t\tconst isValidTimeout = timeout => Number.isSafeInteger(timeout) && timeout > 0;\n\n\t\tglobalThis.requestIdleCallback = function(callback, { timeout } = {}) {\n\t\t\tconst start = performance.now();\n\t\t\tconst timeRemaining = () => isValidTimeout(timeout)\n\t\t\t\t? Math.max(0, timeout - (performance.now() - start))\n\t\t\t\t: Math.max(0, 600 - (performance.now() - start));\n\n\t\t\treturn setTimeout(() => callback({\n\t\t\t\tdidTimeout: isValidTimeout(timeout) ? timeRemaining() === 0 : false,\n\t\t\t\ttimeRemaining,\n\t\t\t}), 1);\n\t\t};\n\t}\n\n\tif (! (globalThis.cancelIdleCallback instanceof Function)) {\n\t\tglobalThis.cancelIdleCallback = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.requestAnimationFrame instanceof Function)) {\n\t\tglobalThis.requestAnimationFrame = callback => setTimeout(() => callback(performance.now()), 1000 / 60);\n\t}\n\n\tif (! (globalThis.cancelAnimationFrame instanceof Function)) {\n\t\tglobalThis.cancelAnimationFrame = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.queueMicrotask instanceof Function)) {\n\t\tglobalThis.queueMicrotask = cb => Promise.resolve().then(cb)\n\t\t\t.catch(e => setTimeout(() => { throw e; }));\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! ('AbortSignal' in globalThis)) {\n\t\tconst symbols = {\n\t\t\tsignal: Symbol('signal'),\n\t\t\taborted: Symbol('aborted'),\n\t\t\treason: Symbol('reason'),\n\t\t\tonabort: Symbol('onabort'),\n\t\t};\n\n\t\tglobalThis.AbortError = class AbortError extends Error {};\n\n\t\tglobalThis.AbortSignal = class AbortSignal extends EventTarget {\n\t\t\tconstructor() {\n\t\t\t\tsuper();\n\n\t\t\t\tObject.defineProperties(this,{\n\t\t\t\t\t[symbols.aborted]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: false,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.reason]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.onabort]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tthis.addEventListener('abort', event => {\n\t\t\t\t\tif (this.onabort instanceof Function) {\n\t\t\t\t\t\tthis.onabort.call(this, event);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tget aborted() {\n\t\t\t\treturn this[symbols.aborted];\n\t\t\t}\n\n\t\t\tget onabort() {\n\t\t\t\treturn this[symbols.onabort];\n\t\t\t}\n\n\t\t\tset onabort(value) {\n\t\t\t\tif (value instanceof Function) {\n\t\t\t\t\tthis[symbols.onabort] = value;\n\t\t\t\t} else {\n\t\t\t\t\tthis[symbols.onabort] = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tget reason() {\n\t\t\t\treturn this[symbols.reason];\n\t\t\t}\n\n\t\t\tthrowIfAborted() {\n\t\t\t\tif (this.aborted) {\n\t\t\t\t\tthrow this.reason;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstatic abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = new AbortSignal();\n\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\treturn signal;\n\t\t\t}\n\t\t};\n\n\t\tglobalThis.AbortController = class AbortController {\n\t\t\tconstructor() {\n\t\t\t\tthis[symbols.signal] = new AbortSignal();\n\t\t\t}\n\n\t\t\tget signal() {\n\t\t\t\treturn this[symbols.signal];\n\t\t\t}\n\n\t\t\tabort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = this.signal;\n\n\t\t\t\tif (! signal.aborted) {\n\t\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\t\tsignal.dispatchEvent(new Event('abort'));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! ('reason' in AbortSignal.prototype)) {\n\t\tconst reasons = new WeakMap();\n\t\tconst abort = AbortController.prototype.abort;\n\n\t\tif (AbortSignal.abort instanceof Function) {\n\t\t\tconst staticAbort = AbortSignal.abort;\n\n\t\t\tAbortSignal.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = staticAbort();\n\t\t\t\treasons.set(signal, reason);\n\t\t\t\treturn signal;\n\t\t\t};\n\t\t} else {\n\t\t\tAbortSignal.abort = function abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tcontroller.abort(reason);\n\t\t\t\treturn controller.reason;\n\t\t\t};\n\t\t}\n\n\t\tObject.defineProperty(AbortSignal.prototype, 'reason', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function() {\n\t\t\t\tif (reasons.has(this)) {\n\t\t\t\t\treturn reasons.get(this);\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tAbortController.prototype.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\treasons.set(this.signal, reason);\n\t\t\tabort.call(this);\n\t\t};\n\t}\n\n\tif (! (AbortSignal.prototype.throwIfAborted instanceof Function)) {\n\t\tAbortSignal.prototype.throwIfAborted = function() {\n\t\t\tif (this.aborted) {\n\t\t\t\tthrow this.reason;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (AbortSignal.timeout instanceof Function)) {\n\t\tAbortSignal.timeout = function(ms) {\n\t\t\tif (typeof ms === 'undefined') {\n\t\t\t\tthrow new TypeError('At least one 1 argument required but only 0 passed');\n\t\t\t} else if (! Number.isFinite(ms)) {\n\t\t\t\tthrow new TypeError('Argument 1 is not a finite value, so it is out of range for unsigned long long.');\n\t\t\t} else if (ms < 0) {\n\t\t\t\tthrow new TypeError('Argument 1 is out of range for unsigned long long.');\n\t\t\t} else {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tsetTimeout(() => controller.abort(new DOMException('The operation timed out.')), ms);\n\t\t\t\treturn controller.signal;\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * @see https://chromestatus.com/feature/5202879349522432\n\t * @TODO How do I handle if a signal is already aborted\n\t * @TODO Should controller abort on a TypeError\n\t */\n\tif (! (AbortSignal.any instanceof Function)) {\n\t\tAbortSignal.any = function(signals) {\n\t\t\tif (! Array.isArray(signals)) {\n\t\t\t\tthrow new TypeError('Expected an array of signals');\n\t\t\t}\n\n\t\t\tconst controller = new AbortController();\n\n\t\t\tfor (const signal of signals) {\n\t\t\t\tif (! (signal instanceof AbortSignal)) {\n\t\t\t\t\tconst err = new TypeError('`signal` is not an `AbortSignal`');\n\t\t\t\t\tcontroller.abort(err);\n\t\t\t\t\tthrow err;\n\t\t\t\t} else if (signal.aborted) {\n\t\t\t\t\tcontroller.abort(signal.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\tcontroller.abort(target.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\t}, { signal: controller.signal });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn controller.signal;\n\t\t};\n\t}\n})();\n","import { errorToEvent } from './assets/error.js';\n\nif (! globalThis.hasOwnProperty('AggregateError')) {\n\tglobalThis.AggregateError = class AggregateError extends Error {\n\t\tconstructor(errors, message) {\n\t\t\tif (typeof message === 'undefined') {\n\t\t\t\tsuper(errors);\n\t\t\t\tthis.errors = [];\n\t\t\t} else {\n\t\t\t\tsuper(message);\n\t\t\t\tthis.errors = errors;\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (globalThis.reportError instanceof Function)) {\n\tglobalThis.reportError = function reportError(error) {\n\t\tglobalThis.dispatchEvent(errorToEvent(error));\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! ('MediaQueryListEvent' in globalThis)) {\n\t\t/**\n\t\t * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryListEvent\n\t\t */\n\t\tglobalThis.MediaQueryListEvent = class MediaQueryListEvent extends Event {\n\t\t\tconstructor(type, { media, matches } = {}) {\n\t\t\t\tsuper(type);\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t'media': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: media,\n\t\t\t\t\t},\n\t\t\t\t\t'matches': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: matches,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\n\tif ('MediaQueryList' in globalThis && ! (globalThis.MediaQueryList.prototype.addEventListener instanceof Function)) {\n\t\tconst targets = new WeakMap();\n\n\t\tconst listener = function listener() {\n\t\t\tconst { media, matches } = this;\n\t\t\tthis.dispatchEvent(new MediaQueryListEvent('change', { media, matches }));\n\t\t};\n\n\t\tconst init = function init(mql) {\n\t\t\tif (! targets.has(mql)) {\n\t\t\t\ttargets.set(mql, new EventTarget());\n\t\t\t\tmql.addListener(listener.bind(mql));\n\t\t\t}\n\n\t\t\treturn targets.get(mql);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.addEventListener = function addEventListener(type, callback, opts) {\n\t\t\tinit(this).addEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.removeEventListener = function removeEventListner(type, callback, opts) {\n\t\t\tinit(this).removeEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.dispatchEvent = function dispatchEvent(event) {\n\t\t\tinit(this).dispatchEvent(event);\n\t\t};\n\t}\n})();\n","if ('Promise' in globalThis) {\n\tif (! (Promise.prototype.finally instanceof Function)) {\n\t\tPromise.prototype.finally = function(callback) {\n\t\t\treturn this.then(async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t}, async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t});\n\t\t};\n\t}\n\n\tif (! (Promise.allSettled instanceof Function)) {\n\t\tPromise.allSettled = function(promises) {\n\t\t\treturn Promise.all(Array.from(promises).map(function(call) {\n\t\t\t\treturn new Promise(function(resolve) {\n\t\t\t\t\tif (! (call instanceof Promise)) {\n\t\t\t\t\t\tcall = Promise.resolve(call);\n\t\t\t\t\t}\n\t\t\t\t\tcall.then(function(value) {\n\t\t\t\t\t\tresolve({ status: 'fulfilled', value: value });\n\t\t\t\t\t}).catch(function(reason) {\n\t\t\t\t\t\tresolve({ status: 'rejected', reason: reason });\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}));\n\t\t};\n\t}\n\n\tif (! (Promise.any instanceof Function)) {\n\t\tPromise.any = (promises) => new Promise((resolve, reject) => {\n\t\t\tlet errors = [];\n\n\t\t\tpromises.forEach(promise => {\n\t\t\t\tpromise.then(resolve).catch(e => {\n\t\t\t\t\terrors.push(e);\n\t\t\t\t\tif (errors.length === promises.length) {\n\t\t\t\t\t\treject(new globalThis.AggregateError(errors, 'No Promise in Promise.any was resolved'));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tif (! (Promise.race instanceof Function)) {\n\t\tPromise.race = (promises) => new Promise((resolve, reject) => {\n\t\t\tpromises.forEach(promise => promise.then(resolve, reject));\n\t\t});\n\t}\n\n\tif (! (Promise.try instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-promise-try\n\t\t */\n\t\tPromise.try = callback => new Promise(resolve => resolve(callback()));\n\t}\n\n\tif (! (Promise.withResolvers instanceof Function)) {\n\t\tPromise.withResolvers = function() {\n\t\t\tconst def = {};\n\t\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\t\tdef.resolve = resolve;\n\t\t\t\tdef.reject = reject;\n\t\t\t});\n\n\t\t\treturn def;\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport class TextEncoder {\n\tget encoding() {\n\t\treturn 'utf-8';\n\t}\n\n\tencode(str) {\n\t\t// Identical to char up to 127, then [194, (n)] for n=(128-191),\n\t\t// then [194, (128-191)] for n=(192-255)\n\t\t// and it looks like this holds in intervals of 64\n\t\treturn new Uint8Array(str.split('').flatMap(char => {\n\t\t\tconst code = char.charCodeAt(0);\n\n\t\t\tif (code < 128) {\n\t\t\t\treturn [code];\n\t\t\t} else {\n\t\t\t\tconst pt = 194 + Math.floor((code - 128) / 64);\n\t\t\t\treturn [pt, (code % 64) + 128];\n\t\t\t}\n\t\t}));\n\t}\n\n\tencodeInto(str, ui8arr) {\n\t\tif (! (ui8arr instanceof Uint8Array)) {\n\t\t\tthrow new TypeError('TextEncoder.encodeInto: Argument 2 does not implement interface Uint8Array.');\n\t\t} else {\n\t\t\tconst encoded = this.encode(str);\n\t\t\tconst len = Math.min(ui8arr.length, encoded.length);\n\n\t\t\tif (encoded.length > ui8arr.length) {\n\t\t\t\tui8arr.set(encoded.slice(0, len));\n\t\t\t} else {\n\t\t\t\tui8arr.set(encoded);\n\t\t\t}\n\n\t\t\treturn { read: len, written: len };\n\t\t}\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { between } from './utility.js';\n/**\n *\n * Array of supported encodings\n * @Todo: At least add utf-16\n * @type {Array}\n */\nconst supportedEncodings = ['utf-8', 'utf8'];\n\nexport const BOM = new Uint8Array([0xEF, 0xBB, 0xBF]);\n\nexport class TextDecoder {\n\tconstructor(encoding = 'utf-8', { fatal = false, ignoreBOM = false } = {}) {\n\t\tif (typeof encoding !== 'string') {\n\t\t\tencoding = encoding.toString().toLowerCase();\n\t\t} else {\n\t\t\tencoding = encoding.toLowerCase();\n\t\t}\n\n\t\tif (! supportedEncodings.includes(encoding)) {\n\t\t\tthrow new RangeError(`TextDecoder constructor: The given encoding '${encoding}' is not supported.`);\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\tencoding: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: encoding,\n\t\t\t},\n\t\t\tfatal: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fatal,\n\t\t\t},\n\t\t\tignoreBOM: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: ignoreBOM,\n\t\t\t},\n\t\t});\n\t}\n\n\tdecode(data) {\n\t\tswitch(this.encoding) {\n\t\t\tcase 'utf-8':\n\t\t\tcase 'utf8': {\n\t\t\t\tlet prev = NaN;\n\t\t\t\t/**\n\t\t\t\t * For (0,127) we just take the charCode\n\t\t\t\t * For charCode 128+this will be in the form [n=194+, m=(128-191)]\n\t\t\t\t * where n increments after m reaches 191, increments, and rolls back to 128\n\t\t\t\t */\n\t\t\t\treturn data.reduce((str, i, n) => {\n\t\t\t\t\tif (Number.isNaN(prev) && i < 128) {\n\t\t\t\t\t\treturn str + String.fromCharCode(i);\n\t\t\t\t\t} else if (Number.isNaN(prev) && i > 193) {\n\t\t\t\t\t\tprev = i;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t} else if (prev > 193 && between(128, i, 194)) {\n\t\t\t\t\t\tconst offset = (prev - 194) * 64;\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str + String.fromCharCode(offset + i);\n\t\t\t\t\t} else if (this.fatal) {\n\t\t\t\t\t\tthrow new RangeError(`Unhandled character at postion ${n}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t}\n\t\t\t\t}, '');\n\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Unsupported encoding '${this.encoding}'`);\n\t\t}\n\t}\n}\n","import { TextEncoder } from './assets/TextEncoder.js';\nimport { TextDecoder } from './assets/TextDecoder.js';\n\nif (! ('TextEncoder' in globalThis)) {\n\tglobalThis.TextEncoder = TextEncoder;\n}\n\nif (! ('TextDecoder' in globalThis)) {\n\tglobalThis.TextDecoder = TextDecoder;\n}\n\nif (! (globalThis.TextEncoder.prototype.encodeInto instanceof Function)) {\n\tglobalThis.TextEncoder.prototype.encodeInto = function(...args) {\n\t\treturn TextEncoder.prototype.encodeInto.apply(this, args);\n\t};\n}\n","if (crypto in globalThis && ! (crypto.randomUUID instanceof Function)) {\n\tcrypto.randomUUID = function randomUUID() {\n\t\t'use strict';\n\t\treturn ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>\n\t\t\t(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n\t\t);\n\t};\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @SEE https://wicg.github.io/cookie-store/\n * @SEE https://wicg.github.io/cookie-store/explainer.html\n * @NOTE: This offers similar methods but is not a substitute and cannot get extended\n * cookie properties, such as expires, etc.\n *\n * @TODO verify spec compliance as best as is possible\n */\n\nexport const nativeSupport = 'cookieStore' in globalThis;\n\nconst symbols = {\n\tconstructor: Symbol('constructor'),\n};\n\nfunction getAllCookies() {\n\tif (document.cookie.length === 0) {\n\t\treturn [];\n\t} else {\n\t\treturn document.cookie.split(';').map(str => {\n\t\t\tconst [name, value = null] = str.split('=');\n\t\t\treturn {\n\t\t\t\tname: decodeURIComponent(name.trim()),\n\t\t\t\tvalue: typeof value === 'string' ? decodeURIComponent(value.trim()) : null,\n\t\t\t\tpath: undefined,\n\t\t\t\texpires: undefined,\n\t\t\t\tdomain: undefined,\n\t\t\t\tsameSite: undefined,\n\t\t\t\tsecure: undefined,\n\t\t\t};\n\t\t});\n\t}\n}\n\nfunction defaultParams({\n\tname,\n\tvalue = null,\n\tdomain = null,\n\tpath = '/',\n\texpires = null,\n\tmaxAge = null,\n\tsameSite = 'strict',\n\tsecure = false,\n\thttpOnly = false,\n}) {\n\treturn { name, value, domain, path, expires, maxAge, sameSite, secure, httpOnly };\n}\n\nfunction getter({ name = null, value = null } = {}) {\n\tif (typeof name === 'string') {\n\t\tname = decodeURIComponent(name);\n\t}\n\n\tif (typeof value === 'string') {\n\t\tvalue = decodeURIComponent(value);\n\t}\n\n\tif (typeof name === 'string' && typeof value === 'string') {\n\t\treturn getAllCookies().filter((cookie) =>\n\t\t\tcookie.name === name && cookie.value === value\n\t\t);\n\t} else if (typeof name === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.name === name);\n\t} else if (typeof value === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.value === value);\n\t} else {\n\t\treturn getAllCookies();\n\t}\n}\n\nfunction setter({\n\tname,\n\tvalue,\n\texpires = null,\n\tmaxAge = null,\n\tpath = '/',\n\tsameSite = 'strict',\n\tdomain = null,\n\tsecure = false,\n\thttpOnly = false,\n}) {\n\tif (Number.isInteger(maxAge)) {\n\t\tsetter({\n\t\t\tname, value, expires: Date.now() + maxAge, path, sameSite, domain, secure, httpOnly,\n\t\t});\n\t} else {\n\t\tlet cookie = `${encodeURIComponent(name)}=`;\n\n\t\tif (value) {\n\t\t\tcookie += encodeURIComponent(value);\n\t\t}\n\n\t\tif (Number.isInteger(expires)) {\n\t\t\tcookie += `;expires=${new Date(expires).toUTCString()}`;\n\t\t} else if (expires instanceof Date) {\n\t\t\tcookie += `;expires=${expires.toUTCString()}`;\n\t\t}\n\n\t\tif (typeof path === 'string') {\n\t\t\tcookie += `;path=${path}`;\n\t\t}\n\n\t\tif (typeof domain === 'string') {\n\t\t\tcookie += `;domain=${domain}`;\n\t\t}\n\n\t\tif (typeof sameSite === 'string') {\n\t\t\tcookie += `;sameSite=${sameSite}`;\n\t\t}\n\n\t\tif (secure === true) {\n\t\t\tcookie += ';secure';\n\t\t}\n\n\t\t/**\n\t\t * Does not work in any browser, but set regardless\n\t\t */\n\t\tif (httpOnly === true) {\n\t\t\tcookie += ';httponly';\n\t\t}\n\n\t\tdocument.cookie = cookie;\n\t}\n}\n\nexport class CookieStore extends EventTarget {\n\tconstructor(key) {\n\t\tif (key !== symbols.constructor) {\n\t\t\tthrow new DOMException('Invalid constructor');\n\t\t}\n\n\t\tsuper();\n\n\t\tObject.defineProperty(this, symbols.onchange, {\n\t\t\tenumerable: false,\n\t\t\tconfigurable: false,\n\t\t\twritable: true,\n\t\t\tvalue: null,\n\t\t});\n\t}\n\n\tget onchange() {\n\t\treturn this[symbols.onchange];\n\t}\n\n\tset onchange(callback) {\n\t\tif (this[symbols.onchange] instanceof Function) {\n\t\t\tthis.removeEventListener('change', this[symbols.onchange]);\n\t\t}\n\n\t\tif (callback instanceof Function) {\n\t\t\tthis.addEventListener('change', callback);\n\t\t}\n\t}\n\n\tasync get(args) {\n\t\tconst cookies = await this.getAll(args);\n\n\t\tif (Array.isArray(cookies) && cookies.length !== 0) {\n\t\t\treturn cookies[0];\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync getAll(args) {\n\t\tif (typeof args === 'string') {\n\t\t\treturn getter({ name: args });\n\t\t} else {\n\t\t\treturn getter(args);\n\t\t}\n\t}\n\n\tasync set(...args) {\n\t\tif (args.length === 1 && typeof args[0].name === 'string') {\n\t\t\tconst cookie = defaultParams(args[0]);\n\t\t\tsetter(cookie);\n\t\t\tconst event = new Event('change');\n\t\t\tevent.changed = [cookie];\n\t\t\tevent.deleted = [];\n\n\t\t\tthis.dispatchEvent(event);\n\t\t} else if (args.length === 2) {\n\t\t\tthis.set({ name: args[0], value: args[1] });\n\t\t} else {\n\t\t\tthrow new Error('Invalid arguments');\n\t\t}\n\t}\n\n\tasync delete(args = {}) {\n\t\tif (typeof args === 'string') {\n\t\t\tthis.delete({ name: args });\n\t\t} else if (typeof args.name === 'string') {\n\t\t\tconst cookies = await this.getAll(args);\n\n\t\t\tif (cookies.length !== 0) {\n\t\t\t\tconst event = new Event('change');\n\t\t\t\tevent.changed = [];\n\t\t\t\tevent.deleted = new Array(cookies.length);\n\n\t\t\t\tcookies.forEach((cookie, i) => {\n\t\t\t\t\tcookie.path = args.path || '/';\n\t\t\t\t\tcookie.domain = args.domain || null;\n\t\t\t\t\tcookie.secure = args.secure || null;\n\t\t\t\t\tdelete cookie.value;\n\t\t\t\t\tcookie.sameSite = args.sameSite || 'strict';\n\n\t\t\t\t\tevent.deleted[i] = cookie;\n\t\t\t\t\tsetter({...cookie, value: null, expires: 1 });\n\t\t\t\t});\n\n\t\t\t\tthis.dispatchEvent(event);\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to execute \\'delete\\' on \\'CookieStore\\': required member name is undefined.');\n\t\t}\n\t}\n}\n\nexport const cookieStore = new CookieStore(symbols.constructor);\n\nexport function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.cookieStore = cookieStore;\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { callOnce } from './utility.js';\n\nexport function setProp(el, prop, val, {\n\tpolicy,\n} = {}) {\n\tswitch(getPropertyType(el.tagName, prop)) {\n\t\tcase 'TrustedScript':\n\t\t\tel[prop] = createScript(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedScriptURL':\n\t\t\tel[prop] = createScriptURL(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tel[prop] = createHTML(val, { policy });\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tel[prop] = val;\n\t}\n}\n\nexport function setAttr(el, attr, val, {\n\telementNs,\n\tpolicy,\n} = {}) {\n\tswitch(getAttributeType(el.tagName, attr, elementNs)) {\n\t\tcase 'TrustedScriptURL':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNs(elementNs, attr, createScriptURL(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScriptURL(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedScript':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createScript(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScript(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createHTML(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createHTML(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, val);\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, val);\n\t\t\t}\n\t}\n}\n\nexport function supported() {\n\treturn 'trustedTypes' in globalThis\n\t\t&& trustedTypes instanceof EventTarget\n\t\t&& trustedTypes.createPolicy instanceof Function;\n}\n\nexport function isTrustPolicy(policy) {\n\tif ('TrustedTypePolicy' in globalThis && policy instanceof TrustedTypePolicy) {\n\t\treturn true;\n\t} else {\n\t\treturn policy != null && policy.createHTML instanceof Function;\n\t}\n}\n\nexport function hasDefaultPolicy() {\n\treturn supported() && isTrustPolicy(trustedTypes.defaultPolicy);\n}\n\nexport function getAttributeType(tagName, attribute, elementNs) {\n\tif (supported()) {\n\t\treturn trustedTypes.getAttributeType(tagName.toLowerCase(), attribute, elementNs);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function getPropertyType(tagName, property) {\n\tif (supported()) {\n\t\treturn trustedTypes.getPropertyType(tagName.toLowerCase(), property);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function isHTML(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScript(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScript(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScriptURL(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn typeof input === 'string' || input instanceof URL;\n\t}\n}\n\nexport function isTrustedType(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input) || trustedTypes.isScript(input) || trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn true;\n\t}\n}\n\nexport function createHTML(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isHTML(input)) {\n\t\treturn policy.createHTML(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScript(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScript(input)) {\n\t\treturn policy.createScript(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScriptURL(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScriptURL(input)) {\n\t\treturn policy.createScriptURL(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createPolicy(name, {\n\tcreateHTML = () => {\n\t\tthrow new TypeError('This policy does not provide `createHTML()`');\n\t},\n\tcreateScript = () => {\n\t\tthrow new TypeError('This policy does not provide `createScript()`');\n\t},\n\tcreateScriptURL = () => {\n\t\tthrow new TypeError('This policy does not provide `createScriptURL()`');\n\t},\n}) {\n\tif (supported()) {\n\t\treturn trustedTypes.createPolicy(name, { createHTML, createScript, createScriptURL });\n\t} else {\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tcreateHTML: (input, ...args) => createHTML(input.toString(), ...args),\n\t\t\tcreateScript: (input, ...args) => createScript(input.toString(), ...args),\n\t\t\tcreateScriptURL: (input, ...args) => createScriptURL(input.toString(), ...args),\n\t\t});\n\t}\n}\n\nexport function getDefaultPolicy() {\n\tif (supported()) {\n\t\treturn trustedTypes.defaultPolicy;\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport const createHTMLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createHTML: cb }));\n\nexport const createScriptPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScript: cb }));\n\nexport const createScriptURLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScriptURL: cb }));\n","(function() {\n\t'use strict';\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('finished')) {\n\t\tObject.defineProperty(Animation.prototype, 'finished', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (this.playState === 'finished') {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('finish', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('ready')) {\n\t\tObject.defineProperty(Animation.prototype, 'ready', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (! this.pending) {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('ready', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const events = Object.keys(\n\tObject.getOwnPropertyDescriptors(HTMLElement.prototype)\n).filter(desc => desc.startsWith('on'));\n\nexport const urls = [\n\t'action',\n\t'cite',\n\t'formaction',\n\t'href',\n\t'ping',\n\t'src',\n];\n","import { callOnce } from './utility.js';\n\nexport const getHTTPCSP = callOnce(async function getHTTPCSP() {\n\tconst { ok, headers } = await fetch(location.href, { method: 'HEAD' });\n\n\tif (ok && headers.has('Content-Security-Policy')) {\n\t\tconst directives = headers.get('Content-Security-Policy').trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t}\n});\n\nexport function getMetaCSP() {\n\tconst meta = document.head.querySelector('meta[http-equiv=\"Content-Security-Policy\"][content]');\n\n\tif (meta instanceof HTMLMetaElement) {\n\t\tconst directives = meta.content.trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t} else {\n\t\treturn {};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { supported as isSupported } from './trust.js';\nimport { events } from './attributes.js';\nimport { getMetaCSP, getHTTPCSP } from './csp.js';\n/**\n * @See https://github.com/w3c/webappsec-trusted-types/blob/main/src/trustedtypes.js\n * @See https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API\n */\n\n// `<html data-fetch-trust-csp=\"1\">` will enable using actual CSP\nconst fetchCSP = document.documentElement.dataset.fetchTrustCsp === '1';\n\nfunction parseCSP({ 'trusted-types': trustedTypes = null } = {}) {\n\tif (Array.isArray(trustedTypes)) {\n\t\tconst policies = new Set(trustedTypes);\n\t\tconst allowDuplicates = policies.has('\\'allow-duplicates\\'');\n\t\tconst hasNone = policies.has('\\'none\\'');\n\n\t\tif (allowDuplicates) {\n\t\t\tpolicies.delete('\\'allow-duplicates\\'');\n\t\t}\n\n\t\tif (hasNone) {\n\t\t\tpolicies.clear();\n\t\t}\n\n\t\tpolicies.add('empty#html');\n\t\tpolicies.add('empty#script');\n\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nasync function getActualCSP() {\n\tconst { policies, allowDuplicates = false, hasNone = false } = await getHTTPCSP().then(parseCSP);\n\n\tif (policies instanceof Set) {\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nfunction init() {\n\t// Temporary config if/while fetching actual CSP\n\t// Maps to `trusted-types 'allow-duplicates'`\n\tconst getAllowDuplicates = () => {\n\t\tconst csp = parseCSP(getMetaCSP());\n\n\t\tif (typeof csp === 'object' && 'allowDuplicates' in csp) {\n\t\t\treturn csp.allowDuplicates;\n\t\t} else {\n\t\t\treturn document.documentElement.dataset.allowTrustDuplicates === '1';\n\t\t}\n\t};\n\n\tconst getAllowedPolicies = () => {\n\t\tif (document.documentElement.dataset.hasOwnProperty('trustedPolicies')) {\n\t\t\treturn new Set([\n\t\t\t\t'empty#html', 'empty#script',\n\t\t\t\t...document.documentElement.dataset.trustedPolicies.split(' '),\n\t\t\t]);\n\t\t} else {\n\t\t\tconst { policies } = parseCSP(getMetaCSP());\n\n\t\t\tif (policies instanceof Set) {\n\t\t\t\treturn policies;\n\t\t\t} else {\n\t\t\t\treturn new Set(['empty#html', 'empty#script']);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst fromCSP = parseCSP(getMetaCSP());\n\n\tif (typeof fromCSP === 'object' && fromCSP.policies instanceof Set) {\n\t\tconst { policies: allowedPolicies, allowDuplicates } = fromCSP;\n\t\treturn { allowDuplicates, allowedPolicies };\n\t} else {\n\t\tconst allowDuplicates = getAllowDuplicates();\n\t\tconst allowedPolicies = getAllowedPolicies();\n\n\t\tif (allowedPolicies.has('\\'none\\'')) {\n\t\t\tallowedPolicies.clear();\n\t\t}\n\n\t\tallowedPolicies.add('empty#html');\n\t\tallowedPolicies.add('empty#script');\n\n\t\treturn { allowDuplicates, allowedPolicies };\n\t}\n}\n\nconst { allowDuplicates, allowedPolicies } = init();\n\n/**\n * [supported description]\n */\nexport const supported = isSupported();\n\n/**\n * [symbols description]\n * @type {Object}\n */\nconst symbols = {\n\ttrustedValue: Symbol('[[Data]]'),\n\ttrustedKey: Symbol('trusted-key'),\n\temptyHTML: Symbol('policy-empty#html'),\n\temptyScript: Symbol('policy-empty#script'),\n\tpolicy: Symbol.for('trust-policy'),\n\tdefaultPolicy: Symbol('default-policy'),\n\ttrustedTypesCSP: Symbol('trusted-types-csp'),\n};\n\nif (! Symbol.hasOwnProperty('toStringTag')) {\n\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n}\n\nconst policies = [];\n\nfunction getPolicy(name) {\n\treturn policies.find(policy => policy.name === name) || null;\n}\n\nfunction hasPolicy(name) {\n\treturn getPolicy(name) !== null;\n}\n\n/**\n * [getUnsetPolicyException description]\n * @param {TrustedTypePolicy} policy [description]\n * @param {String} method [description]\n */\nfunction getUnsetPolicyException(policy, method) {\n\treturn function() {\n\t\tthrow new TypeError(`Failed to execute '${method}' on 'TrustedTypePolicy': Policy ${policy.name}'s TrustedTypePolicyOptions did not specify a '${method}' member.`);\n\t};\n}\n\n/**\n * [TrustedType description]\n * @type {TrustedType}\n */\nexport class TrustedType {\n\t/**\n\t * [constructor description]\n\t * @param {String} value [description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(value, { key, policy }) {\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\t[symbols.trustedValue]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: value.toString(),\n\t\t\t\t},\n\t\t\t\t[symbols.policy]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: policy.name,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.freeze(this);\n\t\t}\n\t}\n\n\t/**\n\t * [toString description]\n\t * @return {String} [description]\n\t */\n\ttoString() {\n\t\treturn this.valueOf();\n\t}\n\n\t/**\n\t * [toJSON description]\n\t * @return {String} [description]\n\t */\n\ttoJSON() {\n\t\treturn this.valueOf();\n\t}\n\n\tvalueOf() {\n\t\treturn this[symbols.trustedValue];\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedHTML}\n */\nexport class TrustedHTML extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedHTML';\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedScript}\n */\nexport class TrustedScript extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScript';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedScriptURL}\n */\nexport class TrustedScriptURL extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScriptURL';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedTypePolicy}\n */\nexport class TrustedTypePolicy {\n\t/**\n\t * [constructor description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t * @param {String} key [description]\n\t */\n\tconstructor(name, { createHTML, createScript, createScriptURL } = {}, { key }) {\n\t\t// @TODO: Chrome seems to allow any same-origin scripts creating policies\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: name.toString(),\n\t\t\t\t},\n\t\t\t\tcreateHTML: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createHTML instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedHTML(\n\t\t\t\t\t\t\tcreateHTML(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createHTML'),\n\t\t\t\t},\n\t\t\t\tcreateScript: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScript instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScript(\n\t\t\t\t\t\t\tcreateScript(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScript'),\n\t\t\t\t},\n\t\t\t\tcreateScriptURL: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScriptURL instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScriptURL(\n\t\t\t\t\t\t\tcreateScriptURL(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScriptURL'),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * [enumerable description]\n * @type {TrustedTypePolicyFactory}\n */\nexport class TrustedTypePolicyFactory extends EventTarget {\n\t/**\n\t * [constructor description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(key) {\n\t\tsuper();\n\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\n\t\tif (fetchCSP) {\n\t\t\tgetActualCSP().then(({ policies, allowDuplicates = false, hasNone = false }) => {\n\t\t\t\tif (typeof policies !== 'undefined') {\n\t\t\t\t\tObject.defineProperty(TrustedTypePolicyFactory, symbols.trustedTypesCSP, {\n\t\t\t\t\t\tvalue: { policies, allowDuplicates, hasNone },\n\t\t\t\t\t\tenumberable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}).catch(err => console.error(err));\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\t[symbols.defaultPolicy]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: null,\n\t\t\t},\n\t\t\t[symbols.emptyHTML]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#html', { createHTML: () => '' }),\n\t\t\t},\n\t\t\t[symbols.emptyScript]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#script', { createScript: () => '' }),\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * [isHTML description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisHTML(value) {\n\t\treturn value instanceof globalThis.TrustedHTML;\n\t}\n\n\t/**\n\t * [isScript description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScript(value) {\n\t\treturn value instanceof globalThis.TrustedScript;\n\t}\n\n\t/**\n\t * [isScriptURL description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScriptURL(value) {\n\t\treturn value instanceof globalThis.TrustedScriptURL;\n\t}\n\n\t/**\n\t * [createPolicy description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t */\n\tcreatePolicy(name, { createHTML, createScript, createScriptURL } = {}) {\n\t\tconst policy = new TrustedTypePolicy(name, { createHTML, createScript, createScriptURL }, { key: symbols.trustedKey });\n\n\t\tif (! name.toString().match(/^[-#a-zA-Z0-9=_/@.%]+$/g)) {\n\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" contains invalid characters.`);\n\t\t} else if (TrustedTypePolicyFactory.hasOwnProperty(symbols.trustedTypesCSP)) {\n\t\t\t// This requires `fetch()` and parsing response headers, so will not be immediately available\n\t\t\tconst { policies, allowDuplicates, hasNone } = TrustedTypePolicyFactory[symbols.trustedTypesCSP];\n\n\t\t\t// Will always allow `empty#html` and `empty#script`\n\t\t\tif (hasNone && name !== 'empty#html' && name !== 'empty#script') {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if (! policies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t} else {\n\t\t\t// This is the fallback for before CSP headers are fetched and uses `document.documentElement.dataset`\n\t\t\tif (allowedPolicies.size > 2 && ! allowedPolicies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t}\n\n\t\tif (policy.name === 'default') {\n\t\t\tthis[symbols.defaultPolicy] = policy;\n\t\t}\n\n\t\tpolicies.push(policy);\n\n\t\treturn policy;\n\t}\n\n\t/**\n\t * [getAttributeType description]\n\t * @param {String} tagName [description]\n\t * @param {String} attribute [description]\n\t * @param {String} elementNs [description]\n\t * @return {String} [description]\n\t */\n\tgetAttributeType(tagName, attribute, elementNs/*, attrNs*/) {\n\t\ttagName = tagName.toLowerCase();\n\t\tattribute = attribute.toLowerCase();\n\n\t\t/**\n\t\t * @Todo handle namespaced attributes\n\t\t */\n\t\tif (typeof elementNS === 'string' && elementNs.length !== 0) {\n\t\t\treturn events.includes(attribute) ? 'TrustedScript' : null;\n\t\t}\n\n\t\t/**\n\t\t * This is an `on*` attribute\n\t\t */\n\t\tif (events.includes(attribute)) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'script': {\n\t\t\t\tif (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'iframe': {\n\t\t\t\tif (attribute === 'srcdoc') {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else if (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * [getPropertyType description]\n\t * @param {String} tagName [description]\n\t * @param {String} property [description]\n\t * @return {String} [description]\n\t */\n\tgetPropertyType(tagName, property/*, elementNS*/) {\n\t\ttagName = tagName.toLowerCase();\n\n\t\tif (events.includes(property.toLowerCase())) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'embed':\n\t\t\tcase 'iframe': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'script': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else if (['text', 'innerText', 'textContent', 'innerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedScript';\n\t\t\t\t} else if (['outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (['innerHTML', 'outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * [emptyHTML description]\n\t * @return {TrustedHTML}\n\t */\n\tget emptyHTML() {\n\t\treturn this[symbols.emptyHTML].createHTML('');\n\t}\n\n\t/**\n\t * [emptyScript description]\n\t * @return {TrustedScript}\n\t */\n\tget emptyScript() {\n\t\treturn this[symbols.emptyScript].createScript('');\n\t}\n\n\t/**\n\t * [defaultPolicy description]\n\t * @return {TrustedTypePolicy} [description]\n\t */\n\tget defaultPolicy() {\n\t\treturn this[symbols.defaultPolicy];\n\t}\n\n\t/**\n\t * For consistency with existing polyfill\n\t * @return {Boolean} [description]\n\t */\n\tget _isPolyfill_() {\n\t\treturn true;\n\t}\n\n\tstatic get allowDuplicates() {\n\t\treturn allowDuplicates;\n\t}\n}\n\n/**\n * [trustedTypes description]\n * @type {TrustedTypeFactory}\n */\nexport const trustedTypes = new TrustedTypePolicyFactory(symbols.trustedKey);\n\n/**\n * [polyfill description]\n * @return {[type]} [description]\n */\nexport function polyfill() {\n\tif (! ('TrustedTypePolicyFactory' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicyFactory = TrustedTypePolicyFactory;\n\t}\n\n\tif (! ('TrustedTypePolicy' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicy = TrustedTypePolicy;\n\t}\n\n\tif (! ('TrustedType' in globalThis)) {\n\t\tglobalThis.TrustedType = TrustedType;\n\t}\n\n\tif (! ('TrustedHTML' in globalThis)) {\n\t\tglobalThis.TrustedHTML = TrustedHTML;\n\t}\n\n\tif (! ('TrustedScript' in globalThis)) {\n\t\tglobalThis.TrustedScript = TrustedScript;\n\t}\n\n\tif (! ('TrustedScriptURL' in globalThis)) {\n\t\tglobalThis.TrustedScriptURL = TrustedScriptURL;\n\t}\n\n\tif (! ('trustedTypes' in globalThis)) {\n\t\tglobalThis.trustedTypes = trustedTypes;\n\t} else {\n\t\ttry {\n\t\t\t/**\n\t\t\t * Create these policies even if not needed to prevent\n\t\t\t * their use elsewhere. Not creating them but allowing them via CSP\n\t\t\t * would allow creating them as arbitrary policies.\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#html', { createHTML: () => '' });\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#script', { createScript: () => '' });\n\t\t} catch(err) {\n\t\t\tconsole.error(err);\n\t\t}\n\t}\n}\n\nexport const trustPolicies = [...allowedPolicies];\n","import { polyfill, trustPolicies } from './assets/TrustedTypes.js';\nconst polyfilled = polyfill();\nexport { trustPolicies, polyfilled };\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://wicg.github.io/sanitizer-api/#default-configuration-dictionary\n */\nexport const SanitizerConfigW3C = JSON.parse(`{\n \"allowCustomElements\": false,\n \"allowUnknownMarkup\": false,\n \"allowElements\": [\n \"a\",\n \"abbr\",\n \"acronym\",\n \"address\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"bdi\",\n \"bdo\",\n \"bgsound\",\n \"big\",\n \"blockquote\",\n \"body\",\n \"br\",\n \"button\",\n \"canvas\",\n \"caption\",\n \"center\",\n \"cite\",\n \"code\",\n \"col\",\n \"colgroup\",\n \"datalist\",\n \"dd\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"font\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"html\",\n \"i\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"keygen\",\n \"label\",\n \"layer\",\n \"legend\",\n \"li\",\n \"link\",\n \"listing\",\n \"main\",\n \"map\",\n \"mark\",\n \"marquee\",\n \"menu\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"nobr\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"output\",\n \"p\",\n \"picture\",\n \"popup\",\n \"pre\",\n \"progress\",\n \"q\",\n \"rb\",\n \"rp\",\n \"rt\",\n \"rtc\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"section\",\n \"select\",\n \"selectmenu\",\n \"small\",\n \"source\",\n \"span\",\n \"strike\",\n \"strong\",\n \"style\",\n \"sub\",\n \"summary\",\n \"sup\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"time\",\n \"tr\",\n \"track\",\n \"tt\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\"\n ],\n \"allowAttributes\": {\n \"abbr\": [\n \"*\"\n ],\n \"accept\": [\n \"*\"\n ],\n \"accept-charset\": [\n \"*\"\n ],\n \"accesskey\": [\n \"*\"\n ],\n \"action\": [\n \"*\"\n ],\n \"align\": [\n \"*\"\n ],\n \"alink\": [\n \"*\"\n ],\n \"allow\": [\n \"*\"\n ],\n \"allowfullscreen\": [\n \"*\"\n ],\n \"alt\": [\n \"*\"\n ],\n \"anchor\": [\n \"*\"\n ],\n \"archive\": [\n \"*\"\n ],\n \"as\": [\n \"*\"\n ],\n \"async\": [\n \"*\"\n ],\n \"autocapitalize\": [\n \"*\"\n ],\n \"autocomplete\": [\n \"*\"\n ],\n \"autocorrect\": [\n \"*\"\n ],\n \"autofocus\": [\n \"*\"\n ],\n \"autopictureinpicture\": [\n \"*\"\n ],\n \"autoplay\": [\n \"*\"\n ],\n \"axis\": [\n \"*\"\n ],\n \"background\": [\n \"*\"\n ],\n \"behavior\": [\n \"*\"\n ],\n \"bgcolor\": [\n \"*\"\n ],\n \"border\": [\n \"*\"\n ],\n \"bordercolor\": [\n \"*\"\n ],\n \"capture\": [\n \"*\"\n ],\n \"cellpadding\": [\n \"*\"\n ],\n \"cellspacing\": [\n \"*\"\n ],\n \"challenge\": [\n \"*\"\n ],\n \"char\": [\n \"*\"\n ],\n \"charoff\": [\n \"*\"\n ],\n \"charset\": [\n \"*\"\n ],\n \"checked\": [\n \"*\"\n ],\n \"cite\": [\n \"*\"\n ],\n \"class\": [\n \"*\"\n ],\n \"classid\": [\n \"*\"\n ],\n \"clear\": [\n \"*\"\n ],\n \"code\": [\n \"*\"\n ],\n \"codebase\": [\n \"*\"\n ],\n \"codetype\": [\n \"*\"\n ],\n \"color\": [\n \"*\"\n ],\n \"cols\": [\n \"*\"\n ],\n \"colspan\": [\n \"*\"\n ],\n \"compact\": [\n \"*\"\n ],\n \"content\": [\n \"*\"\n ],\n \"contenteditable\": [\n \"*\"\n ],\n \"controls\": [\n \"*\"\n ],\n \"controlslist\": [\n \"*\"\n ],\n \"conversiondestination\": [\n \"*\"\n ],\n \"coords\": [\n \"*\"\n ],\n \"crossorigin\": [\n \"*\"\n ],\n \"csp\": [\n \"*\"\n ],\n \"data\": [\n \"*\"\n ],\n \"datetime\": [\n \"*\"\n ],\n \"declare\": [\n \"*\"\n ],\n \"decoding\": [\n \"*\"\n ],\n \"default\": [\n \"*\"\n ],\n \"defer\": [\n \"*\"\n ],\n \"dir\": [\n \"*\"\n ],\n \"direction\": [\n \"*\"\n ],\n \"dirname\": [\n \"*\"\n ],\n \"disabled\": [\n \"*\"\n ],\n \"disablepictureinpicture\": [\n \"*\"\n ],\n \"disableremoteplayback\": [\n \"*\"\n ],\n \"disallowdocumentaccess\": [\n \"*\"\n ],\n \"download\": [\n \"*\"\n ],\n \"draggable\": [\n \"*\"\n ],\n \"elementtiming\": [\n \"*\"\n ],\n \"enctype\": [\n \"*\"\n ],\n \"end\": [\n \"*\"\n ],\n \"enterkeyhint\": [\n \"*\"\n ],\n \"event\": [\n \"*\"\n ],\n \"exportparts\": [\n \"*\"\n ],\n \"face\": [\n \"*\"\n ],\n \"for\": [\n \"*\"\n ],\n \"form\": [\n \"*\"\n ],\n \"formaction\": [\n \"*\"\n ],\n \"formenctype\": [\n \"*\"\n ],\n \"formmethod\": [\n \"*\"\n ],\n \"formnovalidate\": [\n \"*\"\n ],\n \"formtarget\": [\n \"*\"\n ],\n \"frame\": [\n \"*\"\n ],\n \"frameborder\": [\n \"*\"\n ],\n \"headers\": [\n \"*\"\n ],\n \"height\": [\n \"*\"\n ],\n \"hidden\": [\n \"*\"\n ],\n \"high\": [\n \"*\"\n ],\n \"href\": [\n \"*\"\n ],\n \"hreflang\": [\n \"*\"\n ],\n \"hreftranslate\": [\n \"*\"\n ],\n \"hspace\": [\n \"*\"\n ],\n \"http-equiv\": [\n \"*\"\n ],\n \"id\": [\n \"*\"\n ],\n \"imagesizes\": [\n \"*\"\n ],\n \"imagesrcset\": [\n \"*\"\n ],\n \"importance\": [\n \"*\"\n ],\n \"impressiondata\": [\n \"*\"\n ],\n \"impressionexpiry\": [\n \"*\"\n ],\n \"incremental\": [\n \"*\"\n ],\n \"inert\": [\n \"*\"\n ],\n \"inputmode\": [\n \"*\"\n ],\n \"integrity\": [\n \"*\"\n ],\n \"invisible\": [\n \"*\"\n ],\n \"is\": [\n \"*\"\n ],\n \"ismap\": [\n \"*\"\n ],\n \"keytype\": [\n \"*\"\n ],\n \"kind\": [\n \"*\"\n ],\n \"label\": [\n \"*\"\n ],\n \"lang\": [\n \"*\"\n ],\n \"language\": [\n \"*\"\n ],\n \"latencyhint\": [\n \"*\"\n ],\n \"leftmargin\": [\n \"*\"\n ],\n \"link\": [\n \"*\"\n ],\n \"list\": [\n \"*\"\n ],\n \"loading\": [\n \"*\"\n ],\n \"longdesc\": [\n \"*\"\n ],\n \"loop\": [\n \"*\"\n ],\n \"low\": [\n \"*\"\n ],\n \"lowsrc\": [\n \"*\"\n ],\n \"manifest\": [\n \"*\"\n ],\n \"marginheight\": [\n \"*\"\n ],\n \"marginwidth\": [\n \"*\"\n ],\n \"max\": [\n \"*\"\n ],\n \"maxlength\": [\n \"*\"\n ],\n \"mayscript\": [\n \"*\"\n ],\n \"media\": [\n \"*\"\n ],\n \"method\": [\n \"*\"\n ],\n \"min\": [\n \"*\"\n ],\n \"minlength\": [\n \"*\"\n ],\n \"multiple\": [\n \"*\"\n ],\n \"muted\": [\n \"*\"\n ],\n \"name\": [\n \"*\"\n ],\n \"nohref\": [\n \"*\"\n ],\n \"nomodule\": [\n \"*\"\n ],\n \"nonce\": [\n \"*\"\n ],\n \"noresize\": [\n \"*\"\n ],\n \"noshade\": [\n \"*\"\n ],\n \"novalidate\": [\n \"*\"\n ],\n \"nowrap\": [\n \"*\"\n ],\n \"object\": [\n \"*\"\n ],\n \"open\": [\n \"*\"\n ],\n \"optimum\": [\n \"*\"\n ],\n \"part\": [\n \"*\"\n ],\n \"pattern\": [\n \"*\"\n ],\n \"ping\": [\n \"*\"\n ],\n \"placeholder\": [\n \"*\"\n ],\n \"playsinline\": [\n \"*\"\n ],\n \"policy\": [\n \"*\"\n ],\n \"poster\": [\n \"*\"\n ],\n \"preload\": [\n \"*\"\n ],\n \"pseudo\": [\n \"*\"\n ],\n \"readonly\": [\n \"*\"\n ],\n \"referrerpolicy\": [\n \"*\"\n ],\n \"rel\": [\n \"*\"\n ],\n \"reportingorigin\": [\n \"*\"\n ],\n \"required\": [\n \"*\"\n ],\n \"resources\": [\n \"*\"\n ],\n \"rev\": [\n \"*\"\n ],\n \"reversed\": [\n \"*\"\n ],\n \"role\": [\n \"*\"\n ],\n \"rows\": [\n \"*\"\n ],\n \"rowspan\": [\n \"*\"\n ],\n \"rules\": [\n \"*\"\n ],\n \"sandbox\": [\n \"*\"\n ],\n \"scheme\": [\n \"*\"\n ],\n \"scope\": [\n \"*\"\n ],\n \"scopes\": [\n \"*\"\n ],\n \"scrollamount\": [\n \"*\"\n ],\n \"scrolldelay\": [\n \"*\"\n ],\n \"scrolling\": [\n \"*\"\n ],\n \"select\": [\n \"*\"\n ],\n \"selected\": [\n \"*\"\n ],\n \"shadowroot\": [\n \"*\"\n ],\n \"shadowrootdelegatesfocus\": [\n \"*\"\n ],\n \"shape\": [\n \"*\"\n ],\n \"size\": [\n \"*\"\n ],\n \"sizes\": [\n \"*\"\n ],\n \"slot\": [\n \"*\"\n ],\n \"span\": [\n \"*\"\n ],\n \"spellcheck\": [\n \"*\"\n ],\n \"src\": [\n \"*\"\n ],\n \"srcdoc\": [\n \"*\"\n ],\n \"srclang\": [\n \"*\"\n ],\n \"srcset\": [\n \"*\"\n ],\n \"standby\": [\n \"*\"\n ],\n \"start\": [\n \"*\"\n ],\n \"step\": [\n \"*\"\n ],\n \"style\": [\n \"*\"\n ],\n \"summary\": [\n \"*\"\n ],\n \"tabindex\": [\n \"*\"\n ],\n \"target\": [\n \"*\"\n ],\n \"text\": [\n \"*\"\n ],\n \"title\": [\n \"*\"\n ],\n \"topmargin\": [\n \"*\"\n ],\n \"translate\": [\n \"*\"\n ],\n \"truespeed\": [\n \"*\"\n ],\n \"trusttoken\": [\n \"*\"\n ],\n \"type\": [\n \"*\"\n ],\n \"usemap\": [\n \"*\"\n ],\n \"valign\": [\n \"*\"\n ],\n \"value\": [\n \"*\"\n ],\n \"valuetype\": [\n \"*\"\n ],\n \"version\": [\n \"*\"\n ],\n \"virtualkeyboardpolicy\": [\n \"*\"\n ],\n \"vlink\": [\n \"*\"\n ],\n \"vspace\": [\n \"*\"\n ],\n \"webkitdirectory\": [\n \"*\"\n ],\n \"width\": [\n \"*\"\n ],\n \"wrap\": [\n \"*\"\n ]\n }\n}`);\n\nexport const {\n\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n} = SanitizerConfigW3C;\n\nexport const SanitizerConfig = SanitizerConfigW3C;\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { SanitizerConfig as defaultConfig } from './SanitizerConfigW3C.js';\nimport { createPolicy } from './trust.js';\nimport { isObject, getType, callOnce } from './utility.js';\nimport { urls } from './attributes.js';\n\nexport const supported = () => 'Sanitizer' in globalThis;\nexport const nativeSupport = supported();\n\nexport const setHTML = function setHTML(el, input, opts = defaultConfig) {\n\tconst doc = safeParseHTML(input, opts);\n\tel.replaceChildren(documentToFragment(doc));\n};\n\nconst allowProtocols = ['https:'];\n\nif (! allowProtocols.includes(location.protocol)) {\n\tallowProtocols.push(location.protocol);\n}\nconst policyName = 'sanitizer-raw#html';\nconst getPolicy = callOnce(() => createPolicy(policyName, { createHTML: input => input }));\nconst createHTML = input => getPolicy().createHTML(input);\n\nexport function documentToFragment(doc) {\n\tconst frag = document.createDocumentFragment();\n\tconst clone = doc.cloneNode(true);\n\tfrag.append(...clone.head.childNodes, ...clone.body.childNodes);\n\treturn frag;\n}\n\n/**\n * Helper function to adapt to changes in spec\n */\nexport function convertSanitizerConfig({\n\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\tblockElements, dropAttributes, dropElements, allowUnknownMarkup, sanitizer,\n} = {}, context) {\n\tif (sanitizer instanceof Sanitizer) {\n\t\treturn convertSanitizerConfig(sanitizer.getConfiguration(), context);\n\t} else {\n\t\tswitch (context) {\n\t\t\tdefault:\n\t\t\t\tif (typeof allowAttributes === 'undefined' && typeof dropAttributes === 'undefined') {\n\t\t\t\t\tallowAttributes = defaultConfig.allowAttributes;\n\t\t\t\t}\n\n\t\t\t\tif (typeof allowElements === 'undefined' && typeof dropElements === 'undefined') {\n\t\t\t\t\tallowElements = defaultConfig.allowElements;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t};\n\t\t}\n\t}\n}\n\nexport function convertToSanitizerConfig({\n\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n} = {}) {\n\tif (typeof allowAttributes === 'undefined' && typeof dropAttributes === 'undefined') {\n\t\tallowAttributes = defaultConfig.allowAttributes;\n\t}\n\n\tif (typeof allowElements === 'undefined' && typeof dropElements === 'undefined') {\n\t\tallowElements = defaultConfig.allowElements;\n\t}\n\treturn {\n\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t};\n}\n\nexport function safeParseHTML(input, opts = defaultConfig) {\n\tconst doc = new DOMParser().parseFromString(createHTML(input), 'text/html');\n\t// Not sure if this will be in spec, but it is necessary\n\tif (Array.isArray(opts.allowElements) && ! opts.allowElements.includes('html') ) {\n\t\topts.allowElements = [...new Set([...opts.allowElements, 'html' ,'head', 'body'])];\n\t}\n\treturn sanitizeNode(doc, opts);\n}\n\nexport function sanitize(input, opts = defaultConfig) {\n\tif (! (input instanceof Node)) {\n\t\tthrow new TypeError('sanitize requires a Document or DocumentFragment');\n\t} else if (input.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\treturn sanitizeNode(input, opts);\n\t} else if (input.nodeType === Node.DOCUMENT_NODE) {\n\t\treturn sanitizeNode(documentToFragment(input), opts);\n\t} else {\n\t\tthrow new TypeError('sanitize requires a Document or DocumentFragment');\n\t}\n}\n\nexport function sanitizeFor(tag, content, opts = defaultConfig) {\n\tconst el = document.createElement(tag);\n\tconst temp = document.createElement('template');\n\ttemp.innerHTML = createHTML(content);\n\tel.append(sanitize(temp.content, opts));\n\treturn el;\n}\n\nexport function sanitizeNode(root, opts = defaultConfig) {\n\ttry {\n\t\tif (! (root instanceof Node)) {\n\t\t\tthrow new TypeError(`Expected a Node but got a ${getType(root)}.`);\n\t\t} else if (! isObject(opts)) {\n\t\t\tthrow new TypeError(`Expected config to be an object but got ${getType(opts)}.`);\n\t\t}\n\n\t\tconst {\n\t\t\tallowElements, allowComments, allowAttributes, allowCustomElements,\n\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t} = convertSanitizerConfig(opts);\n\n\t\tconst iter = document.createNodeIterator(\n\t\t\troot,\n\t\t\tNodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT,\n\t\t);\n\n\t\tlet node = iter.root.nodeType === Node.ELEMENT_NODE\n\t\t\t? iter.root\n\t\t\t: iter.nextNode();\n\n\t\twhile (node instanceof Node) {\n\t\t\tswitch(node.nodeType) {\n\t\t\t\tcase Node.ELEMENT_NODE: {\n\t\t\t\t\tif (\n\t\t\t\t\t\t! allowUnknownMarkup\n\t\t\t\t\t\t&& ( ! (node instanceof HTMLElement) || node instanceof HTMLUnknownElement)\n\t\t\t\t\t) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tag = node.tagName.toLowerCase();\n\n\t\t\t\t\tif (Array.isArray(dropElements) && dropElements.includes(tag)) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t} else if (Array.isArray(blockElements) && blockElements.includes(tag)) {\n\t\t\t\t\t\tif (node.hasChildNodes()) {\n\t\t\t\t\t\t\tnode.replaceWith(...node.childNodes);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (tag.includes('-') && ! allowCustomElements) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t} else if (Array.isArray(allowElements) && ! allowElements.includes(tag)) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (node.hasAttributes()) {\n\t\t\t\t\t\t\tnode.getAttributeNames().forEach(name => {\n\t\t\t\t\t\t\t\tconst attr = node.getAttributeNode(name);\n\t\t\t\t\t\t\t\tconst { value } = attr;\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\turls.includes(name)\n\t\t\t\t\t\t\t\t\t&& ! allowProtocols.includes(new URL(value, document.baseURI).protocol)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tnode.removeAttributeNode(attr);\n\t\t\t\t\t\t\t\t} else if (isObject(dropAttributes)) {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tname in dropAttributes\n\t\t\t\t\t\t\t\t\t\t&& ['*', tag].some(sel => dropAttributes[name].includes(sel))\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tnode.removeAttributeNode(attr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (isObject(allowAttributes)) {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t! (name in allowAttributes\n\t\t\t\t\t\t\t\t\t\t&& ['*', tag].some(sel => allowAttributes[name].includes(sel)))\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tnode.removeAttributeNode(attr);\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});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase Node.COMMENT_NODE: {\n\t\t\t\t\tif (! allowComments) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.localName === 'template') {\n\t\t\t\tsanitizeNode(node.content, opts);\n\t\t\t}\n\n\t\t\tnode = iter.nextNode();\n\t\t}\n\n\t\treturn root;\n\t} catch(err) {\n\t\tconsole.error(err);\n\t\troot.parentElement.removeChild(root);\n\t}\n}\n\nexport function getSantizerUtils(Sanitizer, defaultConfig) {\n\tconst polyfill = function polyfill() {\n\t\tlet polyfilled = false;\n\n\t\tif (! supported()) {\n\t\t\tglobalThis.Sanitizer = Sanitizer;\n\t\t\tpolyfilled = true;\n\t\t} else {\n\t\t\tif (! (globalThis.Sanitizer.getDefaultConfiguration instanceof Function)) {\n\t\t\t\tglobalThis.Sanitizer.getDefaultConfiguration = function() {\n\t\t\t\t\treturn defaultConfig;\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (globalThis.Sanitizer.prototype.getConfiguration instanceof Function)) {\n\t\t\t\tconst configs = new WeakMap();\n\t\t\t\tconst SanitizerNative = globalThis.Sanitizer;\n\n\t\t\t\tglobalThis.Sanitizer = class Sanitizer extends SanitizerNative {\n\t\t\t\t\tconstructor({\n\t\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t\t} = SanitizerNative.getDefaultConfiguration()) {\n\t\t\t\t\t\tsuper({\n\t\t\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconfigs.set(this, {\n\t\t\t\t\t\t\tallowAttributes, allowComments, allowElements, allowCustomElements,\n\t\t\t\t\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tgetConfiguration() {\n\t\t\t\t\t\treturn configs.get(this);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (globalThis.Sanitizer.prototype.sanitize instanceof Function)) {\n\t\t\t\tglobalThis.Sanitizer.prototype.sanitize = function(input) {\n\t\t\t\t\tif (! (input instanceof Node)) {\n\t\t\t\t\t\tthrow new TypeError('`Sanitizer.sanitize()` expects a `Node`');\n\t\t\t\t\t} else if (! [Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE].includes(input.nodeType)) {\n\t\t\t\t\t\tthrow new TypeError('Expected a Document or DocumentFragment in `Sanitizer.sanitize()`.');\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn sanitize(input, this.getConfiguration());\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (globalThis.Sanitizer.prototype.sanitizeFor instanceof Function)) {\n\t\t\t\tglobalThis.Sanitizer.prototype.sanitizeFor = function(element, input) {\n\t\t\t\t\tconst el = document.createElement(element);\n\t\t\t\t\tsetHTML(el, input,this.getConfiguration());\n\t\t\t\t\treturn el;\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\n\t\t\tif (! (Element.prototype.setHTML instanceof Function)) {\n\t\t\t\tElement.prototype.setHTML = function(input, opts = defaultConfig) {\n\t\t\t\t\tsetHTML(this, input, opts);\n\t\t\t\t};\n\t\t\t\tpolyfilled = true;\n\t\t\t}\n\t\t}\n\n\t\treturn polyfilled;\n\t};\n\n\treturn { setHTML, polyfill };\n}\n\nexport const trustPolicies = [policyName];\n","/**\n * @copyright 2022-2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { nativeSupport, getSantizerUtils, sanitize, trustPolicies } from './sanitizerUtils.js';\nimport { SanitizerConfig as defaultConfig } from './SanitizerConfigW3C.js';\n\nconst protectedData = new WeakMap();\n\n/**\n * Need to create a policy for the Sanitizer API since\n * `trustedTypes.defaultPolicy.createHTML` will most likely use `new Sanitizer().sanitize()`\n * which would create infinite recursion.\n * @type {TrustedTypePolicy}\n */\n\n\n/**\n * @SEE https://wicg.github.io/sanitizer-api/\n * @SEE https://developer.mozilla.org/en-US/docs/Web/API/Sanitizer/Sanitizer\n * @TODO: Figure out how to handle `allowElements`, `allowAttributes`, and how each\n * works with their `block*` and/or `drop*` counterparts.\n * @TODO: Handle `svg:*` and `mathml:*`\n *\n * @NOTE: The spec is still under development and is likely to change.\n * @NOTE: This is a very imperfect implementation and may not perform very well,\n * as it may involve a lot of querying & modifying.\n */\nexport class Sanitizer {\n\tconstructor({\n\t\tallowElements, allowAttributes, blockElements, dropAttributes,\n\t\tdropElements, allowComments = defaultConfig.allowComments,\n\t\tallowCustomElements = defaultConfig.allowCustomElements,\n\t\tallowUnknownMarkup = defaultConfig.allowUnknownMarkup,\n\t} = Sanitizer.getDefaultConfiguration()) {\n\t\tprotectedData.set(this, {\n\t\t\tallowElements, allowComments, allowAttributes, allowCustomElements,\n\t\t\tblockElements, dropAttributes, dropElements, allowUnknownMarkup,\n\t\t});\n\t}\n\n\tgetConfiguration() {\n\t\treturn protectedData.get(this);\n\t}\n\n\tsanitize(input) {\n\t\treturn sanitize(input, this.getConfiguration());\n\t}\n\n\tsanitizeFor(tag, content) {\n\t\tconst el = document.createElement(tag);\n\t\tel.setHTML(content, this.getConfiguration());\n\t\treturn el;\n\t}\n\n\tstatic getDefaultConfiguration() {\n\t\treturn defaultConfig;\n\t}\n}\n\nconst { setHTML, polyfill } = getSantizerUtils(Sanitizer, defaultConfig);\nexport { nativeSupport, setHTML, polyfill, trustPolicies };\n","import { polyfill, trustPolicies } from '../assets/Sanitizer.js';\nexport const polyfilled = polyfill();\nexport { trustPolicies };\n","/**\n * This **REQUIRES** a CSP with `style-src blob:`\n */\nexport const adoptedStyleSheets = {\n\tget() {\n\t\treturn Array.from(this.styleSheets)\n\t\t\t.filter(sheet => sheet.ownerNode.classList.contains('_adopted'));\n\t},\n\tset(sheets) {\n\t\tif (! Array.isArray(sheets)) {\n\t\t\tthrow new TypeError('Must be an array');\n\t\t} else {\n\t\t\tconst current = new Set(this.adoptedStyleSheets);\n\n\t\t\tcurrent.difference(sheets).forEach(sheet => sheet.ownerNode.remove());\n\n\t\t\tconst links = [...new Set(sheets).difference(current)].map(sheet => {\n\t\t\t\tconst link = document.createElement('link');\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tconst signal = controller.signal;\n\t\t\t\tconst url = URL.createObjectURL(new File([], 'adopted.css', { type: 'text/css' }));\n\t\t\t\tlink.rel = 'stylesheet';\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.classList.add('_adopted');\n\t\t\t\tlink.disabled = sheet.disabled;\n\n\n\t\t\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tlink.media = sheet.media.mediaText;\n\t\t\t\t\t[...sheet.cssRules].forEach((rule, index) => {\n\t\t\t\t\t\ttarget.sheet.insertRule(rule.cssText, index);\n\t\t\t\t\t});\n\n\t\t\t\t\tsetTimeout(() => URL.revokeObjectURL(target.href), 100);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tURL.revokeObjectURL(target.href);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\treturn link;\n\t\t\t});\n\n\t\t\tif (this instanceof Document) {\n\t\t\t\tthis.head.append(...links);\n\t\t\t} else {\n\t\t\t\tthis.append(...links);\n\t\t\t}\n\t\t}\n\t}\n};\n","export function createSheet(rules = '', { disabled = false, media } = {}) {\n\tconst style = Document.parseHTML(\n\t\t`<style>${rules}</style>`,\n\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t);\n\n\tconst sheet = style.styleSheets.item(0);\n\n\tif (typeof media === 'string') {\n\t\tsheet.media.appendMedium(media);\n\t}\n\tsheet.disabled = disabled;\n\treturn sheet;\n}\n\nexport function clearCSSRules(sheet) {\n\twhile (sheet.cssRules.length > 0) {\n\t\tsheet.deleteRule(0);\n\t}\n}\n\ntry {\n\tnew CSSStyleSheet();\n} catch {\n\tconst NativeStyleSheet = globalThis.CSSStyleSheet;\n\n\tglobalThis.CSSStyleSheet = function CSSStyleSheet({ disabled = false, media } = {}) {\n\t\t// Need at least one rule to create the `.sheet`\n\t\tconst sheet = createSheet('#dfgbkjdfg{color:red;}', { disabled, media });\n\t\tsheet.deleteRule(0);\n\t\treturn sheet;\n\t};\n\n\tglobalThis.CSSStyleSheet.prototype = NativeStyleSheet.prototype;\n\tNativeStyleSheet.prototype.constructor = globalThis.CSSStyleSheet;\n}\n\nif (! (CSSStyleSheet.prototype.replace instanceof Function)) {\n\tCSSStyleSheet.prototype.replace = function replace(rules) {\n\t\tconst link = document.createElement('link');\n\t\tconst controller = new AbortController();\n\t\tconst { resolve, reject, promise } = Promise.withResolvers();\n\n\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\tclearCSSRules(this);\n\t\t\t[...target.sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t\t\tresolve(this);\n\t\t\tcontroller.abort();\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\tconst error = new DOMException('Error loading stylesheet.');\n\t\t\treject(error);\n\t\t\tcontroller.abort(error);\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.rel = 'stylesheet';\n\t\tlink.crossOrigin = 'anonymous';\n\t\tlink.referrerPolicy = 'no-referrer';\n\t\tlink.media = 'no-op';\n\t\tlink.href = URL.createObjectURL(new File([rules], 'tmp.css', { type: 'text/css' }));\n\t\tdocument.head.append(link);\n\n\t\treturn promise;\n\t};\n}\n\nif (! (CSSStyleSheet.prototype.replaceSync instanceof Function)) {\n\tCSSStyleSheet.prototype.replaceSync = function replaceSync(rules) {\n\t\tconst sheet = Document.parseHTML(\n\t\t\t`<style>${rules}</style>`,\n\t\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t\t).styleSheets.item(0);\n\n\t\tclearCSSRules(this);\n\n\t\t[...sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t};\n}\n","import { polyfillMethod, polyfillGetterSetter } from './utils.js';\nimport { safeParseHTML } from './assets/sanitizerUtils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\npolyfillMethod(Document, 'parseHTML', (...args) => safeParseHTML(...args));\npolyfillGetterSetter(Document.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n","import { polyfillGetterSetter } from './utils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\nif ('ShadowRoot' in globalThis) {\n\tpolyfillGetterSetter(ShadowRoot.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n}\n","export const aria = {\n\tariaAtomic: 'aria-atomic',\n\tariaAutoComplete: 'aria-autocomplete',\n\tariaBusy: 'aria-busy',\n\tariaChecked: 'aria-checked',\n\tariaColCount: 'aria-colcount',\n\tariaColIndex: 'aria-colindex',\n\tariaColIndexText: 'aria-colindextext',\n\tariaColSpan: 'aria-colspan',\n\tariaCurrent: 'aria-current',\n\tariaDisabled: 'aria-disabled',\n\tariaExpanded: 'aria-expanded',\n\tariaHasPopup: 'aria-haspopup',\n\tariaHidden: 'aria-hidden',\n\tariaInvalid: 'aria-invalid',\n\tariaKeyShortcuts: 'aria-keyshortcuts',\n\tariaLabel: 'aria-label',\n\tariaLevel: 'aria-level',\n\tariaLive: 'aria-live',\n\tariaModal: 'aria-modal',\n\tariaMultiLine: 'aria-multiline',\n\tariaMultiSelectable: 'aria-multiselectable',\n\tariaOrientation: 'aria-orientation',\n\tariaPlaceholder: 'aria-placeholder',\n\tariaPosInSet: 'aria-posinset',\n\tariaPressed: 'aria-pressed',\n\tariaReadOnly: 'aria-readonly',\n\tariaRelevant: 'aria-relevant',\n\tariaRequired: 'aria-required',\n\tariaRoleDescription: 'aria-roledescription',\n\tariaRowCount: 'aria-rowcount',\n\tariaRowIndex: 'aria-rowindex',\n\tariaRowIndexText: 'aria-rowindextext',\n\tariaRowSpan: 'aria-rowspan',\n\tariaSelected: 'aria-selected',\n\tariaSetSize: 'aria-setsize',\n\tariaSort: 'aria-sort',\n\tariaValueMax: 'aria-valuemax',\n\tariaValueMin: 'aria-valuemin',\n\tariaValueNow: 'aria-valuenow',\n\tariaValueText: 'aria-valuetext',\n\trole: 'role'\n};\n","import { aria } from './aom.js';\nimport { overwriteMethod } from './utils.js';\nimport { SanitizerConfig as defaultConfig } from './assets/SanitizerConfigW3C.js';\nimport { setHTML as safeSetHTML, convertToSanitizerConfig } from './assets/sanitizerUtils.js';\n\nif (! (HTMLScriptElement.supports instanceof Function)) {\n\tHTMLScriptElement.supports = function supports(type) {\n\t\tswitch(type.toLowerCase()) {\n\t\t\tcase 'classic':\n\t\t\t\treturn true;\n\n\t\t\tcase 'module':\n\t\t\t\treturn 'noModule' in HTMLScriptElement.prototype;\n\n\t\t\tcase 'importmap':\n\t\t\t\treturn false;\n\n\t\t\tcase 'speculationrules':\n\t\t\t\treturn false;\n\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n}\n\nif (! Element.prototype.hasOwnProperty(aria.role)) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\n\tconst props = Object.fromEntries(Object.entries(aria).map(([prop, attr]) => [prop, {\n\t\tget: function() {\n\t\t\treturn this.getAttribute(attr);\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (typeof val === 'string') {\n\t\t\t\tthis.setAttribute(attr, val);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute(attr);\n\t\t\t}\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(Element.prototype, props);\n}\n\nif (! HTMLElement.prototype.hasOwnProperty('inert')) {\n\t// CSS will handle pointer events\n\tconst previous = new WeakMap();\n\tconst restoreTabIndex = el => {\n\t\tif (previous.has(el)) {\n\t\t\tel.tabIndex = previous.get(el);\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(restoreTabIndex);\n\t\t}\n\t};\n\n\tconst setTabIndex = el => {\n\t\tif (el.tabIndex !== -1) {\n\t\t\tprevious.set(el, el.tabIndex);\n\t\t\tel.tabIndex = -1;\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(setTabIndex);\n\t\t}\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'inert', {\n\t\tget: function() {\n\t\t\treturn this.hasAttribute('inert');\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (val) {\n\t\t\t\tthis.setAttribute('aria-hidden', 'true');\n\t\t\t\tthis.setAttribute('inert', '');\n\t\t\t\tsetTabIndex(this);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute('aria-hidden');\n\t\t\t\tthis.removeAttribute('inert');\n\t\t\t\trestoreTabIndex(this);\n\t\t\t}\n\t\t},\n\t\tenumerable: true, configurable: true,\n\t});\n}\n\nif (! HTMLImageElement.prototype.hasOwnProperty('complete')) {\n\t/**\n\t * Note: This shim cannot detect if an image has an error while loading\n\t * and will return false on an invalid URL, for example. It also does not\n\t * work for 0-sized images, if such a thing is possible.\n\t */\n\tObject.defineProperty(HTMLImageElement.prototype, 'complete', {\n\t\tget: function() {\n\t\t\treturn this.src === '' || this.naturalHeight > 0;\n\t\t}\n\t});\n}\n\nif (! (HTMLImageElement.prototype.decode instanceof Function)) {\n\tHTMLImageElement.prototype.decode = function () {\n\t\tif (this.complete) {\n\t\t\treturn Promise.resolve();\n\t\t} else {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst load = () => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst error = (err) => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\treject(err);\n\t\t\t\t};\n\n\t\t\t\tthis.addEventListener('load', load);\n\t\t\t\tthis.addEventListener('error', error);\n\t\t\t});\n\t\t}\n\t};\n}\n\nif (! (Element.prototype.setHTML instanceof Function)) {\n\tElement.prototype.setHTML = function setHTML(input, opts = defaultConfig) {\n\t\tsafeSetHTML(this, input, opts);\n\t};\n} else {\n\toverwriteMethod(Element.prototype, 'setHTML', function(orig) {\n\t\treturn function setHTML(input, opts = {}) {\n\t\t\tif (! (opts.sanitizer instanceof Sanitizer)) {\n\t\t\t\tconst sanitizer = new Sanitizer(convertToSanitizerConfig(opts));\n\t\t\t\torig.call(this, input, { sanitizer });\n\t\t\t} else {\n\t\t\t\torig.call(this, input, opts);\n\t\t\t}\n\t\t};\n\t});\n}\n\nif (! HTMLTemplateElement.prototype.hasOwnProperty('shadowRootMode')) {\n\tObject.defineProperty(HTMLTemplateElement.prototype, 'shadowRootMode', {\n\t\tget: function() {\n\t\t\treturn this.getAttribute('shadowrootmode');\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.setAttribute('shadowrootmode', val);\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t});\n\n\tconst attachShadows = (base = document) => {\n\t\tbase.querySelectorAll('template[shadowrootmode]').forEach(tmp => {\n\t\t\tconst shadow = tmp.parentElement.attachShadow({ mode: tmp.shadowRootMode });\n\t\t\tshadow.append(tmp.content);\n\t\t\ttmp.remove();\n\t\t\tattachShadows(shadow);\n\t\t});\n\t};\n\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('readystatechange', () => attachShadows(document), { once: true });\n\t} else {\n\t\tattachShadows(document);\n\t}\n}\n\nif (! (HTMLFormElement.prototype.requestSubmit instanceof Function)) {\n\tHTMLFormElement.prototype.requestSubmit = function(submitter) {\n\t\tif (typeof submitter === 'undefined') {\n\t\t\tconst btn = document.createElement('button');\n\t\t\tbtn.type = 'submit';\n\t\t\tbtn.hidden = true;\n\t\t\tthis.append(btn);\n\t\t\tthis.requestSubmit(btn);\n\t\t\tsetTimeout(() => btn.remove(), 100);\n\t\t} else if (! (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement)) {\n\t\t\tthrow new TypeError('HTMLFormElement.requestSubmit: The submitter is not a submit button.');\n\t\t} else if (submitter.type !== 'submit' && ! (submitter instanceof HTMLInputElement && submitter.type === 'image')) {\n\t\t\tthrow new TypeError('HTMLFormElement.requestSubmit: The submitter is not a submit button.');\n\t\t} else if (! this.isSameNode(submitter.form)) {\n\t\t\tthrow new DOMException('HTMLFormElement.requestSubmit: The submitter is not owned by this form.', 'NotFoundError');\n\t\t} else {\n\t\t\tsubmitter.click();\n\t\t}\n\t};\n}\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-set-methods\n\t */\n\n\tif (! (Set.prototype.intersection instanceof Function)) {\n\t\tSet.prototype.intersection = function intersection(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this].filter(item => iterable.has(item)));\n\t\t};\n\t}\n\n\tif (! (Set.prototype.difference instanceof Function)) {\n\t\tSet.prototype.difference = function difference(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this].filter(item => ! iterable.has(item)));\n\t\t};\n\t}\n\n\tif (! (Set.prototype.union instanceof Function)) {\n\t\tSet.prototype.union = function union(iterable) {\n\t\t\treturn new Set([...this, ...iterable]);\n\t\t};\n\t}\n\n\tif (! (Set.prototype.isSubsetOf instanceof Function)) {\n\t\tSet.prototype.isSubsetOf = function isSubsetOf(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn [...this].every(item => iterable.has(item));\n\t\t};\n\t}\n\n\tif (! (Set.prototype.isSupersetOf instanceof Function)) {\n\t\tSet.prototype.isSupersetOf = function isSupersetOf(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn iterable.isSubsetOf(this);\n\t\t};\n\t}\n\n\tif (! (Set.prototype.symmetricDifference instanceof Function)) {\n\t\tSet.prototype.symmetricDifference = function symmetricDifference(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this.difference(iterable), ...iterable.difference(this)]);\n\t\t};\n\t}\n\n\tif (! (Set.prototype.isDisjointFrom instanceof Function)) {\n\t\tSet.prototype.isDisjointFrom = function isDisjointFrom(iterable) {\n\t\t\tif (! (iterable instanceof Set)) {\n\t\t\t\titerable = new Set(iterable);\n\t\t\t}\n\n\t\t\treturn new Set([...this, ...iterable]).size === this.size + iterable.size;\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! (WeakMap.prototype.emplace instanceof Function)) {\n\t\tWeakMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, existing);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif ('screen' in globalThis && ! (globalThis.getScreenDetails instanceof Function)) {\n\t\tclass ScreenDetailed extends EventTarget {\n\t\t\tget availHeight() {\n\t\t\t\treturn screen.availHeight;\n\t\t\t}\n\n\t\t\tget availLeft() {\n\t\t\t\treturn screen.availLeft;\n\t\t\t}\n\n\t\t\tget availTop() {\n\t\t\t\treturn screen.availTop;\n\t\t\t}\n\n\t\t\tget availWidth() {\n\t\t\t\treturn screen.availWidth;\n\t\t\t}\n\n\t\t\tget colorDepth() {\n\t\t\t\treturn screen.colorDepth;\n\t\t\t}\n\n\t\t\tget devicePixelRatio() {\n\t\t\t\treturn globalThis.devicePixelRatio || 1;\n\t\t\t}\n\n\t\t\tget height() {\n\t\t\t\treturn screen.height;\n\t\t\t}\n\n\t\t\tget isExtended() {\n\t\t\t\treturn screen.isExtended;\n\t\t\t}\n\n\t\t\tget isInternal() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget isPrimary() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget label() {\n\t\t\t\treturn 'Unknown';\n\t\t\t}\n\n\t\t\tget orientation() {\n\t\t\t\treturn screen.orientation;\n\t\t\t}\n\n\t\t\tget pixelDepth() {\n\t\t\t\treturn screen.pixelDepth;\n\t\t\t}\n\n\t\t\tget top() {\n\t\t\t\treturn screen.top;\n\t\t\t}\n\n\t\t\tget width() {\n\t\t\t\treturn screen.width;\n\t\t\t}\n\t\t}\n\n\t\tclass ScreenDetails extends EventTarget {\n\t\t\tget currentScreen() {\n\t\t\t\treturn new ScreenDetailed();\n\t\t\t}\n\n\t\t\tget screens() {\n\t\t\t\treturn [this.currentScreen];\n\t\t\t}\n\t\t}\n\n\t\tObject.defineProperty(Screen.prototype, 'isExtended', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => false,\n\t\t});\n\n\t\tglobalThis.getScreenDetails = async () => new ScreenDetails();\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const PRIORITIES = {\n\tblocking: 'user-blocking',\n\tvisible: 'user-visible',\n\tbackground: 'background',\n};\n\nasync function delayCallback(cb, { delay = 0, signal } = {}) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\treject(signal.reason);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst handle = setTimeout(() => {\n\t\t\t\tresolve(cb());\n\t\t\t\tcontroller.abort();\n\t\t\t}, delay);\n\n\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\treject(target.reason);\n\t\t\t\t\tclearTimeout(handle);\n\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport class Scheduler {\n\tasync postTask(callback, {\n\t\tpriority = PRIORITIES.visible,\n\t\tdelay,\n\t\tsignal,\n\t} = {}) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t} else {\n\t\t\t\tswitch(priority) {\n\t\t\t\t\tcase PRIORITIES.blocking:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(callback, { delay, signal })\n\t\t\t\t\t\t\t\t.then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve((async () => await callback())());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.visible:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelAnimationFrame(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.background:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelIdleCallback(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new TypeError(`Scheduler.postTask: '${priority}' (value of 'priority' member of SchedulerPostTaskOptions) is not a valid value for enumeration TaskPriority.`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Scheduler } from './assets/Scheduler.js';\n\nif (! ('scheduler' in globalThis)) {\n\tglobalThis.scheduler = new Scheduler();\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals\n * @see https://caniuse.com/mdn-api_formdataevent\n * @see https://caniuse.com/mdn-api_elementinternals\n * @todo: Figure out how to cleanup MutationObserver for removed inputs\n * @todo: Can I add a MutationObserver to automatically set/unset forms,\n * even in `ShadowRoot`s?\n *\n * This polyfill needs a bit of extra work from the custom element to work.\n * Check if `internals._polyfilled` to see if extra steps are necessary:\n * - Call `internals._associateForm(form, this)` in `connectedCallback()`\n * - Call again with `(null, this)` in `disconnectedCallback()` to disassociate\n *\n * Additionally, if `internals.states._polyfilled`\n * - Use `._state--*` in addition to `:--*` to query element internals states\n * - This includes `:disabled` -> `._state--disabled` & `:invalid` -> `._state--invalid`\n */\nimport { aria } from './aom.js';\n\nconst symbols = {\n\tkey: Symbol('key'),\n\tinternals: Symbol('element-internals'),\n\tform: Symbol('form'),\n\tfieldset: Symbol('fieldset'),\n\telement: Symbol('element'),\n\tvalidity: Symbol('validity'),\n\tvalidationMessage: Symbol('validation-message'),\n\tvalue: Symbol('value'),\n\tstate: Symbol('state'),\n\tformController: Symbol('form-controller'),\n\tanchor: Symbol('anchor'),\n\tcustomInputs: Symbol('custom-inputs'),\n};\n\nfunction shimAria(prototype) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\tconst props = Object.fromEntries(Object.keys(aria).map(prop => [prop, {\n\t\tget: function() {\n\t\t\treturn this[symbols.element][prop];\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis[symbols.element][prop] = val;\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(prototype, props);\n}\n\nif (! (HTMLElement.prototype.attachInternals instanceof Function) && 'FormDataEvent' in globalThis) {\n\tconst validationObject = {\n\t\tvalueMissing: false, typeMismatch: false, patternMismatch: false, tooLong: false,\n\t\ttooShort: false, rangeUnderflow: false, rangeOverflow: false, stepMismatch: false,\n\t\tbadInput: false, customError: false, valid: true,\n\t};\n\n\tconst hasDisabledFieldset = component => component.hasOwnProperty(symbols.fieldset)\n\t\t&& component[symbols.fieldset] instanceof HTMLFieldSetElement\n\t\t&& component[symbols.fieldset].disabled;\n\n\tconst isFormAssociated = (component) => {\n\t\treturn component instanceof HTMLElement\n\t\t\t&& component.tagName.includes('-')\n\t\t\t&& customElements.get(component.tagName.toLowerCase()).formAssociated;\n\t};\n\n\tconst getFormDataHandler = (component, internals) => {\n\t\treturn function(event) {\n\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tevent.stopPropagation();\n\t\t\t} else if (internals.willValidate && event.formData instanceof FormData) {\n\t\t\t\tconst value = internals[symbols.value];\n\n\t\t\t\tif (value instanceof FormData) {\n\t\t\t\t\tvalue.entries().forEach(([k, v]) => event.formData.set(k, v));\n\t\t\t\t} else if (component.hasAttribute('name')) {\n\t\t\t\t\tevent.formData.set(component.getAttribute('name'), internals[symbols.value]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\tconst css = (el, rules) => {\n\t\tObject.entries(rules).forEach(([k, v]) => el.style.setProperty(k, v));\n\t};\n\n\tconst findAssociatedForm = (component) => {\n\t\tif (component.hasAttribute('form')) {\n\t\t\treturn document.forms[component.getAttribute('form')] || component.closest('form');\n\t\t} else {\n\t\t\treturn component.closest('form');\n\t\t}\n\t};\n\n\t// To be used in/after `connectedCallback`\n\tconst associateForm = (form, internals, component) => {\n\t\tif (! (form instanceof HTMLFormElement)) {\n\t\t\tif (internals[symbols.formController] instanceof AbortController) {\n\t\t\t\tinternals[symbols.formController].abort();\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = null;\n\t\t\tinternals[symbols.formController] = null;\n\n\t\t\tif (component.hasOwnProperty(symbols.fieldset)) {\n\t\t\t\tconst fieldset = component[symbols.fieldset];\n\n\t\t\t\tif (fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs].delete(component);\n\n\t\t\t\t\tif (fieldset[symbols.customInputs.size] === 0) {\n\t\t\t\t\t\tdelete fieldset[symbols.customInputs];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcomponent[symbols.fieldset] = null;\n\t\t\t}\n\t\t} else if (! (component instanceof HTMLElement && component.tagName.includes('-'))) {\n\t\t\tthrow new TypeError('Not a custom element');\n\t\t} else if (! (internals instanceof ElementInternals || internals instanceof globalThis.ElementInternals)) {\n\t\t\tthrow new TypeError('Invalid ElementInternals');\n\t\t} else if (! isFormAssociated(component)) {\n\t\t\tthrow new TypeError(`${component.tagName} is not form associated.`);\n\t\t} else if (! (component.formAssociatedCallback instanceof Function)) {\n\t\t\tthrow new TypeError(`${component.tagName} is missing a formAssociatedCallback method.`);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst fieldset = component.closest('fieldset');\n\n\t\t\tif (fieldset instanceof Element) {\n\t\t\t\tcomponent[symbols.fieldset] = fieldset;\n\t\t\t\tif (! fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs] = new Set();\n\t\t\t\t}\n\n\t\t\t\tfieldset[symbols.customInputs].add(component);\n\t\t\t\tobserver.observe(fieldset, observerOpts);\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = form;\n\t\t\tinternals[symbols.formController] = controller;\n\n\t\t\tconst { checkValidity, reportValidity } = form;\n\n\t\t\tform.reportValidity = function() {\n\t\t\t\tif (! reportValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.reportValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tform.checkValidity = function() {\n\t\t\t\tif (! checkValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.checkValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcontroller.signal.addEventListener('abort', () => {\n\t\t\t\tform.reportValidity = reportValidity;\n\t\t\t\tform.checkValidity = checkValidity;\n\t\t\t}, { once: true });\n\n\t\t\tform.addEventListener('formdata', getFormDataHandler(component, internals), { signal: controller.signal });\n\t\t\tform.addEventListener('submit', event => {\n\t\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t}, { signal: controller.signal });\n\n\t\t\tif (component.formResetCallback instanceof Function) {\n\t\t\t\tform.addEventListener('reset', () => component.formResetCallback(), { signal: controller.signal });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst observer = new MutationObserver((mutations) => {\n\t\tmutations.forEach(({ target, type, attributeName }) => {\n\t\t\tif (type === 'attributes' && attributeName === 'disabled') {\n\t\t\t\tconst disabled = target.hasAttribute('disabled');\n\n\t\t\t\t/**\n\t\t\t\t * Check that target is a valid candiate and not a child of a\n\t\t\t\t * `<fieldset disabled>`, unless they are both being toggled\n\t\t\t\t * together to the same value.\n\t\t\t\t */\n\t\t\t\tif (\n\t\t\t\t\tisFormAssociated(target)\n\t\t\t\t\t&& target.hasOwnProperty(symbols.internals)\n\t\t\t\t\t&& target[symbols.internals].states.has('--disabled') !== disabled\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t\t// target is not a descendant of a `<fieldset disabled>`\n\t\t\t\t\t\t\t? ! hasDisabledFieldset(target)\n\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\t// target & `<fieldset>` are being enabled/disabled together\n\t\t\t\t\t\t\t\ttarget.hasAttribute('disabled') === hasDisabledFieldset(target)\n\t\t\t\t\t\t\t\t&& mutations.some((m) =>\n\t\t\t\t\t\t\t\t\tm.target.isSameNode(target[symbols.fieldset])\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst internals = target[symbols.internals];\n\n\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\tinternals.states.add('--disabled');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinternals.states.delete('--disabled');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\ttarget.formDisabledCallback(disabled);\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\ttarget.tagName === 'FIELDSET'\n\t\t\t\t\t&& target.hasOwnProperty(symbols.customInputs)\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t|| ! mutations.some(m => target[symbols.customInputs].has(m.target))\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\ttarget[symbols.customInputs].forEach(el => {\n\t\t\t\t\t\tif (el.isConnected && el.hasOwnProperty(symbols.internals)) {\n\t\t\t\t\t\t\t// Do not toggle disabled on elements that are `disabled`\n\t\t\t\t\t\t\tif (! el.hasAttribute('disabled')) {\n\t\t\t\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.add('--disabled');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.delete('--disabled');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (el.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\t\t\t\tel.formDisabledCallback(disabled);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget[symbols.customInputs].delete(el);\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\n\tconst observerOpts = { attributes :true, attributeFilter: ['disabled'] };\n\n\tclass ElementInternals {\n\t\tconstructor(element, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal constructor');\n\t\t\t} else if (! (element instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('Must be called on an HTMLElement');\n\t\t\t} else if (! element.tagName.includes('-')) {\n\t\t\t\tthrow new DOMException('Cannot attach internals to a built-in element.');\n\t\t\t} else {\n\t\t\t\t// internals.add(this);\n\t\t\t\tconst configurable = true;\n\t\t\t\tconst enumerable = false;\n\t\t\t\tconst writable = true;\n\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t[symbols.element]: { value: element, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.form]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.fieldset]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.anchor]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validity]: { value: validationObject, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validationMessage]: { value: '', configurable, enumerable, writable },\n\t\t\t\t\t[symbols.value]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.state]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.formController]: { value: null, configurable, enumerable, writable },\n\t\t\t\t});\n\n\t\t\t\tif (isFormAssociated(element)) {\n\t\t\t\t\tobserver.observe(element, observerOpts);\n\t\t\t\t}\n\n\t\t\t\tObject.defineProperty(element, symbols.internals, {\n\t\t\t\t\tvalue: this,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t});\n\n\t\t\t\tsetTimeout(() => this.states.add('--element-internals-polyfilled'), 10);\n\t\t\t}\n\t\t}\n\n\t\tget form() {\n\t\t\treturn this[symbols.form];\n\t\t}\n\n\t\tget labels() {\n\t\t\tconst form = this.form;\n\n\t\t\tif (form instanceof HTMLFormElement && this[symbols.element].id.length !== 0) {\n\t\t\t\treturn form.querySelectorAll(`label[for=\"${this[symbols.element].id}\"]`);\n\t\t\t} else {\n\t\t\t\treturn document.createDocumentFragment().childNodes;\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget shadowRoot() {\n\t\t\tconst el = this[symbols.element];\n\t\t\treturn el.shadowRoot;\n\t\t}\n\n\t\tget validity() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validity];\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget validationMessage() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validationMessage] || '';\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget willValidate() {\n\t\t\tconst element = this[symbols.element];\n\n\t\t\treturn isFormAssociated(element)\n\t\t\t\t&& ! hasDisabledFieldset(element)\n\t\t\t\t&& ! ['disabled', 'readonly'].some(attr => element.hasAttribute(attr));\n\t\t}\n\n\t\tcheckValidity() {\n\t\t\tif (! this.willValidate) {\n\t\t\t\treturn true;\n\t\t\t} else if (! this.validity.valid) {\n\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\tif (next instanceof HTMLElement && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\tnext.remove();\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treportValidity() {\n\t\t\tif (! this.checkValidity()) {\n\t\t\t\tconst message = this.validationMessage;\n\n\t\t\t\tif (typeof message === 'string' && message.length !== 0) {\n\t\t\t\t\t// this[symbols.element].scrollIntoView({ block: 'start' });\n\t\t\t\t\tconst { bottom, left } = this[symbols.element].getBoundingClientRect();\n\t\t\t\t\tconst el = document.createElement('div');\n\t\t\t\t\tel.textContent = message;\n\n\t\t\t\t\tcss(el, {\n\t\t\t\t\t\t'position': 'fixed',\n\t\t\t\t\t\t'background-color': '#2b2a33',\n\t\t\t\t\t\t'color': '#fafafa',\n\t\t\t\t\t\t'top': `${bottom + 2}px`,\n\t\t\t\t\t\t'left': `${left}px`,\n\t\t\t\t\t\t'z-index': 2147483647,\n\t\t\t\t\t\t'color-scheme': 'light-dark',\n\t\t\t\t\t\t'font-family': 'system-ui, serif',\n\t\t\t\t\t\t'font-size': '18px',\n\t\t\t\t\t\t'display': 'inline-block',\n\t\t\t\t\t\t'padding': '0.6em 0.8em',\n\t\t\t\t\t\t'border': '1px solid #1a1a1a',\n\t\t\t\t\t\t'border-radius': '6px',\n\t\t\t\t\t});\n\n\t\t\t\t\tel.classList.add('_element-internals-popup');\n\n\t\t\t\t\tthis[symbols.element].focus();\n\n\t\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\t\tif (next instanceof Element && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\t\tnext.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis[symbols.element].insertAdjacentElement('afterend', el);\n\n\t\t\t\t\tif (this[symbols.anchor] instanceof Element) {\n\t\t\t\t\t\tthis[symbols.anchor].focus();\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (el.isConnected) {\n\t\t\t\t\t\t\tel.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 3000);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tsetFormValue(value, state) {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\tthis[symbols.value] = value;\n\t\t\t\tthis[symbols.state] = state;\n\t\t\t} else {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t}\n\t\t}\n\n\t\tsetValidity({\n\t\t\tvalueMissing = false,\n\t\t\ttypeMismatch = false,\n\t\t\tpatternMismatch = false,\n\t\t\ttooLong = false,\n\t\t\ttooShort = false,\n\t\t\trangeUnderflow = false,\n\t\t\trangeOverflow = false,\n\t\t\tstepMismatch = false,\n\t\t\tbadInput = false,\n\t\t\tcustomError = false,\n\t\t}, message = '', anchor) {\n\t\t\tif (! isFormAssociated(this[symbols.element])) {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t} else if (\n\t\t\t\t(typeof message !== 'string' || message.length === 0)\n\t\t\t\t&& (\n\t\t\t\t\tvalueMissing || typeMismatch || patternMismatch || tooLong || tooShort\n\t\t\t\t\t|| rangeUnderflow || rangeOverflow || stepMismatch || badInput || customError\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new DOMException('Message required if any flags are true.');\n\t\t\t} else {\n\t\t\t\tconst valid = [\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t].every(val => val === false);\n\n\t\t\t\tthis[symbols.validity] = {\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t\tvalid,\n\t\t\t\t};\n\n\t\t\t\tthis[symbols.validationMessage] = message;\n\t\t\t\tthis[symbols.anchor] = anchor;\n\n\t\t\t\tif (! valid) {\n\t\t\t\t\tthis.states.add('--invalid');\n\t\t\t\t\tthis.states.delete('--valid');\n\t\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\t} else {\n\t\t\t\t\tthis.states.delete('--invalid');\n\t\t\t\t\tthis.states.add('--valid');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t_associateForm(form, component) {\n\t\t\tassociateForm(form, this, component);\n\t\t}\n\n\t\t_findAssociatedForm(component) {\n\t\t\treturn findAssociatedForm(component);\n\t\t}\n\t}\n\n\tHTMLElement.prototype.attachInternals = function attachInternals() {\n\t\tif (this.hasOwnProperty(symbols.internals)) {\n\t\t\tthrow new DOMException('Invalid operation');\n\t\t} else if (! this.tagName.includes('-')) {\n\t\t\tthrow new DOMException('Cannot call attachInternals on built-in elements.');\n\t\t} else {\n\t\t\treturn new ElementInternals(this, symbols.key);\n\t\t}\n\t};\n\n\tglobalThis.ElementInternals = ElementInternals;\n}\n\n/**\n * Add `states` to `ElementInternals`\n * Uses `._state--foo` instead of `:--foo` though\n * Requires Iterator Helpers (`./iterator.js`)\n */\nif ('ElementInternals' in globalThis && ! ('CustomStateSet' in globalThis)) {\n\tconst prefix = '_state';\n\tconst protectedData = new WeakMap();\n\tconst getCName = state => {\n\t\tif (! state.toString().startsWith('--')) {\n\t\t\tthrow new DOMException(`Failed to execute 'add' on 'CustomStateSet': The specified value '${state}' must start with '--'.`);\n\t\t} else {\n\t\t\treturn `${prefix}${state}`;\n\t\t}\n\t};\n\n\tconst {\n\t\tvalue, writable, configurable, enumerable,\n\t} = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'attachInternals');\n\n\tclass CustomStateSet {\n\t\tconstructor(el, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal Constructor');\n\t\t\t} else if (! (el instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('el must be an HTMLElement');\n\t\t\t} else {\n\t\t\t\tprotectedData.set(this, el);\n\t\t\t\tthis.add('--custom-states-polyfilled');\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget size() {\n\t\t\treturn [...this.values()].length;\n\t\t}\n\n\t\tadd(state) {\n\t\t\tprotectedData.get(this).classList.add(getCName(state));\n\t\t}\n\n\t\thas(state) {\n\t\t\treturn protectedData.get(this).classList.contains(getCName(state));\n\t\t}\n\n\t\tdelete(state) {\n\t\t\tconst c = getCName(state);\n\n\t\t\tif (protectedData.get(this).classList.contains(c)) {\n\t\t\t\tprotectedData.get(this).classList.remove(c);\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tclear() {\n\t\t\tthis.values().forEach(state => this.delete(state));\n\t\t}\n\n\t\tkeys() {\n\t\t\treturn this.values();\n\t\t}\n\n\t\tvalues() {\n\t\t\tconst states = protectedData.get(this).classList.values()\n\t\t\t\t.filter(c => c.startsWith(`${prefix}--`));\n\n\t\t\treturn states.map(c => c.substr(prefix.length));\n\t\t}\n\n\t\tentries() {\n\t\t\treturn this.values().map(c => [c, c]);\n\t\t}\n\n\t\tforEach(callbackFn, thisArg) {\n\t\t\tthis.values().forEach(state => callbackFn.call(thisArg || this, state, state, this));\n\t\t}\n\n\t\t[Symbol.toStringTag]() {\n\t\t\treturn 'CustomStateSet';\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values();\n\t\t}\n\t}\n\n\tObject.defineProperty(HTMLElement.prototype, 'attachInternals', {\n\t\tvalue: function() {\n\t\t\tconst internals = value.call(this);\n\n\t\t\tObject.defineProperty(internals, symbols.element, {\n\t\t\t\tvalue: this,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t});\n\n\t\t\tObject.defineProperty(internals, 'states', {\n\t\t\t\tvalue: new CustomStateSet(this, symbols.key),\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumberable: true,\n\t\t\t});\n\n\t\t\tif (Object.is(internals.shadowRoot, null) && ! Object.is(this.shadowRoot, null)) {\n\t\t\t\tObject.defineProperty(internals, 'shadowRoot', {\n\t\t\t\t\tvalue: this.shadowRoot,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn internals;\n\t\t},\n\t\twritable, configurable, enumerable,\n\t});\n\n\tglobalThis.CustomStateSet = CustomStateSet;\n\tshimAria(ElementInternals.prototype);\n}\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(Response, 'json', (data, { status = 200, statusText = '', headers = new Headers() } = {}) => {\n\tif (! (headers instanceof Headers)) {\n\t\treturn Response.json(data, { status, statusText, headers: new Headers(headers) });\n\t} else {\n\t\theaders.set('Content-Type', 'application/json');\n\t\treturn new Response(JSON.stringify(data), { status, statusText, headers });\n\t}\n});\n\npolyfillMethod(Response, 'redirect', (url, status = 302) => {\n\treturn new Response('', {\n\t\tstatus,\n\t\theaders: new Headers({ Location: url }),\n\t});\n});\n"],"names":["polyfillMethod","parent","name","value","writable","enumerable","configurable","Function","Object","defineProperty","polyfillGetterSetter","get","set","hasOwnProperty","array","globalThis","window","Window","prototype","global","self","this","crypto","msCrypto","Notification","notifications","webkitNotifications","oNotifications","msNotifications","navigator","doNotTrack","msDoNotTrack","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","document","hidden","webkitHidden","msHidden","mozHidden","visibilityState","webkitVisibilityState","msVisibilityState","mozVisibilityState","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","Document","exitFullscreen","mozCancelFullScreen","webkitCancelFullScreen","msCancelFullScreen","HTMLElement","requestFullscreen","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","Element","Map","emplace","key","insert","update","has","existing","call","Error","SHIM_TARGETS","Array","String","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","flat","depth","result","Math","min","Number","MAX_SAFE_INTEGER","max","flattenFn","item","isArray","forEach","i","push","isNaN","flatMap","cb","thisArg","map","findLast","callback","found","index","arr","findLastIndex","at","n","trunc","length","C","group","reduce","groups","groupBy","args","console","warn","groupToMap","groupByToMap","fromAsync","async","items","mapFn","from","equals","every","val","is","uniqueBy","arg","Set","filter","obj","includes","apply","err","TypeError","toReversed","reverse","toSorted","cmpFn","sort","toSpliced","start","deleteCount","cpy","splice","with","Symbol","toStringTag","iterator","once","funcs","WeakMap","constructor","retVal","catch","delete","URL","str","base","range","end","step","Iterator","getPrototypeOf","option","inclusive","RangeError","take","limit","drop","toArray","initialValue","current","next","some","find","indexed","MIN_SAFE_INTEGER","isSafeInteger","num","EPSILON","sign","x","expm1","exp","hypot","nums","sqrt","sum","cbrt","log10","log","LOG10E","log2","LOG2E","log1p","fround","clamp","constrain","hostnames","HTTPS","protocols","hasSecureScripts","scripts","src","protocol","hostname","baseURI","location","isAsyncFunction","what","isObject","thing","getType","callOnce","protectedData","Lock","mode","toString","startsWith","DOMException","locks","symbols","nativeSupport","request","actuallySupported","Promise","resolve","query","then","checkSupport","callFunction","reject","queueMicrotask","whenReleased","lock","promise","error","queueTask","withResolvers","def","getDeferred","controller","AbortController","pending","getLocks","shouldPend","isPending","keys","getHeldLocks","getPendingLocks","whenNotBlocked","allSettled","l","getLockSignal","signal","executeLock","setPending","finally","requestIdleCallback","abort","LockManager","static","opts","ifAvailable","steal","AbortSignal","aborted","reason","held","alreadyLocked","entries","stealLocks","addEventListener","clientId","errorToEvent","type","message","fileName","filename","lineNumber","lineno","columnNumber","colno","ErrorEvent","polyfilled","dispatchEvent","canShare","title","text","url","files","share","setAppBadge","isInteger","replace","clearAppBadge","Navigator","getInstalledRelatedApps","getGamepads","connection","create","EventTarget","effectiveType","rtt","NaN","downlink","downlinkMax","Infinity","saveData","onchange","ontypechange","isValidTimeout","timeout","performance","now","timeRemaining","setTimeout","didTimeout","cancelIdleCallback","id","clearTimeout","cancelAnimationFrame","e","onabort","AbortError","super","defineProperties","undefined","event","throwIfAborted","Event","reasons","staticAbort","ms","isFinite","any","signals","target","AggregateError","errors","reportError","MediaQueryListEvent","media","matches","MediaQueryList","targets","listener","init","mql","addListener","bind","removeEventListener","promises","all","status","race","try","TextEncoder","encoding","encode","split","char","code","charCodeAt","floor","encodeInto","ui8arr","encoded","len","slice","read","written","supportedEncodings","TextDecoder","fatal","ignoreBOM","toLowerCase","decode","data","prev","fromCharCode","offset","randomUUID","c","getRandomValues","getAllCookies","cookie","decodeURIComponent","trim","path","expires","domain","sameSite","secure","getter","setter","maxAge","httpOnly","Date","encodeURIComponent","toUTCString","CookieStore","cookies","getAll","defaultParams","changed","deleted","cookieStore","supported","trustedTypes","createPolicy","Animation","playState","events","getOwnPropertyDescriptors","desc","urls","getHTTPCSP","ok","headers","fetch","href","method","directives","fromEntries","directive","rest","part","getMetaCSP","meta","head","querySelector","HTMLMetaElement","content","fetchCSP","documentElement","dataset","fetchTrustCsp","parseCSP","policies","allowDuplicates","hasNone","clear","add","allowedPolicies","fromCSP","csp","allowTrustDuplicates","getAllowDuplicates","trustedPolicies","getAllowedPolicies","isSupported","trustedValue","trustedKey","emptyHTML","emptyScript","policy","for","defaultPolicy","trustedTypesCSP","hasPolicy","getPolicy","getUnsetPolicyException","TrustedType","freeze","valueOf","toJSON","TrustedHTML","TrustedScript","TrustedScriptURL","TrustedTypePolicy","createHTML","createScript","createScriptURL","input","TrustedTypePolicyFactory","getActualCSP","enumberable","isHTML","isScript","isScriptURL","match","size","getAttributeType","tagName","attribute","elementNs","elementNS","getPropertyType","property","_isPolyfill_","polyfill$1","SanitizerConfig","JSON","parse","setHTML","el","defaultConfig","doc","safeParseHTML","replaceChildren","documentToFragment","allowProtocols","frag","createDocumentFragment","clone","cloneNode","append","childNodes","body","convertSanitizerConfig","allowAttributes","allowComments","allowElements","allowCustomElements","blockElements","dropAttributes","dropElements","allowUnknownMarkup","sanitizer","context","Sanitizer","getConfiguration","DOMParser","parseFromString","sanitizeNode","sanitize","Node","nodeType","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","root","iter","createNodeIterator","NodeFilter","SHOW_ELEMENT","SHOW_COMMENT","node","ELEMENT_NODE","nextNode","HTMLUnknownElement","remove","tag","hasChildNodes","replaceWith","hasAttributes","getAttributeNames","attr","getAttributeNode","removeAttributeNode","sel","COMMENT_NODE","localName","parentElement","removeChild","polyfill","getDefaultConfiguration","configs","SanitizerNative","sanitizeFor","element","createElement","getSantizerUtils","adoptedStyleSheets","styleSheets","sheet","ownerNode","classList","contains","sheets","difference","links","link","createObjectURL","File","rel","disabled","mediaText","cssRules","rule","insertRule","cssText","revokeObjectURL","clearCSSRules","deleteRule","ShadowRoot","CSSStyleSheet","NativeStyleSheet","rules","parseHTML","appendMedium","createSheet","crossOrigin","referrerPolicy","replaceSync","aria","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColIndexText","ariaColSpan","ariaCurrent","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowIndexText","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","HTMLScriptElement","supports","props","prop","getAttribute","setAttribute","removeAttribute","previous","restoreTabIndex","tabIndex","children","setTabIndex","hasAttribute","HTMLImageElement","naturalHeight","complete","load","func","getOwnPropertyDescriptor","newMethod","overwriteMethod","orig","convertToSanitizerConfig","safeSetHTML","HTMLTemplateElement","attachShadows","querySelectorAll","tmp","shadow","attachShadow","shadowRootMode","readyState","HTMLFormElement","requestSubmit","submitter","btn","HTMLButtonElement","HTMLInputElement","isSameNode","form","click","intersection","iterable","union","isSubsetOf","isSupersetOf","symmetricDifference","isDisjointFrom","getScreenDetails","ScreenDetailed","availHeight","screen","availLeft","availTop","availWidth","colorDepth","devicePixelRatio","height","isExtended","isInternal","isPrimary","label","orientation","pixelDepth","top","width","ScreenDetails","currentScreen","screens","Screen","PRIORITIES","delayCallback","delay","handle","Scheduler","priority","scheduler","internals","fieldset","validity","validationMessage","state","formController","anchor","customInputs","attachInternals","validationObject","valueMissing","typeMismatch","patternMismatch","tooLong","tooShort","rangeUnderflow","rangeOverflow","stepMismatch","badInput","customError","valid","hasDisabledFieldset","component","HTMLFieldSetElement","isFormAssociated","customElements","formAssociated","getFormDataHandler","reportValidity","willValidate","formData","FormData","k","v","preventDefault","stopImmediatePropagation","stopPropagation","css","style","setProperty","findAssociatedForm","forms","closest","associateForm","ElementInternals","formAssociatedCallback","observer","observe","observerOpts","checkValidity","formResetCallback","MutationObserver","mutations","attributeName","states","m","formDisabledCallback","isConnected","attributes","attributeFilter","labels","_polyfilled","shadowRoot","nextElementSibling","bottom","left","getBoundingClientRect","textContent","position","color","display","padding","border","focus","insertAdjacentElement","setFormValue","setValidity","_associateForm","_findAssociatedForm","prefix","getCName","CustomStateSet","values","substr","callbackFn","shimAria","Response","statusText","Headers","stringify","json","Location"],"mappings":"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"}
|