@siemens/ix-icons 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +6 -31
- package/dist/cjs/icon-a15a0683.js +1487 -0
- package/dist/cjs/icon-a15a0683.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/ix-icon.cjs.entry.js +1 -1
- package/dist/collection/components/icon/icon.css +17 -2780
- package/dist/collection/components/icon/icon.js +10 -21
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/icon/icons.js +679 -0
- package/dist/collection/components/icon/icons.js.map +1 -0
- package/dist/collection/components/icon/resolveIcon.js +27 -3
- package/dist/collection/components/icon/resolveIcon.js.map +1 -1
- package/dist/components/icon.js +1387 -25
- package/dist/components/icon.js.map +1 -1
- package/dist/css/ix-icons.css +13 -719
- package/dist/esm/icon-95eef87f.js +1485 -0
- package/dist/esm/icon-95eef87f.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/ix-icon.entry.js +1 -1
- package/dist/ix-icons/index.esm.js +1 -1
- package/dist/ix-icons/ix-icons.esm.js +1 -1
- package/dist/ix-icons/p-58a6be66.js +2 -0
- package/dist/ix-icons/p-58a6be66.js.map +1 -0
- package/dist/ix-icons/p-e0e04303.entry.js +2 -0
- package/dist/sample.json +676 -1351
- package/dist/svg/missing-symbol.svg +1 -0
- package/dist/types/components/icon/icon.d.ts +2 -1
- package/dist/types/components/icon/icons.d.ts +677 -0
- package/dist/types/components.d.ts +4 -2
- package/icons/index.d.ts +678 -676
- package/icons/index.js +678 -676
- package/icons/index.mjs +678 -676
- package/icons/package.json +1 -1
- package/package.json +2 -5
- package/dist/cjs/icon-f93d1754.js +0 -125
- package/dist/cjs/icon-f93d1754.js.map +0 -1
- package/dist/collection/components/icon/question.js +0 -5
- package/dist/collection/components/icon/question.js.map +0 -1
- package/dist/esm/icon-6a9c5e3a.js +0 -123
- package/dist/esm/icon-6a9c5e3a.js.map +0 -1
- package/dist/fonts/ix-icons.eot +0 -0
- package/dist/fonts/ix-icons.svg +0 -2037
- package/dist/fonts/ix-icons.ttf +0 -0
- package/dist/fonts/ix-icons.woff +0 -0
- package/dist/fonts/ix-icons.woff2 +0 -0
- package/dist/ix-icons/p-3f1bfdd7.js +0 -2
- package/dist/ix-icons/p-3f1bfdd7.js.map +0 -1
- package/dist/ix-icons/p-56e47578.entry.js +0 -2
- package/dist/sample.html +0 -11645
- package/dist/types/components/icon/question.d.ts +0 -1
- /package/dist/ix-icons/{p-56e47578.entry.js.map → p-e0e04303.entry.js.map} +0 -0
@@ -1,3 +1,22 @@
|
|
1
|
+
function toCamelCase(value) {
|
2
|
+
value = value.replace(/[\(\)\[\]\{\}\=\?\!\.\:,\-_\+\\\"#~\/]/g, ' ');
|
3
|
+
let returnValue = '';
|
4
|
+
let makeNextUppercase = true;
|
5
|
+
value = value.toLowerCase();
|
6
|
+
for (let i = 0; value.length > i; i++) {
|
7
|
+
let c = value.charAt(i);
|
8
|
+
if (c.match(/^\s+$/g) || c.match(/[\(\)\[\]\{\}\\\/]/g)) {
|
9
|
+
makeNextUppercase = true;
|
10
|
+
}
|
11
|
+
else if (makeNextUppercase) {
|
12
|
+
c = c.toUpperCase();
|
13
|
+
makeNextUppercase = false;
|
14
|
+
}
|
15
|
+
returnValue += c;
|
16
|
+
}
|
17
|
+
const normalized = returnValue.replace(/\s+/g, '');
|
18
|
+
return normalized.charAt(0).toUpperCase() + normalized.slice(1);
|
19
|
+
}
|
1
20
|
export const isSvgDataUrl = (url) => {
|
2
21
|
if (!url) {
|
3
22
|
return false;
|
@@ -36,10 +55,16 @@ const urlRegex = /^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:www\.)?(?:\S+\.\
|
|
36
55
|
function isValidUrl(url) {
|
37
56
|
return urlRegex.test(url);
|
38
57
|
}
|
58
|
+
async function getESMIcon(name) {
|
59
|
+
const esmIcon = await import('./icons');
|
60
|
+
let iconName = toCamelCase(name);
|
61
|
+
iconName = `icon${iconName}`;
|
62
|
+
return parseSVGDataContent(esmIcon[iconName]);
|
63
|
+
}
|
39
64
|
export async function resolveIcon(icon) {
|
40
65
|
const { name } = icon;
|
41
66
|
if (!name) {
|
42
|
-
|
67
|
+
throw Error('no icon name provided');
|
43
68
|
}
|
44
69
|
if (isSvgDataUrl(name)) {
|
45
70
|
return parseSVGDataContent(name);
|
@@ -52,7 +77,6 @@ export async function resolveIcon(icon) {
|
|
52
77
|
throw error;
|
53
78
|
}
|
54
79
|
}
|
55
|
-
|
56
|
-
return;
|
80
|
+
return getESMIcon(name);
|
57
81
|
}
|
58
82
|
//# sourceMappingURL=resolveIcon.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"resolveIcon.js","sourceRoot":"","sources":["../../../src/components/icon/resolveIcon.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;EAC1C,IAAI,CAAC,GAAG,EAAE;IACR,OAAO,KAAK,CAAC;GACd;EAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAO,KAAK,CAAC;GACd;EAED,OAAO,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,IAAI,MAAM,GAAG,IAAI,CAAC;AAElB,MAAM,UAAU,mBAAmB,CAAC,OAAe;EACjD,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE;IAC9C,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACzD,OAAO;GACR;EAED,IAAI,MAAM,KAAK,IAAI,EAAE;IACnB,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;GACpC;EAED,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;EACjE,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC;EAEnE,IAAI,CAAC,UAAU,EAAE;IACf,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;GAC3C;EAED,OAAO,UAAU,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW;EACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;EAClC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;EAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;IAChB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;GAC3B;EAED,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC;AACD,MAAM,QAAQ,GAAG,4EAA4E,CAAC;AAE9F,SAAS,UAAU,CAAC,GAAW;EAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAU;EAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;EAEtB,IAAI,CAAC,IAAI,EAAE;IACT,
|
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 { Icon } from './icon';\n\nfunction toCamelCase(value: string) {\n value = value.replace(/[\\(\\)\\[\\]\\{\\}\\=\\?\\!\\.\\:,\\-_\\+\\\\\\\"#~\\/]/g, ' ');\n let returnValue = '';\n let makeNextUppercase = true;\n value = value.toLowerCase();\n for (let i = 0; value.length > i; i++) {\n let c = value.charAt(i);\n if (c.match(/^\\s+$/g) || c.match(/[\\(\\)\\[\\]\\{\\}\\\\\\/]/g)) {\n makeNextUppercase = true;\n } else if (makeNextUppercase) {\n c = c.toUpperCase();\n makeNextUppercase = false;\n }\n returnValue += c;\n }\n const normalized = returnValue.replace(/\\s+/g, '');\n return normalized.charAt(0).toUpperCase() + normalized.slice(1);\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\nlet parser = null;\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 response = await fetch(url);\n const responseText = await response.text();\n\n if (!response.ok) {\n console.error(responseText);\n throw Error(responseText);\n }\n\n return parseSVGDataContent(responseText);\n}\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nasync function getESMIcon(name: string) {\n const esmIcon = await import('./icons');\n let iconName = toCamelCase(name);\n iconName = `icon${iconName}`;\n\n return parseSVGDataContent(esmIcon[iconName]);\n}\n\nexport async function resolveIcon(icon: Icon) {\n const { name } = icon;\n\n if (!name) {\n throw Error('no icon name provided');\n }\n\n if (isSvgDataUrl(name)) {\n return parseSVGDataContent(name);\n }\n\n if (isValidUrl(name)) {\n try {\n return await fetchSVG(name);\n } catch (error) {\n throw error;\n }\n }\n\n return getESMIcon(name);\n}\n"]}
|