@siemens/ix-icons 0.0.0-20240515161342 → 0.0.0-20240729073852

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. package/dist/cjs/{icon-8d6a19b5.js → icon-ee6021fa.js} +13 -65
  2. package/dist/cjs/icon-ee6021fa.js.map +1 -0
  3. package/dist/cjs/{index-af0541e0.js → index-8f585802.js} +3 -1
  4. package/dist/cjs/index-8f585802.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +1681 -2
  6. package/dist/cjs/index.cjs.js.map +1 -1
  7. package/dist/cjs/ix-icon.cjs.entry.js +2 -2
  8. package/dist/cjs/ix-icons.cjs.js +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/collection/components/icon/icons.js +135 -19
  11. package/dist/collection/components/icon/icons.js.map +1 -1
  12. package/dist/collection/components/icon/meta-tag.js +0 -25
  13. package/dist/collection/components/icon/meta-tag.js.map +1 -1
  14. package/dist/collection/components/icon/resolveIcon.js +10 -40
  15. package/dist/collection/components/icon/resolveIcon.js.map +1 -1
  16. package/dist/collection/components/icon/test/resolveIcon.spec.js +38 -10
  17. package/dist/collection/components/icon/test/resolveIcon.spec.js.map +1 -1
  18. package/dist/collection/index.js +2 -0
  19. package/dist/collection/index.js.map +1 -1
  20. package/dist/collection/legacy-support.js +45 -0
  21. package/dist/collection/legacy-support.js.map +1 -0
  22. package/dist/components/icon.js +9 -64
  23. package/dist/components/icon.js.map +1 -1
  24. package/dist/components/index.js +1683 -0
  25. package/dist/components/index.js.map +1 -1
  26. package/dist/esm/{icon-9458edad.js → icon-76ecbfbf.js} +11 -66
  27. package/dist/esm/icon-76ecbfbf.js.map +1 -0
  28. package/dist/esm/{index-8088fea1.js → index-d1072d3f.js} +3 -2
  29. package/dist/esm/index-d1072d3f.js.map +1 -0
  30. package/dist/esm/index.js +1685 -2
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/ix-icon.entry.js +2 -2
  33. package/dist/esm/ix-icons.js +2 -2
  34. package/dist/esm/loader.js +2 -2
  35. package/dist/ix-icons/index.esm.js +1 -1
  36. package/dist/ix-icons/index.esm.js.map +1 -1
  37. package/dist/ix-icons/ix-icons.esm.js +1 -1
  38. package/dist/ix-icons/p-05455ad0.js +3 -0
  39. package/dist/ix-icons/p-05455ad0.js.map +1 -0
  40. package/dist/ix-icons/p-20e57a64.entry.js +2 -0
  41. package/dist/ix-icons/p-31deceec.js +2 -0
  42. package/dist/ix-icons/p-31deceec.js.map +1 -0
  43. package/dist/sample.json +116 -0
  44. package/dist/types/components/icon/icons.d.ts +136 -20
  45. package/dist/types/components/icon/meta-tag.d.ts +0 -6
  46. package/dist/types/components/icon/resolveIcon.d.ts +1 -0
  47. package/dist/types/index.d.ts +2 -0
  48. package/dist/types/legacy-support.d.ts +1 -0
  49. package/icons/index.d.ts +116 -0
  50. package/icons/index.js +135 -19
  51. package/icons/index.mjs +135 -19
  52. package/icons/package.json +1 -1
  53. package/package.json +1 -1
  54. package/svg/add-filter-filled.svg +1 -0
  55. package/svg/add-filter.svg +1 -0
  56. package/svg/add-selection.svg +1 -0
  57. package/svg/add-shield-half.svg +1 -0
  58. package/svg/alarm-clock-cancelled.svg +1 -0
  59. package/svg/alarm-clock-success.svg +1 -0
  60. package/svg/battery-bolt.svg +1 -0
  61. package/svg/battery-upright-bolt.svg +1 -0
  62. package/svg/battery-upright-check.svg +1 -0
  63. package/svg/battery-upright-empty.svg +1 -0
  64. package/svg/battery-upright-exclamation.svg +1 -0
  65. package/svg/battery-upright-full-check.svg +1 -0
  66. package/svg/battery-upright-full.svg +1 -0
  67. package/svg/battery-upright-half.svg +1 -0
  68. package/svg/battery-upright-low.svg +1 -0
  69. package/svg/battery-upright-quarter.svg +1 -0
  70. package/svg/battery-upright-question.svg +1 -0
  71. package/svg/battery-upright-slash.svg +1 -0
  72. package/svg/battery-upright-three-quarter.svg +1 -0
  73. package/svg/battery-upright-xmark.svg +1 -0
  74. package/svg/box-closed.svg +1 -0
  75. package/svg/box-ipc-fail.svg +1 -0
  76. package/svg/box-ipc-question.svg +1 -0
  77. package/svg/box-ipc-success.svg +1 -0
  78. package/svg/box-ipc.svg +1 -0
  79. package/svg/box-open.svg +1 -0
  80. package/svg/bug-filled.svg +1 -0
  81. package/svg/bug.svg +1 -0
  82. package/svg/calculator.svg +1 -0
  83. package/svg/chevron-down-bar-small.svg +1 -0
  84. package/svg/chevron-down-bar.svg +1 -0
  85. package/svg/chevron-down.svg +1 -1
  86. package/svg/chevron-left-bar-small.svg +1 -0
  87. package/svg/chevron-left-bar.svg +1 -0
  88. package/svg/chevron-right-bar-small.svg +1 -0
  89. package/svg/chevron-right-bar.svg +1 -0
  90. package/svg/chevron-up-bar-small.svg +1 -0
  91. package/svg/chevron-up-bar.svg +1 -0
  92. package/svg/clear-filter-filled.svg +1 -1
  93. package/svg/clear-filter.svg +1 -1
  94. package/svg/cloud-fail-filled.svg +1 -1
  95. package/svg/cloud-fail.svg +1 -1
  96. package/svg/cloud-success-filled.svg +1 -1
  97. package/svg/cloud-success.svg +1 -1
  98. package/svg/compare.svg +1 -0
  99. package/svg/copy-filled.svg +1 -0
  100. package/svg/counter.svg +1 -0
  101. package/svg/crosshairs-filled.svg +1 -0
  102. package/svg/crosshairs.svg +1 -0
  103. package/svg/customer-filled.svg +1 -0
  104. package/svg/customer.svg +1 -0
  105. package/svg/cut-filled.svg +1 -0
  106. package/svg/device-driver.svg +1 -0
  107. package/svg/device-fan.svg +1 -0
  108. package/svg/disk-pen.svg +1 -1
  109. package/svg/drag-and-drop.svg +1 -0
  110. package/svg/drag-gripper.svg +1 -0
  111. package/svg/drop-zone.svg +1 -0
  112. package/svg/duplicate-filled.svg +1 -0
  113. package/svg/edit-document-filled.svg +1 -0
  114. package/svg/edit-document.svg +1 -0
  115. package/svg/firmware.svg +1 -0
  116. package/svg/flashing.svg +1 -0
  117. package/svg/handshake.svg +1 -0
  118. package/svg/hard-disk-drive.svg +1 -0
  119. package/svg/heading.svg +1 -0
  120. package/svg/health-filled.svg +1 -1
  121. package/svg/health.svg +1 -1
  122. package/svg/heart-filled.svg +1 -1
  123. package/svg/heart.svg +1 -1
  124. package/svg/height.svg +1 -0
  125. package/svg/hourglass-empty.svg +1 -0
  126. package/svg/hourglass-end.svg +1 -0
  127. package/svg/hourglass-filled.svg +1 -0
  128. package/svg/hourglass-start.svg +1 -0
  129. package/svg/ipcs.svg +1 -0
  130. package/svg/join.svg +1 -0
  131. package/svg/link-break.svg +1 -0
  132. package/svg/link-diagonal.svg +1 -0
  133. package/svg/list-sorted-alt.svg +1 -0
  134. package/svg/list-sorted.svg +1 -0
  135. package/svg/move.svg +1 -0
  136. package/svg/operate-plant.svg +1 -1
  137. package/svg/operating-system.svg +1 -0
  138. package/svg/panel-ipc-fail.svg +1 -0
  139. package/svg/panel-ipc-question.svg +1 -0
  140. package/svg/panel-ipc-success.svg +1 -0
  141. package/svg/panel-ipc.svg +1 -0
  142. package/svg/power-supply.svg +1 -0
  143. package/svg/quote.svg +1 -0
  144. package/svg/rack-ipc-fail.svg +1 -0
  145. package/svg/rack-ipc-question.svg +1 -0
  146. package/svg/rack-ipc-success.svg +1 -0
  147. package/svg/rack-ipc.svg +1 -0
  148. package/svg/refresh-exclamation.svg +1 -0
  149. package/svg/refresh-settings.svg +1 -0
  150. package/svg/reorder.svg +1 -0
  151. package/svg/replace.svg +1 -1
  152. package/svg/runtime-settings.svg +1 -0
  153. package/svg/sd-card-filled.svg +1 -0
  154. package/svg/sd-card-micro-filled.svg +1 -0
  155. package/svg/sd-card-micro.svg +1 -0
  156. package/svg/sd-card.svg +1 -0
  157. package/svg/separator-line.svg +1 -0
  158. package/svg/shield-broken-filled.svg +1 -0
  159. package/svg/shield-broken.svg +1 -0
  160. package/svg/shield-check-filled.svg +1 -0
  161. package/svg/shield-check.svg +1 -0
  162. package/svg/shield-filled.svg +1 -0
  163. package/svg/shield-half.svg +1 -0
  164. package/svg/shield.svg +1 -0
  165. package/svg/solid-state-drive.svg +1 -0
  166. package/svg/sort-alt.svg +1 -0
  167. package/svg/sort.svg +1 -1
  168. package/svg/split.svg +1 -0
  169. package/svg/sword-swing.svg +1 -0
  170. package/svg/text-bold.svg +1 -0
  171. package/svg/text-italic.svg +1 -0
  172. package/svg/text-strike-through.svg +1 -0
  173. package/svg/text-underline.svg +1 -0
  174. package/svg/thermometer.svg +1 -0
  175. package/svg/trend-downward-circle.svg +1 -0
  176. package/svg/trend-sideways-circle.svg +1 -0
  177. package/svg/trend-upward-circle.svg +1 -0
  178. package/svg/trophy-filled.svg +1 -0
  179. package/svg/trophy.svg +1 -0
  180. package/svg/usb-drive.svg +1 -0
  181. package/svg/user-check-filled.svg +1 -1
  182. package/svg/user-check.svg +1 -1
  183. package/svg/user-fail-filled.svg +1 -1
  184. package/svg/user-fail.svg +1 -1
  185. package/svg/user-success-filled.svg +1 -0
  186. package/svg/user-success.svg +1 -0
  187. package/svg/width.svg +1 -0
  188. package/svg/zone.svg +1 -0
  189. package/dist/cjs/icon-8d6a19b5.js.map +0 -1
  190. package/dist/cjs/icons-0dd6f96e.js +0 -1405
  191. package/dist/cjs/icons-0dd6f96e.js.map +0 -1
  192. package/dist/cjs/index-af0541e0.js.map +0 -1
  193. package/dist/components/icons.js +0 -705
  194. package/dist/components/icons.js.map +0 -1
  195. package/dist/esm/icon-9458edad.js.map +0 -1
  196. package/dist/esm/icons-84dc9236.js +0 -705
  197. package/dist/esm/icons-84dc9236.js.map +0 -1
  198. package/dist/esm/index-8088fea1.js.map +0 -1
  199. package/dist/ix-icons/p-1dac0290.js +0 -2
  200. package/dist/ix-icons/p-1dac0290.js.map +0 -1
  201. package/dist/ix-icons/p-51684ec4.js +0 -2
  202. package/dist/ix-icons/p-51684ec4.js.map +0 -1
  203. package/dist/ix-icons/p-efdd4090.js +0 -3
  204. package/dist/ix-icons/p-efdd4090.js.map +0 -1
  205. package/dist/ix-icons/p-f748c4c1.entry.js +0 -2
  206. /package/dist/ix-icons/{p-f748c4c1.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, a as getElement } from './index-8088fea1.js';
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();
@@ -107,14 +63,13 @@ function parseSVGDataContent(content) {
107
63
  return svgElement.outerHTML;
108
64
  }
