@starterlib/ui 0.9.0 → 0.10.0

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 (38) hide show
  1. package/README.md +44 -32
  2. package/assets/icones/catalogue.json +1 -1
  3. package/fesm2022/starterlib-ui-donnees.mjs +200 -3
  4. package/fesm2022/starterlib-ui-donnees.mjs.map +1 -1
  5. package/fesm2022/starterlib-ui-etats.mjs +1158 -0
  6. package/fesm2022/starterlib-ui-etats.mjs.map +1 -0
  7. package/fesm2022/starterlib-ui-formulaires.mjs +3 -2
  8. package/fesm2022/starterlib-ui-formulaires.mjs.map +1 -1
  9. package/fesm2022/starterlib-ui-indicateurs.mjs +1013 -0
  10. package/fesm2022/starterlib-ui-indicateurs.mjs.map +1 -0
  11. package/fesm2022/starterlib-ui-libelles-en.mjs.map +1 -1
  12. package/fesm2022/starterlib-ui-listes.mjs +5 -2
  13. package/fesm2022/starterlib-ui-listes.mjs.map +1 -1
  14. package/fesm2022/starterlib-ui-messagerie.mjs +2 -2
  15. package/fesm2022/starterlib-ui-messagerie.mjs.map +1 -1
  16. package/fesm2022/starterlib-ui-mise-en-page.mjs +892 -0
  17. package/fesm2022/starterlib-ui-mise-en-page.mjs.map +1 -0
  18. package/fesm2022/starterlib-ui-onglets.mjs.map +1 -1
  19. package/fesm2022/starterlib-ui-parcours.mjs +222 -4
  20. package/fesm2022/starterlib-ui-parcours.mjs.map +1 -1
  21. package/fesm2022/starterlib-ui-saisie.mjs +131 -3
  22. package/fesm2022/starterlib-ui-saisie.mjs.map +1 -1
  23. package/fesm2022/starterlib-ui-surfaces.mjs +2 -1
  24. package/fesm2022/starterlib-ui-surfaces.mjs.map +1 -1
  25. package/fesm2022/starterlib-ui.mjs +3510 -7105
  26. package/fesm2022/starterlib-ui.mjs.map +1 -1
  27. package/package.json +15 -3
  28. package/types/starterlib-ui-donnees.d.ts +95 -1
  29. package/types/starterlib-ui-etats.d.ts +486 -0
  30. package/types/starterlib-ui-formulaires.d.ts +1 -1
  31. package/types/starterlib-ui-indicateurs.d.ts +463 -0
  32. package/types/starterlib-ui-listes.d.ts +2 -1
  33. package/types/starterlib-ui-mise-en-page.d.ts +355 -0
  34. package/types/starterlib-ui-onglets.d.ts +6 -0
  35. package/types/starterlib-ui-parcours.d.ts +123 -3
  36. package/types/starterlib-ui-saisie.d.ts +72 -2
  37. package/types/starterlib-ui-selection.d.ts +3 -2
  38. package/types/starterlib-ui.d.ts +52 -1605
