@siemens/ix-icons 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +92 -25
- package/components/index.js.map +1 -1
- package/dist/cjs/{index-DUsbo4-K.js → index-HU55KNQP.js} +78 -18
- package/dist/cjs/index-HU55KNQP.js.map +1 -0
- package/dist/cjs/index.cjs.js +31 -12
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/ix-icon.cjs.entry.js +1 -1
- package/dist/cjs/ix-icons.cjs.js +3 -3
- package/dist/cjs/ix-icons.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/icon/icon.js +35 -17
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/icon/parser.js +1 -1
- package/dist/collection/components/icon/parser.js.map +1 -1
- package/dist/esm/{index-BiqddxKp.js → index-CyicTMfq.js} +78 -18
- package/dist/esm/index-CyicTMfq.js.map +1 -0
- package/dist/esm/index.js +32 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ix-icon.entry.js +1 -1
- package/dist/esm/ix-icons.js +4 -4
- package/dist/esm/ix-icons.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/ix-icons/index.esm.js +1 -1
- package/dist/ix-icons/index.esm.js.map +1 -1
- package/dist/ix-icons/ix-icons.esm.js +1 -1
- package/dist/ix-icons/ix-icons.esm.js.map +1 -1
- package/dist/ix-icons/p-9fcb498f.entry.js +2 -0
- package/dist/ix-icons/p-CyicTMfq.js +3 -0
- package/dist/ix-icons/p-CyicTMfq.js.map +1 -0
- package/dist/ix-icons/svg/command-line-filled.svg +1 -0
- package/dist/ix-icons/svg/command-line.svg +1 -0
- package/dist/ix-icons/svg/monitor-filled.svg +1 -1
- package/dist/ix-icons/svg/monitor.svg +1 -1
- package/dist/ix-icons/svg/operating-system-add.svg +1 -0
- package/dist/ix-icons/svg/operating-system-settings.svg +1 -0
- package/dist/ix-icons/svg/palette-filled.svg +1 -0
- package/dist/ix-icons/svg/palette.svg +1 -0
- package/dist/ix-icons/svg/screen-duplicate-filled.svg +1 -1
- package/dist/ix-icons/svg/screen-duplicate.svg +1 -1
- package/dist/ix-icons/svg/screen-filled.svg +1 -1
- package/dist/ix-icons/svg/screen-settings-filled.svg +1 -1
- package/dist/ix-icons/svg/screen-settings.svg +1 -1
- package/dist/ix-icons/svg/screen.svg +1 -1
- package/dist/ix-icons/svg/screens-filled.svg +1 -1
- package/dist/ix-icons/svg/theme-filled.svg +1 -0
- package/dist/ix-icons/svg/theme.svg +1 -0
- package/dist/sample.json +8 -0
- package/dist/types/stencil-public-runtime.d.ts +35 -11
- package/icons/index.d.ts +8 -0
- package/icons/index.js +17 -9
- package/icons/index.mjs +17 -9
- package/icons/package.json +1 -1
- package/package.json +4 -4
- package/svg/command-line-filled.svg +1 -0
- package/svg/command-line.svg +1 -0
- package/svg/monitor-filled.svg +1 -1
- package/svg/monitor.svg +1 -1
- package/svg/operating-system-add.svg +1 -0
- package/svg/operating-system-settings.svg +1 -0
- package/svg/palette-filled.svg +1 -0
- package/svg/palette.svg +1 -0
- package/svg/screen-duplicate-filled.svg +1 -1
- package/svg/screen-duplicate.svg +1 -1
- package/svg/screen-filled.svg +1 -1
- package/svg/screen-settings-filled.svg +1 -1
- package/svg/screen-settings.svg +1 -1
- package/svg/screen.svg +1 -1
- package/svg/screens-filled.svg +1 -1
- package/svg/theme-filled.svg +1 -0
- package/svg/theme.svg +1 -0
- package/dist/cjs/index-DUsbo4-K.js.map +0 -1
- package/dist/esm/index-BiqddxKp.js.map +0 -1
- package/dist/ix-icons/p-6b0af2cb.entry.js +0 -2
- package/dist/ix-icons/p-BiqddxKp.js +0 -3
- package/dist/ix-icons/p-BiqddxKp.js.map +0 -1
- /package/dist/ix-icons/{p-6b0af2cb.entry.js.map → p-9fcb498f.entry.js.map} +0 -0
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as getAssetPath, r as registerInstance, h, H as Host
|
|
2
|
-
export { c as setAssetPath } from './index-
|
|
1
|
+
import { g as getAssetPath, r as registerInstance, a as getElement, h, H as Host } from './index-CyicTMfq.js';
|
|
2
|
+
export { c as setAssetPath } from './index-CyicTMfq.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Provide custom SVG path for icons
|
|
@@ -32,7 +32,7 @@ function parseSVGDataContent(content, element) {
|
|
|
32
32
|
try {
|
|
33
33
|
content = decodeURI(content);
|
|
34
34
|
}
|
|
35
|
-
catch
|
|
35
|
+
catch {
|
|
36
36
|
// Content is not a valid URI component, which can happen if it's already decoded. Proceed with the original content.
|
|
37
37
|
}
|
|
38
38
|
const svgDocument = parser.parseFromString(content, 'text/html');
|
|
@@ -187,16 +187,36 @@ const iconCss = ":host{display:inline-flex;height:1.5rem;width:1.5rem;min-height
|
|
|
187
187
|
const Icon = class {
|
|
188
188
|
constructor(hostRef) {
|
|
189
189
|
registerInstance(this, hostRef);
|
|
190
|
-
/**
|
|
191
|
-
* Size of the icon
|
|
192
|
-
*/
|
|
193
|
-
this.size = '24';
|
|
194
|
-
/**
|
|
195
|
-
* Only fetch and parse svg data when icon is visible
|
|
196
|
-
*/
|
|
197
|
-
this.lazyLoading = false;
|
|
198
|
-
this.isVisible = false;
|
|
199
190
|
}
|
|
191
|
+
get hostElement() { return getElement(this); }
|
|
192
|
+
/**
|
|
193
|
+
* Size of the icon
|
|
194
|
+
*/
|
|
195
|
+
size = '24';
|
|
196
|
+
/**
|
|
197
|
+
* Color of the icon
|
|
198
|
+
*/
|
|
199
|
+
color;
|
|
200
|
+
/**
|
|
201
|
+
* Use one of our defined icon names e.g. `copy`
|
|
202
|
+
*
|
|
203
|
+
* https://ix.siemens.io/docs/icon-library/icons
|
|
204
|
+
*
|
|
205
|
+
* or the import variant
|
|
206
|
+
*
|
|
207
|
+
* ```
|
|
208
|
+
* import { rocket } from '@siemens/ix-icons/icons';
|
|
209
|
+
*
|
|
210
|
+
* <ix-icon name={rocket}></ix-icon>
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
name;
|
|
214
|
+
/**
|
|
215
|
+
* Only fetch and parse svg data when icon is visible
|
|
216
|
+
*/
|
|
217
|
+
lazyLoading = false;
|
|
218
|
+
svgContent;
|
|
219
|
+
isVisible = false;
|
|
200
220
|
componentWillLoad() {
|
|
201
221
|
this.waitForRendering(() => {
|
|
202
222
|
this.isVisible = true;
|
|
@@ -242,7 +262,6 @@ const Icon = class {
|
|
|
242
262
|
} }, h("div", { key: '570efdb71fcdd0c61b7c854c6ab3662508aae804', class: 'svg-container', innerHTML: this.svgContent, "aria-hidden": "true" })));
|
|
243
263
|
}
|
|
244
264
|
static get assetsDirs() { return ["svg"]; }
|
|
245
|
-
get hostElement() { return getElement(this); }
|
|
246
265
|
static get watchers() { return {
|
|
247
266
|
"name": ["loadIconContent"]
|
|
248
267
|
}; }
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["src/components/icon/meta-tag.ts","src/components/icon/parser.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/**\n * Provide custom SVG path for icons\n *\n * <meta name=\"ix-icons:path\" content=\"/build/svg\" />\n */\nexport function getCustomAssetUrl() {\n const assetPath = document.querySelector(\"meta[name='ix-icons:path']\");\n if (assetPath) {\n const path = assetPath.getAttribute('content');\n return path;\n }\n\n return false;\n}\n","/*\n * COPYRIGHT (c) Siemens AG 2018-2025 ALL RIGHTS RESERVED.\n */\n\nlet parser: any = null;\n\nexport const errorSymbol =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>\";\n\nexport function parseSVGDataContent(content: string, element?: HTMLElement): string {\n if (typeof window['DOMParser'] === 'undefined') {\n console.error('DOMParser not supported by your browser.');\n return '';\n }\n\n if (parser === null) {\n parser = new window['DOMParser']();\n }\n\n // decode URI component if needed\n try {\n content = decodeURI(content);\n } catch {\n // Content is not a valid URI component, which can happen if it's already decoded. Proceed with the original content.\n }\n\n const svgDocument = parser.parseFromString(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n if (element) {\n console.error('No valid svg data provided', element);\n } else {\n console.error('No valid svg data provided');\n }\n return '';\n }\n\n return svgElement.outerHTML;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getAssetPath } from '@stencil/core';\nimport { getCustomAssetUrl } from './meta-tag';\nimport { parseSVGDataContent } from './parser';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\n\nexport const getIconCacheMap = (): Map<string, string> => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n if (!fetchCache) {\n window.IxIcons = window.IxIcons || {};\n fetchCache = window.IxIcons.map = window.IxIcons.map || new Map();\n }\n\n return fetchCache;\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n\nasync function fetchSVG(url: string, element: HTMLIxIconElement) {\n const cache = getIconCacheMap();\n\n if (cache.has(url)) {\n return cache.get(url)!;\n }\n\n if (requests.has(url)) {\n return requests.get(url)!;\n }\n\n const fetching = fetch(url)\n .then(async response => {\n const responseText = await response.text();\n\n let svgContent = '';\n if (response.ok) {\n svgContent = parseSVGDataContent(responseText, element);\n cache.set(url, svgContent);\n } else {\n console.error('Failed to request svg data from', url, 'with status code', response.status, element);\n }\n\n return svgContent;\n })\n .catch(() => {\n console.error('Failed to fetch svg data:', url, element);\n cache.set(url, '');\n return '';\n })\n .finally(() => {\n requests.delete(url);\n });\n\n return fetching;\n}\n\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nexport function getIconUrl(name: string, element: HTMLIxIconElement) {\n const customAssetUrl = getCustomAssetUrl();\n\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(`Could not load icon with name \"${name}\". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to property.`, element);\n }\n\n return url;\n}\n\nexport async function resolveIcon(element: HTMLIxIconElement, iconName?: string): Promise<string> {\n if (!iconName) {\n console.warn('No icon was provided', element);\n return '';\n }\n\n if (isSvgDataUrl(iconName)) {\n const content = parseSVGDataContent(iconName, element);\n\n if (!content) {\n console.error('Failed to parse icon data', element);\n }\n return content;\n }\n\n return loadIcon(iconName, element);\n}\n\nasync function loadIcon(iconName: string, element: HTMLIxIconElement): Promise<string> {\n const cache = getIconCacheMap();\n\n if (cache.has(iconName)) {\n return cache.get(iconName)!;\n }\n\n if (isValidUrl(iconName)) {\n return fetchSVG(iconName, element);\n }\n\n const iconUrl = getIconUrl(iconName, element);\n\n if (!iconUrl) {\n return '';\n }\n\n return fetchSVG(iconUrl, element);\n}\n\nfunction removePrefix(name: string, prefix: string) {\n if (name.startsWith(prefix)) {\n name = name.slice(prefix.length);\n return name.replace(/^(\\w)/, (_match, p1) => p1.toLowerCase());\n }\n\n return name;\n}\n\nexport function addIcons(icons: { [name: string]: any }) {\n Object.keys(icons).forEach(name => {\n const icon = icons[name];\n name = removePrefix(name, 'icon');\n\n addIconToCache(name, icon);\n });\n}\n\nexport function addIconToCache(name: string, icon: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(name)) {\n console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);\n }\n\n const svg = parseSVGDataContent(icon);\n\n cache.set(name, svg);\n\n const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();\n\n if (name != toKebabCase) {\n cache.set(toKebabCase, svg);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@mixin size($size) {\n height: $size;\n width: $size;\n min-height: $size;\n min-width: $size;\n}\n\n:host {\n display: inline-flex;\n @include size(1.5rem);\n color: inherit;\n\n .svg-container {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n\n svg {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n svg,\n svg[fill],\n svg [fill] {\n fill: currentColor !important;\n }\n }\n}\n\n:host(.size-12) {\n @include size(0.75rem);\n}\n\n:host(.size-16) {\n @include size(1rem);\n}\n\n:host(.size-32) {\n @include size(2rem);\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, h, Host, Prop, State, Watch, Element, Build } from '@stencil/core';\nimport { resolveIcon } from './resolveIcon';\nimport { errorSymbol, parseSVGDataContent } from './parser';\n\n@Component({\n tag: 'ix-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n assetsDirs: ['svg'],\n})\nexport class Icon {\n @Element() hostElement!: HTMLIxIconElement;\n\n /**\n * Size of the icon\n */\n @Prop() size: '12' | '16' | '24' | '32' = '24';\n\n /**\n * Color of the icon\n */\n @Prop() color?: string;\n\n /**\n * Use one of our defined icon names e.g. `copy`\n *\n * https://ix.siemens.io/docs/icon-library/icons\n *\n * or the import variant\n *\n * ```\n * import { rocket } from '@siemens/ix-icons/icons';\n *\n * <ix-icon name={rocket}></ix-icon>\n * ```\n */\n @Prop() name?: string;\n\n /**\n * Only fetch and parse svg data when icon is visible\n */\n @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n componentWillLoad() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n const content = await resolveIcon(this.hostElement, this.name);\n\n if (!content) {\n this.svgContent = parseSVGDataContent(errorSymbol);\n return;\n }\n\n this.svgContent = content;\n }\n\n private waitForRendering(onRender: () => void) {\n if (Build.isBrowser && this.lazyLoading && typeof window !== 'undefined' && (window as any).IntersectionObserver) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onRender();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: '25px',\n },\n );\n\n observer.observe(this.hostElement);\n } else {\n onRender();\n }\n }\n\n render() {\n const style: {\n [key: string]: string;\n } = {};\n\n if (this.color) {\n style['color'] = `var(--theme-${this.color})`;\n }\n\n return (\n <Host\n role=\"img\"\n style={style}\n class={{\n ['size-12']: this.size === '12',\n ['size-16']: this.size === '16',\n ['size-24']: this.size === '24',\n ['size-32']: this.size === '32',\n }}\n >\n <div class={'svg-container'} innerHTML={this.svgContent} aria-hidden=\"true\"></div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["src/components/icon/meta-tag.ts","src/components/icon/parser.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/**\n * Provide custom SVG path for icons\n *\n * <meta name=\"ix-icons:path\" content=\"/build/svg\" />\n */\nexport function getCustomAssetUrl() {\n const assetPath = document.querySelector(\"meta[name='ix-icons:path']\");\n if (assetPath) {\n const path = assetPath.getAttribute('content');\n return path;\n }\n\n return false;\n}\n","/*\n * COPYRIGHT (c) Siemens AG 2018-2025 ALL RIGHTS RESERVED.\n */\n\nlet parser: any = null;\n\nexport const errorSymbol =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>\";\n\nexport function parseSVGDataContent(content: string, element?: HTMLElement): string {\n if (typeof window['DOMParser'] === 'undefined') {\n console.error('DOMParser not supported by your browser.');\n return '';\n }\n\n if (parser === null) {\n parser = new window['DOMParser']();\n }\n\n // decode URI component if needed\n try {\n content = decodeURI(content);\n } catch {\n // Content is not a valid URI component, which can happen if it's already decoded. Proceed with the original content.\n }\n\n const svgDocument = parser.parseFromString(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n if (element) {\n console.error('No valid svg data provided', element);\n } else {\n console.error('No valid svg data provided');\n }\n return '';\n }\n\n return svgElement.outerHTML;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getAssetPath } from '@stencil/core';\nimport { getCustomAssetUrl } from './meta-tag';\nimport { parseSVGDataContent } from './parser';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\n\nexport const getIconCacheMap = (): Map<string, string> => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n if (!fetchCache) {\n window.IxIcons = window.IxIcons || {};\n fetchCache = window.IxIcons.map = window.IxIcons.map || new Map();\n }\n\n return fetchCache;\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n\nasync function fetchSVG(url: string, element: HTMLIxIconElement) {\n const cache = getIconCacheMap();\n\n if (cache.has(url)) {\n return cache.get(url)!;\n }\n\n if (requests.has(url)) {\n return requests.get(url)!;\n }\n\n const fetching = fetch(url)\n .then(async response => {\n const responseText = await response.text();\n\n let svgContent = '';\n if (response.ok) {\n svgContent = parseSVGDataContent(responseText, element);\n cache.set(url, svgContent);\n } else {\n console.error('Failed to request svg data from', url, 'with status code', response.status, element);\n }\n\n return svgContent;\n })\n .catch(() => {\n console.error('Failed to fetch svg data:', url, element);\n cache.set(url, '');\n return '';\n })\n .finally(() => {\n requests.delete(url);\n });\n\n return fetching;\n}\n\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nexport function getIconUrl(name: string, element: HTMLIxIconElement) {\n const customAssetUrl = getCustomAssetUrl();\n\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(`Could not load icon with name \"${name}\". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to property.`, element);\n }\n\n return url;\n}\n\nexport async function resolveIcon(element: HTMLIxIconElement, iconName?: string): Promise<string> {\n if (!iconName) {\n console.warn('No icon was provided', element);\n return '';\n }\n\n if (isSvgDataUrl(iconName)) {\n const content = parseSVGDataContent(iconName, element);\n\n if (!content) {\n console.error('Failed to parse icon data', element);\n }\n return content;\n }\n\n return loadIcon(iconName, element);\n}\n\nasync function loadIcon(iconName: string, element: HTMLIxIconElement): Promise<string> {\n const cache = getIconCacheMap();\n\n if (cache.has(iconName)) {\n return cache.get(iconName)!;\n }\n\n if (isValidUrl(iconName)) {\n return fetchSVG(iconName, element);\n }\n\n const iconUrl = getIconUrl(iconName, element);\n\n if (!iconUrl) {\n return '';\n }\n\n return fetchSVG(iconUrl, element);\n}\n\nfunction removePrefix(name: string, prefix: string) {\n if (name.startsWith(prefix)) {\n name = name.slice(prefix.length);\n return name.replace(/^(\\w)/, (_match, p1) => p1.toLowerCase());\n }\n\n return name;\n}\n\nexport function addIcons(icons: { [name: string]: any }) {\n Object.keys(icons).forEach(name => {\n const icon = icons[name];\n name = removePrefix(name, 'icon');\n\n addIconToCache(name, icon);\n });\n}\n\nexport function addIconToCache(name: string, icon: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(name)) {\n console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);\n }\n\n const svg = parseSVGDataContent(icon);\n\n cache.set(name, svg);\n\n const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();\n\n if (name != toKebabCase) {\n cache.set(toKebabCase, svg);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@mixin size($size) {\n height: $size;\n width: $size;\n min-height: $size;\n min-width: $size;\n}\n\n:host {\n display: inline-flex;\n @include size(1.5rem);\n color: inherit;\n\n .svg-container {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n\n svg {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n svg,\n svg[fill],\n svg [fill] {\n fill: currentColor !important;\n }\n }\n}\n\n:host(.size-12) {\n @include size(0.75rem);\n}\n\n:host(.size-16) {\n @include size(1rem);\n}\n\n:host(.size-32) {\n @include size(2rem);\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, h, Host, Prop, State, Watch, Element, Build } from '@stencil/core';\nimport { resolveIcon } from './resolveIcon';\nimport { errorSymbol, parseSVGDataContent } from './parser';\n\n@Component({\n tag: 'ix-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n assetsDirs: ['svg'],\n})\nexport class Icon {\n @Element() hostElement!: HTMLIxIconElement;\n\n /**\n * Size of the icon\n */\n @Prop() size: '12' | '16' | '24' | '32' = '24';\n\n /**\n * Color of the icon\n */\n @Prop() color?: string;\n\n /**\n * Use one of our defined icon names e.g. `copy`\n *\n * https://ix.siemens.io/docs/icon-library/icons\n *\n * or the import variant\n *\n * ```\n * import { rocket } from '@siemens/ix-icons/icons';\n *\n * <ix-icon name={rocket}></ix-icon>\n * ```\n */\n @Prop() name?: string;\n\n /**\n * Only fetch and parse svg data when icon is visible\n */\n @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n componentWillLoad() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n const content = await resolveIcon(this.hostElement, this.name);\n\n if (!content) {\n this.svgContent = parseSVGDataContent(errorSymbol);\n return;\n }\n\n this.svgContent = content;\n }\n\n private waitForRendering(onRender: () => void) {\n if (Build.isBrowser && this.lazyLoading && typeof window !== 'undefined' && (window as any).IntersectionObserver) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onRender();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: '25px',\n },\n );\n\n observer.observe(this.hostElement);\n } else {\n onRender();\n }\n }\n\n render() {\n const style: {\n [key: string]: string;\n } = {};\n\n if (this.color) {\n style['color'] = `var(--theme-${this.color})`;\n }\n\n return (\n <Host\n role=\"img\"\n style={style}\n class={{\n ['size-12']: this.size === '12',\n ['size-16']: this.size === '16',\n ['size-24']: this.size === '24',\n ['size-32']: this.size === '32',\n }}\n >\n <div class={'svg-container'} innerHTML={this.svgContent} aria-hidden=\"true\"></div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/ix-icons.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { p as promiseResolve, b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { p as promiseResolve, b as bootstrapLazy } from './index-CyicTMfq.js';
|
|
2
|
+
export { s as setNonce } from './index-CyicTMfq.js';
|
|
3
3
|
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
4
|
|
|
5
5
|
/*
|
|
6
|
-
Stencil Client Patch Browser v4.
|
|
6
|
+
Stencil Client Patch Browser v4.38.3 | MIT Licensed | https://stenciljs.com
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
var patchBrowser = () => {
|
|
@@ -17,6 +17,6 @@ var patchBrowser = () => {
|
|
|
17
17
|
|
|
18
18
|
patchBrowser().then(async (options) => {
|
|
19
19
|
await globalScripts();
|
|
20
|
-
return bootstrapLazy([["ix-icon",[[
|
|
20
|
+
return bootstrapLazy([["ix-icon",[[769,"ix-icon",{"size":[1],"color":[1],"name":[1],"lazyLoading":[4,"lazy-loading"],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIconContent"]}]]]], options);
|
|
21
21
|
});
|
|
22
22
|
//# sourceMappingURL=ix-icons.js.map
|
package/dist/esm/ix-icons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-icons.js","sources":["node_modules/.pnpm/@stencil+core@4.
|
|
1
|
+
{"version":3,"file":"ix-icons.js","sources":["node_modules/.pnpm/@stencil+core@4.38.3/node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.38.3 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
|
package/dist/esm/loader.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { b as bootstrapLazy } from './index-CyicTMfq.js';
|
|
2
|
+
export { s as setNonce } from './index-CyicTMfq.js';
|
|
3
3
|
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
4
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await globalScripts();
|
|
8
|
-
return bootstrapLazy([["ix-icon",[[
|
|
8
|
+
return bootstrapLazy([["ix-icon",[[769,"ix-icon",{"size":[1],"color":[1],"name":[1],"lazyLoading":[4,"lazy-loading"],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIconContent"]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { defineCustomElements };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as t,r as e,
|
|
1
|
+
import{g as t,r as e,a as n,h as i,H as s}from"./p-CyicTMfq.js";export{c as setAssetPath}from"./p-CyicTMfq.js";function o(){const t=document.querySelector("meta[name='ix-icons:path']");if(t){const e=t.getAttribute("content");return e}return false}let r=null;const a="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>";function h(t,e){if(typeof window["DOMParser"]==="undefined"){console.error("DOMParser not supported by your browser.");return""}if(r===null){r=new window["DOMParser"]}try{t=decodeURI(t)}catch{}const n=r.parseFromString(t,"text/html");const i=n.querySelector("svg");if(!i){if(e){console.error("No valid svg data provided",e)}else{console.error("No valid svg data provided")}return""}return i.outerHTML}let d;const l=new Map;const f=()=>{if(typeof window==="undefined"){return new Map}if(!d){window.IxIcons=window.IxIcons||{};d=window.IxIcons.map=window.IxIcons.map||new Map}return d};const u=t=>{if(!t){return false}if(typeof t!=="string"){return false}return t.startsWith("data:image/svg+xml")};async function w(t,e){const n=f();if(n.has(t)){return n.get(t)}if(l.has(t)){return l.get(t)}const i=fetch(t).then((async i=>{const s=await i.text();let o="";if(i.ok){o=h(s,e);n.set(t,o)}else{console.error("Failed to request svg data from",t,"with status code",i.status,e)}return o})).catch((()=>{console.error("Failed to fetch svg data:",t,e);n.set(t,"");return""})).finally((()=>{l.delete(t)}));return i}const g=/^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:www\.)?(?:\S+\.\S+)(?:\S*)$/i;function m(t){return g.test(t)}function v(e,n){const i=o();if(i){return`${i}/${e}.svg`}let s=`svg/${e}.svg`;try{s=t(s)}catch(t){console.warn(`Could not load icon with name "${e}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to property.`,n)}return s}async function p(t,e){if(!e){console.warn("No icon was provided",t);return""}if(u(e)){const n=h(e,t);if(!n){console.error("Failed to parse icon data",t)}return n}return y(e,t)}async function y(t,e){const n=f();if(n.has(t)){return n.get(t)}if(m(t)){return w(t,e)}const i=v(t,e);if(!i){return""}return w(i,e)}function L(t,e){if(t.startsWith(e)){t=t.slice(e.length);return t.replace(/^(\w)/,((t,e)=>e.toLowerCase()))}return t}function M(t){Object.keys(t).forEach((e=>{const n=t[e];e=L(e,"icon");b(e,n)}))}function b(t,e){const n=f();if(n.has(t)){console.warn(`Icon name '${t}' already in cache. Overwritting with new icon data.`)}const i=h(e);n.set(t,i);const s=t.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g,"$1-$2").toLowerCase();if(t!=s){n.set(s,i)}}const x=":host{display:inline-flex;height:1.5rem;width:1.5rem;min-height:1.5rem;min-width:1.5rem;color:inherit}:host .svg-container{display:block;position:relative;width:100%;height:100%}:host .svg-container svg{display:block;position:relative;height:100%;width:100%}:host .svg-container svg,:host .svg-container svg[fill],:host .svg-container svg [fill]{fill:currentColor !important}:host(.size-12){height:0.75rem;width:0.75rem;min-height:0.75rem;min-width:0.75rem}:host(.size-16){height:1rem;width:1rem;min-height:1rem;min-width:1rem}:host(.size-32){height:2rem;width:2rem;min-height:2rem;min-width:2rem}";const z=class{constructor(t){e(this,t)}get hostElement(){return n(this)}size="24";color;name;lazyLoading=false;svgContent;isVisible=false;componentWillLoad(){this.waitForRendering((()=>{this.isVisible=true;this.loadIconContent()}))}async loadIconContent(){const t=await p(this.hostElement,this.name);if(!t){this.svgContent=h(a);return}this.svgContent=t}waitForRendering(t){if(this.lazyLoading&&typeof window!=="undefined"&&window.IntersectionObserver){const e=new IntersectionObserver((n=>{n.forEach((n=>{if(n.isIntersecting){t();e.disconnect()}}))}),{rootMargin:"25px"});e.observe(this.hostElement)}else{t()}}render(){const t={};if(this.color){t["color"]=`var(--theme-${this.color})`}return i(s,{key:"83462a7d7da16587faaa0600b4c13ec8ad106a77",role:"img",style:t,class:{["size-12"]:this.size==="12",["size-16"]:this.size==="16",["size-24"]:this.size==="24",["size-32"]:this.size==="32"}},i("div",{key:"570efdb71fcdd0c61b7c854c6ab3662508aae804",class:"svg-container",innerHTML:this.svgContent,"aria-hidden":"true"}))}static get assetsDirs(){return["svg"]}static get watchers(){return{name:["loadIconContent"]}}};z.style=x;export{z as Icon,b as addIconToCache,M as addIcons};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["src/components/icon/meta-tag.ts","src/components/icon/parser.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/**\n * Provide custom SVG path for icons\n *\n * <meta name=\"ix-icons:path\" content=\"/build/svg\" />\n */\nexport function getCustomAssetUrl() {\n const assetPath = document.querySelector(\"meta[name='ix-icons:path']\");\n if (assetPath) {\n const path = assetPath.getAttribute('content');\n return path;\n }\n\n return false;\n}\n","/*\n * COPYRIGHT (c) Siemens AG 2018-2025 ALL RIGHTS RESERVED.\n */\n\nlet parser: any = null;\n\nexport const errorSymbol =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>\";\n\nexport function parseSVGDataContent(content: string, element?: HTMLElement): string {\n if (typeof window['DOMParser'] === 'undefined') {\n console.error('DOMParser not supported by your browser.');\n return '';\n }\n\n if (parser === null) {\n parser = new window['DOMParser']();\n }\n\n // decode URI component if needed\n try {\n content = decodeURI(content);\n } catch {\n // Content is not a valid URI component, which can happen if it's already decoded. Proceed with the original content.\n }\n\n const svgDocument = parser.parseFromString(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n if (element) {\n console.error('No valid svg data provided', element);\n } else {\n console.error('No valid svg data provided');\n }\n return '';\n }\n\n return svgElement.outerHTML;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getAssetPath } from '@stencil/core';\nimport { getCustomAssetUrl } from './meta-tag';\nimport { parseSVGDataContent } from './parser';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\n\nexport const getIconCacheMap = (): Map<string, string> => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n if (!fetchCache) {\n window.IxIcons = window.IxIcons || {};\n fetchCache = window.IxIcons.map = window.IxIcons.map || new Map();\n }\n\n return fetchCache;\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n\nasync function fetchSVG(url: string, element: HTMLIxIconElement) {\n const cache = getIconCacheMap();\n\n if (cache.has(url)) {\n return cache.get(url)!;\n }\n\n if (requests.has(url)) {\n return requests.get(url)!;\n }\n\n const fetching = fetch(url)\n .then(async response => {\n const responseText = await response.text();\n\n let svgContent = '';\n if (response.ok) {\n svgContent = parseSVGDataContent(responseText, element);\n cache.set(url, svgContent);\n } else {\n console.error('Failed to request svg data from', url, 'with status code', response.status, element);\n }\n\n return svgContent;\n })\n .catch(() => {\n console.error('Failed to fetch svg data:', url, element);\n cache.set(url, '');\n return '';\n })\n .finally(() => {\n requests.delete(url);\n });\n\n return fetching;\n}\n\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nexport function getIconUrl(name: string, element: HTMLIxIconElement) {\n const customAssetUrl = getCustomAssetUrl();\n\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(`Could not load icon with name \"${name}\". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to property.`, element);\n }\n\n return url;\n}\n\nexport async function resolveIcon(element: HTMLIxIconElement, iconName?: string): Promise<string> {\n if (!iconName) {\n console.warn('No icon was provided', element);\n return '';\n }\n\n if (isSvgDataUrl(iconName)) {\n const content = parseSVGDataContent(iconName, element);\n\n if (!content) {\n console.error('Failed to parse icon data', element);\n }\n return content;\n }\n\n return loadIcon(iconName, element);\n}\n\nasync function loadIcon(iconName: string, element: HTMLIxIconElement): Promise<string> {\n const cache = getIconCacheMap();\n\n if (cache.has(iconName)) {\n return cache.get(iconName)!;\n }\n\n if (isValidUrl(iconName)) {\n return fetchSVG(iconName, element);\n }\n\n const iconUrl = getIconUrl(iconName, element);\n\n if (!iconUrl) {\n return '';\n }\n\n return fetchSVG(iconUrl, element);\n}\n\nfunction removePrefix(name: string, prefix: string) {\n if (name.startsWith(prefix)) {\n name = name.slice(prefix.length);\n return name.replace(/^(\\w)/, (_match, p1) => p1.toLowerCase());\n }\n\n return name;\n}\n\nexport function addIcons(icons: { [name: string]: any }) {\n Object.keys(icons).forEach(name => {\n const icon = icons[name];\n name = removePrefix(name, 'icon');\n\n addIconToCache(name, icon);\n });\n}\n\nexport function addIconToCache(name: string, icon: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(name)) {\n console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);\n }\n\n const svg = parseSVGDataContent(icon);\n\n cache.set(name, svg);\n\n const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();\n\n if (name != toKebabCase) {\n cache.set(toKebabCase, svg);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@mixin size($size) {\n height: $size;\n width: $size;\n min-height: $size;\n min-width: $size;\n}\n\n:host {\n display: inline-flex;\n @include size(1.5rem);\n color: inherit;\n\n .svg-container {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n\n svg {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n svg,\n svg[fill],\n svg [fill] {\n fill: currentColor !important;\n }\n }\n}\n\n:host(.size-12) {\n @include size(0.75rem);\n}\n\n:host(.size-16) {\n @include size(1rem);\n}\n\n:host(.size-32) {\n @include size(2rem);\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, h, Host, Prop, State, Watch, Element, Build } from '@stencil/core';\nimport { resolveIcon } from './resolveIcon';\nimport { errorSymbol, parseSVGDataContent } from './parser';\n\n@Component({\n tag: 'ix-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n assetsDirs: ['svg'],\n})\nexport class Icon {\n @Element() hostElement!: HTMLIxIconElement;\n\n /**\n * Size of the icon\n */\n @Prop() size: '12' | '16' | '24' | '32' = '24';\n\n /**\n * Color of the icon\n */\n @Prop() color?: string;\n\n /**\n * Use one of our defined icon names e.g. `copy`\n *\n * https://ix.siemens.io/docs/icon-library/icons\n *\n * or the import variant\n *\n * ```\n * import { rocket } from '@siemens/ix-icons/icons';\n *\n * <ix-icon name={rocket}></ix-icon>\n * ```\n */\n @Prop() name?: string;\n\n /**\n * Only fetch and parse svg data when icon is visible\n */\n @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n componentWillLoad() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n const content = await resolveIcon(this.hostElement, this.name);\n\n if (!content) {\n this.svgContent = parseSVGDataContent(errorSymbol);\n return;\n }\n\n this.svgContent = content;\n }\n\n private waitForRendering(onRender: () => void) {\n if (Build.isBrowser && this.lazyLoading && typeof window !== 'undefined' && (window as any).IntersectionObserver) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onRender();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: '25px',\n },\n );\n\n observer.observe(this.hostElement);\n } else {\n onRender();\n }\n }\n\n render() {\n const style: {\n [key: string]: string;\n } = {};\n\n if (this.color) {\n style['color'] = `var(--theme-${this.color})`;\n }\n\n return (\n <Host\n role=\"img\"\n style={style}\n class={{\n ['size-12']: this.size === '12',\n ['size-16']: this.size === '16',\n ['size-24']: this.size === '24',\n ['size-32']: this.size === '32',\n }}\n >\n <div class={'svg-container'} innerHTML={this.svgContent} aria-hidden=\"true\"></div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA;;;;AAIG;SACa,iBAAiB,GAAA;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC;IACtE,IAAI,SAAS,EAAE;QACb,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC;AAC9C,QAAA,OAAO,IAAI;;AAGb,IAAA,OAAO,KAAK;AACd;;ACbA;;AAEG;AAEH,IAAI,MAAM,GAAQ,IAAI;AAEf,MAAM,WAAW,GACtB,gdAAgd;AAElc,SAAA,mBAAmB,CAAC,OAAe,EAAE,OAAqB,EAAA;IACxE,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE;AAC9C,QAAA,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC;AACzD,QAAA,OAAO,EAAE;;AAGX,IAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,QAAA,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;;;AAIpC,IAAA,IAAI;AACF,QAAA,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;;IAC5B,OAAA,EAAA,EAAM;;;IAIR,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC;IAChE,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAgB;IAElE,IAAI,CAAC,UAAU,EAAE;QACf,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,OAAO,CAAC;;aAC/C;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC;;AAE7C,QAAA,OAAO,EAAE;;IAGX,OAAO,UAAU,CAAC,SAAS;AAC7B;;ACvCA;;;;;;;AAOG;AAWH,IAAI,UAA+B;AACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B;AAE5C,MAAM,eAAe,GAAG,MAA0B;AACvD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,IAAI,GAAG,EAAE;;IAGlB,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE;AACrC,QAAA,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE;;AAGnE,IAAA,OAAO,UAAU;AACnB,CAAC;AAEM,MAAM,YAAY,GAAG,CAAC,GAAW,KAAI;IAC1C,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,KAAK;;AAGd,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,KAAK;;AAGd,IAAA,OAAO,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAC7C,CAAC;AAED,eAAe,QAAQ,CAAC,GAAW,EAAE,OAA0B,EAAA;AAC7D,IAAA,MAAM,KAAK,GAAG,eAAe,EAAE;AAE/B,IAAA,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAClB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE;;AAGxB,IAAA,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACrB,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE;;AAG3B,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG;AACvB,SAAA,IAAI,CAAC,OAAM,QAAQ,KAAG;AACrB,QAAA,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;QAE1C,IAAI,UAAU,GAAG,EAAE;AACnB,QAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AACf,YAAA,UAAU,GAAG,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC;AACvD,YAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;;aACrB;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;;AAGrG,QAAA,OAAO,UAAU;AACnB,KAAC;SACA,KAAK,CAAC,MAAK;QACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,EAAE,OAAO,CAAC;AACxD,QAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;AAClB,QAAA,OAAO,EAAE;AACX,KAAC;SACA,OAAO,CAAC,MAAK;AACZ,QAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,KAAC,CAAC;AAEJ,IAAA,OAAO,QAAQ;AACjB;AAEA,MAAM,QAAQ,GAAG,4EAA4E;AAE7F,SAAS,UAAU,CAAC,GAAW,EAAA;AAC7B,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3B;AAEgB,SAAA,UAAU,CAAC,IAAY,EAAE,OAA0B,EAAA;AACjE,IAAA,MAAM,cAAc,GAAG,iBAAiB,EAAE;IAE1C,IAAI,cAAc,EAAE;AAClB,QAAA,OAAO,CAAG,EAAA,cAAc,CAAI,CAAA,EAAA,IAAI,MAAM;;AAGxC,IAAA,IAAI,GAAG,GAAW,CAAO,IAAA,EAAA,IAAI,MAAM;AAEnC,IAAA,IAAI;AACF,QAAA,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;;IACvB,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,CAAA,+BAAA,EAAkC,IAAI,CAAgH,8GAAA,CAAA,EAAE,OAAO,CAAC;;AAG/K,IAAA,OAAO,GAAG;AACZ;AAEO,eAAe,WAAW,CAAC,OAA0B,EAAE,QAAiB,EAAA;IAC7E,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC;AAC7C,QAAA,OAAO,EAAE;;AAGX,IAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;QAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC;QAEtD,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC;;AAErD,QAAA,OAAO,OAAO;;AAGhB,IAAA,OAAO,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;AACpC;AAEA,eAAe,QAAQ,CAAC,QAAgB,EAAE,OAA0B,EAAA;AAClE,IAAA,MAAM,KAAK,GAAG,eAAe,EAAE;AAE/B,IAAA,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACvB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE;;AAG7B,IAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;AACxB,QAAA,OAAO,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;;IAGpC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,EAAE;;AAGX,IAAA,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;AACnC;AAEA,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc,EAAA;AAChD,IAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC3B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;;AAGhE,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,QAAQ,CAAC,KAA8B,EAAA;IACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;AAChC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;AAEjC,QAAA,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5B,KAAC,CAAC;AACJ;AAEgB,SAAA,cAAc,CAAC,IAAY,EAAE,IAAY,EAAA;AACvD,IAAA,MAAM,KAAK,GAAG,eAAe,EAAE;AAE/B,IAAA,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACnB,QAAA,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAA,oDAAA,CAAsD,CAAC;;AAGxF,IAAA,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC;AAErC,IAAA,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AAEpB,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE;AAE1F,IAAA,IAAI,IAAI,IAAI,WAAW,EAAE;AACvB,QAAA,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC;;AAE/B;;ACnLA,MAAM,OAAO,GAAG,ulBAAulB;;MCkB1lB,IAAI,GAAA,MAAA;AANjB,IAAA,WAAA,CAAA,OAAA,EAAA;;AASE;;AAEG;AACK,QAAA,IAAI,CAAA,IAAA,GAA8B,IAAI;AAsB9C;;AAEG;AACK,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK;AAGlB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK;AAmE3B;IAjEC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACrB,IAAI,CAAC,eAAe,EAAE;AACxB,SAAC,CAAC;;AAIJ,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;QAE9D,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC;YAClD;;AAGF,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO;;AAGnB,IAAA,gBAAgB,CAAC,QAAoB,EAAA;AAC3C,QAAA,IAAuB,IAAI,CAAC,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,oBAAoB,EAAE;AAChH,YAAA,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,OAAO,IAAG;AACR,gBAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAG;AACtB,oBAAA,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,wBAAA,QAAQ,EAAE;wBACV,QAAQ,CAAC,UAAU,EAAE;;AAEzB,iBAAC,CAAC;AACJ,aAAC,EACD;AACE,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CACF;AAED,YAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;;aAC7B;AACL,YAAA,QAAQ,EAAE;;;IAId,MAAM,GAAA;QACJ,MAAM,KAAK,GAEP,EAAE;AAEN,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,OAAO,CAAC,GAAG,eAAe,IAAI,CAAC,KAAK,CAAA,CAAA,CAAG;;AAG/C,QAAA,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;AACL,gBAAA,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;AAC/B,gBAAA,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;AAC/B,gBAAA,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;AAC/B,gBAAA,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;aAChC,EAAA,EAED,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAc,aAAA,EAAA,MAAM,EAAO,CAAA,CAC7E;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["src/components/icon/meta-tag.ts","src/components/icon/parser.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/**\n * Provide custom SVG path for icons\n *\n * <meta name=\"ix-icons:path\" content=\"/build/svg\" />\n */\nexport function getCustomAssetUrl() {\n const assetPath = document.querySelector(\"meta[name='ix-icons:path']\");\n if (assetPath) {\n const path = assetPath.getAttribute('content');\n return path;\n }\n\n return false;\n}\n","/*\n * COPYRIGHT (c) Siemens AG 2018-2025 ALL RIGHTS RESERVED.\n */\n\nlet parser: any = null;\n\nexport const errorSymbol =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>\";\n\nexport function parseSVGDataContent(content: string, element?: HTMLElement): string {\n if (typeof window['DOMParser'] === 'undefined') {\n console.error('DOMParser not supported by your browser.');\n return '';\n }\n\n if (parser === null) {\n parser = new window['DOMParser']();\n }\n\n // decode URI component if needed\n try {\n content = decodeURI(content);\n } catch {\n // Content is not a valid URI component, which can happen if it's already decoded. Proceed with the original content.\n }\n\n const svgDocument = parser.parseFromString(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n if (element) {\n console.error('No valid svg data provided', element);\n } else {\n console.error('No valid svg data provided');\n }\n return '';\n }\n\n return svgElement.outerHTML;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getAssetPath } from '@stencil/core';\nimport { getCustomAssetUrl } from './meta-tag';\nimport { parseSVGDataContent } from './parser';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\n\nexport const getIconCacheMap = (): Map<string, string> => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n if (!fetchCache) {\n window.IxIcons = window.IxIcons || {};\n fetchCache = window.IxIcons.map = window.IxIcons.map || new Map();\n }\n\n return fetchCache;\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n\nasync function fetchSVG(url: string, element: HTMLIxIconElement) {\n const cache = getIconCacheMap();\n\n if (cache.has(url)) {\n return cache.get(url)!;\n }\n\n if (requests.has(url)) {\n return requests.get(url)!;\n }\n\n const fetching = fetch(url)\n .then(async response => {\n const responseText = await response.text();\n\n let svgContent = '';\n if (response.ok) {\n svgContent = parseSVGDataContent(responseText, element);\n cache.set(url, svgContent);\n } else {\n console.error('Failed to request svg data from', url, 'with status code', response.status, element);\n }\n\n return svgContent;\n })\n .catch(() => {\n console.error('Failed to fetch svg data:', url, element);\n cache.set(url, '');\n return '';\n })\n .finally(() => {\n requests.delete(url);\n });\n\n return fetching;\n}\n\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nexport function getIconUrl(name: string, element: HTMLIxIconElement) {\n const customAssetUrl = getCustomAssetUrl();\n\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(`Could not load icon with name \"${name}\". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to property.`, element);\n }\n\n return url;\n}\n\nexport async function resolveIcon(element: HTMLIxIconElement, iconName?: string): Promise<string> {\n if (!iconName) {\n console.warn('No icon was provided', element);\n return '';\n }\n\n if (isSvgDataUrl(iconName)) {\n const content = parseSVGDataContent(iconName, element);\n\n if (!content) {\n console.error('Failed to parse icon data', element);\n }\n return content;\n }\n\n return loadIcon(iconName, element);\n}\n\nasync function loadIcon(iconName: string, element: HTMLIxIconElement): Promise<string> {\n const cache = getIconCacheMap();\n\n if (cache.has(iconName)) {\n return cache.get(iconName)!;\n }\n\n if (isValidUrl(iconName)) {\n return fetchSVG(iconName, element);\n }\n\n const iconUrl = getIconUrl(iconName, element);\n\n if (!iconUrl) {\n return '';\n }\n\n return fetchSVG(iconUrl, element);\n}\n\nfunction removePrefix(name: string, prefix: string) {\n if (name.startsWith(prefix)) {\n name = name.slice(prefix.length);\n return name.replace(/^(\\w)/, (_match, p1) => p1.toLowerCase());\n }\n\n return name;\n}\n\nexport function addIcons(icons: { [name: string]: any }) {\n Object.keys(icons).forEach(name => {\n const icon = icons[name];\n name = removePrefix(name, 'icon');\n\n addIconToCache(name, icon);\n });\n}\n\nexport function addIconToCache(name: string, icon: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(name)) {\n console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);\n }\n\n const svg = parseSVGDataContent(icon);\n\n cache.set(name, svg);\n\n const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();\n\n if (name != toKebabCase) {\n cache.set(toKebabCase, svg);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@mixin size($size) {\n height: $size;\n width: $size;\n min-height: $size;\n min-width: $size;\n}\n\n:host {\n display: inline-flex;\n @include size(1.5rem);\n color: inherit;\n\n .svg-container {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n\n svg {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n svg,\n svg[fill],\n svg [fill] {\n fill: currentColor !important;\n }\n }\n}\n\n:host(.size-12) {\n @include size(0.75rem);\n}\n\n:host(.size-16) {\n @include size(1rem);\n}\n\n:host(.size-32) {\n @include size(2rem);\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, h, Host, Prop, State, Watch, Element, Build } from '@stencil/core';\nimport { resolveIcon } from './resolveIcon';\nimport { errorSymbol, parseSVGDataContent } from './parser';\n\n@Component({\n tag: 'ix-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n assetsDirs: ['svg'],\n})\nexport class Icon {\n @Element() hostElement!: HTMLIxIconElement;\n\n /**\n * Size of the icon\n */\n @Prop() size: '12' | '16' | '24' | '32' = '24';\n\n /**\n * Color of the icon\n */\n @Prop() color?: string;\n\n /**\n * Use one of our defined icon names e.g. `copy`\n *\n * https://ix.siemens.io/docs/icon-library/icons\n *\n * or the import variant\n *\n * ```\n * import { rocket } from '@siemens/ix-icons/icons';\n *\n * <ix-icon name={rocket}></ix-icon>\n * ```\n */\n @Prop() name?: string;\n\n /**\n * Only fetch and parse svg data when icon is visible\n */\n @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n componentWillLoad() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n const content = await resolveIcon(this.hostElement, this.name);\n\n if (!content) {\n this.svgContent = parseSVGDataContent(errorSymbol);\n return;\n }\n\n this.svgContent = content;\n }\n\n private waitForRendering(onRender: () => void) {\n if (Build.isBrowser && this.lazyLoading && typeof window !== 'undefined' && (window as any).IntersectionObserver) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onRender();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: '25px',\n },\n );\n\n observer.observe(this.hostElement);\n } else {\n onRender();\n }\n }\n\n render() {\n const style: {\n [key: string]: string;\n } = {};\n\n if (this.color) {\n style['color'] = `var(--theme-${this.color})`;\n }\n\n return (\n <Host\n role=\"img\"\n style={style}\n class={{\n ['size-12']: this.size === '12',\n ['size-16']: this.size === '16',\n ['size-24']: this.size === '24',\n ['size-32']: this.size === '32',\n }}\n >\n <div class={'svg-container'} innerHTML={this.svgContent} aria-hidden=\"true\"></div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as o,b as n}from"./p-
|
|
1
|
+
import{p as o,b as n}from"./p-CyicTMfq.js";export{s as setNonce}from"./p-CyicTMfq.js";import{g as a}from"./p-DQuL1Twl.js";var i=()=>{const n=import.meta.url;const a={};if(n!==""){a.resourcesUrl=new URL(".",n).href}return o(a)};i().then((async o=>{await a();return n([["p-9fcb498f",[[769,"ix-icon",{size:[1],color:[1],name:[1],lazyLoading:[4,"lazy-loading"],svgContent:[32],isVisible:[32]},null,{name:["loadIconContent"]}]]]],o)}));
|
|
2
2
|
//# sourceMappingURL=ix-icons.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-icons.esm.js","sources":["node_modules/.pnpm/@stencil+core@4.
|
|
1
|
+
{"version":3,"file":"ix-icons.esm.js","sources":["node_modules/.pnpm/@stencil+core@4.38.3/node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.38.3 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const e="ix-icons";const t={hydratedSelectorName:"hydrated",lazyLoad:true,propChangeCallback:true,state:true,updatable:true};var n=Object.defineProperty;var r=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var i="http://www.w3.org/2000/svg";var s="http://www.w3.org/1999/xhtml";var o=(e,t)=>{var n;const r=t.t;const i=Object.entries((n=r.i)!=null?n:{});i.map((([n,[r]])=>{if(r&31||r&32){const r=e[n];const i=l(Object.getPrototypeOf(e),n)||Object.getOwnPropertyDescriptor(e,n);if(i){Object.defineProperty(e,n,{get(){return i.get.call(this)},set(e){i.set.call(this,e)},configurable:true,enumerable:true})}e[n]=t.o.has(n)?t.o.get(n):r}}))};function l(e,t){while(e){const n=Object.getOwnPropertyDescriptor(e,t);if(n==null?void 0:n.get)return n;e=Object.getPrototypeOf(e)}return void 0}var f=e=>{if(e.__stencil__getHostRef){return e.__stencil__getHostRef()}return void 0};var a=(e,n)=>{if(!n)return;e.__stencil__getHostRef=()=>n;n.l=e;if(n.t.u&512&&t.state){o(e,n)}};var c=(e,t)=>{const n={u:0,$hostElement$:e,t,o:new Map,v:new Map};{n.h=new Promise((e=>n.p=e));e["s-p"]=[];e["s-rc"]=[]}{n.m=[]}const r=n;e.__stencil__getHostRef=()=>r;return r};var u=(e,t)=>t in e;var v=(e,t)=>(0,console.error)(e,t);var d=new Map;var h=(e,t,n)=>{const r=e.$.replace(/-/g,"_");const i=e.S;if(!i){return void 0}const s=d.get(i);if(s){return s[r]}
|
|
2
|
+
/*!__STENCIL_STATIC_IMPORT_SWITCH__*/return import(`./${i}.entry.js${""}`).then((e=>{{d.set(i,e)}return e[r]}),(e=>{v(e,t.$hostElement$)}))};var p=new Map;var m="{visibility:hidden}.hydrated{visibility:inherit}";var w="slot-fb{display:contents}slot-fb[hidden]{display:none}";var b=typeof window!=="undefined"?window:{};var y={u:0,j:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,r)=>e.addEventListener(t,n,r),rel:(e,t,n,r)=>e.removeEventListener(t,n,r),ce:(e,t)=>new CustomEvent(e,t)};var g=e=>Promise.resolve(e);var $=(()=>{try{new CSSStyleSheet;return typeof(new CSSStyleSheet).replaceSync==="function"}catch(e){}return false})();var S=$?(()=>!!b.document&&Object.getOwnPropertyDescriptor(b.document.adoptedStyleSheets,"length").writable)():false;var j=false;var O=[];var k=[];var C=(e,t)=>n=>{e.push(n);if(!j){j=true;if(t&&y.u&4){x(M)}else{y.raf(M)}}};var E=e=>{for(let t=0;t<e.length;t++){try{e[t](performance.now())}catch(e){v(e)}}e.length=0};var M=()=>{E(O);{E(k);if(j=O.length>0){y.raf(M)}}};var x=e=>g().then(e);var U=C(k,true);var P=e=>{const t=new URL(e,y.j);return t.origin!==b.location.origin?t.href:t.pathname};var R=e=>y.j=e;var D=e=>{e=typeof e;return e==="object"||e==="function"};function L(e){var t,n,r;return(r=(n=(t=e.head)==null?void 0:t.querySelector('meta[name="csp-nonce"]'))==null?void 0:n.getAttribute("content"))!=null?r:void 0}var N=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");var W={};r(W,{err:()=>z,map:()=>H,ok:()=>A,unwrap:()=>T,unwrapErr:()=>V});var A=e=>({isOk:true,isErr:false,value:e});var z=e=>({isOk:false,isErr:true,value:e});function H(e,t){if(e.isOk){const n=t(e.value);if(n instanceof Promise){return n.then((e=>A(e)))}else{return A(n)}}if(e.isErr){const t=e.value;return z(t)}throw"should never get here"}var T=e=>{if(e.isOk){return e.value}else{throw e.value}};var V=e=>{if(e.isErr){return e.value}else{throw e.value}};function q(e){return void 0}var F;function I(e){var t;const n=this.attachShadow({mode:"open"});if(F===void 0)F=(t=q())!=null?t:null;if(F){if(S){n.adoptedStyleSheets.push(F)}else{n.adoptedStyleSheets=[...n.adoptedStyleSheets,F]}}}var G=(e,t="")=>{{return()=>{}}};var Y=(e,t)=>{{return()=>{}}};var _=new WeakMap;var B=(e,t,n)=>{let r=p.get(e);if($&&n){r=r||new CSSStyleSheet;if(typeof r==="string"){r=t}else{r.replaceSync(t)}}else{r=t}p.set(e,r)};var J=(e,t,n)=>{var r;const i=Q(t);const s=p.get(i);if(!b.document){return i}e=e.nodeType===11?e:b.document;if(s){if(typeof s==="string"){e=e.head||e;let n=_.get(e);let o;if(!n){_.set(e,n=new Set)}if(!n.has(i)){{o=b.document.createElement("style");o.innerHTML=s;const n=(r=y.O)!=null?r:L(b.document);if(n!=null){o.setAttribute("nonce",n)}if(!(t.u&1)){if(e.nodeName==="HEAD"){const t=e.querySelectorAll("link[rel=preconnect]");const n=t.length>0?t[t.length-1].nextSibling:e.querySelector("style");e.insertBefore(o,(n==null?void 0:n.parentNode)===e?n:null)}else if("host"in e){if($){const t=new CSSStyleSheet;t.replaceSync(s);if(S){e.adoptedStyleSheets.unshift(t)}else{e.adoptedStyleSheets=[t,...e.adoptedStyleSheets]}}else{const t=e.querySelector("style");if(t){t.innerHTML=s+t.innerHTML}else{e.prepend(o)}}}else{e.append(o)}}if(t.u&1){e.insertBefore(o,null)}}if(t.u&4){o.innerHTML+=w}if(n){n.add(i)}}}else if(!e.adoptedStyleSheets.includes(s)){if(S){e.adoptedStyleSheets.push(s)}else{e.adoptedStyleSheets=[...e.adoptedStyleSheets,s]}}}return i};var K=e=>{const t=e.t;const n=e.$hostElement$;const r=t.u;const i=G("attachStyles",t.$);const s=J(n.shadowRoot?n.shadowRoot:n.getRootNode(),t);if(r&10){n["s-sc"]=s;n.classList.add(s+"-h")}i()};var Q=(e,t)=>"sc-"+e.$;var X=(e,t,...n)=>{let r=null;let i=null;let s=false;let o=false;const l=[];const f=t=>{for(let n=0;n<t.length;n++){r=t[n];if(Array.isArray(r)){f(r)}else if(r!=null&&typeof r!=="boolean"){if(s=typeof e!=="function"&&!D(r)){r=String(r)}if(s&&o){l[l.length-1].k+=r}else{l.push(s?Z(null,r):r)}o=s}}};f(n);if(t){if(t.key){i=t.key}{const e=t.className||t.class;if(e){t.class=typeof e!=="object"?e:Object.keys(e).filter((t=>e[t])).join(" ")}}}const a=Z(e,null);a.C=t;if(l.length>0){a.M=l}{a.U=i}return a};var Z=(e,t)=>{const n={u:0,P:e,k:t,R:null,M:null};{n.C=null}{n.U=null}return n};var ee={};var te=e=>e&&e.P===ee;var ne=e=>{const t=N(e);return new RegExp(`(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${t}))(${t}\\b)`,"g")};ne("::slotted");ne(":host");ne(":host-context");var re=(e,t,n)=>{if(e!=null&&!D(e)){if(t&4){{return e==="false"?false:e===""||!!e}}if(t&1){return String(e)}return e}return e};var ie=e=>{var t;return(t=f(e))==null?void 0:t.$hostElement$};var se=(e,t,n)=>{const r=y.ce(t,n);e.dispatchEvent(r);return r};var oe=(e,t,n,r,i,s,o)=>{if(n===r){return}let l=u(e,t);t.toLowerCase();if(t==="class"){const t=e.classList;const i=fe(n);let s=fe(r);{t.remove(...i.filter((e=>e&&!s.includes(e))));t.add(...s.filter((e=>e&&!i.includes(e))))}}else if(t==="style"){{for(const t in n){if(!r||r[t]==null){if(t.includes("-")){e.style.removeProperty(t)}else{e.style[t]=""}}}}for(const t in r){if(!n||r[t]!==n[t]){if(t.includes("-")){e.style.setProperty(t,r[t])}else{e.style[t]=r[t]}}}}else if(t==="key");else{const o=D(r);if((l||o&&r!==null)&&!i){try{if(!e.tagName.includes("-")){const i=r==null?"":r;if(t==="list"){l=false}else if(n==null||e[t]!=i){if(typeof e.__lookupSetter__(t)==="function"){e[t]=i}else{e.setAttribute(t,i)}}}else if(e[t]!==r){e[t]=r}}catch(e){}}if(r==null||r===false){if(r!==false||e.getAttribute(t)===""){{e.removeAttribute(t)}}}else if((!l||s&4||i)&&!o&&e.nodeType===1){r=r===true?"":r;{e.setAttribute(t,r)}}}};var le=/\s/;var fe=e=>{if(typeof e==="object"&&e&&"baseVal"in e){e=e.baseVal}if(!e||typeof e!=="string"){return[]}return e.split(le)};var ae=(e,t,n,r)=>{const i=t.R.nodeType===11&&t.R.host?t.R.host:t.R;const s=e&&e.C||{};const o=t.C||{};{for(const e of ce(Object.keys(s))){if(!(e in o)){oe(i,e,s[e],void 0,n,t.u)}}}for(const e of ce(Object.keys(o))){oe(i,e,s[e],o[e],n,t.u)}};function ce(e){return e.includes("ref")?[...e.filter((e=>e!=="ref")),"ref"]:e}var ue;var ve=false;var de=(e,t,n)=>{const r=t.M[n];let o=0;let l;let f;{if(!ve){ve=r.P==="svg"}if(!b.document){throw new Error("You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.")}l=r.R=b.document.createElementNS(ve?i:s,r.P);if(ve&&r.P==="foreignObject"){ve=false}{ae(null,r,ve)}if(r.M){for(o=0;o<r.M.length;++o){f=de(e,r,o);if(f){l.appendChild(f)}}}{if(r.P==="svg"){ve=false}else if(l.tagName==="foreignObject"){ve=true}}}l["s-hn"]=ue;return l};var he=(e,t,n,r,i,s)=>{let o=e;let l;if(o.shadowRoot&&o.tagName===ue){o=o.shadowRoot}for(;i<=s;++i){if(r[i]){l=de(null,n,i);if(l){r[i].R=l;ye(o,l,t)}}}};var pe=(e,t,n)=>{for(let r=t;r<=n;++r){const t=e[r];if(t){const e=t.R;if(e){e.remove()}}}};var me=(e,t,n,r,i=false)=>{let s=0;let o=0;let l=0;let f=0;let a=t.length-1;let c=t[0];let u=t[a];let v=r.length-1;let d=r[0];let h=r[v];let p;let m;while(s<=a&&o<=v){if(c==null){c=t[++s]}else if(u==null){u=t[--a]}else if(d==null){d=r[++o]}else if(h==null){h=r[--v]}else if(we(c,d,i)){be(c,d,i);c=t[++s];d=r[++o]}else if(we(u,h,i)){be(u,h,i);u=t[--a];h=r[--v]}else if(we(c,h,i)){be(c,h,i);ye(e,c.R,u.R.nextSibling);c=t[++s];h=r[--v]}else if(we(u,d,i)){be(u,d,i);ye(e,u.R,c.R);u=t[--a];d=r[++o]}else{l=-1;{for(f=s;f<=a;++f){if(t[f]&&t[f].U!==null&&t[f].U===d.U){l=f;break}}}if(l>=0){m=t[l];if(m.P!==d.P){p=de(t&&t[o],n,l)}else{be(m,d,i);t[l]=void 0;p=m.R}d=r[++o]}else{p=de(t&&t[o],n,o);d=r[++o]}if(p){{ye(c.R.parentNode,p,c.R)}}}}if(s>a){he(e,r[v+1]==null?null:r[v+1].R,n,r,o,v)}else if(o>v){pe(t,s,a)}};var we=(e,t,n=false)=>{if(e.P===t.P){if(!n){return e.U===t.U}if(n&&!e.U&&t.U){e.U=t.U}return true}return false};var be=(e,n,r=false)=>{const i=n.R=e.R;const s=e.M;const o=n.M;const l=n.P;{{ve=l==="svg"?true:l==="foreignObject"?false:ve}{ae(e,n,ve)}if(s!==null&&o!==null){me(i,s,n,o,r)}else if(o!==null){he(i,null,n,o,0,o.length-1)}else if(!r&&t.updatable&&s!==null){pe(s,0,s.length-1)}else;if(ve&&l==="svg"){ve=false}}};var ye=(e,t,n)=>{{return e==null?void 0:e.insertBefore(t,n)}};var ge=(e,t,n=false)=>{const r=e.$hostElement$;const i=e.D||Z(null,null);const s=te(t);const o=s?t:X(null,null,t);ue=r.tagName;if(n&&o.C){for(const e of Object.keys(o.C)){if(r.hasAttribute(e)&&!["key","ref","style","class"].includes(e)){o.C[e]=r[e]}}}o.P=null;o.u|=4;e.D=o;o.R=i.R=r.shadowRoot||r;be(i,o,n)};var $e=(e,t)=>{if(t&&!e.L&&t["s-p"]){const n=t["s-p"].push(new Promise((r=>e.L=()=>{t["s-p"].splice(n-1,1);r()})))}};var Se=(e,t)=>{{e.u|=16}if(e.u&4){e.u|=512;return}$e(e,e.N);const n=()=>je(e,t);if(t){queueMicrotask((()=>{n()}));return}return U(n)};var je=(e,t)=>{const n=e.$hostElement$;const r=G("scheduleUpdate",e.t.$);const i=e.l;if(!i){throw new Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`)}let s;if(t){{if(e.m.length){e.m.forEach((e=>e(n)))}}s=Ue(i,"componentWillLoad",void 0,n)}else{s=Ue(i,"componentWillUpdate",void 0,n)}s=Oe(s,(()=>Ue(i,"componentWillRender",void 0,n)));r();return Oe(s,(()=>Ce(e,i,t)))};var Oe=(e,t)=>ke(e)?e.then(t).catch((e=>{console.error(e);t()})):t();var ke=e=>e instanceof Promise||e&&e.then&&typeof e.then==="function";var Ce=async(e,t,n)=>{var r;const i=e.$hostElement$;const s=G("update",e.t.$);const o=i["s-rc"];if(n){K(e)}const l=G("render",e.t.$);{Ee(e,t,i,n)}if(o){o.map((e=>e()));i["s-rc"]=void 0}l();s();{const t=(r=i["s-p"])!=null?r:[];const n=()=>Me(e);if(t.length===0){n()}else{Promise.all(t).then(n);e.u|=4;t.length=0}}};var Ee=(e,t,n,r)=>{try{t=t.render();{e.u&=-17}{e.u|=2}{{{ge(e,t,r)}}}}catch(t){v(t,e.$hostElement$)}return null};var Me=e=>{const t=e.t.$;const n=e.$hostElement$;const r=G("postUpdate",t);const i=e.l;const s=e.N;Ue(i,"componentDidRender",void 0,n);if(!(e.u&64)){e.u|=64;{Pe(n)}Ue(i,"componentDidLoad",void 0,n);r();{e.p(n);if(!s){xe()}}}else{Ue(i,"componentDidUpdate",void 0,n);r()}{if(e.L){e.L();e.L=void 0}if(e.u&512){x((()=>Se(e,false)))}e.u&=-517}};var xe=t=>{x((()=>se(b,"appload",{detail:{namespace:e}})))};var Ue=(e,t,n,r)=>{if(e&&e[t]){try{return e[t](n)}catch(e){v(e,r)}}return void 0};var Pe=e=>{var n;return e.classList.add((n=t.hydratedSelectorName)!=null?n:"hydrated")};var Re=(e,t)=>f(e).o.get(t);var De=(e,t,n,r)=>{const i=f(e);if(!i){return}if(!i){throw new Error(`Couldn't find host element for "${r.$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`)}const s=i.$hostElement$;const o=i.o.get(t);const l=i.u;const a=i.l;n=re(n,r.i[t][0]);const c=Number.isNaN(o)&&Number.isNaN(n);const u=n!==o&&!c;if((!(l&8)||o===void 0)&&u){i.o.set(t,n);if(a){if(r.W&&l&128){const e=r.W[t];if(e){e.map((e=>{try{a[e](n,o,t)}catch(e){v(e,s)}}))}}if((l&(2|16))===2){if(a.componentShouldUpdate){if(a.componentShouldUpdate(n,o,t)===false){return}}Se(i,false)}}}};var Le=(e,n,r)=>{var i,s;const o=e.prototype;if(n.i||t.propChangeCallback){{if(e.watchers&&!n.W){n.W=e.watchers}if(e.deserializers&&!n.A){n.A=e.deserializers}if(e.serializers&&!n.H){n.H=e.serializers}}const l=Object.entries((i=n.i)!=null?i:{});l.map((([e,[t]])=>{if(t&31||r&2&&t&32){const{get:i,set:s}=Object.getOwnPropertyDescriptor(o,e)||{};if(i)n.i[e][0]|=2048;if(s)n.i[e][0]|=4096;if(r&1||!i){Object.defineProperty(o,e,{get(){{if((n.i[e][0]&2048)===0){return Re(this,e)}const t=f(this);const r=t?t.l:o;if(!r)return;return r[e]}},configurable:true,enumerable:true})}Object.defineProperty(o,e,{set(i){const o=f(this);if(!o){return}if(s){const r=t&32?this[e]:o.$hostElement$[e];if(typeof r==="undefined"&&o.o.get(e)){i=o.o.get(e)}s.apply(this,[re(i,t)]);i=t&32?this[e]:o.$hostElement$[e];De(this,e,i,n);return}{if((r&1)===0||(n.i[e][0]&4096)===0){De(this,e,i,n);if(r&1&&!o.l){o.m.push((()=>{if(n.i[e][0]&4096&&o.l[e]!==o.o.get(e)){o.l[e]=i}}))}return}const s=()=>{const r=o.l[e];if(!o.o.get(e)&&r){o.o.set(e,r)}o.l[e]=re(i,t);De(this,e,o.l[e],n)};if(o.l){s()}else{o.m.push((()=>{s()}))}}}})}}));if(r&1){const r=new Map;o.attributeChangedCallback=function(e,i,s){y.jmp((()=>{var a;const c=r.get(e);const u=f(this);if(this.hasOwnProperty(c)&&t.lazyLoad){s=this[c];delete this[c]}if(o.hasOwnProperty(c)&&typeof this[c]==="number"&&this[c]==s){return}else if(c==null){const t=u==null?void 0:u.u;if(u&&t&&!(t&8)&&t&128&&s!==i){const t=u.l;const r=(a=n.W)==null?void 0:a[e];r==null?void 0:r.forEach((n=>{if(t[n]!=null){t[n].call(t,s,i,e)}}))}return}const v=l.find((([e])=>e===c));if(v&&v[1][0]&4){s=s===null||s==="false"?false:true}const d=Object.getOwnPropertyDescriptor(o,c);if(s!=this[c]&&(!d.get||!!d.set)){this[c]=s}}))};e.observedAttributes=Array.from(new Set([...Object.keys((s=n.W)!=null?s:{}),...l.filter((([e,t])=>t[0]&31)).map((([e,t])=>{const n=t[1]||e;r.set(n,e);return n}))]))}}return e};var Ne=async(e,t,n,r)=>{let i;if((t.u&32)===0){t.u|=32;const r=n.S;if(r){const r=h(n,t);if(r&&"then"in r){const e=Y();i=await r;e()}else{i=r}if(!i){throw new Error(`Constructor for "${n.$}#${t.T}" was not found`)}if(!i.isProxied){{n.W=i.watchers;n.H=i.serializers;n.A=i.deserializers}Le(i,n,2);i.isProxied=true}const s=G("createInstance",n.$);{t.u|=8}try{new i(t)}catch(t){v(t,e)}{t.u&=-9}{t.u|=128}s();We(t.l,e)}else{i=e.constructor;const n=e.localName;customElements.whenDefined(n).then((()=>t.u|=128))}if(i&&i.style){let e;if(typeof i.style==="string"){e=i.style}const t=Q(n);if(!p.has(t)){const r=G("registerStyles",n.$);B(t,e,!!(n.u&1));r()}}}const s=t.N;const o=()=>Se(t,true);if(s&&s["s-rc"]){s["s-rc"].push(o)}else{o()}};var We=(e,t)=>{{Ue(e,"connectedCallback",void 0,t)}};var Ae=e=>{if((y.u&1)===0){const t=f(e);if(!t){return}const n=t.t;const r=G("connectedCallback",n.$);if(!(t.u&1)){t.u|=1;{let n=e;while(n=n.parentNode||n.host){if(n["s-p"]){$e(t,t.N=n);break}}}if(n.i){Object.entries(n.i).map((([t,[n]])=>{if(n&31&&t in e&&e[t]!==Object.prototype[t]){const n=e[t];delete e[t];e[t]=n}}))}{Ne(e,t,n)}}else{if(t==null?void 0:t.l){We(t.l,e)}else if(t==null?void 0:t.h){t.h.then((()=>We(t.l,e)))}}r()}};var ze=(e,t)=>{{Ue(e,"disconnectedCallback",void 0,t||e)}};var He=async e=>{if((y.u&1)===0){const t=f(e);if(t==null?void 0:t.l){ze(t.l,e)}else if(t==null?void 0:t.h){t.h.then((()=>ze(t.l,e)))}}if(_.has(e)){_.delete(e)}if(e.shadowRoot&&_.has(e.shadowRoot)){_.delete(e.shadowRoot)}};var Te=(e,t={})=>{var n;if(!b.document){console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");return}const r=G();const i=[];const s=t.exclude||[];const o=b.customElements;const l=b.document.head;const a=l.querySelector("meta[charset]");const u=b.document.createElement("style");const v=[];let d;let h=true;Object.assign(y,t);y.j=new URL(t.resourcesUrl||"./",b.document.baseURI).href;let p=false;e.map((e=>{e[1].map((t=>{var n,r,l;const a={u:t[0],$:t[1],i:t[2],V:t[3]};if(a.u&4){p=true}{a.i=t[2]}{a.W=(n=t[4])!=null?n:{};a.H=(r=t[5])!=null?r:{};a.A=(l=t[6])!=null?l:{}}const u=a.$;const m=class extends HTMLElement{constructor(e){super(e);this.hasRegisteredEventListeners=false;e=this;c(e,a);if(a.u&1){{if(!e.shadowRoot){I.call(e,a)}else{if(e.shadowRoot.mode!=="open"){throw new Error(`Unable to re-use existing shadow root for ${a.$}! Mode is set to ${e.shadowRoot.mode} but Stencil only supports open shadow roots.`)}}}}}connectedCallback(){const e=f(this);if(!e){return}if(!this.hasRegisteredEventListeners){this.hasRegisteredEventListeners=true}if(d){clearTimeout(d);d=null}if(h){v.push(this)}else{y.jmp((()=>Ae(this)))}}disconnectedCallback(){y.jmp((()=>He(this)));y.raf((()=>{var e;const t=f(this);if(!t){return}const n=v.findIndex((e=>e===this));if(n>-1){v.splice(n,1)}if(((e=t==null?void 0:t.D)==null?void 0:e.R)instanceof Node&&!t.D.R.isConnected){delete t.D.R}}))}componentOnReady(){var e;return(e=f(this))==null?void 0:e.h}};a.S=e[0];if(!s.includes(u)&&!o.get(u)){i.push(u);o.define(u,Le(m,a,1))}}))}));if(i.length>0){if(p){u.textContent+=w}{u.textContent+=i.sort()+m}if(u.innerHTML.length){u.setAttribute("data-styles","");const e=(n=y.O)!=null?n:L(b.document);if(e!=null){u.setAttribute("nonce",e)}l.insertBefore(u,a?a.nextSibling:l.firstChild)}}h=false;if(v.length){v.map((e=>e.connectedCallback()))}else{{y.jmp((()=>d=setTimeout(xe,30)))}}r()};var Ve=e=>y.O=e;export{ee as H,ie as a,Te as b,R as c,P as g,X as h,g as p,a as r,Ve as s};
|
|
3
|
+
//# sourceMappingURL=p-CyicTMfq.js.map
|