{"version":3,"sources":["webpack:///./node_modules/ionicons/dist/esm/ion-icon.entry.js"],"names":["validateContent","svgContent","div","document","createElement","innerHTML","i","childNodes","length","nodeName","toLowerCase","removeChild","svgElm","firstElementChild","svgClass","getAttribute","setAttribute","trim","isValid","elm","nodeType","attributes","val","value","indexOf","ioniconContent","Map","requests","getSvgContent","url","sanitize","req","get","fetch","set","Promise","resolve","then","rsp","ok","text","iconCss","Icon","hostRef","this","iconName","isVisible","mode","getIonMode","lazy","waitUntilVisible","el","loadIcon","io","disconnect","undefined","rootMargin","cb","window","IntersectionObserver","data","isIntersecting","observe","has","label","name","icon","ios","md","ariaLabel","ariaHidden","replace","flipRtl","role","class","Object","assign","createColorClasses","color","size","ownerDocument","dir","documentElement","style"],"mappings":"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","file":"js/chunk-2d0d5c33.d98bbfcf.js","sourcesContent":["import { r as registerInstance, h, H as Host, a as getElement } from './index-468d974f.js';\nimport { i as isStr, g as getUrl, b as getName } from './utils-4f847845.js';\n\nconst validateContent = (svgContent) => {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm)) {\n return div.innerHTML;\n }\n }\n return '';\n};\nconst isValid = (elm) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n for (let i = 0; i < elm.attributes.length; i++) {\n const val = elm.attributes[i].value;\n if (isStr(val) && val.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i])) {\n return false;\n }\n }\n }\n return true;\n};\n\nconst ioniconContent = new Map();\nconst requests = new Map();\nconst getSvgContent = (url, sanitize) => {\n // see if we already have a request for this url\n let req = requests.get(url);\n if (!req) {\n if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {\n // we don't already have a request\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n if (svgContent && sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n ioniconContent.set(url, svgContent || '');\n });\n }\n ioniconContent.set(url, '');\n });\n // cache for the same requests\n requests.set(url, req);\n }\n else {\n // set to empty for ssr scenarios and resolve promise\n ioniconContent.set(url, '');\n return Promise.resolve();\n }\n }\n return req;\n};\n\nconst iconCss = \":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}:host(.flip-rtl) .icon-inner{transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}\";\n\nconst Icon = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.iconName = null;\n this.isVisible = false;\n /**\n * The mode determines which platform styles to use.\n */\n this.mode = getIonMode();\n /**\n * If enabled, ion-icon will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n this.lazy = false;\n /**\n * When set to `false`, SVG content that is HTTP fetched will not be checked\n * if the response SVG content has any `