@@ -0,0 +1,892 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, afterEveryRender, afterNextRender, booleanAttribute, contentChildren, effect, inject, input, isDevMode, signal, viewChild } from "@angular/core";
3
+ import { ST_LIBELLES, StButton, StIcon, StIconButton, StIdentifiants, StLink, partagerLaValeur } from "@starterlib/ui";
4
+ import { DOCUMENT, NgTemplateOutlet } from "@angular/common";
5
+ var StSection = class StSection {
6
+ etiquette = input(null, ...ngDevMode ? [{ debugName: "etiquette" }] : /* istanbul ignore next */ []);
7
+ titreDe = input(null, ...ngDevMode ? [{ debugName: "titreDe" }] : /* istanbul ignore next */ []);
8
+ espacement = input("md", ...ngDevMode ? [{ debugName: "espacement" }] : /* istanbul ignore next */ []);
9
+ surtitre = input(null, ...ngDevMode ? [{ debugName: "surtitre" }] : /* istanbul ignore next */ []);
10
+ description = input(null, ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
11
+ element = inject(ElementRef).nativeElement;
12
+ nommeePar = partagerLaValeur(this.element, "aria-labelledby", () => this.titreDe());
13
+ nom = partagerLaValeur(this.element, "aria-label", () => this.titreDe() === null ? this.etiquette() : null);
14
+ constructor() {
15
+ const destruction = inject(DestroyRef);
16
+ destruction.onDestroy(this.nommeePar.liberer);
17
+ destruction.onDestroy(this.nom.liberer);
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({
20
+ minVersion: "12.0.0",
21
+ version: "22.2.0",
22
+ ngImport: i0,
23
+ type: StSection,
24
+ deps: [],
25
+ target: i0.ɵɵFactoryTarget.Component
26
+ });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({
28
+ minVersion: "17.0.0",
29
+ version: "22.2.0",
30
+ type: StSection,
31
+ isStandalone: true,
32
+ selector: "section[stSection]",
33
+ inputs: {
34
+ etiquette: {
35
+ classPropertyName: "etiquette",
36
+ publicName: "etiquette",
37
+ isSignal: true,
38
+ isRequired: false,
39
+ transformFunction: null
40
+ },
41
+ titreDe: {
42
+ classPropertyName: "titreDe",
43
+ publicName: "titreDe",
44
+ isSignal: true,
45
+ isRequired: false,
46
+ transformFunction: null
47
+ },
48
+ espacement: {
49
+ classPropertyName: "espacement",
50
+ publicName: "espacement",
51
+ isSignal: true,
52
+ isRequired: false,
53
+ transformFunction: null
54
+ },
55
+ surtitre: {
56
+ classPropertyName: "surtitre",
57
+ publicName: "surtitre",
58
+ isSignal: true,
59
+ isRequired: false,
60
+ transformFunction: null
61
+ },
62
+ description: {
63
+ classPropertyName: "description",
64
+ publicName: "description",
65
+ isSignal: true,
66
+ isRequired: false,
67
+ transformFunction: null
68
+ }
69
+ },
70
+ host: {
71
+ properties: { "attr.data-espacement": "espacement()" },
72
+ classAttribute: "st-section"
73
+ },
74
+ ngImport: i0,
75
+ template: "<div class=\"st-section__entete\">\n <div class=\"st-section__titraille\">\n @if (surtitre(); as surtitre) {\n <p class=\"st-section__surtitre\">{{ surtitre }}</p>\n }\n <ng-content select=\"[titre]\" />\n @if (description(); as description) {\n <p class=\"st-section__description\">{{ description }}</p>\n }\n </div>\n <div class=\"st-section__fin\"><ng-content select=\"[fin]\" /></div>\n</div>\n<ng-content />\n",
76
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:block}:host([data-espacement=aucun]){margin-block-end:0}:host([data-espacement=sm]){margin-block-end:var(--st-espacement-4)}:host([data-espacement=md]){margin-block-end:var(--st-espacement-6)}:host([data-espacement=lg]){margin-block-end:var(--st-espacement-8)}.st-section__entete{display:flex;align-items:center;justify-content:space-between;margin-block-end:var(--st-espacement-4)}.st-section__entete:not(:has(>:not(:empty))){display:none}.st-section__titraille{display:flex;flex-direction:column;min-inline-size:0}.st-section__titraille:empty,.st-section__fin:empty{display:none}.st-section__surtitre{margin:0;font-size:var(--st-taille-2xs);line-height:var(--st-interligne-2xs);font-weight:var(--st-graisse-semi);letter-spacing:var(--st-interlettrage-surtitre);text-transform:uppercase;color:var(--st-couleur-texte-attenue)}.st-section__description{margin:0;font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal);color:var(--st-couleur-texte-discret)}.st-section__fin{display:flex;flex-wrap:wrap;align-items:center;gap:var(--st-espacement-2)}\n"],
77
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
78
+ });
79
+ };
80
+ i0.ɵɵngDeclareClassMetadata({
81
+ minVersion: "12.0.0",
82
+ version: "22.2.0",
83
+ ngImport: i0,
84
+ type: StSection,
85
+ decorators: [{
86
+ type: Component,
87
+ args: [{
88
+ selector: "section[stSection]",
89
+ changeDetection: ChangeDetectionStrategy.OnPush,
90
+ host: {
91
+ class: "st-section",
92
+ "[attr.data-espacement]": "espacement()"
93
+ },
94
+ template: "<div class=\"st-section__entete\">\n <div class=\"st-section__titraille\">\n @if (surtitre(); as surtitre) {\n <p class=\"st-section__surtitre\">{{ surtitre }}</p>\n }\n <ng-content select=\"[titre]\" />\n @if (description(); as description) {\n <p class=\"st-section__description\">{{ description }}</p>\n }\n </div>\n <div class=\"st-section__fin\"><ng-content select=\"[fin]\" /></div>\n</div>\n<ng-content />\n",
95
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:block}:host([data-espacement=aucun]){margin-block-end:0}:host([data-espacement=sm]){margin-block-end:var(--st-espacement-4)}:host([data-espacement=md]){margin-block-end:var(--st-espacement-6)}:host([data-espacement=lg]){margin-block-end:var(--st-espacement-8)}.st-section__entete{display:flex;align-items:center;justify-content:space-between;margin-block-end:var(--st-espacement-4)}.st-section__entete:not(:has(>:not(:empty))){display:none}.st-section__titraille{display:flex;flex-direction:column;min-inline-size:0}.st-section__titraille:empty,.st-section__fin:empty{display:none}.st-section__surtitre{margin:0;font-size:var(--st-taille-2xs);line-height:var(--st-interligne-2xs);font-weight:var(--st-graisse-semi);letter-spacing:var(--st-interlettrage-surtitre);text-transform:uppercase;color:var(--st-couleur-texte-attenue)}.st-section__description{margin:0;font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal);color:var(--st-couleur-texte-discret)}.st-section__fin{display:flex;flex-wrap:wrap;align-items:center;gap:var(--st-espacement-2)}\n"]
96
+ }]
97
+ }],
98
+ ctorParameters: () => [],
99
+ propDecorators: {
100
+ etiquette: [{
101
+ type: i0.Input,
102
+ args: [{
103
+ isSignal: true,
104
+ alias: "etiquette",
105
+ required: false
106
+ }]
107
+ }],
108
+ titreDe: [{
109
+ type: i0.Input,
110
+ args: [{
111
+ isSignal: true,
112
+ alias: "titreDe",
113
+ required: false
114
+ }]
115
+ }],
116
+ espacement: [{
117
+ type: i0.Input,
118
+ args: [{
119
+ isSignal: true,
120
+ alias: "espacement",
121
+ required: false
122
+ }]
123
+ }],
124
+ surtitre: [{
125
+ type: i0.Input,
126
+ args: [{
127
+ isSignal: true,
128
+ alias: "surtitre",
129
+ required: false
130
+ }]
131
+ }],
132
+ description: [{
133
+ type: i0.Input,
134
+ args: [{
135
+ isSignal: true,
136
+ alias: "description",
137
+ required: false
138
+ }]
139
+ }]
140
+ }
141
+ });
142
+ var StDivider = class StDivider {
143
+ orientation = input("horizontale", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
144
+ variante = input("filet", ...ngDevMode ? [{ debugName: "variante" }] : /* istanbul ignore next */ []);
145
+ porteurDeSens = input(false, {
146
+ ...ngDevMode ? { debugName: "porteurDeSens" } : /* istanbul ignore next */ {},
147
+ transform: booleanAttribute
148
+ });
149
+ avecTexte = signal(false, ...ngDevMode ? [{ debugName: "avecTexte" }] : /* istanbul ignore next */ []);
150
+ constructor() {
151
+ const hote = inject(ElementRef).nativeElement;
152
+ afterEveryRender({ read: () => {
153
+ const texte = hote.textContent.trim() !== "";
154
+ if (texte !== this.avecTexte()) this.avecTexte.set(texte);
155
+ } });
156
+ }
157
+ static ɵfac = i0.ɵɵngDeclareFactory({
158
+ minVersion: "12.0.0",
159
+ version: "22.2.0",
160
+ ngImport: i0,
161
+ type: StDivider,
162
+ deps: [],
163
+ target: i0.ɵɵFactoryTarget.Component
164
+ });
165
+ static ɵcmp = i0.ɵɵngDeclareComponent({
166
+ minVersion: "17.1.0",
167
+ version: "22.2.0",
168
+ type: StDivider,
169
+ isStandalone: true,
170
+ selector: "st-divider",
171
+ inputs: {
172
+ orientation: {
173
+ classPropertyName: "orientation",
174
+ publicName: "orientation",
175
+ isSignal: true,
176
+ isRequired: false,
177
+ transformFunction: null
178
+ },
179
+ variante: {
180
+ classPropertyName: "variante",
181
+ publicName: "variante",
182
+ isSignal: true,
183
+ isRequired: false,
184
+ transformFunction: null
185
+ },
186
+ porteurDeSens: {
187
+ classPropertyName: "porteurDeSens",
188
+ publicName: "porteurDeSens",
189
+ isSignal: true,
190
+ isRequired: false,
191
+ transformFunction: null
192
+ }
193
+ },
194
+ host: {
195
+ properties: {
196
+ "attr.role": "porteurDeSens() && !avecTexte() ? \"separator\" : null",
197
+ "attr.aria-hidden": "porteurDeSens() || avecTexte() ? null : \"true\"",
198
+ "attr.aria-orientation": "porteurDeSens() && !avecTexte() && orientation() === \"verticale\" ? \"vertical\" : null",
199
+ "attr.data-orientation": "orientation()",
200
+ "attr.data-variante": "variante()",
201
+ "attr.data-avec-texte": "avecTexte() ? \"\" : null",
202
+ "attr.data-porteur": "porteurDeSens() ? \"\" : null"
203
+ },
204
+ classAttribute: "st-divider"
205
+ },
206
+ ngImport: i0,
207
+ template: "<!-- Le texte d'un separateur a texte (lot 214) ; sans texte, rien : l'hote est le trait. -->\n<ng-content />\n",
208
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:block;flex:none;background:var(--st-couleur-bordure);border:0}:host([data-orientation=horizontale]){inline-size:100%;block-size:var(--st-epaisseur-capillaire);margin-block:var(--st-separateur-marge, var(--st-espacement-4))}:host([data-orientation=verticale]){inline-size:var(--st-epaisseur-capillaire);align-self:stretch;margin-inline:var(--st-separateur-marge, var(--st-espacement-4))}:host([data-variante=tonale]){background:var(--st-couleur-surface-conteneur-haut)}:host([role=separator]){background:var(--st-couleur-bordure-forte)}:host([data-avec-texte][data-orientation=horizontale]){font-size:var(--st-taille-xs);line-height:var(--st-interligne-xs);font-weight:var(--st-graisse-moyenne);letter-spacing:var(--st-interlettrage-large);display:flex;gap:var(--st-espacement-3);align-items:center;block-size:auto;color:var(--st-couleur-texte-attenue);background:none}:host([data-avec-texte][data-orientation=horizontale]):before,:host([data-avec-texte][data-orientation=horizontale]):after{flex:1 1 0;block-size:var(--st-epaisseur-capillaire);content:\"\";background:var(--st-couleur-bordure)}:host([data-avec-texte][data-variante=tonale]):before,:host([data-avec-texte][data-variante=tonale]):after{background:var(--st-couleur-surface-conteneur-haut)}:host([data-avec-texte][data-porteur]):before,:host([data-avec-texte][data-porteur]):after{background:var(--st-couleur-bordure-forte)}@media(forced-colors:active){:host,:host([data-variante]),:host([role=separator]){background:CanvasText}:host([data-avec-texte][data-orientation=horizontale]){background:none}:host([data-avec-texte]):before,:host([data-avec-texte]):after{background:CanvasText}}@media print{:host,:host([data-variante]),:host([role=separator]){background:none;border:0 solid var(--st-couleur-texte)}:host([data-orientation=horizontale]){block-size:0;border-block-start-width:var(--st-epaisseur-fine)}:host([data-orientation=verticale]){inline-size:0;border-inline-start-width:var(--st-epaisseur-fine)}:host([data-avec-texte][data-orientation=horizontale]){block-size:auto;border-block-start-width:0}:host([data-avec-texte]):before,:host([data-avec-texte]):after{block-size:0;background:none;border-block-start:var(--st-epaisseur-fine) solid var(--st-couleur-texte)}}\n"],
209
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
210
+ });
211
+ };
212
+ i0.ɵɵngDeclareClassMetadata({
213
+ minVersion: "12.0.0",
214
+ version: "22.2.0",
215
+ ngImport: i0,
216
+ type: StDivider,
217
+ decorators: [{
218
+ type: Component,
219
+ args: [{
220
+ selector: "st-divider",
221
+ changeDetection: ChangeDetectionStrategy.OnPush,
222
+ host: {
223
+ class: "st-divider",
224
+ "[attr.role]": "porteurDeSens() && !avecTexte() ? \"separator\" : null",
225
+ "[attr.aria-hidden]": "porteurDeSens() || avecTexte() ? null : \"true\"",
226
+ "[attr.aria-orientation]": "porteurDeSens() && !avecTexte() && orientation() === \"verticale\" ? \"vertical\" : null",
227
+ "[attr.data-orientation]": "orientation()",
228
+ "[attr.data-variante]": "variante()",
229
+ "[attr.data-avec-texte]": "avecTexte() ? \"\" : null",
230
+ "[attr.data-porteur]": "porteurDeSens() ? \"\" : null"
231
+ },
232
+ template: "<!-- Le texte d'un separateur a texte (lot 214) ; sans texte, rien : l'hote est le trait. -->\n<ng-content />\n",
233
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:block;flex:none;background:var(--st-couleur-bordure);border:0}:host([data-orientation=horizontale]){inline-size:100%;block-size:var(--st-epaisseur-capillaire);margin-block:var(--st-separateur-marge, var(--st-espacement-4))}:host([data-orientation=verticale]){inline-size:var(--st-epaisseur-capillaire);align-self:stretch;margin-inline:var(--st-separateur-marge, var(--st-espacement-4))}:host([data-variante=tonale]){background:var(--st-couleur-surface-conteneur-haut)}:host([role=separator]){background:var(--st-couleur-bordure-forte)}:host([data-avec-texte][data-orientation=horizontale]){font-size:var(--st-taille-xs);line-height:var(--st-interligne-xs);font-weight:var(--st-graisse-moyenne);letter-spacing:var(--st-interlettrage-large);display:flex;gap:var(--st-espacement-3);align-items:center;block-size:auto;color:var(--st-couleur-texte-attenue);background:none}:host([data-avec-texte][data-orientation=horizontale]):before,:host([data-avec-texte][data-orientation=horizontale]):after{flex:1 1 0;block-size:var(--st-epaisseur-capillaire);content:\"\";background:var(--st-couleur-bordure)}:host([data-avec-texte][data-variante=tonale]):before,:host([data-avec-texte][data-variante=tonale]):after{background:var(--st-couleur-surface-conteneur-haut)}:host([data-avec-texte][data-porteur]):before,:host([data-avec-texte][data-porteur]):after{background:var(--st-couleur-bordure-forte)}@media(forced-colors:active){:host,:host([data-variante]),:host([role=separator]){background:CanvasText}:host([data-avec-texte][data-orientation=horizontale]){background:none}:host([data-avec-texte]):before,:host([data-avec-texte]):after{background:CanvasText}}@media print{:host,:host([data-variante]),:host([role=separator]){background:none;border:0 solid var(--st-couleur-texte)}:host([data-orientation=horizontale]){block-size:0;border-block-start-width:var(--st-epaisseur-fine)}:host([data-orientation=verticale]){inline-size:0;border-inline-start-width:var(--st-epaisseur-fine)}:host([data-avec-texte][data-orientation=horizontale]){block-size:auto;border-block-start-width:0}:host([data-avec-texte]):before,:host([data-avec-texte]):after{block-size:0;background:none;border-block-start:var(--st-epaisseur-fine) solid var(--st-couleur-texte)}}\n"]
234
+ }]
235
+ }],
236
+ ctorParameters: () => [],
237
+ propDecorators: {
238
+ orientation: [{
239
+ type: i0.Input,
240
+ args: [{
241
+ isSignal: true,
242
+ alias: "orientation",
243
+ required: false
244
+ }]
245
+ }],
246
+ variante: [{
247
+ type: i0.Input,
248
+ args: [{
249
+ isSignal: true,
250
+ alias: "variante",
251
+ required: false
252
+ }]
253
+ }],
254
+ porteurDeSens: [{
255
+ type: i0.Input,
256
+ args: [{
257
+ isSignal: true,
258
+ alias: "porteurDeSens",
259
+ required: false
260
+ }]
261
+ }]
262
+ }
263
+ });
264
+ var StText = class StText {
265
+ variante = input("corps", ...ngDevMode ? [{ debugName: "variante" }] : /* istanbul ignore next */ []);
266
+ graisse = input("normale", ...ngDevMode ? [{ debugName: "graisse" }] : /* istanbul ignore next */ []);
267
+ enLigne = input(false, {
268
+ ...ngDevMode ? { debugName: "enLigne" } : /* istanbul ignore next */ {},
269
+ transform: booleanAttribute
270
+ });
271
+ tronquerA = input(null, ...ngDevMode ? [{ debugName: "tronquerA" }] : /* istanbul ignore next */ []);
272
+ revelable = input(false, {
273
+ ...ngDevMode ? { debugName: "revelable" } : /* istanbul ignore next */ {},
274
+ transform: booleanAttribute
275
+ });
276
+ libelles = inject(ST_LIBELLES);
277
+ identifiantDuContenu = inject(StIdentifiants).prochain("st-texte");
278
+ ouvert = signal(false, ...ngDevMode ? [{ debugName: "ouvert" }] : /* istanbul ignore next */ []);
279
+ deborde = signal(false, ...ngDevMode ? [{ debugName: "deborde" }] : /* istanbul ignore next */ []);
280
+ zone = viewChild("zone", ...ngDevMode ? [{ debugName: "zone" }] : /* istanbul ignore next */ []);
281
+ constructor() {
282
+ const document = inject(DOCUMENT);
283
+ effect((nettoyer) => {
284
+ const zone = this.zone()?.nativeElement;
285
+ const Observateur = document.defaultView?.ResizeObserver;
286
+ if (zone === void 0 || Observateur === void 0) return;
287
+ const observateur = new Observateur(() => {
288
+ if (this.ouvert()) return;
289
+ this.deborde.set(zone.scrollHeight > zone.clientHeight + 1);
290
+ });
291
+ observateur.observe(zone);
292
+ nettoyer(() => {
293
+ observateur.disconnect();
294
+ });
295
+ });
296
+ if (isDevMode()) afterNextRender(() => {
297
+ if (this.enLigne() && this.tronquerA() !== null) console.error("[st-text] enLigne et tronquerA sont incompatibles : une coupe en lignes exige un bloc. La coupe est ignoree.");
298
+ });
299
+ }
300
+ basculer() {
301
+ this.ouvert.update((ouvert) => !ouvert);
302
+ }
303
+ static ɵfac = i0.ɵɵngDeclareFactory({
304
+ minVersion: "12.0.0",
305
+ version: "22.2.0",
306
+ ngImport: i0,
307
+ type: StText,
308
+ deps: [],
309
+ target: i0.ɵɵFactoryTarget.Component
310
+ });
311
+ static ɵcmp = i0.ɵɵngDeclareComponent({
312
+ minVersion: "17.0.0",
313
+ version: "22.2.0",
314
+ type: StText,
315
+ isStandalone: true,
316
+ selector: "st-text",
317
+ inputs: {
318
+ variante: {
319
+ classPropertyName: "variante",
320
+ publicName: "variante",
321
+ isSignal: true,
322
+ isRequired: false,
323
+ transformFunction: null
324
+ },
325
+ graisse: {
326
+ classPropertyName: "graisse",
327
+ publicName: "graisse",
328
+ isSignal: true,
329
+ isRequired: false,
330
+ transformFunction: null
331
+ },
332
+ enLigne: {
333
+ classPropertyName: "enLigne",
334
+ publicName: "enLigne",
335
+ isSignal: true,
336
+ isRequired: false,
337
+ transformFunction: null
338
+ },
339
+ tronquerA: {
340
+ classPropertyName: "tronquerA",
341
+ publicName: "tronquerA",
342
+ isSignal: true,
343
+ isRequired: false,
344
+ transformFunction: null
345
+ },
346
+ revelable: {
347
+ classPropertyName: "revelable",
348
+ publicName: "revelable",
349
+ isSignal: true,
350
+ isRequired: false,
351
+ transformFunction: null
352
+ }
353
+ },
354
+ host: {
355
+ properties: {
356
+ "attr.data-variante": "variante()",
357
+ "attr.data-graisse": "graisse()",
358
+ "attr.data-en-ligne": "enLigne() ? \"\" : null",
359
+ "attr.data-tronque": "tronquerA() === null ? null : \"\"",
360
+ "attr.data-revelable": "revelable() && tronquerA() !== null ? \"\" : null",
361
+ "style.--st-text-lignes": "tronquerA()"
362
+ },
363
+ classAttribute: "st-text"
364
+ },
365
+ viewQueries: [{
366
+ propertyName: "zone",
367
+ first: true,
368
+ predicate: ["zone"],
369
+ descendants: true,
370
+ isSignal: true
371
+ }],
372
+ ngImport: i0,
373
+ template: "<ng-template #contenu><ng-content /></ng-template>\n@if (revelable() && tronquerA() !== null) {\n <div\n #zone\n class=\"st-text__zone\"\n [id]=\"identifiantDuContenu\"\n [attr.data-ouvert]=\"ouvert() ? '' : null\"\n >\n <ng-container [ngTemplateOutlet]=\"contenu\" />\n </div>\n @if (deborde() || ouvert()) {\n <button\n stButton\n type=\"button\"\n class=\"st-text__revelation\"\n variante=\"discret\"\n taille=\"sm\"\n [attr.aria-expanded]=\"ouvert()\"\n [attr.aria-controls]=\"identifiantDuContenu\"\n (click)=\"basculer()\"\n >\n {{ ouvert() ? libelles().reduire : libelles().afficherLaSuite }}\n </button>\n }\n} @else {\n <ng-container [ngTemplateOutlet]=\"contenu\" />\n}\n",
374
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:block;margin:0;font-family:var(--st-police-base);font-size:var(--st-taille-md);line-height:var(--st-interligne-md);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal);color:var(--st-couleur-texte);max-inline-size:var(--st-largeur-normale)}:host([data-en-ligne]){display:inline;max-inline-size:none}:host([data-variante=corps-sm]){font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal)}:host([data-variante=discret]){color:var(--st-couleur-texte-discret)}:host([data-variante=legende]){font-size:var(--st-taille-xs);line-height:var(--st-interligne-xs);font-weight:var(--st-graisse-moyenne);letter-spacing:var(--st-interlettrage-large);color:var(--st-couleur-texte-attenue)}:host([data-variante=meta]){font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal);color:var(--st-couleur-texte-attenue);font-variant-numeric:var(--st-chiffres-alignes)}:host([data-variante=mono]){font-family:var(--st-police-mono);font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-large);font-variant-numeric:var(--st-chiffres-references);unicode-bidi:isolate;overflow-wrap:anywhere}:host([data-graisse=moyenne]){font-weight:var(--st-graisse-moyenne)}:host([data-graisse=semi]){font-weight:var(--st-graisse-semi)}:host([data-tronque]:not([data-en-ligne],[data-revelable])){display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--st-text-lignes, 2);line-clamp:var(--st-text-lignes, 2)}:host([data-revelable]) .st-text__zone:not([data-ouvert]){display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--st-text-lignes, 2);line-clamp:var(--st-text-lignes, 2)}.st-text__revelation{margin-block-start:var(--st-espacement-1)}@media print{:host([data-tronque]),:host([data-revelable]) .st-text__zone{display:block;overflow:visible;-webkit-line-clamp:none;line-clamp:none}.st-text__revelation{display:none}}\n"],
375
+ dependencies: [{
376
+ kind: "directive",
377
+ type: NgTemplateOutlet,
378
+ selector: "[ngTemplateOutlet]",
379
+ inputs: [
380
+ "ngTemplateOutletContext",
381
+ "ngTemplateOutlet",
382
+ "ngTemplateOutletInjector"
383
+ ]
384
+ }, {
385
+ kind: "component",
386
+ type: StButton,
387
+ selector: "button[stButton]",
388
+ inputs: [
389
+ "variante",
390
+ "taille",
391
+ "pleineLargeur",
392
+ "iconeAvant",
393
+ "iconeApres",
394
+ "chargement",
395
+ "indisponible",
396
+ "raisonIndisponible"
397
+ ]
398
+ }],
399
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
400
+ });
401
+ };
402
+ i0.ɵɵngDeclareClassMetadata({
403
+ minVersion: "12.0.0",
404
+ version: "22.2.0",
405
+ ngImport: i0,
406
+ type: StText,
407
+ decorators: [{
408
+ type: Component,
409
+ args: [{
410
+ selector: "st-text",
411
+ changeDetection: ChangeDetectionStrategy.OnPush,
412
+ imports: [NgTemplateOutlet, StButton],
413
+ host: {
414
+ class: "st-text",
415
+ "[attr.data-variante]": "variante()",
416
+ "[attr.data-graisse]": "graisse()",
417
+ "[attr.data-en-ligne]": "enLigne() ? \"\" : null",
418
+ "[attr.data-tronque]": "tronquerA() === null ? null : \"\"",
419
+ "[attr.data-revelable]": "revelable() && tronquerA() !== null ? \"\" : null",
420
+ "[style.--st-text-lignes]": "tronquerA()"
421
+ },
422
+ template: "<ng-template #contenu><ng-content /></ng-template>\n@if (revelable() && tronquerA() !== null) {\n <div\n #zone\n class=\"st-text__zone\"\n [id]=\"identifiantDuContenu\"\n [attr.data-ouvert]=\"ouvert() ? '' : null\"\n >\n <ng-container [ngTemplateOutlet]=\"contenu\" />\n </div>\n @if (deborde() || ouvert()) {\n <button\n stButton\n type=\"button\"\n class=\"st-text__revelation\"\n variante=\"discret\"\n taille=\"sm\"\n [attr.aria-expanded]=\"ouvert()\"\n [attr.aria-controls]=\"identifiantDuContenu\"\n (click)=\"basculer()\"\n >\n {{ ouvert() ? libelles().reduire : libelles().afficherLaSuite }}\n </button>\n }\n} @else {\n <ng-container [ngTemplateOutlet]=\"contenu\" />\n}\n",
423
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:block;margin:0;font-family:var(--st-police-base);font-size:var(--st-taille-md);line-height:var(--st-interligne-md);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal);color:var(--st-couleur-texte);max-inline-size:var(--st-largeur-normale)}:host([data-en-ligne]){display:inline;max-inline-size:none}:host([data-variante=corps-sm]){font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal)}:host([data-variante=discret]){color:var(--st-couleur-texte-discret)}:host([data-variante=legende]){font-size:var(--st-taille-xs);line-height:var(--st-interligne-xs);font-weight:var(--st-graisse-moyenne);letter-spacing:var(--st-interlettrage-large);color:var(--st-couleur-texte-attenue)}:host([data-variante=meta]){font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-normal);color:var(--st-couleur-texte-attenue);font-variant-numeric:var(--st-chiffres-alignes)}:host([data-variante=mono]){font-family:var(--st-police-mono);font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-normale);letter-spacing:var(--st-interlettrage-large);font-variant-numeric:var(--st-chiffres-references);unicode-bidi:isolate;overflow-wrap:anywhere}:host([data-graisse=moyenne]){font-weight:var(--st-graisse-moyenne)}:host([data-graisse=semi]){font-weight:var(--st-graisse-semi)}:host([data-tronque]:not([data-en-ligne],[data-revelable])){display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--st-text-lignes, 2);line-clamp:var(--st-text-lignes, 2)}:host([data-revelable]) .st-text__zone:not([data-ouvert]){display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--st-text-lignes, 2);line-clamp:var(--st-text-lignes, 2)}.st-text__revelation{margin-block-start:var(--st-espacement-1)}@media print{:host([data-tronque]),:host([data-revelable]) .st-text__zone{display:block;overflow:visible;-webkit-line-clamp:none;line-clamp:none}.st-text__revelation{display:none}}\n"]
424
+ }]
425
+ }],
426
+ ctorParameters: () => [],
427
+ propDecorators: {
428
+ variante: [{
429
+ type: i0.Input,
430
+ args: [{
431
+ isSignal: true,
432
+ alias: "variante",
433
+ required: false
434
+ }]
435
+ }],
436
+ graisse: [{
437
+ type: i0.Input,
438
+ args: [{
439
+ isSignal: true,
440
+ alias: "graisse",
441
+ required: false
442
+ }]
443
+ }],
444
+ enLigne: [{
445
+ type: i0.Input,
446
+ args: [{
447
+ isSignal: true,
448
+ alias: "enLigne",
449
+ required: false
450
+ }]
451
+ }],
452
+ tronquerA: [{
453
+ type: i0.Input,
454
+ args: [{
455
+ isSignal: true,
456
+ alias: "tronquerA",
457
+ required: false
458
+ }]
459
+ }],
460
+ revelable: [{
461
+ type: i0.Input,
462
+ args: [{
463
+ isSignal: true,
464
+ alias: "revelable",
465
+ required: false
466
+ }]
467
+ }],
468
+ zone: [{
469
+ type: i0.ViewChild,
470
+ args: ["zone", { isSignal: true }]
471
+ }]
472
+ }
473
+ });
474
+ var StSettingsRow = class StSettingsRow {
475
+ libelle = input.required(...ngDevMode ? [{ debugName: "libelle" }] : /* istanbul ignore next */ []);
476
+ description = input(null, ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
477
+ variante = input("ligne", ...ngDevMode ? [{ debugName: "variante" }] : /* istanbul ignore next */ []);
478
+ icone = input(null, ...ngDevMode ? [{ debugName: "icone" }] : /* istanbul ignore next */ []);
479
+ ton = input("primaire", ...ngDevMode ? [{ debugName: "ton" }] : /* istanbul ignore next */ []);
480
+ identifiants = (() => {
481
+ const base = inject(StIdentifiants).prochain("st-reglage");
482
+ return {
483
+ libelle: `${base}-libelle`,
484
+ description: `${base}-description`
485
+ };
486
+ })();
487
+ constructor() {
488
+ if (isDevMode()) {
489
+ const hote = inject(ElementRef).nativeElement;
490
+ afterNextRender(() => {
491
+ avertirDUnControleSansNom(hote, this.libelle());
492
+ });
493
+ }
494
+ }
495
+ static ɵfac = i0.ɵɵngDeclareFactory({
496
+ minVersion: "12.0.0",
497
+ version: "22.2.0",
498
+ ngImport: i0,
499
+ type: StSettingsRow,
500
+ deps: [],
501
+ target: i0.ɵɵFactoryTarget.Component
502
+ });
503
+ static ɵcmp = i0.ɵɵngDeclareComponent({
504
+ minVersion: "17.0.0",
505
+ version: "22.2.0",
506
+ type: StSettingsRow,
507
+ isStandalone: true,
508
+ selector: "st-settings-row",
509
+ inputs: {
510
+ libelle: {
511
+ classPropertyName: "libelle",
512
+ publicName: "libelle",
513
+ isSignal: true,
514
+ isRequired: true,
515
+ transformFunction: null
516
+ },
517
+ description: {
518
+ classPropertyName: "description",
519
+ publicName: "description",
520
+ isSignal: true,
521
+ isRequired: false,
522
+ transformFunction: null
523
+ },
524
+ variante: {
525
+ classPropertyName: "variante",
526
+ publicName: "variante",
527
+ isSignal: true,
528
+ isRequired: false,
529
+ transformFunction: null
530
+ },
531
+ icone: {
532
+ classPropertyName: "icone",
533
+ publicName: "icone",
534
+ isSignal: true,
535
+ isRequired: false,
536
+ transformFunction: null
537
+ },
538
+ ton: {
539
+ classPropertyName: "ton",
540
+ publicName: "ton",
541
+ isSignal: true,
542
+ isRequired: false,
543
+ transformFunction: null
544
+ }
545
+ },
546
+ host: {
547
+ attributes: { "role": "group" },
548
+ properties: {
549
+ "attr.data-variante": "variante()",
550
+ "attr.aria-labelledby": "identifiants.libelle",
551
+ "attr.aria-describedby": "description() === null ? null : identifiants.description"
552
+ },
553
+ classAttribute: "st-settings-row"
554
+ },
555
+ ngImport: i0,
556
+ template: "<div class=\"st-settings-row__tete\">\n @if (icone(); as dessin) {\n <span class=\"st-settings-row__icone\">\n <st-icon [icone]=\"dessin\" taille=\"20\" [ton]=\"ton()\" />\n </span>\n }\n <div class=\"st-settings-row__texte\">\n <div class=\"st-settings-row__intitule\">\n <span class=\"st-settings-row__libelle\" [id]=\"identifiants.libelle\">{{ libelle() }}</span>\n <ng-content select=\"[suffixe]\" />\n </div>\n @if (description(); as texte) {\n <p class=\"st-settings-row__description\" [id]=\"identifiants.description\">{{ texte }}</p>\n }\n </div>\n</div>\n<div class=\"st-settings-row__controle\">\n <ng-content />\n</div>\n",
557
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:flex;flex-wrap:wrap;gap:var(--st-espacement-3) var(--st-espacement-6);align-items:center;justify-content:space-between;padding-block:var(--st-espacement-4);border-block-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure)}:host(:last-of-type){border-block-end:0}.st-settings-row__tete{display:flex;flex:1 1 var(--st-largeur-colonne);gap:var(--st-espacement-3);align-items:center;min-inline-size:0}.st-settings-row__texte{display:flex;flex:1 1 auto;flex-direction:column;min-inline-size:0}.st-settings-row__intitule{display:flex;flex-wrap:wrap;gap:var(--st-espacement-2);align-items:center}.st-settings-row__libelle{font-weight:var(--st-graisse-moyenne);color:var(--st-couleur-texte)}.st-settings-row__description{max-inline-size:var(--st-largeur-normale);margin:var(--st-espacement-1) 0 0;font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);color:var(--st-couleur-texte-discret)}.st-settings-row__icone{display:flex;flex:none;align-items:center;justify-content:center;inline-size:var(--st-hauteur-commande-md);block-size:var(--st-hauteur-commande-md);background:var(--st-couleur-surface);border-radius:var(--st-rayon-sm);box-shadow:var(--st-ombre-repos)}.st-settings-row__controle{display:flex;flex:none;align-items:center}:host([data-variante=tuile]){gap:var(--st-espacement-3);padding:var(--st-espacement-4);background:var(--st-couleur-surface-conteneur-bas);border-block-end:0;border-radius:var(--st-rayon-sm)}:host([data-variante=tuile]) .st-settings-row__libelle{font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-semi);letter-spacing:var(--st-interlettrage-normal)}:host([data-variante=tuile]) .st-settings-row__description{margin:0}@media(forced-colors:active){:host([data-variante=tuile]){border:var(--st-epaisseur-fine) solid CanvasText}}\n"],
558
+ dependencies: [{
559
+ kind: "component",
560
+ type: StIcon,
561
+ selector: "st-icon",
562
+ inputs: [
563
+ "icone",
564
+ "nom",
565
+ "variante",
566
+ "sprite",
567
+ "nomMetier",
568
+ "taille",
569
+ "ton",
570
+ "etiquette",
571
+ "miroir"
572
+ ]
573
+ }],
574
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
575
+ });
576
+ };
577
+ i0.ɵɵngDeclareClassMetadata({
578
+ minVersion: "12.0.0",
579
+ version: "22.2.0",
580
+ ngImport: i0,
581
+ type: StSettingsRow,
582
+ decorators: [{
583
+ type: Component,
584
+ args: [{
585
+ selector: "st-settings-row",
586
+ changeDetection: ChangeDetectionStrategy.OnPush,
587
+ imports: [StIcon],
588
+ host: {
589
+ class: "st-settings-row",
590
+ role: "group",
591
+ "[attr.data-variante]": "variante()",
592
+ "[attr.aria-labelledby]": "identifiants.libelle",
593
+ "[attr.aria-describedby]": "description() === null ? null : identifiants.description"
594
+ },
595
+ template: "<div class=\"st-settings-row__tete\">\n @if (icone(); as dessin) {\n <span class=\"st-settings-row__icone\">\n <st-icon [icone]=\"dessin\" taille=\"20\" [ton]=\"ton()\" />\n </span>\n }\n <div class=\"st-settings-row__texte\">\n <div class=\"st-settings-row__intitule\">\n <span class=\"st-settings-row__libelle\" [id]=\"identifiants.libelle\">{{ libelle() }}</span>\n <ng-content select=\"[suffixe]\" />\n </div>\n @if (description(); as texte) {\n <p class=\"st-settings-row__description\" [id]=\"identifiants.description\">{{ texte }}</p>\n }\n </div>\n</div>\n<div class=\"st-settings-row__controle\">\n <ng-content />\n</div>\n",
596
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:flex;flex-wrap:wrap;gap:var(--st-espacement-3) var(--st-espacement-6);align-items:center;justify-content:space-between;padding-block:var(--st-espacement-4);border-block-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure)}:host(:last-of-type){border-block-end:0}.st-settings-row__tete{display:flex;flex:1 1 var(--st-largeur-colonne);gap:var(--st-espacement-3);align-items:center;min-inline-size:0}.st-settings-row__texte{display:flex;flex:1 1 auto;flex-direction:column;min-inline-size:0}.st-settings-row__intitule{display:flex;flex-wrap:wrap;gap:var(--st-espacement-2);align-items:center}.st-settings-row__libelle{font-weight:var(--st-graisse-moyenne);color:var(--st-couleur-texte)}.st-settings-row__description{max-inline-size:var(--st-largeur-normale);margin:var(--st-espacement-1) 0 0;font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);color:var(--st-couleur-texte-discret)}.st-settings-row__icone{display:flex;flex:none;align-items:center;justify-content:center;inline-size:var(--st-hauteur-commande-md);block-size:var(--st-hauteur-commande-md);background:var(--st-couleur-surface);border-radius:var(--st-rayon-sm);box-shadow:var(--st-ombre-repos)}.st-settings-row__controle{display:flex;flex:none;align-items:center}:host([data-variante=tuile]){gap:var(--st-espacement-3);padding:var(--st-espacement-4);background:var(--st-couleur-surface-conteneur-bas);border-block-end:0;border-radius:var(--st-rayon-sm)}:host([data-variante=tuile]) .st-settings-row__libelle{font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-semi);letter-spacing:var(--st-interlettrage-normal)}:host([data-variante=tuile]) .st-settings-row__description{margin:0}@media(forced-colors:active){:host([data-variante=tuile]){border:var(--st-epaisseur-fine) solid CanvasText}}\n"]
597
+ }]
598
+ }],
599
+ ctorParameters: () => [],
600
+ propDecorators: {
601
+ libelle: [{
602
+ type: i0.Input,
603
+ args: [{
604
+ isSignal: true,
605
+ alias: "libelle",
606
+ required: true
607
+ }]
608
+ }],
609
+ description: [{
610
+ type: i0.Input,
611
+ args: [{
612
+ isSignal: true,
613
+ alias: "description",
614
+ required: false
615
+ }]
616
+ }],
617
+ variante: [{
618
+ type: i0.Input,
619
+ args: [{
620
+ isSignal: true,
621
+ alias: "variante",
622
+ required: false
623
+ }]
624
+ }],
625
+ icone: [{
626
+ type: i0.Input,
627
+ args: [{
628
+ isSignal: true,
629
+ alias: "icone",
630
+ required: false
631
+ }]
632
+ }],
633
+ ton: [{
634
+ type: i0.Input,
635
+ args: [{
636
+ isSignal: true,
637
+ alias: "ton",
638
+ required: false
639
+ }]
640
+ }]
641
+ }
642
+ });
643
+ const CONTROLES = "button, input:not([type=\"hidden\"]), select, textarea, a[href], [role=\"switch\"], [role=\"checkbox\"], [role=\"radio\"], [role=\"combobox\"], [role=\"slider\"], [role=\"button\"]";
644
+ function avertirDUnControleSansNom(hote, libelle) {
645
+ const zone = hote.querySelector(".st-settings-row__controle");
646
+ if (zone === null) return;
647
+ for (const controle of Array.from(zone.querySelectorAll(CONTROLES))) if (!aUnNom(controle)) console.warn(`[st-settings-row] "${libelle}" : un controle projete n'a pas de nom accessible (libelle, aria-label ou etiquette associee).`, controle);
648
+ }
649
+ function aUnNom(controle) {
650
+ if ((controle.getAttribute("aria-label") ?? "").trim() !== "") return true;
651
+ const references = (controle.getAttribute("aria-labelledby") ?? "").trim();
652
+ if (references !== "") {
653
+ const document = controle.ownerDocument;
654
+ if (references.split(/\s+/).some((id) => (document.getElementById(id)?.textContent ?? "").trim() !== "")) return true;
655
+ }
656
+ const etiquettes = Reflect.get(controle, "labels");
657
+ if (etiquettes && Array.from(etiquettes).some((e) => e.textContent.trim() !== "")) return true;
658
+ const englobante = controle.closest("label");
659
+ if (englobante !== null && englobante.textContent.trim() !== "") return true;
660
+ return !controle.matches("input, select, textarea") && controle.textContent.trim() !== "";
661
+ }
662
+ const SUIT = 4;
663
+ var StButtonGroup = class StButtonGroup {
664
+ etiquette = input.required(...ngDevMode ? [{ debugName: "etiquette" }] : /* istanbul ignore next */ []);
665
+ orientation = input("horizontale", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
666
+ attache = input(false, {
667
+ ...ngDevMode ? { debugName: "attache" } : /* istanbul ignore next */ {},
668
+ transform: booleanAttribute
669
+ });
670
+ plateau = input(false, {
671
+ ...ngDevMode ? { debugName: "plateau" } : /* istanbul ignore next */ {},
672
+ transform: booleanAttribute
673
+ });
674
+ boutons = contentChildren(StButton, {
675
+ ...ngDevMode ? { debugName: "boutons" } : /* istanbul ignore next */ {},
676
+ read: ElementRef
677
+ });
678
+ boutonsIcone = contentChildren(StIconButton, {
679
+ ...ngDevMode ? { debugName: "boutonsIcone" } : /* istanbul ignore next */ {},
680
+ read: ElementRef
681
+ });
682
+ liens = contentChildren(StLink, {
683
+ ...ngDevMode ? { debugName: "liens" } : /* istanbul ignore next */ {},
684
+ read: ElementRef
685
+ });
686
+ taillesDesBoutons = contentChildren(StButton, ...ngDevMode ? [{ debugName: "taillesDesBoutons" }] : /* istanbul ignore next */ []);
687
+ taillesDesBoutonsIcone = contentChildren(StIconButton, ...ngDevMode ? [{ debugName: "taillesDesBoutonsIcone" }] : /* istanbul ignore next */ []);
688
+ constructor() {
689
+ effect(() => {
690
+ const enfants = [
691
+ ...this.boutons(),
692
+ ...this.boutonsIcone(),
693
+ ...this.liens()
694
+ ].map((reference) => reference.nativeElement).sort((a, b) => a.compareDocumentPosition(b) & SUIT ? -1 : 1);
695
+ const attache = this.attache();
696
+ const axe = this.orientation() === "verticale" ? "vertical" : "horizontal";
697
+ enfants.forEach((enfant, rang) => {
698
+ if (!attache) {
699
+ enfant.removeAttribute("data-groupe-position");
700
+ enfant.removeAttribute("data-groupe-axe");
701
+ return;
702
+ }
703
+ const position = enfants.length === 1 ? "seul" : rang === 0 ? "debut" : rang === enfants.length - 1 ? "fin" : "milieu";
704
+ enfant.setAttribute("data-groupe-position", position);
705
+ enfant.setAttribute("data-groupe-axe", axe);
706
+ });
707
+ if (attache && isDevMode()) {
708
+ const tailles = /* @__PURE__ */ new Set([...this.taillesDesBoutons().map((bouton) => bouton.taille()), ...this.taillesDesBoutonsIcone().map((bouton) => bouton.taille())]);
709
+ if (tailles.size > 1) console.warn(`st-button-group "${this.etiquette()}" : un groupe attache exige des enfants de meme taille (${[...tailles].join(", ")}) ; les coins et les traits ne se rejoignent pas.`);
710
+ }
711
+ });
712
+ }
713
+ static ɵfac = i0.ɵɵngDeclareFactory({
714
+ minVersion: "12.0.0",
715
+ version: "22.2.0",
716
+ ngImport: i0,
717
+ type: StButtonGroup,
718
+ deps: [],
719
+ target: i0.ɵɵFactoryTarget.Component
720
+ });
721
+ static ɵcmp = i0.ɵɵngDeclareComponent({
722
+ minVersion: "17.2.0",
723
+ version: "22.2.0",
724
+ type: StButtonGroup,
725
+ isStandalone: true,
726
+ selector: "st-button-group",
727
+ inputs: {
728
+ etiquette: {
729
+ classPropertyName: "etiquette",
730
+ publicName: "etiquette",
731
+ isSignal: true,
732
+ isRequired: true,
733
+ transformFunction: null
734
+ },
735
+ orientation: {
736
+ classPropertyName: "orientation",
737
+ publicName: "orientation",
738
+ isSignal: true,
739
+ isRequired: false,
740
+ transformFunction: null
741
+ },
742
+ attache: {
743
+ classPropertyName: "attache",
744
+ publicName: "attache",
745
+ isSignal: true,
746
+ isRequired: false,
747
+ transformFunction: null
748
+ },
749
+ plateau: {
750
+ classPropertyName: "plateau",
751
+ publicName: "plateau",
752
+ isSignal: true,
753
+ isRequired: false,
754
+ transformFunction: null
755
+ }
756
+ },
757
+ host: {
758
+ attributes: { "role": "group" },
759
+ properties: {
760
+ "attr.aria-label": "etiquette()",
761
+ "attr.data-orientation": "orientation()",
762
+ "attr.data-attache": "attache() ? \"\" : null",
763
+ "attr.data-plateau": "plateau() ? \"\" : null"
764
+ },
765
+ classAttribute: "st-button-group"
766
+ },
767
+ queries: [
768
+ {
769
+ propertyName: "boutons",
770
+ predicate: StButton,
771
+ read: ElementRef,
772
+ isSignal: true
773
+ },
774
+ {
775
+ propertyName: "boutonsIcone",
776
+ predicate: StIconButton,
777
+ read: ElementRef,
778
+ isSignal: true
779
+ },
780
+ {
781
+ propertyName: "liens",
782
+ predicate: StLink,
783
+ read: ElementRef,
784
+ isSignal: true
785
+ },
786
+ {
787
+ propertyName: "taillesDesBoutons",
788
+ predicate: StButton,
789
+ isSignal: true
790
+ },
791
+ {
792
+ propertyName: "taillesDesBoutonsIcone",
793
+ predicate: StIconButton,
794
+ isSignal: true
795
+ }
796
+ ],
797
+ ngImport: i0,
798
+ template: "<ng-content />\n",
799
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:flex;flex-wrap:wrap;gap:var(--st-espacement-2);align-items:center}:host([data-orientation=verticale]){flex-direction:column;align-items:stretch}:host([data-attache]){isolation:isolate;gap:0}:host([data-plateau]){gap:var(--st-espacement-1);padding:var(--st-espacement-1-5);background:var(--st-couleur-surface-conteneur-bas);border:var(--st-epaisseur-fine) solid var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-md)}:host([data-plateau][data-attache]){gap:0}\n"],
800
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
801
+ });
802
+ };
803
+ i0.ɵɵngDeclareClassMetadata({
804
+ minVersion: "12.0.0",
805
+ version: "22.2.0",
806
+ ngImport: i0,
807
+ type: StButtonGroup,
808
+ decorators: [{
809
+ type: Component,
810
+ args: [{
811
+ selector: "st-button-group",
812
+ changeDetection: ChangeDetectionStrategy.OnPush,
813
+ host: {
814
+ class: "st-button-group",
815
+ role: "group",
816
+ "[attr.aria-label]": "etiquette()",
817
+ "[attr.data-orientation]": "orientation()",
818
+ "[attr.data-attache]": "attache() ? \"\" : null",
819
+ "[attr.data-plateau]": "plateau() ? \"\" : null"
820
+ },
821
+ template: "<ng-content />\n",
822
+ styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host([hidden]){display:none!important}:host{display:flex;flex-wrap:wrap;gap:var(--st-espacement-2);align-items:center}:host([data-orientation=verticale]){flex-direction:column;align-items:stretch}:host([data-attache]){isolation:isolate;gap:0}:host([data-plateau]){gap:var(--st-espacement-1);padding:var(--st-espacement-1-5);background:var(--st-couleur-surface-conteneur-bas);border:var(--st-epaisseur-fine) solid var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-md)}:host([data-plateau][data-attache]){gap:0}\n"]
823
+ }]
824
+ }],
825
+ ctorParameters: () => [],
826
+ propDecorators: {
827
+ etiquette: [{
828
+ type: i0.Input,
829
+ args: [{
830
+ isSignal: true,
831
+ alias: "etiquette",
832
+ required: true
833
+ }]
834
+ }],
835
+ orientation: [{
836
+ type: i0.Input,
837
+ args: [{
838
+ isSignal: true,
839
+ alias: "orientation",
840
+ required: false
841
+ }]
842
+ }],
843
+ attache: [{
844
+ type: i0.Input,
845
+ args: [{
846
+ isSignal: true,
847
+ alias: "attache",
848
+ required: false
849
+ }]
850
+ }],
851
+ plateau: [{
852
+ type: i0.Input,
853
+ args: [{
854
+ isSignal: true,
855
+ alias: "plateau",
856
+ required: false
857
+ }]
858
+ }],
859
+ boutons: [{
860
+ type: i0.ContentChildren,
861
+ args: [i0.forwardRef(() => StButton), {
862
+ read: ElementRef,
863
+ isSignal: true
864
+ }]
865
+ }],
866
+ boutonsIcone: [{
867
+ type: i0.ContentChildren,
868
+ args: [i0.forwardRef(() => StIconButton), {
869
+ read: ElementRef,
870
+ isSignal: true
871
+ }]
872
+ }],
873
+ liens: [{
874
+ type: i0.ContentChildren,
875
+ args: [i0.forwardRef(() => StLink), {
876
+ read: ElementRef,
877
+ isSignal: true
878
+ }]
879
+ }],
880
+ taillesDesBoutons: [{
881
+ type: i0.ContentChildren,
882
+ args: [i0.forwardRef(() => StButton), { isSignal: true }]
883
+ }],
884
+ taillesDesBoutonsIcone: [{
885
+ type: i0.ContentChildren,
886
+ args: [i0.forwardRef(() => StIconButton), { isSignal: true }]
887
+ }]
888
+ }
889
+ });
890
+ export { StButtonGroup, StDivider, StSection, StSettingsRow, StText };
891
+
892
+ //# sourceMappingURL=starterlib-ui-mise-en-page.mjs.map