@siemens/ix-icons 3.1.1 → 3.2.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/READMEOSS.html +10 -10
- package/components/index.js +54 -14
- package/components/index.js.map +1 -1
- package/dist/cjs/{index-Rt6MP40k.js → index-DUsbo4-K.js} +52 -11
- package/dist/cjs/index-DUsbo4-K.js.map +1 -0
- package/dist/cjs/index.cjs.js +9 -4
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/ix-icon.cjs.entry.js +1 -3
- package/dist/cjs/ix-icons.cjs.js +3 -5
- package/dist/cjs/ix-icons.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -4
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/icon/parser.js +8 -1
- package/dist/collection/components/icon/parser.js.map +1 -1
- package/dist/esm/{index-B9Q9x8eq.js → index-BiqddxKp.js} +52 -11
- package/dist/esm/index-BiqddxKp.js.map +1 -0
- package/dist/esm/index.js +10 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ix-icon.entry.js +1 -3
- package/dist/esm/ix-icons.js +4 -6
- package/dist/esm/ix-icons.js.map +1 -1
- package/dist/esm/loader.js +3 -5
- 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-6b0af2cb.entry.js +2 -0
- package/dist/ix-icons/p-6b0af2cb.entry.js.map +1 -0
- package/dist/ix-icons/p-BiqddxKp.js +3 -0
- package/dist/ix-icons/p-BiqddxKp.js.map +1 -0
- package/dist/ix-icons/svg/app-update.svg +1 -0
- package/dist/ix-icons/svg/cam-disk-600-seg.svg +1 -0
- package/dist/ix-icons/svg/cam-disk-6k-seg.svg +1 -0
- package/dist/ix-icons/svg/chart-error-bar.svg +1 -0
- package/dist/ix-icons/svg/collapse-all.svg +1 -0
- package/dist/ix-icons/svg/configuration-safety.svg +1 -0
- package/dist/ix-icons/svg/connected-circle-filled.svg +1 -0
- package/dist/ix-icons/svg/connected-circle.svg +1 -0
- package/dist/ix-icons/svg/controller-device-safety.svg +1 -0
- package/dist/ix-icons/svg/database-safety.svg +1 -0
- package/dist/ix-icons/svg/disconnected-circle-filled.svg +1 -0
- package/dist/ix-icons/svg/disconnected-circle.svg +1 -0
- package/dist/ix-icons/svg/download-add.svg +1 -1
- package/dist/ix-icons/svg/download-list.svg +1 -1
- package/dist/ix-icons/svg/download.svg +1 -1
- package/dist/ix-icons/svg/drive-safety.svg +1 -0
- package/dist/ix-icons/svg/drive.svg +1 -0
- package/dist/ix-icons/svg/edit-document-filled.svg +1 -1
- package/dist/ix-icons/svg/edit-document.svg +1 -1
- package/dist/ix-icons/svg/emergency-stop-filled.svg +1 -0
- package/dist/ix-icons/svg/expand-all.svg +1 -0
- package/dist/ix-icons/svg/flare.svg +1 -0
- package/dist/ix-icons/svg/function-block-safety.svg +1 -0
- package/dist/ix-icons/svg/generic-device-alarm.svg +1 -0
- package/dist/ix-icons/svg/generic-device-brackets.svg +1 -0
- package/dist/ix-icons/svg/generic-device-cancelled.svg +1 -0
- package/dist/ix-icons/svg/generic-device-connected.svg +1 -0
- package/dist/ix-icons/svg/generic-device-dashed.svg +1 -0
- package/dist/ix-icons/svg/generic-device-disconnected.svg +1 -0
- package/dist/ix-icons/svg/generic-device-error.svg +1 -0
- package/dist/ix-icons/svg/generic-device-flare.svg +1 -0
- package/dist/ix-icons/svg/generic-device-forced-mode.svg +1 -0
- package/dist/ix-icons/svg/generic-device-incompatible.svg +1 -0
- package/dist/ix-icons/svg/generic-device-io-unavailable.svg +1 -0
- package/dist/ix-icons/svg/generic-device-lock.svg +1 -0
- package/dist/ix-icons/svg/generic-device-maintenance.svg +1 -0
- package/dist/ix-icons/svg/generic-device-pause.svg +1 -0
- package/dist/ix-icons/svg/generic-device-play.svg +1 -0
- package/dist/ix-icons/svg/generic-device-power-saving.svg +1 -0
- package/dist/ix-icons/svg/generic-device-published.svg +1 -0
- package/dist/ix-icons/svg/generic-device-question.svg +1 -0
- package/dist/ix-icons/svg/generic-device-refresh.svg +1 -0
- package/dist/ix-icons/svg/generic-device-reset.svg +1 -0
- package/dist/ix-icons/svg/generic-device-restart.svg +1 -0
- package/dist/ix-icons/svg/generic-device-rocket.svg +1 -0
- package/dist/ix-icons/svg/generic-device-safety.svg +1 -0
- package/dist/ix-icons/svg/generic-device-shield.svg +1 -0
- package/dist/ix-icons/svg/generic-device-shutdown.svg +1 -0
- package/dist/ix-icons/svg/generic-device-slash.svg +1 -0
- package/dist/ix-icons/svg/generic-device-software-alarm.svg +1 -0
- package/dist/ix-icons/svg/generic-device-standby.svg +1 -0
- package/dist/ix-icons/svg/generic-device-stop-userprogram.svg +1 -0
- package/dist/ix-icons/svg/generic-device-stop.svg +1 -0
- package/dist/ix-icons/svg/generic-device-success.svg +1 -0
- package/dist/ix-icons/svg/generic-device-synchronized.svg +1 -0
- package/dist/ix-icons/svg/generic-device-traffic.svg +1 -0
- package/dist/ix-icons/svg/generic-device.svg +1 -0
- package/dist/ix-icons/svg/helmet-safety-filled.svg +1 -0
- package/dist/ix-icons/svg/helmet-safety.svg +1 -0
- package/dist/ix-icons/svg/import-check.svg +1 -0
- package/dist/ix-icons/svg/import-failed.svg +1 -0
- package/dist/ix-icons/svg/import-progress.svg +1 -0
- package/dist/ix-icons/svg/incompatible.svg +1 -0
- package/dist/ix-icons/svg/live-feed.svg +1 -0
- package/dist/ix-icons/svg/lower-limit.svg +1 -1
- package/dist/ix-icons/svg/maintenance-filled.svg +1 -0
- package/dist/ix-icons/svg/maintenance-info-filled.svg +1 -0
- package/dist/ix-icons/svg/maintenance-info.svg +1 -1
- package/dist/ix-icons/svg/maintenance-octagon-filled.svg +1 -0
- package/dist/ix-icons/svg/maintenance-octagon.svg +1 -0
- package/dist/ix-icons/svg/maintenance-rhomb-filled.svg +1 -0
- package/dist/ix-icons/svg/maintenance-rhomb.svg +1 -0
- package/dist/ix-icons/svg/maintenance-square-filled.svg +1 -0
- package/dist/ix-icons/svg/maintenance-square.svg +1 -0
- package/dist/ix-icons/svg/maintenance-triangle-filled.svg +1 -0
- package/dist/ix-icons/svg/maintenance-triangle.svg +1 -0
- package/dist/ix-icons/svg/maintenance.svg +1 -1
- package/dist/ix-icons/svg/output-cam.svg +1 -0
- package/dist/ix-icons/svg/profisafe-logo.svg +1 -0
- package/dist/ix-icons/svg/restart.svg +1 -0
- package/dist/ix-icons/svg/rocket-circle-filled.svg +1 -0
- package/dist/ix-icons/svg/rocket-circle.svg +1 -0
- package/dist/ix-icons/svg/ruler-diagonal.svg +1 -0
- package/dist/ix-icons/svg/safety-settings.svg +1 -0
- package/dist/ix-icons/svg/send-right-filled.svg +1 -0
- package/dist/ix-icons/svg/send-right.svg +1 -0
- package/dist/ix-icons/svg/send-top-right-filled.svg +1 -0
- package/dist/ix-icons/svg/send-top-right.svg +1 -0
- package/dist/ix-icons/svg/sensor.svg +1 -0
- package/dist/ix-icons/svg/shutdown.svg +1 -0
- package/dist/ix-icons/svg/tag-safety-filled.svg +1 -0
- package/dist/ix-icons/svg/tag-safety.svg +1 -0
- package/dist/ix-icons/svg/traffic-left-right.svg +1 -0
- package/dist/ix-icons/svg/update-application.svg +1 -0
- package/dist/ix-icons/svg/upload-fail.svg +1 -1
- package/dist/ix-icons/svg/upload-success.svg +1 -1
- package/dist/ix-icons/svg/upload.svg +1 -1
- package/dist/ix-icons/svg/upper-limit.svg +1 -1
- package/dist/ix-icons/svg/warning-hexagon-filled.svg +1 -0
- package/dist/ix-icons/svg/warning-hexagon.svg +1 -0
- package/dist/ix-icons/svg/warning-octagon-filled.svg +1 -0
- package/dist/ix-icons/svg/warning-octagon.svg +1 -0
- package/dist/ix-icons/svg/warning-square-filled.svg +1 -0
- package/dist/ix-icons/svg/warning-square.svg +1 -0
- package/dist/sample.json +92 -0
- package/dist/types/stencil-public-runtime.d.ts +23 -0
- package/icons/index.d.ts +92 -0
- package/icons/index.js +104 -12
- package/icons/index.mjs +104 -12
- package/icons/package.json +1 -1
- package/package.json +8 -5
- package/svg/app-update.svg +1 -0
- package/svg/cam-disk-600-seg.svg +1 -0
- package/svg/cam-disk-6k-seg.svg +1 -0
- package/svg/chart-error-bar.svg +1 -0
- package/svg/collapse-all.svg +1 -0
- package/svg/configuration-safety.svg +1 -0
- package/svg/connected-circle-filled.svg +1 -0
- package/svg/connected-circle.svg +1 -0
- package/svg/controller-device-safety.svg +1 -0
- package/svg/database-safety.svg +1 -0
- package/svg/disconnected-circle-filled.svg +1 -0
- package/svg/disconnected-circle.svg +1 -0
- package/svg/download-add.svg +1 -1
- package/svg/download-list.svg +1 -1
- package/svg/download.svg +1 -1
- package/svg/drive-safety.svg +1 -0
- package/svg/drive.svg +1 -0
- package/svg/edit-document-filled.svg +1 -1
- package/svg/edit-document.svg +1 -1
- package/svg/emergency-stop-filled.svg +1 -0
- package/svg/expand-all.svg +1 -0
- package/svg/flare.svg +1 -0
- package/svg/function-block-safety.svg +1 -0
- package/svg/generic-device-alarm.svg +1 -0
- package/svg/generic-device-brackets.svg +1 -0
- package/svg/generic-device-cancelled.svg +1 -0
- package/svg/generic-device-connected.svg +1 -0
- package/svg/generic-device-dashed.svg +1 -0
- package/svg/generic-device-disconnected.svg +1 -0
- package/svg/generic-device-error.svg +1 -0
- package/svg/generic-device-flare.svg +1 -0
- package/svg/generic-device-forced-mode.svg +1 -0
- package/svg/generic-device-incompatible.svg +1 -0
- package/svg/generic-device-io-unavailable.svg +1 -0
- package/svg/generic-device-lock.svg +1 -0
- package/svg/generic-device-maintenance.svg +1 -0
- package/svg/generic-device-pause.svg +1 -0
- package/svg/generic-device-play.svg +1 -0
- package/svg/generic-device-power-saving.svg +1 -0
- package/svg/generic-device-published.svg +1 -0
- package/svg/generic-device-question.svg +1 -0
- package/svg/generic-device-refresh.svg +1 -0
- package/svg/generic-device-reset.svg +1 -0
- package/svg/generic-device-restart.svg +1 -0
- package/svg/generic-device-rocket.svg +1 -0
- package/svg/generic-device-safety.svg +1 -0
- package/svg/generic-device-shield.svg +1 -0
- package/svg/generic-device-shutdown.svg +1 -0
- package/svg/generic-device-slash.svg +1 -0
- package/svg/generic-device-software-alarm.svg +1 -0
- package/svg/generic-device-standby.svg +1 -0
- package/svg/generic-device-stop-userprogram.svg +1 -0
- package/svg/generic-device-stop.svg +1 -0
- package/svg/generic-device-success.svg +1 -0
- package/svg/generic-device-synchronized.svg +1 -0
- package/svg/generic-device-traffic.svg +1 -0
- package/svg/generic-device.svg +1 -0
- package/svg/helmet-safety-filled.svg +1 -0
- package/svg/helmet-safety.svg +1 -0
- package/svg/import-check.svg +1 -0
- package/svg/import-failed.svg +1 -0
- package/svg/import-progress.svg +1 -0
- package/svg/incompatible.svg +1 -0
- package/svg/live-feed.svg +1 -0
- package/svg/lower-limit.svg +1 -1
- package/svg/maintenance-filled.svg +1 -0
- package/svg/maintenance-info-filled.svg +1 -0
- package/svg/maintenance-info.svg +1 -1
- package/svg/maintenance-octagon-filled.svg +1 -0
- package/svg/maintenance-octagon.svg +1 -0
- package/svg/maintenance-rhomb-filled.svg +1 -0
- package/svg/maintenance-rhomb.svg +1 -0
- package/svg/maintenance-square-filled.svg +1 -0
- package/svg/maintenance-square.svg +1 -0
- package/svg/maintenance-triangle-filled.svg +1 -0
- package/svg/maintenance-triangle.svg +1 -0
- package/svg/maintenance.svg +1 -1
- package/svg/output-cam.svg +1 -0
- package/svg/profisafe-logo.svg +1 -0
- package/svg/restart.svg +1 -0
- package/svg/rocket-circle-filled.svg +1 -0
- package/svg/rocket-circle.svg +1 -0
- package/svg/ruler-diagonal.svg +1 -0
- package/svg/safety-settings.svg +1 -0
- package/svg/send-right-filled.svg +1 -0
- package/svg/send-right.svg +1 -0
- package/svg/send-top-right-filled.svg +1 -0
- package/svg/send-top-right.svg +1 -0
- package/svg/sensor.svg +1 -0
- package/svg/shutdown.svg +1 -0
- package/svg/tag-safety-filled.svg +1 -0
- package/svg/tag-safety.svg +1 -0
- package/svg/traffic-left-right.svg +1 -0
- package/svg/update-application.svg +1 -0
- package/svg/upload-fail.svg +1 -1
- package/svg/upload-success.svg +1 -1
- package/svg/upload.svg +1 -1
- package/svg/upper-limit.svg +1 -1
- package/svg/warning-hexagon-filled.svg +1 -0
- package/svg/warning-hexagon.svg +1 -0
- package/svg/warning-octagon-filled.svg +1 -0
- package/svg/warning-octagon.svg +1 -0
- package/svg/warning-square-filled.svg +1 -0
- package/svg/warning-square.svg +1 -0
- package/dist/cjs/index-Rt6MP40k.js.map +0 -1
- package/dist/cjs/ix-icon.cjs.entry.js.map +0 -1
- package/dist/esm/index-B9Q9x8eq.js.map +0 -1
- package/dist/ix-icons/p-B9Q9x8eq.js +0 -3
- package/dist/ix-icons/p-B9Q9x8eq.js.map +0 -1
- package/dist/ix-icons/p-dd52e4ef.entry.js +0 -2
- package/dist/ix-icons/p-dd52e4ef.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.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 const svgDocument = parser.parseFromString(decodeURI(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":["getAssetPath","h","Host"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.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":["getAssetPath","h","Host"],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index.cjs.js');
|
|
4
|
-
require('./index-
|
|
4
|
+
require('./index-DUsbo4-K.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
exports.ix_icon = index.Icon;
|
|
9
9
|
//# sourceMappingURL=ix-icon.entry.cjs.js.map
|
|
10
|
-
|
|
11
|
-
//# sourceMappingURL=ix-icon.cjs.entry.js.map
|
package/dist/cjs/ix-icons.cjs.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-DUsbo4-K.js');
|
|
4
4
|
var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
5
5
|
|
|
6
6
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
7
|
/*
|
|
8
|
-
Stencil Client Patch Browser v4.
|
|
8
|
+
Stencil Client Patch Browser v4.37.1 | MIT Licensed | https://stenciljs.com
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
var patchBrowser = () => {
|
|
@@ -19,10 +19,8 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["ix-icon.cjs",[[
|
|
22
|
+
return index.bootstrapLazy([["ix-icon.cjs",[[257,"ix-icon",{"size":[1],"color":[1],"name":[1],"lazyLoading":[4,"lazy-loading"],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIconContent"]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.setNonce = index.setNonce;
|
|
26
26
|
//# sourceMappingURL=ix-icons.cjs.js.map
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=ix-icons.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ix-icons.cjs.js","sources":["node_modules/.pnpm/@stencil+core@4.
|
|
1
|
+
{"version":3,"file":"ix-icons.cjs.js","sources":["node_modules/.pnpm/@stencil+core@4.37.1/node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.37.1 | 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":["promiseResolve","globalScripts","bootstrapLazy"],"mappings":";;;;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,iQAAe;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,OAAOA,oBAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAMC,wBAAa,EAAE;AACvB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC;;;;","x_google_ignoreList":[0]}
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-DUsbo4-K.js');
|
|
4
4
|
var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
5
5
|
|
|
6
6
|
const defineCustomElements = async (win, options) => {
|
|
7
7
|
if (typeof window === 'undefined') return undefined;
|
|
8
8
|
await appGlobals.globalScripts();
|
|
9
|
-
return index.bootstrapLazy([["ix-icon.cjs",[[
|
|
9
|
+
return index.bootstrapLazy([["ix-icon.cjs",[[257,"ix-icon",{"size":[1],"color":[1],"name":[1],"lazyLoading":[4,"lazy-loading"],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIconContent"]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|
|
13
13
|
exports.defineCustomElements = defineCustomElements;
|
|
14
14
|
//# sourceMappingURL=loader.cjs.js.map
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=loader.cjs.js.map
|
|
@@ -11,7 +11,14 @@ export function parseSVGDataContent(content, element) {
|
|
|
11
11
|
if (parser === null) {
|
|
12
12
|
parser = new window['DOMParser']();
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
// decode URI component if needed
|
|
15
|
+
try {
|
|
16
|
+
content = decodeURI(content);
|
|
17
|
+
}
|
|
18
|
+
catch (_a) {
|
|
19
|
+
// Content is not a valid URI component, which can happen if it's already decoded. Proceed with the original content.
|
|
20
|
+
}
|
|
21
|
+
const svgDocument = parser.parseFromString(content, 'text/html');
|
|
15
22
|
const svgElement = svgDocument.querySelector('svg');
|
|
16
23
|
if (!svgElement) {
|
|
17
24
|
if (element) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/components/icon/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,IAAI,MAAM,GAAQ,IAAI,CAAC;AAEvB,MAAM,CAAC,MAAM,WAAW,GACtB,gdAAgd,CAAC;AAEnd,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,OAAqB;IACxE,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/components/icon/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,IAAI,MAAM,GAAQ,IAAI,CAAC;AAEvB,MAAM,CAAC,MAAM,WAAW,GACtB,gdAAgd,CAAC;AAEnd,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,OAAqB;IACxE,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC;QACH,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,WAAM,CAAC;QACP,qHAAqH;IACvH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC;IAEnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,UAAU,CAAC,SAAS,CAAC;AAC9B,CAAC","sourcesContent":["/*\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"]}
|
|
@@ -2,7 +2,7 @@ const NAMESPACE = 'ix-icons';
|
|
|
2
2
|
const BUILD = /* ix-icons */ { hydratedSelectorName: "hydrated", lazyLoad: true, updatable: true};
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
|
-
Stencil Client Platform v4.
|
|
5
|
+
Stencil Client Platform v4.37.1 | MIT Licensed | https://stenciljs.com
|
|
6
6
|
*/
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __export = (target, all) => {
|
|
@@ -22,6 +22,7 @@ var getHostRef = (ref) => {
|
|
|
22
22
|
return void 0;
|
|
23
23
|
};
|
|
24
24
|
var registerInstance = (lazyInstance, hostRef) => {
|
|
25
|
+
if (!hostRef) return;
|
|
25
26
|
lazyInstance.__stencil__getHostRef = () => hostRef;
|
|
26
27
|
hostRef.$lazyInstance$ = lazyInstance;
|
|
27
28
|
};
|
|
@@ -112,6 +113,7 @@ var supportsConstructableStylesheets = /* @__PURE__ */ (() => {
|
|
|
112
113
|
}
|
|
113
114
|
return false;
|
|
114
115
|
})() ;
|
|
116
|
+
var supportsMutableAdoptedStyleSheets = supportsConstructableStylesheets ? /* @__PURE__ */ (() => !!win.document && Object.getOwnPropertyDescriptor(win.document.adoptedStyleSheets, "length").writable)() : false;
|
|
115
117
|
var queuePending = false;
|
|
116
118
|
var queueDomReads = [];
|
|
117
119
|
var queueDomWrites = [];
|
|
@@ -230,7 +232,13 @@ function createShadowRoot(cmpMeta) {
|
|
|
230
232
|
var _a;
|
|
231
233
|
const shadowRoot = this.attachShadow({ mode: "open" });
|
|
232
234
|
if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
|
|
233
|
-
if (globalStyleSheet)
|
|
235
|
+
if (globalStyleSheet) {
|
|
236
|
+
if (supportsMutableAdoptedStyleSheets) {
|
|
237
|
+
shadowRoot.adoptedStyleSheets.push(globalStyleSheet);
|
|
238
|
+
} else {
|
|
239
|
+
shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
|
|
240
|
+
}
|
|
241
|
+
}
|
|
234
242
|
}
|
|
235
243
|
var createTime = (fnName, tagName = "") => {
|
|
236
244
|
{
|
|
@@ -297,7 +305,11 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
|
|
|
297
305
|
if (supportsConstructableStylesheets) {
|
|
298
306
|
const stylesheet = new CSSStyleSheet();
|
|
299
307
|
stylesheet.replaceSync(style);
|
|
300
|
-
|
|
308
|
+
if (supportsMutableAdoptedStyleSheets) {
|
|
309
|
+
styleContainerNode.adoptedStyleSheets.unshift(stylesheet);
|
|
310
|
+
} else {
|
|
311
|
+
styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
|
|
312
|
+
}
|
|
301
313
|
} else {
|
|
302
314
|
const existingStyleContainer = styleContainerNode.querySelector("style");
|
|
303
315
|
if (existingStyleContainer) {
|
|
@@ -322,7 +334,11 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
|
|
|
322
334
|
}
|
|
323
335
|
}
|
|
324
336
|
} else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
|
|
325
|
-
|
|
337
|
+
if (supportsMutableAdoptedStyleSheets) {
|
|
338
|
+
styleContainerNode.adoptedStyleSheets.push(style);
|
|
339
|
+
} else {
|
|
340
|
+
styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
|
|
341
|
+
}
|
|
326
342
|
}
|
|
327
343
|
}
|
|
328
344
|
return scopeId2;
|
|
@@ -432,7 +448,10 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
|
|
|
432
448
|
}
|
|
433
449
|
return propValue;
|
|
434
450
|
};
|
|
435
|
-
var getElement = (ref) =>
|
|
451
|
+
var getElement = (ref) => {
|
|
452
|
+
var _a;
|
|
453
|
+
return (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ ;
|
|
454
|
+
};
|
|
436
455
|
var emitEvent = (elm, name, opts) => {
|
|
437
456
|
const ev = plt.ce(name, opts);
|
|
438
457
|
elm.dispatchEvent(ev);
|
|
@@ -799,6 +818,12 @@ var scheduleUpdate = (hostRef, isInitialLoad) => {
|
|
|
799
818
|
}
|
|
800
819
|
attachToAncestor(hostRef, hostRef.$ancestorComponent$);
|
|
801
820
|
const dispatch = () => dispatchHooks(hostRef, isInitialLoad);
|
|
821
|
+
if (isInitialLoad) {
|
|
822
|
+
queueMicrotask(() => {
|
|
823
|
+
dispatch();
|
|
824
|
+
});
|
|
825
|
+
return;
|
|
826
|
+
}
|
|
802
827
|
return writeTask(dispatch) ;
|
|
803
828
|
};
|
|
804
829
|
var dispatchHooks = (hostRef, isInitialLoad) => {
|
|
@@ -933,6 +958,9 @@ var addHydratedFlag = (elm) => {
|
|
|
933
958
|
var getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
|
|
934
959
|
var setValue = (ref, propName, newVal, cmpMeta) => {
|
|
935
960
|
const hostRef = getHostRef(ref);
|
|
961
|
+
if (!hostRef) {
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
936
964
|
if (!hostRef) {
|
|
937
965
|
throw new Error(
|
|
938
966
|
`Couldn't find host element for "${cmpMeta.$tagName$}" 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).`
|
|
@@ -1008,6 +1036,9 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
1008
1036
|
Object.defineProperty(prototype, memberName, {
|
|
1009
1037
|
set(newValue) {
|
|
1010
1038
|
const ref = getHostRef(this);
|
|
1039
|
+
if (!ref) {
|
|
1040
|
+
return;
|
|
1041
|
+
}
|
|
1011
1042
|
if (origSetter) {
|
|
1012
1043
|
const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
|
|
1013
1044
|
if (typeof currentValue === "undefined" && ref.$instanceValues$.get(memberName)) {
|
|
@@ -1071,7 +1102,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
1071
1102
|
} else if (propName == null) {
|
|
1072
1103
|
const hostRef = getHostRef(this);
|
|
1073
1104
|
const flags2 = hostRef == null ? void 0 : hostRef.$flags$;
|
|
1074
|
-
if (flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {
|
|
1105
|
+
if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {
|
|
1075
1106
|
const instance = hostRef.$lazyInstance$ ;
|
|
1076
1107
|
const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];
|
|
1077
1108
|
entry == null ? void 0 : entry.forEach((callbackName) => {
|
|
@@ -1092,7 +1123,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
1092
1123
|
Cstr.observedAttributes = Array.from(
|
|
1093
1124
|
/* @__PURE__ */ new Set([
|
|
1094
1125
|
...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),
|
|
1095
|
-
...members.filter(([_, m]) => m[0] &
|
|
1126
|
+
...members.filter(([_, m]) => m[0] & 31 /* HasAttribute */).map(([propName, m]) => {
|
|
1096
1127
|
const attrName = m[1] || propName;
|
|
1097
1128
|
attrNameToPropName.set(attrName, propName);
|
|
1098
1129
|
return attrName;
|
|
@@ -1182,6 +1213,9 @@ var fireConnectedCallback = (instance, elm) => {
|
|
|
1182
1213
|
var connectedCallback = (elm) => {
|
|
1183
1214
|
if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
|
|
1184
1215
|
const hostRef = getHostRef(elm);
|
|
1216
|
+
if (!hostRef) {
|
|
1217
|
+
return;
|
|
1218
|
+
}
|
|
1185
1219
|
const cmpMeta = hostRef.$cmpMeta$;
|
|
1186
1220
|
const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
|
|
1187
1221
|
if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
|
|
@@ -1300,7 +1334,10 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1300
1334
|
}
|
|
1301
1335
|
}
|
|
1302
1336
|
connectedCallback() {
|
|
1303
|
-
getHostRef(this);
|
|
1337
|
+
const hostRef = getHostRef(this);
|
|
1338
|
+
if (!hostRef) {
|
|
1339
|
+
return;
|
|
1340
|
+
}
|
|
1304
1341
|
if (!this.hasRegisteredEventListeners) {
|
|
1305
1342
|
this.hasRegisteredEventListeners = true;
|
|
1306
1343
|
}
|
|
@@ -1319,6 +1356,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1319
1356
|
plt.raf(() => {
|
|
1320
1357
|
var _a3;
|
|
1321
1358
|
const hostRef = getHostRef(this);
|
|
1359
|
+
if (!hostRef) {
|
|
1360
|
+
return;
|
|
1361
|
+
}
|
|
1322
1362
|
const i2 = deferredConnectedCallbacks.findIndex((host) => host === this);
|
|
1323
1363
|
if (i2 > -1) {
|
|
1324
1364
|
deferredConnectedCallbacks.splice(i2, 1);
|
|
@@ -1329,7 +1369,8 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1329
1369
|
});
|
|
1330
1370
|
}
|
|
1331
1371
|
componentOnReady() {
|
|
1332
|
-
|
|
1372
|
+
var _a3;
|
|
1373
|
+
return (_a3 = getHostRef(this)) == null ? void 0 : _a3.$onReadyPromise$;
|
|
1333
1374
|
}
|
|
1334
1375
|
};
|
|
1335
1376
|
cmpMeta.$lazyBundleId$ = lazyBundle[0];
|
|
@@ -1373,6 +1414,6 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1373
1414
|
var setNonce = (nonce) => plt.$nonce$ = nonce;
|
|
1374
1415
|
|
|
1375
1416
|
export { Host as H, getElement as a, bootstrapLazy as b, setAssetPath as c, getAssetPath as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
|
|
1376
|
-
//# sourceMappingURL=index-
|
|
1417
|
+
//# sourceMappingURL=index-BiqddxKp.js.map
|
|
1377
1418
|
|
|
1378
|
-
//# sourceMappingURL=index-
|
|
1419
|
+
//# sourceMappingURL=index-BiqddxKp.js.map
|