@siemens/ix-icons 0.0.0-20240515161342 → 0.0.0-20240729073852
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/dist/cjs/{icon-8d6a19b5.js → icon-ee6021fa.js} +13 -65
- package/dist/cjs/icon-ee6021fa.js.map +1 -0
- package/dist/cjs/{index-af0541e0.js → index-8f585802.js} +3 -1
- package/dist/cjs/index-8f585802.js.map +1 -0
- package/dist/cjs/index.cjs.js +1681 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/ix-icon.cjs.entry.js +2 -2
- package/dist/cjs/ix-icons.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/icon/icons.js +135 -19
- package/dist/collection/components/icon/icons.js.map +1 -1
- package/dist/collection/components/icon/meta-tag.js +0 -25
- package/dist/collection/components/icon/meta-tag.js.map +1 -1
- package/dist/collection/components/icon/resolveIcon.js +10 -40
- package/dist/collection/components/icon/resolveIcon.js.map +1 -1
- package/dist/collection/components/icon/test/resolveIcon.spec.js +38 -10
- package/dist/collection/components/icon/test/resolveIcon.spec.js.map +1 -1
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/legacy-support.js +45 -0
- package/dist/collection/legacy-support.js.map +1 -0
- package/dist/components/icon.js +9 -64
- package/dist/components/icon.js.map +1 -1
- package/dist/components/index.js +1683 -0
- package/dist/components/index.js.map +1 -1
- package/dist/esm/{icon-9458edad.js → icon-76ecbfbf.js} +11 -66
- package/dist/esm/icon-76ecbfbf.js.map +1 -0
- package/dist/esm/{index-8088fea1.js → index-d1072d3f.js} +3 -2
- package/dist/esm/index-d1072d3f.js.map +1 -0
- package/dist/esm/index.js +1685 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ix-icon.entry.js +2 -2
- package/dist/esm/ix-icons.js +2 -2
- package/dist/esm/loader.js +2 -2
- 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/p-05455ad0.js +3 -0
- package/dist/ix-icons/p-05455ad0.js.map +1 -0
- package/dist/ix-icons/p-20e57a64.entry.js +2 -0
- package/dist/ix-icons/p-31deceec.js +2 -0
- package/dist/ix-icons/p-31deceec.js.map +1 -0
- package/dist/sample.json +116 -0
- package/dist/types/components/icon/icons.d.ts +136 -20
- package/dist/types/components/icon/meta-tag.d.ts +0 -6
- package/dist/types/components/icon/resolveIcon.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/legacy-support.d.ts +1 -0
- package/icons/index.d.ts +116 -0
- package/icons/index.js +135 -19
- package/icons/index.mjs +135 -19
- package/icons/package.json +1 -1
- package/package.json +1 -1
- package/svg/add-filter-filled.svg +1 -0
- package/svg/add-filter.svg +1 -0
- package/svg/add-selection.svg +1 -0
- package/svg/add-shield-half.svg +1 -0
- package/svg/alarm-clock-cancelled.svg +1 -0
- package/svg/alarm-clock-success.svg +1 -0
- package/svg/battery-bolt.svg +1 -0
- package/svg/battery-upright-bolt.svg +1 -0
- package/svg/battery-upright-check.svg +1 -0
- package/svg/battery-upright-empty.svg +1 -0
- package/svg/battery-upright-exclamation.svg +1 -0
- package/svg/battery-upright-full-check.svg +1 -0
- package/svg/battery-upright-full.svg +1 -0
- package/svg/battery-upright-half.svg +1 -0
- package/svg/battery-upright-low.svg +1 -0
- package/svg/battery-upright-quarter.svg +1 -0
- package/svg/battery-upright-question.svg +1 -0
- package/svg/battery-upright-slash.svg +1 -0
- package/svg/battery-upright-three-quarter.svg +1 -0
- package/svg/battery-upright-xmark.svg +1 -0
- package/svg/box-closed.svg +1 -0
- package/svg/box-ipc-fail.svg +1 -0
- package/svg/box-ipc-question.svg +1 -0
- package/svg/box-ipc-success.svg +1 -0
- package/svg/box-ipc.svg +1 -0
- package/svg/box-open.svg +1 -0
- package/svg/bug-filled.svg +1 -0
- package/svg/bug.svg +1 -0
- package/svg/calculator.svg +1 -0
- package/svg/chevron-down-bar-small.svg +1 -0
- package/svg/chevron-down-bar.svg +1 -0
- package/svg/chevron-down.svg +1 -1
- package/svg/chevron-left-bar-small.svg +1 -0
- package/svg/chevron-left-bar.svg +1 -0
- package/svg/chevron-right-bar-small.svg +1 -0
- package/svg/chevron-right-bar.svg +1 -0
- package/svg/chevron-up-bar-small.svg +1 -0
- package/svg/chevron-up-bar.svg +1 -0
- package/svg/clear-filter-filled.svg +1 -1
- package/svg/clear-filter.svg +1 -1
- package/svg/cloud-fail-filled.svg +1 -1
- package/svg/cloud-fail.svg +1 -1
- package/svg/cloud-success-filled.svg +1 -1
- package/svg/cloud-success.svg +1 -1
- package/svg/compare.svg +1 -0
- package/svg/copy-filled.svg +1 -0
- package/svg/counter.svg +1 -0
- package/svg/crosshairs-filled.svg +1 -0
- package/svg/crosshairs.svg +1 -0
- package/svg/customer-filled.svg +1 -0
- package/svg/customer.svg +1 -0
- package/svg/cut-filled.svg +1 -0
- package/svg/device-driver.svg +1 -0
- package/svg/device-fan.svg +1 -0
- package/svg/disk-pen.svg +1 -1
- package/svg/drag-and-drop.svg +1 -0
- package/svg/drag-gripper.svg +1 -0
- package/svg/drop-zone.svg +1 -0
- package/svg/duplicate-filled.svg +1 -0
- package/svg/edit-document-filled.svg +1 -0
- package/svg/edit-document.svg +1 -0
- package/svg/firmware.svg +1 -0
- package/svg/flashing.svg +1 -0
- package/svg/handshake.svg +1 -0
- package/svg/hard-disk-drive.svg +1 -0
- package/svg/heading.svg +1 -0
- package/svg/health-filled.svg +1 -1
- package/svg/health.svg +1 -1
- package/svg/heart-filled.svg +1 -1
- package/svg/heart.svg +1 -1
- package/svg/height.svg +1 -0
- package/svg/hourglass-empty.svg +1 -0
- package/svg/hourglass-end.svg +1 -0
- package/svg/hourglass-filled.svg +1 -0
- package/svg/hourglass-start.svg +1 -0
- package/svg/ipcs.svg +1 -0
- package/svg/join.svg +1 -0
- package/svg/link-break.svg +1 -0
- package/svg/link-diagonal.svg +1 -0
- package/svg/list-sorted-alt.svg +1 -0
- package/svg/list-sorted.svg +1 -0
- package/svg/move.svg +1 -0
- package/svg/operate-plant.svg +1 -1
- package/svg/operating-system.svg +1 -0
- package/svg/panel-ipc-fail.svg +1 -0
- package/svg/panel-ipc-question.svg +1 -0
- package/svg/panel-ipc-success.svg +1 -0
- package/svg/panel-ipc.svg +1 -0
- package/svg/power-supply.svg +1 -0
- package/svg/quote.svg +1 -0
- package/svg/rack-ipc-fail.svg +1 -0
- package/svg/rack-ipc-question.svg +1 -0
- package/svg/rack-ipc-success.svg +1 -0
- package/svg/rack-ipc.svg +1 -0
- package/svg/refresh-exclamation.svg +1 -0
- package/svg/refresh-settings.svg +1 -0
- package/svg/reorder.svg +1 -0
- package/svg/replace.svg +1 -1
- package/svg/runtime-settings.svg +1 -0
- package/svg/sd-card-filled.svg +1 -0
- package/svg/sd-card-micro-filled.svg +1 -0
- package/svg/sd-card-micro.svg +1 -0
- package/svg/sd-card.svg +1 -0
- package/svg/separator-line.svg +1 -0
- package/svg/shield-broken-filled.svg +1 -0
- package/svg/shield-broken.svg +1 -0
- package/svg/shield-check-filled.svg +1 -0
- package/svg/shield-check.svg +1 -0
- package/svg/shield-filled.svg +1 -0
- package/svg/shield-half.svg +1 -0
- package/svg/shield.svg +1 -0
- package/svg/solid-state-drive.svg +1 -0
- package/svg/sort-alt.svg +1 -0
- package/svg/sort.svg +1 -1
- package/svg/split.svg +1 -0
- package/svg/sword-swing.svg +1 -0
- package/svg/text-bold.svg +1 -0
- package/svg/text-italic.svg +1 -0
- package/svg/text-strike-through.svg +1 -0
- package/svg/text-underline.svg +1 -0
- package/svg/thermometer.svg +1 -0
- package/svg/trend-downward-circle.svg +1 -0
- package/svg/trend-sideways-circle.svg +1 -0
- package/svg/trend-upward-circle.svg +1 -0
- package/svg/trophy-filled.svg +1 -0
- package/svg/trophy.svg +1 -0
- package/svg/usb-drive.svg +1 -0
- package/svg/user-check-filled.svg +1 -1
- package/svg/user-check.svg +1 -1
- package/svg/user-fail-filled.svg +1 -1
- package/svg/user-fail.svg +1 -1
- package/svg/user-success-filled.svg +1 -0
- package/svg/user-success.svg +1 -0
- package/svg/width.svg +1 -0
- package/svg/zone.svg +1 -0
- package/dist/cjs/icon-8d6a19b5.js.map +0 -1
- package/dist/cjs/icons-0dd6f96e.js +0 -1405
- package/dist/cjs/icons-0dd6f96e.js.map +0 -1
- package/dist/cjs/index-af0541e0.js.map +0 -1
- package/dist/components/icons.js +0 -705
- package/dist/components/icons.js.map +0 -1
- package/dist/esm/icon-9458edad.js.map +0 -1
- package/dist/esm/icons-84dc9236.js +0 -705
- package/dist/esm/icons-84dc9236.js.map +0 -1
- package/dist/esm/index-8088fea1.js.map +0 -1
- package/dist/ix-icons/p-1dac0290.js +0 -2
- package/dist/ix-icons/p-1dac0290.js.map +0 -1
- package/dist/ix-icons/p-51684ec4.js +0 -2
- package/dist/ix-icons/p-51684ec4.js.map +0 -1
- package/dist/ix-icons/p-efdd4090.js +0 -3
- package/dist/ix-icons/p-efdd4090.js.map +0 -1
- package/dist/ix-icons/p-f748c4c1.entry.js +0 -2
- /package/dist/ix-icons/{p-f748c4c1.entry.js.map → p-20e57a64.entry.js.map} +0 -0
|
@@ -1,20 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const index = require('./index-
|
|
3
|
+
const index = require('./index-8f585802.js');
|
|
4
4
|
|
|
5
5
|
/*
|
|
6
6
|
* COPYRIGHT (c) Siemens AG 2018-2024 ALL RIGHTS RESERVED.
|
|
7
7
|
*/
|
|
8
|
-
function getV3PreviewMetaElement() {
|
|
9
|
-
return document.querySelector("meta[name='ix-icons:v3-preview']");
|
|
10
|
-
}
|
|
11
|
-
function getV3PreviewMetaContent() {
|
|
12
|
-
const v3PreviewMetaElement = getV3PreviewMetaElement();
|
|
13
|
-
if (v3PreviewMetaElement) {
|
|
14
|
-
return v3PreviewMetaElement.getAttribute('content').split(';');
|
|
15
|
-
}
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
8
|
/**
|
|
19
9
|
* Provide custom SVG path for icons
|
|
20
10
|
*
|
|
@@ -28,21 +18,6 @@ function getCustomAssetUrl() {
|
|
|
28
18
|
}
|
|
29
19
|
return false;
|
|
30
20
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Enable v3 preview features
|
|
33
|
-
*
|
|
34
|
-
* <meta name="ix-icons:v3-preview" content="svg-path-loading;" />
|
|
35
|
-
*/
|
|
36
|
-
function isV3PreviewEnabled() {
|
|
37
|
-
const features = getV3PreviewMetaContent();
|
|
38
|
-
if (!features) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
if (features.includes('svg-path-loading')) {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
21
|
|
|
47
22
|
/*
|
|
48
23
|
* SPDX-FileCopyrightText: 2023 Siemens AG
|
|
@@ -55,25 +30,6 @@ function isV3PreviewEnabled() {
|
|
|
55
30
|
let fetchCache;
|
|
56
31
|
const requests = new Map();
|
|
57
32
|
let parser = null;
|
|
58
|
-
function toCamelCase(value) {
|
|
59
|
-
value = value.replace(/[\(\)\[\]\{\}\=\?\!\.\:,\-_\+\\\"#~\/]/g, ' ');
|
|
60
|
-
let returnValue = '';
|
|
61
|
-
let makeNextUppercase = true;
|
|
62
|
-
value = value.toLowerCase();
|
|
63
|
-
for (let i = 0; value.length > i; i++) {
|
|
64
|
-
let c = value.charAt(i);
|
|
65
|
-
if (c.match(/^\s+$/g) || c.match(/[\(\)\[\]\{\}\\\/]/g)) {
|
|
66
|
-
makeNextUppercase = true;
|
|
67
|
-
}
|
|
68
|
-
else if (makeNextUppercase) {
|
|
69
|
-
c = c.toUpperCase();
|
|
70
|
-
makeNextUppercase = false;
|
|
71
|
-
}
|
|
72
|
-
returnValue += c;
|
|
73
|
-
}
|
|
74
|
-
const normalized = returnValue.replace(/\s+/g, '');
|
|
75
|
-
return normalized.charAt(0).toUpperCase() + normalized.slice(1);
|
|
76
|
-
}
|
|
77
33
|
const getIconCacheMap = () => {
|
|
78
34
|
if (typeof window === 'undefined') {
|
|
79
35
|
return new Map();
|
|
@@ -109,14 +65,13 @@ function parseSVGDataContent(content) {
|
|
|
109
65
|
return svgElement.outerHTML;
|
|
110
66
|
}
|
|
111
67
|
async function fetchSVG(url) {
|
|
112
|
-
const request = requests.get(url);
|
|
113
|
-
if (request) {
|
|
114
|
-
return request;
|
|
115
|
-
}
|
|
116
68
|
const cache = getIconCacheMap();
|
|
117
69
|
if (cache.has(url)) {
|
|
118
70
|
return cache.get(url);
|
|
119
71
|
}
|
|
72
|
+
if (requests.has(url)) {
|
|
73
|
+
return requests.get(url);
|
|
74
|
+
}
|
|
120
75
|
const fetching = fetch(url).then(async (response) => {
|
|
121
76
|
const responseText = await response.text();
|
|
122
77
|
if (!response.ok) {
|
|
@@ -141,12 +96,6 @@ function getAssetUrl(name) {
|
|
|
141
96
|
}
|
|
142
97
|
return index.getAssetPath(`svg/${name}.svg`);
|
|
143
98
|
}
|
|
144
|
-
async function getESMIcon(name) {
|
|
145
|
-
const esmIcon = await Promise.resolve().then(function () { return require('./icons-0dd6f96e.js'); });
|
|
146
|
-
let iconName = toCamelCase(name);
|
|
147
|
-
iconName = `icon${iconName}`;
|
|
148
|
-
return parseSVGDataContent(esmIcon[iconName]);
|
|
149
|
-
}
|
|
150
99
|
async function resolveIcon(iconName) {
|
|
151
100
|
if (!iconName) {
|
|
152
101
|
throw Error('No icon name provided');
|
|
@@ -162,16 +111,12 @@ async function resolveIcon(iconName) {
|
|
|
162
111
|
throw error;
|
|
163
112
|
}
|
|
164
113
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
catch (error) {
|
|
171
|
-
throw Error('Cannot resolve any icon');
|
|
172
|
-
}
|
|
114
|
+
try {
|
|
115
|
+
return fetchSVG(getAssetUrl(iconName));
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
throw Error('Cannot resolve any icon');
|
|
173
119
|
}
|
|
174
|
-
return getESMIcon(iconName);
|
|
175
120
|
}
|
|
176
121
|
|
|
177
122
|
const iconCss = ":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}";
|
|
@@ -241,5 +186,8 @@ const Icon = class {
|
|
|
241
186
|
Icon.style = IxIconStyle0;
|
|
242
187
|
|
|
243
188
|
exports.Icon = Icon;
|
|
189
|
+
exports.getAssetUrl = getAssetUrl;
|
|
190
|
+
exports.getIconCacheMap = getIconCacheMap;
|
|
191
|
+
exports.parseSVGDataContent = parseSVGDataContent;
|
|
244
192
|
|
|
245
|
-
//# sourceMappingURL=icon-
|
|
193
|
+
//# sourceMappingURL=icon-ee6021fa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"icon-ee6021fa.js","mappings":"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","names":["getAssetPath","h","Host"],"sources":["src/components/icon/meta-tag.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/*\n * COPYRIGHT (c) Siemens AG 2018-2024 ALL RIGHTS RESERVED.\n */\n/**\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 * 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';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\nlet parser = null;\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 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\nexport function parseSVGDataContent(content: string) {\n if (typeof window['DOMParser'] === 'undefined') {\n console.warn('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(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n throw Error('No valid svg data provided');\n }\n\n return svgElement.outerHTML;\n}\n\nasync function fetchSVG(url: string) {\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).then(async response => {\n const responseText = await response.text();\n\n if (!response.ok) {\n console.error(responseText);\n throw Error(responseText);\n }\n\n const svgContent = parseSVGDataContent(responseText);\n cache.set(url, svgContent);\n\n return svgContent;\n });\n\n requests.set(url, fetching);\n return fetching;\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 getAssetUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n return getAssetPath(`svg/${name}.svg`);\n}\n\nexport async function resolveIcon(iconName: string) {\n if (!iconName) {\n throw Error('No icon name provided');\n }\n\n if (isSvgDataUrl(iconName)) {\n return parseSVGDataContent(iconName);\n }\n\n if (isValidUrl(iconName)) {\n try {\n return fetchSVG(iconName);\n } catch (error) {\n throw error;\n }\n }\n\n try {\n return fetchSVG(getAssetUrl(iconName));\n } catch (error) {\n throw Error('Cannot resolve any icon');\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 { parseSVGDataContent, resolveIcon } from './resolveIcon';\n\nconst iconMissingSymbol =\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\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';\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 @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n connectedCallback() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n try {\n this.svgContent = await resolveIcon(this.name);\n } catch (error) {\n this.svgContent = parseSVGDataContent(iconMissingSymbol);\n }\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 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}></div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -38,6 +38,7 @@ const getAssetPath = (path) => {
|
|
|
38
38
|
const assetUrl = new URL(path, plt.$resourcesUrl$);
|
|
39
39
|
return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;
|
|
40
40
|
};
|
|
41
|
+
const setAssetPath = (path) => (plt.$resourcesUrl$ = path);
|
|
41
42
|
const createTime = (fnName, tagName = '') => {
|
|
42
43
|
{
|
|
43
44
|
return () => {
|
|
@@ -1803,6 +1804,7 @@ exports.getElement = getElement;
|
|
|
1803
1804
|
exports.h = h;
|
|
1804
1805
|
exports.promiseResolve = promiseResolve;
|
|
1805
1806
|
exports.registerInstance = registerInstance;
|
|
1807
|
+
exports.setAssetPath = setAssetPath;
|
|
1806
1808
|
exports.setNonce = setNonce;
|
|
1807
1809
|
|
|
1808
|
-
//# sourceMappingURL=index-
|
|
1810
|
+
//# sourceMappingURL=index-8f585802.js.map
|