{"version":3,"sources":["node_modules/@esri/arcgis-html-sanitizer/dist/esm/index.js","node_modules/@arcgis/core/widgets/support/vnodeCache.js","node_modules/@arcgis/core/widgets/support/widgetUtils.js","node_modules/@arcgis/core/widgets/support/symbols.js","node_modules/@arcgis/core/widgets/support/jsxWidgetSupport.js","node_modules/@arcgis/core/widgets/support/jsxFactory.js","node_modules/@arcgis/core/libs/maquette/projection.js","node_modules/@arcgis/core/libs/maquette/dom.js","node_modules/@arcgis/core/libs/maquette/projector.js"],"sourcesContent":["/*!\n * @esri/arcgis-html-sanitizer - v3.0.1 - Tue Nov 15 2022 09:46:54 GMT-0800 (Pacific Standard Time)\n * Copyright (c) 2022 - Environmental Systems Research Institute, Inc.\n * Apache-2.0\n * \n * js-xss\n * Copyright (c) 2012-2018 Zongmin Lei(雷宗民) \n * http://ucdok.com\n * MIT License, see https://github.com/leizongmin/js-xss/blob/master/LICENSE for details\n */\n/**\n * Determine if the value is a plain object.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n */\nvar isPlainObject = function (value) {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n};\nvar lib$1 = {\n exports: {}\n};\nvar _default$1 = {};\nvar lib = {\n exports: {}\n};\nvar _default = {};\n\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList$1() {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr(name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr(name, value, options) {\n // do nothing\n}\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue$1(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n_default.whiteList = getDefaultWhiteList$1();\n_default.getDefaultWhiteList = getDefaultWhiteList$1;\n_default.onAttr = onAttr;\n_default.onIgnoreAttr = onIgnoreAttr;\n_default.safeAttrValue = safeAttrValue$1;\nvar util$1 = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar _$3 = util$1;\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle$1(css, onAttr) {\n css = _$3.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n function addNewAttr() {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _$3.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _$3.trim(source.slice(0, j));\n var value = _$3.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) ;else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n return _$3.trim(retCSS);\n}\nvar parser$2 = parseStyle$1;\n\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT$1 = _default;\nvar parseStyle = parser$2;\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull$1(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject$1(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS$2(options) {\n options = shallowCopyObject$1(options || {});\n options.whiteList = options.whiteList || DEFAULT$1.whiteList;\n options.onAttr = options.onAttr || DEFAULT$1.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT$1.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT$1.safeAttrValue;\n this.options = options;\n}\nFilterCSS$2.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;else if (typeof check === 'function') isWhite = check(value);else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n if (isWhite) {\n var ret = onAttr(name, value, opts);\n if (isNull$1(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n } else {\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull$1(ret)) {\n return ret;\n }\n }\n });\n return retCSS;\n};\nvar css = FilterCSS$2;\n\n/**\n * cssfilter\n *\n * @author 老雷\n */\n\n(function (module, exports) {\n var DEFAULT = _default;\n var FilterCSS = css;\n\n /**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\n function filterCSS(html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n }\n\n // 输出\n exports = module.exports = filterCSS;\n exports.FilterCSS = FilterCSS;\n for (var i in DEFAULT) exports[i] = DEFAULT[i];\n})(lib, lib.exports);\nvar util = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function (str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n }\n};\n\n/**\n * default settings\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS$1 = lib.exports.FilterCSS;\nvar getDefaultCSSWhiteList = lib.exports.getDefaultWhiteList;\nvar _$2 = util;\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\"autoplay\", \"controls\", \"crossorigin\", \"loop\", \"muted\", \"preload\", \"src\"],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n figcaption: [],\n figure: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n summary: [],\n sup: [],\n strong: [],\n strike: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\"autoplay\", \"controls\", \"crossorigin\", \"loop\", \"muted\", \"playsinline\", \"poster\", \"preload\", \"src\", \"height\", \"width\"]\n };\n}\nvar defaultCSSFilter = new FilterCSS$1();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _$2.trim(value);\n if (value === \"#\") return \"#\";\n if (!(value.substr(0, 7) === \"http://\" || value.substr(0, 8) === \"https://\" || value.substr(0, 7) === \"mailto:\" || value.substr(0, 4) === \"tel:\" || value.substr(0, 11) === \"data:image/\" || value.substr(0, 6) === \"ftp://\" || value.substr(0, 2) === \"./\" || value.substr(0, 3) === \"../\" || value[0] === \"#\" || value[0] === \"/\")) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a):/gi;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\" ? String.fromCharCode(parseInt(code.substr(1), 16)) : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str.replace(REGEXP_ATTR_VALUE_COLON, \":\").replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _$2.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function () {};\n }\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _$2.indexOf(tags, tag) !== -1;\n }\n var removeList = [];\n var posStart = false;\n return {\n onIgnoreTag: function (tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([posStart !== false ? posStart : options.position, end]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function (html) {\n var rethtml = \"\";\n var lastPos = 0;\n _$2.forEach(removeList, function (pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n }\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n var retHtml = \"\";\n var lastPos = 0;\n while (lastPos < html.length) {\n var i = html.indexOf(\"\", i);\n if (j === -1) {\n break;\n }\n lastPos = j + 3;\n }\n return retHtml;\n}\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function (char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n_default$1.whiteList = getDefaultWhiteList();\n_default$1.getDefaultWhiteList = getDefaultWhiteList;\n_default$1.onTag = onTag;\n_default$1.onIgnoreTag = onIgnoreTag;\n_default$1.onTagAttr = onTagAttr;\n_default$1.onIgnoreTagAttr = onIgnoreTagAttr;\n_default$1.safeAttrValue = safeAttrValue;\n_default$1.escapeHtml = escapeHtml;\n_default$1.escapeQuote = escapeQuote;\n_default$1.unescapeQuote = unescapeQuote;\n_default$1.escapeHtmlEntities = escapeHtmlEntities;\n_default$1.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\n_default$1.clearNonPrintableCharacter = clearNonPrintableCharacter;\n_default$1.friendlyAttrValue = friendlyAttrValue;\n_default$1.escapeAttrValue = escapeAttrValue;\n_default$1.onIgnoreTagStripAll = onIgnoreTagStripAll;\n_default$1.StripTagBody = StripTagBody;\n_default$1.stripCommentTag = stripCommentTag;\n_default$1.stripBlankChar = stripBlankChar;\n_default$1.cssFilter = defaultCSSFilter;\n_default$1.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\nvar parser$1 = {};\n\n/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\nvar _$1 = util;\n\n/**\n * get tag name\n *\n * @param {String} html e.g. ''\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _$1.spaceIndex(html);\n var tagName;\n if (i === -1) {\n tagName = html.slice(1, -1);\n } else {\n tagName = html.slice(1, i + 1);\n }\n tagName = _$1.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(tagStart, rethtml.length, currentTagName, currentHtml, isClosing(currentHtml));\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if (c === '\"' || c === \"'\") {\n var i = 1;\n var ic = html.charAt(currentPos - i);\n while (ic.trim() === \"\" || ic === \"=\") {\n if (ic === \"=\") {\n quoteStart = c;\n continue chariterator;\n }\n ic = html.charAt(currentPos - ++i);\n }\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n return rethtml;\n}\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\\\_:.-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr$1(html, onAttr) {\n var lastPos = 0;\n var lastMarkPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n function addAttr(name, value) {\n name = _$1.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n lastMarkPos = html.charAt(lastPos) === '\"' || html.charAt(lastPos) === \"'\" ? lastPos : findNextQuotationMark(html, i + 1);\n continue;\n }\n if (tmpName !== false) {\n if (i === lastMarkPos) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _$1.trim(html.slice(lastMarkPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _$1.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _$1.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_$1.trim(html.slice(lastPos))));\n }\n }\n return _$1.trim(retAttrs.join(\" \"));\n}\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\nfunction findNextQuotationMark(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"'\" || c === '\"') return i;\n return -1;\n }\n}\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\nfunction isQuoteWrapString(text) {\n if (text[0] === '\"' && text[text.length - 1] === '\"' || text[0] === \"'\" && text[text.length - 1] === \"'\") {\n return true;\n } else {\n return false;\n }\n}\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\nparser$1.parseTag = parseTag$1;\nparser$1.parseAttr = parseAttr$1;\n\n/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = lib.exports.FilterCSS;\nvar DEFAULT = _default$1;\nvar parser = parser$1;\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = util;\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\"\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\nfunction keysToLowerCase(obj) {\n var ret = {};\n for (var i in obj) {\n if (Array.isArray(obj[i])) {\n ret[i.toLowerCase()] = obj[i].map(function (item) {\n return item.toLowerCase();\n });\n } else {\n ret[i.toLowerCase()] = obj[i];\n }\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList (or allowList), onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error('Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time');\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n if (options.whiteList || options.allowList) {\n options.whiteList = keysToLowerCase(options.whiteList || options.allowList);\n } else {\n options.whiteList = DEFAULT.whiteList;\n }\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function (html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n stripIgnoreTagBody = DEFAULT.StripTagBody(options.stripIgnoreTagBody, onIgnoreTag);\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n var retHtml = parseTag(html, function (sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag)\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function (name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n }, escapeHtml);\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n return retHtml;\n};\nvar xss = FilterXSS;\n\n/**\n * xss\n *\n * @author Zongmin Lei\n */\n\n(function (module, exports) {\n var DEFAULT = _default$1;\n var parser = parser$1;\n var FilterXSS = xss;\n\n /**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\n function filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n }\n exports = module.exports = filterXSS;\n exports.filterXSS = filterXSS;\n exports.FilterXSS = FilterXSS;\n (function () {\n for (var i in DEFAULT) {\n exports[i] = DEFAULT[i];\n }\n for (var j in parser) {\n exports[j] = parser[j];\n }\n })();\n\n // using `xss` on the WebWorker, output `filterXSS` to the globals\n function isWorkerEnv() {\n return typeof self !== \"undefined\" && typeof DedicatedWorkerGlobalScope !== \"undefined\" && self instanceof DedicatedWorkerGlobalScope;\n }\n if (isWorkerEnv()) {\n self.filterXSS = module.exports;\n }\n})(lib$1, lib$1.exports);\n\n/* Copyright (c) 2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0\n *\n * js-xss\n * Copyright (c) 2012-2018 Zongmin Lei(雷宗民) \n * http://ucdok.com\n * The MIT License, see\n * https://github.com/leizongmin/js-xss/blob/master/LICENSE for details\n * */\n/**\n * The Sanitizer Class\n *\n * @export\n * @class Sanitizer\n */\nvar Sanitizer = /** @class */function () {\n function Sanitizer(filterOptions, extendDefaults) {\n var _this = this;\n // Supported HTML Spec: https://doc.arcgis.com/en/arcgis-online/reference/supported-html.htm\n this.arcgisWhiteList = {\n a: [\"href\", \"style\", \"target\"],\n abbr: [\"title\"],\n audio: [\"autoplay\", \"controls\", \"loop\", \"muted\", \"preload\"],\n b: [],\n br: [],\n dd: [\"style\"],\n div: [\"align\", \"style\"],\n dl: [\"style\"],\n dt: [\"style\"],\n em: [],\n figcaption: [\"style\"],\n figure: [\"style\"],\n font: [\"color\", \"face\", \"size\", \"style\"],\n h1: [\"style\"],\n h2: [\"style\"],\n h3: [\"style\"],\n h4: [\"style\"],\n h5: [\"style\"],\n h6: [\"style\"],\n hr: [],\n i: [],\n img: [\"alt\", \"border\", \"height\", \"src\", \"style\", \"width\"],\n li: [],\n ol: [],\n p: [\"style\"],\n source: [\"media\", \"src\", \"type\"],\n span: [\"style\"],\n strong: [],\n sub: [\"style\"],\n sup: [\"style\"],\n table: [\"border\", \"cellpadding\", \"cellspacing\", \"height\", \"style\", \"width\"],\n tbody: [],\n tr: [\"align\", \"height\", \"style\", \"valign\"],\n td: [\"align\", \"colspan\", \"height\", \"nowrap\", \"rowspan\", \"style\", \"valign\", \"width\"],\n th: [\"align\", \"colspan\", \"height\", \"nowrap\", \"rowspan\", \"style\", \"valign\", \"width\"],\n u: [],\n ul: [],\n video: [\"autoplay\", \"controls\", \"height\", \"loop\", \"muted\", \"poster\", \"preload\", \"width\"]\n };\n this.allowedProtocols = [\"http\", \"https\", \"mailto\", \"iform\", \"tel\", \"flow\", \"lfmobile\", \"arcgis-navigator\", \"arcgis-appstudio-player\", \"arcgis-survey123\", \"arcgis-collector\", \"arcgis-workforce\", \"arcgis-explorer\", \"arcgis-trek2there\", \"arcgis-quickcapture\", \"mspbi\", \"comgooglemaps\", \"pdfefile\", \"pdfehttp\", \"pdfehttps\", \"boxapp\", \"boxemm\", \"awb\", \"awbs\", \"gropen\", \"radarscope\"];\n this.arcgisFilterOptions = {\n allowCommentTag: true,\n safeAttrValue: function (tag, name, value, cssFilter) {\n // Take over safe attribute filtering for `a` `href`, `img` `src`,\n // and `source` `src` attributes, otherwise pass onto the\n // default `XSS.safeAttrValue` method.\n if (tag === \"a\" && name === \"href\" || (tag === \"img\" || tag === \"source\") && name === \"src\") {\n return _this.sanitizeUrl(value);\n }\n return lib$1.exports.safeAttrValue(tag, name, value, cssFilter);\n }\n };\n this._entityMap = {\n \"&\": \"8\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"/\": \"/\"\n };\n var xssFilterOptions;\n if (filterOptions && !extendDefaults) {\n // Override the defaults\n xssFilterOptions = filterOptions;\n } else if (filterOptions && extendDefaults) {\n // Extend the defaults\n xssFilterOptions = Object.create(this.arcgisFilterOptions);\n Object.keys(filterOptions).forEach(function (key) {\n if (key === \"whiteList\") {\n // Extend the whitelist by concatenating arrays\n xssFilterOptions.whiteList = _this._extendObjectOfArrays([_this.arcgisWhiteList, filterOptions.whiteList || {}]);\n } else {\n xssFilterOptions[key] = filterOptions[key];\n }\n });\n } else {\n // Only use the defaults\n xssFilterOptions = Object.create(this.arcgisFilterOptions);\n xssFilterOptions.whiteList = this.arcgisWhiteList;\n }\n this.xssFilterOptions = xssFilterOptions;\n // Make this readable to tests\n this._xssFilter = new lib$1.exports.FilterXSS(xssFilterOptions);\n }\n /**\n * Sanitizes value to remove invalid HTML tags.\n *\n * Note: If the value passed does not contain a valid JSON data type (String,\n * Number, JSON Object, Array, Boolean, or null), the value will be nullified.\n *\n * @param {any} value The value to sanitize.\n * @returns {any} The sanitized value.\n * @memberof Sanitizer\n */\n Sanitizer.prototype.sanitize = function (value, options) {\n if (options === void 0) {\n options = {};\n }\n switch (typeof value) {\n case \"number\":\n if (isNaN(value) || !isFinite(value)) {\n return null;\n }\n return value;\n case \"boolean\":\n return value;\n case \"string\":\n return this._xssFilter.process(value);\n case \"object\":\n return this._iterateOverObject(value, options);\n default:\n if (options.allowUndefined && typeof value === \"undefined\") {\n return;\n }\n return null;\n }\n };\n /**\n * Sanitizes a URL string following the allowed protocols and sanitization rules.\n *\n * @param {string} value The URL to sanitize.\n * @param {{ isProtocolRequired: boolean }} options Configuration options for URL checking.\n * @returns {string} The sanitized URL if it's valid, or an empty string if the URL is invalid.\n */\n Sanitizer.prototype.sanitizeUrl = function (value, options) {\n var _a = (options !== null && options !== void 0 ? options : {}).isProtocolRequired,\n isProtocolRequired = _a === void 0 ? true : _a;\n var protocol = this._trim(value.substring(0, value.indexOf(\":\")));\n var isRootUrl = value === '/';\n var isUrlFragment = /^#/.test(value);\n var isValidProtocol = protocol && this.allowedProtocols.indexOf(protocol.toLowerCase()) > -1;\n if (isRootUrl || isUrlFragment || isValidProtocol) {\n return lib$1.exports.escapeAttrValue(value);\n }\n if (!protocol && !isProtocolRequired) {\n return lib$1.exports.escapeAttrValue(\"https://\".concat(value));\n }\n return \"\";\n };\n /**\n * Sanitizes an HTML attribute value.\n *\n * @param {string} tag The tagname of the HTML element.\n * @param {string} attribute The attribute name of the HTML element.\n * @param {string} value The raw value to be used for the HTML attribute value.\n * @param {XSS.ICSSFilter} [cssFilter] The CSS filter to be used.\n * @returns {string} The sanitized attribute value.\n * @memberof Sanitizer\n */\n Sanitizer.prototype.sanitizeHTMLAttribute = function (tag, attribute, value, cssFilter) {\n // use the custom safeAttrValue function if provided\n if (typeof this.xssFilterOptions.safeAttrValue === \"function\") {\n return this.xssFilterOptions.safeAttrValue(tag, attribute, value,\n // @ts-expect-error safeAttrValue does handle undefined cssFilter\n cssFilter);\n }\n // otherwise use the default\n // @ts-ignore safeAttrValue does handle undefined cssFilter\n return lib$1.exports.safeAttrValue(tag, attribute, value, cssFilter);\n };\n /**\n * Checks if a value only contains valid HTML.\n *\n * @param {any} value The value to validate.\n * @returns {boolean}\n * @memberof Sanitizer\n */\n Sanitizer.prototype.validate = function (value, options) {\n if (options === void 0) {\n options = {};\n }\n var sanitized = this.sanitize(value, options);\n return {\n isValid: value === sanitized,\n sanitized: sanitized\n };\n };\n /**\n * Encodes the following characters, `& < > \\\" ' /` to their hexadecimal HTML entity code.\n * Example: \"·\" => \"8middot;\"\n *\n * @param {string} value The value to encode.\n * @returns {string} The encoded string value.\n * @memberof Sanitizer\n */\n Sanitizer.prototype.encodeHTML = function (value) {\n var _this = this;\n return String(value).replace(/[&<>\"'\\/]/g, function (s) {\n return _this._entityMap[s];\n });\n };\n /**\n * Encodes all non-alphanumeric ASCII characters to their hexadecimal HTML entity codes.\n * Example: \"alert(document.cookie)\" => \"alert(document.cookie)\"\n *\n * @param {string} value The value to encode.\n * @returns {string} The encoded string value.\n * @memberof Sanitizer\n */\n Sanitizer.prototype.encodeAttrValue = function (value) {\n var alphanumericRE = /^[a-zA-Z0-9]$/;\n return String(value).replace(/[\\x00-\\xFF]/g, function (c, idx) {\n return !alphanumericRE.test(c) ? \"&#x\".concat(Number(value.charCodeAt(idx)).toString(16), \";\") : c;\n });\n };\n /**\n * Extends an object of arrays by by concatenating arrays of the same object\n * keys. If the if the previous key's value is not an array, the next key's\n * value will replace the previous key. This method is used for extending the\n * whiteList in the XSS filter options.\n *\n * @private\n * @param {Array<{}>} objects An array of objects.\n * @returns {{}} The extended object.\n * @memberof Sanitizer\n */\n Sanitizer.prototype._extendObjectOfArrays = function (objects) {\n var finalObj = {};\n objects.forEach(function (obj) {\n Object.keys(obj).forEach(function (key) {\n if (Array.isArray(obj[key]) && Array.isArray(finalObj[key])) {\n finalObj[key] = finalObj[key].concat(obj[key]);\n } else {\n finalObj[key] = obj[key];\n }\n });\n });\n return finalObj;\n };\n /**\n * Iterate over a plain object or array to deeply sanitize each value.\n *\n * @private\n * @param {object} obj The object to iterate over.\n * @returns {(object | null)} The sanitized object.\n * @memberof Sanitizer\n */\n Sanitizer.prototype._iterateOverObject = function (obj, options) {\n var _this = this;\n if (options === void 0) {\n options = {};\n }\n try {\n var hasChanged_1 = false;\n var changedObj = void 0;\n if (Array.isArray(obj)) {\n changedObj = obj.reduce(function (prev, value) {\n var validation = _this.validate(value, options);\n if (validation.isValid) {\n return prev.concat([value]);\n } else {\n hasChanged_1 = true;\n return prev.concat([validation.sanitized]);\n }\n }, []);\n } else if (!isPlainObject(obj)) {\n if (options.allowUndefined && typeof obj === \"undefined\") {\n return;\n }\n return null;\n } else {\n var keys = Object.keys(obj);\n changedObj = keys.reduce(function (prev, key) {\n var value = obj[key];\n var validation = _this.validate(value, options);\n if (validation.isValid) {\n prev[key] = value;\n } else {\n hasChanged_1 = true;\n prev[key] = validation.sanitized;\n }\n return prev;\n }, {});\n }\n if (hasChanged_1) {\n return changedObj;\n }\n return obj;\n } catch (err) {\n return null;\n }\n };\n /**\n * Trim whitespace from the start and ends of a string.\n * @param {string} val The string to trim.\n * @returns {string} The trimmed string.\n */\n Sanitizer.prototype._trim = function (val) {\n // @ts-ignore This is used by Jest,\n // but TypeScript errors since it assumes `trim` is always available.\n return String.prototype.trim ? val.trim() : val.replace(/(^\\s*)|(\\s*$)/g, \"\");\n };\n return Sanitizer;\n}();\nexport { Sanitizer, Sanitizer as default };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nconst n = new Map();\nfunction t() {\n n.clear();\n}\nfunction e(t) {\n return n.get(t);\n}\nfunction c(t, e) {\n n.set(t, e);\n}\nfunction o(t) {\n n.delete(t);\n}\nexport { t as clearVNodeCache, o as deleteVNodeCache, e as getVNodeCache, c as setVNodeCache };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport e from \"@esri/arcgis-html-sanitizer\";\nimport t from \"../../core/ArrayPool.js\";\nimport { handlesGroup as n, makeHandle as r } from \"../../core/handleUtils.js\";\nimport \"../../core/has.js\";\nimport i from \"../../core/Logger.js\";\nimport { watch as o, syncAndInitial as s } from \"../../core/reactiveUtils.js\";\nimport { clearVNodeCache as a } from \"./vnodeCache.js\";\nvar c,\n l,\n d = function (e) {\n if (\"WebkitTransition\" in e.style) c = \"webkitTransitionEnd\", l = \"webkitAnimationEnd\";else {\n if (!(\"transition\" in e.style)) throw new Error(\"Your browser is not supported!\");\n c = \"transitionend\", l = \"animationend\";\n }\n },\n u = function (e) {\n c || d(e);\n },\n p = function (e, t) {\n return void 0 === t && (t = e + \"-active\"), function (n) {\n u(n);\n var r = !1,\n i = function (o) {\n r || (r = !0, n.removeEventListener(c, i), n.removeEventListener(l, i), n.classList.remove(e), n.classList.remove(t));\n };\n n.classList.add(e), n.addEventListener(c, i), n.addEventListener(l, i), requestAnimationFrame(function () {\n n.classList.add(t);\n });\n };\n },\n f = function (e, t) {\n return void 0 === t && (t = e + \"-active\"), function (n, r) {\n u(n);\n var i = !1,\n o = function (e) {\n i || (i = !0, n.removeEventListener(c, o), n.removeEventListener(l, o), r());\n };\n n.classList.add(e), n.addEventListener(c, o), n.addEventListener(l, o), requestAnimationFrame(function () {\n n.classList.add(t);\n });\n };\n };\nconst m = i.getLogger(\"esri.widgets.support.widgetUtils\");\nfunction g(e) {\n const n = t.acquire();\n for (let t = 0; t < arguments.length; t++) {\n const e = arguments[t],\n r = typeof e;\n if (\"string\" === r) n.push(e);else if (Array.isArray(e)) n.push.apply(n, e);else if (\"object\" === r) for (const t in e) e[t] && n.push(t);\n }\n const r = n.join(\" \");\n return t.release(n), r;\n}\nconst h = (() => {\n const e = new Map(),\n t = new ResizeObserver(t => {\n a();\n for (const n of t) e.get(n.target)?.(n);\n }),\n i = (n, i, o) => (e.has(n) && m.error(\"Already observing element\", n), e.set(n, i), t.observe(n, o), r(() => {\n t.unobserve(n), e.delete(n);\n }));\n return (e, t, a) => {\n let c = null;\n return n([o(() => \"function\" == typeof e ? e() : e, e => {\n c?.remove(), e && (c = i(e, t, a));\n }, s), r(() => c?.remove())]);\n };\n})();\nfunction v(e) {\n const t = e?.closest(\"[dir]\");\n return null !== t && t instanceof HTMLElement && \"rtl\" === t.dir || \"rtl\" === document.dir;\n}\nfunction w(e) {\n return v(e) ? \"rtl\" : \"ltr\";\n}\nfunction L(e) {\n const t = \"data-node-ref\";\n this[e.getAttribute(t)] = null;\n}\nfunction b(e) {\n const t = \"data-node-ref\";\n this[e.getAttribute(t)] = e;\n}\nfunction y(e, t) {\n return (\"enter\" === e ? p : f)(t);\n}\nconst E = [\"dd\", \"dl\", \"dt\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"sub\", \"sup\", ...[\"animate\", \"animatetransform\", \"circle\", \"clippath\", \"defs\", \"ellipse\", \"g\", \"image\", \"line\", \"lineargradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialgradient\", \"rect\", \"stop\", \"svg\", \"switch\", \"symbol\", \"text\", \"textpath\", \"tspan\", \"use\"]],\n A = E.reduce((e, t) => (e[t] = [], e), {}),\n j = [\"align\", \"alink\", \"alt\", \"bgcolor\", \"border\", \"cellpadding\", \"cellspacing\", \"class\", \"color\", \"cols\", \"colspan\", \"coords\", \"d\", \"dir\", \"face\", \"height\", \"hspace\", \"ismap\", \"lang\", \"marginheight\", \"marginwidth\", \"multiple\", \"nohref\", \"noresize\", \"noshade\", \"nowrap\", \"ref\", \"rel\", \"rev\", \"rows\", \"rowspan\", \"scrolling\", \"shape\", \"span\", \"summary\", \"tabindex\", \"title\", \"usemap\", \"valign\", \"value\", \"vlink\", \"vspace\", \"width\"],\n k = new e({\n whiteList: A,\n onTagAttr: (e, t, n) => {\n const r = `${t}=\"${n}\"`;\n if (j.includes(t)) return r;\n },\n stripIgnoreTag: !0,\n stripIgnoreTagBody: [\"script\", \"style\"]\n }, !0);\nfunction T(e, t) {\n const n = e.getBoundingClientRect(),\n r = t.getBoundingClientRect(),\n i = n.top + n.height,\n o = r.top + r.height,\n s = n.top,\n a = r.top;\n (i > o || s < a) && e.scrollIntoView({\n block: \"end\"\n });\n}\nfunction x(e) {\n return \"Enter\" === e || \" \" === e;\n}\nexport { E as additionalAllowedTags, g as classes, y as cssTransition, L as discardNode, w as getDir, x as isActivationKey, v as isRTL, T as keepMenuItemWithinView, h as onResize, k as renderingSanitizer, j as safeAttrs, b as storeNode };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nconst t = Symbol(\"widget\"),\n e = Symbol(\"widget-test-data\");\nexport { t as widgetSymbol, e as widgetTestDataSymbol };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { makeHandle as e } from \"../../core/handleUtils.js\";\nimport { widgetTestDataSymbol as t, widgetSymbol as r } from \"./symbols.js\";\nconst o = [],\n n = {},\n i = new WeakMap();\nfunction d(e, t) {\n let r = t.children;\n if (r?.length) for (let o = 0; o < r.length; ++o) r[o] = d(e, r[o]);else r = o;\n const i = t.vnodeSelector;\n if (f(i)) {\n const o = t.properties || n,\n d = o.key || i;\n return {\n vnodeSelector: \"div\",\n properties: {\n key: d,\n afterCreate: s,\n afterUpdate: c,\n afterRemoved: a,\n parentWidget: e,\n widgetConstructor: i,\n widgetProperties: {\n ...o,\n key: d,\n children: r\n }\n },\n children: void 0,\n text: void 0,\n domNode: null\n };\n }\n return t;\n}\nfunction s(r, o, n, {\n parentWidget: d,\n widgetConstructor: s,\n widgetProperties: c\n}) {\n const f = new s(c);\n f.container = r, i.set(r, f), f.afterCreate?.(f, r), d.addHandles(e(() => a(r))), queueMicrotask(() => {\n f[t].projector.renderNow();\n });\n}\nfunction c(e, t, r, {\n widgetProperties: o\n}) {\n const n = i.get(e);\n n && (n.set(o), n.afterUpdate?.(n, e));\n}\nfunction a(e) {\n const t = i.get(e);\n t && (t.afterRemoved?.(t, e), t.destroy(), i.delete(e));\n}\nfunction f(e) {\n return \"function\" == typeof e && e[r];\n}\nexport { f as isWidgetConstructor, d as processWidgets };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { isWidgetConstructor as r } from \"./jsxWidgetSupport.js\";\nvar e = function (r) {\n return {\n vnodeSelector: \"\",\n properties: void 0,\n children: void 0,\n text: r.toString(),\n domNode: null\n };\n },\n o = function (r, t) {\n for (var n = 0, i = r.length; n < i; n++) {\n var d = r[n];\n Array.isArray(d) ? o(d, t) : null != d && !1 !== d && (d.hasOwnProperty(\"vnodeSelector\") || (d = e(d)), t.push(d));\n }\n },\n t = function (r, e) {\n for (var t = [], n = 2; n < arguments.length; n++) t[n - 2] = arguments[n];\n if (1 === t.length && \"string\" == typeof t[0]) return {\n vnodeSelector: r,\n properties: e || void 0,\n children: void 0,\n text: t[0],\n domNode: null\n };\n var i = [];\n return o(t, i), {\n vnodeSelector: r,\n properties: e || void 0,\n children: i,\n text: void 0,\n domNode: null\n };\n };\nfunction n(e, o, ...n) {\n return \"function\" != typeof e || r(e) ? t(e, o, ...n) : e(o, ...n);\n}\nfunction i(...r) {\n return r;\n}\nexport { n as tsx, i as tsxFragment };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { renderingSanitizer as e } from \"../../widgets/support/widgetUtils.js\";\nconst t = \"http://www.w3.org/\",\n r = `${t}2000/svg`,\n o = `${t}1999/xlink`;\nlet i = [],\n n = (e, t) => {\n let r = {};\n return Object.keys(e).forEach(t => {\n r[t] = e[t];\n }), t && Object.keys(t).forEach(e => {\n r[e] = t[e];\n }), r;\n },\n s = (e, t) => e.vnodeSelector === t.vnodeSelector && (e.properties && t.properties ? e.properties.key === t.properties.key && e.properties.bind === t.properties.bind : !e.properties && !t.properties),\n l = e => {\n if (\"string\" != typeof e) throw new Error(\"Style values must be strings\");\n },\n p = (e, t, r) => {\n if (\"\" !== t.vnodeSelector) for (let o = r; o < e.length; o++) if (s(e[o], t)) return o;\n return -1;\n },\n d = (e, t, r, o) => {\n let i = e[t];\n if (\"\" === i.vnodeSelector) return;\n let n = i.properties;\n if (!(n ? void 0 === n.key ? n.bind : n.key : void 0)) for (let l = 0; l < e.length; l++) if (l !== t) {\n let t = e[l];\n if (s(t, i)) throw new Error(`${r.vnodeSelector} had a ${i.vnodeSelector} child ${\"added\" === o ? o : \"removed\"}, but there is now more than one. You must add unique key properties to make them distinguishable.`);\n }\n },\n a = e => {\n if (e.properties) {\n let t = e.properties.enterAnimation;\n t && t(e.domNode, e.properties);\n }\n },\n f = [],\n c = !1,\n u = e => {\n (e.children || []).forEach(u), e.properties && e.properties.afterRemoved && e.properties.afterRemoved.apply(e.properties.bind || e.properties, [e.domNode]);\n },\n m = () => {\n c = !1, f.forEach(u), f.length = 0;\n },\n h = e => {\n f.push(e), c || (c = !0, \"undefined\" != typeof window && \"requestIdleCallback\" in window ? window.requestIdleCallback(m, {\n timeout: 16\n }) : setTimeout(m, 16));\n },\n v = e => {\n let t = e.domNode;\n if (e.properties) {\n let r = e.properties.exitAnimation;\n if (r) {\n t.style.pointerEvents = \"none\";\n let o = () => {\n t.parentNode && (t.parentNode.removeChild(t), h(e));\n };\n return void r(t, o, e.properties);\n }\n }\n t.parentNode && (t.parentNode.removeChild(t), h(e));\n },\n y = (t, i, n) => {\n if (!i) return;\n let s = n.eventHandlerInterceptor,\n p = Object.keys(i),\n d = p.length;\n for (let a = 0; a < d; a++) {\n let d = p[a],\n f = i[d];\n if (\"className\" === d) throw new Error('Property \"className\" is not supported, use \"class\".');\n if (\"class\" === d) k(t, f, !0);else if (\"classes\" === d) {\n let e = Object.keys(f),\n r = e.length;\n for (let o = 0; o < r; o++) {\n let r = e[o];\n f[r] && t.classList.add(r);\n }\n } else if (\"styles\" === d) {\n let e = Object.keys(f),\n r = e.length;\n for (let o = 0; o < r; o++) {\n let r = e[o],\n i = f[r];\n i && (l(i), n.styleApplyer(t, r, i));\n }\n } else if (\"key\" !== d && null != f) {\n let l = typeof f;\n \"function\" === l ? (0 === d.lastIndexOf(\"on\", 0) && (s && (f = s(d, f, t, i)), \"oninput\" === d && function () {\n let e = f;\n f = function (t) {\n e.apply(this, [t]), t.target[\"oninput-value\"] = t.target.value;\n };\n }()), t[d] = f) : n.namespace === r ? \"href\" === d ? t.setAttributeNS(o, d, f) : t.setAttribute(d, f) : \"string\" === l && \"value\" !== d ? \"innerHTML\" === d ? t[d] = e.sanitize(f) : g(t) && d in t ? t[d] = f : t.setAttribute(d, f) : t[d] = f;\n }\n }\n };\nfunction g(e) {\n if (!(e instanceof Element && e.tagName.includes(\"-\"))) return !1;\n const t = window.customElements.get(e.tagName.toLowerCase());\n return !!t && e instanceof t;\n}\nlet N,\n b = (e, t, r) => {\n if (t) for (let o of t) x(o, e, void 0, r);\n },\n w = (e, t, r) => {\n b(e, t.children, r), t.text && (e.textContent = t.text), y(e, t.properties, r), t.properties && t.properties.afterCreate && t.properties.afterCreate.apply(t.properties.bind || t.properties, [e, r, t.vnodeSelector, t.properties, t.children]);\n },\n x = (e, t, o, i) => {\n let s,\n l = 0,\n p = e.vnodeSelector,\n d = t.ownerDocument;\n if (\"\" === p) s = e.domNode = d.createTextNode(e.text), void 0 !== o ? t.insertBefore(s, o) : t.appendChild(s);else {\n for (let a = 0; a <= p.length; ++a) {\n let f = p.charAt(a);\n if (a === p.length || \".\" === f || \"#\" === f) {\n let f = p.charAt(l - 1),\n c = p.slice(l, a);\n \".\" === f ? s.classList.add(c) : \"#\" === f ? s.id = c : (\"svg\" === c && (i = n(i, {\n namespace: r\n })), void 0 !== i.namespace ? s = e.domNode = d.createElementNS(i.namespace, c) : (s = e.domNode = e.domNode || d.createElement(c), \"input\" === c && e.properties && void 0 !== e.properties.type && s.setAttribute(\"type\", e.properties.type)), void 0 !== o ? t.insertBefore(s, o) : s.parentNode !== t && t.appendChild(s)), l = a + 1;\n }\n }\n w(s, e, i);\n }\n },\n k = (e, t, r) => {\n t && t.split(\" \").forEach(t => {\n t && e.classList.toggle(t, r);\n });\n },\n A = (t, i, n, s) => {\n if (!n) return;\n let p = !1,\n d = Object.keys(n),\n a = d.length;\n for (let f = 0; f < a; f++) {\n let a = d[f],\n c = n[a],\n u = i[a];\n if (\"class\" === a) u !== c && (k(t, u, !1), k(t, c, !0));else if (\"classes\" === a) {\n let e = t.classList,\n r = Object.keys(c),\n o = r.length;\n for (let t = 0; t < o; t++) {\n let o = r[t],\n i = !!c[o];\n i !== !!u[o] && (p = !0, i ? e.add(o) : e.remove(o));\n }\n } else if (\"styles\" === a) {\n let e = Object.keys(c),\n r = e.length;\n for (let o = 0; o < r; o++) {\n let r = e[o],\n i = c[r];\n i !== u[r] && (p = !0, i ? (l(i), s.styleApplyer(t, r, i)) : s.styleApplyer(t, r, \"\"));\n }\n } else if (c || \"string\" != typeof u || (c = \"\"), \"value\" !== a || g(t)) {\n if (c !== u) {\n let i = typeof c;\n \"function\" === i && s.eventHandlerInterceptor || (s.namespace === r ? \"href\" === a ? t.setAttributeNS(o, a, c) : t.setAttribute(a, c) : \"string\" === i ? \"innerHTML\" === a ? t[a] = e.sanitize(c) : \"role\" === a && \"\" === c ? t.removeAttribute(a) : g(t) && a in t ? t[a] = c : t.setAttribute(a, c) : t[a] !== c && (t[a] = c), p = !0);\n }\n } else {\n let e = t[a];\n e !== c && (t[\"oninput-value\"] ? e === t[\"oninput-value\"] : c !== u) && (t[a] = c, t[\"oninput-value\"] = void 0), c !== u && (p = !0);\n }\n }\n return p;\n },\n S = (e, t, r, o, n) => {\n if (r === o) return !1;\n o = o || i;\n let l,\n f = (r = r || i).length,\n c = o.length,\n u = 0,\n m = 0,\n h = !1;\n for (; m < c;) {\n let i = u < f ? r[u] : void 0,\n c = o[m];\n if (void 0 !== i && s(i, c)) h = N(i, c, n) || h, u++;else {\n let i = p(r, c, u + 1);\n if (i >= 0) {\n for (l = u; l < i; l++) v(r[l]), d(r, l, e, \"removed\");\n h = N(r[i], c, n) || h, u = i + 1;\n } else x(c, t, u < f ? r[u].domNode : void 0, n), a(c), d(o, m, e, \"added\");\n }\n m++;\n }\n if (f > u) for (l = u; l < f; l++) v(r[l]), d(r, l, e, \"removed\");\n return h;\n };\nN = (e, t, o) => {\n let i = e.domNode,\n s = !1;\n if (e === t) return !1;\n let l = !1;\n if (\"\" === t.vnodeSelector) {\n if (t.text !== e.text) {\n let e = i.ownerDocument.createTextNode(t.text);\n return i.parentNode.replaceChild(e, i), t.domNode = e, s = !0, s;\n }\n t.domNode = i;\n } else 0 === t.vnodeSelector.lastIndexOf(\"svg\", 0) && (o = n(o, {\n namespace: r\n })), e.text !== t.text && (l = !0, void 0 === t.text ? i.removeChild(i.firstChild) : i.textContent = t.text), t.domNode = i, l = S(t, i, e.children, t.children, o) || l, l = A(i, e.properties, t.properties, o) || l, t.properties && t.properties.afterUpdate && t.properties.afterUpdate.apply(t.properties.bind || t.properties, [i, o, t.vnodeSelector, t.properties, t.children]);\n return l && t.properties && t.properties.updateAnimation && t.properties.updateAnimation(i, t.properties, e.properties), s;\n};\nlet C = (e, t) => ({\n getLastRender: () => e,\n update: r => {\n if (e.vnodeSelector !== r.vnodeSelector) throw new Error(\"The selector for the root VNode may not be changed. (consider using dom.merge and add one extra level to the virtual DOM)\");\n let o = e;\n e = r, N(o, r, t);\n },\n domNode: e.domNode\n});\nexport { x as createDom, C as createProjection, n as extend, w as initPropertiesAndChildren };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { extend as e, createDom as r, createProjection as o, initPropertiesAndChildren as t } from \"./projection.js\";\nconst p = {\n namespace: void 0,\n performanceLogger: () => {},\n eventHandlerInterceptor: void 0,\n styleApplyer: (e, r, o) => {\n \"-\" === r.charAt(0) ? e.style.setProperty(r, o) : e.style[r] = o;\n }\n};\nlet d = r => e(p, r),\n n = {\n create: (e, t) => (t = d(t), r(e, document.createElement(\"div\"), void 0, t), o(e, t)),\n append: (e, t, p) => (p = d(p), r(t, e, void 0, p), o(t, p)),\n insertBefore: (e, t, p) => (p = d(p), r(t, e.parentNode, e, p), o(t, p)),\n merge: (e, r, p) => (p = d(p), r.domNode = e, t(e, r, p), o(r, p)),\n replace: (e, t, p) => (p = d(p), r(t, e.parentNode, e, p), e.parentNode.removeChild(e), o(t, p))\n };\nexport { d as applyDefaultProjectionOptions, n as dom };","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { applyDefaultProjectionOptions as e, dom as r } from \"./dom.js\";\nlet t,\n n = (e, r) => {\n let t = [];\n for (; e && e !== r;) t.push(e), e = e.parentNode;\n return t;\n };\nt = Array.prototype.find ? (e, r) => e.find(r) : (e, r) => e.filter(r)[0];\nlet o = (e, r) => {\n let n = e;\n return r.forEach(e => {\n n = n && n.children ? t(n.children, r => r.domNode === e) : void 0;\n }), n;\n },\n d = (e, r, t) => {\n let d = function (d) {\n t(\"domEvent\", d);\n let i = r(),\n p = n(d.currentTarget, i.domNode);\n p.reverse();\n let l,\n a = o(i.getLastRender(), p);\n return e.scheduleRender(), a && (l = a.properties[`on${d.type}`].apply(a.properties.bind || this, arguments)), t(\"domEventProcessed\", d), l;\n };\n return (e, r, t, n) => d;\n },\n i = t => {\n let n,\n o,\n i = e(t),\n p = i.performanceLogger,\n l = !0,\n a = !1,\n s = [],\n c = [],\n u = (e, r, t) => {\n let o,\n l = () => o;\n i.eventHandlerInterceptor = d(n, l, p), o = e(r, t(), i), s.push(o), c.push(t);\n },\n f = () => {\n if (o = void 0, l) {\n l = !1, p(\"renderStart\", void 0);\n for (let e = 0; e < s.length; e++) {\n let r = c[e]();\n p(\"rendered\", void 0), s[e].update(r), p(\"patched\", void 0);\n }\n p(\"renderDone\", void 0), l = !0;\n }\n };\n return n = {\n renderNow: f,\n scheduleRender: () => {\n o || a || (o = requestAnimationFrame(f));\n },\n stop: () => {\n o && (cancelAnimationFrame(o), o = void 0), a = !0;\n },\n resume: () => {\n a = !1, l = !0, n.scheduleRender();\n },\n append: (e, t) => {\n u(r.append, e, t);\n },\n insertBefore: (e, t) => {\n u(r.insertBefore, e, t);\n },\n merge: (e, t) => {\n u(r.merge, e, t);\n },\n replace: (e, t) => {\n u(r.replace, e, t);\n },\n detach: e => {\n for (let r = 0; r < c.length; r++) if (c[r] === e) return c.splice(r, 1), s.splice(r, 1)[0];\n throw new Error(\"renderFunction was not found\");\n }\n }, n;\n };\nexport { i as createProjector };"],"mappings":"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","names":["i","j","css","onAttr","c","onIgnoreAttr","safeAttrValue","DEFAULT","FilterCSS","xss","str","onTag","escapeHtml","v","isClosing","onIgnoreTag","onTagAttr","onIgnoreTagAttr","html","ret","parser","FilterXSS","Sanitizer","s","t","e","e","n","t","r","i","o","a","c","e","t","A","e","t","n","r","e","t","e","o","n","d","e","t","r","i","s","c","f","e","r","o","t","n","i","d","t","o","i","n","e","r","s","d","l","a","f","c","m","h","v","p","k","g","b","x","A","u","p","e","r","o","d","n","t","x","t","n","e","r","o","d","i","p","l","a","s","c","u","f"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}