@siemens/ix-icons 0.0.0-20240827093643 → 0.0.0-20240827131228

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.
Files changed (856) hide show
  1. package/{dist/components → components}/icon.js +13 -4
  2. package/components/icon.js.map +1 -0
  3. package/{dist/components → components}/ix-icon.d.ts +1 -1
  4. package/dist/cjs/{icon-1370f4c0.js → icon-93104dbb.js} +13 -4
  5. package/dist/cjs/icon-93104dbb.js.map +1 -0
  6. package/dist/cjs/index.cjs.js +1 -2
  7. package/dist/cjs/index.cjs.js.map +1 -1
  8. package/dist/cjs/ix-icon.cjs.entry.js +1 -1
  9. package/dist/collection/components/icon/resolveIcon.js +13 -4
  10. package/dist/collection/components/icon/resolveIcon.js.map +1 -1
  11. package/dist/collection/components/icon/test/resolveIcon.spec.js +3 -3
  12. package/dist/collection/components/icon/test/resolveIcon.spec.js.map +1 -1
  13. package/dist/collection/index.js +1 -1
  14. package/dist/collection/index.js.map +1 -1
  15. package/dist/esm/{icon-dd32731a.js → icon-97776d4a.js} +14 -5
  16. package/dist/esm/icon-97776d4a.js.map +1 -0
  17. package/dist/esm/index.js +2 -2
  18. package/dist/esm/ix-icon.entry.js +1 -1
  19. package/dist/ix-icons/index.esm.js +1 -1
  20. package/dist/ix-icons/ix-icons.esm.js +1 -1
  21. package/dist/ix-icons/p-60aebf69.entry.js +2 -0
  22. package/dist/ix-icons/p-cf592f05.js +2 -0
  23. package/dist/ix-icons/p-cf592f05.js.map +1 -0
  24. package/dist/ix-icons/svg/about-filled.svg +1 -0
  25. package/dist/ix-icons/svg/about.svg +1 -0
  26. package/dist/ix-icons/svg/add-application.svg +1 -0
  27. package/dist/ix-icons/svg/add-circle-filled.svg +1 -0
  28. package/dist/ix-icons/svg/add-circle.svg +1 -0
  29. package/dist/ix-icons/svg/add-document-note.svg +1 -0
  30. package/dist/ix-icons/svg/add-eye-filled.svg +1 -0
  31. package/dist/ix-icons/svg/add-eye.svg +1 -0
  32. package/dist/ix-icons/svg/add-filter-filled.svg +1 -0
  33. package/dist/ix-icons/svg/add-filter.svg +1 -0
  34. package/dist/ix-icons/svg/add-selection.svg +1 -0
  35. package/dist/ix-icons/svg/add-shield-half.svg +1 -0
  36. package/dist/ix-icons/svg/add-task-list.svg +1 -0
  37. package/dist/ix-icons/svg/add-task.svg +1 -0
  38. package/dist/ix-icons/svg/add-user-filled.svg +1 -0
  39. package/dist/ix-icons/svg/add-user.svg +1 -0
  40. package/dist/ix-icons/svg/add.svg +1 -0
  41. package/dist/ix-icons/svg/ai.svg +1 -0
  42. package/dist/ix-icons/svg/alarm-bell-cancelled-filled.svg +1 -0
  43. package/dist/ix-icons/svg/alarm-bell-cancelled.svg +1 -0
  44. package/dist/ix-icons/svg/alarm-bell-filled.svg +1 -0
  45. package/dist/ix-icons/svg/alarm-bell.svg +1 -0
  46. package/dist/ix-icons/svg/alarm-clock-cancelled.svg +1 -0
  47. package/dist/ix-icons/svg/alarm-clock-filled.svg +1 -0
  48. package/dist/ix-icons/svg/alarm-clock-success.svg +1 -0
  49. package/dist/ix-icons/svg/alarm-clock.svg +1 -0
  50. package/dist/ix-icons/svg/alarm-filled.svg +1 -0
  51. package/dist/ix-icons/svg/alarm.svg +1 -0
  52. package/dist/ix-icons/svg/analyze.svg +1 -0
  53. package/dist/ix-icons/svg/anomaly-found.svg +1 -0
  54. package/dist/ix-icons/svg/anomaly.svg +1 -0
  55. package/dist/ix-icons/svg/app-menu.svg +1 -0
  56. package/dist/ix-icons/svg/application-screen.svg +1 -0
  57. package/dist/ix-icons/svg/applications.svg +1 -0
  58. package/dist/ix-icons/svg/apps.svg +1 -0
  59. package/dist/ix-icons/svg/arrow-diagonal-bottom-left.svg +1 -0
  60. package/dist/ix-icons/svg/arrow-diagonal-bottom-right.svg +1 -0
  61. package/dist/ix-icons/svg/arrow-diagonal-top-left.svg +1 -0
  62. package/dist/ix-icons/svg/arrow-diagonal-top-right.svg +1 -0
  63. package/dist/ix-icons/svg/arrow-down-right.svg +1 -0
  64. package/dist/ix-icons/svg/arrow-down.svg +1 -0
  65. package/dist/ix-icons/svg/arrow-left.svg +1 -0
  66. package/dist/ix-icons/svg/arrow-right-down.svg +1 -0
  67. package/dist/ix-icons/svg/arrow-right.svg +1 -0
  68. package/dist/ix-icons/svg/arrow-up.svg +1 -0
  69. package/dist/ix-icons/svg/attach.svg +1 -0
  70. package/dist/ix-icons/svg/attachment-upload.svg +1 -0
  71. package/dist/ix-icons/svg/audio-description1.svg +1 -0
  72. package/dist/ix-icons/svg/audio-description2.svg +1 -0
  73. package/dist/ix-icons/svg/audit-report.svg +1 -0
  74. package/dist/ix-icons/svg/average.svg +1 -0
  75. package/dist/ix-icons/svg/backup-filled.svg +1 -0
  76. package/dist/ix-icons/svg/backup.svg +1 -0
  77. package/dist/ix-icons/svg/bar-code.svg +1 -0
  78. package/dist/ix-icons/svg/barchart.svg +1 -0
  79. package/dist/ix-icons/svg/battery-bolt.svg +1 -0
  80. package/dist/ix-icons/svg/battery-check.svg +1 -0
  81. package/dist/ix-icons/svg/battery-empty-question.svg +1 -0
  82. package/dist/ix-icons/svg/battery-empty.svg +1 -0
  83. package/dist/ix-icons/svg/battery-exclamation.svg +1 -0
  84. package/dist/ix-icons/svg/battery-full-check.svg +1 -0
  85. package/dist/ix-icons/svg/battery-full.svg +1 -0
  86. package/dist/ix-icons/svg/battery-half.svg +1 -0
  87. package/dist/ix-icons/svg/battery-low.svg +1 -0
  88. package/dist/ix-icons/svg/battery-quarter.svg +1 -0
  89. package/dist/ix-icons/svg/battery-slash.svg +1 -0
  90. package/dist/ix-icons/svg/battery-three-quarter.svg +1 -0
  91. package/dist/ix-icons/svg/battery-upright-bolt.svg +1 -0
  92. package/dist/ix-icons/svg/battery-upright-check.svg +1 -0
  93. package/dist/ix-icons/svg/battery-upright-empty.svg +1 -0
  94. package/dist/ix-icons/svg/battery-upright-exclamation.svg +1 -0
  95. package/dist/ix-icons/svg/battery-upright-full-check.svg +1 -0
  96. package/dist/ix-icons/svg/battery-upright-full.svg +1 -0
  97. package/dist/ix-icons/svg/battery-upright-half.svg +1 -0
  98. package/dist/ix-icons/svg/battery-upright-low.svg +1 -0
  99. package/dist/ix-icons/svg/battery-upright-quarter.svg +1 -0
  100. package/dist/ix-icons/svg/battery-upright-question.svg +1 -0
  101. package/dist/ix-icons/svg/battery-upright-slash.svg +1 -0
  102. package/dist/ix-icons/svg/battery-upright-three-quarter.svg +1 -0
  103. package/dist/ix-icons/svg/battery-upright-xmark.svg +1 -0
  104. package/dist/ix-icons/svg/battery-xmark.svg +1 -0
  105. package/dist/ix-icons/svg/bezier-curve.svg +1 -0
  106. package/dist/ix-icons/svg/binoculars-filled.svg +1 -0
  107. package/dist/ix-icons/svg/binoculars.svg +1 -0
  108. package/dist/ix-icons/svg/blazor.svg +1 -0
  109. package/dist/ix-icons/svg/book.svg +1 -0
  110. package/dist/ix-icons/svg/bookmark-filled.svg +1 -0
  111. package/dist/ix-icons/svg/bookmark.svg +1 -0
  112. package/dist/ix-icons/svg/boundary-signals.svg +1 -0
  113. package/dist/ix-icons/svg/box-closed.svg +1 -0
  114. package/dist/ix-icons/svg/box-ipc-fail.svg +1 -0
  115. package/dist/ix-icons/svg/box-ipc-question.svg +1 -0
  116. package/dist/ix-icons/svg/box-ipc-success.svg +1 -0
  117. package/dist/ix-icons/svg/box-ipc.svg +1 -0
  118. package/dist/ix-icons/svg/box-open.svg +1 -0
  119. package/dist/ix-icons/svg/bug-filled.svg +1 -0
  120. package/dist/ix-icons/svg/bug.svg +1 -0
  121. package/dist/ix-icons/svg/building1-filled.svg +1 -0
  122. package/dist/ix-icons/svg/building1.svg +1 -0
  123. package/dist/ix-icons/svg/building2-filled.svg +1 -0
  124. package/dist/ix-icons/svg/building2.svg +1 -0
  125. package/dist/ix-icons/svg/bulb-filled.svg +1 -0
  126. package/dist/ix-icons/svg/bulb.svg +1 -0
  127. package/dist/ix-icons/svg/calculator.svg +1 -0
  128. package/dist/ix-icons/svg/calendar-filled.svg +1 -0
  129. package/dist/ix-icons/svg/calendar-settings.svg +1 -0
  130. package/dist/ix-icons/svg/calendar.svg +1 -0
  131. package/dist/ix-icons/svg/cancel.svg +1 -0
  132. package/dist/ix-icons/svg/cancelled.svg +1 -0
  133. package/dist/ix-icons/svg/capacity-filled.svg +1 -0
  134. package/dist/ix-icons/svg/capacity.svg +1 -0
  135. package/dist/ix-icons/svg/capture.svg +1 -0
  136. package/dist/ix-icons/svg/car-filled.svg +1 -0
  137. package/dist/ix-icons/svg/car.svg +1 -0
  138. package/dist/ix-icons/svg/card-layout-filled.svg +1 -0
  139. package/dist/ix-icons/svg/card-layout.svg +1 -0
  140. package/dist/ix-icons/svg/certificate-error-filled.svg +1 -0
  141. package/dist/ix-icons/svg/certificate-error.svg +1 -0
  142. package/dist/ix-icons/svg/certificate-exclamation-filled.svg +1 -0
  143. package/dist/ix-icons/svg/certificate-exclamation.svg +1 -0
  144. package/dist/ix-icons/svg/certificate-success-filled.svg +1 -0
  145. package/dist/ix-icons/svg/certificate-success.svg +1 -0
  146. package/dist/ix-icons/svg/chart-cursor.svg +1 -0
  147. package/dist/ix-icons/svg/chart-curve-linear.svg +1 -0
  148. package/dist/ix-icons/svg/chart-curve-spline.svg +1 -0
  149. package/dist/ix-icons/svg/chart-curve-stepped.svg +1 -0
  150. package/dist/ix-icons/svg/chart-diagram-add.svg +1 -0
  151. package/dist/ix-icons/svg/chart-diagram.svg +1 -0
  152. package/dist/ix-icons/svg/chart-diagrams.svg +1 -0
  153. package/dist/ix-icons/svg/chart-labels-filled.svg +1 -0
  154. package/dist/ix-icons/svg/chart-labels.svg +1 -0
  155. package/dist/ix-icons/svg/check-in.svg +1 -0
  156. package/dist/ix-icons/svg/check-out.svg +1 -0
  157. package/dist/ix-icons/svg/check.svg +1 -0
  158. package/dist/ix-icons/svg/checkbox-component-checked.svg +1 -0
  159. package/dist/ix-icons/svg/checkbox-component-mixed.svg +1 -0
  160. package/dist/ix-icons/svg/checkbox-component-unchecked.svg +1 -0
  161. package/dist/ix-icons/svg/checkbox-filled.svg +1 -0
  162. package/dist/ix-icons/svg/checkbox.svg +1 -0
  163. package/dist/ix-icons/svg/checkboxes-filled.svg +1 -0
  164. package/dist/ix-icons/svg/checkboxes.svg +1 -0
  165. package/dist/ix-icons/svg/chevron-down-bar-small.svg +1 -0
  166. package/dist/ix-icons/svg/chevron-down-bar.svg +1 -0
  167. package/dist/ix-icons/svg/chevron-down-small.svg +1 -0
  168. package/dist/ix-icons/svg/chevron-down.svg +1 -0
  169. package/dist/ix-icons/svg/chevron-left-bar-small.svg +1 -0
  170. package/dist/ix-icons/svg/chevron-left-bar.svg +1 -0
  171. package/dist/ix-icons/svg/chevron-left-small.svg +1 -0
  172. package/dist/ix-icons/svg/chevron-left.svg +1 -0
  173. package/dist/ix-icons/svg/chevron-right-bar-small.svg +1 -0
  174. package/dist/ix-icons/svg/chevron-right-bar.svg +1 -0
  175. package/dist/ix-icons/svg/chevron-right-small.svg +1 -0
  176. package/dist/ix-icons/svg/chevron-right.svg +1 -0
  177. package/dist/ix-icons/svg/chevron-up-bar-small.svg +1 -0
  178. package/dist/ix-icons/svg/chevron-up-bar.svg +1 -0
  179. package/dist/ix-icons/svg/chevron-up-small.svg +1 -0
  180. package/dist/ix-icons/svg/chevron-up.svg +1 -0
  181. package/dist/ix-icons/svg/circle-dot-filled.svg +1 -0
  182. package/dist/ix-icons/svg/circle-dot.svg +1 -0
  183. package/dist/ix-icons/svg/circle-filled.svg +1 -0
  184. package/dist/ix-icons/svg/circle-pause-filled.svg +1 -0
  185. package/dist/ix-icons/svg/circle-pause.svg +1 -0
  186. package/dist/ix-icons/svg/circle-play-filled.svg +1 -0
  187. package/dist/ix-icons/svg/circle-play.svg +1 -0
  188. package/dist/ix-icons/svg/circle-stop-filled.svg +1 -0
  189. package/dist/ix-icons/svg/circle-stop.svg +1 -0
  190. package/dist/ix-icons/svg/circle.svg +1 -0
  191. package/dist/ix-icons/svg/clear-filter-filled.svg +1 -0
  192. package/dist/ix-icons/svg/clear-filter.svg +1 -0
  193. package/dist/ix-icons/svg/clear.svg +1 -0
  194. package/dist/ix-icons/svg/clock-filled.svg +1 -0
  195. package/dist/ix-icons/svg/clock.svg +1 -0
  196. package/dist/ix-icons/svg/close-small.svg +1 -0
  197. package/dist/ix-icons/svg/close.svg +1 -0
  198. package/dist/ix-icons/svg/cloud-download-add-filled.svg +1 -0
  199. package/dist/ix-icons/svg/cloud-download-add.svg +1 -0
  200. package/dist/ix-icons/svg/cloud-download-filled.svg +1 -0
  201. package/dist/ix-icons/svg/cloud-download-list-filled.svg +1 -0
  202. package/dist/ix-icons/svg/cloud-download-list.svg +1 -0
  203. package/dist/ix-icons/svg/cloud-download.svg +1 -0
  204. package/dist/ix-icons/svg/cloud-fail-filled.svg +1 -0
  205. package/dist/ix-icons/svg/cloud-fail.svg +1 -0
  206. package/dist/ix-icons/svg/cloud-filled.svg +1 -0
  207. package/dist/ix-icons/svg/cloud-new-filled.svg +1 -0
  208. package/dist/ix-icons/svg/cloud-new.svg +1 -0
  209. package/dist/ix-icons/svg/cloud-success-filled.svg +1 -0
  210. package/dist/ix-icons/svg/cloud-success.svg +1 -0
  211. package/dist/ix-icons/svg/cloud-upload-filled.svg +1 -0
  212. package/dist/ix-icons/svg/cloud-upload.svg +1 -0
  213. package/dist/ix-icons/svg/cloud.svg +1 -0
  214. package/dist/ix-icons/svg/code.svg +1 -0
  215. package/dist/ix-icons/svg/coffee-empty-filled.svg +1 -0
  216. package/dist/ix-icons/svg/coffee-empty.svg +1 -0
  217. package/dist/ix-icons/svg/coffee-filled.svg +1 -0
  218. package/dist/ix-icons/svg/coffee.svg +1 -0
  219. package/dist/ix-icons/svg/cogwheel-filled.svg +1 -0
  220. package/dist/ix-icons/svg/cogwheel.svg +1 -0
  221. package/dist/ix-icons/svg/combine.svg +1 -0
  222. package/dist/ix-icons/svg/compact-disc-filled.svg +1 -0
  223. package/dist/ix-icons/svg/compact-disc.svg +1 -0
  224. package/dist/ix-icons/svg/compare.svg +1 -0
  225. package/dist/ix-icons/svg/compound-block.svg +1 -0
  226. package/dist/ix-icons/svg/configuration.svg +1 -0
  227. package/dist/ix-icons/svg/configure-filled.svg +1 -0
  228. package/dist/ix-icons/svg/configure.svg +1 -0
  229. package/dist/ix-icons/svg/connected.svg +1 -0
  230. package/dist/ix-icons/svg/connector-chart-filled.svg +1 -0
  231. package/dist/ix-icons/svg/connector-chart.svg +1 -0
  232. package/dist/ix-icons/svg/connector-filled.svg +1 -0
  233. package/dist/ix-icons/svg/connector-hex-filled.svg +1 -0
  234. package/dist/ix-icons/svg/connector-hex.svg +1 -0
  235. package/dist/ix-icons/svg/connector-rect-filled.svg +1 -0
  236. package/dist/ix-icons/svg/connector-rect.svg +1 -0
  237. package/dist/ix-icons/svg/connector-rhomb-filled.svg +1 -0
  238. package/dist/ix-icons/svg/connector-rhomb.svg +1 -0
  239. package/dist/ix-icons/svg/connector.svg +1 -0
  240. package/dist/ix-icons/svg/consistency-check.svg +1 -0
  241. package/dist/ix-icons/svg/contact-details-filled.svg +1 -0
  242. package/dist/ix-icons/svg/contact-details.svg +1 -0
  243. package/dist/ix-icons/svg/context-menu.svg +1 -0
  244. package/dist/ix-icons/svg/controlled-device.svg +1 -0
  245. package/dist/ix-icons/svg/controller-device.svg +1 -0
  246. package/dist/ix-icons/svg/copy-filled.svg +1 -0
  247. package/dist/ix-icons/svg/copy.svg +1 -0
  248. package/dist/ix-icons/svg/corner-arrow-up-left.svg +1 -0
  249. package/dist/ix-icons/svg/couch-filled.svg +1 -0
  250. package/dist/ix-icons/svg/couch.svg +1 -0
  251. package/dist/ix-icons/svg/counter.svg +1 -0
  252. package/dist/ix-icons/svg/create-plant-filled.svg +1 -0
  253. package/dist/ix-icons/svg/create-plant.svg +1 -0
  254. package/dist/ix-icons/svg/crosshairs-filled.svg +1 -0
  255. package/dist/ix-icons/svg/crosshairs.svg +1 -0
  256. package/dist/ix-icons/svg/customer-filled.svg +1 -0
  257. package/dist/ix-icons/svg/customer.svg +1 -0
  258. package/dist/ix-icons/svg/cut-filled.svg +1 -0
  259. package/dist/ix-icons/svg/cut.svg +1 -0
  260. package/dist/ix-icons/svg/cycle.svg +1 -0
  261. package/dist/ix-icons/svg/data-egress.svg +1 -0
  262. package/dist/ix-icons/svg/data-ingress-egress.svg +1 -0
  263. package/dist/ix-icons/svg/data-ingress.svg +1 -0
  264. package/dist/ix-icons/svg/database-filled.svg +1 -0
  265. package/dist/ix-icons/svg/database.svg +1 -0
  266. package/dist/ix-icons/svg/details.svg +1 -0
  267. package/dist/ix-icons/svg/device-driver.svg +1 -0
  268. package/dist/ix-icons/svg/device-fan.svg +1 -0
  269. package/dist/ix-icons/svg/diagram-module-library.svg +1 -0
  270. package/dist/ix-icons/svg/diagram-module-new.svg +1 -0
  271. package/dist/ix-icons/svg/diagram-module.svg +1 -0
  272. package/dist/ix-icons/svg/diamond.svg +1 -0
  273. package/dist/ix-icons/svg/disconnected.svg +1 -0
  274. package/dist/ix-icons/svg/disk-filled.svg +1 -0
  275. package/dist/ix-icons/svg/disk-pen.svg +1 -0
  276. package/dist/ix-icons/svg/disk.svg +1 -0
  277. package/dist/ix-icons/svg/distribution.svg +1 -0
  278. package/dist/ix-icons/svg/doc-document.svg +1 -0
  279. package/dist/ix-icons/svg/document-bulk.svg +1 -0
  280. package/dist/ix-icons/svg/document-fail.svg +1 -0
  281. package/dist/ix-icons/svg/document-info.svg +1 -0
  282. package/dist/ix-icons/svg/document-link.svg +1 -0
  283. package/dist/ix-icons/svg/document-management.svg +1 -0
  284. package/dist/ix-icons/svg/document-reference.svg +1 -0
  285. package/dist/ix-icons/svg/document-settings.svg +1 -0
  286. package/dist/ix-icons/svg/document-success.svg +1 -0
  287. package/dist/ix-icons/svg/document.svg +1 -0
  288. package/dist/ix-icons/svg/double-check.svg +1 -0
  289. package/dist/ix-icons/svg/double-chevron-down.svg +1 -0
  290. package/dist/ix-icons/svg/double-chevron-left.svg +1 -0
  291. package/dist/ix-icons/svg/double-chevron-right.svg +1 -0
  292. package/dist/ix-icons/svg/double-chevron-up.svg +1 -0
  293. package/dist/ix-icons/svg/doublet-filled.svg +1 -0
  294. package/dist/ix-icons/svg/doublet.svg +1 -0
  295. package/dist/ix-icons/svg/download-add.svg +1 -0
  296. package/dist/ix-icons/svg/download-list.svg +1 -0
  297. package/dist/ix-icons/svg/download.svg +1 -0
  298. package/dist/ix-icons/svg/drag-and-drop.svg +1 -0
  299. package/dist/ix-icons/svg/drag-gripper.svg +1 -0
  300. package/dist/ix-icons/svg/drop-zone.svg +1 -0
  301. package/dist/ix-icons/svg/drop.svg +1 -0
  302. package/dist/ix-icons/svg/duplicate-document.svg +1 -0
  303. package/dist/ix-icons/svg/duplicate-filled.svg +1 -0
  304. package/dist/ix-icons/svg/duplicate.svg +1 -0
  305. package/dist/ix-icons/svg/e-mail-filled.svg +1 -0
  306. package/dist/ix-icons/svg/e-mail.svg +1 -0
  307. package/dist/ix-icons/svg/earth-filled.svg +1 -0
  308. package/dist/ix-icons/svg/earth.svg +1 -0
  309. package/dist/ix-icons/svg/edit-document-filled.svg +1 -0
  310. package/dist/ix-icons/svg/edit-document.svg +1 -0
  311. package/dist/ix-icons/svg/edit-plant.svg +1 -0
  312. package/dist/ix-icons/svg/electrical-energy-filled.svg +1 -0
  313. package/dist/ix-icons/svg/electrical-energy.svg +1 -0
  314. package/dist/ix-icons/svg/ellipse-arc.svg +1 -0
  315. package/dist/ix-icons/svg/ellipse-filled.svg +1 -0
  316. package/dist/ix-icons/svg/ellipse.svg +1 -0
  317. package/dist/ix-icons/svg/error-filled.svg +1 -0
  318. package/dist/ix-icons/svg/error.svg +1 -0
  319. package/dist/ix-icons/svg/explore-filled.svg +1 -0
  320. package/dist/ix-icons/svg/explore.svg +1 -0
  321. package/dist/ix-icons/svg/export.svg +1 -0
  322. package/dist/ix-icons/svg/eye-cancelled-filled.svg +1 -0
  323. package/dist/ix-icons/svg/eye-cancelled.svg +1 -0
  324. package/dist/ix-icons/svg/eye-filled.svg +1 -0
  325. package/dist/ix-icons/svg/eye.svg +1 -0
  326. package/dist/ix-icons/svg/factory-reset-filled.svg +1 -0
  327. package/dist/ix-icons/svg/factory-reset.svg +1 -0
  328. package/dist/ix-icons/svg/filter-filled.svg +1 -0
  329. package/dist/ix-icons/svg/filter-outline.svg +1 -0
  330. package/dist/ix-icons/svg/filter.svg +1 -0
  331. package/dist/ix-icons/svg/firmware.svg +1 -0
  332. package/dist/ix-icons/svg/fit-to-screen.svg +1 -0
  333. package/dist/ix-icons/svg/flag-filled.svg +1 -0
  334. package/dist/ix-icons/svg/flag.svg +1 -0
  335. package/dist/ix-icons/svg/flashing.svg +1 -0
  336. package/dist/ix-icons/svg/folder-down-filled.svg +1 -0
  337. package/dist/ix-icons/svg/folder-down.svg +1 -0
  338. package/dist/ix-icons/svg/folder-filled.svg +1 -0
  339. package/dist/ix-icons/svg/folder-new-filled.svg +1 -0
  340. package/dist/ix-icons/svg/folder-new-outline.svg +1 -0
  341. package/dist/ix-icons/svg/folder-new.svg +1 -0
  342. package/dist/ix-icons/svg/folder-open-filled.svg +1 -0
  343. package/dist/ix-icons/svg/folder-open-outline.svg +1 -0
  344. package/dist/ix-icons/svg/folder-open.svg +1 -0
  345. package/dist/ix-icons/svg/folder-outline.svg +1 -0
  346. package/dist/ix-icons/svg/folder-up-filled.svg +1 -0
  347. package/dist/ix-icons/svg/folder-up.svg +1 -0
  348. package/dist/ix-icons/svg/folder.svg +1 -0
  349. package/dist/ix-icons/svg/full-screeen-exit.svg +1 -0
  350. package/dist/ix-icons/svg/full-screeen.svg +1 -0
  351. package/dist/ix-icons/svg/full-screen-exit.svg +1 -0
  352. package/dist/ix-icons/svg/full-screen.svg +1 -0
  353. package/dist/ix-icons/svg/function-block-library.svg +1 -0
  354. package/dist/ix-icons/svg/function-block-new.svg +1 -0
  355. package/dist/ix-icons/svg/function-block.svg +1 -0
  356. package/dist/ix-icons/svg/function-diagram-new.svg +1 -0
  357. package/dist/ix-icons/svg/function-diagram.svg +1 -0
  358. package/dist/ix-icons/svg/gauge-filled.svg +1 -0
  359. package/dist/ix-icons/svg/gauge.svg +1 -0
  360. package/dist/ix-icons/svg/gaugechart.svg +1 -0
  361. package/dist/ix-icons/svg/global-plant-filled.svg +1 -0
  362. package/dist/ix-icons/svg/global-plant.svg +1 -0
  363. package/dist/ix-icons/svg/globe-filled.svg +1 -0
  364. package/dist/ix-icons/svg/globe.svg +1 -0
  365. package/dist/ix-icons/svg/goto.svg +1 -0
  366. package/dist/ix-icons/svg/group.svg +1 -0
  367. package/dist/ix-icons/svg/handshake.svg +1 -0
  368. package/dist/ix-icons/svg/hard-disk-drive.svg +1 -0
  369. package/dist/ix-icons/svg/hard-reset.svg +1 -0
  370. package/dist/ix-icons/svg/hardware-cabinet.svg +1 -0
  371. package/dist/ix-icons/svg/heading.svg +1 -0
  372. package/dist/ix-icons/svg/health-filled.svg +1 -0
  373. package/dist/ix-icons/svg/health.svg +1 -0
  374. package/dist/ix-icons/svg/heart-filled.svg +1 -0
  375. package/dist/ix-icons/svg/heart.svg +1 -0
  376. package/dist/ix-icons/svg/height.svg +1 -0
  377. package/dist/ix-icons/svg/hexagon-vertical-bars-database-filled.svg +1 -0
  378. package/dist/ix-icons/svg/hexagon-vertical-bars-database.svg +1 -0
  379. package/dist/ix-icons/svg/hexagon-vertical-bars-filled.svg +1 -0
  380. package/dist/ix-icons/svg/hexagon-vertical-bars.svg +1 -0
  381. package/dist/ix-icons/svg/hierarchy.svg +1 -0
  382. package/dist/ix-icons/svg/highlight-filled.svg +1 -0
  383. package/dist/ix-icons/svg/highlight.svg +1 -0
  384. package/dist/ix-icons/svg/history-list.svg +1 -0
  385. package/dist/ix-icons/svg/history.svg +1 -0
  386. package/dist/ix-icons/svg/home-filled.svg +1 -0
  387. package/dist/ix-icons/svg/home.svg +1 -0
  388. package/dist/ix-icons/svg/hourglass-empty.svg +1 -0
  389. package/dist/ix-icons/svg/hourglass-end.svg +1 -0
  390. package/dist/ix-icons/svg/hourglass-filled.svg +1 -0
  391. package/dist/ix-icons/svg/hourglass-start.svg +1 -0
  392. package/dist/ix-icons/svg/hourglass.svg +1 -0
  393. package/dist/ix-icons/svg/image-filled.svg +1 -0
  394. package/dist/ix-icons/svg/image.svg +1 -0
  395. package/dist/ix-icons/svg/import.svg +1 -0
  396. package/dist/ix-icons/svg/info-feed.svg +1 -0
  397. package/dist/ix-icons/svg/info-filled.svg +1 -0
  398. package/dist/ix-icons/svg/info.svg +1 -0
  399. package/dist/ix-icons/svg/ingestion-report.svg +1 -0
  400. package/dist/ix-icons/svg/ingestion.svg +1 -0
  401. package/dist/ix-icons/svg/ink-pen.svg +1 -0
  402. package/dist/ix-icons/svg/inquiry-filled.svg +1 -0
  403. package/dist/ix-icons/svg/inquiry-mail.svg +1 -0
  404. package/dist/ix-icons/svg/inquiry.svg +1 -0
  405. package/dist/ix-icons/svg/ipcs.svg +1 -0
  406. package/dist/ix-icons/svg/item-details-filled.svg +1 -0
  407. package/dist/ix-icons/svg/item-details.svg +1 -0
  408. package/dist/ix-icons/svg/join.svg +1 -0
  409. package/dist/ix-icons/svg/label-filled.svg +1 -0
  410. package/dist/ix-icons/svg/label.svg +1 -0
  411. package/dist/ix-icons/svg/landing-page-logo.svg +1 -0
  412. package/dist/ix-icons/svg/language-filled.svg +1 -0
  413. package/dist/ix-icons/svg/language.svg +1 -0
  414. package/dist/ix-icons/svg/layers-filled.svg +1 -0
  415. package/dist/ix-icons/svg/layers.svg +1 -0
  416. package/dist/ix-icons/svg/leaf.svg +1 -0
  417. package/dist/ix-icons/svg/legal.svg +1 -0
  418. package/dist/ix-icons/svg/library-new.svg +1 -0
  419. package/dist/ix-icons/svg/library.svg +1 -0
  420. package/dist/ix-icons/svg/license.svg +1 -0
  421. package/dist/ix-icons/svg/light-dark.svg +1 -0
  422. package/dist/ix-icons/svg/line-diagonal.svg +1 -0
  423. package/dist/ix-icons/svg/link-break.svg +1 -0
  424. package/dist/ix-icons/svg/link-diagonal.svg +1 -0
  425. package/dist/ix-icons/svg/link.svg +1 -0
  426. package/dist/ix-icons/svg/list-sorted-alt.svg +1 -0
  427. package/dist/ix-icons/svg/list-sorted.svg +1 -0
  428. package/dist/ix-icons/svg/list.svg +1 -0
  429. package/dist/ix-icons/svg/live-schedule.svg +1 -0
  430. package/dist/ix-icons/svg/location-filled.svg +1 -0
  431. package/dist/ix-icons/svg/location-outline.svg +1 -0
  432. package/dist/ix-icons/svg/location.svg +1 -0
  433. package/dist/ix-icons/svg/lock-filled.svg +1 -0
  434. package/dist/ix-icons/svg/lock-key-filled.svg +1 -0
  435. package/dist/ix-icons/svg/lock-key.svg +1 -0
  436. package/dist/ix-icons/svg/lock.svg +1 -0
  437. package/dist/ix-icons/svg/log-in.svg +1 -0
  438. package/dist/ix-icons/svg/log-out.svg +1 -0
  439. package/dist/ix-icons/svg/log.svg +1 -0
  440. package/dist/ix-icons/svg/logic-diagram.svg +1 -0
  441. package/dist/ix-icons/svg/lower-limit.svg +1 -0
  442. package/dist/ix-icons/svg/mail-filled.svg +1 -0
  443. package/dist/ix-icons/svg/mail.svg +1 -0
  444. package/dist/ix-icons/svg/maintenance-documents.svg +1 -0
  445. package/dist/ix-icons/svg/maintenance-info.svg +1 -0
  446. package/dist/ix-icons/svg/maintenance-warning-filled.svg +1 -0
  447. package/dist/ix-icons/svg/maintenance-warning.svg +1 -0
  448. package/dist/ix-icons/svg/maintenance.svg +1 -0
  449. package/dist/ix-icons/svg/mandatory-done.svg +1 -0
  450. package/dist/ix-icons/svg/mandatory.svg +1 -0
  451. package/dist/ix-icons/svg/map.svg +1 -0
  452. package/dist/ix-icons/svg/maximize.svg +1 -0
  453. package/dist/ix-icons/svg/microphone-filled.svg +1 -0
  454. package/dist/ix-icons/svg/microphone.svg +1 -0
  455. package/dist/ix-icons/svg/minimize.svg +1 -0
  456. package/dist/ix-icons/svg/minus.svg +1 -0
  457. package/dist/ix-icons/svg/missing-symbol.svg +1 -0
  458. package/dist/ix-icons/svg/mix.svg +1 -0
  459. package/dist/ix-icons/svg/monitor-filled.svg +1 -0
  460. package/dist/ix-icons/svg/monitor-trend.svg +1 -0
  461. package/dist/ix-icons/svg/monitor.svg +1 -0
  462. package/dist/ix-icons/svg/monitoring-add.svg +1 -0
  463. package/dist/ix-icons/svg/monitoring.svg +1 -0
  464. package/dist/ix-icons/svg/monitorings.svg +1 -0
  465. package/dist/ix-icons/svg/moon-filled.svg +1 -0
  466. package/dist/ix-icons/svg/moon.svg +1 -0
  467. package/dist/ix-icons/svg/more-menu.svg +1 -0
  468. package/dist/ix-icons/svg/mouse-click-filled.svg +1 -0
  469. package/dist/ix-icons/svg/mouse-click.svg +1 -0
  470. package/dist/ix-icons/svg/mouse-select-filled.svg +1 -0
  471. package/dist/ix-icons/svg/mouse-select.svg +1 -0
  472. package/dist/ix-icons/svg/move.svg +1 -0
  473. package/dist/ix-icons/svg/mp4-document.svg +1 -0
  474. package/dist/ix-icons/svg/namur-check-function-filled.svg +1 -0
  475. package/dist/ix-icons/svg/namur-check-function.svg +1 -0
  476. package/dist/ix-icons/svg/namur-failure-filled.svg +1 -0
  477. package/dist/ix-icons/svg/namur-failure.svg +1 -0
  478. package/dist/ix-icons/svg/namur-maintenance-required-filled.svg +1 -0
  479. package/dist/ix-icons/svg/namur-maintenance-required.svg +1 -0
  480. package/dist/ix-icons/svg/namur-ok-filled.svg +1 -0
  481. package/dist/ix-icons/svg/namur-ok.svg +1 -0
  482. package/dist/ix-icons/svg/namur-out-of-spec-filled.svg +1 -0
  483. package/dist/ix-icons/svg/namur-out-of-spec.svg +1 -0
  484. package/dist/ix-icons/svg/navigation-filled.svg +1 -0
  485. package/dist/ix-icons/svg/navigation-left.svg +1 -0
  486. package/dist/ix-icons/svg/navigation-right.svg +1 -0
  487. package/dist/ix-icons/svg/navigation.svg +1 -0
  488. package/dist/ix-icons/svg/new-indicator-filled.svg +1 -0
  489. package/dist/ix-icons/svg/new-indicator.svg +1 -0
  490. package/dist/ix-icons/svg/no-filter-filled.svg +1 -0
  491. package/dist/ix-icons/svg/no-filter.svg +1 -0
  492. package/dist/ix-icons/svg/no-image.svg +1 -0
  493. package/dist/ix-icons/svg/note-filled.svg +1 -0
  494. package/dist/ix-icons/svg/note.svg +1 -0
  495. package/dist/ix-icons/svg/notification-filled.svg +1 -0
  496. package/dist/ix-icons/svg/notification.svg +1 -0
  497. package/dist/ix-icons/svg/notifications-filled.svg +1 -0
  498. package/dist/ix-icons/svg/notifications.svg +1 -0
  499. package/dist/ix-icons/svg/ontology-filled.svg +1 -0
  500. package/dist/ix-icons/svg/ontology.svg +1 -0
  501. package/dist/ix-icons/svg/open-external.svg +1 -0
  502. package/dist/ix-icons/svg/open-file-filled.svg +1 -0
  503. package/dist/ix-icons/svg/open-file.svg +1 -0
  504. package/dist/ix-icons/svg/operate-plant-filled.svg +1 -0
  505. package/dist/ix-icons/svg/operate-plant.svg +1 -0
  506. package/dist/ix-icons/svg/operating-system.svg +1 -0
  507. package/dist/ix-icons/svg/optimize.svg +1 -0
  508. package/dist/ix-icons/svg/p-and-i-symbols.svg +1 -0
  509. package/dist/ix-icons/svg/p-i-diagram.svg +1 -0
  510. package/dist/ix-icons/svg/pan.svg +1 -0
  511. package/dist/ix-icons/svg/panel-ipc-fail.svg +1 -0
  512. package/dist/ix-icons/svg/panel-ipc-question.svg +1 -0
  513. package/dist/ix-icons/svg/panel-ipc-success.svg +1 -0
  514. package/dist/ix-icons/svg/panel-ipc.svg +1 -0
  515. package/dist/ix-icons/svg/paste.svg +1 -0
  516. package/dist/ix-icons/svg/pause.svg +1 -0
  517. package/dist/ix-icons/svg/pc-tower-filled.svg +1 -0
  518. package/dist/ix-icons/svg/pc-tower.svg +1 -0
  519. package/dist/ix-icons/svg/pdf-document.svg +1 -0
  520. package/dist/ix-icons/svg/pen-filled.svg +1 -0
  521. package/dist/ix-icons/svg/pen.svg +1 -0
  522. package/dist/ix-icons/svg/phone-filled.svg +1 -0
  523. package/dist/ix-icons/svg/phone.svg +1 -0
  524. package/dist/ix-icons/svg/photo-camera-add.svg +1 -0
  525. package/dist/ix-icons/svg/photo-camera-cancelled-filled.svg +1 -0
  526. package/dist/ix-icons/svg/photo-camera-cancelled.svg +1 -0
  527. package/dist/ix-icons/svg/photo-camera-filled.svg +1 -0
  528. package/dist/ix-icons/svg/photo-camera.svg +1 -0
  529. package/dist/ix-icons/svg/photo-cameras.svg +1 -0
  530. package/dist/ix-icons/svg/piechart-filled.svg +1 -0
  531. package/dist/ix-icons/svg/piechart.svg +1 -0
  532. package/dist/ix-icons/svg/pin-filled.svg +1 -0
  533. package/dist/ix-icons/svg/pin.svg +1 -0
  534. package/dist/ix-icons/svg/plant-filled.svg +1 -0
  535. package/dist/ix-icons/svg/plant-handbook-filled.svg +1 -0
  536. package/dist/ix-icons/svg/plant-handbook.svg +1 -0
  537. package/dist/ix-icons/svg/plant-outline.svg +1 -0
  538. package/dist/ix-icons/svg/plant-security.svg +1 -0
  539. package/dist/ix-icons/svg/plant-settings-filled.svg +1 -0
  540. package/dist/ix-icons/svg/plant-settings.svg +1 -0
  541. package/dist/ix-icons/svg/plant-user-filled.svg +1 -0
  542. package/dist/ix-icons/svg/plant-user.svg +1 -0
  543. package/dist/ix-icons/svg/plant.svg +1 -0
  544. package/dist/ix-icons/svg/plants-filled.svg +1 -0
  545. package/dist/ix-icons/svg/plants.svg +1 -0
  546. package/dist/ix-icons/svg/play-filled.svg +1 -0
  547. package/dist/ix-icons/svg/play-pause-filled.svg +1 -0
  548. package/dist/ix-icons/svg/play-pause.svg +1 -0
  549. package/dist/ix-icons/svg/play-stepwise-filled.svg +1 -0
  550. package/dist/ix-icons/svg/play-stepwise.svg +1 -0
  551. package/dist/ix-icons/svg/play.svg +1 -0
  552. package/dist/ix-icons/svg/plus-minus-times-divide.svg +1 -0
  553. package/dist/ix-icons/svg/plus.svg +1 -0
  554. package/dist/ix-icons/svg/point-up-filled.svg +1 -0
  555. package/dist/ix-icons/svg/point-up.svg +1 -0
  556. package/dist/ix-icons/svg/polar-plot.svg +1 -0
  557. package/dist/ix-icons/svg/polygon-filled.svg +1 -0
  558. package/dist/ix-icons/svg/polygon-line.svg +1 -0
  559. package/dist/ix-icons/svg/polygon.svg +1 -0
  560. package/dist/ix-icons/svg/power-supply.svg +1 -0
  561. package/dist/ix-icons/svg/ppt-document.svg +1 -0
  562. package/dist/ix-icons/svg/print-filled.svg +1 -0
  563. package/dist/ix-icons/svg/print.svg +1 -0
  564. package/dist/ix-icons/svg/prio-high.svg +1 -0
  565. package/dist/ix-icons/svg/prio-low.svg +1 -0
  566. package/dist/ix-icons/svg/prio-middle.svg +1 -0
  567. package/dist/ix-icons/svg/product-catalog.svg +1 -0
  568. package/dist/ix-icons/svg/product-management.svg +1 -0
  569. package/dist/ix-icons/svg/product.svg +1 -0
  570. package/dist/ix-icons/svg/project-configuration.svg +1 -0
  571. package/dist/ix-icons/svg/project-new.svg +1 -0
  572. package/dist/ix-icons/svg/project-scenarios.svg +1 -0
  573. package/dist/ix-icons/svg/project-server-filled.svg +1 -0
  574. package/dist/ix-icons/svg/project-server.svg +1 -0
  575. package/dist/ix-icons/svg/project.svg +1 -0
  576. package/dist/ix-icons/svg/protocol.svg +1 -0
  577. package/dist/ix-icons/svg/publish-document.svg +1 -0
  578. package/dist/ix-icons/svg/publish.svg +1 -0
  579. package/dist/ix-icons/svg/qr-code.svg +1 -0
  580. package/dist/ix-icons/svg/quality-report.svg +1 -0
  581. package/dist/ix-icons/svg/question-filled.svg +1 -0
  582. package/dist/ix-icons/svg/question.svg +1 -0
  583. package/dist/ix-icons/svg/quote.svg +1 -0
  584. package/dist/ix-icons/svg/rack-ipc-fail.svg +1 -0
  585. package/dist/ix-icons/svg/rack-ipc-question.svg +1 -0
  586. package/dist/ix-icons/svg/rack-ipc-success.svg +1 -0
  587. package/dist/ix-icons/svg/rack-ipc.svg +1 -0
  588. package/dist/ix-icons/svg/radarchart.svg +1 -0
  589. package/dist/ix-icons/svg/radio-waves-off.svg +1 -0
  590. package/dist/ix-icons/svg/radio-waves-warning.svg +1 -0
  591. package/dist/ix-icons/svg/radio-waves.svg +1 -0
  592. package/dist/ix-icons/svg/random-filled.svg +1 -0
  593. package/dist/ix-icons/svg/random.svg +1 -0
  594. package/dist/ix-icons/svg/reboot.svg +1 -0
  595. package/dist/ix-icons/svg/rectangle-filled.svg +1 -0
  596. package/dist/ix-icons/svg/rectangle.svg +1 -0
  597. package/dist/ix-icons/svg/redo.svg +1 -0
  598. package/dist/ix-icons/svg/reference.svg +1 -0
  599. package/dist/ix-icons/svg/refresh-cancelled.svg +1 -0
  600. package/dist/ix-icons/svg/refresh-exclamation.svg +1 -0
  601. package/dist/ix-icons/svg/refresh-settings.svg +1 -0
  602. package/dist/ix-icons/svg/refresh.svg +1 -0
  603. package/dist/ix-icons/svg/reload.svg +1 -0
  604. package/dist/ix-icons/svg/remove-application.svg +1 -0
  605. package/dist/ix-icons/svg/remove-eye-filled.svg +1 -0
  606. package/dist/ix-icons/svg/remove-eye.svg +1 -0
  607. package/dist/ix-icons/svg/rename.svg +1 -0
  608. package/dist/ix-icons/svg/reorder.svg +1 -0
  609. package/dist/ix-icons/svg/replace.svg +1 -0
  610. package/dist/ix-icons/svg/report-barchart.svg +1 -0
  611. package/dist/ix-icons/svg/report-linechart.svg +1 -0
  612. package/dist/ix-icons/svg/report-text.svg +1 -0
  613. package/dist/ix-icons/svg/reset.svg +1 -0
  614. package/dist/ix-icons/svg/restore-backup-filled.svg +1 -0
  615. package/dist/ix-icons/svg/restore-backup-pc.svg +1 -0
  616. package/dist/ix-icons/svg/restore-backup.svg +1 -0
  617. package/dist/ix-icons/svg/rhomb-filled.svg +1 -0
  618. package/dist/ix-icons/svg/rhomb.svg +1 -0
  619. package/dist/ix-icons/svg/road-filled.svg +1 -0
  620. package/dist/ix-icons/svg/road.svg +1 -0
  621. package/dist/ix-icons/svg/rocket-filled.svg +1 -0
  622. package/dist/ix-icons/svg/rocket.svg +1 -0
  623. package/dist/ix-icons/svg/route-target.svg +1 -0
  624. package/dist/ix-icons/svg/route.svg +1 -0
  625. package/dist/ix-icons/svg/runtime-settings.svg +1 -0
  626. package/dist/ix-icons/svg/scatterplot.svg +1 -0
  627. package/dist/ix-icons/svg/scheduler-filled.svg +1 -0
  628. package/dist/ix-icons/svg/scheduler.svg +1 -0
  629. package/dist/ix-icons/svg/screen-filled.svg +1 -0
  630. package/dist/ix-icons/svg/screen.svg +1 -0
  631. package/dist/ix-icons/svg/screenshot-filled.svg +1 -0
  632. package/dist/ix-icons/svg/screenshot.svg +1 -0
  633. package/dist/ix-icons/svg/script-add.svg +1 -0
  634. package/dist/ix-icons/svg/script.svg +1 -0
  635. package/dist/ix-icons/svg/scripts.svg +1 -0
  636. package/dist/ix-icons/svg/sd-card-filled.svg +1 -0
  637. package/dist/ix-icons/svg/sd-card-micro-filled.svg +1 -0
  638. package/dist/ix-icons/svg/sd-card-micro.svg +1 -0
  639. package/dist/ix-icons/svg/sd-card.svg +1 -0
  640. package/dist/ix-icons/svg/search.svg +1 -0
  641. package/dist/ix-icons/svg/separator-line.svg +1 -0
  642. package/dist/ix-icons/svg/share-filled.svg +1 -0
  643. package/dist/ix-icons/svg/share.svg +1 -0
  644. package/dist/ix-icons/svg/shield-broken-filled.svg +1 -0
  645. package/dist/ix-icons/svg/shield-broken.svg +1 -0
  646. package/dist/ix-icons/svg/shield-check-filled.svg +1 -0
  647. package/dist/ix-icons/svg/shield-check.svg +1 -0
  648. package/dist/ix-icons/svg/shield-filled.svg +1 -0
  649. package/dist/ix-icons/svg/shield-half.svg +1 -0
  650. package/dist/ix-icons/svg/shield.svg +1 -0
  651. package/dist/ix-icons/svg/shopping-cart-filled.svg +1 -0
  652. package/dist/ix-icons/svg/shopping-cart.svg +1 -0
  653. package/dist/ix-icons/svg/shout-filled.svg +1 -0
  654. package/dist/ix-icons/svg/shout.svg +1 -0
  655. package/dist/ix-icons/svg/sign-language.svg +1 -0
  656. package/dist/ix-icons/svg/signal-strength-0.svg +1 -0
  657. package/dist/ix-icons/svg/signal-strength-1.svg +1 -0
  658. package/dist/ix-icons/svg/signal-strength-2.svg +1 -0
  659. package/dist/ix-icons/svg/signal-strength-3.svg +1 -0
  660. package/dist/ix-icons/svg/signal-strength-4.svg +1 -0
  661. package/dist/ix-icons/svg/signal-strength-5.svg +1 -0
  662. package/dist/ix-icons/svg/signal-strength-6.svg +1 -0
  663. package/dist/ix-icons/svg/signal-strength-7.svg +1 -0
  664. package/dist/ix-icons/svg/signal-strength-8.svg +1 -0
  665. package/dist/ix-icons/svg/simit-component.svg +1 -0
  666. package/dist/ix-icons/svg/simit-macro-component-editor.svg +1 -0
  667. package/dist/ix-icons/svg/simit-macro.svg +1 -0
  668. package/dist/ix-icons/svg/single-check.svg +1 -0
  669. package/dist/ix-icons/svg/skip-back-filled.svg +1 -0
  670. package/dist/ix-icons/svg/skip-back.svg +1 -0
  671. package/dist/ix-icons/svg/skip-filled.svg +1 -0
  672. package/dist/ix-icons/svg/skip.svg +1 -0
  673. package/dist/ix-icons/svg/snowflake.svg +1 -0
  674. package/dist/ix-icons/svg/solid-state-drive.svg +1 -0
  675. package/dist/ix-icons/svg/sort-alt.svg +1 -0
  676. package/dist/ix-icons/svg/sort-ascending.svg +1 -0
  677. package/dist/ix-icons/svg/sort-descending.svg +1 -0
  678. package/dist/ix-icons/svg/sort.svg +1 -0
  679. package/dist/ix-icons/svg/sound-loud-filled.svg +1 -0
  680. package/dist/ix-icons/svg/sound-loud.svg +1 -0
  681. package/dist/ix-icons/svg/sound-mute-filled.svg +1 -0
  682. package/dist/ix-icons/svg/sound-mute.svg +1 -0
  683. package/dist/ix-icons/svg/sound-off-filled.svg +1 -0
  684. package/dist/ix-icons/svg/sound-off.svg +1 -0
  685. package/dist/ix-icons/svg/sound-quiet-filled.svg +1 -0
  686. package/dist/ix-icons/svg/sound-quiet.svg +1 -0
  687. package/dist/ix-icons/svg/spatial.svg +1 -0
  688. package/dist/ix-icons/svg/split-horizontally.svg +1 -0
  689. package/dist/ix-icons/svg/split-vertically.svg +1 -0
  690. package/dist/ix-icons/svg/split.svg +1 -0
  691. package/dist/ix-icons/svg/stamp-filled.svg +1 -0
  692. package/dist/ix-icons/svg/stamp.svg +1 -0
  693. package/dist/ix-icons/svg/standby.svg +1 -0
  694. package/dist/ix-icons/svg/star-add-filled.svg +1 -0
  695. package/dist/ix-icons/svg/star-add.svg +1 -0
  696. package/dist/ix-icons/svg/star-cancelled-filled.svg +1 -0
  697. package/dist/ix-icons/svg/star-cancelled.svg +1 -0
  698. package/dist/ix-icons/svg/star-filled.svg +1 -0
  699. package/dist/ix-icons/svg/star-list-filled.svg +1 -0
  700. package/dist/ix-icons/svg/star-list.svg +1 -0
  701. package/dist/ix-icons/svg/star.svg +1 -0
  702. package/dist/ix-icons/svg/start-data-analysis.svg +1 -0
  703. package/dist/ix-icons/svg/steering-user-filled.svg +1 -0
  704. package/dist/ix-icons/svg/steering-user.svg +1 -0
  705. package/dist/ix-icons/svg/steering.svg +1 -0
  706. package/dist/ix-icons/svg/stethoscope.svg +1 -0
  707. package/dist/ix-icons/svg/stop-filled.svg +1 -0
  708. package/dist/ix-icons/svg/stop.svg +1 -0
  709. package/dist/ix-icons/svg/success-filled.svg +1 -0
  710. package/dist/ix-icons/svg/success.svg +1 -0
  711. package/dist/ix-icons/svg/sun-filled.svg +1 -0
  712. package/dist/ix-icons/svg/sun.svg +1 -0
  713. package/dist/ix-icons/svg/support.svg +1 -0
  714. package/dist/ix-icons/svg/surveillance-cancelled-filled.svg +1 -0
  715. package/dist/ix-icons/svg/surveillance-cancelled.svg +1 -0
  716. package/dist/ix-icons/svg/surveillance-filled.svg +1 -0
  717. package/dist/ix-icons/svg/surveillance.svg +1 -0
  718. package/dist/ix-icons/svg/svg-document.svg +1 -0
  719. package/dist/ix-icons/svg/swap-left-right.svg +1 -0
  720. package/dist/ix-icons/svg/switch-slider.svg +1 -0
  721. package/dist/ix-icons/svg/sword-swing.svg +1 -0
  722. package/dist/ix-icons/svg/table-columns.svg +1 -0
  723. package/dist/ix-icons/svg/table-rows.svg +1 -0
  724. package/dist/ix-icons/svg/table-settings.svg +1 -0
  725. package/dist/ix-icons/svg/table.svg +1 -0
  726. package/dist/ix-icons/svg/tag-filled.svg +1 -0
  727. package/dist/ix-icons/svg/tag-plus-filled.svg +1 -0
  728. package/dist/ix-icons/svg/tag-plus.svg +1 -0
  729. package/dist/ix-icons/svg/tag.svg +1 -0
  730. package/dist/ix-icons/svg/tasks-all.svg +1 -0
  731. package/dist/ix-icons/svg/tasks-done.svg +1 -0
  732. package/dist/ix-icons/svg/tasks-open.svg +1 -0
  733. package/dist/ix-icons/svg/text-bold.svg +1 -0
  734. package/dist/ix-icons/svg/text-circle-rectangle-filled.svg +1 -0
  735. package/dist/ix-icons/svg/text-circle-rectangle.svg +1 -0
  736. package/dist/ix-icons/svg/text-document.svg +1 -0
  737. package/dist/ix-icons/svg/text-italic.svg +1 -0
  738. package/dist/ix-icons/svg/text-strike-through.svg +1 -0
  739. package/dist/ix-icons/svg/text-underline.svg +1 -0
  740. package/dist/ix-icons/svg/text.svg +1 -0
  741. package/dist/ix-icons/svg/thermometer.svg +1 -0
  742. package/dist/ix-icons/svg/threshold-cancelled.svg +1 -0
  743. package/dist/ix-icons/svg/threshold-off.svg +1 -0
  744. package/dist/ix-icons/svg/threshold-on.svg +1 -0
  745. package/dist/ix-icons/svg/to-be-published.svg +1 -0
  746. package/dist/ix-icons/svg/to-search.svg +1 -0
  747. package/dist/ix-icons/svg/topic-filled.svg +1 -0
  748. package/dist/ix-icons/svg/topic.svg +1 -0
  749. package/dist/ix-icons/svg/touch-filled.svg +1 -0
  750. package/dist/ix-icons/svg/touch.svg +1 -0
  751. package/dist/ix-icons/svg/trashcan-filled.svg +1 -0
  752. package/dist/ix-icons/svg/trashcan.svg +1 -0
  753. package/dist/ix-icons/svg/tree.svg +1 -0
  754. package/dist/ix-icons/svg/trend-downward-circle.svg +1 -0
  755. package/dist/ix-icons/svg/trend-downward-filled.svg +1 -0
  756. package/dist/ix-icons/svg/trend-downward.svg +1 -0
  757. package/dist/ix-icons/svg/trend-sideways-circle.svg +1 -0
  758. package/dist/ix-icons/svg/trend-sideways-filled.svg +1 -0
  759. package/dist/ix-icons/svg/trend-sideways.svg +1 -0
  760. package/dist/ix-icons/svg/trend-upward-circle.svg +1 -0
  761. package/dist/ix-icons/svg/trend-upward-filled.svg +1 -0
  762. package/dist/ix-icons/svg/trend-upward.svg +1 -0
  763. package/dist/ix-icons/svg/trend.svg +1 -0
  764. package/dist/ix-icons/svg/triangle-filled.svg +1 -0
  765. package/dist/ix-icons/svg/triangle.svg +1 -0
  766. package/dist/ix-icons/svg/trophy-filled.svg +1 -0
  767. package/dist/ix-icons/svg/trophy.svg +1 -0
  768. package/dist/ix-icons/svg/truck-filled.svg +1 -0
  769. package/dist/ix-icons/svg/truck.svg +1 -0
  770. package/dist/ix-icons/svg/tulip-filled.svg +1 -0
  771. package/dist/ix-icons/svg/tulip.svg +1 -0
  772. package/dist/ix-icons/svg/txt-document.svg +1 -0
  773. package/dist/ix-icons/svg/undo.svg +1 -0
  774. package/dist/ix-icons/svg/ungroup.svg +1 -0
  775. package/dist/ix-icons/svg/unlock-filled.svg +1 -0
  776. package/dist/ix-icons/svg/unlock-plant-filled.svg +1 -0
  777. package/dist/ix-icons/svg/unlock-plant.svg +1 -0
  778. package/dist/ix-icons/svg/unlock.svg +1 -0
  779. package/dist/ix-icons/svg/upload-document-note.svg +1 -0
  780. package/dist/ix-icons/svg/upload-fail.svg +1 -0
  781. package/dist/ix-icons/svg/upload-success.svg +1 -0
  782. package/dist/ix-icons/svg/upload.svg +1 -0
  783. package/dist/ix-icons/svg/upper-limit.svg +1 -0
  784. package/dist/ix-icons/svg/usb-drive.svg +1 -0
  785. package/dist/ix-icons/svg/user-check-filled.svg +1 -0
  786. package/dist/ix-icons/svg/user-check.svg +1 -0
  787. package/dist/ix-icons/svg/user-fail-filled.svg +1 -0
  788. package/dist/ix-icons/svg/user-fail.svg +1 -0
  789. package/dist/ix-icons/svg/user-filled.svg +1 -0
  790. package/dist/ix-icons/svg/user-management-filled.svg +1 -0
  791. package/dist/ix-icons/svg/user-management.svg +1 -0
  792. package/dist/ix-icons/svg/user-profile-filled.svg +1 -0
  793. package/dist/ix-icons/svg/user-profile.svg +1 -0
  794. package/dist/ix-icons/svg/user-reading-reading.svg +1 -0
  795. package/dist/ix-icons/svg/user-reading.svg +1 -0
  796. package/dist/ix-icons/svg/user-settings-filled.svg +1 -0
  797. package/dist/ix-icons/svg/user-settings.svg +1 -0
  798. package/dist/ix-icons/svg/user-success-filled.svg +1 -0
  799. package/dist/ix-icons/svg/user-success.svg +1 -0
  800. package/dist/ix-icons/svg/user.svg +1 -0
  801. package/dist/ix-icons/svg/validate.svg +1 -0
  802. package/dist/ix-icons/svg/vdi-folder.svg +1 -0
  803. package/dist/ix-icons/svg/version-history.svg +1 -0
  804. package/dist/ix-icons/svg/video-file-filled.svg +1 -0
  805. package/dist/ix-icons/svg/video-file.svg +1 -0
  806. package/dist/ix-icons/svg/warning-filled.svg +1 -0
  807. package/dist/ix-icons/svg/warning-rhomb-filled.svg +1 -0
  808. package/dist/ix-icons/svg/warning-rhomb.svg +1 -0
  809. package/dist/ix-icons/svg/warning.svg +1 -0
  810. package/dist/ix-icons/svg/water-bathing.svg +1 -0
  811. package/dist/ix-icons/svg/water-fish.svg +1 -0
  812. package/dist/ix-icons/svg/water-plant.svg +1 -0
  813. package/dist/ix-icons/svg/water-sunbathing.svg +1 -0
  814. package/dist/ix-icons/svg/waveform.svg +1 -0
  815. package/dist/ix-icons/svg/webcam-cancelled-filled.svg +1 -0
  816. package/dist/ix-icons/svg/webcam-cancelled.svg +1 -0
  817. package/dist/ix-icons/svg/webcam-filled.svg +1 -0
  818. package/dist/ix-icons/svg/webcam.svg +1 -0
  819. package/dist/ix-icons/svg/width.svg +1 -0
  820. package/dist/ix-icons/svg/wlan-off.svg +1 -0
  821. package/dist/ix-icons/svg/wlan-strength-0.svg +1 -0
  822. package/dist/ix-icons/svg/wlan-strength-1.svg +1 -0
  823. package/dist/ix-icons/svg/wlan-strength-2.svg +1 -0
  824. package/dist/ix-icons/svg/wlan-strength-3.svg +1 -0
  825. package/dist/ix-icons/svg/work-case-filled.svg +1 -0
  826. package/dist/ix-icons/svg/work-case.svg +1 -0
  827. package/dist/ix-icons/svg/workspace.svg +1 -0
  828. package/dist/ix-icons/svg/workspaces.svg +1 -0
  829. package/dist/ix-icons/svg/x-axis-settings.svg +1 -0
  830. package/dist/ix-icons/svg/xls-document.svg +1 -0
  831. package/dist/ix-icons/svg/xml-document.svg +1 -0
  832. package/dist/ix-icons/svg/y-axis-settings.svg +1 -0
  833. package/dist/ix-icons/svg/youtube-filled.svg +1 -0
  834. package/dist/ix-icons/svg/youtube.svg +1 -0
  835. package/dist/ix-icons/svg/zone.svg +1 -0
  836. package/dist/ix-icons/svg/zoom-in.svg +1 -0
  837. package/dist/ix-icons/svg/zoom-out.svg +1 -0
  838. package/dist/ix-icons/svg/zoom-selection.svg +1 -0
  839. package/dist/types/components/icon/resolveIcon.d.ts +1 -1
  840. package/dist/types/index.d.ts +1 -1
  841. package/icons/package.json +1 -1
  842. package/package.json +4 -3
  843. package/dist/cjs/icon-1370f4c0.js.map +0 -1
  844. package/dist/components/icon.js.map +0 -1
  845. package/dist/css/ix-icons.css +0 -13
  846. package/dist/esm/icon-dd32731a.js.map +0 -1
  847. package/dist/ix-icons/p-6f9cf0ab.js +0 -2
  848. package/dist/ix-icons/p-6f9cf0ab.js.map +0 -1
  849. package/dist/ix-icons/p-94e1b534.entry.js +0 -2
  850. package/dist/sample.json +0 -819
  851. /package/{dist/components → components}/index.d.ts +0 -0
  852. /package/{dist/components → components}/index.js +0 -0
  853. /package/{dist/components → components}/index.js.map +0 -0
  854. /package/{dist/components → components}/ix-icon.js +0 -0
  855. /package/{dist/components → components}/ix-icon.js.map +0 -0
  856. /package/dist/ix-icons/{p-94e1b534.entry.js.map → p-60aebf69.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { getAssetPath, proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';
1
+ import { getAssetPath, setAssetPath, proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';
2
2
 
3
3
  /**
4
4
  * Provide custom SVG path for icons
@@ -84,12 +84,21 @@ const urlRegex = /^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:www\.)?(?:\S+\.\
84
84
  function isValidUrl(url) {
85
85
  return urlRegex.test(url);
86
86
  }
87
- function getAssetUrl(name) {
87
+ function getIconUrl(name) {
88
88
  const customAssetUrl = getCustomAssetUrl();
89
89
  if (customAssetUrl) {
90
90
  return `${customAssetUrl}/${name}.svg`;
91
91
  }
92
- return getAssetPath(`svg/${name}.svg`);
92
+ let url = `svg/${name}.svg`;
93
+ try {
94
+ url = getAssetPath(url);
95
+ }
96
+ catch (error) {
97
+ console.warn(error);
98
+ setAssetPath(`${window.location.origin}/`);
99
+ url = getAssetPath(url);
100
+ }
101
+ return url;
93
102
  }
94
103
  async function resolveIcon(iconName) {
95
104
  if (!iconName) {
@@ -107,7 +116,7 @@ async function resolveIcon(iconName) {
107
116
  }
108
117
  }
109
118
  try {
110
- return fetchSVG(getAssetUrl(iconName));
119
+ return fetchSVG(getIconUrl(iconName));
111
120
  }
112
121
  catch (error) {
113
122
  throw Error('Cannot resolve any icon');
@@ -0,0 +1 @@
1
+ {"file":"icon.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 * 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, setAssetPath } 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 getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\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(getIconUrl(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}
@@ -1,4 +1,4 @@
1
- import type { Components, JSX } from "../types/components";
1
+ import type { Components, JSX } from "../dist/types/components";
2
2
 
3
3
  interface IxIcon extends Components.IxIcon, HTMLElement {}
4
4
  export const IxIcon: {
@@ -86,12 +86,21 @@ const urlRegex = /^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:www\.)?(?:\S+\.\
86
86
  function isValidUrl(url) {
87
87
  return urlRegex.test(url);
88
88
  }
89
- function getAssetUrl(name) {
89
+ function getIconUrl(name) {
90
90
  const customAssetUrl = getCustomAssetUrl();
91
91
  if (customAssetUrl) {
92
92
  return `${customAssetUrl}/${name}.svg`;
93
93
  }
94
- return index.getAssetPath(`svg/${name}.svg`);
94
+ let url = `svg/${name}.svg`;
95
+ try {
96
+ url = index.getAssetPath(url);
97
+ }
98
+ catch (error) {
99
+ console.warn(error);
100
+ index.setAssetPath(`${window.location.origin}/`);
101
+ url = index.getAssetPath(url);
102
+ }
103
+ return url;
95
104
  }
96
105
  async function resolveIcon(iconName) {
97
106
  if (!iconName) {
@@ -109,7 +118,7 @@ async function resolveIcon(iconName) {
109
118
  }
110
119
  }
111
120
  try {
112
- return fetchSVG(getAssetUrl(iconName));
121
+ return fetchSVG(getIconUrl(iconName));
113
122
  }
114
123
  catch (error) {
115
124
  throw Error('Cannot resolve any icon');
@@ -184,4 +193,4 @@ Icon.style = IxIconStyle0;
184
193
 
185
194
  exports.Icon = Icon;
186
195
 
187
- //# sourceMappingURL=icon-1370f4c0.js.map
196
+ //# sourceMappingURL=icon-93104dbb.js.map
@@ -0,0 +1 @@
1
+ {"file":"icon-93104dbb.js","mappings":"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","names":["getAssetPath","setAssetPath","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 * 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, setAssetPath } 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 getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\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(getIconUrl(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}
@@ -2,13 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const icon = require('./icon-1370f4c0.js');
5
+ const icon = require('./icon-93104dbb.js');
6
6
  const index = require('./index-8f585802.js');
7
7
 
8
8
 
9
9
 
10
10
  exports.Icon = icon.Icon;
11
- exports.getAssetPath = index.getAssetPath;
12
11
  exports.setAssetPath = index.setAssetPath;
13
12
 
14
13
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"file":"index.cjs.js","mappings":";;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
1
+ {"file":"index.cjs.js","mappings":";;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const icon = require('./icon-1370f4c0.js');
5
+ const icon = require('./icon-93104dbb.js');
6
6
  require('./index-8f585802.js');
7
7
 
8
8
 
@@ -6,7 +6,7 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- import { getAssetPath } from "@stencil/core";
9
+ import { getAssetPath, setAssetPath } from "@stencil/core";
10
10
  import { getCustomAssetUrl } from "./meta-tag";
11
11
  let fetchCache;
12
12
  const requests = new Map();
@@ -70,12 +70,21 @@ const urlRegex = /^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:www\.)?(?:\S+\.\
70
70
  function isValidUrl(url) {
71
71
  return urlRegex.test(url);
72
72
  }
73
- export function getAssetUrl(name) {
73
+ export function getIconUrl(name) {
74
74
  const customAssetUrl = getCustomAssetUrl();
75
75
  if (customAssetUrl) {
76
76
  return `${customAssetUrl}/${name}.svg`;
77
77
  }
78
- return getAssetPath(`svg/${name}.svg`);
78
+ let url = `svg/${name}.svg`;
79
+ try {
80
+ url = getAssetPath(url);
81
+ }
82
+ catch (error) {
83
+ console.warn(error);
84
+ setAssetPath(`${window.location.origin}/`);
85
+ url = getAssetPath(url);
86
+ }
87
+ return url;
79
88
  }
80
89
  export async function resolveIcon(iconName) {
81
90
  if (!iconName) {
@@ -93,7 +102,7 @@ export async function resolveIcon(iconName) {
93
102
  }
94
103
  }
95
104
  try {
96
- return fetchSVG(getAssetUrl(iconName));
105
+ return fetchSVG(getIconUrl(iconName));
97
106
  }
98
107
  catch (error) {
99
108
  throw Error('Cannot resolve any icon');
@@ -1 +1 @@
1
- {"version":3,"file":"resolveIcon.js","sourceRoot":"","sources":["../../../src/components/icon/resolveIcon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\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"]}
1
+ {"version":3,"file":"resolveIcon.js","sourceRoot":"","sources":["../../../src/components/icon/resolveIcon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\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, setAssetPath } 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 getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\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(getIconUrl(iconName));\n } catch (error) {\n throw Error('Cannot resolve any icon');\n }\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  * COPYRIGHT (c) Siemens AG 2018-2023 ALL RIGHTS RESERVED.
3
3
  */
4
4
  import { iconStar } from "../icons";
5
- import { resolveIcon, getIconCacheMap, getAssetUrl, parseSVGDataContent } from "../resolveIcon";
5
+ import { resolveIcon, getIconCacheMap, getIconUrl, parseSVGDataContent } from "../resolveIcon";
6
6
  const exampleSvg = `
7
7
  <?xml version="1.0" encoding="UTF-8"?>
8
8
  <svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
@@ -75,13 +75,13 @@ test('fill cache map if not loaded', async () => {
75
75
  expect(cacheMap.size).toBe(0);
76
76
  const data = await resolveIcon('star');
77
77
  expect(data).toBe(parseSVGDataContent(iconStar));
78
- expect(cacheMap.get(getAssetUrl('star'))).toBe(parseSVGDataContent(iconStar));
78
+ expect(cacheMap.get(getIconUrl('star'))).toBe(parseSVGDataContent(iconStar));
79
79
  });
80
80
  test('preload custom icon', async () => {
81
81
  fetch.mockClear();
82
82
  const cacheMap = getIconCacheMap();
83
83
  cacheMap.clear();
84
- cacheMap.set(getAssetUrl('star'), '<svg>Test</svg>');
84
+ cacheMap.set(getIconUrl('star'), '<svg>Test</svg>');
85
85
  const data = await resolveIcon('star');
86
86
  expect(data).toBe('<svg>Test</svg>');
87
87
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resolveIcon.spec.js","sourceRoot":"","sources":["../../../../src/components/icon/test/resolveIcon.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * COPYRIGHT (c) Siemens AG 2018-2023 ALL RIGHTS RESERVED.\n */\nimport { iconStar } from '../icons';\nimport { resolveIcon, getIconCacheMap, getAssetUrl, parseSVGDataContent } from '../resolveIcon';\nconst exampleSvg = `\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg width=\"512px\" height=\"512px\" viewBox=\"0 0 512 512\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <title>add</title>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"Shape\" fill=\"#000000\" transform=\"translate(65.929697, 65.929697)\">\n <polygon points=\"211.189225 2.36847579e-14 211.189225 168.95138 380.140606 168.95138 380.140606 211.189225 211.189225 211.189225 211.189225 380.140606 168.95138 380.140606 168.95138 211.189225 -1.42108547e-14 211.189225 -1.42108547e-14 168.95138 168.95138 168.95138 168.95138 -1.42108547e-14\"></polygon>\n </g>\n </g>\n</svg>\n`;\n\nconst invalidexampleSvg = `\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<script>\n alert('Test!');\n</script>\n`;\n\njest.mock('../meta-tag');\njest.mock('../icons', () => ({\n iconStar: exampleSvg,\n}));\nlet fetch = (global.fetch = jest.fn((url: string) => {\n console.log(url);\n\n if (url === '/svg/star.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(iconStar),\n ok: true,\n });\n }\n\n if (url === '/svg/bulb.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(exampleSvg),\n ok: true,\n });\n }\n\n if (url === 'http://localhost/test.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(exampleSvg),\n ok: true,\n });\n }\n\n if (url === 'http://localhost/invalid.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(invalidexampleSvg),\n ok: true,\n });\n }\n}) as jest.Mock);\n\ndescribe('resolve icon', () => {\n beforeEach(() => {\n fetch.mockClear();\n });\n\n it('should resolve svg from name', async () => {\n const data = await resolveIcon('bulb');\n\n expect(data).toBe(\n `<svg width=\\\"512px\\\" height=\\\"512px\\\" viewBox=\\\"0 0 512 512\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>add</title> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"Shape\\\" fill=\\\"#000000\\\" transform=\\\"translate(65.929697, 65.929697)\\\"> <polygon points=\\\"211.189225 2.36847579e-14 211.189225 168.95138 380.140606 168.95138 380.140606 211.189225 211.189225 211.189225 211.189225 380.140606 168.95138 380.140606 168.95138 211.189225 -1.42108547e-14 211.189225 -1.42108547e-14 168.95138 168.95138 168.95138 168.95138 -1.42108547e-14\\\"></polygon> </g> </g> </svg>`,\n );\n });\n\n it('should resolve svg from src', async () => {\n const expectedName = await resolveIcon('http://localhost/test.svg');\n\n expect(expectedName).toEqual(\n `<svg width=\\\"512px\\\" height=\\\"512px\\\" viewBox=\\\"0 0 512 512\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>add</title> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"Shape\\\" fill=\\\"#000000\\\" transform=\\\"translate(65.929697, 65.929697)\\\"> <polygon points=\\\"211.189225 2.36847579e-14 211.189225 168.95138 380.140606 168.95138 380.140606 211.189225 211.189225 211.189225 211.189225 380.140606 168.95138 380.140606 168.95138 211.189225 -1.42108547e-14 211.189225 -1.42108547e-14 168.95138 168.95138 168.95138 168.95138 -1.42108547e-14\\\"></polygon> </g> </g> </svg>`,\n );\n });\n\n it('should not resolve invalid svg from src', async () => {\n const icon = 'http://localhost/invalid.svg';\n\n await expect(resolveIcon(icon)).rejects.toThrow('No valid svg data provided');\n });\n});\n\ntest('fill cache map if not loaded', async () => {\n fetch.mockClear();\n\n const cacheMap = getIconCacheMap();\n cacheMap.clear();\n\n expect(cacheMap.size).toBe(0);\n\n const data = await resolveIcon('star');\n\n expect(data).toBe(parseSVGDataContent(iconStar));\n expect(cacheMap.get(getAssetUrl('star'))).toBe(parseSVGDataContent(iconStar));\n});\n\ntest('preload custom icon', async () => {\n fetch.mockClear();\n\n const cacheMap = getIconCacheMap();\n cacheMap.clear();\n\n cacheMap.set(getAssetUrl('star'), '<svg>Test</svg>');\n\n const data = await resolveIcon('star');\n expect(data).toBe('<svg>Test</svg>');\n});\n"]}
1
+ {"version":3,"file":"resolveIcon.spec.js","sourceRoot":"","sources":["../../../../src/components/icon/test/resolveIcon.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * COPYRIGHT (c) Siemens AG 2018-2023 ALL RIGHTS RESERVED.\n */\nimport { iconStar } from '../icons';\nimport { resolveIcon, getIconCacheMap, getIconUrl, parseSVGDataContent } from '../resolveIcon';\nconst exampleSvg = `\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg width=\"512px\" height=\"512px\" viewBox=\"0 0 512 512\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <title>add</title>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"Shape\" fill=\"#000000\" transform=\"translate(65.929697, 65.929697)\">\n <polygon points=\"211.189225 2.36847579e-14 211.189225 168.95138 380.140606 168.95138 380.140606 211.189225 211.189225 211.189225 211.189225 380.140606 168.95138 380.140606 168.95138 211.189225 -1.42108547e-14 211.189225 -1.42108547e-14 168.95138 168.95138 168.95138 168.95138 -1.42108547e-14\"></polygon>\n </g>\n </g>\n</svg>\n`;\n\nconst invalidexampleSvg = `\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<script>\n alert('Test!');\n</script>\n`;\n\njest.mock('../meta-tag');\njest.mock('../icons', () => ({\n iconStar: exampleSvg,\n}));\nlet fetch = (global.fetch = jest.fn((url: string) => {\n console.log(url);\n\n if (url === '/svg/star.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(iconStar),\n ok: true,\n });\n }\n\n if (url === '/svg/bulb.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(exampleSvg),\n ok: true,\n });\n }\n\n if (url === 'http://localhost/test.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(exampleSvg),\n ok: true,\n });\n }\n\n if (url === 'http://localhost/invalid.svg') {\n return Promise.resolve({\n text: () => Promise.resolve(invalidexampleSvg),\n ok: true,\n });\n }\n}) as jest.Mock);\n\ndescribe('resolve icon', () => {\n beforeEach(() => {\n fetch.mockClear();\n });\n\n it('should resolve svg from name', async () => {\n const data = await resolveIcon('bulb');\n\n expect(data).toBe(\n `<svg width=\\\"512px\\\" height=\\\"512px\\\" viewBox=\\\"0 0 512 512\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>add</title> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"Shape\\\" fill=\\\"#000000\\\" transform=\\\"translate(65.929697, 65.929697)\\\"> <polygon points=\\\"211.189225 2.36847579e-14 211.189225 168.95138 380.140606 168.95138 380.140606 211.189225 211.189225 211.189225 211.189225 380.140606 168.95138 380.140606 168.95138 211.189225 -1.42108547e-14 211.189225 -1.42108547e-14 168.95138 168.95138 168.95138 168.95138 -1.42108547e-14\\\"></polygon> </g> </g> </svg>`,\n );\n });\n\n it('should resolve svg from src', async () => {\n const expectedName = await resolveIcon('http://localhost/test.svg');\n\n expect(expectedName).toEqual(\n `<svg width=\\\"512px\\\" height=\\\"512px\\\" viewBox=\\\"0 0 512 512\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>add</title> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"Shape\\\" fill=\\\"#000000\\\" transform=\\\"translate(65.929697, 65.929697)\\\"> <polygon points=\\\"211.189225 2.36847579e-14 211.189225 168.95138 380.140606 168.95138 380.140606 211.189225 211.189225 211.189225 211.189225 380.140606 168.95138 380.140606 168.95138 211.189225 -1.42108547e-14 211.189225 -1.42108547e-14 168.95138 168.95138 168.95138 168.95138 -1.42108547e-14\\\"></polygon> </g> </g> </svg>`,\n );\n });\n\n it('should not resolve invalid svg from src', async () => {\n const icon = 'http://localhost/invalid.svg';\n\n await expect(resolveIcon(icon)).rejects.toThrow('No valid svg data provided');\n });\n});\n\ntest('fill cache map if not loaded', async () => {\n fetch.mockClear();\n\n const cacheMap = getIconCacheMap();\n cacheMap.clear();\n\n expect(cacheMap.size).toBe(0);\n\n const data = await resolveIcon('star');\n\n expect(data).toBe(parseSVGDataContent(iconStar));\n expect(cacheMap.get(getIconUrl('star'))).toBe(parseSVGDataContent(iconStar));\n});\n\ntest('preload custom icon', async () => {\n fetch.mockClear();\n\n const cacheMap = getIconCacheMap();\n cacheMap.clear();\n\n cacheMap.set(getIconUrl('star'), '<svg>Test</svg>');\n\n const data = await resolveIcon('star');\n expect(data).toBe('<svg>Test</svg>');\n});\n"]}
@@ -1,3 +1,3 @@
1
1
  export * from './components/icon/icon';
2
- export { setAssetPath, getAssetPath } from '@stencil/core';
2
+ export { setAssetPath } from '@stencil/core';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export type { Components, JSX } from './components';\nexport * from './components/icon/icon';\nexport { setAssetPath, getAssetPath } from '@stencil/core';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export type { Components, JSX } from './components';\nexport * from './components/icon/icon';\nexport { setAssetPath } from '@stencil/core';\n"]}
@@ -1,4 +1,4 @@
1
- import { g as getAssetPath, r as registerInstance, h, H as Host, c as getElement } from './index-d1072d3f.js';
1
+ import { g as getAssetPath, a as setAssetPath, r as registerInstance, h, H as Host, c as getElement } from './index-d1072d3f.js';
2
2
 
3
3
  /**
4
4
  * Provide custom SVG path for icons
@@ -84,12 +84,21 @@ const urlRegex = /^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:www\.)?(?:\S+\.\
84
84
  function isValidUrl(url) {
85
85
  return urlRegex.test(url);
86
86
  }
87
- function getAssetUrl(name) {
87
+ function getIconUrl(name) {
88
88
  const customAssetUrl = getCustomAssetUrl();
89
89
  if (customAssetUrl) {
90
90
  return `${customAssetUrl}/${name}.svg`;
91
91
  }
92
- return getAssetPath(`svg/${name}.svg`);
92
+ let url = `svg/${name}.svg`;
93
+ try {
94
+ url = getAssetPath(url);
95
+ }
96
+ catch (error) {
97
+ console.warn(error);
98
+ setAssetPath(`${window.location.origin}/`);
99
+ url = getAssetPath(url);
100
+ }
101
+ return url;
93
102
  }
94
103
  async function resolveIcon(iconName) {
95
104
  if (!iconName) {
@@ -107,7 +116,7 @@ async function resolveIcon(iconName) {
107
116
  }
108
117
  }
109
118
  try {
110
- return fetchSVG(getAssetUrl(iconName));
119
+ return fetchSVG(getIconUrl(iconName));
111
120
  }
112
121
  catch (error) {
113
122
  throw Error('Cannot resolve any icon');
@@ -182,4 +191,4 @@ Icon.style = IxIconStyle0;
182
191
 
183
192
  export { Icon as I };
184
193
 
185
- //# sourceMappingURL=icon-dd32731a.js.map
194
+ //# sourceMappingURL=icon-97776d4a.js.map
@@ -0,0 +1 @@
1
+ {"file":"icon-97776d4a.js","mappings":";;AAAA;;;;;SAKgB,iBAAiB;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;IACvE,IAAI,SAAS,EAAE;QACb,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf;;ACbA;;;;;;;;AAiBA,IAAI,UAA+B,CAAC;AACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AACpD,IAAI,MAAM,GAAG,IAAI,CAAC;AAEX,MAAM,eAAe,GAAG;IAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,IAAI,GAAG,EAAE,CAAC;KAClB;IAED,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;KACnE;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAW;IACtC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC9C,CAAC,CAAC;SAEc,mBAAmB,CAAC,OAAe;IACjD,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE;QAC9C,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO;KACR;IAED,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;KACpC;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;QACf,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC3C;IAED,OAAO,UAAU,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,eAAe,QAAQ,CAAC,GAAW;IACjC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAM,QAAQ;QAC7C,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACrD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAE3B,OAAO,UAAU,CAAC;KACnB,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,MAAM,QAAQ,GAAG,4EAA4E,CAAC;AAE9F,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;SAEe,UAAU,CAAC,IAAY;IACrC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,IAAI,cAAc,EAAE;QAClB,OAAO,GAAG,cAAc,IAAI,IAAI,MAAM,CAAC;KACxC;IAED,IAAI,GAAG,GAAW,OAAO,IAAI,MAAM,CAAC;IACpC,IAAI;QACF,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;KACzB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,YAAY,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,eAAe,WAAW,CAAC,QAAgB;IAChD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;KACtC;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;KACtC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxB,IAAI;YACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAC;SACb;KACF;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;KACvC;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAC;KACxC;AACH;;AC3IA,MAAM,OAAO,GAAG,ulBAAulB,CAAC;AACxmB,qBAAe,OAAO;;ACUtB,MAAM,iBAAiB,GACrB,gdAAgd,CAAC;MAQtc,IAAI;;;;;;2BA4BO,KAAK;;yBAGN,KAAK;;IAE1B,iBAAiB;QACf,IAAI,CAAC,gBAAgB,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB,CAAC,CAAC;KACJ;IAGD,MAAM,eAAe;QACnB,IAAI;YACF,IAAI,CAAC,UAAU,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;SAC1D;KACF;IAEO,gBAAgB,CAAC,QAAoB;QAC3C,IAAuB,IAAI,CAAC,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,oBAAoB,EAAE;YAChH,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,OAAO;gBACL,OAAO,CAAC,OAAO,CAAC,KAAK;oBACnB,IAAI,KAAK,CAAC,cAAc,EAAE;wBACxB,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,UAAU,EAAE,CAAC;qBACvB;iBACF,CAAC,CAAC;aACJ,EACD;gBACE,UAAU,EAAE,MAAM;aACnB,CACF,CAAC;YAEF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC;aAAM;YACL,QAAQ,EAAE,CAAC;SACZ;KACF;IAED,MAAM;QACJ,MAAM,KAAK,GAEP,EAAE,CAAC;QAEP,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,OAAO,CAAC,GAAG,eAAe,IAAI,CAAC,KAAK,GAAG,CAAC;SAC/C;QAED,QACE,EAAC,IAAI,qDACH,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;gBACL,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC/B,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC/B,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC/B,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;aAChC,IAED,4DAAK,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,GAAQ,CAC1D,EACP;KACH;;;;;;;;;;;","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 * 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, setAssetPath } 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 getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\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(getIconUrl(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}
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { I as Icon } from './icon-dd32731a.js';
2
- export { g as getAssetPath, a as setAssetPath } from './index-d1072d3f.js';
1
+ export { I as Icon } from './icon-97776d4a.js';
2
+ export { a as setAssetPath } from './index-d1072d3f.js';
3
3
 
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { I as ix_icon } from './icon-dd32731a.js';
1
+ export { I as ix_icon } from './icon-97776d4a.js';
2
2
  import './index-d1072d3f.js';
3
3
 
4
4
  //# sourceMappingURL=ix-icon.entry.js.map
@@ -1,2 +1,2 @@
1
- export{I as Icon}from"./p-6f9cf0ab.js";export{g as getAssetPath,a as setAssetPath}from"./p-05455ad0.js";
1
+ export{I as Icon}from"./p-cf592f05.js";export{a as setAssetPath}from"./p-05455ad0.js";
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1,2 +1,2 @@
1
- import{p as o,b as n}from"./p-05455ad0.js";export{s as setNonce}from"./p-05455ad0.js";import{g as a}from"./p-e1255160.js";const t=()=>{const n=import.meta.url;const a={};if(n!==""){a.resourcesUrl=new URL(".",n).href}return o(a)};t().then((async o=>{await a();return n([["p-94e1b534",[[1,"ix-icon",{size:[1],color:[1],name:[1],lazyLoading:[4,"lazy-loading"],svgContent:[32],isVisible:[32]},null,{name:["loadIconContent"]}]]]],o)}));
1
+ import{p as o,b as n}from"./p-05455ad0.js";export{s as setNonce}from"./p-05455ad0.js";import{g as a}from"./p-e1255160.js";const t=()=>{const n=import.meta.url;const a={};if(n!==""){a.resourcesUrl=new URL(".",n).href}return o(a)};t().then((async o=>{await a();return n([["p-60aebf69",[[1,"ix-icon",{size:[1],color:[1],name:[1],lazyLoading:[4,"lazy-loading"],svgContent:[32],isVisible:[32]},null,{name:["loadIconContent"]}]]]],o)}));
2
2
  //# sourceMappingURL=ix-icons.esm.js.map
@@ -0,0 +1,2 @@
1
+ export{I as ix_icon}from"./p-cf592f05.js";import"./p-05455ad0.js";
2
+ //# sourceMappingURL=p-60aebf69.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{g as t,a as e,r as n,h as i,H as r,c as s}from"./p-05455ad0.js";function o(){const t=document.querySelector("meta[name='ix-icons:path']");if(t){const e=t.getAttribute("content");return e}return false}let h;const a=new Map;let c=null;const d=()=>{if(typeof window==="undefined"){return new Map}if(!h){window.IxIcons=window.IxIcons||{};h=window.IxIcons.map=window.IxIcons.map||new Map}return h};const f=t=>{if(!t){return false}if(typeof t!=="string"){return false}return t.startsWith("data:image/svg+xml")};function w(t){if(typeof window["DOMParser"]==="undefined"){console.warn("DOMParser not supported by your browser.");return}if(c===null){c=new window["DOMParser"]}const e=c.parseFromString(t,"text/html");const n=e.querySelector("svg");if(!n){throw Error("No valid svg data provided")}return n.outerHTML}async function l(t){const e=d();if(e.has(t)){return e.get(t)}if(a.has(t)){return a.get(t)}const n=fetch(t).then((async n=>{const i=await n.text();if(!n.ok){console.error(i);throw Error(i)}const r=w(i);e.set(t,r);return r}));a.set(t,n);return n}const u=/^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:www\.)?(?:\S+\.\S+)(?:\S*)$/i;function g(t){return u.test(t)}function m(n){const i=o();if(i){return`${i}/${n}.svg`}let r=`svg/${n}.svg`;try{r=t(r)}catch(n){console.warn(n);e(`${window.location.origin}/`);r=t(r)}return r}async function v(t){if(!t){throw Error("No icon name provided")}if(f(t)){return w(t)}if(g(t)){try{return l(t)}catch(t){throw t}}try{return l(m(t))}catch(t){throw Error("Cannot resolve any icon")}}const p=":host{display:inline-flex;height:1.5rem;width:1.5rem;min-height:1.5rem;min-width:1.5rem;color:inherit}:host .svg-container{display:block;position:relative;width:100%;height:100%}:host .svg-container svg{display:block;position:relative;height:100%;width:100%}:host .svg-container svg,:host .svg-container svg[fill],:host .svg-container svg [fill]{fill:currentColor !important}:host(.size-12){height:0.75rem;width:0.75rem;min-height:0.75rem;min-width:0.75rem}:host(.size-16){height:1rem;width:1rem;min-height:1rem;min-width:1rem}:host(.size-32){height:2rem;width:2rem;min-height:2rem;min-width:2rem}";const y=p;const L="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>";const b=class{constructor(t){n(this,t);this.size=undefined;this.color=undefined;this.name=undefined;this.lazyLoading=false;this.svgContent=undefined;this.isVisible=false}connectedCallback(){this.waitForRendering((()=>{this.isVisible=true;this.loadIconContent()}))}async loadIconContent(){try{this.svgContent=await v(this.name)}catch(t){this.svgContent=w(L)}}waitForRendering(t){if(this.lazyLoading&&typeof window!=="undefined"&&window.IntersectionObserver){const e=new IntersectionObserver((n=>{n.forEach((n=>{if(n.isIntersecting){t();e.disconnect()}}))}),{rootMargin:"25px"});e.observe(this.hostElement)}else{t()}}render(){const t={};if(this.color){t["color"]=`var(--theme-${this.color})`}return i(r,{key:"8dc18bf3b1ab1e2a521bd0fee33fa91b856dc52b",style:t,class:{["size-12"]:this.size==="12",["size-16"]:this.size==="16",["size-24"]:this.size==="24",["size-32"]:this.size==="32"}},i("div",{key:"48c3e8ae8e0d36be5fa112dbd408756f56c19535",class:"svg-container",innerHTML:this.svgContent}))}static get assetsDirs(){return["svg"]}get hostElement(){return s(this)}static get watchers(){return{name:["loadIconContent"]}}};b.style=y;export{b as I};
2
+ //# sourceMappingURL=p-cf592f05.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCustomAssetUrl","assetPath","document","querySelector","path","getAttribute","fetchCache","requests","Map","parser","getIconCacheMap","window","IxIcons","map","isSvgDataUrl","url","startsWith","parseSVGDataContent","content","console","warn","svgDocument","parseFromString","svgElement","Error","outerHTML","async","fetchSVG","cache","has","get","fetching","fetch","then","response","responseText","text","ok","error","svgContent","set","urlRegex","isValidUrl","test","getIconUrl","name","customAssetUrl","getAssetPath","setAssetPath","location","origin","resolveIcon","iconName","iconCss","IxIconStyle0","iconMissingSymbol","Icon","connectedCallback","this","waitForRendering","isVisible","loadIconContent","onRender","lazyLoading","IntersectionObserver","observer","entries","forEach","entry","isIntersecting","disconnect","rootMargin","observe","hostElement","render","style","color","h","Host","key","class","size","innerHTML"],"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 * 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, setAssetPath } 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 getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\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(getIconUrl(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"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="drop" transform="translate(42.666667, 42.666667)"><path d="M213.333333,3.55271368e-14 C331.154987,3.55271368e-14 426.666667,95.51168 426.666667,213.333333 C426.666667,331.153707 331.154987,426.666667 213.333333,426.666667 C95.51296,426.666667 3.55271368e-14,331.153707 3.55271368e-14,213.333333 C3.55271368e-14,95.51168 95.51296,3.55271368e-14 213.333333,3.55271368e-14 Z M234.713387,192 L192.04672,192 L192.04672,320 L234.713387,320 L234.713387,192 Z M213.55008,101.333333 C197.99616,101.333333 186.713387,112.5536 186.713387,127.704107 C186.713387,143.46752 197.698773,154.666667 213.55008,154.666667 C228.785067,154.666667 240.04672,143.46752 240.04672,128 C240.04672,112.5536 228.785067,101.333333 213.55008,101.333333 Z" id="Shape"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="about-white" transform="translate(42.666667, 42.666667)"><path d="M213.333333,3.55271368e-14 C95.51296,3.55271368e-14 3.55271368e-14,95.51168 3.55271368e-14,213.333333 C3.55271368e-14,331.153707 95.51296,426.666667 213.333333,426.666667 C331.154987,426.666667 426.666667,331.153707 426.666667,213.333333 C426.666667,95.51168 331.154987,3.55271368e-14 213.333333,3.55271368e-14 Z M213.333333,384 C119.227947,384 42.6666667,307.43872 42.6666667,213.333333 C42.6666667,119.227947 119.227947,42.6666667 213.333333,42.6666667 C307.44,42.6666667 384,119.227947 384,213.333333 C384,307.43872 307.44,384 213.333333,384 Z M240.04672,128 C240.04672,143.46752 228.785067,154.666667 213.55008,154.666667 C197.698773,154.666667 186.713387,143.46752 186.713387,127.704107 C186.713387,112.5536 197.99616,101.333333 213.55008,101.333333 C228.785067,101.333333 240.04672,112.5536 240.04672,128 Z M192.04672,192 L234.713387,192 L234.713387,320 L192.04672,320 L192.04672,192 Z" id="Shape"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><g fill-rule="evenodd" transform="translate(64 64)"><path fill-rule="nonzero" d="M170.666667 0 170.666667 170.666667 0 170.666667 0 0 170.666667 0ZM128 42.6666667 42.6666667 42.6666667 42.6666667 128 128 128 128 42.6666667ZM170.666667 213.333333 170.666667 384 0 384 0 213.333333 170.666667 213.333333ZM128 256 42.6666667 256 42.6666667 341.333333 128 341.333333 128 256ZM384 0 384 170.666667 213.333333 170.666667 213.333333 0 384 0ZM341.333333 42.6666667 256 42.6666667 256 128 341.333333 128 341.333333 42.6666667Z"/><rect width="42.667" height="170.667" x="277.333" y="213.333"/><rect width="170.667" height="42.667" x="213.333" y="277.333"/></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="drop" transform="translate(42.666667, 42.666667)"><path d="M213.333333,3.55271368e-14 C269.912851,3.55271368e-14 324.175019,22.4761259 364.18278,62.4838867 C404.190541,102.491647 426.666667,156.753816 426.666667,213.333333 C426.666667,331.15408 331.15408,426.666667 213.333333,426.666667 C95.5125867,426.666667 3.55271368e-14,331.15408 3.55271368e-14,213.333333 C3.55271368e-14,95.5125867 95.5125867,3.55271368e-14 213.333333,3.55271368e-14 Z M234.666667,106.666667 L192,106.666667 L192,192 L106.666667,192 L106.666667,234.666667 L192,234.666 L192,320 L234.666667,320 L234.666,234.666 L320,234.666667 L320,192 L234.666,192 L234.666667,106.666667 Z" id="add-workorder"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="drop" transform="translate(42.666667, 42.666667)"><path d="M213.333333,3.55271368e-14 C269.912851,3.55271368e-14 324.175019,22.4761259 364.18278,62.4838867 C404.190541,102.491647 426.666667,156.753816 426.666667,213.333333 C426.666667,331.15408 331.15408,426.666667 213.333333,426.666667 C95.5125867,426.666667 3.55271368e-14,331.15408 3.55271368e-14,213.333333 C3.55271368e-14,95.5125867 95.5125867,3.55271368e-14 213.333333,3.55271368e-14 Z M213.333333,42.6666667 C119.076736,42.6666667 42.6666667,119.076736 42.6666667,213.333333 C42.6666667,307.589931 119.076736,384 213.333333,384 C258.596948,384 302.006682,366.019099 334.012891,334.012891 C366.019099,302.006682 384,258.596948 384,213.333333 C384,119.076736 307.589931,42.6666667 213.333333,42.6666667 Z M234.666667,106.666667 L234.666,192 L320,192 L320,234.666667 L234.666,234.666 L234.666667,320 L192,320 L192,234.666 L106.666667,234.666667 L106.666667,192 L192,192 L192,106.666667 L234.666667,106.666667 Z" id="add-workorder"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icon" transform="translate(85.333333, 42.666667)"><path d="M341.333333,277.333333 L341.332667,341.332333 L405.333333,341.333333 L405.333333,384 L341.332667,383.999333 L341.333333,448 L298.666667,448 L298.666667,383.999333 L234.666667,384 L234.666667,341.333333 L298.666667,341.332333 L298.666667,277.333333 L341.333333,277.333333 Z M234.666667,3.55271368e-14 L341.333333,106.666667 L341.333,256 L298.666,256 L298.666667,124.339779 L216.993555,42.6666667 L42.6666667,42.6666667 L42.6666667,384 L213.333,383.999 L213.333333,405.333333 L277.333333,405.333333 L277.333,426.666 L1.42108547e-14,426.666667 L1.42108547e-14,3.55271368e-14 L234.666667,3.55271368e-14 Z M213.333333,298.666667 L213.333333,341.333333 L64,341.333333 L64,298.666667 L213.333333,298.666667 Z M196,85.3333333 L256,145.333333 L124,277.333333 L64,277.333333 L64,217.333333 L196,85.3333333 Z M157.304,169.265333 L96,230.570667 L96,245.333333 L110.72,245.333333 L172.046,184.007333 L157.304,169.265333 Z M195.989333,130.581333 L179.932,146.637333 L194.674,161.379333 L210.730667,145.322667 L195.989333,130.581333 Z" id="Combined-Shape"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icon" transform="translate(42.666667, 85.333333)"><path d="M384,234.666667 L383.999333,298.666667 L448,298.666667 L448,341.333333 L383.999333,341.332667 L384,405.333333 L341.333333,405.333333 L341.333333,341.332667 L277.333333,341.333333 L277.333333,298.666667 L341.333333,298.666667 L341.333333,234.666667 L384,234.666667 Z M213.333333,1.42108547e-14 C362.666667,1.42108547e-14 426.666667,170.666667 426.666667,170.666667 C426.666667,170.666667 419.806465,188.960536 405.337387,213.569457 L405.333333,213.333333 L320,213.333333 L320,277.333333 L256,277.333333 L256.002911,336.459508 C242.636019,339.591402 228.420159,341.333333 213.333333,341.333333 C64,341.333333 3.55271368e-14,170.666667 3.55271368e-14,170.666667 C3.55271368e-14,170.666667 64,1.42108547e-14 213.333333,1.42108547e-14 Z M213.333333,96 C172.096427,96 138.666667,129.42976 138.666667,170.666667 C138.666667,211.903573 172.096427,245.333333 213.333333,245.333333 C254.57024,245.333333 288,211.903573 288,170.666667 C288,129.42976 254.57024,96 213.333333,96 Z M213.333333,138.666667 C230.97792,138.666667 245.333333,153.02208 245.333333,170.666667 C245.333333,188.311253 230.97792,202.666667 213.333333,202.666667 C195.688747,202.666667 181.333333,188.311253 181.333333,170.666667 C181.333333,153.02208 195.688747,138.666667 213.333333,138.666667 Z" id="Combined-Shape"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icon" transform="translate(42.666667, 85.333333)"><path d="M384,234.666667 L383.999333,298.666667 L448,298.666667 L448,341.333333 L383.999333,341.332667 L384,405.333333 L341.333333,405.333333 L341.332333,341.332667 L277.333333,341.333333 L277.333333,298.666667 L341.332333,298.666667 L341.333333,234.666667 L384,234.666667 Z M213.333333,1.42108547e-14 C362.666667,1.42108547e-14 426.666667,170.666667 426.666667,170.666667 C426.666667,170.666667 419.806465,188.960536 405.337387,213.569457 L405.333333,213.333333 L354.651041,213.332518 C366.256821,196.877829 374.660833,181.433195 379.954347,170.658773 C361.9296,133.970133 307.595093,42.6666667 213.333333,42.6666667 C119.114667,42.6666667 64.7850667,133.88928 46.7136,170.67328 C64.7370667,207.3632 119.071573,298.666667 213.333333,298.666667 C228.597918,298.666667 242.815495,296.272256 256.00151,292.102854 L256.001906,336.459743 C242.635306,339.59149 228.419781,341.333333 213.333333,341.333333 C64,341.333333 3.55271368e-14,170.666667 3.55271368e-14,170.666667 C3.55271368e-14,170.666667 64,1.42108547e-14 213.333333,1.42108547e-14 Z M213.333333,96 C254.57024,96 288,129.42976 288,170.666667 C288,211.903573 254.57024,245.333333 213.333333,245.333333 C172.096427,245.333333 138.666667,211.903573 138.666667,170.666667 C138.666667,129.42976 172.096427,96 213.333333,96 Z M213.333333,138.666667 C195.688747,138.666667 181.333333,153.02208 181.333333,170.666667 C181.333333,188.311253 195.688747,202.666667 213.333333,202.666667 C230.97792,202.666667 245.333333,188.311253 245.333333,170.666667 C245.333333,153.02208 230.97792,138.666667 213.333333,138.666667 Z" id="Combined-Shape"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M234.667 267.333L384 85.3334H42.6665L192 267.333V389.333H234.667V267.333ZM426.666 320V384H490.666V426.667H426.666V490.667H384V426.667H320V384H384V320H426.666Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M192 267.333V389.333H234.667V267.333L384 85.3334H42.6665L192 267.333ZM293.781 128H132.864L213.333 226.048L293.781 128ZM426.666 320V384H490.666V426.667H426.666V490.667H384V426.667H320V384H384V320H426.666Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M128 106.667H106.667V128H64L64 106.667V64H106.667H128V106.667ZM64 170.667V234.667H106.667V170.667H64ZM64 341.333L64 277.333H106.667V341.333H64ZM405.333 170.667V234.667H448V170.667H405.333ZM170.667 64H234.667V106.667H170.667V64ZM341.333 64H277.333V106.667H341.333V64ZM170.667 405.333H234.667V448H170.667V405.333ZM106.667 405.333V384H64L64 405.333V448H106.667H128V405.333H106.667ZM405.333 106.667V128H448V106.667V64H405.333H384V106.667H405.333ZM426.667 384V320H384V384H320V426.667H384V490.667H426.667V426.667H490.667V384H426.667Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M426.667 120.242L256 42.6667L85.3333 120.242V236.606C85.3333 344.243 158.151 444.896 256 469.333L261.617 467.84C274.46 464.213 286.848 459.273 298.667 453.176V362.667H362.667V298.667H418.609C423.861 278.598 426.667 257.737 426.667 236.606V120.242ZM128 147.712L256 89.5148V424.939L251.339 423.341C180.854 397.666 128 319.868 128 236.606V147.712ZM384 490.667V426.667H320V384H384V320H426.667V384H490.667V426.667H426.667V490.667H384Z"/></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icon" transform="translate(70.530593, 46.125620)"><path d="M185.469407,39.207713 L356.136074,39.207713 L356.136074,81.8743797 L185.469407,81.8743797 L185.469407,39.207713 Z M185.469407,188.541046 L356.136074,188.541046 L356.136074,231.207713 L185.469407,231.207713 L185.469407,188.541046 Z M119.285384,7.10542736e-15 L144.649352,19.5107443 L68.6167605,118.353113 L-4.26325641e-14,58.3134476 L21.0721475,34.2309934 L64.0400737,71.8050464 L119.285384,7.10542736e-15 Z M119.285384,149.333333 L144.649352,168.844078 L68.6167605,267.686446 L-4.26325641e-14,207.646781 L21.0721475,183.564327 L64.0400737,221.13838 L119.285384,149.333333 Z M356.136074,273.87438 L356.135407,337.87338 L420.136074,337.87438 L420.136074,380.541046 L356.135407,380.54038 L356.136074,444.541046 L313.469407,444.541046 L313.469407,380.54038 L249.469407,380.541046 L249.469407,337.87438 L313.469407,337.87338 L313.469407,273.87438 L356.136074,273.87438 Z" id="Combined-Shape"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icon" transform="translate(42.666667, 128.000000)"><path d="M384,192 L383.999,256 L448,256 L448,298.666667 L383.999,298.666 L384,362.666667 L341.333333,362.666667 L341.333,298.666 L277.333333,298.666667 L277.333333,256 L341.333,256 L341.333333,192 L384,192 Z M149.333333,0 L149.333333,149.333333 L3.55271368e-14,149.333333 L3.55271368e-14,0 L149.333333,0 Z M106.666667,42.6666667 L42.6666667,42.6666667 L42.6666667,106.666667 L106.666667,106.666667 L106.666667,42.6666667 Z M213.333333,64 L426.666667,64 L426.666667,106.666667 L213.333333,106.666667 L213.333333,64 Z" id="Combined-Shape"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path fill-rule="evenodd" d="M362.666667,277.333333 L362.666667,341.333333 L426.666667,341.333333 L426.666667,384 L362.666667,384 L362.666667,448 L320,448 L320,384 L256,384 L256,341.333333 L320,341.333333 L320,277.333333 L362.666667,277.333333 Z M186.666667,192 C246.976162,192 296.152141,241.030193 298.573248,302.451465 L298.666667,307.2 L298.666667,320 L234.666667,320 L234.666667,384 L0,384 L0,307.2 C0,245.167377 47.6682428,194.586368 107.383368,192.09609 L112,192 L186.666667,192 Z M149.333333,3.55271368e-14 C190.570594,3.55271368e-14 224,33.4294054 224,74.6666667 C224,114.529353 192.762078,147.096031 153.430084,149.222851 L149.333333,149.333333 C108.096072,149.333333 74.6666667,115.903928 74.6666667,74.6666667 C74.6666667,34.8039808 105.904589,2.2373024 145.236582,0.110482347 L149.333333,3.55271368e-14 Z" transform="translate(64 42.667)"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path fill-rule="evenodd" d="M362.666667,277.333333 L362.666667,341.333333 L426.666667,341.333333 L426.666667,384 L362.666667,384 L362.666667,448 L320,448 L320,384 L256,384 L256,341.333333 L320,341.333333 L320,277.333333 L362.666667,277.333333 Z M186.666667,192 C246.976162,192 296.152141,241.030193 298.573248,302.451465 L298.666667,307.2 L298.666667,320 L256,320 L256,307.2 C256,268.266624 226.807633,236.897658 190.574699,234.780576 L186.666667,234.666667 L112,234.666667 C75.2924237,234.666667 44.8342773,264.693103 42.777363,303.0585 L42.6666667,307.2 L42.6666667,341.333333 L234.666667,341.333333 L234.666667,384 L0,384 L0,307.2 C0,245.167377 47.6682428,194.586368 107.383368,192.09609 L112,192 L186.666667,192 Z M149.333333,3.55271368e-14 C190.570594,3.55271368e-14 224,33.4294054 224,74.6666667 C224,114.529353 192.762078,147.096031 153.430084,149.222851 L149.333333,149.333333 C108.096072,149.333333 74.6666667,115.903928 74.6666667,74.6666667 C74.6666667,34.8039808 105.904589,2.2373024 145.236582,0.110482347 L149.333333,3.55271368e-14 Z M149.333333,42.6666667 C131.660221,42.6666667 117.333333,56.9935548 117.333333,74.6666667 C117.333333,92.3397786 131.660221,106.666667 149.333333,106.666667 C167.006445,106.666667 181.333333,92.3397786 181.333333,74.6666667 C181.333333,56.9935548 167.006445,42.6666667 149.333333,42.6666667 Z" transform="translate(64 42.667)"/></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Shape" transform="translate(65.929697, 65.929697)"><polygon points="211.189225 2.36847579e-14 211.189225 168.95138 380.140606 168.95138 380.140606 211.189225 211.189225 211.189225 211.189225 380.140606 168.95138 380.140606 168.95138 211.189225 -1.42108547e-14 211.189225 -1.42108547e-14 168.95138 168.95138 168.95138 168.95138 -1.42108547e-14"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icon" transform="translate(64.000000, 64.000000)"><path d="M320,64 L320,320 L64,320 L64,64 L320,64 Z M171.749388,128 L146.817842,128 L99.4840387,256 L121.976629,256 L130.913039,230.977 L187.575039,230.977 L196.319607,256 L220.167172,256 L171.749388,128 Z M260.093778,128 L237.691519,128 L237.691519,256 L260.093778,256 L260.093778,128 Z M159.094727,149.47526 L181.409039,213.333 L137.135039,213.333 L159.094727,149.47526 Z M341.333333,256 L384,256 L384,298.666667 L341.333333,298.666667 L341.333333,256 Z M85.3333333,341.333333 L128,341.333333 L128,384 L85.3333333,384 L85.3333333,341.333333 Z M170.666667,341.333333 L213.333333,341.333333 L213.333333,384 L170.666667,384 L170.666667,341.333333 Z M85.3333333,0 L128,0 L128,42.6666667 L85.3333333,42.6666667 L85.3333333,0 Z M256,341.333333 L298.666667,341.333333 L298.666667,384 L256,384 L256,341.333333 Z M170.666667,0 L213.333333,0 L213.333333,42.6666667 L170.666667,42.6666667 L170.666667,0 Z M256,0 L298.666667,0 L298.666667,42.6666667 L256,42.6666667 L256,0 Z M341.333333,170.666667 L384,170.666667 L384,213.333333 L341.333333,213.333333 L341.333333,170.666667 Z M0,256 L42.6666667,256 L42.6666667,298.666667 L0,298.666667 L0,256 Z M341.333333,85.3333333 L384,85.3333333 L384,128 L341.333333,128 L341.333333,85.3333333 Z M0,170.666667 L42.6666667,170.666667 L42.6666667,213.333333 L0,213.333333 L0,170.666667 Z M0,85.3333333 L42.6666667,85.3333333 L42.6666667,128 L0,128 L0,85.3333333 Z" id="Combined-Shape"/></g></g></svg>