109
65
  async function fetchSVG(url) {
110
- const request = requests.get(url);
111
- if (request) {
112
- return request;
113
- }
114
66
  const cache = getIconCacheMap();
115
67
  if (cache.has(url)) {
116
68
  return cache.get(url);
117
69
  }
70
+ if (requests.has(url)) {
71
+ return requests.get(url);
72
+ }
118
73
  const fetching = fetch(url).then(async (response) => {
119
74
  const responseText = await response.text();
120
75
  if (!response.ok) {
@@ -139,12 +94,6 @@ function getAssetUrl(name) {
139
94
  }
140
95
  return getAssetPath(`svg/${name}.svg`);
141
96
  }
142
- async function getESMIcon(name) {
143
- const esmIcon = await import('./icons-84dc9236.js');
144
- let iconName = toCamelCase(name);
145
- iconName = `icon${iconName}`;
146
- return parseSVGDataContent(esmIcon[iconName]);
147
- }
148
97
  async function resolveIcon(iconName) {
149
98
  if (!iconName) {
150
99
  throw Error('No icon name provided');
@@ -160,16 +109,12 @@ async function resolveIcon(iconName) {
160
109
  throw error;
161
110
  }
162
111
  }
163
- if (isV3PreviewEnabled()) {
164
- console.warn('Using V3 preview feature for loading icons.');
165
- try {
166
- return fetchSVG(getAssetUrl(iconName));
167
- }
168
- catch (error) {
169
- throw Error('Cannot resolve any icon');
170
- }
112
+ try {
113
+ return fetchSVG(getAssetUrl(iconName));
114
+ }
115
+ catch (error) {
116
+ throw Error('Cannot resolve any icon');
171
117
  }
172
- return getESMIcon(iconName);
173
118
  }
174
119
 
175
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}";
@@ -238,6 +183,6 @@ const Icon = class {
238
183
  };
239
184
  Icon.style = IxIconStyle0;
240
185
 
241
- export { Icon as I };
186
+ export { Icon as I, getAssetUrl as a, getIconCacheMap as g, parseSVGDataContent as p };
242
187
 
243
- //# sourceMappingURL=icon-9458edad.js.map
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, getElement as a, bootstrapLazy as b, getAssetPath as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
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-8088fea1.js.map
1780
+ //# sourceMappingURL=index-d1072d3f.js.map