@supersoniks/concorde 4.9.2 → 4.9.3
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.
- package/README.md +2 -2
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +149 -149
- package/concorde-core.es.js +2645 -2620
- package/dist/concorde-core.bundle.js +149 -149
- package/dist/concorde-core.es.js +2645 -2620
- package/dist/js/core/components/ui/icon/icon.js +17 -1
- package/dist/js/core/components/ui/icon/icon.js.map +1 -1
- package/dist/js/core/components/ui/icon/icons.js +40 -19
- package/dist/js/core/components/ui/icon/icons.js.map +1 -1
- package/dist/types/core/components/ui/icon/icon.d.ts +2 -0
- package/dist/types/core/components/ui/icon/icon.d.ts.map +1 -1
- package/dist/types/core/components/ui/icon/icons.d.ts +2 -0
- package/dist/types/core/components/ui/icon/icons.d.ts.map +1 -1
- package/package.json +3 -12
- package/scripts/pre-build.mjs +1 -0
- package/src/core/components/ui/icon/icon.ts +15 -1
- package/src/core/components/ui/icon/icons.ts +44 -18
|
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import Icons from "@supersoniks/concorde/core/components/ui/icon/icons";
|
|
8
|
+
import { ancestorAttribute } from "@supersoniks/concorde/core/decorators/Subscriber";
|
|
8
9
|
import { css, LitElement, nothing, } from "lit";
|
|
9
10
|
import { customElement, property as propertyDecorator, state, } from "lit/decorators.js";
|
|
10
11
|
const property = (options) => {
|
|
@@ -32,12 +33,16 @@ let Icon = class Icon extends LitElement {
|
|
|
32
33
|
* library de l'icone url vers un dossier en lign conenant des icônes
|
|
33
34
|
*/
|
|
34
35
|
this.library = "";
|
|
36
|
+
this.customIconLibraryPath = null;
|
|
37
|
+
this.customIconDefaultPrefix = null;
|
|
35
38
|
}
|
|
36
39
|
async updateIcon() {
|
|
37
40
|
this.iconText = await Icons.default.get({
|
|
38
41
|
name: this.name,
|
|
39
42
|
prefix: this.prefix,
|
|
40
43
|
library: this.library,
|
|
44
|
+
customLibraryPath: this.customIconLibraryPath,
|
|
45
|
+
customLibraryDefaultPrefix: this.customIconDefaultPrefix,
|
|
41
46
|
});
|
|
42
47
|
}
|
|
43
48
|
connectedCallback() {
|
|
@@ -47,7 +52,10 @@ let Icon = class Icon extends LitElement {
|
|
|
47
52
|
willUpdate(changedProperties) {
|
|
48
53
|
if (changedProperties.has("name") ||
|
|
49
54
|
changedProperties.has("prefix") ||
|
|
50
|
-
changedProperties.has("library")
|
|
55
|
+
changedProperties.has("library") ||
|
|
56
|
+
(this.library === "custom" &&
|
|
57
|
+
(changedProperties.has("customIconLibraryPath") ||
|
|
58
|
+
changedProperties.has("customIconDefaultPrefix")))) {
|
|
51
59
|
this.updateIcon();
|
|
52
60
|
}
|
|
53
61
|
super.willUpdate(changedProperties);
|
|
@@ -122,6 +130,14 @@ __decorate([
|
|
|
122
130
|
__decorate([
|
|
123
131
|
property({ type: String })
|
|
124
132
|
], Icon.prototype, "library", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
ancestorAttribute("customIconLibraryPath", { dynamic: true }),
|
|
135
|
+
state()
|
|
136
|
+
], Icon.prototype, "customIconLibraryPath", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
ancestorAttribute("customIconDefaultPrefix", { dynamic: true }),
|
|
139
|
+
state()
|
|
140
|
+
], Icon.prototype, "customIconDefaultPrefix", void 0);
|
|
125
141
|
Icon = __decorate([
|
|
126
142
|
customElement(tagName)
|
|
127
143
|
], Icon);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,MAAM,qDAAqD,CAAC;AACxE,OAAO,EACL,GAAG,EACH,UAAU,EACV,OAAO,GAGR,MAAM,KAAK,CAAC;AACb,OAAO,EACL,aAAa,EACb,QAAQ,IAAI,iBAAiB,EAC7B,KAAK,GACN,MAAM,mBAAmB,CAAC;AAI3B,MAAM,QAAQ,GAAG,CAAC,OAA6B,EAAqB,EAAE;IACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,YAAY,CAAC;AAC7B;;;GAGG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,MAAM,qDAAqD,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EACL,GAAG,EACH,UAAU,EACV,OAAO,GAGR,MAAM,KAAK,CAAC;AACb,OAAO,EACL,aAAa,EACb,QAAQ,IAAI,iBAAiB,EAC7B,KAAK,GACN,MAAM,mBAAmB,CAAC;AAI3B,MAAM,QAAQ,GAAG,CAAC,OAA6B,EAAqB,EAAE;IACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,YAAY,CAAC;AAC7B;;;GAGG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;QA8DI,aAAQ,GAAyD,EAAE,CAAC;QAE7E;;WAEG;QACyB,SAAI,GAAG,EAAE,CAAC;QAEtC;;WAEG;QACyB,WAAM,GAAG,EAAE,CAAC;QAExC;;WAEG;QACyB,YAAO,GAAG,EAAE,CAAC;QAIzC,0BAAqB,GAAkB,IAAI,CAAC;QAI5C,4BAAuB,GAAkB,IAAI,CAAC;IA0BhD,CAAC;IA3DC,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,qBAAqB;YAC7C,0BAA0B,EAAE,IAAI,CAAC,uBAAuB;SACzD,CAAC,CAAC;IACL,CAAC;IA2BD,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACzC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5B,CAAC;IACD,UAAU,CAAC,iBAAiC;QAC1C,IACE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC/B,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ;gBACxB,CAAC,iBAAiB,CAAC,GAAG,CAAC,uBAAuB,CAAC;oBAC7C,iBAAiB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,EACtD,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;;AA7GM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDlB,AAlDY,CAkDX;AAWO;IAAR,KAAK,EAAE;sCAAqE;AAKjD;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kCAAW;AAKV;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oCAAa;AAKZ;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCAAc;AAIzC;IAFC,iBAAiB,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7D,KAAK,EAAE;mDACoC;AAI5C;IAFC,iBAAiB,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC/D,KAAK,EAAE;qDACsC;AArFnC,IAAI;IADhB,aAAa,CAAC,OAAO,CAAC;GACV,IAAI,CA+GhB"}
|
|
@@ -38,21 +38,35 @@ const libraries = {
|
|
|
38
38
|
},
|
|
39
39
|
custom: { url: "", defaultPrefix: "" },
|
|
40
40
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
41
|
+
function resolveCustomLibraryConfig(params) {
|
|
42
|
+
let url = params.customLibraryPath;
|
|
43
|
+
let defaultPrefix = params.customLibraryDefaultPrefix;
|
|
44
|
+
// Attribut optionnel : peut être défini sur un ancêtre (scope / theme) ou,
|
|
45
|
+
// en secours, n'importe où dans le document (ex. config globale au boot).
|
|
46
|
+
if (url == null) {
|
|
47
|
+
const globalEl = document.querySelector("[customIconLibraryPath]");
|
|
48
|
+
url = globalEl?.getAttribute("customIconLibraryPath") ?? "";
|
|
49
|
+
if (defaultPrefix == null) {
|
|
50
|
+
defaultPrefix =
|
|
51
|
+
globalEl?.getAttribute("customIconDefaultPrefix") ??
|
|
52
|
+
document
|
|
53
|
+
.querySelector("[customIconDefaultPrefix]")
|
|
54
|
+
?.getAttribute("customIconDefaultPrefix") ??
|
|
55
|
+
"";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
url: url || "",
|
|
60
|
+
defaultPrefix: defaultPrefix || "",
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function resolveLibraryItem(library, params) {
|
|
64
|
+
if (!(library in libraries))
|
|
65
|
+
return null;
|
|
66
|
+
if (library !== "custom") {
|
|
67
|
+
return libraries[library];
|
|
55
68
|
}
|
|
69
|
+
return resolveCustomLibraryConfig(params);
|
|
56
70
|
}
|
|
57
71
|
const iconCachStr = sessionStorage.getItem("sonicIconsCache");
|
|
58
72
|
const iconCache = iconCachStr
|
|
@@ -72,15 +86,22 @@ Icons.default = {
|
|
|
72
86
|
/**
|
|
73
87
|
* SVGS en ligne
|
|
74
88
|
*/
|
|
75
|
-
if (library
|
|
76
|
-
|
|
89
|
+
if (!library) {
|
|
90
|
+
return unsafeHTML(iconsAsRecord["core"][params.name] || "");
|
|
77
91
|
}
|
|
78
|
-
|
|
79
|
-
|
|
92
|
+
const libraryItem = resolveLibraryItem(library, params);
|
|
93
|
+
if (libraryItem) {
|
|
94
|
+
// Pas d'URL encore (ancêtre ou config globale pas prête) : on attend
|
|
95
|
+
// sans fetch ni cache ; @ancestorAttribute relancera le chargement.
|
|
96
|
+
if (library === "custom" && !libraryItem.url) {
|
|
97
|
+
return "";
|
|
98
|
+
}
|
|
80
99
|
const prefix = params.prefix || libraryItem.defaultPrefix || "";
|
|
81
100
|
const libIcons = iconsAsRecord[library] || {};
|
|
82
101
|
iconsAsRecord[library] = libIcons;
|
|
83
|
-
const libIconsKey =
|
|
102
|
+
const libIconsKey = library === "custom"
|
|
103
|
+
? `${libraryItem.url}|${prefix}-${name}`
|
|
104
|
+
: `${prefix}-${name}`;
|
|
84
105
|
/**
|
|
85
106
|
* Si l'icone a déjà été chargée on ne la recharge pas
|
|
86
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icons.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,yCAAyC,CAAC,UAAU;AACpD,OAAO,KAAK,MAAM,0DAA0D,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,sCAAsC,CAAC;AAE3D;;GAEG;AACH,MAAM,kBAAkB,GAAiC,IAAI,GAAG,EAAE,CAAC;AAEnE;;;;;GAKG;AAEH,MAAM,SAAS,GAAG;IAChB,SAAS,EAAE;QACT,GAAG,EAAE,mEAAmE;QACxE,aAAa,EAAE,SAAS;KACzB;IACD,OAAO,EAAE;QACP,GAAG,EAAE,sEAAsE;KAC5E;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,wEAAwE;KAC9E;IACD,MAAM,EAAE;QACN,GAAG,EAAE,oEAAoE;KAC1E;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,8EAA8E;QACnF,aAAa,EAAE,SAAS;KACzB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,0FAA0F;QAC/F,aAAa,EAAE,SAAS;KACzB;IACD,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;CACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export declare class Icon extends LitElement {
|
|
|
21
21
|
* library de l'icone url vers un dossier en lign conenant des icônes
|
|
22
22
|
*/
|
|
23
23
|
library: string;
|
|
24
|
+
customIconLibraryPath: string | null;
|
|
25
|
+
customIconDefaultPrefix: string | null;
|
|
24
26
|
connectedCallback(): void;
|
|
25
27
|
willUpdate(changedProperties: PropertyValues): void;
|
|
26
28
|
render(): DirectiveResult<typeof UnsafeHTMLDirective>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icon.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAGV,cAAc,EACf,MAAM,KAAK,CAAC;AAMb,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAQpE;;;GAGG;AACH,qBACa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,MAAM,0BAkDX;IACI,UAAU;IAUP,QAAQ,EAAE,eAAe,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAM;IAE7E;;OAEG;IACyB,IAAI,SAAM;IAEtC;;OAEG;IACyB,MAAM,SAAM;IAExC;;OAEG;IACyB,OAAO,SAAM;IAIzC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAI5C,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE9C,iBAAiB;IAIjB,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAcnD,MAAM;CAMP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/ui/icon/icons.ts"],"names":[],"mappings":"AAoFA,MAAM,CAAC,OAAO,MAAM,QAAQ,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,0BAA0B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,CAAC,OAAO;sBACQ,QAAQ;MAyG5B;CACH"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@supersoniks/concorde",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.3",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "https://github.com/supersoniks/concorde.git"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://concorde.supersoniks.org/",
|
|
10
|
-
"bugs": {
|
|
11
|
-
"url": "https://github.com/supersoniks/concorde/issues"
|
|
12
|
-
},
|
|
13
5
|
"type": "module",
|
|
14
6
|
"main": "",
|
|
15
7
|
"scripts": {
|
|
16
8
|
"dev": "node scripts/create-search.js && LIB_NAME=docs vite --host 0.0.0.0 --port 3000",
|
|
17
9
|
"prebuild": "node scripts/pre-build.mjs",
|
|
18
|
-
"build:types": "tsc -p src/tsconfig.declarations.json",
|
|
19
|
-
"build:js": "tsc -p src/tsconfig.emit.json",
|
|
20
10
|
"postbuild": "node scripts/post-build.mjs",
|
|
21
|
-
"build": "tsc --build src/tsconfig.json
|
|
11
|
+
"build": "tsc --build src/tsconfig.json && vite build",
|
|
22
12
|
"build-docs": "LIB_NAME=docs vite build",
|
|
23
13
|
"postbuild-docs": "node scripts/post-build-docs.js",
|
|
24
14
|
"prepublishOnly": "node scripts/pre-publish.mjs",
|
|
@@ -27,6 +17,7 @@
|
|
|
27
17
|
"ai-init": "node scripts/ai-init.mjs"
|
|
28
18
|
},
|
|
29
19
|
"exports": {
|
|
20
|
+
"./bundle": "./concorde-core.bundle.js",
|
|
30
21
|
"./core/components/ui/icon/icons.json": "./src/core/components/ui/icon/icons.json",
|
|
31
22
|
"./core/components/functional/sdui/default-library.json": "./src/core/components/functional/sdui/default-library.json",
|
|
32
23
|
"./dataProviderKey": {
|
package/scripts/pre-build.mjs
CHANGED
|
@@ -137,6 +137,7 @@ const packageJsonPath = path.resolve(__dirname, "../package.json");
|
|
|
137
137
|
let packageJson = JSON.parse(fs.readFileSync(packageJsonPath));
|
|
138
138
|
|
|
139
139
|
const pExports = {
|
|
140
|
+
"./bundle": "./concorde-core.bundle.js",
|
|
140
141
|
"./core/components/ui/icon/icons.json":
|
|
141
142
|
"./src/core/components/ui/icon/icons.json",
|
|
142
143
|
"./core/components/functional/sdui/default-library.json":
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Icons from "@supersoniks/concorde/core/components/ui/icon/icons";
|
|
2
|
+
import { ancestorAttribute } from "@supersoniks/concorde/core/decorators/Subscriber";
|
|
2
3
|
import {
|
|
3
4
|
css,
|
|
4
5
|
LitElement,
|
|
@@ -82,6 +83,8 @@ export class Icon extends LitElement {
|
|
|
82
83
|
name: this.name,
|
|
83
84
|
prefix: this.prefix,
|
|
84
85
|
library: this.library,
|
|
86
|
+
customLibraryPath: this.customIconLibraryPath,
|
|
87
|
+
customLibraryDefaultPrefix: this.customIconDefaultPrefix,
|
|
85
88
|
});
|
|
86
89
|
}
|
|
87
90
|
|
|
@@ -102,6 +105,14 @@ export class Icon extends LitElement {
|
|
|
102
105
|
*/
|
|
103
106
|
@property({ type: String }) library = "";
|
|
104
107
|
|
|
108
|
+
@ancestorAttribute("customIconLibraryPath", { dynamic: true })
|
|
109
|
+
@state()
|
|
110
|
+
customIconLibraryPath: string | null = null;
|
|
111
|
+
|
|
112
|
+
@ancestorAttribute("customIconDefaultPrefix", { dynamic: true })
|
|
113
|
+
@state()
|
|
114
|
+
customIconDefaultPrefix: string | null = null;
|
|
115
|
+
|
|
105
116
|
connectedCallback() {
|
|
106
117
|
this.setAttribute("aria-hidden", "true");
|
|
107
118
|
super.connectedCallback();
|
|
@@ -110,7 +121,10 @@ export class Icon extends LitElement {
|
|
|
110
121
|
if (
|
|
111
122
|
changedProperties.has("name") ||
|
|
112
123
|
changedProperties.has("prefix") ||
|
|
113
|
-
changedProperties.has("library")
|
|
124
|
+
changedProperties.has("library") ||
|
|
125
|
+
(this.library === "custom" &&
|
|
126
|
+
(changedProperties.has("customIconLibraryPath") ||
|
|
127
|
+
changedProperties.has("customIconDefaultPrefix")))
|
|
114
128
|
) {
|
|
115
129
|
this.updateIcon();
|
|
116
130
|
}
|
|
@@ -43,22 +43,38 @@ const libraries = {
|
|
|
43
43
|
type Libraries = typeof libraries;
|
|
44
44
|
type LibraryKey = keyof Libraries;
|
|
45
45
|
type Library = Partial<{ url: string; defaultPrefix: string }>;
|
|
46
|
-
let hasEnabledCustomLibrary = false;
|
|
47
|
-
function enableCustomLibrary() {
|
|
48
|
-
if (hasEnabledCustomLibrary) return;
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
?.getAttribute("customIconLibraryPath") || "";
|
|
54
|
-
libraries.custom.defaultPrefix =
|
|
55
|
-
document
|
|
56
|
-
.querySelector("[customIconDefaultPrefix]")
|
|
57
|
-
?.getAttribute("customIconDefaultPrefix") || "";
|
|
47
|
+
function resolveCustomLibraryConfig(params: IconConf): Library {
|
|
48
|
+
let url = params.customLibraryPath;
|
|
49
|
+
let defaultPrefix = params.customLibraryDefaultPrefix;
|
|
58
50
|
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
// Attribut optionnel : peut être défini sur un ancêtre (scope / theme) ou,
|
|
52
|
+
// en secours, n'importe où dans le document (ex. config globale au boot).
|
|
53
|
+
if (url == null) {
|
|
54
|
+
const globalEl = document.querySelector("[customIconLibraryPath]");
|
|
55
|
+
url = globalEl?.getAttribute("customIconLibraryPath") ?? "";
|
|
56
|
+
if (defaultPrefix == null) {
|
|
57
|
+
defaultPrefix =
|
|
58
|
+
globalEl?.getAttribute("customIconDefaultPrefix") ??
|
|
59
|
+
document
|
|
60
|
+
.querySelector("[customIconDefaultPrefix]")
|
|
61
|
+
?.getAttribute("customIconDefaultPrefix") ??
|
|
62
|
+
"";
|
|
63
|
+
}
|
|
61
64
|
}
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
url: url || "",
|
|
68
|
+
defaultPrefix: defaultPrefix || "",
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function resolveLibraryItem(library: string, params: IconConf): Library | null {
|
|
73
|
+
if (!(library in libraries)) return null;
|
|
74
|
+
if (library !== "custom") {
|
|
75
|
+
return libraries[library as LibraryKey] as Library;
|
|
76
|
+
}
|
|
77
|
+
return resolveCustomLibraryConfig(params);
|
|
62
78
|
}
|
|
63
79
|
const iconCachStr = sessionStorage.getItem("sonicIconsCache");
|
|
64
80
|
const iconCache = iconCachStr
|
|
@@ -70,6 +86,8 @@ export declare type IconConf = {
|
|
|
70
86
|
name: string;
|
|
71
87
|
prefix?: string;
|
|
72
88
|
library?: string;
|
|
89
|
+
customLibraryPath?: string | null;
|
|
90
|
+
customLibraryDefaultPrefix?: string | null;
|
|
73
91
|
};
|
|
74
92
|
export default class Icons {
|
|
75
93
|
static default = {
|
|
@@ -81,15 +99,23 @@ export default class Icons {
|
|
|
81
99
|
/**
|
|
82
100
|
* SVGS en ligne
|
|
83
101
|
*/
|
|
84
|
-
if (library
|
|
85
|
-
|
|
102
|
+
if (!library) {
|
|
103
|
+
return unsafeHTML(iconsAsRecord["core"][params.name] || "");
|
|
86
104
|
}
|
|
87
|
-
|
|
88
|
-
|
|
105
|
+
const libraryItem = resolveLibraryItem(library, params);
|
|
106
|
+
if (libraryItem) {
|
|
107
|
+
// Pas d'URL encore (ancêtre ou config globale pas prête) : on attend
|
|
108
|
+
// sans fetch ni cache ; @ancestorAttribute relancera le chargement.
|
|
109
|
+
if (library === "custom" && !libraryItem.url) {
|
|
110
|
+
return "";
|
|
111
|
+
}
|
|
89
112
|
const prefix: string = params.prefix || libraryItem.defaultPrefix || "";
|
|
90
113
|
const libIcons = iconsAsRecord[library] || ({} as Library);
|
|
91
114
|
iconsAsRecord[library] = libIcons;
|
|
92
|
-
const libIconsKey =
|
|
115
|
+
const libIconsKey =
|
|
116
|
+
library === "custom"
|
|
117
|
+
? `${libraryItem.url}|${prefix}-${name}`
|
|
118
|
+
: `${prefix}-${name}`;
|
|
93
119
|
|
|
94
120
|
/**
|
|
95
121
|
* Si l'icone a déjà été chargée on ne la recharge pas
|