@rocketspark/domain-checker 0.0.34 → 1.0.2
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/.gitconfig +8 -0
- package/README.md +8 -3
- package/build/141.index.js +1 -1
- package/build/147.index.js +1 -1
- package/build/167.index.js +1 -1
- package/build/17.index.js +1 -1
- package/build/194.index.js +1 -1
- package/build/208.index.js +1 -1
- package/build/237.index.js +1 -1
- package/build/245.index.js +1 -1
- package/build/278.index.js +1 -1
- package/build/386.index.js +1 -1
- package/build/404.index.js +1 -1
- package/build/420.index.js +1 -1
- package/build/514.index.js +1 -1
- package/build/524.index.js +1 -1
- package/build/540.index.js +1 -1
- package/build/542.index.js +1 -1
- package/build/551.index.js +1 -1
- package/build/567.index.js +1 -1
- package/build/571.index.js +1 -1
- package/build/572.index.js +1 -1
- package/build/584.index.js +1 -1
- package/build/588.index.js +1 -1
- package/build/598.index.js +1 -1
- package/build/60.index.js +1 -1
- package/build/616.index.js +1 -1
- package/build/631.index.js +1 -1
- package/build/643.index.js +1 -1
- package/build/654.index.js +1 -1
- package/build/66.index.js +1 -1
- package/build/697.index.js +1 -1
- package/build/714.index.js +1 -1
- package/build/795.index.js +1 -1
- package/build/8.index.js +1 -1
- package/build/808.index.js +1 -1
- package/build/810.index.js +1 -1
- package/build/833.index.js +1 -1
- package/build/835.index.js +1 -1
- package/build/847.index.js +1 -1
- package/build/853.index.js +1 -1
- package/build/861.index.js +1 -1
- package/build/871.index.js +1 -1
- package/build/890.index.js +1 -1
- package/build/899.index.js +1 -1
- package/build/938.index.js +1 -1
- package/build/964.index.js +1 -1
- package/build/970.index.js +1 -1
- package/build/993.index.js +1 -1
- package/build/css/index.css +2 -2
- package/build/css/index.css.map +1 -1
- package/build/index.js +10 -3
- package/build/index.js.map +1 -1
- package/build/types/Components/Cart.d.ts +1 -0
- package/build/types/Helpers/Fetch.d.ts +7 -0
- package/build/types/Helpers/sanitize.d.ts +1 -0
- package/build/types/Helpers/templates.d.ts +3 -2
- package/build/types/Interfaces/class-names.d.ts +6 -0
- package/mprocs.yaml +1 -1
- package/package.json +4 -2
- package/webpack.config.demo.js +2 -2
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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A,KAED,4BAA6B,CAC5B,KACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,6BAA8B,CAC7B,IACA,KAED,6BAA8B,CAC7B,KACA,KAED,gCAAiC,CAChC,KACA,KAED,oCAAqC,CACpC,KACA,KAED,wBAAyB,CACxB,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,oCAAqC,CACpC,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,mCAAoC,CACnC,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,qBAAsB,CACrB,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,kCAAmC,CAClC,KACA,KAED,6BAA8B,CAC7B,KACA,KAED,yBAA0B,CACzB,IACA,KAED,sBAAuB,CACtB,KACA,KAED,6BAA8B,CAC7B,KACA,IAED,gCAAiC,CAChC,GACA,IAED,8BAA+B,CAC9B,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,sBAAuB,CACtB,KACA,KAED,oBAAqB,CACpB,KACA,GAED,yBAA0B,CACzB,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,oCAAqC,CACpC,KACA,KAED,wBAAyB,CACxB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,gCAAiC,CAChC,KACA,KAED,yBAA0B,CACzB,KACA,KAED,yBAA0B,CACzB,KACA,KAGF,SAASoW,EAAoBC,GAC5B,IAAIC,EAAoB3Z,EAAEqD,EAAKqW,GAC9B,OAAO7K,QAAQ0K,UAAUzJ,MAAK,WAC7B,IAAIxH,EAAI,IAAIsR,MAAM,uBAAyBF,EAAM,KAEjD,MADApR,EAAEuR,KAAO,mBACHvR,CACP,IAGD,IAAIwR,EAAMzW,EAAIqW,GAAMK,EAAKD,EAAI,GAC7B,OAAOH,EAAoBrR,EAAEwR,EAAI,IAAIhK,MAAK,WA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","sources":["webpack://DomainChecker/webpack/universalModuleDefinition","webpack://DomainChecker/webpack/runtime/load script","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/dist/esm/index-3d0f28ab.js","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack://DomainChecker/./node_modules/recaptcha-v3/dist/ReCaptcha.js","webpack://DomainChecker/./node_modules/recaptcha-v3/dist/ReCaptchaInstance.js","webpack://DomainChecker/./node_modules/recaptcha-v3/dist/ReCaptchaLoader.js","webpack://DomainChecker/webpack/bootstrap","webpack://DomainChecker/webpack/runtime/define property getters","webpack://DomainChecker/webpack/runtime/ensure chunk","webpack://DomainChecker/webpack/runtime/get javascript chunk filename","webpack://DomainChecker/webpack/runtime/get mini-css chunk filename","webpack://DomainChecker/webpack/runtime/global","webpack://DomainChecker/webpack/runtime/hasOwnProperty shorthand","webpack://DomainChecker/webpack/runtime/make namespace object","webpack://DomainChecker/webpack/runtime/publicPath","webpack://DomainChecker/webpack/runtime/jsonp chunk loading","webpack://DomainChecker/./src/lib/Helpers/wrap.ts","webpack://DomainChecker/./src/lib/Interfaces/locale.ts","webpack://DomainChecker/./src/lib/Helpers/templates.ts","webpack://DomainChecker/./src/lib/Helpers/defaults.ts","webpack://DomainChecker/./src/lib/Helpers/Fetch.ts","webpack://DomainChecker/./src/lib/Helpers/localeTld.ts","webpack://DomainChecker/./src/lib/Components/DomainSearch.ts","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/loader/index.js","webpack://DomainChecker/./src/lib/Components/SearchHeading.ts","webpack://DomainChecker/./src/lib/Components/SearchResultCaption.ts","webpack://DomainChecker/./src/lib/Components/SearchAlternativeRow.ts","webpack://DomainChecker/./src/lib/Components/SearchAlternatives.ts","webpack://DomainChecker/./src/lib/Helpers/analytics.ts","webpack://DomainChecker/./src/lib/Components/Cart.ts","webpack://DomainChecker/./src/lib/Components/PopupContainer.ts","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/dist/esm/loader.js","webpack://DomainChecker/./src/lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DomainChecker\"] = factory();\n\telse\n\t\troot[\"DomainChecker\"] = factory();\n})(self, function() {\nreturn ","var inProgress = {};\nvar dataWebpackPrefix = \"DomainChecker:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","const NAMESPACE = 'rocketspark';\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet queuePending = false;\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst createTime = (fnName, tagName = '') => {\n {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n {\n return () => {\n return;\n };\n }\n};\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\n/**\n * Check whether a value is a 'complex type', defined here as an object or a\n * function.\n *\n * @param o the value to check\n * @returns whether it's a complex type or not\n */\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n // normalize class / classname attributes\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\n/**\n * A utility function for creating a virtual DOM node from a tag and some\n * possible text content.\n *\n * @param tag the tag for this element\n * @param text possible text content for the node\n * @returns a newly-minted virtual DOM node\n */\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\n/**\n * Check whether a given node is a Host node or not\n *\n * @param node the virtual DOM node to check\n * @returns whether it's a Host node or not\n */\nconst isHost = (node) => node && node.$tag$ === Host;\n/**\n * Implementation of {@link d.FunctionalUtilities} for Stencil's VDom.\n *\n * Note that these functions convert from {@link d.VNode} to\n * {@link d.ChildNode} to give functional component developers a friendly\n * interface.\n */\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\n/**\n * Convert a {@link d.VNode} to a {@link d.ChildNode} in order to present a\n * friendlier public interface (hence, 'convertToPublic').\n *\n * @param node the virtual DOM node to convert\n * @returns a converted child node\n */\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\n/**\n * Convert a {@link d.ChildNode} back to an equivalent {@link d.VNode} in\n * order to use the resulting object in the virtual DOM. The initial object was\n * likely created as part of presenting a public API, so converting it back\n * involved making it 'private' again (hence, `convertToPrivate`).\n *\n * @param node the child node to convert\n * @returns a converted virtual DOM node\n */\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * <my-cmp prop-val={0}></my-cmp>\n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (propType & 2 /* MEMBER_FLAGS.Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = (ref) => (getHostRef(ref).$hostElement$ );\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail,\n });\n },\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode) => {\n var _a;\n const scopeId = getScopeId(cmpMeta);\n const style = styles.get(scopeId);\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n styleElm.setAttribute('nonce', nonce);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta);\n if (flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n/**\n * When running a VDom render set properties present on a VDom node onto the\n * corresponding HTML element.\n *\n * Note that this function has special functionality for the `class`,\n * `style`, `key`, and `ref` attributes, as well as event handlers (like\n * `onClick`, etc). All others are just passed through as-is.\n *\n * @param elm the HTMLElement onto which attributes should be set\n * @param memberName the name of the attribute to set\n * @param oldValue the old value for the attribute\n * @param newValue the new value for the attribute\n * @param isSvg whether we're in an svg context or not\n * @param flags bitflags for Vdom variables\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (memberName === 'style') {\n // update style attribute, css properties and values\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (memberName === 'key')\n ;\n else if (memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if ((!isProp ) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // <my-cmp on-click> // listens for \"click\"\n // <my-cmp on-Click> // listens for \"Click\"\n // <my-cmp on-ionChange> // listens for \"ionChange\"\n // <my-cmp on-EVENTS> // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the <input> caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in <svg>\n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (!useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n doc.createTextNode('');\n }\n else {\n if (!isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n );\n if (isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n {\n updateElement(null, newVNode, isSvgMode);\n }\n if (isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting <svg> element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting <foreignObject> element\n isSvgMode = true;\n }\n }\n }\n {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\n/**\n * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and\n * add them to the DOM in the appropriate place.\n *\n * @param parentElm the DOM node which should be used as a parent for the new\n * DOM nodes\n * @param before a child of the `parentElm` which the new children should be\n * inserted before (optional)\n * @param parentVNode the parent virtual DOM node\n * @param vnodes the new child virtual DOM nodes to produce DOM nodes for\n * @param startIdx the index in the child virtual DOM nodes at which to start\n * creating DOM nodes (inclusive)\n * @param endIdx the index in the child virtual DOM nodes at which to stop\n * creating DOM nodes (inclusive)\n */\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, referenceNode(before) );\n }\n }\n }\n};\n/**\n * Remove the DOM elements corresponding to a list of {@link d.VNode} objects.\n * This can be used to, for instance, clean up after a list of children which\n * should no longer be shown.\n *\n * This function also handles some of Stencil's slot relocation logic.\n *\n * @param vnodes a list of virtual DOM nodes to remove\n * @param startIdx the index at which to start removing nodes (inclusive)\n * @param endIdx the index at which to stop removing nodes (inclusive)\n */\nconst removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n nullifyVNodeRefs(vnode);\n if (elm) {\n {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `<div><p><span>HEY</span></p></div>`\n * newVNode: `<div><p><span>THERE</span></p></div>`\n *\n * Then when comparing the children of the `<div>` tag we check the equality\n * of the VNodes corresponding to the `<p>` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `<div><element-one /><element-two /></div>`\n * newVNode: `<div><element-two /><element-one /></div>`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // <old-start-node />\n // <some-intervening-node />\n // <old-end-node />\n // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here\n // <next-sibling />\n //\n // If instead `oldEndVnode.$elm$` has no sibling then we just want to put\n // the node for `oldStartVnode` at the end of the children of\n // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there\n // aren't any siblings, and passing `null` to `Node.insertBefore` will\n // append it to the children of the parent element.\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // case: \"Vnode moved left\"\n //\n // We've found that the first node in our window on the new children is\n // the same VNode as the _last_ node in our window on the old children.\n // Visually, this is the layout of these two nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^\n //\n // In this situation we need to patch `newStartVnode` onto `oldEndVnode`\n // (which will handle updating any changed attributes, reconciling their\n // children etc) but we also need to move the DOM node to which\n // `oldEndVnode` corresponds.\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n // We've already checked above if `oldStartVnode` and `newStartVnode` are\n // the same node, so since we're here we know that they are not. Thus we\n // can move the element for `oldEndVnode` _before_ the element for\n // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the\n // future.\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // Here we do some checks to match up old and new nodes based on the\n // `$key$` attribute, which is set by putting a `key=\"my-key\"` attribute\n // in the JSX for a DOM element in the implementation of a Stencil\n // component.\n //\n // First we check to see if there are any nodes in the array of old\n // children which have the same key as the first node in the new\n // children.\n idxInOld = -1;\n {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n // We found a node in the old children which matches up with the first\n // node in the new children! So let's deal with that\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n // the tag doesn't match so we'll need a new DOM element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n // invalidate the matching old node so that we won't try to update it\n // again later on\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // We either didn't find an element in the old children that matches\n // the key of the first new child OR the build is not using `key`\n // attributes at all. In either case we need to create a new element\n // for the new node.\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n // if we created a new node then handle inserting it to the DOM\n {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n // we have some more new nodes to add which don't match up with old nodes\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (newStartIdx > newEndIdx) {\n // there are nodes in the `oldCh` array which no longer correspond to nodes\n // in the new array, so lets remove them (which entails cleaning up the\n // relevant DOM nodes)\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\n/**\n * Compare two VNodes to determine if they are the same\n *\n * **NB**: This function is an equality _heuristic_ based on the available\n * information set on the two VNodes and can be misleading under certain\n * circumstances. In particular, if the two nodes do not have `key` attrs\n * (available under `$key$` on VNodes) then the function falls back on merely\n * checking that they have the same tag.\n *\n * So, in other words, if `key` attrs are not set on VNodes which may be\n * changing order within a `children` array or something along those lines then\n * we could obtain a false negative and then have to do needless re-rendering\n * (i.e. we'd say two VNodes aren't equal when in fact they should be).\n *\n * @param leftVNode the first VNode to check\n * @param rightVNode the second VNode to check\n * @returns whether they're equal or not\n */\nconst isSameVnode = (leftVNode, rightVNode) => {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (leftVNode.$tag$ === 'slot') {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n // this will be set if components in the build have `key` attrs set on them\n {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n }\n return false;\n};\nconst referenceNode = (node) => {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nconst parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;\n/**\n * Handle reconciling an outdated VNode with a new one which corresponds to\n * it. This function handles flushing updates to the DOM and reconciling the\n * children of the two nodes (if any).\n *\n * @param oldVNode an old VNode whose DOM element and children we want to update\n * @param newVNode a new VNode representing an updated version of the old one\n */\nconst patch = (oldVNode, newVNode) => {\n const elm = (newVNode.$elm$ = oldVNode.$elm$);\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode.$children$;\n const tag = newVNode.$tag$;\n const text = newVNode.$text$;\n let defaultHolder;\n if (text === null) {\n {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n {\n if (tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n // so we need to call `updateChildren` to reconcile them\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if ((defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nconst updateFallbackSlotVisibility = (elm) => {\n // tslint:disable-next-line: prefer-const\n const childNodes = elm.childNodes;\n let childNode;\n let i;\n let ilen;\n let j;\n let slotNameAttr;\n let nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n nodeType = childNodes[j].nodeType;\n if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {\n // this sibling node is from a different component OR is a named fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||\n (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nconst relocateNodes = [];\nconst relocateSlotContent = (elm) => {\n // tslint:disable-next-line: prefer-const\n let childNode;\n let node;\n let hostContentNodes;\n let slotNameAttr;\n let relocateNodeData;\n let j;\n let i = 0;\n const childNodes = elm.childNodes;\n const ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nconst isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\n/**\n * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by\n * calling them with `null`. This signals that the DOM element corresponding to\n * the VDom node has been removed from the DOM.\n *\n * @param vNode a virtual DOM node\n */\nconst nullifyVNodeRefs = (vNode) => {\n {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);\n }\n};\n/**\n * The main entry point for Stencil's virtual DOM-based rendering engine\n *\n * Given a {@link d.HostRef} container and some virtual DOM nodes, this\n * function will handle creating a virtual DOM tree with a single root, patching\n * the current virtual DOM tree onto an old one (if any), dealing with slot\n * relocation, and reflecting attributes.\n *\n * @param hostRef data needed to root and render the virtual DOM tree, such as\n * the DOM node into which it should be rendered.\n * @param renderFnResults the virtual DOM nodes to be rendered\n * @param isInitialLoad whether or not this is the first call after page load\n */\nconst renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n // if `renderFnResults` is a Host node then we can use it directly. If not,\n // we need to call `h` again to wrap the children of our component in a\n // 'dummy' Host node (well, an empty vnode) since `renderVdom` assumes\n // implicitly that the top-level vdom node is 1) an only child and 2)\n // contains attrs that need to be set on the host element.\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n // On the first render and *only* on the first render we want to check for\n // any attributes set on the host element which are also set on the vdom\n // node. If we find them, we override the value on the VDom node attrs with\n // the value from the host element, which allows developers building apps\n // with Stencil components to override e.g. the `role` attribute on a\n // component even if it's already set on the `Host`.\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n // We have a special implementation in `setAccessor` for `style` and\n // `class` which reconciles values coming from the VDom with values\n // already present on the DOM element, so we don't want to override those\n // attributes on the VDom tree with values from the host element if they\n // are present.\n //\n // Likewise, `ref` and `key` are special internal values for the Stencil\n // runtime and we don't want to override those either.\n if (hostElm.hasAttribute(key) && !['key', 'ref', 'style', 'class'].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm );\n {\n scopeId = hostElm['s-sc'];\n }\n {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n let relocateData;\n let nodeToRelocate;\n let orgLocationNode;\n let parentNodeRef;\n let insertBeforeNode;\n let refNode;\n let i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode =\n doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||\n nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\nconst attachToAncestor = (hostRef, ancestorComponent) => {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));\n }\n};\nconst scheduleUpdate = (hostRef, isInitialLoad) => {\n {\n hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestor component or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return writeTask(dispatch) ;\n};\n/**\n * Dispatch initial-render and update lifecycle hooks, enqueuing calls to\n * component lifecycle methods like `componentWillLoad` as well as\n * {@link updateComponent}, which will kick off the virtual DOM re-render.\n *\n * @param hostRef a reference to a host DOM node\n * @param isInitialLoad whether we're on the initial load or not\n * @returns an empty Promise which is used to enqueue a series of operations for\n * the component\n */\nconst dispatchHooks = (hostRef, isInitialLoad) => {\n const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n const instance = hostRef.$lazyInstance$ ;\n // We're going to use this variable together with `enqueue` to implement a\n // little promise-based queue. We start out with it `undefined`. When we add\n // the first function to the queue we'll set this variable to be that\n // function's return value. When we attempt to add subsequent values to the\n // queue we'll check that value and, if it was a `Promise`, we'll then chain\n // the new function off of that `Promise` using `.then()`. This will give our\n // queue two nice properties:\n //\n // 1. If all functions added to the queue are synchronous they'll be called\n // synchronously right away.\n // 2. If all functions added to the queue are asynchronous they'll all be\n // called in order after `dispatchHooks` exits.\n let maybePromise;\n if (isInitialLoad) {\n {\n hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));\n hostRef.$queuedListeners$ = undefined;\n }\n }\n {\n // If `componentWillLoad` returns a `Promise` then we want to wait on\n // whatever's going on in that `Promise` before we launch into\n // rendering the component, doing other lifecycle stuff, etc. So\n // in that case we assign the returned promise to the variable we\n // declared above to hold a possible 'queueing' Promise\n maybePromise = safeCall(instance, 'componentWillLoad');\n }\n }\n {\n maybePromise = enqueue(maybePromise, () => safeCall(instance, 'componentWillRender'));\n }\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\n/**\n * This function uses a Promise to implement a simple first-in, first-out queue\n * of functions to be called.\n *\n * The queue is ordered on the basis of the first argument. If it's\n * `undefined`, then nothing is on the queue yet, so the provided function can\n * be called synchronously (although note that this function may return a\n * `Promise`). The idea is that then the return value of that enqueueing\n * operation is kept around, so that if it was a `Promise` then subsequent\n * functions can be enqueued by calling this function again with that `Promise`\n * as the first argument.\n *\n * @param maybePromise either a `Promise` which should resolve before the next function is called or an 'empty' sentinel\n * @param fn a function to enqueue\n * @returns either a `Promise` or the return value of the provided function\n */\nconst enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn) : fn();\n/**\n * Check that a value is a `Promise`. To check, we first see if the value is an\n * instance of the `Promise` global. In a few circumstances, in particular if\n * the global has been overwritten, this is could be misleading, so we also do\n * a little 'duck typing' check to see if the `.then` property of the value is\n * defined and a function.\n *\n * @param maybePromise it might be a promise!\n * @returns whether it is or not\n */\nconst isPromisey = (maybePromise) => maybePromise instanceof Promise ||\n (maybePromise && maybePromise.then && typeof maybePromise.then === 'function');\n/**\n * Update a component given reference to its host elements and so on.\n *\n * @param hostRef an object containing references to the element's host node,\n * VDom nodes, and other metadata\n * @param instance a reference to the underlying host element where it will be\n * rendered\n * @param isInitialLoad whether or not this function is being called as part of\n * the first render cycle\n */\nconst updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n const rc = elm['s-rc'];\n if (isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map((cb) => cb());\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n {\n const childrenPromises = (_a = elm['s-p']) !== null && _a !== void 0 ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\n/**\n * Handle making the call to the VDom renderer with the proper context given\n * various build variables\n *\n * @param hostRef an object containing references to the element's host node,\n * VDom nodes, and other metadata\n * @param instance a reference to the underlying host element where it will be\n * rendered\n * @param elm the Host element for the component\n * @param isInitialLoad whether or not this function is being called as part of\n * @returns an empty promise\n */\nconst callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;\n }\n {\n {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n }\n catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nconst postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime('postUpdate', tagName);\n const instance = hostRef.$lazyInstance$ ;\n const ancestorComponent = hostRef.$ancestorComponent$;\n {\n safeCall(instance, 'componentDidRender');\n }\n if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;\n {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n {\n safeCall(instance, 'componentDidLoad');\n }\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n }\n else {\n {\n safeCall(instance, 'componentDidUpdate');\n }\n endPostUpdate();\n }\n {\n hostRef.$onInstanceResolve$(elm);\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nconst forceUpdate = (ref) => {\n {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected &&\n (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n};\nconst appDidLoad = (who) => {\n // on appload\n // we have finish the first big initial render\n {\n addHydratedFlag(doc.documentElement);\n }\n nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));\n};\nconst safeCall = (instance, method, arg) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nconst addHydratedFlag = (elm) => elm.classList.add('hydrated')\n ;\nconst getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nconst setValue = (ref, propName, newVal, cmpMeta) => {\n // check our new property value against our internal value\n const hostRef = getHostRef(ref);\n const elm = hostRef.$hostElement$ ;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = hostRef.$lazyInstance$ ;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n // explicitly check for NaN on both sides, as `NaN === NaN` is always false\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (instance) {\n // get an array of method names of watch functions to call\n if (cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map((watchMethodName) => {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if ((flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n/**\n * Attach a series of runtime constructs to a compiled Stencil component\n * constructor, including getters and setters for the `@Prop` and `@State`\n * decorators, callbacks for when attributes change, and so on.\n *\n * @param Cstr the constructor for a component that we need to process\n * @param cmpMeta metadata collected previously about the component\n * @param flags a number used to store a series of bit flags\n * @returns a reference to the same constructor passed in (but now mutated)\n */\nconst proxyComponent = (Cstr, cmpMeta, flags) => {\n if (cmpMeta.$members$) {\n if (Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n const members = Object.entries(cmpMeta.$members$);\n const prototype = Cstr.prototype;\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||\n ((flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype, memberName, {\n get() {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set(newValue) {\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n else if (flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&\n memberFlags & 64 /* MEMBER_FLAGS.Method */) {\n // proxyComponent - method\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n const ref = getHostRef(this);\n return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));\n },\n });\n }\n });\n if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {\n const attrNameToPropName = new Map();\n prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n plt.jmp(() => {\n const propName = attrNameToPropName.get(attrName);\n // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback\n // in the case where an attribute was set inline.\n // ```html\n // <my-component some-attribute=\"some-value\"></my-component>\n // ```\n //\n // There is an edge case where a developer sets the attribute inline on a custom element and then\n // programmatically changes it before it has been upgraded as shown below:\n //\n // ```html\n // <!-- this component has _not_ been upgraded yet -->\n // <my-component id=\"test\" some-attribute=\"some-value\"></my-component>\n // <script>\n // // grab non-upgraded component\n // el = document.querySelector(\"#test\");\n // el.someAttribute = \"another-value\";\n // // upgrade component\n // customElements.define('my-component', MyComponent);\n // </script>\n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n // Let the runtime know that the component has been initialized\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n {\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime();\n Cstr = await Cstr;\n endLoad();\n }\n if (!Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n if (Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n const scopeId = getScopeId(cmpMeta);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if ((// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if (ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n // fire off connectedCallback() on component instance\n if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) {\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$));\n }\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectInstance = (instance) => {\n {\n safeCall(instance, 'disconnectedCallback');\n }\n};\nconst disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) {\n disconnectInstance(hostRef.$lazyInstance$);\n }\n else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$));\n }\n }\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n const endBootstrap = createTime();\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n let appLoadFallback;\n let isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n {\n cmpMeta.$watchers$ = {};\n }\n const tagName = cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n {\n {\n self.attachShadow({ mode: 'open' });\n }\n }\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n visibilityStyle.setAttribute('nonce', nonce);\n }\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (listeners) {\n listeners.map(([flags, name, method]) => {\n const target = getHostListenerTarget(elm, flags) ;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\n/**\n * Assigns the given value to the nonce property on the runtime platform object.\n * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.\n * @param nonce The value to be assigned to the platform nonce property.\n * @returns void\n */\nconst setNonce = (nonce) => (plt.$nonce$ = nonce);\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (0, console.error)(e, el);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n const module = cmpModules.get(bundleId) ;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${''}`).then((importedModule) => {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst win = typeof window !== 'undefined' ? window : {};\nconst doc = win.document || { head: {} };\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n ;\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst flush = () => {\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\n\nexport { Host as H, getAssetPath as a, bootstrapLazy as b, createEvent as c, forceUpdate as f, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };\n\n//# sourceMappingURL=index-3d0f28ab.js.map","var map = {\n\t\"./color-picker_4.entry.js\": [\n\t\t7245,\n\t\t245\n\t],\n\t\"./rs-accordion.entry.js\": [\n\t\t2714,\n\t\t714\n\t],\n\t\"./rs-alert.entry.js\": [\n\t\t3598,\n\t\t598\n\t],\n\t\"./rs-button_3.entry.js\": [\n\t\t6540,\n\t\t540\n\t],\n\t\"./rs-caption.entry.js\": [\n\t\t194,\n\t\t194\n\t],\n\t\"./rs-card-content.entry.js\": [\n\t\t7964,\n\t\t964\n\t],\n\t\"./rs-card-header.entry.js\": [\n\t\t9420,\n\t\t420\n\t],\n\t\"./rs-card.entry.js\": [\n\t\t572,\n\t\t572\n\t],\n\t\"./rs-checkbox.entry.js\": [\n\t\t5551,\n\t\t551\n\t],\n\t\"./rs-col.entry.js\": [\n\t\t4970,\n\t\t970\n\t],\n\t\"./rs-color-picker.entry.js\": [\n\t\t278,\n\t\t278\n\t],\n\t\"./rs-color-swatch.entry.js\": [\n\t\t3208,\n\t\t208\n\t],\n\t\"./rs-column-header_4.entry.js\": [\n\t\t1567,\n\t\t567\n\t],\n\t\"./rs-content-placeholder.entry.js\": [\n\t\t5237,\n\t\t237\n\t],\n\t\"./rs-content.entry.js\": [\n\t\t6993,\n\t\t993\n\t],\n\t\"./rs-dropdown_5.entry.js\": [\n\t\t2795,\n\t\t795\n\t],\n\t\"./rs-flint-popup-content.entry.js\": [\n\t\t1404,\n\t\t404\n\t],\n\t\"./rs-flint-popup.entry.js\": [\n\t\t6588,\n\t\t588\n\t],\n\t\"./rs-grid.entry.js\": [\n\t\t2654,\n\t\t654\n\t],\n\t\"./rs-icon.entry.js\": [\n\t\t3167,\n\t\t167\n\t],\n\t\"./rs-incrementer-option.entry.js\": [\n\t\t4386,\n\t\t386\n\t],\n\t\"./rs-incrementer.entry.js\": [\n\t\t2542,\n\t\t542\n\t],\n\t\"./rs-item-group.entry.js\": [\n\t\t5847,\n\t\t847\n\t],\n\t\"./rs-item.entry.js\": [\n\t\t6833,\n\t\t833\n\t],\n\t\"./rs-link-select.entry.js\": [\n\t\t1835,\n\t\t835\n\t],\n\t\"./rs-list-item.entry.js\": [\n\t\t8616,\n\t\t616\n\t],\n\t\"./rs-list-select.entry.js\": [\n\t\t8631,\n\t\t631\n\t],\n\t\"./rs-loader.entry.js\": [\n\t\t8861,\n\t\t861\n\t],\n\t\"./rs-modal.entry.js\": [\n\t\t9697,\n\t\t697\n\t],\n\t\"./rs-multi-select-item.entry.js\": [\n\t\t3808,\n\t\t808\n\t],\n\t\"./rs-multi-select.entry.js\": [\n\t\t4514,\n\t\t514\n\t],\n\t\"./rs-overline.entry.js\": [\n\t\t938,\n\t\t938\n\t],\n\t\"./rs-popup.entry.js\": [\n\t\t1890,\n\t\t890\n\t],\n\t\"./rs-progress-bar.entry.js\": [\n\t\t2017,\n\t\t17\n\t],\n\t\"./rs-progress-circle.entry.js\": [\n\t\t66,\n\t\t66\n\t],\n\t\"./rs-progress-step.entry.js\": [\n\t\t9584,\n\t\t584\n\t],\n\t\"./rs-radio-group.entry.js\": [\n\t\t2141,\n\t\t141\n\t],\n\t\"./rs-radio.entry.js\": [\n\t\t6643,\n\t\t643\n\t],\n\t\"./rs-row.entry.js\": [\n\t\t4008,\n\t\t8\n\t],\n\t\"./rs-select_2.entry.js\": [\n\t\t8871,\n\t\t871\n\t],\n\t\"./rs-side-drawer.entry.js\": [\n\t\t9147,\n\t\t147\n\t],\n\t\"./rs-sidebar-incrementer.entry.js\": [\n\t\t6571,\n\t\t571\n\t],\n\t\"./rs-spinner.entry.js\": [\n\t\t9853,\n\t\t853\n\t],\n\t\"./rs-switch.entry.js\": [\n\t\t3810,\n\t\t810\n\t],\n\t\"./rs-template-picker.entry.js\": [\n\t\t9899,\n\t\t899\n\t],\n\t\"./rs-textarea.entry.js\": [\n\t\t5524,\n\t\t524\n\t],\n\t\"./rs-tool-tip.entry.js\": [\n\t\t4060,\n\t\t60\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 3274;\nmodule.exports = webpackAsyncContext;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReCaptchaInstance = exports.getInstance = exports.load = void 0;\nvar ReCaptchaLoader_1 = require(\"./ReCaptchaLoader\");\nObject.defineProperty(exports, \"load\", { enumerable: true, get: function () { return ReCaptchaLoader_1.load; } });\nObject.defineProperty(exports, \"getInstance\", { enumerable: true, get: function () { return ReCaptchaLoader_1.getInstance; } });\nvar ReCaptchaInstance_1 = require(\"./ReCaptchaInstance\");\nObject.defineProperty(exports, \"ReCaptchaInstance\", { enumerable: true, get: function () { return ReCaptchaInstance_1.ReCaptchaInstance; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReCaptchaInstance = void 0;\nvar ReCaptchaInstance = (function () {\n function ReCaptchaInstance(siteKey, recaptchaID, recaptcha) {\n this.siteKey = siteKey;\n this.recaptchaID = recaptchaID;\n this.recaptcha = recaptcha;\n this.styleContainer = null;\n }\n ReCaptchaInstance.prototype.execute = function (action) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.recaptcha.enterprise) return [3, 2];\n return [4, this.recaptcha.enterprise.execute(this.recaptchaID, { action: action })];\n case 1:\n _a = _b.sent();\n return [3, 4];\n case 2: return [4, this.recaptcha.execute(this.recaptchaID, { action: action })];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4: return [2, _a];\n }\n });\n });\n };\n ReCaptchaInstance.prototype.getSiteKey = function () {\n return this.siteKey;\n };\n ReCaptchaInstance.prototype.hideBadge = function () {\n if (this.styleContainer !== null) {\n return;\n }\n this.styleContainer = document.createElement(\"style\");\n this.styleContainer.innerHTML =\n \".grecaptcha-badge{visibility:hidden !important;}\";\n document.head.appendChild(this.styleContainer);\n };\n ReCaptchaInstance.prototype.showBadge = function () {\n if (this.styleContainer === null) {\n return;\n }\n document.head.removeChild(this.styleContainer);\n this.styleContainer = null;\n };\n return ReCaptchaInstance;\n}());\nexports.ReCaptchaInstance = ReCaptchaInstance;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInstance = exports.load = void 0;\nvar ReCaptchaInstance_1 = require(\"./ReCaptchaInstance\");\nvar ELoadingState;\n(function (ELoadingState) {\n ELoadingState[ELoadingState[\"NOT_LOADED\"] = 0] = \"NOT_LOADED\";\n ELoadingState[ELoadingState[\"LOADING\"] = 1] = \"LOADING\";\n ELoadingState[ELoadingState[\"LOADED\"] = 2] = \"LOADED\";\n})(ELoadingState || (ELoadingState = {}));\nvar ReCaptchaLoader = (function () {\n function ReCaptchaLoader() {\n }\n ReCaptchaLoader.load = function (siteKey, options) {\n if (options === void 0) { options = {}; }\n if (typeof document === \"undefined\") {\n return Promise.reject(new Error(\"This is a library for the browser!\"));\n }\n if (ReCaptchaLoader.getLoadingState() === ELoadingState.LOADED) {\n if (ReCaptchaLoader.instance.getSiteKey() === siteKey) {\n return Promise.resolve(ReCaptchaLoader.instance);\n }\n else {\n return Promise.reject(new Error(\"reCAPTCHA already loaded with different site key!\"));\n }\n }\n if (ReCaptchaLoader.getLoadingState() === ELoadingState.LOADING) {\n if (siteKey !== ReCaptchaLoader.instanceSiteKey) {\n return Promise.reject(new Error(\"reCAPTCHA already loaded with different site key!\"));\n }\n return new Promise(function (resolve, reject) {\n ReCaptchaLoader.successfulLoadingConsumers.push(function (instance) { return resolve(instance); });\n ReCaptchaLoader.errorLoadingRunnable.push(function (reason) {\n return reject(reason);\n });\n });\n }\n ReCaptchaLoader.instanceSiteKey = siteKey;\n ReCaptchaLoader.setLoadingState(ELoadingState.LOADING);\n var loader = new ReCaptchaLoader();\n return new Promise(function (resolve, reject) {\n loader\n .loadScript(siteKey, options.useRecaptchaNet || false, options.useEnterprise || false, options.renderParameters ? options.renderParameters : {}, options.customUrl)\n .then(function () {\n ReCaptchaLoader.setLoadingState(ELoadingState.LOADED);\n var widgetID = loader.doExplicitRender(grecaptcha, siteKey, options.explicitRenderParameters\n ? options.explicitRenderParameters\n : {}, options.useEnterprise || false);\n var instance = new ReCaptchaInstance_1.ReCaptchaInstance(siteKey, widgetID, grecaptcha);\n ReCaptchaLoader.successfulLoadingConsumers.forEach(function (v) {\n return v(instance);\n });\n ReCaptchaLoader.successfulLoadingConsumers = [];\n if (options.autoHideBadge) {\n instance.hideBadge();\n }\n ReCaptchaLoader.instance = instance;\n resolve(instance);\n })\n .catch(function (error) {\n ReCaptchaLoader.errorLoadingRunnable.forEach(function (v) { return v(error); });\n ReCaptchaLoader.errorLoadingRunnable = [];\n reject(error);\n });\n });\n };\n ReCaptchaLoader.getInstance = function () {\n return ReCaptchaLoader.instance;\n };\n ReCaptchaLoader.setLoadingState = function (state) {\n ReCaptchaLoader.loadingState = state;\n };\n ReCaptchaLoader.getLoadingState = function () {\n if (ReCaptchaLoader.loadingState === null) {\n return ELoadingState.NOT_LOADED;\n }\n else {\n return ReCaptchaLoader.loadingState;\n }\n };\n ReCaptchaLoader.prototype.loadScript = function (siteKey, useRecaptchaNet, useEnterprise, renderParameters, customUrl) {\n var _this = this;\n if (useRecaptchaNet === void 0) { useRecaptchaNet = false; }\n if (useEnterprise === void 0) { useEnterprise = false; }\n if (renderParameters === void 0) { renderParameters = {}; }\n if (customUrl === void 0) { customUrl = \"\"; }\n var scriptElement = document.createElement(\"script\");\n scriptElement.setAttribute(\"recaptcha-v3-script\", \"\");\n scriptElement.setAttribute(\"async\", \"\");\n scriptElement.setAttribute(\"defer\", \"\");\n var scriptBase = \"https://www.google.com/recaptcha/api.js\";\n if (useRecaptchaNet) {\n if (useEnterprise) {\n scriptBase = \"https://recaptcha.net/recaptcha/enterprise.js\";\n }\n else {\n scriptBase = \"https://recaptcha.net/recaptcha/api.js\";\n }\n }\n else if (useEnterprise) {\n scriptBase = \"https://www.google.com/recaptcha/enterprise.js\";\n }\n if (customUrl) {\n scriptBase = customUrl;\n }\n if (renderParameters.render) {\n renderParameters.render = undefined;\n }\n var parametersQuery = this.buildQueryString(renderParameters);\n scriptElement.src = scriptBase + \"?render=explicit\" + parametersQuery;\n return new Promise(function (resolve, reject) {\n scriptElement.addEventListener(\"load\", _this.waitForScriptToLoad(function () {\n resolve(scriptElement);\n }, useEnterprise), false);\n scriptElement.onerror = function (error) {\n ReCaptchaLoader.setLoadingState(ELoadingState.NOT_LOADED);\n reject(error);\n };\n document.head.appendChild(scriptElement);\n });\n };\n ReCaptchaLoader.prototype.buildQueryString = function (parameters) {\n var parameterKeys = Object.keys(parameters);\n if (parameterKeys.length < 1) {\n return \"\";\n }\n return (\"&\" +\n Object.keys(parameters)\n .filter(function (parameterKey) {\n return !!parameters[parameterKey];\n })\n .map(function (parameterKey) {\n return parameterKey + \"=\" + parameters[parameterKey];\n })\n .join(\"&\"));\n };\n ReCaptchaLoader.prototype.waitForScriptToLoad = function (callback, useEnterprise) {\n var _this = this;\n return function () {\n if (window.grecaptcha === undefined) {\n setTimeout(function () {\n _this.waitForScriptToLoad(callback, useEnterprise);\n }, ReCaptchaLoader.SCRIPT_LOAD_DELAY);\n }\n else {\n if (useEnterprise) {\n window.grecaptcha.enterprise.ready(function () {\n callback();\n });\n }\n else {\n window.grecaptcha.ready(function () {\n callback();\n });\n }\n }\n };\n };\n ReCaptchaLoader.prototype.doExplicitRender = function (grecaptcha, siteKey, parameters, isEnterprise) {\n var augmentedParameters = __assign({ sitekey: siteKey }, parameters);\n if (parameters.container) {\n if (isEnterprise) {\n return grecaptcha.enterprise.render(parameters.container, augmentedParameters);\n }\n else {\n return grecaptcha.render(parameters.container, augmentedParameters);\n }\n }\n else {\n if (isEnterprise) {\n return grecaptcha.enterprise.render(augmentedParameters);\n }\n else {\n return grecaptcha.render(augmentedParameters);\n }\n }\n };\n ReCaptchaLoader.loadingState = null;\n ReCaptchaLoader.instance = null;\n ReCaptchaLoader.instanceSiteKey = null;\n ReCaptchaLoader.successfulLoadingConsumers = [];\n ReCaptchaLoader.errorLoadingRunnable = [];\n ReCaptchaLoader.SCRIPT_LOAD_DELAY = 25;\n return ReCaptchaLoader;\n}());\nexports.load = ReCaptchaLoader.load;\nexports.getInstance = ReCaptchaLoader.getInstance;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkDomainChecker\"] = self[\"webpackChunkDomainChecker\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export const wrap = (\n element: HTMLElement,\n wrapper: HTMLElement = document.createElement('div')\n): HTMLElement => {\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n return wrapper.appendChild(element);\n};\n","export type Locale = 'NZ' | 'AU' | 'UK' | 'US';\nexport const Currency = {\n currency: {\n ['NZ']: 'NZD',\n ['AU']: 'AUD',\n ['UK']: 'GBP',\n ['US']: 'USD'\n },\n taxLabel: {\n ['NZ']: 'GST',\n ['AU']: 'GST',\n ['UK']: 'VAT',\n ['US']: 'GST'\n },\n};","import {Options} from '../Interfaces/options';\nimport {wrap} from './wrap';\nimport {ClassNames} from '../Interfaces/class-names';\nimport {Locale, Currency} from '../Interfaces/locale';\n\nconst templates = {\n container({classNames: {containerOuter}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: containerOuter,\n });\n },\n inputContainer({classNames: {inputContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: inputContainer,\n });\n },\n domainSearch({classNames: {inputContainer, domainInput, searchButton}}: Options): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: inputContainer,\n });\n\n const input = Object.assign(document.createElement('input'), {\n className: domainInput,\n placeholder: 'Search for a domain',\n });\n\n const button = Object.assign(document.createElement('div'), {\n className: searchButton,\n });\n\n const button_container = Object.assign(document.createElement('div'), {\n className: 'custombutt_block',\n });\n\n const button_content = Object.assign(document.createElement('div'), {\n className: 'button-content custombutt_link',\n textContent: 'Search',\n });\n\n button_container.appendChild(button_content);\n button.appendChild(button_container);\n\n wrap(input, container);\n wrap(button, container);\n\n return container;\n },\n loadingBar({classNames: {loadingBarContainer, loadingBar}}: Options): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: loadingBarContainer,\n });\n\n const loading = Object.assign(document.createElement('span'), {\n className: loadingBar,\n });\n\n wrap(loading, container);\n return container;\n },\n popupSearch({\n classNames: {\n inputContainer,\n domainInput,\n searchButton,\n searchButtonCustom,\n },\n }: Options): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: inputContainer,\n });\n\n const input = Object.assign(document.createElement('input'), {\n className: domainInput,\n placeholder: 'Search for a domain',\n });\n\n const button = Object.assign(document.createElement('div'), {\n className: `${searchButton} ${searchButtonCustom}`,\n innerText: 'Search',\n });\n\n button.setAttribute('color', 'grey-light');\n\n wrap(input, container);\n wrap(button, container);\n\n return container;\n },\n popupContainer({classNames: {popupContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: `${popupContainer} rs-component-shadow--popup`,\n });\n },\n domainContainer({classNames: {domainContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: domainContainer,\n });\n },\n cartContainer({classNames: {cartContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: cartContainer,\n });\n },\n cart({classNames: {cart, cartHeading}}: Options): HTMLElement {\n const shoppingCart = Object.assign(document.createElement('div'), {\n className: cart,\n });\n\n const heading = Object.assign(document.createElement('h3'), {\n textContent: 'Your cart',\n className: cartHeading,\n });\n\n shoppingCart.appendChild(heading);\n return shoppingCart;\n },\n cartContinueButton({classNames: {cartButton}}: Options): HTMLRsButtonElement {\n const button = Object.assign(document.createElement('rs-button'), {\n className: cartButton,\n textContent: 'Continue',\n });\n button.setAttribute('color', 'secondary');\n button.setAttribute('size', 'large');\n return button;\n },\n cartCaption({classNames: {cartCaption}}: Options): HTMLParagraphElement {\n return Object.assign(document.createElement('p'), {\n className: cartCaption,\n textContent: 'Your cart is currently empty',\n });\n },\n cartPriceSummary({classNames: {cartPriceSummary}}: Options, locale: Locale): HTMLParagraphElement {\n return Object.assign(document.createElement('div'), {\n className: cartPriceSummary,\n textContent: `Prices are in ${Currency.currency[locale]} and exclude ${Currency.taxLabel[locale]}`,\n });\n },\n cartRow({\n classNames: {\n cartRow,\n cartRowDomainDetailsURL,\n cartRowDomainDetails,\n cartRowDomainDetailsPrice,\n cartRowRemove,\n cartRowDomainDetailsContainer,\n }\n }: Options, domain: string, price: string): HTMLDivElement {\n const row = Object.assign(document.createElement('div'), {\n className: cartRow,\n });\n row.setAttribute('data-domain', domain);\n\n const container = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsContainer,\n });\n const domainDetails = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetails,\n });\n const domainUrl = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsURL,\n textContent: domain,\n });\n domainDetails.appendChild(domainUrl);\n const domainPrice = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsPrice,\n innerHTML: price,\n });\n container.appendChild(domainDetails);\n container.appendChild(domainPrice);\n\n const removeDomain = Object.assign(document.createElement('rs-icon'), {\n className: cartRowRemove,\n name: 'x',\n });\n removeDomain.setAttribute('size', '12');\n\n row.appendChild(container);\n row.appendChild(removeDomain);\n return row;\n },\n checkbox({classNames: {checkboxContainer, checkboxLabel, checkboxInput}}: Options, id: string, label: string): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: checkboxContainer,\n });\n \n const input = Object.assign(document.createElement('rs-checkbox'), {\n id: id,\n className: checkboxInput,\n });\n\n const labelElement = Object.assign(document.createElement('label'), {\n htmlFor: id,\n className: checkboxLabel,\n textContent: label,\n });\n \n labelElement.addEventListener('click', () => {\n input.checked = !input.checked;\n });\n \n container.appendChild(input);\n input.appendChild(labelElement);\n\n return container;\n },\n cartRows({classNames: {cartRowsContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: cartRowsContainer,\n });\n },\n searchHeading({classNames: {searchHeading}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: searchHeading,\n });\n },\n icon(classNames: Partial<ClassNames>, className: string): HTMLRsIconElement {\n const icon = Object.assign(document.createElement('rs-icon'), {\n className,\n });\n icon.setAttribute('size', '32');\n return icon;\n },\n searchResultText({classNames: {searchResultCaption}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: searchResultCaption,\n });\n },\n searchResultsContainer({\n classNames: {\n searchAlternativeContainer,\n searchAlternativeHeader,\n searchPreferredHeader,\n searchAlternativeContainerTitle,\n searchAlternativeContainerContent,\n domainSearchContainer,\n },\n }: Options, locale: Locale, title = 'Other great alternatives', rowType: 'preferred' | 'alternative'): HTMLDivElement {\n const headerContainer = Object.assign(document.createElement('div'), {\n className: rowType === 'preferred' ? searchPreferredHeader : searchAlternativeHeader,\n });\n const header = Object.assign(document.createElement('div'), {\n className: searchAlternativeContainerTitle,\n textContent: title,\n });\n const content = Object.assign(document.createElement('div'), {\n className: searchAlternativeContainerContent,\n textContent: `Prices are in ${Currency.currency[locale]} and exclude ${Currency.taxLabel[locale]}`,\n });\n const container = Object.assign(document.createElement('div'), {\n className: rowType === 'preferred' ? searchAlternativeContainer : `${searchAlternativeContainer} ${domainSearchContainer}`,\n });\n wrap(header, headerContainer);\n wrap(content, headerContainer);\n wrap(headerContainer, container);\n\n return container;\n },\n searchAlternativeRow({\n classNames: {\n searchAlternativeRow,\n searchPreferredRow,\n searchPreferredPill,\n searchAlternativeRowHeader,\n searchAlternativeRowHeaderContainer,\n searchAlternativeRowFetching,\n searchAlternativePricingContainer,\n getItNowButtonPreferred,\n getItNowButtonAlternative,\n getItNowButtonContainer,\n getItNowButton,\n loadingBarContainer,\n loadingBar\n },\n }: Options, rowType: 'preferred' | 'alternative', domain: string): HTMLDivElement {\n const headerContainer = Object.assign(document.createElement('div'), {\n className: searchAlternativeRowHeaderContainer,\n });\n const header = Object.assign(document.createElement('div'), {\n className: searchAlternativeRowHeader,\n });\n if (rowType === 'preferred') {\n const pill = Object.assign(document.createElement('span'), {\n className: searchPreferredPill,\n textContent: 'It\\'s Available',\n });\n wrap(pill, headerContainer);\n }\n wrap(header, headerContainer);\n const price = Object.assign(document.createElement('div'), {\n className: searchAlternativePricingContainer,\n });\n\n const getItNowContainer = Object.assign(document.createElement('div'), {\n className: getItNowButtonContainer,\n });\n\n const button = Object.assign(document.createElement('div'), {\n className: getItNowButton,\n });\n button.setAttribute('data-domain', domain);\n if (rowType === 'preferred') {\n button.classList.add(getItNowButtonPreferred);\n } else {\n button.classList.add(getItNowButtonAlternative);\n }\n\n const loadingContainer = Object.assign(document.createElement('div'), {\n className: loadingBarContainer,\n });\n\n const loading = Object.assign(document.createElement('span'), {\n className: loadingBar,\n });\n\n wrap(loading, loadingContainer);\n wrap(loadingContainer, button);\n wrap(button, getItNowContainer);\n\n const row = Object.assign(document.createElement('div'), {\n className: `${searchAlternativeRow} ${rowType === 'preferred' ? `${searchPreferredRow}` : ''} ${searchAlternativeRowFetching}`,\n });\n wrap(headerContainer, row);\n wrap(price, row);\n wrap(getItNowContainer, row);\n\n return row;\n },\n};\n\nexport default templates;","import { ClassNames } from '../Interfaces/class-names';\nimport { Options } from '../Interfaces/options';\n\nconst namespace = 'dc__';\n\nconst DEFAULT_CLASSNAMES: ClassNames = {\n element: `${namespace}checker`,\n containerOuter: `${namespace}container`,\n inputContainer: `${namespace}input-container`,\n inputContainerSearching: `${namespace}input-container--searching`,\n domainInput: `${namespace}domain-input`,\n searchButton: `${namespace}search-button`,\n searchButtonCustom: `${namespace}search-button--custom`,\n\n loadingBarContainer: `${namespace}loading-bar-container`,\n loadingBar: `${namespace}loading-bar`,\n\n popupContainer: `${namespace}popup-container`,\n domainContainer: `${namespace}domain-container`,\n popupContainerActive: `${namespace}popup-container--active`,\n popupSearchContainer: `${namespace}popup-search-container`,\n popupClose: `${namespace}popup-close`,\n popupSearchSpinner: `${namespace}popup-search-spinner`,\n searchHeading: `${namespace}search-heading`,\n searchAgain: `${namespace}search-again`,\n searchAgainActive: `${namespace}search-again--active`,\n searchResultCaption: `${namespace}search-result-caption`,\n searchResultCaptionPrice: `${namespace}search-result-caption__price`,\n searchResultCaptionActive: `${namespace}search-result-caption--active`,\n\n searchAlternativeContainer: `${namespace}search-alternatives`,\n searchAlternativeContainerTitle: `${namespace}search-alternatives__title`,\n searchAlternativeContainerContent: `${namespace}search-alternatives__content`,\n searchAlternativeContainerActive: `${namespace}search-alternatives--active`,\n searchAlternativeHeader: `${namespace}search-alternatives__header`,\n searchAlternativeRow: `${namespace}search-alternatives__row`,\n\n searchPreferredHeader: `${namespace}search-alternatives__preferred-header`,\n searchPreferredRow: `${namespace}search-preferred__row`,\n searchPreferredPill: `${namespace}search-preferred__pill`,\n\n getItNowButtonContainer: `${namespace}get-it-now-button-container`,\n getItNowButton: `${namespace}get-it-now-button`,\n getItNowButtonPreferred: `${namespace}get-it-now-button--preferred`,\n getItNowButtonAlternative: `${namespace}get-it-now-button--alternative`,\n getItNowButtonSelected: `${namespace}get-it-now-button--selected`,\n getItNowButtonUnavailable: `${namespace}get-it-now-button--unavailable`,\n getItNowButtonLoading: `${namespace}get-it-now-button--loading`,\n\n domainSearchContainer: `${namespace}search-alternatives-container`,\n\n cartContainer: `${namespace}cart-container`,\n cart: `${namespace}cart`,\n cartHeading: `${namespace}cart-heading`,\n cartCaption: `${namespace}cart-caption`,\n cartButton: `${namespace}cart-button`,\n cartRow: `${namespace}cart-row`,\n cartRowsContainer: `${namespace}cart-rows-container`,\n cartRowRemove: `${namespace}cart-row-remove`,\n cartRowDomainDetails: `${namespace}cart-row__domain-details`,\n cartRowDomainDetailsURL: `${namespace}cart-row__domain-details-url`,\n cartRowDomainDetailsContainer: `${namespace}cart-row__domain-details__container`,\n cartRowDomainDetailsPrice: `${namespace}cart-row__domain-details-price`,\n cartPriceSummary: `${namespace}cart-price-summary`,\n\n searchAlternativeRowUnavailable: `${namespace}search-alternatives__row--unavailable`,\n searchAlternativeRowFetching: `${namespace}search-alternatives__row--fetching`,\n searchAlternativeRowHeader: `${namespace}search-alternatives__row-header`,\n searchAlternativeRowHeaderContainer: `${namespace}search-alternatives__row-header-container`,\n searchAlternativeDomainSuffix: `${namespace}search-alternatives__domain-suffix`,\n searchAlternativePricingContainer: `${namespace}search-alternatives__pricing-container`,\n searchAlternativePricing: `${namespace}search-alternatives__pricing`,\n searchAlternativePricingDiscount: `${namespace}search-alternatives__pricing-discount`,\n searchAlternativePricingBlurb: `${namespace}search-alternatives__pricing-blurb`,\n\n checkboxContainer: `${namespace}checkbox-container`,\n checkboxLabel: `${namespace}checkbox-label`,\n checkboxInput: `${namespace}checkbox-input`,\n\n};\n\nexport const DEFAULT_CONFIG: Options = {\n classNames: DEFAULT_CLASSNAMES,\n container: '.stack',\n fetchURL: null\n};\n","import { load } from 'recaptcha-v3';\nimport DomainChecker from '../index';\n\nexport interface DomainSuggestions {\n prefix: string;\n suffixes: string[];\n}\n\nexport interface DomainResponse {\n currency: string;\n taxLabel: string;\n isAvailable: boolean;\n formattedPrice: string;\n formattedYearlyPrice: string | null;\n success: boolean;\n error: string;\n domainSuggestions: DomainSuggestions;\n}\n\nexport const FetchDomain = async (domainName: string, locale: string, limit = 5): Promise<DomainResponse> => {\n const url = window.location.hostname.includes('rocketspark.com') ? DomainChecker.PRODUCTION_FETCH : DomainChecker.DEVELOPMENT_FETCH;\n try {\n const recaptcha = await load('6Lejtv4fAAAAAMB4Q6niV4sWFo7deAYes9M9ikNT');\n const token = await recaptcha.execute('domainRegister');\n const rsKey = new URLSearchParams(location.search).get('rsKey');\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n countryCode: locale,\n domain: domainName,\n rsKey: rsKey,\n suggestionsLimit: limit.toString(),\n 'g-recaptcha-response': token\n })\n });\n return response.json();\n } catch (err) {\n console.error(err);\n throw new Error(err);\n }\n};\n","import { Locale } from \"../Interfaces/locale\";\n\nexport const localeTld: Record<Locale, string> = {\n 'NZ': '.co.nz',\n 'AU': '.com.au',\n 'UK': '.co.uk',\n 'US': '.com',\n}","import {ClassNames} from '../Interfaces/class-names';\nimport {FetchDomain} from '../Helpers/Fetch';\nimport {Options} from '../Interfaces/options';\nimport {Locale} from '../Interfaces/locale';\nimport {localeTld} from '../Helpers/localeTld';\nimport templates from '../Helpers/templates';\n\nexport default class DomainSearch {\n public readonly element: HTMLElement;\n public readonly input: HTMLRsInputElement;\n private readonly button: HTMLRsButtonElement;\n private classNames: ClassNames;\n private readonly locale: Locale;\n private readonly searchAgain: HTMLRsIconElement;\n\n public constructor({\n element,\n config: {classNames,},\n locale\n }: {\n element: HTMLElement;\n config: Partial<Options>;\n locale: Locale\n }) {\n this.classNames = classNames;\n this.element = element;\n this.locale = locale;\n\n this.input = this.element.querySelector(`.${this.classNames.domainInput}`);\n this.searchAgain = Object.assign(document.createElement('rs-icon'), {\n className: this.classNames.searchAgain,\n });\n this.searchAgain.setAttribute('name', 'x');\n this.searchAgain.setAttribute('size', '12');\n this.button = this.element.querySelector(`.${this.classNames.searchButton}`);\n\n this.input.insertAdjacentElement('afterend', this.searchAgain);\n\n this.addEventListeners();\n }\n\n public showSearchAgain (): void {\n this.searchAgain.classList.add(this.classNames.searchAgainActive);\n }\n\n\n public setDomain(domain: string): this {\n this.input.value = domain;\n return this;\n }\n\n public setLoading(loading: boolean): void {\n if (!this.button.classList.contains(this.classNames.searchButtonCustom)) {\n return;\n }\n if (loading) {\n const loadingBar = this.getTemplate('loadingBar');\n this.button.innerHTML = '';\n this.button.appendChild(loadingBar);\n } else {\n this.button.innerHTML = 'Search';\n }\n }\n\n private addEventListeners(): void {\n this.input?.addEventListener('keyup', (event) => {\n this.input.removeAttribute('has-error');\n this.element.dispatchEvent(new CustomEvent('domainSearchInput'));\n if (event.key === 'Enter') {\n this.submit();\n }\n });\n\n this.button?.addEventListener('click', this.submit.bind(this));\n\n this.searchAgain.addEventListener('click', () => {\n this.element.dispatchEvent(new CustomEvent('domainSearchAgain'));\n });\n }\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n\n public submit(): void {\n if (this.input.value === '') {\n this.input.setAttribute('has-error', 'true');\n return;\n }\n\n this.input.value = this.input.value.toLocaleLowerCase();\n this.input.value = this.input.value.replace('www.', '');\n\n if (!this.input.value.includes('.')) {\n this.input.value += localeTld[this.locale];\n }\n\n this.input.value = this.input.value.replace(/ /g, '');\n\n this.element.dispatchEvent(new CustomEvent('domainSearchStart', {detail: this.input.value}));\n this.element.classList.add(this.classNames.inputContainerSearching);\n this.input.blur();\n this.setLoading(true);\n FetchDomain(this.input.value, this.locale).then(({\n isAvailable,\n formattedPrice,\n success,\n error,\n domainSuggestions\n }) => {\n this.setLoading(false);\n this.element.dispatchEvent(new CustomEvent('domainSearchFinish', {\n detail: {\n success,\n isAvailable,\n formattedPrice,\n error,\n domainSuggestions\n }\n }));\n }).catch(() => {\n this.element.dispatchEvent(new CustomEvent('domainSearchFinish', {\n detail: {\n success: false,\n isAvailable: false,\n formattedPrice: null\n }\n }));\n }).finally(() => {\n this.element.classList.remove(this.classNames.inputContainerSearching);\n });\n }\n}\n","\n(function(){if(\"undefined\"!==typeof window&&void 0!==window.Reflect&&void 0!==window.customElements){var a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)};HTMLElement.prototype=a.prototype;HTMLElement.prototype.constructor=HTMLElement;Object.setPrototypeOf(HTMLElement,a)}})();\nexport * from '../dist/esm/polyfills/index.js';\nexport * from '../dist/esm/loader.js';\n","export default class SearchHeading {\n public set heading(value: string) {\n this._heading = value;\n this.element.textContent = this._heading;\n }\n\n public readonly element: HTMLRsHeaderElement;\n private _heading = 'Checking your domain...';\n\n public constructor({\n element\n }: {\n element: HTMLRsHeaderElement;\n }) {\n this.element = element;\n\n this.element.textContent = this._heading;\n }\n}\n","import {ClassNames} from '../Interfaces/class-names';\n\nexport default class SearchResultCaption {\n public set price(value: string | null) {\n this._price = value;\n if (value === null) {\n this.removeMessage();\n } else if (value === 'unavailable') {\n this.setMessage('This domain is already taken. Please try an alternative option');\n } else {\n this.setMessage(`${this.base} <strong class=\"${this.classNames.searchResultCaptionPrice}\">${this._price}</strong>`);\n }\n }\n\n public readonly element: HTMLRsHeaderElement;\n private _price: string;\n private readonly base = 'You can get this domain now for';\n private classNames: ClassNames;\n\n public constructor({\n element,\n classNames\n }: {\n element: HTMLRsHeaderElement;\n classNames: ClassNames\n }) {\n this.element = element;\n this.classNames = classNames;\n }\n\n public setMessage(message: string): this {\n this.element.innerHTML = message;\n this.element.classList.add(this.classNames.searchResultCaptionActive);\n return this;\n }\n\n public removeMessage(): this {\n this.element.innerHTML = '';\n this.element.classList.remove(this.classNames.searchResultCaptionActive);\n return this;\n }\n}\n","import {ClassNames} from '../Interfaces/class-names';\nimport {DomainResponse, FetchDomain} from '../Helpers/Fetch';\nimport {wrap} from '../Helpers/wrap';\nimport {Locale} from '../Interfaces/locale';\nimport Cart from './Cart';\n\nexport default class SearchAlternativeRow {\n public readonly element: HTMLRsHeaderElement;\n private readonly classNames: ClassNames;\n private readonly header: HTMLRsHeaderElement;\n private readonly prefix: string;\n private readonly suffix: string;\n private readonly getItNow: HTMLSpanElement;\n private readonly domain: string;\n private locale: Locale;\n private cart: Cart;\n private pricing: HTMLDivElement;\n private blurb: HTMLSpanElement;\n private domainDetails: DomainResponse;\n\n public constructor({\n element,\n prefix,\n suffix,\n classNames,\n locale,\n cart,\n }: {\n element: HTMLRsHeaderElement;\n prefix: string;\n suffix: string;\n classNames: ClassNames;\n locale: Locale;\n cart: Cart;\n }) {\n this.element = element;\n this.prefix = prefix;\n this.suffix = suffix;\n this.locale = locale;\n this.cart = cart;\n this.domain = this.prefix + this.suffix;\n this.classNames = classNames;\n this.header = this.element.querySelector(\n `.${this.classNames.searchAlternativeRowHeader}`\n );\n this.getItNow = this.element.querySelector(\n `.${this.classNames.getItNowButton}`\n );\n this.pricing = this.element.querySelector(\n `.${this.classNames.searchAlternativePricingContainer}`\n );\n\n this.build();\n this.fetchDetails();\n }\n\n private build(): void {\n this.header.innerHTML = this.buildDomain();\n }\n\n private buildDomain(): string {\n return `${this.prefix}<span class=\"${this.classNames.searchAlternativeDomainSuffix}\">${this.suffix}</span>`;\n }\n\n private addListeners(): void {\n this.element.addEventListener('click', () => {\n if (!this.getItNow) {\n console.error('getItNow element not found');\n return;\n }\n\n if (this.getItNow.classList.contains(this.classNames.getItNowButtonSelected)) {\n // Revert to original state and remove domain from array\n this.getItNow.classList.remove(this.classNames.getItNowButtonSelected);\n this.getItNow.innerHTML = 'Get it now';\n // Remove domain from the shopping cart\n this.cart.removeDomain(this.domain);\n } else {\n // Change to selected state with tick icon and add domain to array\n this.getItNow.textContent = '';\n this.getItNow.classList.add(this.classNames.getItNowButtonSelected);\n this.getItNow.innerHTML = '<rs-icon name=\"tick\" color=\"white\"></rs-icon>';\n this.cart.addDomain(this.domain, this.domainDetails);\n }\n });\n // Check if the domain is already in the cart\n if (this.cart.isInCart(this.domain)) {\n this.getItNow.classList.add(this.classNames.getItNowButtonSelected);\n this.getItNow.innerHTML = '<rs-icon name=\"tick\" color=\"white\"></rs-icon>';\n }\n }\n\n private fetchDetails(): void {\n FetchDomain(this.domain, this.locale, 0)\n .then((domainResponse) => {\n const {isAvailable, formattedPrice, formattedYearlyPrice, success} = domainResponse;\n\n if (!success) {\n this.element.remove();\n this.domainDetails = null;\n }\n this.domainDetails = domainResponse;\n\n this.element.classList.remove(this.classNames.searchAlternativeRowFetching);\n this.getItNow.textContent = 'Get it now';\n if (!isAvailable) {\n this.element.classList.add(this.classNames.searchAlternativeRowUnavailable);\n this.getItNow.classList.add(this.classNames.getItNowButtonUnavailable);\n this.getItNow.textContent = 'UNAVAILABLE';\n this.getItNow.setAttribute('disabled', 'true');\n const mainContainer = document.querySelector(`.${this.classNames.domainSearchContainer}`);\n if (mainContainer) {\n mainContainer.appendChild(this.element);\n }\n return;\n }\n\n if (formattedYearlyPrice && formattedYearlyPrice !== formattedPrice) {\n this.pricing.innerHTML = `\n <div><span class=\"${this.classNames.searchAlternativePricingDiscount}\">${formattedYearlyPrice}</span> <span class=\"${this.classNames.searchAlternativePricing}\">${formattedPrice}</span></div>\n `;\n\n this.blurb = Object.assign(document.createElement('div'), {\n textContent: 'For the first year',\n className: this.classNames.searchAlternativePricingBlurb,\n });\n } else {\n this.pricing.innerHTML = `\n <div class=\"${this.classNames.searchAlternativePricing}\">${formattedPrice}</div>\n `;\n this.blurb = Object.assign(document.createElement('div'), {\n textContent: 'Per year',\n className: this.classNames.searchAlternativePricingBlurb,\n });\n }\n wrap(this.blurb, this.pricing);\n\n this.addListeners();\n })\n .catch(() => {\n this.element.remove();\n });\n }\n}\n","import {ClassNames} from '../Interfaces/class-names';\nimport SearchAlternativeRow from './SearchAlternativeRow';\nimport templates from '../Helpers/templates';\nimport {wrap} from '../Helpers/wrap';\nimport {DomainSuggestions} from '../Helpers/Fetch';\nimport {Locale} from '../Interfaces/locale';\nimport Cart from './Cart';\n\nexport default class SearchAlternatives {\n public readonly element: HTMLRsHeaderElement;\n private readonly classNames: ClassNames;\n private readonly locale: Locale;\n private readonly rowType: 'preferred' | 'alternative';\n private readonly cart: Cart;\n\n public constructor({\n element,\n classNames,\n locale,\n rowType = 'alternative',\n cart,\n }: {\n element: HTMLRsHeaderElement,\n classNames: ClassNames,\n locale: Locale,\n rowType: 'preferred' | 'alternative',\n cart: Cart,\n }) {\n this.element = element;\n this.classNames = classNames;\n this.locale = locale;\n this.rowType = rowType;\n this.cart = cart;\n }\n\n public showDomains(suggestions: DomainSuggestions): this {\n if (suggestions === undefined) {\n return;\n }\n const suffixes = suggestions.suffixes ?? [];\n this.removeAllRows();\n if (suffixes.length === 0) {\n return;\n }\n this.element.style.display = 'block';\n\n this.element.classList.add(this.classNames.searchAlternativeContainerActive);\n suffixes.forEach(alternativeDomain => {\n const row = new SearchAlternativeRow({\n element: this.getTemplate('searchAlternativeRow', this.rowType, suggestions.prefix + alternativeDomain),\n prefix: suggestions.prefix,\n suffix: alternativeDomain,\n classNames: this.classNames,\n locale: this.locale,\n cart: this.cart,\n });\n wrap(row.element, this.element);\n });\n return this;\n }\n\n private removeAllRows(): void {\n this.element.querySelectorAll(`.${this.classNames.searchAlternativeRow}`).forEach(row => {\n row.remove();\n });\n }\n\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n}\n","\ndeclare global {\n interface Window {\n dataLayer: any;\n }\n}\n\nlet logging = false;\n\nexport function logEvent(\n name: string, \n params: { [key: string]: string | string[] }\n): void {\n if (!window.dataLayer && logging === false) {\n console.warn('dataLayer is not defined, gtag.js not included. Logging to console instead.');\n logging = true;\n }\n\n if (logging) {\n console.log(name, params);\n return;\n }\n\n window.dataLayer.push({event: name, ...params});\n}","import {wrap} from '../Helpers/wrap';\nimport templates from '../Helpers/templates';\nimport DomainChecker from '../index';\nimport {ClassNames} from '../Interfaces/class-names';\nimport {DomainResponse} from '../Helpers/Fetch';\nimport {Locale} from '../Interfaces/locale';\nimport { logEvent } from '../Helpers/analytics';\n\nexport default class Cart {\n public readonly containerElement: HTMLElement;\n private readonly cartElement: HTMLElement;\n private emailCheckbox: HTMLDivElement;\n private websiteCheckbox: HTMLDivElement;\n private cartButton: HTMLElement;\n private cartRows: HTMLElement;\n private emptyCartMessage: HTMLParagraphElement;\n private priceSummary: HTMLParagraphElement;\n private cart: { [key: string]: DomainResponse } = {};\n private readonly classNames: ClassNames;\n private readonly locale: Locale;\n\n public constructor(container: HTMLElement, cart: HTMLElement, classNames: ClassNames, locale: Locale) {\n this.containerElement = container;\n this.cartElement = cart;\n this.locale = locale;\n this.classNames = classNames;\n this.build();\n }\n\n public isInCart(domain: string): boolean {\n return !!this.cart[domain];\n }\n\n public addDomain(domain: string, domainDetails: DomainResponse): void {\n\n if (!domain) {\n console.error('No domain provided when adding to cart');\n return;\n }\n if (this.isInCart(domain)) {\n console.error('Domain already in cart');\n return;\n }\n this.cart[domain] = domainDetails;\n const domainElement = this.getTemplate('cartRow', domain, domainDetails.formattedPrice);\n domainElement.querySelector(`.${this.classNames.cartRowRemove}`)?.addEventListener('click', () => {\n this.removeDomain(domain);\n this.resetGetItNowButton(domain);\n });\n const firstChild = this.cartRows.firstChild;\n if (firstChild) {\n this.cartRows.insertBefore(domainElement, firstChild);\n } else {\n this.cartRows.appendChild(domainElement);\n }\n this.updateCartDisplayState();\n }\n\n\n public removeDomain(domain: string): void {\n if (!domain) {\n console.error('No domain provided when removing from cart');\n return;\n }\n delete this.cart[domain];\n const domainElement = this.cartElement.querySelector(`[data-domain=\"${domain}\"]`);\n if (domainElement) {\n domainElement.remove();\n }\n this.updateCartDisplayState();\n }\n\n private resetGetItNowButton(domain: string): void {\n const button = document.querySelector(`.${this.classNames.getItNowButton}[data-domain=\"${domain}\"]`);\n if (button) {\n button.classList.remove(`${this.classNames.getItNowButtonSelected}`);\n button.textContent = 'Get it Now';\n }\n }\n\n private updateCartDisplayState(): void {\n if (Object.keys(this.cart).length > 0) {\n this.cartButton.style.display = 'block';\n this.websiteCheckbox.style.display = 'block';\n this.emailCheckbox.style.display = 'block';\n this.priceSummary.style.display = 'block';\n this.emptyCartMessage.style.display = 'none';\n } else {\n this.cartButton.style.display = 'none';\n this.priceSummary.style.display = 'none';\n this.emailCheckbox.style.display = 'none';\n this.websiteCheckbox.style.display = 'none';\n this.emptyCartMessage.style.display = 'block';\n }\n }\n\n private build(): void {\n this.cartButton = this.getTemplate('cartContinueButton');\n this.priceSummary = this.getTemplate('cartPriceSummary', this.locale);\n this.emptyCartMessage = this.getTemplate('cartCaption');\n this.emailCheckbox = this.getTemplate('checkbox', 'checkbox', 'I’ll also need Business Email');\n this.websiteCheckbox = this.getTemplate('checkbox', 'checkbox', 'Add a website - 30 day free trial');\n this.cartRows = this.getTemplate('cartRows');\n this.updateCartDisplayState();\n this.cartButton.addEventListener('click', () => {\n const domains: string[] = Object.keys(this.cart);\n logEvent('domains_cart_continue', { domains });\n const domainsString = domains.join('|');\n const url = window.location.hostname.includes('rocketspark.com')\n ? DomainChecker.PRODUCTION_GET_IT_NOW\n : DomainChecker.DEVELOPMENT_GET_IT_NOW;\n window.location.href = url + domainsString;\n let websiteChecked = (this.websiteCheckbox.getElementsByTagName('rs-checkbox').item(0).checked) ? 'Yes' : 'No';\n let emailChecked = (this.emailCheckbox.getElementsByTagName('rs-checkbox').item(0).checked) ? 'Yes' : 'No';\n if (websiteChecked === 'Yes') {\n logEvent('domains_website_checked', { websiteChecked });\n }\n if (emailChecked === 'Yes') {\n logEvent('domains_email_checked', { emailChecked });\n }\n });\n wrap(this.emptyCartMessage, this.cartElement);\n wrap(this.cartRows, this.cartElement);\n wrap(this.websiteCheckbox, this.cartElement);\n wrap(this.emailCheckbox, this.cartElement);\n wrap(this.cartButton, this.cartElement);\n wrap(this.priceSummary, this.cartElement);\n wrap(this.cartElement, this.containerElement);\n }\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n\n}\n\n","import {ClassNames} from '../Interfaces/class-names';\nimport {Options} from '../Interfaces/options';\nimport {wrap} from '../Helpers/wrap';\nimport SearchHeading from './SearchHeading';\nimport templates from '../Helpers/templates';\nimport DomainSearch from './DomainSearch';\nimport SearchResultCaption from './SearchResultCaption';\nimport DomainChecker from '../index';\nimport {DomainResponse, DomainSuggestions} from '../Helpers/Fetch';\nimport SearchAlternatives from './SearchAlternatives';\nimport {Locale} from '../Interfaces/locale';\nimport Cart from './Cart';\n\n\nexport default class PopupContainer {\n public readonly element: HTMLElement;\n public domainSearch: DomainSearch;\n private readonly domainsElement: HTMLElement;\n private readonly cart: Cart;\n private readonly classNames: ClassNames;\n private readonly locale: Locale;\n private readonly fetchURL: string;\n private heading: SearchHeading;\n\n private searchResultText: SearchResultCaption;\n private closeIcon: HTMLRsIconElement;\n private domainAlternatives: SearchAlternatives;\n private domainPreferred: SearchAlternatives;\n\n\n public constructor({\n element,\n config: {classNames, fetchURL},\n locale\n }: {\n element: HTMLElement;\n config: Options;\n locale: Locale\n }) {\n this.fetchURL = fetchURL;\n this.locale = locale;\n this.classNames = classNames;\n this.element = element;\n this.domainsElement = this.getTemplate('domainContainer');\n this.cart = new Cart(this.getTemplate('cartContainer'), this.getTemplate('cart'), this.classNames, this.locale,);\n wrap(this.domainsElement, this.element);\n wrap(this.cart.containerElement, this.element);\n\n this.build();\n }\n\n public setLoading(loading: boolean): void {\n this.domainSearch.setLoading(loading);\n this.domainAlternatives.element.style.display = loading ? 'none' : 'block';\n }\n\n public open(): this {\n wrap(this.element, document.body);\n setTimeout(() => {\n this.element.classList.add(this.classNames.popupContainerActive);\n });\n document.querySelector('#shadow')?.classList.add('dc__checker-open');\n return this;\n }\n\n public close(): this {\n document.querySelector('#shadow')?.classList.remove('dc__checker-open');\n this.element.classList.remove(this.classNames.popupContainerActive);\n setTimeout(() => {\n this.element.remove();\n this.resetLoadingUi();\n }, 150);\n return this;\n }\n\n\n public setHeading(heading: string): this {\n this.heading.heading = heading;\n return this;\n }\n\n public setPrice(price?: string): this {\n this.searchResultText.price = price;\n return this;\n }\n\n public setCaptionMessage(message: string): this {\n this.searchResultText.setMessage(message);\n return this;\n }\n\n public setDomain(domain: string): this {\n this.domainSearch.setDomain(domain);\n return this;\n }\n\n public showSearchAgain(): void {\n this.domainSearch.showSearchAgain();\n }\n\n public showAndFetchDomainRows(domainDetail: DomainResponse): this {\n const suggestions = domainDetail.domainSuggestions;\n if (domainDetail.isAvailable) {\n this.domainPreferred.element.style.display = 'block';\n const domain = this.domainSearch.input.value;\n const preferredSuggestion: DomainSuggestions = {\n prefix: domain.split('.')[0],\n suffixes: [domain.substring(domain.indexOf('.'))]\n };\n // This shows the preferred domain\n this.domainPreferred.showDomains(preferredSuggestion);\n } else {\n this.hidePreferredDomain();\n }\n // This shows the alternative domains\n this.domainAlternatives.showDomains(suggestions);\n return this;\n }\n\n private hideSearchAlternativeRows(): void {\n const alternativeRows = this.element.querySelectorAll(`.${this.classNames.searchAlternativeContainer}`);\n alternativeRows.forEach(row => {\n (row as HTMLElement).style.display = 'none';\n });\n }\n\n private hidePreferredDomain(): void {\n this.domainPreferred.element.style.display = 'none';\n }\n\n private resetLoadingUi(message = 'Checking your domain...'): void {\n this.setHeading(message);\n this.setPrice(null);\n }\n\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n\n private build(): void {\n\n this.closeIcon = this.getTemplate('icon', this.classNames.popupClose);\n this.closeIcon.setAttribute('name', 'x');\n this.closeIcon.setAttribute('size', '24');\n this.heading = new SearchHeading({\n element: this.getTemplate('searchHeading')\n });\n\n\n const searchContainer = Object.assign(document.createElement('div'), {\n className: this.classNames.popupSearchContainer\n });\n\n this.searchResultText = new SearchResultCaption({\n element: this.getTemplate('searchResultText'),\n classNames: this.classNames\n });\n\n this.domainSearch = new DomainSearch({\n element: this.getTemplate('popupSearch'),\n config: {\n classNames: this.classNames,\n fetchURL: this.fetchURL\n },\n locale: this.locale\n });\n\n this.domainPreferred = new SearchAlternatives({\n element: this.getTemplate('searchResultsContainer', this.locale, 'Your preferred Domain', 'preferred'),\n classNames: this.classNames,\n locale: this.locale,\n rowType: 'preferred',\n cart: this.cart,\n });\n\n this.domainAlternatives = new SearchAlternatives({\n element: this.getTemplate('searchResultsContainer', this.locale),\n classNames: this.classNames,\n locale: this.locale,\n rowType: 'alternative',\n cart: this.cart,\n });\n\n wrap(this.closeIcon, this.domainsElement);\n wrap(this.heading.element, this.domainsElement);\n wrap(this.searchResultText.element, this.domainsElement);\n wrap(this.domainSearch.element, searchContainer);\n wrap(searchContainer, this.domainsElement);\n wrap(this.domainPreferred.element, this.domainsElement);\n wrap(this.domainAlternatives.element, this.domainsElement);\n\n\n this.domainSearch.element.addEventListener('domainSearchStart', event => {\n this.resetLoadingUi();\n this.hideSearchAlternativeRows();\n event.stopImmediatePropagation();\n });\n\n this.domainSearch.element.addEventListener('domainSearchFinish', (event: CustomEvent<DomainResponse>) => {\n event.stopImmediatePropagation();\n DomainChecker.setPopupStatus(this, event.detail);\n this.showAndFetchDomainRows(event.detail);\n });\n\n this.closeIcon.addEventListener('click', () => {\n this.close();\n });\n\n this.domainSearch.input.addEventListener('input', () => {\n this.resetLoadingUi('Enter a domain to register');\n });\n\n this.domainSearch.element.addEventListener('domainSearchAgain', () => {\n this.resetLoadingUi('Enter a domain to register');\n this.domainSearch.input.value = '';\n this.domainSearch.input?.focus();\n });\n }\n}\n","import { b as bootstrapLazy } from './index-3d0f28ab.js';\nexport { s as setNonce } from './index-3d0f28ab.js';\n\nconst defineCustomElements = (win, options) => {\n if (typeof window === 'undefined') return undefined;\n return bootstrapLazy([[\"rs-link-select\",[[1,\"rs-link-select\",{\"data\":[1],\"selectedItem\":[16],\"linkText\":[1025,\"link-text\"],\"linkLabel\":[1,\"link-label\"],\"allowExternalLinks\":[4,\"allow-external-links\"],\"websiteUuid\":[1,\"website-uuid\"],\"items\":[32],\"hidden\":[32],\"selectedType\":[32],\"selectedSubtype\":[32],\"open\":[64],\"close\":[64]}]]],[\"rs-side-drawer\",[[1,\"rs-side-drawer\",{\"loading\":[4],\"heading\":[1],\"subHeading\":[1,\"sub-heading\"],\"items\":[1],\"isDirty\":[4,\"is-dirty\"],\"moreContentHeading\":[1,\"more-content-heading\"],\"contentLevelOpen\":[1026,\"content-level-open\"],\"itemsArray\":[32],\"openItemHeading\":[32],\"itemOpen\":[32],\"itemOpenHandle\":[32],\"openItem\":[64]},[[0,\"closeMoreContent\",\"closeMoreContentHandler\"],[0,\"closeContent\",\"closeContentHandler\"]]]]],[\"rs-color-swatch\",[[1,\"rs-color-swatch\",{\"label\":[1],\"color\":[1],\"palettes\":[16],\"opacity\":[4],\"alignment\":[1],\"transparentButton\":[4,\"transparent-button\"],\"mode\":[1],\"width\":[1],\"internalOpacity\":[32],\"internalColor\":[32],\"setColor\":[64],\"getColor\":[64]},[[0,\"rsColorChange\",\"rsColorChangeHandler\"]]]]],[\"rs-template-picker\",[[2,\"rs-template-picker\",{\"requestUri\":[1,\"request-uri\"],\"templates\":[1],\"empty\":[1],\"industry\":[1],\"templateData\":[32],\"previewTemplate\":[32],\"previewVisible\":[32]},[[0,\"previewTemplate\",\"previewTemplateHandler\"],[0,\"useTemplate\",\"useTemplateHandler\"],[0,\"selectChange\",\"selectChangeHandler\"]]]]],[\"rs-popup\",[[1,\"rs-popup\",{\"closeButton\":[4,\"close-button\"],\"helpLink\":[8,\"help-link\"],\"heading\":[1],\"headingAlignment\":[1,\"heading-alignment\"],\"backdrop\":[4],\"backdropClose\":[4,\"backdrop-close\"],\"zIndex\":[2,\"z-index\"],\"width\":[1],\"height\":[1],\"top\":[1],\"left\":[1],\"right\":[1],\"bottom\":[1],\"transform\":[1],\"position\":[1],\"close\":[64],\"open\":[64]}]]],[\"rs-sidebar-incrementer\",[[0,\"rs-sidebar-incrementer\",{\"heading\":[1],\"step\":[2],\"value\":[1026],\"min\":[2],\"max\":[2],\"suffix\":[1],\"dropdown\":[4],\"decimalPlaces\":[2,\"decimal-places\"],\"dropdownStep\":[2,\"dropdown-step\"]}]]],[\"rs-alert\",[[1,\"rs-alert\",{\"actionLink\":[1,\"action-link\"],\"type\":[1]}]]],[\"rs-flint-popup\",[[6,\"rs-flint-popup\",{\"type\":[1],\"closeIcon\":[4,\"close-icon\"],\"backIcon\":[4,\"back-icon\"],\"steps\":[2],\"progress\":[2],\"stepActive\":[32],\"open\":[64],\"close\":[64],\"previousStep\":[64],\"nextStep\":[64]}]]],[\"rs-accordion\",[[1,\"rs-accordion\",{\"heading\":[1],\"error\":[4]}]]],[\"rs-checkbox\",[[1,\"rs-checkbox\",{\"disabled\":[4],\"checked\":[1028]}]]],[\"rs-list-item\",[[1,\"rs-list-item\",{\"heading\":[1],\"error\":[4],\"value\":[8],\"selectable\":[4],\"complete\":[4],\"showArrow\":[4,\"show-arrow\"],\"selected\":[32]}]]],[\"rs-modal\",[[1,\"rs-modal\",{\"showClose\":[4,\"show-close\"],\"open\":[64],\"close\":[64]}]]],[\"rs-multi-select-item\",[[1,\"rs-multi-select-item\",{\"selected\":[1028],\"featured\":[1028],\"value\":[1],\"width\":[1],\"error\":[4],\"showStar\":[32]}]]],[\"rs-card\",[[1,\"rs-card\",{\"disabled\":[4],\"collapsed\":[1028],\"collapsible\":[4],\"type\":[8],\"toggle\":[64],\"close\":[64],\"open\":[64]}]]],[\"rs-card-content\",[[1,\"rs-card-content\",{\"lines\":[1]}]]],[\"rs-card-header\",[[1,\"rs-card-header\",{\"flex\":[4],\"alignContent\":[1,\"align-content\"]}]]],[\"rs-col\",[[1,\"rs-col\",{\"flexGrow\":[1,\"flex-grow\"],\"flexBasis\":[1,\"flex-basis\"]}]]],[\"rs-content-placeholder\",[[0,\"rs-content-placeholder\",{\"mask\":[1],\"border\":[4],\"maskContent\":[32],\"width\":[32],\"scale\":[32]}]]],[\"rs-flint-popup-content\",[[1,\"rs-flint-popup-content\",{\"lines\":[1],\"order\":[2],\"parentType\":[1,\"parent-type\"]}]]],[\"rs-grid\",[[1,\"rs-grid\"]]],[\"rs-incrementer-option\",[[1,\"rs-incrementer-option\",{\"value\":[8]}]]],[\"rs-item-group\",[[1,\"rs-item-group\",{\"justifyContent\":[1,\"justify-content\"],\"alignItems\":[1,\"align-items\"],\"alignContent\":[1,\"align-content\"],\"justifyItems\":[1,\"justify-items\"],\"flexWrap\":[1,\"flex-wrap\"],\"gap\":[2],\"flexDirection\":[1,\"flex-direction\"],\"padding\":[4],\"flex\":[4]}]]],[\"rs-list-select\",[[1,\"rs-list-select\",{\"value\":[1032]}]]],[\"rs-loader\",[[1,\"rs-loader\"]]],[\"rs-multi-select\",[[1,\"rs-multi-select\",{\"gap\":[1],\"columns\":[2],\"width\":[1],\"selectedItems\":[1025,\"selected-items\"],\"featuredItems\":[1025,\"featured-items\"]}]]],[\"rs-overline\",[[1,\"rs-overline\"]]],[\"rs-progress-bar\",[[1,\"rs-progress-bar\",{\"size\":[1],\"type\":[1],\"value\":[1026],\"color\":[1]}]]],[\"rs-progress-circle\",[[1,\"rs-progress-circle\",{\"progress\":[2],\"size\":[1]}]]],[\"rs-radio\",[[1,\"rs-radio\",{\"checked\":[1028],\"color\":[1],\"name\":[1],\"disabled\":[4],\"value\":[8],\"button\":[1],\"justifyContent\":[1,\"justify-content\"],\"textAlign\":[1,\"text-align\"],\"editable\":[4]}]]],[\"rs-radio-group\",[[1,\"rs-radio-group\",{\"allowDeselect\":[4,\"allow-deselect\"],\"value\":[1032],\"name\":[1],\"color\":[1],\"flex\":[4],\"justifyContent\":[1,\"justify-content\"],\"flexDirection\":[1,\"flex-direction\"],\"button\":[1]}]]],[\"rs-row\",[[1,\"rs-row\",{\"wrap\":[1],\"justifyContent\":[1,\"justify-content\"]}]]],[\"rs-switch\",[[1,\"rs-switch\",{\"theme\":[1],\"on\":[1028],\"disabled\":[4]}]]],[\"rs-textarea\",[[1,\"rs-textarea\",{\"disabled\":[4],\"autoExpand\":[4,\"auto-expand\"],\"minHeight\":[2,\"min-height\"],\"maxHeight\":[2,\"max-height\"],\"rows\":[2],\"placeholder\":[1],\"hideMax\":[4,\"hide-max\"],\"hardLimit\":[2,\"hard-limit\"],\"softLimit\":[2,\"soft-limit\"],\"value\":[1025],\"richText\":[4,\"rich-text\"],\"hasError\":[4,\"has-error\"],\"required\":[4],\"charsLeft\":[32],\"hasFocus\":[32]}]]],[\"rs-tool-tip\",[[1,\"rs-tool-tip\",{\"arrow\":[1],\"arrowDirection\":[32]}]]],[\"rs-content\",[[1,\"rs-content\",{\"body\":[2],\"color\":[1],\"display\":[1]}]]],[\"rs-color-picker\",[[1,\"rs-color-picker\",{\"color\":[1],\"palettes\":[16],\"opacity\":[4],\"showPicker\":[1028,\"show-picker\"],\"position\":[1],\"display\":[1],\"transparentButton\":[4,\"transparent-button\"],\"mode\":[1],\"colorSwatches\":[32],\"setColor\":[64],\"getColor\":[64],\"show\":[64],\"hide\":[64]}]]],[\"rs-incrementer\",[[6,\"rs-incrementer\",{\"step\":[2],\"value\":[1032],\"min\":[2],\"max\":[2],\"suffix\":[1],\"dropdown\":[4],\"decimalPlaces\":[2,\"decimal-places\"],\"dropdownStep\":[1026,\"dropdown-step\"],\"customOptions\":[4,\"custom-options\"],\"isDropdownVisible\":[32],\"showDropdown\":[64],\"hideDropdown\":[64],\"toggleDropdown\":[64]},[[0,\"rsOptionClick\",\"rsOptionClickHandler\"]]]]],[\"rs-progress-step\",[[1,\"rs-progress-step\",{\"progress\":[2],\"steps\":[2],\"color\":[1]}]]],[\"rs-select_2\",[[1,\"rs-template-card\",{\"templateId\":[1,\"template-id\"],\"name\":[1],\"thumbnail\":[1],\"empty\":[4]}],[1,\"rs-select\",{\"items\":[1],\"itemsToDisplay\":[32]}]]],[\"rs-spinner\",[[1,\"rs-spinner\",{\"size\":[1],\"color\":[1],\"speed\":[2]}]]],[\"rs-caption\",[[1,\"rs-caption\",{\"color\":[1]}]]],[\"rs-item\",[[1,\"rs-item\",{\"disabled\":[4],\"href\":[1],\"rel\":[1],\"target\":[1],\"type\":[1],\"appearance\":[1],\"justifyContent\":[1,\"justify-content\"],\"alignItems\":[1,\"align-items\"],\"alignContent\":[1,\"align-content\"],\"justifyItems\":[1,\"justify-items\"],\"gap\":[2],\"flexWrap\":[1,\"flex-wrap\"],\"flexDirection\":[1,\"flex-direction\"],\"padding\":[4],\"flex\":[4]},[[0,\"rsItem\",\"rsItem\"]]]]],[\"rs-column-header_4\",[[1,\"rs-side-drawer-header\",{\"loading\":[4],\"disabled\":[4],\"panelOpen\":[4,\"panel-open\"],\"isDirty\":[4,\"is-dirty\"]}],[1,\"rs-side-drawer-item-content\",{\"itemOpen\":[4,\"item-open\"],\"heading\":[1],\"subHeading\":[1,\"sub-heading\"],\"moreContentOpen\":[4,\"more-content-open\"],\"contentLevel\":[2,\"content-level\"],\"openLevel\":[2,\"open-level\"],\"topScrollable\":[32],\"bottomScrollable\":[32]}],[1,\"rs-side-drawer-item\",{\"heading\":[1],\"icon\":[1]}],[1,\"rs-column-header\",{\"color\":[1]}]]],[\"rs-dropdown_5\",[[1,\"rs-dropdown\",{\"value\":[1025],\"items\":[1],\"type\":[1],\"size\":[1],\"maxHeight\":[1,\"max-height\"],\"searchable\":[4],\"placeholder\":[1],\"selectedIndex\":[2,\"selected-index\"],\"maxWidth\":[1,\"max-width\"],\"_items\":[32],\"selectedItem\":[32],\"filterText\":[32],\"clear\":[64]}],[6,\"rs-input\",{\"type\":[1],\"value\":[1025],\"disabled\":[4],\"readonly\":[4],\"placeholder\":[1],\"clearOnEdit\":[4,\"clear-on-edit\"],\"clearInput\":[4,\"clear-input\"],\"required\":[4],\"hideMax\":[4,\"hide-max\"],\"hardLimit\":[2,\"hard-limit\"],\"softLimit\":[2,\"soft-limit\"],\"name\":[1],\"hasError\":[4,\"has-error\"],\"textAlign\":[1,\"text-align\"],\"size\":[1],\"hasFocus\":[32],\"charsLeft\":[32],\"update\":[64],\"setFocus\":[64],\"getInputElement\":[64]}],[4,\"rs-label\",{\"color\":[1],\"position\":[1]}],[1,\"rs-toggle\",{\"currentPosition\":[32],\"setActivePosition\":[64]}],[1,\"rs-toggle-item\",{\"active\":[4]}]]],[\"color-picker_4\",[[1,\"color-picker\",{\"color\":[1],\"opacity\":[4],\"palettes\":[1],\"maxPresetDisplay\":[2,\"max-preset-display\"],\"recentColorsLabel\":[1,\"recent-colors-label\"],\"transparentButton\":[4,\"transparent-button\"],\"display\":[1],\"mode\":[1],\"currentColor\":[32],\"currentOpacity\":[32],\"palettesToDisplay\":[32],\"setColor\":[64],\"getColor\":[64],\"addToPreset\":[64]},[[0,\"opacityChange\",\"opacityChangeHandler\"],[4,\"colorPickerAddRecent\",\"colorPickerAddRecentHandler\"]]],[1,\"color-picker-color-palette\",{\"display\":[1],\"color\":[1],\"sliderOffsetWidth\":[32],\"sliderOffsetHeight\":[32],\"sliderLeft\":[32],\"sliderTop\":[32],\"paletteBackgroundStyle\":[32],\"hue\":[32],\"setHue\":[64],\"setColor\":[64]}],[1,\"color-picker-hue-slider\",{\"display\":[1],\"hue\":[2],\"_hue\":[32],\"setHue\":[64]}],[1,\"color-picker-opacity-slider\",{\"color\":[1],\"opacity\":[2],\"display\":[1],\"currentRgb\":[32],\"currentOpacity\":[32],\"setColor\":[64],\"setOpacity\":[64]}]]],[\"rs-icon\",[[1,\"rs-icon\",{\"name\":[1],\"color\":[1],\"size\":[2]}]]],[\"rs-button_3\",[[1,\"rs-button\",{\"color\":[1],\"disabled\":[4],\"href\":[1],\"rel\":[1],\"target\":[1],\"size\":[1],\"loading\":[4],\"expand\":[1],\"flexGrow\":[1,\"flex-grow\"]}],[1,\"rs-subtitle\",{\"subtitle\":[1],\"color\":[1]}],[1,\"rs-header\",{\"heading\":[1],\"color\":[1]}]]]], options);\n};\n\nexport { defineCustomElements };\n\n//# sourceMappingURL=loader.js.map","import './index.css';\nimport { Options } from './Interfaces/options';\nimport templates from './Helpers/templates';\nimport { DEFAULT_CONFIG } from './Helpers/defaults';\nimport { wrap } from './Helpers/wrap';\nimport DomainSearch from './Components/DomainSearch';\nimport { defineCustomElements } from '@rocketspark/flint-ui/loader';\nimport '@rocketspark/flint-ui/dist/rocketspark/rocketspark.css';\nimport PopupContainer from './Components/PopupContainer';\nimport { DomainResponse } from './Helpers/Fetch';\nimport { Locale } from './Interfaces/locale';\nimport { logEvent } from './Helpers/analytics';\n\n// noinspection JSIgnoredPromiseFromCall\ndefineCustomElements();\n\nclass DomainChecker {\n public static PRODUCTION_GET_IT_NOW = 'https://www.rocketspark.com/site_files/1/custom/1/packages/freeTrialRedirect.php?domainName=';\n public static DEVELOPMENT_GET_IT_NOW = 'http://blastoff.cms.localhost?signupType=domain&domainName=';\n public static PRODUCTION_FETCH = 'https://cms.rocketspark.co.nz/tools/checkDomainRegisterAvailability.php';\n public static DEVELOPMENT_FETCH = 'https://cms.cms.localhost/tools/checkDomainRegisterAvailability.php';\n private readonly element: HTMLElement;\n private readonly config: Options;\n private readonly locale: Locale;\n private readonly allowedLocales = ['NZ', 'AU', 'UK', 'US'];\n private domainSearch: DomainSearch;\n private popupContainer: PopupContainer;\n\n\n public constructor(element: HTMLElement, options: Partial<Options> = {}) {\n this.element = element;\n\n this.config = {\n ...DEFAULT_CONFIG,\n ...options,\n };\n\n const locale = this.element.dataset.locale?.toUpperCase() ?? null;\n if (locale === null || !this.allowedLocales.includes(locale)) {\n throw TypeError(\n `data-locale is a required attribute, it must a string, and it should be one of: ${this.allowedLocales.join('|')}`\n );\n }\n\n this.locale = locale as Locale;\n\n this.init();\n this.startListening();\n }\n\n public static setPopupStatus(popupContainer: PopupContainer, { success, isAvailable, formattedPrice, error }: Partial<DomainResponse>): void {\n\n if (success) {\n popupContainer.showSearchAgain();\n if (isAvailable) {\n popupContainer.setPrice(formattedPrice);\n popupContainer.setHeading('This domain is available');\n } else {\n popupContainer.setPrice('unavailable');\n popupContainer.setHeading('This domain is unavailable');\n }\n } else {\n if (error.includes('are not available for new registrations by Rocketspark')) {\n popupContainer.setHeading('This domain is unavailable');\n const message = error.replace('for new registrations by Rocketspark', 'from Rocketspark');\n popupContainer.setCaptionMessage(message);\n } else {\n popupContainer.setHeading('Please try searching again');\n popupContainer.setPrice(null);\n }\n }\n }\n\n private autofillSearchBar(): void {\n const domain = this.getDomainFromUrl();\n if (domain) {\n this.domainSearch.setDomain(domain);\n this.domainSearch.setLoading(true);\n this.domainSearch.submit();\n this.popupContainer.setPrice(null);\n this.popupContainer.open();\n this.popupContainer.setDomain(domain);\n this.popupContainer.setLoading(true);\n }\n }\n\n private getDomainFromUrl(): string | null {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('domain');\n }\n\n private init(): void {\n this.element.classList.add(this.config.classNames.element);\n const container = this.getTemplate('container');\n const inputContainer = this.getTemplate('inputContainer');\n\n this.domainSearch = new DomainSearch({\n element: this.getTemplate('domainSearch'),\n config: this.config,\n locale: this.locale\n });\n\n this.popupContainer = new PopupContainer({\n element: this.getTemplate('popupContainer'),\n config: this.config,\n locale: this.locale\n });\n\n wrap(this.domainSearch.element, inputContainer);\n wrap(inputContainer, container);\n wrap(container, this.element);\n\n this.autofillSearchBar();\n\n }\n\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, this.config, ...args);\n }\n\n private startListening(): void {\n this.domainSearch.element.addEventListener('domainSearchStart', ({ detail }: CustomEvent) => {\n logEvent('domains_search_start', { domain: detail });\n this.popupContainer.setPrice(null);\n this.popupContainer.open();\n this.popupContainer.setDomain(detail);\n this.popupContainer.setLoading(true);\n });\n this.domainSearch.element.addEventListener('domainSearchFinish', (event: CustomEvent<DomainResponse>) => {\n DomainChecker.setPopupStatus(this.popupContainer, event.detail);\n this.popupContainer.showAndFetchDomainRows(event.detail);\n this.popupContainer.setLoading(false);\n });\n }\n}\n\nexport default DomainChecker;\n\ndocument.addEventListener('DOMContentLoaded', () => {\n document\n .querySelectorAll('.rs-domain-check')\n .forEach((element: HTMLElement) => {\n new DomainChecker(element);\n });\n});\n"],"names":["root","factory","exports","module","define","amd","self","inProgress","dataWebpackPrefix","scopeId","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","queuePending","getAssetPath","path","assetUrl","URL","plt","$resourcesUrl$","origin","win","location","href","pathname","XLINK_NS","EMPTY_OBJ","isComplexType","o","queryNonceMetaTagContent","doc","_a","_b","_c","head","querySelector","getAttribute","undefined","h","nodeName","vnodeData","children","child","key","slotName","simple","lastSimple","vNodeChildren","walk","c","i","length","Array","isArray","String","$text$","push","newVNode","name","classData","className","class","Object","keys","filter","k","join","vdomFnUtils","vnode","$attrs$","$children$","$key$","$name$","tag","text","$flags$","$tag$","$elm$","Host","forEach","cb","map","convertToPublic","convertToPrivate","node","vattrs","vchildren","vkey","vname","vtag","vtext","assign","getElement","ref","getHostRef","createEvent","flags","elm","emit","detail","emitEvent","bubbles","composed","cancelable","opts","ev","ce","dispatchEvent","rootAppliedStyles","WeakMap","attachStyles","hostRef","cmpMeta","$cmpMeta$","$hostElement$","endAttachStyles","$tagName$","styleContainerNode","getScopeId","style","styles","get","nodeType","styleElm","appliedStyles","set","Set","has","createElement","innerHTML","nonce","$nonce$","setAttribute","insertBefore","add","adoptedStyleSheets","includes","addStyle","shadowRoot","getRootNode","classList","cmp","mode","setAccessor","memberName","oldValue","newValue","isSvg","isProp","isMemberInElement","ln","toLowerCase","oldClasses","parseClassList","newClasses","remove","prop","removeProperty","setProperty","isComplex","tagName","n","e","xlink","replace","removeAttributeNS","removeAttribute","setAttributeNS","slice","rel","ael","parseClassListRegex","value","split","updateElement","oldVnode","newVnode","host","oldVnodeAttrs","newVnodeAttrs","createElm","oldParentVNode","newParentVNode","childIndex","parentElm","childNode","oldVNode","createTextNode","createElementNS","appendChild","putBackInOriginalLocation","recursive","oldSlotChildNodes","childNodes","parentReferenceNode","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","parentNode","removeVnodes","index","nullifyVNodeRefs","isSameVnode","leftVNode","rightVNode","patch","oldChildren","newChildren","defaultHolder","oldCh","newCh","elmToMove","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","nextSibling","updateChildren","textContent","data","updateFallbackSlotVisibility","ilen","j","slotNameAttr","hidden","trim","relocateNodes","relocateSlotContent","hostContentNodes","relocateNodeData","isNodeLocatedInSlot","find","r","$nodeToRelocate$","$slotRefNode$","relocateNode","some","nodeToRelocate","vNode","renderVdom","renderFnResults","isInitialLoad","hostElm","$vnode$","rootVnode","hasAttribute","relocateData","orgLocationNode","parentNodeRef","insertBeforeNode","refNode","previousSibling","attachToAncestor","ancestorComponent","$onRenderResolve$","Promise","scheduleUpdate","$ancestorComponent$","writeTask","dispatchHooks","endSchedule","instance","$lazyInstance$","maybePromise","$queuedListeners$","methodName","event","safeCall","enqueue","updateComponent","fn","isPromisey","then","async","endUpdate","rc","endRender","callRender","childrenPromises","postUpdate","postUpdateComponent","all","render","consoleError","endPostUpdate","addHydratedFlag","$onReadyResolve$","appDidLoad","$onInstanceResolve$","nextTick","forceUpdate","isConnected","who","documentElement","namespace","method","arg","setValue","propName","newVal","oldVal","$instanceValues$","propValue","propType","$members$","parseFloat","areBothNaN","Number","isNaN","$watchers$","watchMethods","watchMethodName","proxyComponent","Cstr","watchers","members","entries","prototype","memberFlags","defineProperty","this","configurable","enumerable","args","$onInstancePromise$","attrNameToPropName","Map","attributeChangedCallback","attrName","_oldValue","jmp","hasOwnProperty","observedAttributes","_","m","initializeComponent","hmrVersionId","loadModule","endLoad","isProxied","endNewInstance","fireConnectedCallback","endRegisterStyles","cssText","allowCS","supportsConstructableStylesheets","CSSStyleSheet","replaceSync","registerStyle","schedule","setContentReference","contentRefElm","createComment","firstChild","disconnectInstance","bootstrapLazy","lazyBundles","options","endBootstrap","cmpTags","exclude","customElements","metaCharset","visibilityStyle","deferredConnectedCallbacks","appLoadFallback","isBootstrapping","resourcesUrl","baseURI","lazyBundle","compactMeta","$listeners$","HostElement","HTMLElement","constructor","super","registerHost","attachShadow","connectedCallback","clearTimeout","endConnected","addHostEventListeners","$onReadyPromise$","disconnectedCallback","$rmListeners$","rmListener","componentOnReady","$lazyBundleId$","setTimeout","listeners","attachParentListeners","target","getHostListenerTarget","handler","hostListenerProxy","hostListenerOpts","hostRefs","registerInstance","lazyInstance","el","console","error","cmpModules","exportName","bundleId","importedModule","window","document","raf","requestAnimationFrame","eventName","listener","addEventListener","removeEventListener","CustomEvent","queueDomReads","queueDomWrites","queueTask","queue","write","flush","consume","performance","now","promiseResolve","resolve","v","webpackAsyncContext","req","__webpack_require__","Error","code","ids","id","ReCaptchaLoader_1","load","ReCaptchaInstance_1","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","step","next","rejected","result","done","apply","__generator","body","f","y","t","g","label","sent","trys","ops","verb","Symbol","iterator","op","TypeError","call","pop","ReCaptchaInstance","siteKey","recaptchaID","recaptcha","styleContainer","execute","action","enterprise","getSiteKey","hideBadge","showBadge","removeChild","__assign","s","arguments","p","getInstance","ELoadingState","ReCaptchaLoader","getLoadingState","LOADED","LOADING","instanceSiteKey","successfulLoadingConsumers","errorLoadingRunnable","reason","setLoadingState","loader","loadScript","useRecaptchaNet","useEnterprise","renderParameters","customUrl","widgetID","doExplicitRender","grecaptcha","explicitRenderParameters","autoHideBadge","catch","state","loadingState","NOT_LOADED","_this","scriptElement","scriptBase","parametersQuery","buildQueryString","src","waitForScriptToLoad","onerror","parameters","parameterKey","callback","SCRIPT_LOAD_DELAY","ready","isEnterprise","augmentedParameters","sitekey","container","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","d","definition","chunkId","reduce","promises","u","miniCssF","globalThis","Function","obj","l","url","script","needAttach","scripts","getElementsByTagName","charset","timeout","nc","onScriptComplete","prev","onload","doneFns","bind","type","toStringTag","scriptUrl","importScripts","currentScript","toUpperCase","test","installedChunks","installedChunkData","promise","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","wrap","element","wrapper","Currency","templates","_ref","classNames","containerOuter","inputContainer","_ref2","domainSearch","_ref3","domainInput","searchButton","input","placeholder","button","button_container","button_content","loadingBar","_ref4","loadingBarContainer","loading","popupSearch","_ref5","searchButtonCustom","innerText","popupContainer","_ref6","domainContainer","_ref7","cartContainer","_ref8","cart","_ref9","cartHeading","shoppingCart","heading","cartContinueButton","_ref10","cartButton","cartCaption","_ref11","cartPriceSummary","_ref12","locale","cartRow","_ref13","domain","price","cartRowDomainDetailsURL","cartRowDomainDetails","cartRowDomainDetailsPrice","cartRowRemove","cartRowDomainDetailsContainer","row","domainDetails","domainUrl","domainPrice","removeDomain","checkbox","_ref14","checkboxContainer","checkboxLabel","checkboxInput","labelElement","htmlFor","checked","cartRows","_ref15","cartRowsContainer","searchHeading","_ref16","icon","searchResultText","_ref17","searchResultCaption","searchResultsContainer","_ref18","searchAlternativeContainer","searchAlternativeHeader","searchPreferredHeader","searchAlternativeContainerTitle","searchAlternativeContainerContent","domainSearchContainer","title","rowType","headerContainer","header","content","searchAlternativeRow","_ref19","searchPreferredRow","searchPreferredPill","searchAlternativeRowHeader","searchAlternativeRowHeaderContainer","searchAlternativeRowFetching","searchAlternativePricingContainer","getItNowButtonPreferred","getItNowButtonAlternative","getItNowButtonContainer","getItNowButton","pill","getItNowContainer","loadingContainer","DEFAULT_CONFIG","inputContainerSearching","popupContainerActive","popupSearchContainer","popupClose","popupSearchSpinner","searchAgain","searchAgainActive","searchResultCaptionPrice","searchResultCaptionActive","searchAlternativeContainerActive","getItNowButtonSelected","getItNowButtonUnavailable","getItNowButtonLoading","searchAlternativeRowUnavailable","searchAlternativeDomainSuffix","searchAlternativePricing","searchAlternativePricingDiscount","searchAlternativePricingBlurb","fetchURL","FetchDomain","domainName","limit","hostname","DomainChecker","PRODUCTION_FETCH","DEVELOPMENT_FETCH","token","rsKey","URLSearchParams","search","fetch","headers","countryCode","suggestionsLimit","toString","json","err","localeTld","DomainSearch","config","_defineProperty","insertAdjacentElement","addEventListeners","showSearchAgain","setDomain","setLoading","contains","getTemplate","submit","template","_len","_key","toLocaleLowerCase","blur","isAvailable","formattedPrice","success","domainSuggestions","finally","Reflect","a","construct","setPrototypeOf","SearchHeading","_heading","SearchResultCaption","_price","removeMessage","setMessage","base","SearchAlternativeRow","prefix","suffix","getItNow","pricing","build","fetchDetails","buildDomain","addListeners","addDomain","isInCart","domainResponse","formattedYearlyPrice","blurb","mainContainer","SearchAlternatives","showDomains","suggestions","suffixes","removeAllRows","display","alternativeDomain","querySelectorAll","logging","logEvent","params","dataLayer","warn","log","Cart","containerElement","cartElement","domainElement","resetGetItNowButton","updateCartDisplayState","websiteCheckbox","emailCheckbox","priceSummary","emptyCartMessage","domains","domainsString","PRODUCTION_GET_IT_NOW","DEVELOPMENT_GET_IT_NOW","websiteChecked","item","emailChecked","PopupContainer","domainsElement","domainAlternatives","open","close","resetLoadingUi","setHeading","setPrice","setCaptionMessage","showAndFetchDomainRows","domainDetail","domainPreferred","preferredSuggestion","substring","indexOf","hidePreferredDomain","hideSearchAlternativeRows","closeIcon","searchContainer","stopImmediatePropagation","setPopupStatus","focus","b","defineCustomElements","dataset","allowedLocales","init","startListening","autofillSearchBar","getDomainFromUrl"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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A,KAED,4BAA6B,CAC5B,KACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,6BAA8B,CAC7B,IACA,KAED,6BAA8B,CAC7B,KACA,KAED,gCAAiC,CAChC,KACA,KAED,oCAAqC,CACpC,KACA,KAED,wBAAyB,CACxB,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,oCAAqC,CACpC,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,mCAAoC,CACnC,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,qBAAsB,CACrB,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,kCAAmC,CAClC,KACA,KAED,6BAA8B,CAC7B,KACA,KAED,yBAA0B,CACzB,IACA,KAED,sBAAuB,CACtB,KACA,KAED,6BAA8B,CAC7B,KACA,IAED,gCAAiC,CAChC,GACA,IAED,8BAA+B,CAC9B,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,sBAAuB,CACtB,KACA,KAED,oBAAqB,CACpB,KACA,GAED,yBAA0B,CACzB,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,oCAAqC,CACpC,KACA,KAED,wBAAyB,CACxB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,gCAAiC,CAChC,KACA,KAED,yBAA0B,CACzB,KACA,KAED,yBAA0B,CACzB,KACA,KAGF,SAASoW,EAAoBC,GAC5B,IAAIC,EAAoB3Z,EAAEqD,EAAKqW,GAC9B,OAAO7K,QAAQ0K,UAAUzJ,MAAK,WAC7B,IAAIxH,EAAI,IAAIsR,MAAM,uBAAyBF,EAAM,KAEjD,MADApR,EAAEuR,KAAO,mBACHvR,CACP,IAGD,IAAIwR,EAAMzW,EAAIqW,GAAMK,EAAKD,EAAI,GAC7B,OAAOH,EAAoBrR,EAAEwR,EAAI,IAAIhK,MAAK,WA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F,IAAKC,KAAUF,EACblH,EAAQoH,GAAUF,EAAWE,QAG/BpH,EAAUkH,EAGZ,MAAO,CACLvkC,QAASskC,EACTjH,QAASA,EAEb,CACF,C,kCC17BAvjC,OAAO2Q,eAAe1U,EAAS,aAAc,CAAE6K,OAAO,IACtD7K,EAAQ2uC,eAAiB3uC,EAAQ4uC,kBAAe,EAChD5uC,EAAQ4uC,aAAe,IAAI35B,IAAI,CAC3B,WACA,cACA,eACA,eACA,gBACA,mBACA,WACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,gBACA,WACA,iBACA,iBACA,YACF/P,KAAI,SAAUyX,GAAO,MAAO,CAACA,EAAInT,cAAemT,EAAM,KACxD3c,EAAQ2uC,eAAiB,IAAI15B,IAAI,CAC7B,gBACA,gBACA,gBACA,gBACA,cACA,WACA,gBACA,kBACA,WACA,cACA,WACA,oBACA,gBACA,eACA,mBACA,YACA,aACA,WACA,eACA,oBACA,eACA,cACA,cACA,mBACA,YACA,aACA,aACA,sBACA,mBACA,eACA,YACA,YACA,YACA,gBACA,sBACA,iBACA,OACA,OACA,cACA,YACA,qBACA,mBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,eACA,iBACA,cACA,UACA,UACA,aACA,UACA,aACA,mBACA,mBACA,cACF/P,KAAI,SAAUyX,GAAO,MAAO,CAACA,EAAInT,cAAemT,EAAM,I,oCCrGxD,IAAIonB,EAAYpvB,MAAQA,KAAKovB,UAAa,WAStC,OARAA,EAAWhgC,OAAO6B,QAAU,SAAS+8B,GACjC,IAAK,IAAInM,EAAGrzB,EAAI,EAAG+G,EAAI85B,UAAU5gC,OAAQD,EAAI+G,EAAG/G,IAE5C,IAAK,IAAI0xB,KADT2B,EAAIwN,UAAU7gC,GACOY,OAAOyQ,UAAUc,eAAe2G,KAAKua,EAAG3B,KACzD8N,EAAE9N,GAAK2B,EAAE3B,IAEjB,OAAO8N,CACX,EACOoB,EAASxB,MAAM5tB,KAA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AG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,E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AG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EA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","sources":["webpack://DomainChecker/webpack/universalModuleDefinition","webpack://DomainChecker/webpack/runtime/load script","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/dist/esm/index-3d0f28ab.js","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack://DomainChecker/./node_modules/deepmerge/dist/cjs.js","webpack://DomainChecker/./node_modules/domelementtype/lib/index.js","webpack://DomainChecker/./node_modules/parse-srcset/src/parse-srcset.js","webpack://DomainChecker/./node_modules/picocolors/picocolors.browser.js","webpack://DomainChecker/./node_modules/postcss/lib/at-rule.js","webpack://DomainChecker/./node_modules/postcss/lib/comment.js","webpack://DomainChecker/./node_modules/postcss/lib/container.js","webpack://DomainChecker/./node_modules/postcss/lib/css-syntax-error.js","webpack://DomainChecker/./node_modules/postcss/lib/declaration.js","webpack://DomainChecker/./node_modules/postcss/lib/document.js","webpack://DomainChecker/./node_modules/postcss/lib/fromJSON.js","webpack://DomainChecker/./node_modules/postcss/lib/input.js","webpack://DomainChecker/./node_modules/postcss/lib/lazy-result.js","webpack://DomainChecker/./node_modules/postcss/lib/list.js","webpack://DomainChecker/./node_modules/postcss/lib/map-generator.js","webpack://DomainChecker/./node_modules/postcss/lib/no-work-result.js","webpack://DomainChecker/./node_modules/postcss/lib/node.js","webpack://DomainChecker/./node_modules/postcss/lib/parse.js","webpack://DomainChecker/./node_modules/postcss/lib/parser.js","webpack://DomainChecker/./node_modules/postcss/lib/postcss.js","webpack://DomainChecker/./node_modules/postcss/lib/previous-map.js","webpack://DomainChecker/./node_modules/postcss/lib/processor.js","webpack://DomainChecker/./node_modules/postcss/lib/result.js","webpack://DomainChecker/./node_modules/postcss/lib/root.js","webpack://DomainChecker/./node_modules/postcss/lib/rule.js","webpack://DomainChecker/./node_modules/postcss/lib/stringifier.js","webpack://DomainChecker/./node_modules/postcss/lib/stringify.js","webpack://DomainChecker/./node_modules/postcss/lib/symbols.js","webpack://DomainChecker/./node_modules/postcss/lib/tokenize.js","webpack://DomainChecker/./node_modules/postcss/lib/warn-once.js","webpack://DomainChecker/./node_modules/postcss/lib/warning.js","webpack://DomainChecker/./node_modules/recaptcha-v3/dist/ReCaptcha.js","webpack://DomainChecker/./node_modules/recaptcha-v3/dist/ReCaptchaInstance.js","webpack://DomainChecker/./node_modules/recaptcha-v3/dist/ReCaptchaLoader.js","webpack://DomainChecker/./node_modules/sanitize-html/index.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/dom-serializer/lib/foreignNames.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/dom-serializer/lib/index.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domhandler/lib/index.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domhandler/lib/node.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/feeds.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/helpers.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/index.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/legacy.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/manipulation.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/querying.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/stringify.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/domutils/lib/traversal.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/decode.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/decode_codepoint.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/encode.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/escape.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/generated/decode-data-html.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/generated/decode-data-xml.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/generated/encode-html.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/entities/lib/index.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/htmlparser2/lib/Parser.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/htmlparser2/lib/Tokenizer.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/htmlparser2/lib/index.js","webpack://DomainChecker/./node_modules/sanitize-html/node_modules/is-plain-object/dist/is-plain-object.js","webpack://DomainChecker/./node_modules/nanoid/non-secure/index.cjs","webpack://DomainChecker/webpack/bootstrap","webpack://DomainChecker/webpack/runtime/define property getters","webpack://DomainChecker/webpack/runtime/ensure chunk","webpack://DomainChecker/webpack/runtime/get javascript chunk filename","webpack://DomainChecker/webpack/runtime/get mini-css chunk filename","webpack://DomainChecker/webpack/runtime/global","webpack://DomainChecker/webpack/runtime/hasOwnProperty shorthand","webpack://DomainChecker/webpack/runtime/make namespace object","webpack://DomainChecker/webpack/runtime/publicPath","webpack://DomainChecker/webpack/runtime/jsonp chunk loading","webpack://DomainChecker/./src/lib/Helpers/wrap.ts","webpack://DomainChecker/./src/lib/Interfaces/locale.ts","webpack://DomainChecker/./src/lib/Helpers/templates.ts","webpack://DomainChecker/./src/lib/Helpers/defaults.ts","webpack://DomainChecker/./src/lib/Helpers/Fetch.ts","webpack://DomainChecker/./src/lib/Helpers/localeTld.ts","webpack://DomainChecker/./src/lib/Components/DomainSearch.ts","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/loader/index.js","webpack://DomainChecker/./src/lib/Components/SearchHeading.ts","webpack://DomainChecker/./src/lib/Components/SearchResultCaption.ts","webpack://DomainChecker/./src/lib/Helpers/sanitize.ts","webpack://DomainChecker/./src/lib/Components/SearchAlternativeRow.ts","webpack://DomainChecker/./src/lib/Components/SearchAlternatives.ts","webpack://DomainChecker/./src/lib/Helpers/analytics.ts","webpack://DomainChecker/./src/lib/Components/Cart.ts","webpack://DomainChecker/./src/lib/Components/PopupContainer.ts","webpack://DomainChecker/./node_modules/@rocketspark/flint-ui/dist/esm/loader.js","webpack://DomainChecker/./src/lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DomainChecker\"] = factory();\n\telse\n\t\troot[\"DomainChecker\"] = factory();\n})(self, function() {\nreturn ","var inProgress = {};\nvar dataWebpackPrefix = \"DomainChecker:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","const NAMESPACE = 'rocketspark';\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet queuePending = false;\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst createTime = (fnName, tagName = '') => {\n {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n {\n return () => {\n return;\n };\n }\n};\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\n/**\n * Check whether a value is a 'complex type', defined here as an object or a\n * function.\n *\n * @param o the value to check\n * @returns whether it's a complex type or not\n */\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n // normalize class / classname attributes\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\n/**\n * A utility function for creating a virtual DOM node from a tag and some\n * possible text content.\n *\n * @param tag the tag for this element\n * @param text possible text content for the node\n * @returns a newly-minted virtual DOM node\n */\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\n/**\n * Check whether a given node is a Host node or not\n *\n * @param node the virtual DOM node to check\n * @returns whether it's a Host node or not\n */\nconst isHost = (node) => node && node.$tag$ === Host;\n/**\n * Implementation of {@link d.FunctionalUtilities} for Stencil's VDom.\n *\n * Note that these functions convert from {@link d.VNode} to\n * {@link d.ChildNode} to give functional component developers a friendly\n * interface.\n */\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\n/**\n * Convert a {@link d.VNode} to a {@link d.ChildNode} in order to present a\n * friendlier public interface (hence, 'convertToPublic').\n *\n * @param node the virtual DOM node to convert\n * @returns a converted child node\n */\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\n/**\n * Convert a {@link d.ChildNode} back to an equivalent {@link d.VNode} in\n * order to use the resulting object in the virtual DOM. The initial object was\n * likely created as part of presenting a public API, so converting it back\n * involved making it 'private' again (hence, `convertToPrivate`).\n *\n * @param node the child node to convert\n * @returns a converted virtual DOM node\n */\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * <my-cmp prop-val={0}></my-cmp>\n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (propType & 2 /* MEMBER_FLAGS.Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = (ref) => (getHostRef(ref).$hostElement$ );\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail,\n });\n },\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode) => {\n var _a;\n const scopeId = getScopeId(cmpMeta);\n const style = styles.get(scopeId);\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n styleElm.setAttribute('nonce', nonce);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta);\n if (flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n/**\n * When running a VDom render set properties present on a VDom node onto the\n * corresponding HTML element.\n *\n * Note that this function has special functionality for the `class`,\n * `style`, `key`, and `ref` attributes, as well as event handlers (like\n * `onClick`, etc). All others are just passed through as-is.\n *\n * @param elm the HTMLElement onto which attributes should be set\n * @param memberName the name of the attribute to set\n * @param oldValue the old value for the attribute\n * @param newValue the new value for the attribute\n * @param isSvg whether we're in an svg context or not\n * @param flags bitflags for Vdom variables\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (memberName === 'style') {\n // update style attribute, css properties and values\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (memberName === 'key')\n ;\n else if (memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if ((!isProp ) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // <my-cmp on-click> // listens for \"click\"\n // <my-cmp on-Click> // listens for \"Click\"\n // <my-cmp on-ionChange> // listens for \"ionChange\"\n // <my-cmp on-EVENTS> // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the <input> caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in <svg>\n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (!useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n doc.createTextNode('');\n }\n else {\n if (!isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n );\n if (isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n {\n updateElement(null, newVNode, isSvgMode);\n }\n if (isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting <svg> element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting <foreignObject> element\n isSvgMode = true;\n }\n }\n }\n {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\n/**\n * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and\n * add them to the DOM in the appropriate place.\n *\n * @param parentElm the DOM node which should be used as a parent for the new\n * DOM nodes\n * @param before a child of the `parentElm` which the new children should be\n * inserted before (optional)\n * @param parentVNode the parent virtual DOM node\n * @param vnodes the new child virtual DOM nodes to produce DOM nodes for\n * @param startIdx the index in the child virtual DOM nodes at which to start\n * creating DOM nodes (inclusive)\n * @param endIdx the index in the child virtual DOM nodes at which to stop\n * creating DOM nodes (inclusive)\n */\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, referenceNode(before) );\n }\n }\n }\n};\n/**\n * Remove the DOM elements corresponding to a list of {@link d.VNode} objects.\n * This can be used to, for instance, clean up after a list of children which\n * should no longer be shown.\n *\n * This function also handles some of Stencil's slot relocation logic.\n *\n * @param vnodes a list of virtual DOM nodes to remove\n * @param startIdx the index at which to start removing nodes (inclusive)\n * @param endIdx the index at which to stop removing nodes (inclusive)\n */\nconst removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n nullifyVNodeRefs(vnode);\n if (elm) {\n {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `<div><p><span>HEY</span></p></div>`\n * newVNode: `<div><p><span>THERE</span></p></div>`\n *\n * Then when comparing the children of the `<div>` tag we check the equality\n * of the VNodes corresponding to the `<p>` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `<div><element-one /><element-two /></div>`\n * newVNode: `<div><element-two /><element-one /></div>`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // <old-start-node />\n // <some-intervening-node />\n // <old-end-node />\n // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here\n // <next-sibling />\n //\n // If instead `oldEndVnode.$elm$` has no sibling then we just want to put\n // the node for `oldStartVnode` at the end of the children of\n // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there\n // aren't any siblings, and passing `null` to `Node.insertBefore` will\n // append it to the children of the parent element.\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // case: \"Vnode moved left\"\n //\n // We've found that the first node in our window on the new children is\n // the same VNode as the _last_ node in our window on the old children.\n // Visually, this is the layout of these two nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^\n //\n // In this situation we need to patch `newStartVnode` onto `oldEndVnode`\n // (which will handle updating any changed attributes, reconciling their\n // children etc) but we also need to move the DOM node to which\n // `oldEndVnode` corresponds.\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n // We've already checked above if `oldStartVnode` and `newStartVnode` are\n // the same node, so since we're here we know that they are not. Thus we\n // can move the element for `oldEndVnode` _before_ the element for\n // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the\n // future.\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // Here we do some checks to match up old and new nodes based on the\n // `$key$` attribute, which is set by putting a `key=\"my-key\"` attribute\n // in the JSX for a DOM element in the implementation of a Stencil\n // component.\n //\n // First we check to see if there are any nodes in the array of old\n // children which have the same key as the first node in the new\n // children.\n idxInOld = -1;\n {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n // We found a node in the old children which matches up with the first\n // node in the new children! So let's deal with that\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n // the tag doesn't match so we'll need a new DOM element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n // invalidate the matching old node so that we won't try to update it\n // again later on\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // We either didn't find an element in the old children that matches\n // the key of the first new child OR the build is not using `key`\n // attributes at all. In either case we need to create a new element\n // for the new node.\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n // if we created a new node then handle inserting it to the DOM\n {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n // we have some more new nodes to add which don't match up with old nodes\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (newStartIdx > newEndIdx) {\n // there are nodes in the `oldCh` array which no longer correspond to nodes\n // in the new array, so lets remove them (which entails cleaning up the\n // relevant DOM nodes)\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\n/**\n * Compare two VNodes to determine if they are the same\n *\n * **NB**: This function is an equality _heuristic_ based on the available\n * information set on the two VNodes and can be misleading under certain\n * circumstances. In particular, if the two nodes do not have `key` attrs\n * (available under `$key$` on VNodes) then the function falls back on merely\n * checking that they have the same tag.\n *\n * So, in other words, if `key` attrs are not set on VNodes which may be\n * changing order within a `children` array or something along those lines then\n * we could obtain a false negative and then have to do needless re-rendering\n * (i.e. we'd say two VNodes aren't equal when in fact they should be).\n *\n * @param leftVNode the first VNode to check\n * @param rightVNode the second VNode to check\n * @returns whether they're equal or not\n */\nconst isSameVnode = (leftVNode, rightVNode) => {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (leftVNode.$tag$ === 'slot') {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n // this will be set if components in the build have `key` attrs set on them\n {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n }\n return false;\n};\nconst referenceNode = (node) => {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nconst parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;\n/**\n * Handle reconciling an outdated VNode with a new one which corresponds to\n * it. This function handles flushing updates to the DOM and reconciling the\n * children of the two nodes (if any).\n *\n * @param oldVNode an old VNode whose DOM element and children we want to update\n * @param newVNode a new VNode representing an updated version of the old one\n */\nconst patch = (oldVNode, newVNode) => {\n const elm = (newVNode.$elm$ = oldVNode.$elm$);\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode.$children$;\n const tag = newVNode.$tag$;\n const text = newVNode.$text$;\n let defaultHolder;\n if (text === null) {\n {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n {\n if (tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n // so we need to call `updateChildren` to reconcile them\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if ((defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nconst updateFallbackSlotVisibility = (elm) => {\n // tslint:disable-next-line: prefer-const\n const childNodes = elm.childNodes;\n let childNode;\n let i;\n let ilen;\n let j;\n let slotNameAttr;\n let nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n nodeType = childNodes[j].nodeType;\n if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {\n // this sibling node is from a different component OR is a named fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||\n (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nconst relocateNodes = [];\nconst relocateSlotContent = (elm) => {\n // tslint:disable-next-line: prefer-const\n let childNode;\n let node;\n let hostContentNodes;\n let slotNameAttr;\n let relocateNodeData;\n let j;\n let i = 0;\n const childNodes = elm.childNodes;\n const ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nconst isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\n/**\n * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by\n * calling them with `null`. This signals that the DOM element corresponding to\n * the VDom node has been removed from the DOM.\n *\n * @param vNode a virtual DOM node\n */\nconst nullifyVNodeRefs = (vNode) => {\n {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);\n }\n};\n/**\n * The main entry point for Stencil's virtual DOM-based rendering engine\n *\n * Given a {@link d.HostRef} container and some virtual DOM nodes, this\n * function will handle creating a virtual DOM tree with a single root, patching\n * the current virtual DOM tree onto an old one (if any), dealing with slot\n * relocation, and reflecting attributes.\n *\n * @param hostRef data needed to root and render the virtual DOM tree, such as\n * the DOM node into which it should be rendered.\n * @param renderFnResults the virtual DOM nodes to be rendered\n * @param isInitialLoad whether or not this is the first call after page load\n */\nconst renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n // if `renderFnResults` is a Host node then we can use it directly. If not,\n // we need to call `h` again to wrap the children of our component in a\n // 'dummy' Host node (well, an empty vnode) since `renderVdom` assumes\n // implicitly that the top-level vdom node is 1) an only child and 2)\n // contains attrs that need to be set on the host element.\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n // On the first render and *only* on the first render we want to check for\n // any attributes set on the host element which are also set on the vdom\n // node. If we find them, we override the value on the VDom node attrs with\n // the value from the host element, which allows developers building apps\n // with Stencil components to override e.g. the `role` attribute on a\n // component even if it's already set on the `Host`.\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n // We have a special implementation in `setAccessor` for `style` and\n // `class` which reconciles values coming from the VDom with values\n // already present on the DOM element, so we don't want to override those\n // attributes on the VDom tree with values from the host element if they\n // are present.\n //\n // Likewise, `ref` and `key` are special internal values for the Stencil\n // runtime and we don't want to override those either.\n if (hostElm.hasAttribute(key) && !['key', 'ref', 'style', 'class'].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm );\n {\n scopeId = hostElm['s-sc'];\n }\n {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n let relocateData;\n let nodeToRelocate;\n let orgLocationNode;\n let parentNodeRef;\n let insertBeforeNode;\n let refNode;\n let i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode =\n doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||\n nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\nconst attachToAncestor = (hostRef, ancestorComponent) => {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));\n }\n};\nconst scheduleUpdate = (hostRef, isInitialLoad) => {\n {\n hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestor component or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return writeTask(dispatch) ;\n};\n/**\n * Dispatch initial-render and update lifecycle hooks, enqueuing calls to\n * component lifecycle methods like `componentWillLoad` as well as\n * {@link updateComponent}, which will kick off the virtual DOM re-render.\n *\n * @param hostRef a reference to a host DOM node\n * @param isInitialLoad whether we're on the initial load or not\n * @returns an empty Promise which is used to enqueue a series of operations for\n * the component\n */\nconst dispatchHooks = (hostRef, isInitialLoad) => {\n const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n const instance = hostRef.$lazyInstance$ ;\n // We're going to use this variable together with `enqueue` to implement a\n // little promise-based queue. We start out with it `undefined`. When we add\n // the first function to the queue we'll set this variable to be that\n // function's return value. When we attempt to add subsequent values to the\n // queue we'll check that value and, if it was a `Promise`, we'll then chain\n // the new function off of that `Promise` using `.then()`. This will give our\n // queue two nice properties:\n //\n // 1. If all functions added to the queue are synchronous they'll be called\n // synchronously right away.\n // 2. If all functions added to the queue are asynchronous they'll all be\n // called in order after `dispatchHooks` exits.\n let maybePromise;\n if (isInitialLoad) {\n {\n hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));\n hostRef.$queuedListeners$ = undefined;\n }\n }\n {\n // If `componentWillLoad` returns a `Promise` then we want to wait on\n // whatever's going on in that `Promise` before we launch into\n // rendering the component, doing other lifecycle stuff, etc. So\n // in that case we assign the returned promise to the variable we\n // declared above to hold a possible 'queueing' Promise\n maybePromise = safeCall(instance, 'componentWillLoad');\n }\n }\n {\n maybePromise = enqueue(maybePromise, () => safeCall(instance, 'componentWillRender'));\n }\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\n/**\n * This function uses a Promise to implement a simple first-in, first-out queue\n * of functions to be called.\n *\n * The queue is ordered on the basis of the first argument. If it's\n * `undefined`, then nothing is on the queue yet, so the provided function can\n * be called synchronously (although note that this function may return a\n * `Promise`). The idea is that then the return value of that enqueueing\n * operation is kept around, so that if it was a `Promise` then subsequent\n * functions can be enqueued by calling this function again with that `Promise`\n * as the first argument.\n *\n * @param maybePromise either a `Promise` which should resolve before the next function is called or an 'empty' sentinel\n * @param fn a function to enqueue\n * @returns either a `Promise` or the return value of the provided function\n */\nconst enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn) : fn();\n/**\n * Check that a value is a `Promise`. To check, we first see if the value is an\n * instance of the `Promise` global. In a few circumstances, in particular if\n * the global has been overwritten, this is could be misleading, so we also do\n * a little 'duck typing' check to see if the `.then` property of the value is\n * defined and a function.\n *\n * @param maybePromise it might be a promise!\n * @returns whether it is or not\n */\nconst isPromisey = (maybePromise) => maybePromise instanceof Promise ||\n (maybePromise && maybePromise.then && typeof maybePromise.then === 'function');\n/**\n * Update a component given reference to its host elements and so on.\n *\n * @param hostRef an object containing references to the element's host node,\n * VDom nodes, and other metadata\n * @param instance a reference to the underlying host element where it will be\n * rendered\n * @param isInitialLoad whether or not this function is being called as part of\n * the first render cycle\n */\nconst updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n const rc = elm['s-rc'];\n if (isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map((cb) => cb());\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n {\n const childrenPromises = (_a = elm['s-p']) !== null && _a !== void 0 ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\n/**\n * Handle making the call to the VDom renderer with the proper context given\n * various build variables\n *\n * @param hostRef an object containing references to the element's host node,\n * VDom nodes, and other metadata\n * @param instance a reference to the underlying host element where it will be\n * rendered\n * @param elm the Host element for the component\n * @param isInitialLoad whether or not this function is being called as part of\n * @returns an empty promise\n */\nconst callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;\n }\n {\n {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n }\n catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nconst postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime('postUpdate', tagName);\n const instance = hostRef.$lazyInstance$ ;\n const ancestorComponent = hostRef.$ancestorComponent$;\n {\n safeCall(instance, 'componentDidRender');\n }\n if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;\n {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n {\n safeCall(instance, 'componentDidLoad');\n }\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n }\n else {\n {\n safeCall(instance, 'componentDidUpdate');\n }\n endPostUpdate();\n }\n {\n hostRef.$onInstanceResolve$(elm);\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nconst forceUpdate = (ref) => {\n {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected &&\n (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n};\nconst appDidLoad = (who) => {\n // on appload\n // we have finish the first big initial render\n {\n addHydratedFlag(doc.documentElement);\n }\n nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));\n};\nconst safeCall = (instance, method, arg) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nconst addHydratedFlag = (elm) => elm.classList.add('hydrated')\n ;\nconst getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nconst setValue = (ref, propName, newVal, cmpMeta) => {\n // check our new property value against our internal value\n const hostRef = getHostRef(ref);\n const elm = hostRef.$hostElement$ ;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = hostRef.$lazyInstance$ ;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n // explicitly check for NaN on both sides, as `NaN === NaN` is always false\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (instance) {\n // get an array of method names of watch functions to call\n if (cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map((watchMethodName) => {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if ((flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n/**\n * Attach a series of runtime constructs to a compiled Stencil component\n * constructor, including getters and setters for the `@Prop` and `@State`\n * decorators, callbacks for when attributes change, and so on.\n *\n * @param Cstr the constructor for a component that we need to process\n * @param cmpMeta metadata collected previously about the component\n * @param flags a number used to store a series of bit flags\n * @returns a reference to the same constructor passed in (but now mutated)\n */\nconst proxyComponent = (Cstr, cmpMeta, flags) => {\n if (cmpMeta.$members$) {\n if (Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n const members = Object.entries(cmpMeta.$members$);\n const prototype = Cstr.prototype;\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||\n ((flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype, memberName, {\n get() {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set(newValue) {\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n else if (flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&\n memberFlags & 64 /* MEMBER_FLAGS.Method */) {\n // proxyComponent - method\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n const ref = getHostRef(this);\n return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));\n },\n });\n }\n });\n if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {\n const attrNameToPropName = new Map();\n prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n plt.jmp(() => {\n const propName = attrNameToPropName.get(attrName);\n // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback\n // in the case where an attribute was set inline.\n // ```html\n // <my-component some-attribute=\"some-value\"></my-component>\n // ```\n //\n // There is an edge case where a developer sets the attribute inline on a custom element and then\n // programmatically changes it before it has been upgraded as shown below:\n //\n // ```html\n // <!-- this component has _not_ been upgraded yet -->\n // <my-component id=\"test\" some-attribute=\"some-value\"></my-component>\n // <script>\n // // grab non-upgraded component\n // el = document.querySelector(\"#test\");\n // el.someAttribute = \"another-value\";\n // // upgrade component\n // customElements.define('my-component', MyComponent);\n // </script>\n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n // Let the runtime know that the component has been initialized\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n {\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime();\n Cstr = await Cstr;\n endLoad();\n }\n if (!Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n if (Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n const scopeId = getScopeId(cmpMeta);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if ((// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if (ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n // fire off connectedCallback() on component instance\n if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) {\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$));\n }\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectInstance = (instance) => {\n {\n safeCall(instance, 'disconnectedCallback');\n }\n};\nconst disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) {\n disconnectInstance(hostRef.$lazyInstance$);\n }\n else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$));\n }\n }\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n const endBootstrap = createTime();\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n let appLoadFallback;\n let isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n {\n cmpMeta.$watchers$ = {};\n }\n const tagName = cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n {\n {\n self.attachShadow({ mode: 'open' });\n }\n }\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n visibilityStyle.setAttribute('nonce', nonce);\n }\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (listeners) {\n listeners.map(([flags, name, method]) => {\n const target = getHostListenerTarget(elm, flags) ;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\n/**\n * Assigns the given value to the nonce property on the runtime platform object.\n * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.\n * @param nonce The value to be assigned to the platform nonce property.\n * @returns void\n */\nconst setNonce = (nonce) => (plt.$nonce$ = nonce);\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (0, console.error)(e, el);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n const module = cmpModules.get(bundleId) ;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${''}`).then((importedModule) => {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst win = typeof window !== 'undefined' ? window : {};\nconst doc = win.document || { head: {} };\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n ;\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst flush = () => {\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\n\nexport { Host as H, getAssetPath as a, bootstrapLazy as b, createEvent as c, forceUpdate as f, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };\n\n//# sourceMappingURL=index-3d0f28ab.js.map","var map = {\n\t\"./color-picker_4.entry.js\": [\n\t\t7245,\n\t\t245\n\t],\n\t\"./rs-accordion.entry.js\": [\n\t\t2714,\n\t\t714\n\t],\n\t\"./rs-alert.entry.js\": [\n\t\t3598,\n\t\t598\n\t],\n\t\"./rs-button_3.entry.js\": [\n\t\t6540,\n\t\t540\n\t],\n\t\"./rs-caption.entry.js\": [\n\t\t194,\n\t\t194\n\t],\n\t\"./rs-card-content.entry.js\": [\n\t\t7964,\n\t\t964\n\t],\n\t\"./rs-card-header.entry.js\": [\n\t\t9420,\n\t\t420\n\t],\n\t\"./rs-card.entry.js\": [\n\t\t572,\n\t\t572\n\t],\n\t\"./rs-checkbox.entry.js\": [\n\t\t5551,\n\t\t551\n\t],\n\t\"./rs-col.entry.js\": [\n\t\t4970,\n\t\t970\n\t],\n\t\"./rs-color-picker.entry.js\": [\n\t\t278,\n\t\t278\n\t],\n\t\"./rs-color-swatch.entry.js\": [\n\t\t3208,\n\t\t208\n\t],\n\t\"./rs-column-header_4.entry.js\": [\n\t\t1567,\n\t\t567\n\t],\n\t\"./rs-content-placeholder.entry.js\": [\n\t\t5237,\n\t\t237\n\t],\n\t\"./rs-content.entry.js\": [\n\t\t6993,\n\t\t993\n\t],\n\t\"./rs-dropdown_5.entry.js\": [\n\t\t2795,\n\t\t795\n\t],\n\t\"./rs-flint-popup-content.entry.js\": [\n\t\t1404,\n\t\t404\n\t],\n\t\"./rs-flint-popup.entry.js\": [\n\t\t6588,\n\t\t588\n\t],\n\t\"./rs-grid.entry.js\": [\n\t\t2654,\n\t\t654\n\t],\n\t\"./rs-icon.entry.js\": [\n\t\t3167,\n\t\t167\n\t],\n\t\"./rs-incrementer-option.entry.js\": [\n\t\t4386,\n\t\t386\n\t],\n\t\"./rs-incrementer.entry.js\": [\n\t\t2542,\n\t\t542\n\t],\n\t\"./rs-item-group.entry.js\": [\n\t\t5847,\n\t\t847\n\t],\n\t\"./rs-item.entry.js\": [\n\t\t6833,\n\t\t833\n\t],\n\t\"./rs-link-select.entry.js\": [\n\t\t1835,\n\t\t835\n\t],\n\t\"./rs-list-item.entry.js\": [\n\t\t8616,\n\t\t616\n\t],\n\t\"./rs-list-select.entry.js\": [\n\t\t8631,\n\t\t631\n\t],\n\t\"./rs-loader.entry.js\": [\n\t\t8861,\n\t\t861\n\t],\n\t\"./rs-modal.entry.js\": [\n\t\t9697,\n\t\t697\n\t],\n\t\"./rs-multi-select-item.entry.js\": [\n\t\t3808,\n\t\t808\n\t],\n\t\"./rs-multi-select.entry.js\": [\n\t\t4514,\n\t\t514\n\t],\n\t\"./rs-overline.entry.js\": [\n\t\t938,\n\t\t938\n\t],\n\t\"./rs-popup.entry.js\": [\n\t\t1890,\n\t\t890\n\t],\n\t\"./rs-progress-bar.entry.js\": [\n\t\t2017,\n\t\t17\n\t],\n\t\"./rs-progress-circle.entry.js\": [\n\t\t66,\n\t\t66\n\t],\n\t\"./rs-progress-step.entry.js\": [\n\t\t9584,\n\t\t584\n\t],\n\t\"./rs-radio-group.entry.js\": [\n\t\t2141,\n\t\t141\n\t],\n\t\"./rs-radio.entry.js\": [\n\t\t6643,\n\t\t643\n\t],\n\t\"./rs-row.entry.js\": [\n\t\t4008,\n\t\t8\n\t],\n\t\"./rs-select_2.entry.js\": [\n\t\t8871,\n\t\t871\n\t],\n\t\"./rs-side-drawer.entry.js\": [\n\t\t9147,\n\t\t147\n\t],\n\t\"./rs-sidebar-incrementer.entry.js\": [\n\t\t6571,\n\t\t571\n\t],\n\t\"./rs-spinner.entry.js\": [\n\t\t9853,\n\t\t853\n\t],\n\t\"./rs-switch.entry.js\": [\n\t\t3810,\n\t\t810\n\t],\n\t\"./rs-template-picker.entry.js\": [\n\t\t9899,\n\t\t899\n\t],\n\t\"./rs-textarea.entry.js\": [\n\t\t5524,\n\t\t524\n\t],\n\t\"./rs-tool-tip.entry.js\": [\n\t\t4060,\n\t\t60\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 3274;\nmodule.exports = webpackAsyncContext;","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Node = require('./node')\nlet { isClean, my } = require('./symbols')\n\nlet AtRule, parse, Root, Rule\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markTreeDirty(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markTreeDirty(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markTreeDirty(i)\n\n if (!i.raws) i.raws = {}\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n\n let aside = text => text\n let mark = text => text\n let highlight = text => text\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n if (terminalHighlight) {\n highlight = text => terminalHighlight(text)\n }\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n let maxWidth = String(end).length\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20\n let subLineStart = Math.max(0, this.column - padding)\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n )\n let subLine = line.slice(subLineStart, subLineEnd)\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line\n .slice(0, Math.min(this.column - 1, padding - 1))\n .replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(subLine) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(line) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n return ' ' + aside(gutter) + highlight(line)\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Input = require('./input')\nlet PreviousMap = require('./previous-map')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { nanoid } = require('nanoid/non-secure')\nlet { isAbsolute, resolve } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\nlet terminalHighlight = require('./terminal-highlight')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let endColumn, endLine, result\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet Container = require('./container')\nlet Document = require('./document')\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nlet Result = require('./result')\nlet Root = require('./root')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\nlet warnOnce = require('./warn-once')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { dirname, relative, resolve, sep } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.startsWith('# sourceMappingURL=')) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let last, lines\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nconst Result = require('./result')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(\n index + opts.word.length,\n stringRepresentation\n )\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Input = require('./input')\nlet Parser = require('./parser')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet tokenizer = require('./tokenize')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let prev, token, type\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().startsWith('!') && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().startsWith('!')) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Container = require('./container')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet Document = require('./document')\nlet fromJSON = require('./fromJSON')\nlet Input = require('./input')\nlet LazyResult = require('./lazy-result')\nlet list = require('./list')\nlet Node = require('./node')\nlet parse = require('./parse')\nlet Processor = require('./processor')\nlet Result = require('./result.js')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet stringify = require('./stringify')\nlet Warning = require('./warning')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n let uriMatch = text.match(charsetUri) || text.match(uri)\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length))\n }\n\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet Document = require('./document')\nlet LazyResult = require('./lazy-result')\nlet NoWorkResult = require('./no-work-result')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.47'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, content, escape, next, quote\n let currentToken, escaped, escapePos, n, prev\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReCaptchaInstance = exports.getInstance = exports.load = void 0;\nvar ReCaptchaLoader_1 = require(\"./ReCaptchaLoader\");\nObject.defineProperty(exports, \"load\", { enumerable: true, get: function () { return ReCaptchaLoader_1.load; } });\nObject.defineProperty(exports, \"getInstance\", { enumerable: true, get: function () { return ReCaptchaLoader_1.getInstance; } });\nvar ReCaptchaInstance_1 = require(\"./ReCaptchaInstance\");\nObject.defineProperty(exports, \"ReCaptchaInstance\", { enumerable: true, get: function () { return ReCaptchaInstance_1.ReCaptchaInstance; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReCaptchaInstance = void 0;\nvar ReCaptchaInstance = (function () {\n function ReCaptchaInstance(siteKey, recaptchaID, recaptcha) {\n this.siteKey = siteKey;\n this.recaptchaID = recaptchaID;\n this.recaptcha = recaptcha;\n this.styleContainer = null;\n }\n ReCaptchaInstance.prototype.execute = function (action) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.recaptcha.enterprise) return [3, 2];\n return [4, this.recaptcha.enterprise.execute(this.recaptchaID, { action: action })];\n case 1:\n _a = _b.sent();\n return [3, 4];\n case 2: return [4, this.recaptcha.execute(this.recaptchaID, { action: action })];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4: return [2, _a];\n }\n });\n });\n };\n ReCaptchaInstance.prototype.getSiteKey = function () {\n return this.siteKey;\n };\n ReCaptchaInstance.prototype.hideBadge = function () {\n if (this.styleContainer !== null) {\n return;\n }\n this.styleContainer = document.createElement(\"style\");\n this.styleContainer.innerHTML =\n \".grecaptcha-badge{visibility:hidden !important;}\";\n document.head.appendChild(this.styleContainer);\n };\n ReCaptchaInstance.prototype.showBadge = function () {\n if (this.styleContainer === null) {\n return;\n }\n document.head.removeChild(this.styleContainer);\n this.styleContainer = null;\n };\n return ReCaptchaInstance;\n}());\nexports.ReCaptchaInstance = ReCaptchaInstance;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInstance = exports.load = void 0;\nvar ReCaptchaInstance_1 = require(\"./ReCaptchaInstance\");\nvar ELoadingState;\n(function (ELoadingState) {\n ELoadingState[ELoadingState[\"NOT_LOADED\"] = 0] = \"NOT_LOADED\";\n ELoadingState[ELoadingState[\"LOADING\"] = 1] = \"LOADING\";\n ELoadingState[ELoadingState[\"LOADED\"] = 2] = \"LOADED\";\n})(ELoadingState || (ELoadingState = {}));\nvar ReCaptchaLoader = (function () {\n function ReCaptchaLoader() {\n }\n ReCaptchaLoader.load = function (siteKey, options) {\n if (options === void 0) { options = {}; }\n if (typeof document === \"undefined\") {\n return Promise.reject(new Error(\"This is a library for the browser!\"));\n }\n if (ReCaptchaLoader.getLoadingState() === ELoadingState.LOADED) {\n if (ReCaptchaLoader.instance.getSiteKey() === siteKey) {\n return Promise.resolve(ReCaptchaLoader.instance);\n }\n else {\n return Promise.reject(new Error(\"reCAPTCHA already loaded with different site key!\"));\n }\n }\n if (ReCaptchaLoader.getLoadingState() === ELoadingState.LOADING) {\n if (siteKey !== ReCaptchaLoader.instanceSiteKey) {\n return Promise.reject(new Error(\"reCAPTCHA already loaded with different site key!\"));\n }\n return new Promise(function (resolve, reject) {\n ReCaptchaLoader.successfulLoadingConsumers.push(function (instance) { return resolve(instance); });\n ReCaptchaLoader.errorLoadingRunnable.push(function (reason) {\n return reject(reason);\n });\n });\n }\n ReCaptchaLoader.instanceSiteKey = siteKey;\n ReCaptchaLoader.setLoadingState(ELoadingState.LOADING);\n var loader = new ReCaptchaLoader();\n return new Promise(function (resolve, reject) {\n loader\n .loadScript(siteKey, options.useRecaptchaNet || false, options.useEnterprise || false, options.renderParameters ? options.renderParameters : {}, options.customUrl)\n .then(function () {\n ReCaptchaLoader.setLoadingState(ELoadingState.LOADED);\n var widgetID = loader.doExplicitRender(grecaptcha, siteKey, options.explicitRenderParameters\n ? options.explicitRenderParameters\n : {}, options.useEnterprise || false);\n var instance = new ReCaptchaInstance_1.ReCaptchaInstance(siteKey, widgetID, grecaptcha);\n ReCaptchaLoader.successfulLoadingConsumers.forEach(function (v) {\n return v(instance);\n });\n ReCaptchaLoader.successfulLoadingConsumers = [];\n if (options.autoHideBadge) {\n instance.hideBadge();\n }\n ReCaptchaLoader.instance = instance;\n resolve(instance);\n })\n .catch(function (error) {\n ReCaptchaLoader.errorLoadingRunnable.forEach(function (v) { return v(error); });\n ReCaptchaLoader.errorLoadingRunnable = [];\n reject(error);\n });\n });\n };\n ReCaptchaLoader.getInstance = function () {\n return ReCaptchaLoader.instance;\n };\n ReCaptchaLoader.setLoadingState = function (state) {\n ReCaptchaLoader.loadingState = state;\n };\n ReCaptchaLoader.getLoadingState = function () {\n if (ReCaptchaLoader.loadingState === null) {\n return ELoadingState.NOT_LOADED;\n }\n else {\n return ReCaptchaLoader.loadingState;\n }\n };\n ReCaptchaLoader.prototype.loadScript = function (siteKey, useRecaptchaNet, useEnterprise, renderParameters, customUrl) {\n var _this = this;\n if (useRecaptchaNet === void 0) { useRecaptchaNet = false; }\n if (useEnterprise === void 0) { useEnterprise = false; }\n if (renderParameters === void 0) { renderParameters = {}; }\n if (customUrl === void 0) { customUrl = \"\"; }\n var scriptElement = document.createElement(\"script\");\n scriptElement.setAttribute(\"recaptcha-v3-script\", \"\");\n scriptElement.setAttribute(\"async\", \"\");\n scriptElement.setAttribute(\"defer\", \"\");\n var scriptBase = \"https://www.google.com/recaptcha/api.js\";\n if (useRecaptchaNet) {\n if (useEnterprise) {\n scriptBase = \"https://recaptcha.net/recaptcha/enterprise.js\";\n }\n else {\n scriptBase = \"https://recaptcha.net/recaptcha/api.js\";\n }\n }\n else if (useEnterprise) {\n scriptBase = \"https://www.google.com/recaptcha/enterprise.js\";\n }\n if (customUrl) {\n scriptBase = customUrl;\n }\n if (renderParameters.render) {\n renderParameters.render = undefined;\n }\n var parametersQuery = this.buildQueryString(renderParameters);\n scriptElement.src = scriptBase + \"?render=explicit\" + parametersQuery;\n return new Promise(function (resolve, reject) {\n scriptElement.addEventListener(\"load\", _this.waitForScriptToLoad(function () {\n resolve(scriptElement);\n }, useEnterprise), false);\n scriptElement.onerror = function (error) {\n ReCaptchaLoader.setLoadingState(ELoadingState.NOT_LOADED);\n reject(error);\n };\n document.head.appendChild(scriptElement);\n });\n };\n ReCaptchaLoader.prototype.buildQueryString = function (parameters) {\n var parameterKeys = Object.keys(parameters);\n if (parameterKeys.length < 1) {\n return \"\";\n }\n return (\"&\" +\n Object.keys(parameters)\n .filter(function (parameterKey) {\n return !!parameters[parameterKey];\n })\n .map(function (parameterKey) {\n return parameterKey + \"=\" + parameters[parameterKey];\n })\n .join(\"&\"));\n };\n ReCaptchaLoader.prototype.waitForScriptToLoad = function (callback, useEnterprise) {\n var _this = this;\n return function () {\n if (window.grecaptcha === undefined) {\n setTimeout(function () {\n _this.waitForScriptToLoad(callback, useEnterprise);\n }, ReCaptchaLoader.SCRIPT_LOAD_DELAY);\n }\n else {\n if (useEnterprise) {\n window.grecaptcha.enterprise.ready(function () {\n callback();\n });\n }\n else {\n window.grecaptcha.ready(function () {\n callback();\n });\n }\n }\n };\n };\n ReCaptchaLoader.prototype.doExplicitRender = function (grecaptcha, siteKey, parameters, isEnterprise) {\n var augmentedParameters = __assign({ sitekey: siteKey }, parameters);\n if (parameters.container) {\n if (isEnterprise) {\n return grecaptcha.enterprise.render(parameters.container, augmentedParameters);\n }\n else {\n return grecaptcha.render(parameters.container, augmentedParameters);\n }\n }\n else {\n if (isEnterprise) {\n return grecaptcha.enterprise.render(augmentedParameters);\n }\n else {\n return grecaptcha.render(augmentedParameters);\n }\n }\n };\n ReCaptchaLoader.loadingState = null;\n ReCaptchaLoader.instance = null;\n ReCaptchaLoader.instanceSiteKey = null;\n ReCaptchaLoader.successfulLoadingConsumers = [];\n ReCaptchaLoader.errorLoadingRunnable = [];\n ReCaptchaLoader.SCRIPT_LOAD_DELAY = 25;\n return ReCaptchaLoader;\n}());\nexports.load = ReCaptchaLoader.load;\nexports.getInstance = ReCaptchaLoader.getInstance;\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.openingTagLength = 0;\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n if (options.onOpenTag) {\n options.onOpenTag(name, attribs);\n }\n\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n // We want the contents but not this tag\n if (frame.innerText && !hasText) {\n const escaped = escapeHtml(frame.innerText);\n if (options.textFilter) {\n result += options.textFilter(escaped, name);\n } else {\n result += escaped;\n }\n addedText = true;\n }\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n const isBeingEscaped = skip && (options.disallowedTagsMode === 'escape' || options.disallowedTagsMode === 'recursiveEscape');\n const shouldPreserveEscapedAttributes = isBeingEscaped && options.preserveEscapedAttributes;\n\n if (shouldPreserveEscapedAttributes) {\n each(attribs, function(value, a) {\n result += ' ' + a + '=\"' + escapeHtml((value || ''), true) + '\"';\n });\n } else if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, check if the attribute is in the allowedEmptyAttributes array.\n // If it is not in the allowedEmptyAttributes array, and it is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (!options.allowedEmptyAttributes.includes(a)) &&\n (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesRegex = allowedClassesRegexMap['*'];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex, allowedWildcardClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}', { map: false });\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n } else if (options.allowedEmptyAttributes.includes(a)) {\n result += '=\"\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n frame.openingTagLength = result.length - frame.tagPosition;\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'completelyDiscard' && !tagAllowed(tag)) {\n text = '';\n } else if ((options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else if (!addedText) {\n const escaped = escapeHtml(text, false);\n if (options.textFilter) {\n result += options.textFilter(escaped, tag);\n } else {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n if (options.onCloseTag) {\n options.onCloseTag(name, isImplied);\n }\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter) {\n const filterResult = options.exclusiveFilter(frame);\n if (filterResult === 'excludeTag') {\n if (skip) {\n // no longer escaping the tag since it's not added at all\n result = tempResult;\n tempResult = '';\n }\n // remove the opening tag from the result\n result = result.substring(0, frame.tagPosition) + result.substring(frame.tagPosition + frame.openingTagLength);\n return;\n } else if (filterResult) {\n result = result.substring(0, frame.tagPosition);\n return;\n }\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(/</g, '<')\n .replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'menu', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n allowedEmptyAttributes: [\n 'alt'\n ],\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true,\n preserveEscapedAttributes: false\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = getFeed;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentPosition = void 0;\nexports.removeSubsets = removeSubsets;\nexports.compareDocumentPosition = compareDocumentPosition;\nexports.uniqueSort = uniqueSort;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (exports.DocumentPosition = DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.testElement = testElement;\nexports.getElements = getElements;\nexports.getElementById = getElementById;\nexports.getElementsByTagName = getElementsByTagName;\nexports.getElementsByClassName = getElementsByClassName;\nexports.getElementsByTagType = getElementsByTagType;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `className`.\n *\n * @category Legacy Query Functions\n * @param className Class name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `className`.\n */\nfunction getElementsByClassName(className, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(getAttribCheck(\"class\", className), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeElement = removeElement;\nexports.replaceElement = replaceElement;\nexports.appendChild = appendChild;\nexports.append = append;\nexports.prependChild = prependChild;\nexports.prepend = prepend;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filter = filter;\nexports.find = find;\nexports.findOneChild = findOneChild;\nexports.findOne = findOne;\nexports.existsOne = existsOne;\nexports.findAll = findAll;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n /** Stack of the indices within the arrays. */\n var indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];\n for (var i = 0; i < searchedNodes.length; i++) {\n var node = searchedNodes[i];\n if ((0, domhandler_1.isTag)(node) && test(node)) {\n return node;\n }\n if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {\n var found = findOne(test, node.children, true);\n if (found)\n return found;\n }\n }\n return null;\n}\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return (Array.isArray(nodes) ? nodes : [nodes]).some(function (node) {\n return ((0, domhandler_1.isTag)(node) && test(node)) ||\n ((0, domhandler_1.hasChildren)(node) && existsOne(test, node.children));\n });\n}\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n var indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if ((0, domhandler_1.isTag)(elem) && test(elem))\n result.push(elem);\n if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n//# sourceMappingURL=querying.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOuterHTML = getOuterHTML;\nexports.getInnerHTML = getInnerHTML;\nexports.getText = getText;\nexports.textContent = textContent;\nexports.innerText = innerText;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChildren = getChildren;\nexports.getParent = getParent;\nexports.getSiblings = getSiblings;\nexports.getAttributeValue = getAttributeValue;\nexports.hasAttrib = hasAttrib;\nexports.getName = getName;\nexports.nextElementSibling = nextElementSibling;\nexports.prevElementSibling = prevElementSibling;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n };\n /** @internal */\n Parser.prototype.ontextentity = function (cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n var index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = index;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n var element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.endOpenTag = function (isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n };\n /** @internal */\n Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onselfclosingtag = function (endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n };\n Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n };\n /** @internal */\n Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var index = value.search(reNameEnd);\n var name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n };\n Parser.prototype.shiftBuffer = function () {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(_a, cbs) {\n var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n }\n Tokenizer.prototype.reset = function () {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n };\n Tokenizer.prototype.write = function (chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function () {\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n };\n /**\n * The current index within all of the written data.\n */\n Tokenizer.prototype.getIndex = function () {\n return this.index;\n };\n /**\n * The start of the current section.\n */\n Tokenizer.prototype.getSectionStart = function () {\n return this.sectionStart;\n };\n Tokenizer.prototype.stateText = function (c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n };\n /** Look for an end tag. For <title> tags, also decode entities. */\n Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkDomainChecker\"] = self[\"webpackChunkDomainChecker\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export const wrap = (\n element: HTMLElement,\n wrapper: HTMLElement = document.createElement('div')\n): HTMLElement => {\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n return wrapper.appendChild(element);\n};\n","export type Locale = 'NZ' | 'AU' | 'UK' | 'US';\nexport const Currency = {\n currency: {\n ['NZ']: 'NZD',\n ['AU']: 'AUD',\n ['UK']: 'GBP',\n ['US']: 'USD'\n },\n taxLabel: {\n ['NZ']: 'GST',\n ['AU']: 'GST',\n ['UK']: 'VAT',\n ['US']: 'GST'\n },\n};","import {Options} from '../Interfaces/options';\nimport {wrap} from './wrap';\nimport {ClassNames} from '../Interfaces/class-names';\nimport {Locale, Currency} from '../Interfaces/locale';\nimport { Pricing } from './Fetch';\nimport { sanitiseHtml } from './sanitize';\n\nconst templates = {\n container({classNames: {containerOuter}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: containerOuter,\n });\n },\n inputContainer({classNames: {inputContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: inputContainer,\n });\n },\n domainSearch({classNames: {inputContainer, domainInput, searchButton}}: Options): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: inputContainer,\n });\n\n const input = Object.assign(document.createElement('input'), {\n className: domainInput,\n placeholder: 'Search for a domain',\n });\n\n const button = Object.assign(document.createElement('div'), {\n className: searchButton,\n });\n\n const button_container = Object.assign(document.createElement('div'), {\n className: 'custombutt_block',\n });\n\n const button_content = Object.assign(document.createElement('div'), {\n className: 'button-content custombutt_link',\n textContent: 'Search',\n });\n\n button_container.appendChild(button_content);\n button.appendChild(button_container);\n\n wrap(input, container);\n wrap(button, container);\n\n return container;\n },\n loadingBar({classNames: {loadingBarContainer, loadingBar}}: Options): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: loadingBarContainer,\n });\n\n const loading = Object.assign(document.createElement('span'), {\n className: loadingBar,\n });\n\n wrap(loading, container);\n return container;\n },\n popupSearch({\n classNames: {\n inputContainer,\n domainInput,\n searchButton,\n searchButtonCustom,\n },\n }: Options): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: inputContainer,\n });\n\n const input = Object.assign(document.createElement('input'), {\n className: domainInput,\n placeholder: 'Search for a domain',\n });\n\n const button = Object.assign(document.createElement('div'), {\n className: `${searchButton} ${searchButtonCustom}`,\n innerText: 'Search',\n });\n\n button.setAttribute('color', 'grey-light');\n\n wrap(input, container);\n wrap(button, container);\n\n return container;\n },\n popupContainer({classNames: {popupContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: `${popupContainer} rs-component-shadow--popup`,\n });\n },\n domainContainer({classNames: {domainContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: domainContainer,\n });\n },\n cartContainer({classNames: {cartContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: cartContainer,\n });\n },\n cart({classNames: {cart, cartHeading, cartHeaderContainer, cartRowsContainer, cartRowsContainerCollapsed, cartHeaderCollapseButton}}: Options): HTMLElement {\n const shoppingCart = Object.assign(document.createElement('div'), {\n className: cart,\n });\n\n const headerContainer = Object.assign(document.createElement('div'), {\n className: cartHeaderContainer,\n });\n\n const heading = Object.assign(document.createElement('h3'), {\n textContent: 'Your cart',\n className: cartHeading,\n });\n\n const collapseButton = Object.assign(document.createElement('rs-icon'), {\n name: 'arrow-angled-down',\n className: cartHeaderCollapseButton,\n size: 20,\n color: 'secondary-700'\n });\n\n collapseButton.addEventListener('click', () => {\n if (document.querySelector(`.${cartRowsContainer}`)?.classList.contains(cartRowsContainerCollapsed)) {\n collapseButton.name = 'arrow-angled-down';\n } else {\n collapseButton.name = 'arrow-angled-up';\n }\n document.querySelector(`.${cartRowsContainer}`)?.classList.toggle(cartRowsContainerCollapsed);\n });\n\n headerContainer.appendChild(heading);\n headerContainer.appendChild(collapseButton);\n\n shoppingCart.appendChild(headerContainer);\n return shoppingCart;\n },\n cartContinueButton({classNames: {cartButton}}: Options): HTMLRsButtonElement {\n const button = Object.assign(document.createElement('rs-button'), {\n className: cartButton,\n textContent: 'Continue',\n });\n button.setAttribute('color', 'secondary');\n button.setAttribute('size', 'large');\n return button;\n },\n cartCaption({classNames: {cartCaption}}: Options): HTMLParagraphElement {\n return Object.assign(document.createElement('p'), {\n className: cartCaption,\n textContent: 'Your cart is currently empty',\n });\n },\n cartPriceSummary({classNames: {cartPriceSummary}}: Options, locale: Locale): HTMLParagraphElement {\n return Object.assign(document.createElement('div'), {\n className: cartPriceSummary,\n textContent: `Prices are in ${Currency.currency[locale]} and exclude ${Currency.taxLabel[locale]}`,\n });\n },\n cartRow({\n classNames: {\n cartRow,\n cartRowDomainDetailsURL,\n cartRowDomainDetails,\n cartRowDomainDetailsPrice,\n cartRowDomainDetailsPriceDiscount,\n cartRowDomainDetailsPriceDropdownContainer,\n cartRowDomainDetailsPriceDropdown,\n cartRowRemove,\n cartRowDomainDetailsContainer,\n }\n }: Options, domain: string, pricing: Pricing, formattedPrice: string): HTMLDivElement {\n const row = Object.assign(document.createElement('div'), {\n className: cartRow,\n });\n row.setAttribute('data-domain', domain);\n\n const container = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsContainer,\n });\n const domainDetails = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetails,\n });\n const domainUrl = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsURL,\n textContent: domain,\n });\n domainDetails.appendChild(domainUrl);\n const domainPrice = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsPrice,\n });\n\n const yearContainer = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsPriceDropdownContainer,\n });\n const yearDropdown = Object.assign(document.createElement('rs-dropdown'), {\n className: cartRowDomainDetailsPriceDropdown,\n items: pricing.map((value) => ({\n label: `${value.period} year${value.period === 1 ? '' : 's'} - ${value.price}`,\n value: value.period.toString(),\n })),\n size: 'small',\n value: pricing[0].period.toString(),\n });\n const priceDiscount = Object.assign(document.createElement('div'), {\n className: cartRowDomainDetailsPriceDiscount,\n textContent: pricing[0].originalPrice !== pricing[0].price ? pricing[0].originalPrice : '',\n });\n\n yearDropdown.addEventListener('rsChange', (event: CustomEvent) => {\n const target = event.target as HTMLRsDropdownElement;\n const selectedPrice = pricing.find(price => price.period === Number.parseInt(target.value));\n if (!selectedPrice) {\n return;\n }\n\n if (selectedPrice.originalPrice !== selectedPrice.price) {\n priceDiscount.textContent = selectedPrice.originalPrice;\n } else {\n priceDiscount.textContent = '';\n }\n });\n\n yearContainer.appendChild(yearDropdown);\n domainPrice.appendChild(yearContainer);\n domainPrice.appendChild(priceDiscount);\n\n container.appendChild(domainDetails);\n container.appendChild(domainPrice);\n\n const removeDomain = Object.assign(document.createElement('rs-icon'), {\n className: cartRowRemove,\n name: 'x',\n });\n removeDomain.setAttribute('size', '12');\n\n row.appendChild(container);\n row.appendChild(removeDomain);\n return row;\n },\n checkbox({classNames: {checkboxContainer, checkboxLabel, checkboxInput}}: Options, id: string, label: string): HTMLDivElement {\n const container = Object.assign(document.createElement('div'), {\n className: checkboxContainer,\n });\n \n const input = Object.assign(document.createElement('rs-checkbox'), {\n id: id,\n className: checkboxInput,\n });\n\n const labelElement = Object.assign(document.createElement('label'), {\n htmlFor: id,\n className: checkboxLabel,\n textContent: label,\n });\n \n labelElement.addEventListener('click', () => {\n input.checked = !input.checked;\n });\n \n container.appendChild(input);\n input.appendChild(labelElement);\n\n return container;\n },\n cartRows({classNames: {cartRowsContainer}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: cartRowsContainer,\n });\n },\n searchHeading({classNames: {searchHeading}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: searchHeading,\n });\n },\n icon(classNames: Partial<ClassNames>, className: string): HTMLRsIconElement {\n const icon = Object.assign(document.createElement('rs-icon'), {\n className,\n });\n icon.setAttribute('size', '32');\n return icon;\n },\n searchResultText({classNames: {searchResultCaption}}: Options): HTMLDivElement {\n return Object.assign(document.createElement('div'), {\n className: searchResultCaption,\n });\n },\n searchResultsContainer({\n classNames: {\n searchAlternativeContainer,\n searchAlternativeHeader,\n searchPreferredHeader,\n searchAlternativeContainerTitle,\n searchAlternativeContainerContent,\n domainSearchContainer,\n },\n }: Options, locale: Locale, title = 'Other great alternatives', rowType: 'preferred' | 'alternative'): HTMLDivElement {\n const headerContainer = Object.assign(document.createElement('div'), {\n className: rowType === 'preferred' ? searchPreferredHeader : searchAlternativeHeader,\n });\n const header = Object.assign(document.createElement('div'), {\n className: searchAlternativeContainerTitle,\n textContent: title,\n });\n const content = Object.assign(document.createElement('div'), {\n className: searchAlternativeContainerContent,\n textContent: `Prices are in ${Currency.currency[locale]} and exclude ${Currency.taxLabel[locale]}`,\n });\n const container = Object.assign(document.createElement('div'), {\n className: rowType === 'preferred' ? searchAlternativeContainer : `${searchAlternativeContainer} ${domainSearchContainer}`,\n });\n wrap(header, headerContainer);\n wrap(content, headerContainer);\n wrap(headerContainer, container);\n\n return container;\n },\n searchAlternativeRow({\n classNames: {\n searchAlternativeRow,\n searchPreferredRow,\n searchPreferredPill,\n searchAlternativeRowHeader,\n searchAlternativeRowHeaderContainer,\n searchAlternativeRowFetching,\n searchAlternativePricingContainer,\n getItNowButtonPreferred,\n getItNowButtonAlternative,\n getItNowButtonContainer,\n getItNowButton,\n loadingBarContainer,\n loadingBar\n },\n }: Options, rowType: 'preferred' | 'alternative', domain: string): HTMLDivElement {\n const headerContainer = Object.assign(document.createElement('div'), {\n className: searchAlternativeRowHeaderContainer,\n });\n const header = Object.assign(document.createElement('div'), {\n className: searchAlternativeRowHeader,\n });\n if (rowType === 'preferred') {\n const pill = Object.assign(document.createElement('span'), {\n className: searchPreferredPill,\n textContent: 'It\\'s Available',\n });\n wrap(pill, headerContainer);\n }\n wrap(header, headerContainer);\n const price = Object.assign(document.createElement('div'), {\n className: searchAlternativePricingContainer,\n });\n\n const getItNowContainer = Object.assign(document.createElement('div'), {\n className: getItNowButtonContainer,\n });\n\n const button = Object.assign(document.createElement('div'), {\n className: getItNowButton,\n });\n button.setAttribute('data-domain', domain);\n if (rowType === 'preferred') {\n button.classList.add(getItNowButtonPreferred);\n } else {\n button.classList.add(getItNowButtonAlternative);\n }\n\n const loadingContainer = Object.assign(document.createElement('div'), {\n className: loadingBarContainer,\n });\n\n const loading = Object.assign(document.createElement('span'), {\n className: loadingBar,\n });\n\n wrap(loading, loadingContainer);\n wrap(loadingContainer, button);\n wrap(button, getItNowContainer);\n\n const row = Object.assign(document.createElement('div'), {\n className: `${searchAlternativeRow} ${rowType === 'preferred' ? `${searchPreferredRow}` : ''} ${searchAlternativeRowFetching}`,\n });\n wrap(headerContainer, row);\n wrap(price, row);\n wrap(getItNowContainer, row);\n\n return row;\n },\n};\n\nexport default templates;","import { ClassNames } from '../Interfaces/class-names';\nimport { Options } from '../Interfaces/options';\n\nconst namespace = 'dc__';\n\nconst DEFAULT_CLASSNAMES: ClassNames = {\n element: `${namespace}checker`,\n containerOuter: `${namespace}container`,\n inputContainer: `${namespace}input-container`,\n inputContainerSearching: `${namespace}input-container--searching`,\n domainInput: `${namespace}domain-input`,\n searchButton: `${namespace}search-button`,\n searchButtonCustom: `${namespace}search-button--custom`,\n\n loadingBarContainer: `${namespace}loading-bar-container`,\n loadingBar: `${namespace}loading-bar`,\n\n popupContainer: `${namespace}popup-container`,\n domainContainer: `${namespace}domain-container`,\n popupContainerActive: `${namespace}popup-container--active`,\n popupSearchContainer: `${namespace}popup-search-container`,\n popupClose: `${namespace}popup-close`,\n popupSearchSpinner: `${namespace}popup-search-spinner`,\n searchHeading: `${namespace}search-heading`,\n searchAgain: `${namespace}search-again`,\n searchAgainActive: `${namespace}search-again--active`,\n searchResultCaption: `${namespace}search-result-caption`,\n searchResultCaptionPrice: `${namespace}search-result-caption__price`,\n searchResultCaptionActive: `${namespace}search-result-caption--active`,\n\n searchAlternativeContainer: `${namespace}search-alternatives`,\n searchAlternativeContainerTitle: `${namespace}search-alternatives__title`,\n searchAlternativeContainerContent: `${namespace}search-alternatives__content`,\n searchAlternativeContainerActive: `${namespace}search-alternatives--active`,\n searchAlternativeHeader: `${namespace}search-alternatives__header`,\n searchAlternativeRow: `${namespace}search-alternatives__row`,\n\n searchPreferredHeader: `${namespace}search-alternatives__preferred-header`,\n searchPreferredRow: `${namespace}search-preferred__row`,\n searchPreferredPill: `${namespace}search-preferred__pill`,\n\n getItNowButtonContainer: `${namespace}get-it-now-button-container`,\n getItNowButton: `${namespace}get-it-now-button`,\n getItNowButtonPreferred: `${namespace}get-it-now-button--preferred`,\n getItNowButtonAlternative: `${namespace}get-it-now-button--alternative`,\n getItNowButtonSelected: `${namespace}get-it-now-button--selected`,\n getItNowButtonUnavailable: `${namespace}get-it-now-button--unavailable`,\n getItNowButtonLoading: `${namespace}get-it-now-button--loading`,\n\n domainSearchContainer: `${namespace}search-alternatives-container`,\n\n cartContainer: `${namespace}cart-container`,\n cart: `${namespace}cart`,\n cartHeading: `${namespace}cart-heading`,\n cartHeaderContainer: `${namespace}cart-header-container`,\n cartHeaderCollapseButton: `${namespace}cart-header-collapse-button`,\n cartCaption: `${namespace}cart-caption`,\n cartButton: `${namespace}cart-button`,\n cartRow: `${namespace}cart-row`,\n cartRowsContainer: `${namespace}cart-rows-container`,\n cartRowsContainerCollapsed: `${namespace}cart-rows-container--collapsed`,\n cartRowRemove: `${namespace}cart-row-remove`,\n cartRowDomainDetails: `${namespace}cart-row__domain-details`,\n cartRowDomainDetailsURL: `${namespace}cart-row__domain-details-url`,\n cartRowDomainDetailsContainer: `${namespace}cart-row__domain-details__container`,\n cartRowDomainDetailsPrice: `${namespace}cart-row__domain-details-price`,\n cartRowDomainDetailsPriceDiscount: `${namespace}cart-row__domain-details-price-discount`,\n cartRowDomainDetailsPriceDropdown: `${namespace}cart-row__domain-details-price-dropdown`,\n cartRowDomainDetailsPriceDropdownContainer: `${namespace}cart-row__domain-details-price-dropdown-container`,\n cartPriceSummary: `${namespace}cart-price-summary`,\n\n searchAlternativeRowUnavailable: `${namespace}search-alternatives__row--unavailable`,\n searchAlternativeRowFetching: `${namespace}search-alternatives__row--fetching`,\n searchAlternativeRowHeader: `${namespace}search-alternatives__row-header`,\n searchAlternativeRowHeaderContainer: `${namespace}search-alternatives__row-header-container`,\n searchAlternativeDomainSuffix: `${namespace}search-alternatives__domain-suffix`,\n searchAlternativePricingContainer: `${namespace}search-alternatives__pricing-container`,\n searchAlternativePricing: `${namespace}search-alternatives__pricing`,\n searchAlternativePricingDiscount: `${namespace}search-alternatives__pricing-discount`,\n searchAlternativePricingBlurb: `${namespace}search-alternatives__pricing-blurb`,\n\n checkboxContainer: `${namespace}checkbox-container`,\n checkboxLabel: `${namespace}checkbox-label`,\n checkboxInput: `${namespace}checkbox-input`,\n\n};\n\nexport const DEFAULT_CONFIG: Options = {\n classNames: DEFAULT_CLASSNAMES,\n container: '.stack',\n fetchURL: null\n};\n","import { load } from 'recaptcha-v3';\nimport DomainChecker from '../index';\n\nexport interface DomainSuggestions {\n prefix: string;\n suffixes: string[];\n}\n\nexport interface Price {\n period: number;\n price: string;\n originalPrice: string;\n}\n\nexport type Pricing = Price[];\n\nexport interface DomainResponse {\n currency: string;\n taxLabel: string;\n isAvailable: boolean;\n formattedPrice: string;\n formattedYearlyPrice: string | null;\n success: boolean;\n error: string;\n pricing: Pricing;\n domainSuggestions: DomainSuggestions;\n}\n\nexport const FetchDomain = async (domainName: string, locale: string, limit = 5): Promise<DomainResponse> => {\n const url = window.location.hostname.includes('rocketspark.com') ? DomainChecker.PRODUCTION_FETCH : DomainChecker.DEVELOPMENT_FETCH;\n try {\n const recaptcha = await load('6Lejtv4fAAAAAMB4Q6niV4sWFo7deAYes9M9ikNT');\n const token = await recaptcha.execute('domainRegister');\n const rsKey = new URLSearchParams(location.search).get('rsKey');\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n countryCode: locale,\n domain: domainName,\n rsKey: rsKey,\n suggestionsLimit: limit.toString(),\n 'g-recaptcha-response': token\n })\n });\n return response.json();\n } catch (err) {\n console.error(err);\n throw new Error(err);\n }\n};\n","import { Locale } from \"../Interfaces/locale\";\n\nexport const localeTld: Record<Locale, string> = {\n 'NZ': '.co.nz',\n 'AU': '.com.au',\n 'UK': '.co.uk',\n 'US': '.com',\n}","import {ClassNames} from '../Interfaces/class-names';\nimport {FetchDomain} from '../Helpers/Fetch';\nimport {Options} from '../Interfaces/options';\nimport {Locale} from '../Interfaces/locale';\nimport {localeTld} from '../Helpers/localeTld';\nimport templates from '../Helpers/templates';\n\nexport default class DomainSearch {\n public readonly element: HTMLElement;\n public readonly input: HTMLRsInputElement;\n private readonly button: HTMLRsButtonElement;\n private classNames: ClassNames;\n private readonly locale: Locale;\n private readonly searchAgain: HTMLRsIconElement;\n\n public constructor({\n element,\n config: {classNames,},\n locale\n }: {\n element: HTMLElement;\n config: Partial<Options>;\n locale: Locale\n }) {\n this.classNames = classNames;\n this.element = element;\n this.locale = locale;\n\n this.input = this.element.querySelector(`.${this.classNames.domainInput}`);\n this.searchAgain = Object.assign(document.createElement('rs-icon'), {\n className: this.classNames.searchAgain,\n });\n this.searchAgain.setAttribute('name', 'x');\n this.searchAgain.setAttribute('size', '12');\n this.button = this.element.querySelector(`.${this.classNames.searchButton}`);\n\n this.input.insertAdjacentElement('afterend', this.searchAgain);\n\n this.addEventListeners();\n }\n\n public showSearchAgain (): void {\n this.searchAgain.classList.add(this.classNames.searchAgainActive);\n }\n\n\n public setDomain(domain: string): this {\n this.input.value = domain;\n return this;\n }\n\n public setLoading(loading: boolean): void {\n if (!this.button.classList.contains(this.classNames.searchButtonCustom)) {\n return;\n }\n if (loading) {\n const loadingBar = this.getTemplate('loadingBar');\n this.button.innerHTML = '';\n this.button.appendChild(loadingBar);\n } else {\n this.button.innerHTML = 'Search';\n }\n }\n\n private addEventListeners(): void {\n this.input?.addEventListener('keyup', (event) => {\n this.input.removeAttribute('has-error');\n this.element.dispatchEvent(new CustomEvent('domainSearchInput'));\n if (event.key === 'Enter') {\n this.submit();\n }\n });\n\n this.button?.addEventListener('click', this.submit.bind(this));\n\n this.searchAgain.addEventListener('click', () => {\n this.element.dispatchEvent(new CustomEvent('domainSearchAgain'));\n });\n }\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n\n public submit(): void {\n if (this.input.value === '') {\n this.input.setAttribute('has-error', 'true');\n return;\n }\n\n this.input.value = this.input.value.toLocaleLowerCase();\n this.input.value = this.input.value.replace('www.', '');\n\n if (!this.input.value.includes('.')) {\n this.input.value += localeTld[this.locale];\n }\n\n this.input.value = this.input.value.replace(/ /g, '');\n\n this.element.dispatchEvent(new CustomEvent('domainSearchStart', {detail: this.input.value}));\n this.element.classList.add(this.classNames.inputContainerSearching);\n this.input.blur();\n this.setLoading(true);\n FetchDomain(this.input.value, this.locale).then(({\n isAvailable,\n formattedPrice,\n success,\n error,\n domainSuggestions\n }) => {\n this.setLoading(false);\n this.element.dispatchEvent(new CustomEvent('domainSearchFinish', {\n detail: {\n success,\n isAvailable,\n formattedPrice,\n error,\n domainSuggestions\n }\n }));\n }).catch(() => {\n this.element.dispatchEvent(new CustomEvent('domainSearchFinish', {\n detail: {\n success: false,\n isAvailable: false,\n formattedPrice: null\n }\n }));\n }).finally(() => {\n this.element.classList.remove(this.classNames.inputContainerSearching);\n });\n }\n}\n","\n(function(){if(\"undefined\"!==typeof window&&void 0!==window.Reflect&&void 0!==window.customElements){var a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)};HTMLElement.prototype=a.prototype;HTMLElement.prototype.constructor=HTMLElement;Object.setPrototypeOf(HTMLElement,a)}})();\nexport * from '../dist/esm/polyfills/index.js';\nexport * from '../dist/esm/loader.js';\n","export default class SearchHeading {\n public set heading(value: string) {\n this._heading = value;\n this.element.textContent = this._heading;\n }\n\n public readonly element: HTMLRsHeaderElement;\n private _heading = 'Checking your domain...';\n\n public constructor({\n element\n }: {\n element: HTMLRsHeaderElement;\n }) {\n this.element = element;\n\n this.element.textContent = this._heading;\n }\n}\n","import {ClassNames} from '../Interfaces/class-names';\n\nexport default class SearchResultCaption {\n public set price(value: string | null) {\n this._price = value;\n if (value === null) {\n this.removeMessage();\n } else if (value === 'unavailable') {\n this.setMessage('This domain is already taken. Please try an alternative option');\n } else {\n this.setMessage(`${this.base} <strong class=\"${this.classNames.searchResultCaptionPrice}\">${this._price}</strong>`);\n }\n }\n\n public readonly element: HTMLRsHeaderElement;\n private _price: string;\n private readonly base = 'You can get this domain now for';\n private classNames: ClassNames;\n\n public constructor({\n element,\n classNames\n }: {\n element: HTMLRsHeaderElement;\n classNames: ClassNames\n }) {\n this.element = element;\n this.classNames = classNames;\n }\n\n public setMessage(message: string): this {\n this.element.innerHTML = message;\n this.element.classList.add(this.classNames.searchResultCaptionActive);\n return this;\n }\n\n public removeMessage(): this {\n this.element.innerHTML = '';\n this.element.classList.remove(this.classNames.searchResultCaptionActive);\n return this;\n }\n}\n","import * as sanitizeHtml from 'sanitize-html';\n\nexport function sanitiseHtml(html: string): string {\n return sanitizeHtml(html, {\n allowedTags: [],\n });\n}","import {ClassNames} from '../Interfaces/class-names';\nimport {DomainResponse, FetchDomain} from '../Helpers/Fetch';\nimport {wrap} from '../Helpers/wrap';\nimport {Locale} from '../Interfaces/locale';\nimport Cart from './Cart';\nimport { sanitiseHtml } from '../Helpers/sanitize';\n\nexport default class SearchAlternativeRow {\n public readonly element: HTMLRsHeaderElement;\n private readonly classNames: ClassNames;\n private readonly header: HTMLRsHeaderElement;\n private readonly prefix: string;\n private readonly suffix: string;\n private readonly getItNow: HTMLSpanElement;\n private readonly domain: string;\n private locale: Locale;\n private cart: Cart;\n private pricing: HTMLDivElement;\n private blurb: HTMLSpanElement;\n private domainDetails: DomainResponse;\n\n public constructor({\n element,\n prefix,\n suffix,\n classNames,\n locale,\n cart,\n }: {\n element: HTMLRsHeaderElement;\n prefix: string;\n suffix: string;\n classNames: ClassNames;\n locale: Locale;\n cart: Cart;\n }) {\n this.element = element;\n this.prefix = prefix;\n this.suffix = suffix;\n this.locale = locale;\n this.cart = cart;\n this.domain = this.prefix + this.suffix;\n this.classNames = classNames;\n this.header = this.element.querySelector(\n `.${this.classNames.searchAlternativeRowHeader}`\n );\n this.getItNow = this.element.querySelector(\n `.${this.classNames.getItNowButton}`\n );\n this.pricing = this.element.querySelector(\n `.${this.classNames.searchAlternativePricingContainer}`\n );\n\n this.build();\n this.fetchDetails();\n }\n\n private build(): void {\n this.header.innerHTML = this.buildDomain();\n }\n\n private buildDomain(): string {\n return `${this.prefix}<span class=\"${this.classNames.searchAlternativeDomainSuffix}\">${this.suffix}</span>`;\n }\n\n private addListeners(): void {\n this.element.addEventListener('click', () => {\n if (!this.getItNow) {\n console.error('getItNow element not found');\n return;\n }\n\n if (this.getItNow.classList.contains(this.classNames.getItNowButtonSelected)) {\n // Revert to original state and remove domain from array\n this.getItNow.classList.remove(this.classNames.getItNowButtonSelected);\n this.getItNow.innerHTML = 'Get it now';\n // Remove domain from the shopping cart\n this.cart.removeDomain(this.domain);\n } else {\n // Change to selected state with tick icon and add domain to array\n this.getItNow.textContent = '';\n this.getItNow.classList.add(this.classNames.getItNowButtonSelected);\n this.getItNow.innerHTML = '<rs-icon name=\"tick\" color=\"white\"></rs-icon>';\n this.cart.addDomain(this.domain, this.domainDetails);\n }\n });\n // Check if the domain is already in the cart\n if (this.cart.isInCart(this.domain)) {\n this.getItNow.classList.add(this.classNames.getItNowButtonSelected);\n this.getItNow.innerHTML = '<rs-icon name=\"tick\" color=\"white\"></rs-icon>';\n }\n }\n\n private fetchDetails(): void {\n FetchDomain(this.domain, this.locale, 0)\n .then((domainResponse) => {\n const {isAvailable, success, pricing} = domainResponse;\n\n if (!success) {\n this.element.remove();\n this.domainDetails = null;\n }\n this.domainDetails = domainResponse;\n\n this.element.classList.remove(this.classNames.searchAlternativeRowFetching);\n this.getItNow.textContent = 'Get it now';\n if (!isAvailable) {\n this.element.classList.add(this.classNames.searchAlternativeRowUnavailable);\n this.getItNow.classList.add(this.classNames.getItNowButtonUnavailable);\n this.getItNow.textContent = 'UNAVAILABLE';\n this.getItNow.setAttribute('disabled', 'true');\n const mainContainer = document.querySelector(`.${this.classNames.domainSearchContainer}`);\n if (mainContainer) {\n mainContainer.appendChild(this.element);\n }\n return;\n }\n\n if (pricing[0].originalPrice !== pricing[0].price) {\n this.pricing.innerHTML = `\n <div><span class=\"${this.classNames.searchAlternativePricingDiscount}\">${sanitiseHtml(pricing[0].originalPrice)}</span> <span class=\"${this.classNames.searchAlternativePricing}\">${sanitiseHtml(pricing[0].price)}</span></div>\n `; \n } else {\n this.pricing.innerHTML = `\n <div class=\"${this.classNames.searchAlternativePricing}\">${sanitiseHtml(pricing[0].price)}</div>\n `;\n }\n\n this.blurb = Object.assign(document.createElement('div'), {\n textContent: 'For the first year',\n className: this.classNames.searchAlternativePricingBlurb,\n });\n wrap(this.blurb, this.pricing);\n\n this.addListeners();\n })\n .catch(() => {\n this.element.remove();\n });\n }\n}\n","import {ClassNames} from '../Interfaces/class-names';\nimport SearchAlternativeRow from './SearchAlternativeRow';\nimport templates from '../Helpers/templates';\nimport {wrap} from '../Helpers/wrap';\nimport {DomainSuggestions} from '../Helpers/Fetch';\nimport {Locale} from '../Interfaces/locale';\nimport Cart from './Cart';\n\nexport default class SearchAlternatives {\n public readonly element: HTMLRsHeaderElement;\n private readonly classNames: ClassNames;\n private readonly locale: Locale;\n private readonly rowType: 'preferred' | 'alternative';\n private readonly cart: Cart;\n\n public constructor({\n element,\n classNames,\n locale,\n rowType = 'alternative',\n cart,\n }: {\n element: HTMLRsHeaderElement,\n classNames: ClassNames,\n locale: Locale,\n rowType: 'preferred' | 'alternative',\n cart: Cart,\n }) {\n this.element = element;\n this.classNames = classNames;\n this.locale = locale;\n this.rowType = rowType;\n this.cart = cart;\n }\n\n public showDomains(suggestions: DomainSuggestions): this {\n if (suggestions === undefined) {\n return;\n }\n const suffixes = suggestions.suffixes ?? [];\n this.removeAllRows();\n if (suffixes.length === 0) {\n return;\n }\n this.element.style.display = 'block';\n\n this.element.classList.add(this.classNames.searchAlternativeContainerActive);\n suffixes.forEach(alternativeDomain => {\n const row = new SearchAlternativeRow({\n element: this.getTemplate('searchAlternativeRow', this.rowType, suggestions.prefix + alternativeDomain),\n prefix: suggestions.prefix,\n suffix: alternativeDomain,\n classNames: this.classNames,\n locale: this.locale,\n cart: this.cart,\n });\n wrap(row.element, this.element);\n });\n return this;\n }\n\n private removeAllRows(): void {\n this.element.querySelectorAll(`.${this.classNames.searchAlternativeRow}`).forEach(row => {\n row.remove();\n });\n }\n\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n}\n","\ndeclare global {\n interface Window {\n dataLayer: any;\n }\n}\n\nlet logging = false;\n\nexport function logEvent(\n name: string, \n params: { [key: string]: string | string[] }\n): void {\n if (!window.dataLayer && logging === false) {\n console.warn('dataLayer is not defined, gtag.js not included. Logging to console instead.');\n logging = true;\n }\n\n if (logging) {\n console.log(name, params);\n return;\n }\n\n window.dataLayer.push({event: name, ...params});\n}","import {wrap} from '../Helpers/wrap';\nimport templates from '../Helpers/templates';\nimport DomainChecker from '../index';\nimport {ClassNames} from '../Interfaces/class-names';\nimport {DomainResponse} from '../Helpers/Fetch';\nimport {Locale} from '../Interfaces/locale';\nimport { logEvent } from '../Helpers/analytics';\n\nexport default class Cart {\n public readonly containerElement: HTMLElement;\n private readonly cartElement: HTMLElement;\n private emailCheckbox: HTMLDivElement;\n private websiteCheckbox: HTMLDivElement;\n private cartButton: HTMLElement;\n private cartRows: HTMLElement;\n private emptyCartMessage: HTMLParagraphElement;\n private priceSummary: HTMLParagraphElement;\n private cart: { [key: string]: DomainResponse } = {};\n private readonly classNames: ClassNames;\n private readonly locale: Locale;\n\n public constructor(container: HTMLElement, cart: HTMLElement, classNames: ClassNames, locale: Locale) {\n this.containerElement = container;\n this.cartElement = cart;\n this.locale = locale;\n this.classNames = classNames;\n this.build();\n }\n\n public isInCart(domain: string): boolean {\n return !!this.cart[domain];\n }\n\n public addDomain(domain: string, domainDetails: DomainResponse): void {\n\n if (!domain) {\n console.error('No domain provided when adding to cart');\n return;\n }\n if (this.isInCart(domain)) {\n console.error('Domain already in cart');\n return;\n }\n this.cart[domain] = domainDetails;\n const domainElement = this.getTemplate('cartRow', domain, domainDetails.pricing, domainDetails.formattedPrice);\n domainElement.querySelector(`.${this.classNames.cartRowRemove}`)?.addEventListener('click', () => {\n this.removeDomain(domain);\n this.resetGetItNowButton(domain);\n });\n const firstChild = this.cartRows.firstChild;\n if (firstChild) {\n this.cartRows.insertBefore(domainElement, firstChild);\n } else {\n this.cartRows.appendChild(domainElement);\n }\n this.updateCartDisplayState();\n }\n\n\n public removeDomain(domain: string): void {\n if (!domain) {\n console.error('No domain provided when removing from cart');\n return;\n }\n delete this.cart[domain];\n const domainElement = this.cartElement.querySelector(`[data-domain=\"${domain}\"]`);\n if (domainElement) {\n domainElement.remove();\n }\n this.updateCartDisplayState();\n }\n\n private resetGetItNowButton(domain: string): void {\n const button = document.querySelector(`.${this.classNames.getItNowButton}[data-domain=\"${domain}\"]`);\n if (button) {\n button.classList.remove(`${this.classNames.getItNowButtonSelected}`);\n button.textContent = 'Get it Now';\n }\n }\n\n private updateCartDisplayState(): void {\n if (Object.keys(this.cart).length > 0) {\n this.cartButton.style.display = 'block';\n this.websiteCheckbox.style.display = 'block';\n this.emailCheckbox.style.display = 'block';\n this.priceSummary.style.display = 'block';\n this.emptyCartMessage.style.display = 'none';\n } else {\n this.cartButton.style.display = 'none';\n this.priceSummary.style.display = 'none';\n this.emailCheckbox.style.display = 'none';\n this.websiteCheckbox.style.display = 'none';\n this.emptyCartMessage.style.display = 'block';\n }\n }\n\n private build(): void {\n this.cartButton = this.getTemplate('cartContinueButton');\n this.priceSummary = this.getTemplate('cartPriceSummary', this.locale);\n this.emptyCartMessage = this.getTemplate('cartCaption');\n this.emailCheckbox = this.getTemplate('checkbox', 'checkbox', 'I’ll also need Business Email');\n this.websiteCheckbox = this.getTemplate('checkbox', 'checkbox', 'Add a website - 30 day free trial');\n this.cartRows = this.getTemplate('cartRows');\n this.updateCartDisplayState();\n this.cartButton.addEventListener('click', () => {\n const domains: string[] = Object.keys(this.cart);\n logEvent('domains_cart_continue', { domains });\n\n const domainsWithPeriod = domains.map(domain => {\n const period = this.getSelectedDomainPeriod(domain);\n return `${domain};${period}`;\n });\n const domainsString = domainsWithPeriod.join('|');\n \n const url = window.location.hostname.includes('rocketspark.com')\n ? DomainChecker.PRODUCTION_GET_IT_NOW\n : DomainChecker.DEVELOPMENT_GET_IT_NOW;\n window.location.href = url + domainsString;\n const websiteChecked = (this.websiteCheckbox.getElementsByTagName('rs-checkbox').item(0).checked) ? 'Yes' : 'No';\n const emailChecked = (this.emailCheckbox.getElementsByTagName('rs-checkbox').item(0).checked) ? 'Yes' : 'No';\n if (websiteChecked === 'Yes') {\n logEvent('domains_website_checked', { websiteChecked });\n }\n if (emailChecked === 'Yes') {\n logEvent('domains_email_checked', { emailChecked });\n }\n });\n wrap(this.emptyCartMessage, this.cartElement);\n wrap(this.cartRows, this.cartElement);\n wrap(this.websiteCheckbox, this.cartElement);\n wrap(this.emailCheckbox, this.cartElement);\n wrap(this.cartButton, this.cartElement);\n wrap(this.priceSummary, this.cartElement);\n wrap(this.cartElement, this.containerElement);\n }\n \n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n\n private getSelectedDomainPeriod(domain: string): number {\n const domainElement = this.cartRows.querySelector(`.${this.classNames.cartRow}[data-domain=\"${domain}\"]`);\n if (!domainElement) {\n return 1;\n }\n const dropdown = domainElement.querySelector<HTMLRsDropdownElement>(`.${this.classNames.cartRowDomainDetailsPriceDropdown}`);\n return dropdown ? Number.parseInt(dropdown.value) : 1;\n }\n}\n\n","import {ClassNames} from '../Interfaces/class-names';\nimport {Options} from '../Interfaces/options';\nimport {wrap} from '../Helpers/wrap';\nimport SearchHeading from './SearchHeading';\nimport templates from '../Helpers/templates';\nimport DomainSearch from './DomainSearch';\nimport SearchResultCaption from './SearchResultCaption';\nimport DomainChecker from '../index';\nimport {DomainResponse, DomainSuggestions} from '../Helpers/Fetch';\nimport SearchAlternatives from './SearchAlternatives';\nimport {Locale} from '../Interfaces/locale';\nimport Cart from './Cart';\n\n\nexport default class PopupContainer {\n public readonly element: HTMLElement;\n public domainSearch: DomainSearch;\n private readonly domainsElement: HTMLElement;\n private readonly cart: Cart;\n private readonly classNames: ClassNames;\n private readonly locale: Locale;\n private readonly fetchURL: string;\n private heading: SearchHeading;\n\n private searchResultText: SearchResultCaption;\n private closeIcon: HTMLRsIconElement;\n private domainAlternatives: SearchAlternatives;\n private domainPreferred: SearchAlternatives;\n\n\n public constructor({\n element,\n config: {classNames, fetchURL},\n locale\n }: {\n element: HTMLElement;\n config: Options;\n locale: Locale\n }) {\n this.fetchURL = fetchURL;\n this.locale = locale;\n this.classNames = classNames;\n this.element = element;\n this.domainsElement = this.getTemplate('domainContainer');\n this.cart = new Cart(this.getTemplate('cartContainer'), this.getTemplate('cart'), this.classNames, this.locale,);\n wrap(this.domainsElement, this.element);\n wrap(this.cart.containerElement, this.element);\n\n this.build();\n }\n\n public setLoading(loading: boolean): void {\n this.domainSearch.setLoading(loading);\n this.domainAlternatives.element.style.display = loading ? 'none' : 'block';\n }\n\n public open(): this {\n wrap(this.element, document.body);\n setTimeout(() => {\n this.element.classList.add(this.classNames.popupContainerActive);\n });\n document.querySelector('#shadow')?.classList.add('dc__checker-open');\n return this;\n }\n\n public close(): this {\n document.querySelector('#shadow')?.classList.remove('dc__checker-open');\n this.element.classList.remove(this.classNames.popupContainerActive);\n setTimeout(() => {\n this.element.remove();\n this.resetLoadingUi();\n }, 150);\n return this;\n }\n\n\n public setHeading(heading: string): this {\n this.heading.heading = heading;\n return this;\n }\n\n public setPrice(price?: string): this {\n this.searchResultText.price = price;\n return this;\n }\n\n public setCaptionMessage(message: string): this {\n this.searchResultText.setMessage(message);\n return this;\n }\n\n public setDomain(domain: string): this {\n this.domainSearch.setDomain(domain);\n return this;\n }\n\n public showSearchAgain(): void {\n this.domainSearch.showSearchAgain();\n }\n\n public showAndFetchDomainRows(domainDetail: DomainResponse): this {\n const suggestions = domainDetail.domainSuggestions;\n if (domainDetail.isAvailable) {\n this.domainPreferred.element.style.display = 'block';\n const domain = this.domainSearch.input.value;\n const preferredSuggestion: DomainSuggestions = {\n prefix: domain.split('.')[0],\n suffixes: [domain.substring(domain.indexOf('.'))]\n };\n // This shows the preferred domain\n this.domainPreferred.showDomains(preferredSuggestion);\n } else {\n this.hidePreferredDomain();\n }\n // This shows the alternative domains\n this.domainAlternatives.showDomains(suggestions);\n return this;\n }\n\n private hideSearchAlternativeRows(): void {\n const alternativeRows = this.element.querySelectorAll(`.${this.classNames.searchAlternativeContainer}`);\n alternativeRows.forEach(row => {\n (row as HTMLElement).style.display = 'none';\n });\n }\n\n private hidePreferredDomain(): void {\n this.domainPreferred.element.style.display = 'none';\n }\n\n private resetLoadingUi(message = 'Checking your domain...'): void {\n this.setHeading(message);\n this.setPrice(null);\n }\n\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, {classNames: this.classNames}, ...args);\n }\n\n private build(): void {\n\n this.closeIcon = this.getTemplate('icon', this.classNames.popupClose);\n this.closeIcon.setAttribute('name', 'x');\n this.closeIcon.setAttribute('size', '24');\n this.heading = new SearchHeading({\n element: this.getTemplate('searchHeading')\n });\n\n\n const searchContainer = Object.assign(document.createElement('div'), {\n className: this.classNames.popupSearchContainer\n });\n\n this.searchResultText = new SearchResultCaption({\n element: this.getTemplate('searchResultText'),\n classNames: this.classNames\n });\n\n this.domainSearch = new DomainSearch({\n element: this.getTemplate('popupSearch'),\n config: {\n classNames: this.classNames,\n fetchURL: this.fetchURL\n },\n locale: this.locale\n });\n\n this.domainPreferred = new SearchAlternatives({\n element: this.getTemplate('searchResultsContainer', this.locale, 'Your preferred Domain', 'preferred'),\n classNames: this.classNames,\n locale: this.locale,\n rowType: 'preferred',\n cart: this.cart,\n });\n\n this.domainAlternatives = new SearchAlternatives({\n element: this.getTemplate('searchResultsContainer', this.locale),\n classNames: this.classNames,\n locale: this.locale,\n rowType: 'alternative',\n cart: this.cart,\n });\n\n wrap(this.closeIcon, this.domainsElement);\n wrap(this.heading.element, this.domainsElement);\n wrap(this.searchResultText.element, this.domainsElement);\n wrap(this.domainSearch.element, searchContainer);\n wrap(searchContainer, this.domainsElement);\n wrap(this.domainPreferred.element, this.domainsElement);\n wrap(this.domainAlternatives.element, this.domainsElement);\n\n\n this.domainSearch.element.addEventListener('domainSearchStart', event => {\n this.resetLoadingUi();\n this.hideSearchAlternativeRows();\n event.stopImmediatePropagation();\n });\n\n this.domainSearch.element.addEventListener('domainSearchFinish', (event: CustomEvent<DomainResponse>) => {\n event.stopImmediatePropagation();\n DomainChecker.setPopupStatus(this, event.detail);\n this.showAndFetchDomainRows(event.detail);\n });\n\n this.closeIcon.addEventListener('click', () => {\n this.close();\n });\n\n this.domainSearch.input.addEventListener('input', () => {\n this.resetLoadingUi('Enter a domain to register');\n });\n\n this.domainSearch.element.addEventListener('domainSearchAgain', () => {\n this.resetLoadingUi('Enter a domain to register');\n this.domainSearch.input.value = '';\n this.domainSearch.input?.focus();\n });\n }\n}\n","import { b as bootstrapLazy } from './index-3d0f28ab.js';\nexport { s as setNonce } from './index-3d0f28ab.js';\n\nconst defineCustomElements = (win, options) => {\n if (typeof window === 'undefined') return undefined;\n return bootstrapLazy([[\"rs-link-select\",[[1,\"rs-link-select\",{\"data\":[1],\"selectedItem\":[16],\"linkText\":[1025,\"link-text\"],\"linkLabel\":[1,\"link-label\"],\"allowExternalLinks\":[4,\"allow-external-links\"],\"websiteUuid\":[1,\"website-uuid\"],\"items\":[32],\"hidden\":[32],\"selectedType\":[32],\"selectedSubtype\":[32],\"open\":[64],\"close\":[64]}]]],[\"rs-side-drawer\",[[1,\"rs-side-drawer\",{\"loading\":[4],\"heading\":[1],\"subHeading\":[1,\"sub-heading\"],\"items\":[1],\"isDirty\":[4,\"is-dirty\"],\"moreContentHeading\":[1,\"more-content-heading\"],\"contentLevelOpen\":[1026,\"content-level-open\"],\"itemsArray\":[32],\"openItemHeading\":[32],\"itemOpen\":[32],\"itemOpenHandle\":[32],\"openItem\":[64]},[[0,\"closeMoreContent\",\"closeMoreContentHandler\"],[0,\"closeContent\",\"closeContentHandler\"]]]]],[\"rs-color-swatch\",[[1,\"rs-color-swatch\",{\"label\":[1],\"color\":[1],\"palettes\":[16],\"opacity\":[4],\"alignment\":[1],\"transparentButton\":[4,\"transparent-button\"],\"mode\":[1],\"width\":[1],\"internalOpacity\":[32],\"internalColor\":[32],\"setColor\":[64],\"getColor\":[64]},[[0,\"rsColorChange\",\"rsColorChangeHandler\"]]]]],[\"rs-template-picker\",[[2,\"rs-template-picker\",{\"requestUri\":[1,\"request-uri\"],\"templates\":[1],\"empty\":[1],\"industry\":[1],\"templateData\":[32],\"previewTemplate\":[32],\"previewVisible\":[32]},[[0,\"previewTemplate\",\"previewTemplateHandler\"],[0,\"useTemplate\",\"useTemplateHandler\"],[0,\"selectChange\",\"selectChangeHandler\"]]]]],[\"rs-popup\",[[1,\"rs-popup\",{\"closeButton\":[4,\"close-button\"],\"helpLink\":[8,\"help-link\"],\"heading\":[1],\"headingAlignment\":[1,\"heading-alignment\"],\"backdrop\":[4],\"backdropClose\":[4,\"backdrop-close\"],\"zIndex\":[2,\"z-index\"],\"width\":[1],\"height\":[1],\"top\":[1],\"left\":[1],\"right\":[1],\"bottom\":[1],\"transform\":[1],\"position\":[1],\"close\":[64],\"open\":[64]}]]],[\"rs-sidebar-incrementer\",[[0,\"rs-sidebar-incrementer\",{\"heading\":[1],\"step\":[2],\"value\":[1026],\"min\":[2],\"max\":[2],\"suffix\":[1],\"dropdown\":[4],\"decimalPlaces\":[2,\"decimal-places\"],\"dropdownStep\":[2,\"dropdown-step\"]}]]],[\"rs-alert\",[[1,\"rs-alert\",{\"actionLink\":[1,\"action-link\"],\"type\":[1]}]]],[\"rs-flint-popup\",[[6,\"rs-flint-popup\",{\"type\":[1],\"closeIcon\":[4,\"close-icon\"],\"backIcon\":[4,\"back-icon\"],\"steps\":[2],\"progress\":[2],\"stepActive\":[32],\"open\":[64],\"close\":[64],\"previousStep\":[64],\"nextStep\":[64]}]]],[\"rs-accordion\",[[1,\"rs-accordion\",{\"heading\":[1],\"error\":[4]}]]],[\"rs-checkbox\",[[1,\"rs-checkbox\",{\"disabled\":[4],\"checked\":[1028]}]]],[\"rs-list-item\",[[1,\"rs-list-item\",{\"heading\":[1],\"error\":[4],\"value\":[8],\"selectable\":[4],\"complete\":[4],\"showArrow\":[4,\"show-arrow\"],\"selected\":[32]}]]],[\"rs-modal\",[[1,\"rs-modal\",{\"showClose\":[4,\"show-close\"],\"open\":[64],\"close\":[64]}]]],[\"rs-multi-select-item\",[[1,\"rs-multi-select-item\",{\"selected\":[1028],\"featured\":[1028],\"value\":[1],\"width\":[1],\"error\":[4],\"showStar\":[32]}]]],[\"rs-card\",[[1,\"rs-card\",{\"disabled\":[4],\"collapsed\":[1028],\"collapsible\":[4],\"type\":[8],\"toggle\":[64],\"close\":[64],\"open\":[64]}]]],[\"rs-card-content\",[[1,\"rs-card-content\",{\"lines\":[1]}]]],[\"rs-card-header\",[[1,\"rs-card-header\",{\"flex\":[4],\"alignContent\":[1,\"align-content\"]}]]],[\"rs-col\",[[1,\"rs-col\",{\"flexGrow\":[1,\"flex-grow\"],\"flexBasis\":[1,\"flex-basis\"]}]]],[\"rs-content-placeholder\",[[0,\"rs-content-placeholder\",{\"mask\":[1],\"border\":[4],\"maskContent\":[32],\"width\":[32],\"scale\":[32]}]]],[\"rs-flint-popup-content\",[[1,\"rs-flint-popup-content\",{\"lines\":[1],\"order\":[2],\"parentType\":[1,\"parent-type\"]}]]],[\"rs-grid\",[[1,\"rs-grid\"]]],[\"rs-incrementer-option\",[[1,\"rs-incrementer-option\",{\"value\":[8]}]]],[\"rs-item-group\",[[1,\"rs-item-group\",{\"justifyContent\":[1,\"justify-content\"],\"alignItems\":[1,\"align-items\"],\"alignContent\":[1,\"align-content\"],\"justifyItems\":[1,\"justify-items\"],\"flexWrap\":[1,\"flex-wrap\"],\"gap\":[2],\"flexDirection\":[1,\"flex-direction\"],\"padding\":[4],\"flex\":[4]}]]],[\"rs-list-select\",[[1,\"rs-list-select\",{\"value\":[1032]}]]],[\"rs-loader\",[[1,\"rs-loader\"]]],[\"rs-multi-select\",[[1,\"rs-multi-select\",{\"gap\":[1],\"columns\":[2],\"width\":[1],\"selectedItems\":[1025,\"selected-items\"],\"featuredItems\":[1025,\"featured-items\"]}]]],[\"rs-overline\",[[1,\"rs-overline\"]]],[\"rs-progress-bar\",[[1,\"rs-progress-bar\",{\"size\":[1],\"type\":[1],\"value\":[1026],\"color\":[1]}]]],[\"rs-progress-circle\",[[1,\"rs-progress-circle\",{\"progress\":[2],\"size\":[1]}]]],[\"rs-radio\",[[1,\"rs-radio\",{\"checked\":[1028],\"color\":[1],\"name\":[1],\"disabled\":[4],\"value\":[8],\"button\":[1],\"justifyContent\":[1,\"justify-content\"],\"textAlign\":[1,\"text-align\"],\"editable\":[4]}]]],[\"rs-radio-group\",[[1,\"rs-radio-group\",{\"allowDeselect\":[4,\"allow-deselect\"],\"value\":[1032],\"name\":[1],\"color\":[1],\"flex\":[4],\"justifyContent\":[1,\"justify-content\"],\"flexDirection\":[1,\"flex-direction\"],\"button\":[1]}]]],[\"rs-row\",[[1,\"rs-row\",{\"wrap\":[1],\"justifyContent\":[1,\"justify-content\"]}]]],[\"rs-switch\",[[1,\"rs-switch\",{\"theme\":[1],\"on\":[1028],\"disabled\":[4]}]]],[\"rs-textarea\",[[1,\"rs-textarea\",{\"disabled\":[4],\"autoExpand\":[4,\"auto-expand\"],\"minHeight\":[2,\"min-height\"],\"maxHeight\":[2,\"max-height\"],\"rows\":[2],\"placeholder\":[1],\"hideMax\":[4,\"hide-max\"],\"hardLimit\":[2,\"hard-limit\"],\"softLimit\":[2,\"soft-limit\"],\"value\":[1025],\"richText\":[4,\"rich-text\"],\"hasError\":[4,\"has-error\"],\"required\":[4],\"charsLeft\":[32],\"hasFocus\":[32]}]]],[\"rs-tool-tip\",[[1,\"rs-tool-tip\",{\"arrow\":[1],\"arrowDirection\":[32]}]]],[\"rs-content\",[[1,\"rs-content\",{\"body\":[2],\"color\":[1],\"display\":[1]}]]],[\"rs-color-picker\",[[1,\"rs-color-picker\",{\"color\":[1],\"palettes\":[16],\"opacity\":[4],\"showPicker\":[1028,\"show-picker\"],\"position\":[1],\"display\":[1],\"transparentButton\":[4,\"transparent-button\"],\"mode\":[1],\"colorSwatches\":[32],\"setColor\":[64],\"getColor\":[64],\"show\":[64],\"hide\":[64]}]]],[\"rs-incrementer\",[[6,\"rs-incrementer\",{\"step\":[2],\"value\":[1032],\"min\":[2],\"max\":[2],\"suffix\":[1],\"dropdown\":[4],\"decimalPlaces\":[2,\"decimal-places\"],\"dropdownStep\":[1026,\"dropdown-step\"],\"customOptions\":[4,\"custom-options\"],\"isDropdownVisible\":[32],\"showDropdown\":[64],\"hideDropdown\":[64],\"toggleDropdown\":[64]},[[0,\"rsOptionClick\",\"rsOptionClickHandler\"]]]]],[\"rs-progress-step\",[[1,\"rs-progress-step\",{\"progress\":[2],\"steps\":[2],\"color\":[1]}]]],[\"rs-select_2\",[[1,\"rs-template-card\",{\"templateId\":[1,\"template-id\"],\"name\":[1],\"thumbnail\":[1],\"empty\":[4]}],[1,\"rs-select\",{\"items\":[1],\"itemsToDisplay\":[32]}]]],[\"rs-spinner\",[[1,\"rs-spinner\",{\"size\":[1],\"color\":[1],\"speed\":[2]}]]],[\"rs-caption\",[[1,\"rs-caption\",{\"color\":[1]}]]],[\"rs-item\",[[1,\"rs-item\",{\"disabled\":[4],\"href\":[1],\"rel\":[1],\"target\":[1],\"type\":[1],\"appearance\":[1],\"justifyContent\":[1,\"justify-content\"],\"alignItems\":[1,\"align-items\"],\"alignContent\":[1,\"align-content\"],\"justifyItems\":[1,\"justify-items\"],\"gap\":[2],\"flexWrap\":[1,\"flex-wrap\"],\"flexDirection\":[1,\"flex-direction\"],\"padding\":[4],\"flex\":[4]},[[0,\"rsItem\",\"rsItem\"]]]]],[\"rs-column-header_4\",[[1,\"rs-side-drawer-header\",{\"loading\":[4],\"disabled\":[4],\"panelOpen\":[4,\"panel-open\"],\"isDirty\":[4,\"is-dirty\"]}],[1,\"rs-side-drawer-item-content\",{\"itemOpen\":[4,\"item-open\"],\"heading\":[1],\"subHeading\":[1,\"sub-heading\"],\"moreContentOpen\":[4,\"more-content-open\"],\"contentLevel\":[2,\"content-level\"],\"openLevel\":[2,\"open-level\"],\"topScrollable\":[32],\"bottomScrollable\":[32]}],[1,\"rs-side-drawer-item\",{\"heading\":[1],\"icon\":[1]}],[1,\"rs-column-header\",{\"color\":[1]}]]],[\"rs-dropdown_5\",[[1,\"rs-dropdown\",{\"value\":[1025],\"items\":[1],\"type\":[1],\"size\":[1],\"maxHeight\":[1,\"max-height\"],\"searchable\":[4],\"placeholder\":[1],\"selectedIndex\":[2,\"selected-index\"],\"maxWidth\":[1,\"max-width\"],\"_items\":[32],\"selectedItem\":[32],\"filterText\":[32],\"clear\":[64]}],[6,\"rs-input\",{\"type\":[1],\"value\":[1025],\"disabled\":[4],\"readonly\":[4],\"placeholder\":[1],\"clearOnEdit\":[4,\"clear-on-edit\"],\"clearInput\":[4,\"clear-input\"],\"required\":[4],\"hideMax\":[4,\"hide-max\"],\"hardLimit\":[2,\"hard-limit\"],\"softLimit\":[2,\"soft-limit\"],\"name\":[1],\"hasError\":[4,\"has-error\"],\"textAlign\":[1,\"text-align\"],\"size\":[1],\"hasFocus\":[32],\"charsLeft\":[32],\"update\":[64],\"setFocus\":[64],\"getInputElement\":[64]}],[4,\"rs-label\",{\"color\":[1],\"position\":[1]}],[1,\"rs-toggle\",{\"currentPosition\":[32],\"setActivePosition\":[64]}],[1,\"rs-toggle-item\",{\"active\":[4]}]]],[\"color-picker_4\",[[1,\"color-picker\",{\"color\":[1],\"opacity\":[4],\"palettes\":[1],\"maxPresetDisplay\":[2,\"max-preset-display\"],\"recentColorsLabel\":[1,\"recent-colors-label\"],\"transparentButton\":[4,\"transparent-button\"],\"display\":[1],\"mode\":[1],\"currentColor\":[32],\"currentOpacity\":[32],\"palettesToDisplay\":[32],\"setColor\":[64],\"getColor\":[64],\"addToPreset\":[64]},[[0,\"opacityChange\",\"opacityChangeHandler\"],[4,\"colorPickerAddRecent\",\"colorPickerAddRecentHandler\"]]],[1,\"color-picker-color-palette\",{\"display\":[1],\"color\":[1],\"sliderOffsetWidth\":[32],\"sliderOffsetHeight\":[32],\"sliderLeft\":[32],\"sliderTop\":[32],\"paletteBackgroundStyle\":[32],\"hue\":[32],\"setHue\":[64],\"setColor\":[64]}],[1,\"color-picker-hue-slider\",{\"display\":[1],\"hue\":[2],\"_hue\":[32],\"setHue\":[64]}],[1,\"color-picker-opacity-slider\",{\"color\":[1],\"opacity\":[2],\"display\":[1],\"currentRgb\":[32],\"currentOpacity\":[32],\"setColor\":[64],\"setOpacity\":[64]}]]],[\"rs-icon\",[[1,\"rs-icon\",{\"name\":[1],\"color\":[1],\"size\":[2]}]]],[\"rs-button_3\",[[1,\"rs-button\",{\"color\":[1],\"disabled\":[4],\"href\":[1],\"rel\":[1],\"target\":[1],\"size\":[1],\"loading\":[4],\"expand\":[1],\"flexGrow\":[1,\"flex-grow\"]}],[1,\"rs-subtitle\",{\"subtitle\":[1],\"color\":[1]}],[1,\"rs-header\",{\"heading\":[1],\"color\":[1]}]]]], options);\n};\n\nexport { defineCustomElements };\n\n//# sourceMappingURL=loader.js.map","import './index.css';\nimport { Options } from './Interfaces/options';\nimport templates from './Helpers/templates';\nimport { DEFAULT_CONFIG } from './Helpers/defaults';\nimport { wrap } from './Helpers/wrap';\nimport DomainSearch from './Components/DomainSearch';\nimport { defineCustomElements } from '@rocketspark/flint-ui/loader';\nimport '@rocketspark/flint-ui/dist/rocketspark/rocketspark.css';\nimport PopupContainer from './Components/PopupContainer';\nimport { DomainResponse } from './Helpers/Fetch';\nimport { Locale } from './Interfaces/locale';\nimport { logEvent } from './Helpers/analytics';\n\n// noinspection JSIgnoredPromiseFromCall\ndefineCustomElements();\n\nclass DomainChecker {\n public static PRODUCTION_GET_IT_NOW = 'https://www.rocketspark.com/site_files/1/custom/1/packages/freeTrialRedirect.php?domainName=';\n public static DEVELOPMENT_GET_IT_NOW = 'http://blastoff.cms.localhost?signupType=domain&domainName=';\n public static PRODUCTION_FETCH = 'https://cms.rocketspark.co.nz/tools/checkDomainRegisterAvailability.php';\n public static DEVELOPMENT_FETCH = 'https://cms.cms.localhost/tools/checkDomainRegisterAvailability.php';\n private readonly element: HTMLElement;\n private readonly config: Options;\n private readonly locale: Locale;\n private readonly allowedLocales = ['NZ', 'AU', 'UK', 'US'];\n private domainSearch: DomainSearch;\n private popupContainer: PopupContainer;\n\n\n public constructor(element: HTMLElement, options: Partial<Options> = {}) {\n this.element = element;\n\n this.config = {\n ...DEFAULT_CONFIG,\n ...options,\n };\n\n const locale = this.element.dataset.locale?.toUpperCase() ?? null;\n if (locale === null || !this.allowedLocales.includes(locale)) {\n throw TypeError(\n `data-locale is a required attribute, it must a string, and it should be one of: ${this.allowedLocales.join('|')}`\n );\n }\n\n this.locale = locale as Locale;\n\n this.init();\n this.startListening();\n }\n\n public static setPopupStatus(popupContainer: PopupContainer, { success, isAvailable, formattedPrice, error }: Partial<DomainResponse>): void {\n\n if (success) {\n popupContainer.showSearchAgain();\n if (isAvailable) {\n popupContainer.setPrice(formattedPrice);\n popupContainer.setHeading('This domain is available');\n } else {\n popupContainer.setPrice('unavailable');\n popupContainer.setHeading('This domain is unavailable');\n }\n } else {\n if (error.includes('are not available for new registrations by Rocketspark')) {\n popupContainer.setHeading('This domain is unavailable');\n const message = error.replace('for new registrations by Rocketspark', 'from Rocketspark');\n popupContainer.setCaptionMessage(message);\n } else {\n popupContainer.setHeading('Please try searching again');\n popupContainer.setPrice(null);\n }\n }\n }\n\n private autofillSearchBar(): void {\n const domain = this.getDomainFromUrl();\n if (domain) {\n this.domainSearch.setDomain(domain);\n this.domainSearch.setLoading(true);\n this.domainSearch.submit();\n this.popupContainer.setPrice(null);\n this.popupContainer.open();\n this.popupContainer.setDomain(domain);\n this.popupContainer.setLoading(true);\n }\n }\n\n private getDomainFromUrl(): string | null {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('domain');\n }\n\n private init(): void {\n this.element.classList.add(this.config.classNames.element);\n const container = this.getTemplate('container');\n const inputContainer = this.getTemplate('inputContainer');\n\n this.domainSearch = new DomainSearch({\n element: this.getTemplate('domainSearch'),\n config: this.config,\n locale: this.locale\n });\n\n this.popupContainer = new PopupContainer({\n element: this.getTemplate('popupContainer'),\n config: this.config,\n locale: this.locale\n });\n\n wrap(this.domainSearch.element, inputContainer);\n wrap(inputContainer, container);\n wrap(container, this.element);\n\n this.autofillSearchBar();\n\n }\n\n private getTemplate(template: keyof typeof templates, ...args: any): any {\n return templates[template].call(this, this.config, ...args);\n }\n\n private startListening(): void {\n this.domainSearch.element.addEventListener('domainSearchStart', ({ detail }: CustomEvent) => {\n logEvent('domains_search_start', { domain: detail });\n this.popupContainer.setPrice(null);\n this.popupContainer.open();\n this.popupContainer.setDomain(detail);\n this.popupContainer.setLoading(true);\n });\n this.domainSearch.element.addEventListener('domainSearchFinish', (event: CustomEvent<DomainResponse>) => {\n DomainChecker.setPopupStatus(this.popupContainer, event.detail);\n this.popupContainer.showAndFetchDomainRows(event.detail);\n this.popupContainer.setLoading(false);\n });\n }\n}\n\nexport default DomainChecker;\n\ndocument.addEventListener('DOMContentLoaded', () => {\n document\n .querySelectorAll('.rs-domain-check')\n .forEach((element: HTMLElement) => {\n new DomainChecker(element);\n });\n});\n"],"names":["root","factory","exports","module","define","amd","self","inProgress","dataWebpackPrefix","scopeId","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","queuePending","getAssetPath","path","assetUrl","URL","plt","$resourcesUrl$","origin","win","location","href","pathname","XLINK_NS","EMPTY_OBJ","isComplexType","o","queryNonceMetaTagContent","doc","_a","_b","_c","head","querySelector","getAttribute","undefined","h","nodeName","vnodeData","children","child","key","slotName","simple","lastSimple","vNodeChildren","walk","c","i","length","Array","isArray","String","$text$","push","newVNode","name","classData","className","class","Object","keys","filter","k","join","vdomFnUtils","vnode","$attrs$","$children$","$key$","$name$","tag","text","$flags$","$tag$","$elm$","Host","forEach","cb","map","convertToPublic","convertToPrivate","node","vattrs","vchildren","vkey","vname","vtag","vtext","assign","getElement","ref","getHostRef","createEvent","flags","elm","emit","detail","emitEvent","bubbles","composed","cancelable","opts","ev","ce","dispatchEvent","rootAppliedStyles","WeakMap","attachStyles","hostRef","cmpMeta","$cmpMeta$","$hostElement$","endAttachStyles","$tagName$","styleContainerNode","getScopeId","style","styles","get","nodeType","styleElm","appliedStyles","set","Set","has","createElement","innerHTML","nonce","$nonce$","setAttribute","insertBefore","add","adoptedStyleSheets","includes","addStyle","shadowRoot","getRootNode","classList","cmp","mode","setAccessor","memberName","oldValue","newValue","isSvg","isProp","isMemberInElement","ln","toLowerCase","oldClasses","parseClassList","newClasses","remove","prop","removeProperty","setProperty","isComplex","tagName","n","e","xlink","replace","removeAttributeNS","removeAttribute","setAttributeNS","slice","rel","ael","parseClassListRegex","value","split","updateElement","oldVnode","newVnode","host","oldVnodeAttrs","newVnodeAttrs","createElm","oldParentVNode","newParentVNode","childIndex","parentElm","childNode","oldVNode","createTextNode","createElementNS","appendChild","putBackInOriginalLocation","recursive","oldSlotChildNodes","childNodes","parentReferenceNode","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","parentNode","removeVnodes","index","nullifyVNodeRefs","isSameVnode","leftVNode","rightVNode","patch","oldChildren","newChildren","defaultHolder","oldCh","newCh","elmToMove","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","nextSibling","updateChildren","textContent","data","updateFallbackSlotVisibility","ilen","j","slotNameAttr","hidden","trim","relocateNodes","relocateSlotContent","hostContentNodes","relocateNodeData","isNodeLocatedInSlot","find","r","$nodeToRelocate$","$slotRefNode$","relocateNode","some","nodeToRelocate","vNode","renderVdom","renderFnResults","isInitialLoad","hostElm","$vnode$","rootVnode","hasAttribute","relocateData","orgLocationNode","parentNodeRef","insertBeforeNode","refNode","previousSibling","attachToAncestor","ancestorComponent","$onRenderResolve$","Promise","scheduleUpdate","$ancestorComponent$","writeTask","dispatchHooks","endSchedule","instance","$lazyInstance$","maybePromise","$queuedListeners$","methodName","event","safeCall","enqueue","updateComponent","fn","isPromisey","then","async","endUpdate","rc","endRender","callRender","childrenPromises","postUpdate","postUpdateComponent","all","render","consoleError","endPostUpdate","addHydratedFlag","$onReadyResolve$","appDidLoad","$onInstanceResolve$","nextTick","forceUpdate","isConnected","who","documentElement","namespace","method","arg","setValue","propName","newVal","oldVal","$instanceValues$","propValue","propType","$members$","parseFloat","areBothNaN","Number","isNaN","$watchers$","watchMethods","watchMethodName","proxyComponent","Cstr","watchers","members","entries","prototype","memberFlags","defineProperty","this","configurable","enumerable","args","$onInstancePromise$","attrNameToPropName","Map","attributeChangedCallback","attrName","_oldValue","jmp","hasOwnProperty","observedAttributes","_","m","initializeComponent","hmrVersionId","loadModule","endLoad","isProxied","endNewInstance","fireConnectedCallback","endRegisterStyles","cssText","allowCS","supportsConstructableStylesheets","CSSStyleSheet","replaceSync","registerStyle","schedule","setContentReference","contentRefElm","createComment","firstChild","disconnectInstance","bootstrapLazy","lazyBundles","options","endBootstrap","cmpTags","exclude","customElements","metaCharset","visibilityStyle","deferredConnectedCallbacks","appLoadFallback","isBootstrapping","resourcesUrl","baseURI","lazyBundle","compactMeta","$listeners$","HostElement","HTMLElement","constructor","super","registerHost","attachShadow","connectedCallback","clearTimeout","endConnected","addHostEventListeners","$onReadyPromise$","disconnectedCallback","$rmListeners$","rmListener","componentOnReady","$lazyBundleId$","setTimeout","listeners","attachParentListeners","target","getHostListenerTarget","handler","hostListenerProxy","hostListenerOpts","hostRefs","registerInstance","lazyInstance","el","console","error","cmpModules","exportName","bundleId","importedModule","window","document","raf","requestAnimationFrame","eventName","listener","addEventListener","removeEventListener","CustomEvent","queueDomReads","queueDomWrites","queueTask","queue","write","flush","consume","performance","now","promiseResolve","resolve","v","webpackAsyncContext","req","__webpack_require__","Error","code","ids","id","isMergeableObject","isNonNullObject","stringValue","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","val","defaultArrayMerge","source","concat","element","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","array","reduce","prev","next","deepmerge_1","ElementType","Doctype","CDATA","Tag","Style","Script","Comment","Directive","Text","Root","isTag","elem","type","input","isSpace","collectCharacters","regEx","chars","match","exec","substring","pos","url","descriptors","currentDescriptor","state","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","charAt","w","d","desc","lastChar","intVal","floatVal","pError","candidate","parseInt","test","log","x","create","isColorSupported","reset","bold","dim","italic","underline","inverse","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","createColors","Container","AtRule","defaults","append","proxyOf","nodes","prepend","default","registerAtRule","Node","parse","Rule","Declaration","isClean","my","cleanSource","markTreeDirty","normalize","last","markDirty","cleanRaws","keepBetween","each","callback","result","iterator","getIterator","indexes","every","condition","lastEach","getProxyProcessor","startsWith","toProxy","other","indexOf","insertAfter","exist","existIndex","reverse","splice","sample","parent","removeChild","selector","selectors","rebuild","raws","first","unshift","removeAll","replaceValues","pattern","walkDecls","decl","props","fast","addToError","walkAtRules","RegExp","walkComments","walkRules","registerParse","dependant","registerRule","registerRoot","setPrototypeOf","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","aside","mark","highlight","lines","start","Math","max","end","min","maxWidth","number","gutter","padding","subLineStart","subLineEnd","subLine","spacing","variable","LazyResult","Processor","Document","toResult","stringify","registerLazyResult","registerProcessor","Input","PreviousMap","fromJSON","json","inputs","ownInputs","inputHydrated","__proto__","inputId","nanoid","isAbsolute","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","fromOffsetCache","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","offset","fromOffset","col","lastLine","lineToIndex","prevIndex","l","mid","sourceRoot","to","fromUrl","originalPositionFor","mapFile","protocol","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","atrule","comment","rule","PLUGIN_PROPS","AtRuleExit","CommentExit","DeclarationExit","DocumentExit","Once","OnceExit","postcssPlugin","prepare","RootExit","RuleExit","NOT_VISITORS","isPromise","obj","getEvents","toStack","events","eventIndex","visitorIndex","visitors","cleanMarks","postcss","processor","stringified","processed","inline","parser","syntax","helpers","plugins","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","lastPlugin","postcssVersion","err","prepareVisitors","version","hasListener","promise","runOnRoot","stack","visitTick","visitor","roots","subRoot","sync","str","stringifier","generate","walkSync","visitSync","onFulfilled","visit","pop","warnings","content","messages","toStringTag","registerPostcss","list","comma","string","space","separators","current","func","inQuote","prevQuote","escape","letter","dirname","relative","sep","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","isInline","toBase64","annotation","outputFile","eol","applyPrevMaps","previous","toUrl","sourcesContent","applySourceMap","clearAnnotation","isMap","generateMap","generateString","fromSourceMap","ignoreInvalidMapping","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","lastIndexOf","p","semicolon","withContent","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","Buffer","btoa","unescape","encodeURIComponent","fileURL","encodeURI","NoWorkResult","_processor","_css","_opts","_map","generatedCSS","generatedMap","_root","Stringifier","cloneNode","cloned","postcssNode","s","after","overrides","between","cloneAfter","cloneBefore","rangeBy","markClean","positionBy","stringRepresentation","positionInside","word","endIndex","raw","defaultType","replaceWith","bookmark","foundSelf","fixed","emitInputs","inputsNextIndex","proxyCache","Proxy","warn","Parser","tokenizer","SAFE_COMMENT_NEIGHBOR","empty","spaces","createTokenizer","token","shift","unnamedAtrule","init","open","params","brackets","endOfFile","nextToken","getPosition","spacesAndCommentsFromEnd","afterName","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","colon","founded","doubleColon","left","right","customProperty","findLastWithPosition","unknownWord","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","emptyRule","unexpectedClose","endFile","unclosedBlock","position","freeSemicolon","ownSemicolon","bracket","back","unclosedBracket","clean","lastTokenType","Warning","initializer","warningPrinted","creator","process","env","LANG","transformer","processOpts","pluginOpts","atRule","existsSync","readFileSync","loadAnnotation","startWith","loadMap","decodeInline","uriMatch","decodeURIComponent","substr","baseUriMatch","atob","encoding","getAnnotationURL","sourceMapString","mappings","_mappings","sections","comments","loadFile","JSON","prevPath","normalized","use","warning","ignore","values","DEFAULT_RAW","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","commentLeft","commentRight","emptyBody","indent","builder","rawValue","block","beforeAfter","detect","buf","depth","step","body","own","rawCache","toUpperCase","rawBeforeClose","rawBeforeComment","rawBeforeDecl","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","parts","rawSemicolon","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","quote","currentToken","escaped","escapePos","valueOf","ignoreErrors","buffer","returned","unclosed","what","ignoreUnclosed","controlChar","fromCharCode","lastIndex","printed","range","opt","ReCaptchaLoader_1","load","ReCaptchaInstance_1","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","done","apply","__generator","f","y","t","g","label","sent","trys","ops","verb","op","TypeError","ReCaptchaInstance","siteKey","recaptchaID","recaptcha","styleContainer","execute","action","enterprise","getSiteKey","hideBadge","showBadge","__assign","arguments","getInstance","ELoadingState","ReCaptchaLoader","getLoadingState","LOADED","LOADING","instanceSiteKey","successfulLoadingConsumers","errorLoadingRunnable","setLoadingState","loader","loadScript","useRecaptchaNet","useEnterprise","renderParameters","customUrl","widgetID","doExplicitRender","grecaptcha","explicitRenderParameters","autoHideBadge","loadingState","NOT_LOADED","_this","scriptElement","scriptBase","parametersQuery","buildQueryString","src","waitForScriptToLoad","onerror","parameters","parameterKey","SCRIPT_LOAD_DELAY","ready","isEnterprise","augmentedParameters","sitekey","container","htmlparser","escapeStringRegexp","isPlainObject","parseSrcset","postcssParse","mediaTags","vulnerableTags","a","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","attribs","that","tagPosition","openingTagLength","mediaChildren","updateParentNodeText","updateParentNodeMediaChildren","htmlParserDefaults","tagAllowed","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","attributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","classes","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","onopentag","onOpenTag","enforceHtmlBoundary","frame","skip","hasText","transformedTag","innerText","disallowedTagsMode","isEmptyObject","nestingLimit","escapeHtml","textFilter","allowedScriptHostnames","allowedScriptDomains","preserveEscapedAttributes","allowedEmptyAttributes","nonBooleanAttributes","passedAllowedAttributesMapCheck","multiple","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parsed","parseUrl","allowedHostname","hostname","allowedDomain","domain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","part","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesRegex","allowedClassesGlobs","filterClasses","parseStyleAttributes","filteredAST","abstractSyntaxTree","allowedStyles","astRules","selectedRule","allowedDeclarationsList","attributeObject","regularExpression","filterDeclarations","filterCss","extractedAttributes","attrObject","stringifyStyleAttributes","selfClosing","ontext","lastFrame","onclosetag","isImplied","onCloseTag","exclusiveFilter","filterResult","decodeEntities","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","base","allowedGlobs","clss","glob","img","newTagName","newAttribs","merge","attrib","attributeNames","elementNames","__createBinding","k2","getOwnPropertyDescriptor","__esModule","writable","__setModuleDefault","__importStar","mod","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","singleTag","output","renderNode","renderComment","renderCdata","xmlMode","foreignModeIntegrationPoints","foreignElements","encode","encodeEntities","encodeXML","escapeAttribute","emptyAttrs","formatAttributes","selfClosingTags","renderTag","escapeText","renderText","__exportStar","DomHandler","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","elementCB","dom","tagStack","lastNode","onparserinit","onreset","onend","handleCallback","Element","addNode","oncomment","oncommentend","oncdatastart","oncdataend","onprocessinginstruction","ProcessingInstruction","startIndex","extendStatics","__extends","b","__","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","_super","prefix","cloneChildren","clone_1","clone_2","clone_3","instruction","sourceCodeLocation","childs","getFeed","feedRoot","getOneElement","isValidFeed","feed","items","legacy_js_1","getElementsByTagName","item","entry","media","getMediaElements","addConditionally","link","description","fetch","pubDate","Date","updated","getAtomFeed","getRssFeed","stringify_js_1","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","_i","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","expression","recurse","DocumentPosition","removeSubsets","idx","ancestor","compareDocumentPosition","uniqueSort","arr","sort","PRECEDING","FOLLOWING","domhandler_1","nodeA","nodeB","aParents","bParents","maxIdx","DISCONNECTED","sharedParent","siblings","aSibling","bSibling","CONTAINED_BY","CONTAINS","testElement","compileTest","getElements","limit","Infinity","querying_js_1","getElementById","findOne","getAttribCheck","Checks","getElementsByClassName","getElementsByTagType","tag_name","tag_type","tag_contains","combineFuncs","funcs","removeElement","childsIndex","replaceElement","replacement","sibling","currNext","prependChild","findOneChild","searchedNodes","found","existsOne","findAll","nodeStack","indexStack","__importDefault","getOuterHTML","getInnerHTML","getText","dom_serializer_1","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeHTML","determineBranch","EntityDecoder","DecodingMode","BinTrieFlags","fromCodePoint","replaceCodePoint","decodeCodePoint","xmlDecodeTree","htmlDecodeTree","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","CharCodes","decode_codepoint_js_2","EntityDecoderState","isNumber","ZERO","NINE","isEntityInAttributeInvalidEnd","EQUALS","UPPER_A","UPPER_Z","LOWER_A","LOWER_Z","isAsciiAlphaNumeric","decodeTree","emitCodePoint","errors","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","startEntity","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","digitCount","pow","char","UPPER_F","LOWER_F","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","Attribute","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","ret","decoder","len","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","midVal","htmlDecoder","xmlDecoder","Legacy","decodeMap","codePoint","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","regExp","lastIdx","nextChar","cp","getCodePoint","xmlReplacer","escapeUTF8","xmlCodeMap","getEscaper","regex","codePointAt","Uint16Array","restoreDiff","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","decode","EncodingMode","EntityLevel","decode_js_1","encode_js_1","XML","level","HTML","UTF8","ASCII","escape_js_2","encode_js_2","decode_js_2","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_d","_e","openTagStart","tagname","attribname","attribvalue","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","Tokenizer","getSlice","ontextentity","getSectionStart","isVoidElement","onopentagname","emitOpenTag","impliesClose","endOpenTag","onopentagend","_f","count","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","search","ondeclaration","oncdata","_g","_h","_j","_k","recognizeCDATA","parseComplete","shiftBuffer","chunk","running","pause","resume","parseChunk","State","isWhitespace","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","Zero","Nine","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","sectionStart","baseState","currentSequence","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","finish","getIndex","stateText","Lt","fastForwardTo","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","AfterClosingTagName","stateAfterClosingTagName","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","stateInAttributeName","Eq","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","emitNamedEntity","masked","allowLegacyEntity","Semi","entityStart","emitPartial","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","strict","stateInHexEntity","UpperF","LowerF","isHexDigit","cleanup","shouldContinue","handleTrailingData","DomUtils","parseFeed","createDomStream","parseDOM","parseDocument","DefaultHandler","Parser_js_1","Parser_js_2","domhandler_2","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","isObject","ctor","prot","size","random","customAlphabet","alphabet","defaultSize","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","definition","chunkId","promises","u","miniCssF","globalThis","Function","script","needAttach","scripts","charset","timeout","nc","onScriptComplete","onload","doneFns","bind","scriptUrl","importScripts","currentScript","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","wrap","wrapper","Currency","templates","_ref","classNames","containerOuter","inputContainer","_ref2","domainSearch","_ref3","domainInput","searchButton","placeholder","button","button_container","button_content","loadingBar","_ref4","loadingBarContainer","loading","popupSearch","_ref5","searchButtonCustom","popupContainer","_ref6","domainContainer","_ref7","cartContainer","_ref8","cart","_ref9","cartHeading","cartHeaderContainer","cartRowsContainer","cartRowsContainerCollapsed","cartHeaderCollapseButton","shoppingCart","headerContainer","heading","collapseButton","contains","toggle","cartContinueButton","_ref10","cartButton","cartCaption","_ref11","cartPriceSummary","_ref12","locale","cartRow","_ref13","pricing","formattedPrice","cartRowDomainDetailsURL","cartRowDomainDetails","cartRowDomainDetailsPrice","cartRowDomainDetailsPriceDiscount","cartRowDomainDetailsPriceDropdownContainer","cartRowDomainDetailsPriceDropdown","cartRowRemove","cartRowDomainDetailsContainer","row","domainDetails","domainUrl","domainPrice","yearContainer","yearDropdown","period","price","priceDiscount","originalPrice","selectedPrice","removeDomain","checkbox","_ref14","checkboxContainer","checkboxLabel","checkboxInput","labelElement","htmlFor","checked","cartRows","_ref15","searchHeading","_ref16","icon","searchResultText","_ref17","searchResultCaption","searchResultsContainer","_ref18","searchAlternativeContainer","searchAlternativeHeader","searchPreferredHeader","searchAlternativeContainerTitle","searchAlternativeContainerContent","domainSearchContainer","title","rowType","header","searchAlternativeRow","_ref19","searchPreferredRow","searchPreferredPill","searchAlternativeRowHeader","searchAlternativeRowHeaderContainer","searchAlternativeRowFetching","searchAlternativePricingContainer","getItNowButtonPreferred","getItNowButtonAlternative","getItNowButtonContainer","getItNowButton","pill","getItNowContainer","loadingContainer","DEFAULT_CONFIG","inputContainerSearching","popupContainerActive","popupSearchContainer","popupClose","popupSearchSpinner","searchAgain","searchAgainActive","searchResultCaptionPrice","searchResultCaptionActive","searchAlternativeContainerActive","getItNowButtonSelected","getItNowButtonUnavailable","getItNowButtonLoading","searchAlternativeRowUnavailable","searchAlternativeDomainSuffix","searchAlternativePricing","searchAlternativePricingDiscount","searchAlternativePricingBlurb","fetchURL","FetchDomain","domainName","DomainChecker","PRODUCTION_FETCH","DEVELOPMENT_FETCH","rsKey","URLSearchParams","headers","countryCode","suggestionsLimit","localeTld","DomainSearch","config","_defineProperty","insertAdjacentElement","addEventListeners","showSearchAgain","setDomain","setLoading","getTemplate","submit","template","_len","_key","toLocaleLowerCase","blur","isAvailable","success","domainSuggestions","finally","Reflect","construct","SearchHeading","_heading","SearchResultCaption","_price","removeMessage","sanitiseHtml","SearchAlternativeRow","suffix","getItNow","build","fetchDetails","buildDomain","addListeners","addDomain","isInCart","domainResponse","blurb","mainContainer","SearchAlternatives","showDomains","suggestions","suffixes","removeAllRows","display","alternativeDomain","querySelectorAll","logging","logEvent","dataLayer","Cart","containerElement","cartElement","domainElement","resetGetItNowButton","updateCartDisplayState","websiteCheckbox","emailCheckbox","priceSummary","emptyCartMessage","domains","domainsString","getSelectedDomainPeriod","PRODUCTION_GET_IT_NOW","DEVELOPMENT_GET_IT_NOW","websiteChecked","emailChecked","dropdown","PopupContainer","domainsElement","domainAlternatives","close","resetLoadingUi","setHeading","setPrice","setCaptionMessage","showAndFetchDomainRows","domainDetail","domainPreferred","preferredSuggestion","hidePreferredDomain","hideSearchAlternativeRows","closeIcon","searchContainer","stopImmediatePropagation","setPopupStatus","focus","defineCustomElements","dataset","allowedLocales","startListening","autofillSearchBar","getDomainFromUrl"],"sourceRoot":""}
|