18ecd4e58c490164271857e53a26ab46fdaeda75106f25fea9a8a198fd89a104.json 30 KB

1
  1. {"ast":null,"code":"import { proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\nimport { i as isStr, b as inheritAttributes, g as getUrl, c as getName, d as isRTL } from './utils.js';\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 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 iconCss;\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}]);\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$1() {\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}\nconst IonIcon = Icon;\nconst defineCustomElement = defineCustomElement$1;\nexport { IonIcon, defineCustomElement };","map":{"version":3,"names":["proxyCustomElement","HTMLElement","Build","h","Host","i","isStr","b","inheritAttributes","g","getUrl","c","getName","d","isRTL","validateContent","svgContent","div","document","createElement","innerHTML","childNodes","length","nodeName","toLowerCase","removeChild","svgElm","firstElementChild","svgClass","getAttribute","setAttribute","trim","isValid","elm","nodeType","attributes","name","indexOf","isSvgDataUrl","url","startsWith","isEncodedDataUrl","ioniconContent","Map","requests","parser","getSvgContent","sanitize","req","get","fetch","DOMParser","doc","parseFromString","svg","querySelector","set","outerHTML","Promise","resolve","then","rsp","ok","text","iconCss","Icon","constructor","__registerHost","__attachShadow","iconName","inheritedAttributes","didLoadIcon","undefined","isVisible","mode","getIonMode","color","ios","md","flipRtl","src","icon","size","lazy","componentWillLoad","el","connectedCallback","waitUntilVisible","loadIcon","componentDidLoad","disconnectedCallback","io","disconnect","rootMargin","cb","isBrowser","window","IntersectionObserver","data","isIntersecting","observe","has","render","shouldAutoFlip","includes","shouldBeFlippable","Object","assign","role","class","createColorClasses","assetsDirs","watchers","style","documentElement","defineCustomElement$1","customElements","components","forEach","tagName","define","IonIcon","defineCustomElement"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/ionicons/components/ion-icon.js"],"sourcesContent":["import { proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\nimport { i as isStr, b as inheritAttributes, g as getUrl, c as getName, d as isRTL } from './utils.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 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)}\";\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 iconCss; }\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 }]);\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$1() {\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\nconst IonIcon = Icon;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonIcon, defineCustomElement };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}