1 |
- {"ast":null,"code":"/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { getAssetPath, proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\nlet CACHED_MAP;\nconst getIconMap = () => {\n if (typeof window === 'undefined') {\n return new Map();\n } else {\n if (!CACHED_MAP) {\n const win = window;\n win.Ionicons = win.Ionicons || {};\n CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();\n }\n return CACHED_MAP;\n }\n};\nconst getUrl = i => {\n let url = getSrc(i.src);\n if (url) {\n return url;\n }\n url = getName(i.name, i.icon, i.mode, i.ios, i.md);\n if (url) {\n return getNamedUrl(url, i);\n }\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n url = getSrc(i.icon[i.mode]);\n if (url) {\n return url;\n }\n }\n return null;\n};\nconst getNamedUrl = (iconName, iconEl) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n try {\n return getAssetPath(`svg/${iconName}.svg`);\n } catch (e) {\n /**\n * In the custom elements build version of ionicons, referencing an icon\n * by name will throw an invalid URL error because the asset path is not defined.\n * This catches that error and logs something that is more developer-friendly.\n * We also include a reference to the ion-icon element so developers can\n * figure out which instance of ion-icon needs to be updated.\n */\n console.warn(`[Ionicons Warning]: Could not load icon with name \"${iconName}\". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, iconEl);\n }\n};\nconst getName = (iconName, icon, mode, ios, md) => {\n // default to \"md\" if somehow the mode wasn't set\n mode = (mode && toLower(mode)) === 'ios' ? 'ios' : 'md';\n // if an icon was passed in using the ios or md attributes\n // set the iconName to whatever was passed in\n if (ios && mode === 'ios') {\n iconName = toLower(ios);\n } else if (md && mode === 'md') {\n iconName = toLower(md);\n } else {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n }\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n // only allow alpha characters and dash\n const invalidChars = iconName.replace(/[a-z]|-|\\d/gi, '');\n if (invalidChars !== '') {\n return null;\n }\n return iconName;\n};\nconst getSrc = src => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\nconst isSrc = str => str.length > 0 && /(\\/|\\.)/.test(str);\nconst isStr = val => typeof val === 'string';\nconst toLower = val => val.toLowerCase();\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nconst inheritAttributes = (el, attributes = []) => {\n const attributeObject = {};\n attributes.forEach(attr => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n/**\n * Returns `true` if the document or host element\n * has a `dir` set to `rtl`. The host value will always\n * take priority over the root document value.\n */\nconst isRTL = hostEl => {\n if (hostEl) {\n if (hostEl.dir !== '') {\n return hostEl.dir.toLowerCase() === 'rtl';\n }\n }\n return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';\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 name = elm.attributes[i].name;\n if (isStr(name) && name.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};\nconst isSvgDataUrl = url => url.startsWith('data:image/svg+xml');\nconst isEncodedDataUrl = url => url.indexOf(';utf8,') !== -1;\nconst ioniconContent = new Map();\nconst requests = new Map();\nlet parser;\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 /**\n * If the url is a data url of an svg, then try to parse it\n * with the DOMParser. This works with content security policies enabled.\n */\n if (isSvgDataUrl(url) && isEncodedDataUrl(url)) {\n if (!parser) {\n /**\n * Create an instance of the DOM parser. This creates a single\n * parser instance for the entire app, which is more efficient.\n */\n parser = new DOMParser();\n }\n const doc = parser.parseFromString(url, 'text/html');\n const svg = doc.querySelector('svg');\n if (svg) {\n ioniconContent.set(url, svg.outerHTML);\n }\n return Promise.resolve();\n } else {\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};\nconst iconCss = \":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;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%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !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)}\";\nconst IonIconStyle0 = iconCss;\nconst Icon = /*@__PURE__*/proxyCustomElement(class Icon extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.iconName = null;\n this.inheritedAttributes = {};\n this.didLoadIcon = false;\n this.svgContent = undefined;\n this.isVisible = false;\n this.mode = getIonMode();\n this.color = undefined;\n this.ios = undefined;\n this.md = undefined;\n this.flipRtl = undefined;\n this.name = undefined;\n this.src = undefined;\n this.icon = undefined;\n this.size = undefined;\n this.lazy = false;\n this.sanitize = true;\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);\n }\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n componentDidLoad() {\n /**\n * Addresses an Angular issue where property values are assigned after the 'connectedCallback' but prior to the registration of watchers.\n * This enhancement ensures the loading of an icon when the component has finished rendering and the icon has yet to apply the SVG data.\n * This modification pertains to the usage of Angular's binding syntax:\n * `<ion-icon [name]=\"myIconName\"></ion-icon>`\n */\n if (!this.didLoadIcon) {\n this.loadIcon();\n }\n }\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n waitUntilVisible(el, rootMargin, cb) {\n if (Build.isBrowser && this.lazy && typeof window !== 'undefined' && window.IntersectionObserver) {\n const io = this.io = new window.IntersectionObserver(data => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, {\n rootMargin\n });\n io.observe(el);\n } else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (ioniconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = ioniconContent.get(url);\n } else {\n // async if it hasn't been loaded\n getSvgContent(url, this.sanitize).then(() => this.svgContent = ioniconContent.get(url));\n }\n this.didLoadIcon = true;\n }\n }\n this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);\n }\n render() {\n const {\n flipRtl,\n iconName,\n inheritedAttributes,\n el\n } = this;\n const mode = this.mode || 'md';\n // we have designated that arrows & chevrons should automatically flip (unless flip-rtl is set to false) because \"back\" is left in ltr and right in rtl, and \"forward\" is the opposite\n const shouldAutoFlip = iconName ? (iconName.includes('arrow') || iconName.includes('chevron')) && flipRtl !== false : false;\n // if shouldBeFlippable is true, the icon should change direction when `dir` changes\n const shouldBeFlippable = flipRtl || shouldAutoFlip;\n return h(Host, Object.assign({\n role: \"img\",\n class: Object.assign(Object.assign({\n [mode]: true\n }, createColorClasses(this.color)), {\n [`icon-${this.size}`]: !!this.size,\n 'flip-rtl': shouldBeFlippable,\n 'icon-rtl': shouldBeFlippable && isRTL(el)\n })\n }, inheritedAttributes), Build.isBrowser && this.svgContent ? h(\"div\", {\n class: \"icon-inner\",\n innerHTML: this.svgContent\n }) : h(\"div\", {\n class: \"icon-inner\"\n }));\n }\n static get assetsDirs() {\n return [\"svg\"];\n }\n get el() {\n return this;\n }\n static get watchers() {\n return {\n \"name\": [\"loadIcon\"],\n \"src\": [\"loadIcon\"],\n \"icon\": [\"loadIcon\"],\n \"ios\": [\"loadIcon\"],\n \"md\": [\"loadIcon\"]\n };\n }\n static get style() {\n return IonIconStyle0;\n }\n}, [1, \"ion-icon\", {\n \"mode\": [1025],\n \"color\": [1],\n \"ios\": [1],\n \"md\": [1],\n \"flipRtl\": [4, \"flip-rtl\"],\n \"name\": [513],\n \"src\": [1],\n \"icon\": [8],\n \"size\": [1],\n \"lazy\": [4],\n \"sanitize\": [4],\n \"svgContent\": [32],\n \"isVisible\": [32]\n}, undefined, {\n \"name\": [\"loadIcon\"],\n \"src\": [\"loadIcon\"],\n \"icon\": [\"loadIcon\"],\n \"ios\": [\"loadIcon\"],\n \"md\": [\"loadIcon\"]\n}]);\nconst getIonMode = () => Build.isBrowser && typeof document !== 'undefined' && document.documentElement.getAttribute('mode') || 'md';\nconst createColorClasses = color => {\n return color ? {\n 'ion-color': true,\n [`ion-color-${color}`]: true\n } : null;\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-icon\"];\n components.forEach(tagName => {\n switch (tagName) {\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Icon);\n }\n break;\n }\n });\n}\nexport { Icon as I, defineCustomElement as d };","map":{"version":3,"names":["getAssetPath","proxyCustomElement","HTMLElement","Build","h","Host","CACHED_MAP","getIconMap","window","Map","win","Ionicons","map","getUrl","i","url","getSrc","src","getName","name","icon","mode","ios","md","getNamedUrl","iconName","iconEl","get","e","console","warn","toLower","isSrc","isStr","trim","invalidChars","replace","str","length","test","val","toLowerCase","inheritAttributes","el","attributes","attributeObject","forEach","attr","hasAttribute","value","getAttribute","removeAttribute","isRTL","hostEl","dir","document","validateContent","svgContent","div","createElement","innerHTML","childNodes","nodeName","removeChild","svgElm","firstElementChild","svgClass","setAttribute","isValid","elm","nodeType","indexOf","isSvgDataUrl","startsWith","isEncodedDataUrl","ioniconContent","requests","parser","getSvgContent","sanitize","req","fetch","DOMParser","doc","parseFromString","svg","querySelector","set","outerHTML","Promise","resolve","then","rsp","ok","text","iconCss","IonIconStyle0","Icon","constructor","__registerHost","__attachShadow","inheritedAttributes","didLoadIcon","undefined","isVisible","getIonMode","color","flipRtl","size","lazy","componentWillLoad","connectedCallback","waitUntilVisible","loadIcon","componentDidLoad","disconnectedCallback","io","disconnect","rootMargin","cb","isBrowser","IntersectionObserver","data","isIntersecting","observe","has","render","shouldAutoFlip","includes","shouldBeFlippable","Object","assign","role","class","createColorClasses","assetsDirs","watchers","style","documentElement","defineCustomElement","customElements","components","tagName","define","I","d"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@ionic/core/components/icon.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { getAssetPath, proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\n\nlet CACHED_MAP;\nconst getIconMap = () => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n else {\n if (!CACHED_MAP) {\n const win = window;\n win.Ionicons = win.Ionicons || {};\n CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();\n }\n return CACHED_MAP;\n }\n};\nconst getUrl = (i) => {\n let url = getSrc(i.src);\n if (url) {\n return url;\n }\n url = getName(i.name, i.icon, i.mode, i.ios, i.md);\n if (url) {\n return getNamedUrl(url, i);\n }\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n url = getSrc(i.icon[i.mode]);\n if (url) {\n return url;\n }\n }\n return null;\n};\nconst getNamedUrl = (iconName, iconEl) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n try {\n return getAssetPath(`svg/${iconName}.svg`);\n }\n catch (e) {\n /**\n * In the custom elements build version of ionicons, referencing an icon\n * by name will throw an invalid URL error because the asset path is not defined.\n * This catches that error and logs something that is more developer-friendly.\n * We also include a reference to the ion-icon element so developers can\n * figure out which instance of ion-icon needs to be updated.\n */\n console.warn(`[Ionicons Warning]: Could not load icon with name \"${iconName}\". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, iconEl);\n }\n};\nconst getName = (iconName, icon, mode, ios, md) => {\n // default to \"md\" if somehow the mode wasn't set\n mode = (mode && toLower(mode)) === 'ios' ? 'ios' : 'md';\n // if an icon was passed in using the ios or md attributes\n // set the iconName to whatever was passed in\n if (ios && mode === 'ios') {\n iconName = toLower(ios);\n }\n else if (md && mode === 'md') {\n iconName = toLower(md);\n }\n else {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n }\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n // only allow alpha characters and dash\n const invalidChars = iconName.replace(/[a-z]|-|\\d/gi, '');\n if (invalidChars !== '') {\n return null;\n }\n return iconName;\n};\nconst getSrc = (src) => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\nconst isSrc = (str) => str.length > 0 && /(\\/|\\.)/.test(str);\nconst isStr = (val) => typeof val === 'string';\nconst toLower = (val) => val.toLowerCase();\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nconst inheritAttributes = (el, attributes = []) => {\n const attributeObject = {};\n attributes.forEach(attr => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n/**\n * Returns `true` if the document or host element\n * has a `dir` set to `rtl`. The host value will always\n * take priority over the root document value.\n */\nconst isRTL = (hostEl) => {\n if (hostEl) {\n if (hostEl.dir !== '') {\n return hostEl.dir.toLowerCase() === 'rtl';\n }\n }\n return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';\n};\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 name = elm.attributes[i].name;\n if (isStr(name) && name.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};\nconst isSvgDataUrl = (url) => url.startsWith('data:image/svg+xml');\nconst isEncodedDataUrl = (url) => url.indexOf(';utf8,') !== -1;\n\nconst ioniconContent = new Map();\nconst requests = new Map();\nlet parser;\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 /**\n * If the url is a data url of an svg, then try to parse it\n * with the DOMParser. This works with content security policies enabled.\n */\n if (isSvgDataUrl(url) && isEncodedDataUrl(url)) {\n if (!parser) {\n /**\n * Create an instance of the DOM parser. This creates a single\n * parser instance for the entire app, which is more efficient.\n */\n parser = new DOMParser();\n }\n const doc = parser.parseFromString(url, 'text/html');\n const svg = doc.querySelector('svg');\n if (svg) {\n ioniconContent.set(url, svg.outerHTML);\n }\n return Promise.resolve();\n }\n else {\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 }\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;-webkit-box-sizing:content-box !important;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%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !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)}\";\nconst IonIconStyle0 = iconCss;\n\nconst Icon = /*@__PURE__*/ proxyCustomElement(class Icon extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.iconName = null;\n this.inheritedAttributes = {};\n this.didLoadIcon = false;\n this.svgContent = undefined;\n this.isVisible = false;\n this.mode = getIonMode();\n this.color = undefined;\n this.ios = undefined;\n this.md = undefined;\n this.flipRtl = undefined;\n this.name = undefined;\n this.src = undefined;\n this.icon = undefined;\n this.size = undefined;\n this.lazy = false;\n this.sanitize = true;\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);\n }\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n componentDidLoad() {\n /**\n * Addresses an Angular issue where property values are assigned after the 'connectedCallback' but prior to the registration of watchers.\n * This enhancement ensures the loading of an icon when the component has finished rendering and the icon has yet to apply the SVG data.\n * This modification pertains to the usage of Angular's binding syntax:\n * `<ion-icon [name]=\"myIconName\"></ion-icon>`\n */\n if (!this.didLoadIcon) {\n this.loadIcon();\n }\n }\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n waitUntilVisible(el, rootMargin, cb) {\n if (Build.isBrowser && this.lazy && typeof window !== 'undefined' && window.IntersectionObserver) {\n const io = (this.io = new window.IntersectionObserver((data) => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, { rootMargin }));\n io.observe(el);\n }\n else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (ioniconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = ioniconContent.get(url);\n }\n else {\n // async if it hasn't been loaded\n getSvgContent(url, this.sanitize).then(() => (this.svgContent = ioniconContent.get(url)));\n }\n this.didLoadIcon = true;\n }\n }\n this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);\n }\n render() {\n const { flipRtl, iconName, inheritedAttributes, el } = this;\n const mode = this.mode || 'md';\n // we have designated that arrows & chevrons should automatically flip (unless flip-rtl is set to false) because \"back\" is left in ltr and right in rtl, and \"forward\" is the opposite\n const shouldAutoFlip = iconName\n ? (iconName.includes('arrow') || iconName.includes('chevron')) && flipRtl !== false\n : false;\n // if shouldBeFlippable is true, the icon should change direction when `dir` changes\n const shouldBeFlippable = flipRtl || shouldAutoFlip;\n return (h(Host, Object.assign({ role: \"img\", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': shouldBeFlippable, 'icon-rtl': shouldBeFlippable && isRTL(el) }) }, inheritedAttributes), Build.isBrowser && this.svgContent ? (h(\"div\", { class: \"icon-inner\", innerHTML: this.svgContent })) : (h(\"div\", { class: \"icon-inner\" }))));\n }\n static get assetsDirs() { return [\"svg\"]; }\n get el() { return this; }\n static get watchers() { return {\n \"name\": [\"loadIcon\"],\n \"src\": [\"loadIcon\"],\n \"icon\": [\"loadIcon\"],\n \"ios\": [\"loadIcon\"],\n \"md\": [\"loadIcon\"]\n }; }\n static get style() { return IonIconStyle0; }\n}, [1, \"ion-icon\", {\n \"mode\": [1025],\n \"color\": [1],\n \"ios\": [1],\n \"md\": [1],\n \"flipRtl\": [4, \"flip-rtl\"],\n \"name\": [513],\n \"src\": [1],\n \"icon\": [8],\n \"size\": [1],\n \"lazy\": [4],\n \"sanitize\": [4],\n \"svgContent\": [32],\n \"isVisible\": [32]\n }, undefined, {\n \"name\": [\"loadIcon\"],\n \"src\": [\"loadIcon\"],\n \"icon\": [\"loadIcon\"],\n \"ios\": [\"loadIcon\"],\n \"md\": [\"loadIcon\"]\n }]);\nconst getIonMode = () => (Build.isBrowser && typeof document !== 'undefined' && document.documentElement.getAttribute('mode')) || 'md';\nconst createColorClasses = (color) => {\n return color\n ? {\n 'ion-color': true,\n [`ion-color-${color}`]: true,\n }\n : null;\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Icon);\n }\n break;\n } });\n}\n\nexport { Icon as I, defineCustomElement as d };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|