{"version":3,"file":"static/js/8165_b4e6fd20c799a4a7a5dd.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/util.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/clone-pseudos.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/mimes.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/dataurl.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/clone-node.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/embed-resources.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/embed-images.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/embed-webfonts.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/index.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-image@1.11.11/node_modules/html-to-image/es/apply-style.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/index.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/lib/camel-case-attribute-names.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/lib/is-valid-node-definitions.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/lib/parser.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/lib/process-node-definitions.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/lib/processing-instructions.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/lib/should-process-node-definitions.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/html-to-react@1.5.1/node_modules/html-to-react/lib/utils.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js"],"sourcesContent":["'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.decode = () => resolve(img);\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, toArray } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style) {\n return toArray(style)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode) {\n clonePseudoElement(nativeNode, clonedNode, ':before');\n clonePseudoElement(nativeNode, clonedNode, ':after');\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, {}, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node);\n }\n return node.cloneNode(false);\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n toArray(sourceStyle).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode);\n clonePseudoElements(nativeNode, clonedNode);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n if (!(await embedProp('background', clonedNode, options))) {\n await embedProp('background-image', clonedNode, options);\n }\n if (!(await embedProp('mask', clonedNode, options))) {\n await embedProp('mask-image', clonedNode, options);\n }\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, sheet.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const cssTexts = await Promise.all(rules.map((rule) => {\n const baseUrl = rule.parentStyleSheet ? rule.parentStyleSheet.href : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","'use strict';\n\nconst parser = require('./lib/parser');\nconst processingInstructions = require('./lib/processing-instructions');\nconst isValidNodeDefinitions = require('./lib/is-valid-node-definitions');\nconst processNodeDefinitions = require('./lib/process-node-definitions');\n\nmodule.exports = {\n Parser: parser,\n ProcessingInstructions: processingInstructions,\n IsValidNodeDefinitions: isValidNodeDefinitions,\n ProcessNodeDefinitions: processNodeDefinitions,\n};\n","// These are all sourced from https://facebook.github.io/react/docs/tags-and-attributes.html -\n// all attributes regardless of whether they have a different case to their HTML equivalents are\n// listed to reduce the chance of human error and make it easier to just copy-paste the new list if\n// it changes.\n'use strict';\nconst HTML_ATTRIBUTES = [\n 'accept', 'acceptCharset', 'accessKey', 'action', 'allowFullScreen', 'allowTransparency',\n 'alt', 'async', 'autoComplete', 'autoFocus', 'autoPlay', 'capture', 'cellPadding',\n 'cellSpacing', 'challenge', 'charSet', 'checked', 'cite', 'classID', 'className',\n 'colSpan', 'cols', 'content', 'contentEditable', 'contextMenu', 'controls', 'coords',\n 'crossOrigin', 'data', 'dateTime', 'default', 'defer', 'dir', 'disabled', 'download',\n 'draggable', 'encType', 'form', 'formAction', 'formEncType', 'formMethod', 'formNoValidate',\n 'formTarget', 'frameBorder', 'headers', 'height', 'hidden', 'high', 'href', 'hrefLang',\n 'htmlFor', 'httpEquiv', 'icon', 'id', 'inputMode', 'integrity', 'is', 'keyParams', 'keyType',\n 'kind', 'label', 'lang', 'list', 'loop', 'low', 'manifest', 'marginHeight', 'marginWidth',\n 'max', 'maxLength', 'media', 'mediaGroup', 'method', 'min', 'minLength', 'multiple', 'muted',\n 'name', 'noValidate', 'nonce', 'open', 'optimum', 'pattern', 'placeholder', 'poster',\n 'preload', 'profile', 'radioGroup', 'readOnly', 'rel', 'required', 'reversed', 'role',\n 'rowSpan', 'rows', 'sandbox', 'scope', 'scoped', 'scrolling', 'seamless', 'selected',\n 'shape', 'size', 'sizes', 'span', 'spellCheck', 'src', 'srcDoc', 'srcLang', 'srcSet', 'start',\n 'step', 'style', 'summary', 'tabIndex', 'target', 'title', 'type', 'useMap', 'value', 'width',\n 'wmode', 'wrap', 'onClick',\n];\n\nconst NON_STANDARD_ATTRIBUTES = [\n 'autoCapitalize', 'autoCorrect', 'color', 'itemProp', 'itemScope', 'itemType', 'itemRef',\n 'itemID', 'security', 'unselectable', 'results', 'autoSave',\n];\n\nconst SVG_ATTRIBUTES = [\n 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic',\n 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth',\n 'baseFrequency', 'baseProfile', 'baselineShift', 'bbox', 'begin', 'bias', 'by', 'calcMode',\n 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation',\n 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType',\n 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant',\n 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode',\n 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill',\n 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity',\n 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle',\n 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName',\n 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef',\n 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'ideographic',\n 'imageRendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kernelMatrix',\n 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust',\n 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight',\n 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits',\n 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order',\n 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness',\n 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform',\n 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ',\n 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY',\n 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures',\n 'restart', 'result', 'rotate', 'rx', 'ry', 'scale', 'seed', 'shapeRendering', 'slope',\n 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset',\n 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity',\n 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray',\n 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity',\n 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY',\n 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1',\n 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange',\n 'unitsPerEm', 'vAlphabetic', 'vHanging', 'vIdeographic', 'vMathematical', 'values',\n 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'viewBox',\n 'viewTarget', 'visibility', 'widths', 'wordSpacing', 'writingMode', 'x', 'x1', 'x2',\n 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole',\n 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlns', 'xmlnsXlink', 'xmlBase', 'xmlLang',\n 'xmlSpace', 'y', 'y1', 'y2', 'yChannelSelector', 'z', 'zoomAndPan',\n];\n\nconst camelCaseMap = HTML_ATTRIBUTES\n .concat(NON_STANDARD_ATTRIBUTES)\n .concat(SVG_ATTRIBUTES)\n .reduce(function (soFar, attr) {\n const lower = attr.toLowerCase();\n if (lower !== attr) {\n soFar[lower] = attr;\n }\n return soFar;\n }, {});\n\nmodule.exports = camelCaseMap;\n","'use strict';\nfunction alwaysValid() {\n return true;\n}\n\nmodule.exports = {\n alwaysValid: alwaysValid,\n};\n","'use strict';\nconst HtmlParser = require('htmlparser2').Parser;\nconst DomHandler = require('domhandler').DomHandler;\nconst ProcessingInstructions = require('./processing-instructions');\nconst IsValidNodeDefinitions = require('./is-valid-node-definitions');\nconst utils = require('./utils');\n\nfunction Html2ReactParser(options) {\n function parseHtmlToTree(html) {\n options = options || {};\n options.decodeEntities = true;\n const handler = new DomHandler();\n const parser = new HtmlParser(handler, options);\n parser.parseComplete(html);\n return handler.dom.filter(function (element) {\n return element.type !== 'directive';\n });\n };\n\n function traverseDom(node, isValidNode, processingInstructions, preprocessingInstructions,\n index) {\n if (isValidNode(node)) {\n (preprocessingInstructions || []).forEach((instruction) => {\n if (instruction.shouldPreprocessNode(node)) {\n instruction.preprocessNode(node, index);\n }\n });\n\n const processingInstruction = (processingInstructions || []).find((instruction) => {\n return instruction.shouldProcessNode(node);\n });\n if (processingInstruction != null) {\n const children = (node.children || []).map((child, i) => {\n return traverseDom(child, isValidNode, processingInstructions,\n preprocessingInstructions, i);\n }).filter((child) => {\n return child != null && child !== false;\n });\n\n if (processingInstruction.replaceChildren) {\n return utils.createElement(node, index, node.data, [\n processingInstruction.processNode(node, children, index),\n ]);\n } else {\n return processingInstruction.processNode(node, children, index);\n }\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n function parseWithInstructions(html, isValidNode, processingInstructions,\n preprocessingInstructions) {\n const domTree = parseHtmlToTree(html);\n const list = domTree.map(function (domTreeItem, index) {\n return traverseDom(domTreeItem, isValidNode, processingInstructions,\n preprocessingInstructions, index);\n });\n return list.length <= 1 ? list[0] : list;\n };\n\n function parse(html) {\n const processingInstructions = new ProcessingInstructions();\n return parseWithInstructions(html,\n IsValidNodeDefinitions.alwaysValid,\n processingInstructions.defaultProcessingInstructions);\n };\n\n return {\n parse: parse,\n parseWithInstructions: parseWithInstructions,\n };\n};\n\nmodule.exports = Html2ReactParser;\n","'use strict';\nconst utils = require('./utils');\n\n// eslint-disable-next-line max-len\n// https://github.com/facebook/react/blob/15.0-stable/src/renderers/dom/shared/ReactDOMComponent.js#L457\nconst voidElementTags = [\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param',\n 'source', 'track', 'wbr', 'menuitem', 'textarea',\n];\n\nfunction ProcessNodeDefinitions() {\n function processDefaultNode(node, children, index) {\n if (node.type === 'text') {\n return node.data;\n } else if (node.type === 'comment') {\n // FIXME: The following doesn't work as the generated HTML results in\n // \"<!-- This is a comment -->\"\n // return '';\n return false;\n }\n\n if (voidElementTags.indexOf(node.name) > -1) {\n return utils.createElement(node, index);\n } else {\n return utils.createElement(node, index, node.data, children);\n }\n }\n\n return {\n processDefaultNode: processDefaultNode,\n };\n}\n\nmodule.exports = ProcessNodeDefinitions;\n","'use strict';\nconst ShouldProcessNodeDefinitions = require('./should-process-node-definitions');\nconst ProcessNodeDefinitions = require('./process-node-definitions');\n\nfunction ProcessingInstructions() {\n const processNodeDefinitions = new ProcessNodeDefinitions();\n\n return {\n defaultProcessingInstructions: [{\n shouldProcessNode: ShouldProcessNodeDefinitions.shouldProcessEveryNode,\n processNode: processNodeDefinitions.processDefaultNode,\n },],\n };\n};\n\nmodule.exports = ProcessingInstructions;\n","'use strict';\nfunction shouldProcessEveryNode(node) {\n return true;\n}\n\nmodule.exports = {\n shouldProcessEveryNode: shouldProcessEveryNode,\n};\n","'use strict';\nconst camelCase = require('lodash.camelcase');\nconst React = require('react');\nconst camelCaseAttrMap = require('./camel-case-attribute-names');\n\nfunction createStyleJsonFromString(styleString) {\n styleString = styleString || '';\n const styles = styleString.split(/;(?!base64)/);\n let singleStyle, key, value, jsonStyles = {};\n for (let i = 0; i < styles.length; ++i) {\n singleStyle = styles[i].split(':');\n if (singleStyle.length > 2) {\n singleStyle[1] = singleStyle.slice(1).join(':');\n }\n\n key = singleStyle[0];\n value = singleStyle[1];\n if (typeof value === 'string'){\n value = value.trim();\n }\n\n if (key != null && value != null && key.length > 0 && value.length > 0) {\n key = key.trim();\n\n // Don't camelCase CSS custom properties\n if (key.indexOf('--') !== 0) {\n key = camelCase(key);\n }\n\n jsonStyles[key] = value;\n }\n }\n return jsonStyles;\n}\n\n// Boolean HTML attributes, copied from https://meiert.com/en/blog/boolean-attributes-of-html/,\n// on the form React expects.\nconst booleanAttrs = [\n 'allowFullScreen',\n 'allowpaymentrequest',\n 'async',\n 'autoFocus',\n 'autoPlay',\n 'checked',\n 'controls',\n 'default',\n 'disabled',\n 'formNoValidate',\n 'hidden',\n 'ismap',\n 'itemScope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'noValidate',\n 'open',\n 'playsinline',\n 'readOnly',\n 'required',\n 'reversed',\n 'selected',\n 'truespeed',\n];\n\nfunction createElement(node, index, data, children) {\n let elementProps = {\n key: index,\n };\n if (node.attribs) {\n elementProps = Object.entries(node.attribs).reduce((result, [key, value,]) => {\n key = camelCaseAttrMap[key.replace(/[-:]/, '')] || key;\n if (key === 'style') {\n value = createStyleJsonFromString(value);\n } else if (key === 'class') {\n key = 'className';\n } else if (key === 'for') {\n key = 'htmlFor';\n } else if (key.startsWith('on')) {\n value = Function(value);\n }\n\n if (booleanAttrs.includes(key) && (value || '') === '') {\n value = key;\n }\n\n result[key] = value;\n return result;\n }, elementProps);\n }\n\n children = children || [];\n const allChildren = data != null ? [data,].concat(children) : children;\n return React.createElement.apply(\n null, [node.name, elementProps,].concat(allChildren)\n );\n}\n\nmodule.exports = {\n createElement,\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]), // ` 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 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"],"names":["reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","length","prototype","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","Object","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","module","exports","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","i","key","descriptor","e","uuid","counter","Math","random","toString","slice","toArray","arrayLike","arr","l","push","px","node","styleProperty","val","ownerDocument","defaultView","window","getComputedStyle","getPropertyValue","parseFloat","replace","getImageSize","targetNode","options","width","leftBorder","rightBorder","clientWidth","getNodeWidth","height","topBorder","bottomBorder","clientHeight","getNodeHeight","canvasDimensionLimit","createImage","url","Promise","resolve","reject","img","Image","decode","onload","onerror","crossOrigin","decoding","src","async","nodeToDataURL","xmlns","svg","document","createElementNS","foreignObject","setAttribute","appendChild","then","XMLSerializer","serializeToString","encodeURIComponent","html","svgToDataURL","isInstanceOfElement","instance","nodePrototype","constructor","getPseudoElementStyle","className","pseudo","style","selector","cssText","content","formatCSSText","map","getPropertyPriority","join","formatCSSProperties","createTextNode","clonePseudoElement","nativeNode","clonedNode","err","styleElement","createElement","WOFF","JPEG","mimes","woff","woff2","ttf","eot","png","jpg","jpeg","gif","tiff","webp","getMimeType","extension","match","exec","getExtension","toLowerCase","isDataUrl","search","makeDataUrl","mimeType","fetchAsDataURL","init","process","res","fetch","status","Error","blob","reader","FileReader","onloadend","result","error","readAsDataURL","cache","resourceToDataURL","resourceUrl","contentType","cacheKey","includeQueryParams","test","getCacheKey","dataURL","cacheBust","Date","getTime","fetchRequestInit","headers","get","split","getContentFromDataUrl","imagePlaceholder","msg","message","console","warn","cloneSingleNode","HTMLCanvasElement","canvas","toDataURL","cloneNode","cloneCanvasElement","HTMLVideoElement","video","currentSrc","ctx","getContext","drawImage","poster","cloneVideoElement","HTMLIFrameElement","iframe","_a","contentDocument","body","_b","cloneIFrameElement","isSlotElement","tagName","toUpperCase","decorate","Element","targetStyle","sourceStyle","transformOrigin","forEach","value","endsWith","reducedFont","floor","substring","getAttribute","setProperty","cloneCSSStyle","clonePseudoElements","HTMLTextAreaElement","innerHTML","HTMLInputElement","cloneInputValue","HTMLSelectElement","clonedSelect","selectedOption","Array","from","children","find","child","cloneSelectValue","isRoot","filter","assignedNodes","childNodes","shadowRoot","reduce","deferred","clonedChild","cloneChildren","clone","uses","querySelectorAll","processedDefs","id","exist","querySelector","definition","nodes","values","ns","position","overflow","display","defs","ensureSVGSymbols","URL_REGEX","URL_WITH_FORMAT_REGEX","FONT_SRC_REGEX","resourceURL","baseURL","getContentFromUrl","resolvedURL","baseUrl","location","protocol","doc","implementation","createHTMLDocument","base","a","head","href","resolveUrl","escaped","RegExp","toRegex","shouldEmbed","embedResources","filteredCSSText","str","preferredFontFormat","format","filterPreferredFontFormat","urls","raw","quotation","parseURLs","css","embedProp","propName","propValue","cssString","embedImages","embedBackground","isImageElement","HTMLImageElement","SVGImageElement","baseVal","image","loading","srcset","embedImageNode","deferreds","all","embedChildren","cssFetchCache","fetchCSS","text","embedFonts","data","regexUrl","loadFonts","loc","startsWith","URL","parseCSS","source","keyframesRegex","matches","importRegex","unifiedRegex","lastIndex","parseWebFontRules","styleSheets","cssRules","ret","sheet","item","index","CSSRule","IMPORT_RULE","importIndex","metadata","rule","insertRule","catch","inline","getCSSRules","FONT_FACE_RULE","getWebFontRules","getWebFontCSS","rules","parentStyleSheet","toSvg","fontEmbedCSS","skipFonts","styleNode","sytleContent","firstChild","insertBefore","embedWebFonts","backgroundColor","manual","applyStyle","toCanvas","context","ratio","pixelRatio","FINAL_PROCESS","env","devicePixelRatio","parseInt","Number","isNaN","getPixelRatio","canvasWidth","canvasHeight","skipAutoScale","checkCanvasDimensions","fillStyle","fillRect","toPixelData","getImageData","toPng","toJpeg","quality","toBlob","binaryString","atob","undefined","len","binaryArray","Uint8Array","charCodeAt","Blob","canvasToBlob","getFontEmbedCSS","parser","processingInstructions","isValidNodeDefinitions","processNodeDefinitions","Parser","ProcessingInstructions","IsValidNodeDefinitions","ProcessNodeDefinitions","camelCaseMap","soFar","attr","lower","alwaysValid","HtmlParser","DomHandler","utils","traverseDom","isValidNode","preprocessingInstructions","instruction","shouldPreprocessNode","preprocessNode","processingInstruction","shouldProcessNode","replaceChildren","processNode","parseWithInstructions","domTree","decodeEntities","handler","parseComplete","dom","element","parseHtmlToTree","list","domTreeItem","parse","defaultProcessingInstructions","voidElementTags","processDefaultNode","indexOf","ShouldProcessNodeDefinitions","shouldProcessEveryNode","camelCase","React","camelCaseAttrMap","booleanAttrs","elementProps","attribs","entries","styleString","styles","singleStyle","jsonStyles","trim","createStyleJsonFromString","Function","includes","allChildren","apply","__createBinding","this","create","o","m","k","k2","desc","__esModule","writable","configurable","enumerable","__setModuleDefault","v","__importStar","mod","hasOwnProperty","call","Tokenizer_js_1","decode_js_1","formTags","Set","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","Map","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_c","_d","_e","startIndex","endIndex","openTagStart","tagname","attribname","attribvalue","stack","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","xmlMode","lowerCaseAttributeNames","tokenizer","Tokenizer","default","onparserinit","ontext","start","getSlice","ontextentity","cp","getSectionStart","fromCodePoint","isVoidElement","has","onopentagname","emitOpenTag","impliesClose","pop","onclosetag","onopentag","endOpenTag","isImplied","onopentagend","_f","pos","lastIndexOf","count","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","quote","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","substr","ondeclaration","onprocessinginstruction","oncomment","offset","oncommentend","oncdata","_g","_h","_j","_k","recognizeCDATA","oncdatastart","oncdataend","onend","reset","onreset","end","shiftBuffer","shift","write","chunk","running","pause","resume","parseChunk","done","CharCodes","State","isWhitespace","c","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","isNumber","Zero","Nine","Sequences","Cdata","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","state","Text","buffer","sectionStart","baseState","isSpecial","currentSequence","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","xmlDecodeTree","htmlDecodeTree","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","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","determineBranch","emitNamedEntity","masked","BinTrieFlags","VALUE_LENGTH","valueLength","allowLegacyEntity","Semi","entityStart","emitPartial","emitCodePoint","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","emitNumericEntity","strict","replaceCodePoint","stateInHexEntity","UpperF","LowerF","isHexDigit","cleanup","shouldContinue","handleTrailingData","__importDefault","DomUtils","parseFeed","getFeed","ElementType","createDomStream","parseDOM","parseDocument","DefaultHandler","Parser_js_1","Parser_js_2","domhandler_1","domhandler_2","root","callback","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","feed"],"sourceRoot":""}