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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. package/README.md +19 -2
  2. package/components/icon.js +9 -2
  3. package/components/icon.js.map +1 -1
  4. package/components/index.js +1 -1
  5. package/dist/cjs/{icon-93104dbb.js → icon-7938bd17.js} +11 -3
  6. package/dist/cjs/icon-7938bd17.js.map +1 -0
  7. package/dist/cjs/index-12b9d30e.js +1221 -0
  8. package/dist/cjs/index-12b9d30e.js.map +1 -0
  9. package/dist/cjs/index.cjs.js +3 -2
  10. package/dist/cjs/index.cjs.js.map +1 -1
  11. package/dist/cjs/ix-icon.cjs.entry.js +2 -2
  12. package/dist/cjs/ix-icons.cjs.js +9 -9
  13. package/dist/cjs/ix-icons.cjs.js.map +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +2 -2
  16. package/dist/collection/components/icon/resolveIcon.js +8 -1
  17. package/dist/collection/components/icon/resolveIcon.js.map +1 -1
  18. package/dist/collection/components/icon/test/{rocker-example.js → rocket-example.js} +1 -1
  19. package/dist/collection/components/icon/test/{rocker-example.js.map → rocket-example.js.map} +1 -1
  20. package/dist/collection/index.js +1 -0
  21. package/dist/collection/index.js.map +1 -1
  22. package/dist/esm/{icon-97776d4a.js → icon-7346da2f.js} +11 -4
  23. package/dist/esm/icon-7346da2f.js.map +1 -0
  24. package/dist/esm/index-05493327.js +1191 -0
  25. package/dist/esm/index-05493327.js.map +1 -0
  26. package/dist/esm/index.js +2 -2
  27. package/dist/esm/ix-icon.entry.js +2 -2
  28. package/dist/esm/ix-icons.js +10 -10
  29. package/dist/esm/ix-icons.js.map +1 -1
  30. package/dist/esm/loader.js +2 -2
  31. package/dist/ix-icons/index.esm.js +1 -1
  32. package/dist/ix-icons/index.esm.js.map +1 -1
  33. package/dist/ix-icons/ix-icons.esm.js +1 -1
  34. package/dist/ix-icons/ix-icons.esm.js.map +1 -1
  35. package/dist/ix-icons/p-07c8bd06.entry.js +2 -0
  36. package/dist/ix-icons/p-07c8bd06.entry.js.map +1 -0
  37. package/dist/ix-icons/p-20132e89.js +3 -0
  38. package/dist/ix-icons/p-20132e89.js.map +1 -0
  39. package/dist/ix-icons/p-daba5432.js +2 -0
  40. package/dist/ix-icons/p-daba5432.js.map +1 -0
  41. package/dist/ix-icons/p-e1255160.js.map +1 -1
  42. package/dist/types/components/icon/resolveIcon.d.ts +1 -0
  43. package/dist/types/index.d.ts +1 -0
  44. package/dist/types/stencil-public-runtime.d.ts +3 -10
  45. package/icons/package.json +1 -1
  46. package/loader/cdn.js +1 -3
  47. package/loader/index.cjs.js +1 -3
  48. package/loader/index.d.ts +3 -0
  49. package/loader/index.es2017.js +1 -3
  50. package/loader/index.js +1 -3
  51. package/package.json +4 -3
  52. package/dist/cjs/icon-93104dbb.js.map +0 -1
  53. package/dist/cjs/index-8f585802.js +0 -1810
  54. package/dist/cjs/index-8f585802.js.map +0 -1
  55. package/dist/collection/components/icon/test/ix-icon.spec.js +0 -61
  56. package/dist/collection/components/icon/test/ix-icon.spec.js.map +0 -1
  57. package/dist/collection/components/icon/test/resolveIcon.spec.js +0 -88
  58. package/dist/collection/components/icon/test/resolveIcon.spec.js.map +0 -1
  59. package/dist/esm/icon-97776d4a.js.map +0 -1
  60. package/dist/esm/index-d1072d3f.js +0 -1780
  61. package/dist/esm/index-d1072d3f.js.map +0 -1
  62. package/dist/esm/polyfills/core-js.js +0 -11
  63. package/dist/esm/polyfills/dom.js +0 -79
  64. package/dist/esm/polyfills/es5-html-element.js +0 -1
  65. package/dist/esm/polyfills/index.js +0 -34
  66. package/dist/esm/polyfills/system.js +0 -6
  67. package/dist/ix-icons/p-05455ad0.js +0 -3
  68. package/dist/ix-icons/p-05455ad0.js.map +0 -1
  69. package/dist/ix-icons/p-60aebf69.entry.js +0 -2
  70. package/dist/ix-icons/p-60aebf69.entry.js.map +0 -1
  71. package/dist/ix-icons/p-cf592f05.js +0 -2
  72. package/dist/ix-icons/p-cf592f05.js.map +0 -1
  73. /package/dist/types/components/icon/test/{rocker-example.d.ts → rocket-example.d.ts} +0 -0
@@ -1 +0,0 @@
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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"}