@siemens/ix-icons 0.0.0-20240613090826 → 0.0.0-20240729073852
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/{icon-0c8b3da7.js → icon-ee6021fa.js} +10 -61
- 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 +7 -36
- 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 +6 -60
- 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-7b034d22.js → icon-76ecbfbf.js} +8 -62
- 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-0c8b3da7.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-7b034d22.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-51684ec4.js +0 -2
- package/dist/ix-icons/p-51684ec4.js.map +0 -1
- package/dist/ix-icons/p-94b37f0d.entry.js +0 -2
- package/dist/ix-icons/p-efdd4090.js +0 -3
- package/dist/ix-icons/p-efdd4090.js.map +0 -1
- package/dist/ix-icons/p-f737ff39.js +0 -2
- package/dist/ix-icons/p-f737ff39.js.map +0 -1
- /package/dist/ix-icons/{p-94b37f0d.entry.js.map → p-20e57a64.entry.js.map} +0 -0
@@ -1,18 +1,8 @@
|
|
1
|
-
import { g as getAssetPath, r as registerInstance, h, H as Host,
|
1
|
+
import { g as getAssetPath, r as registerInstance, h, H as Host, c as getElement } from './index-d1072d3f.js';
|
2
2
|
|
3
3
|
/*
|
4
4
|
* COPYRIGHT (c) Siemens AG 2018-2024 ALL RIGHTS RESERVED.
|
5
5
|
*/
|
6
|
-
function getV3PreviewMetaElement() {
|
7
|
-
return document.querySelector("meta[name='ix-icons:v3-preview']");
|
8
|
-
}
|
9
|
-
function getV3PreviewMetaContent() {
|
10
|
-
const v3PreviewMetaElement = getV3PreviewMetaElement();
|
11
|
-
if (v3PreviewMetaElement) {
|
12
|
-
return v3PreviewMetaElement.getAttribute('content').split(';');
|
13
|
-
}
|
14
|
-
return null;
|
15
|
-
}
|
16
6
|
/**
|
17
7
|
* Provide custom SVG path for icons
|
18
8
|
*
|
@@ -26,21 +16,6 @@ function getCustomAssetUrl() {
|
|
26
16
|
}
|
27
17
|
return false;
|
28
18
|
}
|
29
|
-
/**
|
30
|
-
* Enable v3 preview features
|
31
|
-
*
|
32
|
-
* <meta name="ix-icons:v3-preview" content="svg-path-loading;" />
|
33
|
-
*/
|
34
|
-
function isV3PreviewEnabled() {
|
35
|
-
const features = getV3PreviewMetaContent();
|
36
|
-
if (!features) {
|
37
|
-
return false;
|
38
|
-
}
|
39
|
-
if (features.includes('svg-path-loading')) {
|
40
|
-
return true;
|
41
|
-
}
|
42
|
-
return false;
|
43
|
-
}
|
44
19
|
|
45
20
|
/*
|
46
21
|
* SPDX-FileCopyrightText: 2023 Siemens AG
|
@@ -53,25 +28,6 @@ function isV3PreviewEnabled() {
|
|
53
28
|
let fetchCache;
|
54
29
|
const requests = new Map();
|
55
30
|
let parser = null;
|
56
|
-
function toCamelCase(value) {
|
57
|
-
value = value.replace(/[\(\)\[\]\{\}\=\?\!\.\:,\-_\+\\\"#~\/]/g, ' ');
|
58
|
-
let returnValue = '';
|
59
|
-
let makeNextUppercase = true;
|
60
|
-
value = value.toLowerCase();
|
61
|
-
for (let i = 0; value.length > i; i++) {
|
62
|
-
let c = value.charAt(i);
|
63
|
-
if (c.match(/^\s+$/g) || c.match(/[\(\)\[\]\{\}\\\/]/g)) {
|
64
|
-
makeNextUppercase = true;
|
65
|
-
}
|
66
|
-
else if (makeNextUppercase) {
|
67
|
-
c = c.toUpperCase();
|
68
|
-
makeNextUppercase = false;
|
69
|
-
}
|
70
|
-
returnValue += c;
|
71
|
-
}
|
72
|
-
const normalized = returnValue.replace(/\s+/g, '');
|
73
|
-
return normalized.charAt(0).toUpperCase() + normalized.slice(1);
|
74
|
-
}
|
75
31
|
const getIconCacheMap = () => {
|
76
32
|
if (typeof window === 'undefined') {
|
77
33
|
return new Map();
|
@@ -138,12 +94,6 @@ function getAssetUrl(name) {
|
|
138
94
|
}
|
139
95
|
return getAssetPath(`svg/${name}.svg`);
|
140
96
|
}
|
141
|
-
async function getESMIcon(name) {
|
142
|
-
const esmIcon = await import('./icons-84dc9236.js');
|
143
|
-
let iconName = toCamelCase(name);
|
144
|
-
iconName = `icon${iconName}`;
|
145
|
-
return parseSVGDataContent(esmIcon[iconName]);
|
146
|
-
}
|
147
97
|
async function resolveIcon(iconName) {
|
148
98
|
if (!iconName) {
|
149
99
|
throw Error('No icon name provided');
|
@@ -159,16 +109,12 @@ async function resolveIcon(iconName) {
|
|
159
109
|
throw error;
|
160
110
|
}
|
161
111
|
}
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
catch (error) {
|
168
|
-
throw Error('Cannot resolve any icon');
|
169
|
-
}
|
112
|
+
try {
|
113
|
+
return fetchSVG(getAssetUrl(iconName));
|
114
|
+
}
|
115
|
+
catch (error) {
|
116
|
+
throw Error('Cannot resolve any icon');
|
170
117
|
}
|
171
|
-
return getESMIcon(iconName);
|
172
118
|
}
|
173
119
|
|
174
120
|
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}";
|
@@ -237,6 +183,6 @@ const Icon = class {
|
|
237
183
|
};
|
238
184
|
Icon.style = IxIconStyle0;
|
239
185
|
|
240
|
-
export { Icon as I };
|
186
|
+
export { Icon as I, getAssetUrl as a, getIconCacheMap as g, parseSVGDataContent as p };
|
241
187
|
|
242
|
-
//# sourceMappingURL=icon-
|
188
|
+
//# sourceMappingURL=icon-76ecbfbf.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"file":"icon-76ecbfbf.js","mappings":"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","names":[],"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}
|
@@ -16,6 +16,7 @@ const getAssetPath = (path) => {
|
|
16
16
|
const assetUrl = new URL(path, plt.$resourcesUrl$);
|
17
17
|
return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;
|
18
18
|
};
|
19
|
+
const setAssetPath = (path) => (plt.$resourcesUrl$ = path);
|
19
20
|
const createTime = (fnName, tagName = '') => {
|
20
21
|
{
|
21
22
|
return () => {
|
@@ -1774,6 +1775,6 @@ const flush = () => {
|
|
1774
1775
|
const nextTick = (cb) => promiseResolve().then(cb);
|
1775
1776
|
const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
|
1776
1777
|
|
1777
|
-
export { Host as H,
|
1778
|
+
export { Host as H, setAssetPath as a, bootstrapLazy as b, getElement as c, getAssetPath as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
|
1778
1779
|
|
1779
|
-
//# sourceMappingURL=index-
|
1780
|
+
//# sourceMappingURL=index-d1072d3f.js.map
|