@starterlib/ui 0.8.0 → 0.9.1
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/LICENCES-TIERCES.md +236 -0
- package/README.md +101 -47
- package/assets/icones/catalogue.json +3296 -0
- package/assets/icones/sprite.svg +235 -35
- package/fesm2022/starterlib-ui-arbre.mjs +473 -80
- package/fesm2022/starterlib-ui-arbre.mjs.map +1 -1
- package/fesm2022/starterlib-ui-donnees.mjs +3551 -522
- package/fesm2022/starterlib-ui-donnees.mjs.map +1 -1
- package/fesm2022/starterlib-ui-formulaires.mjs +3186 -443
- package/fesm2022/starterlib-ui-formulaires.mjs.map +1 -1
- package/fesm2022/starterlib-ui-libelles-en.mjs +380 -139
- package/fesm2022/starterlib-ui-libelles-en.mjs.map +1 -1
- package/fesm2022/starterlib-ui-listes.mjs +5354 -658
- package/fesm2022/starterlib-ui-listes.mjs.map +1 -1
- package/fesm2022/starterlib-ui-messagerie.mjs +737 -0
- package/fesm2022/starterlib-ui-messagerie.mjs.map +1 -0
- package/fesm2022/starterlib-ui-navigation.mjs +506 -243
- package/fesm2022/starterlib-ui-navigation.mjs.map +1 -1
- package/fesm2022/starterlib-ui-onglets.mjs +369 -135
- package/fesm2022/starterlib-ui-onglets.mjs.map +1 -1
- package/fesm2022/starterlib-ui-parcours.mjs +2449 -0
- package/fesm2022/starterlib-ui-parcours.mjs.map +1 -0
- package/fesm2022/starterlib-ui-qr.mjs +907 -0
- package/fesm2022/starterlib-ui-qr.mjs.map +1 -0
- package/fesm2022/starterlib-ui-saisie.mjs +8566 -1589
- package/fesm2022/starterlib-ui-saisie.mjs.map +1 -1
- package/fesm2022/starterlib-ui-selection.mjs +1340 -268
- package/fesm2022/starterlib-ui-selection.mjs.map +1 -1
- package/fesm2022/starterlib-ui-sens.mjs +59 -0
- package/fesm2022/starterlib-ui-sens.mjs.map +1 -0
- package/fesm2022/starterlib-ui-surfaces.mjs +5140 -1387
- package/fesm2022/starterlib-ui-surfaces.mjs.map +1 -1
- package/fesm2022/starterlib-ui.mjs +10721 -2871
- package/fesm2022/starterlib-ui.mjs.map +1 -1
- package/package.json +27 -18
- package/styles/amorce.css +69 -0
- package/styles/couches.css +178 -0
- package/types/starterlib-ui-arbre.d.ts +199 -25
- package/types/starterlib-ui-donnees.d.ts +1441 -180
- package/types/starterlib-ui-formulaires.d.ts +1174 -139
- package/types/starterlib-ui-libelles-en.d.ts +3 -23
- package/types/starterlib-ui-listes.d.ts +2310 -255
- package/types/starterlib-ui-messagerie.d.ts +317 -0
- package/types/starterlib-ui-navigation.d.ts +201 -63
- package/types/starterlib-ui-onglets.d.ts +172 -43
- package/types/starterlib-ui-parcours.d.ts +916 -0
- package/types/starterlib-ui-qr.d.ts +105 -0
- package/types/starterlib-ui-saisie.d.ts +3431 -549
- package/types/starterlib-ui-selection.d.ts +441 -65
- package/types/starterlib-ui-sens.d.ts +44 -0
- package/types/starterlib-ui-surfaces.d.ts +1899 -510
- package/types/starterlib-ui.d.ts +4749 -1115
- package/fesm2022/starterlib-ui-interactions.mjs +0 -43
- package/fesm2022/starterlib-ui-interactions.mjs.map +0 -1
- package/types/starterlib-ui-interactions.d.ts +0 -4
|
@@ -1,29 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
3
|
-
|
|
1
|
+
import { Icone } from "@starterlib/ui";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/aria/tabs";
|
|
4
4
|
/** Un onglet, decrit par l'appelant. */
|
|
5
|
-
interface Onglet {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export interface Onglet {
|
|
6
|
+
/**
|
|
7
|
+
* Identifiant stable, qui relie l'onglet a son `st-tab-panel`. Sans espace : il entre dans l'id
|
|
8
|
+
* de l'onglet (`<identifiant>-onglet-<valeur>`).
|
|
9
|
+
*/
|
|
10
|
+
readonly valeur: string;
|
|
11
|
+
readonly libelle: string;
|
|
12
|
+
readonly desactive?: boolean;
|
|
13
|
+
/** Icone de 18 px devant le libelle, decorative : le libelle dit deja la vue. */
|
|
14
|
+
readonly icone?: Icone;
|
|
15
|
+
/**
|
|
16
|
+
* Nombre d'elements de la vue, en pastille apres le libelle. Formate par `Intl` dans la langue
|
|
17
|
+
* de la page, et repete dans le nom de l'onglet (« Operations, 42 ») : la pastille est muette.
|
|
18
|
+
*/
|
|
19
|
+
readonly compte?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Complement de fin de ligne (code devise d'un compte). Lu apres le libelle, comme le compte
|
|
22
|
+
* (« Portefeuille titres, CHF ») ; le complement visible est muet.
|
|
23
|
+
*/
|
|
24
|
+
readonly complement?: string;
|
|
10
25
|
}
|
|
11
|
-
type ActivationDOnglet = 'manuelle' | 'automatique';
|
|
12
|
-
type OrientationDOnglets = 'horizontale' | 'verticale';
|
|
26
|
+
export type ActivationDOnglet = 'manuelle' | 'automatique';
|
|
27
|
+
export type OrientationDOnglets = 'horizontale' | 'verticale';
|
|
13
28
|
/**
|
|
14
29
|
* Onglets, sur les primitives `@angular/aria/tabs`.
|
|
15
30
|
*
|
|
16
31
|
* ```html
|
|
17
|
-
* <st-tabs etiquette="Compte" [onglets]="onglets" [(selection)]="onglet">
|
|
32
|
+
* <st-tabs etiquette="Compte" identifiant="compte" [onglets]="onglets" [(selection)]="onglet">
|
|
18
33
|
* <st-tab-panel valeur="operations">
|
|
19
34
|
* <ng-template stTabContent><app-operations /></ng-template>
|
|
20
35
|
* </st-tab-panel>
|
|
21
|
-
* <st-tab-panel valeur="virements">
|
|
22
|
-
* <ng-template stTabContent><app-
|
|
36
|
+
* <st-tab-panel valeur="virements" contenuConserve>
|
|
37
|
+
* <ng-template stTabContent><app-saisie-du-virement /></ng-template>
|
|
23
38
|
* </st-tab-panel>
|
|
24
39
|
* </st-tabs>
|
|
25
40
|
* ```
|
|
26
41
|
*
|
|
42
|
+
* ⚠️ **Un `st-tab-panel` par onglet, son contenu dans `stTabContent`** : depuis Angular 22.2,
|
|
43
|
+
* `@angular/aria` signale en developpement un onglet sans panneau et un panneau sans contenu
|
|
44
|
+
* differe (deux avertissements par element). Le contenu direct d'un panneau reste rendu, et
|
|
45
|
+
* masque au repos, mais il est signale ; des vues d'un meme contenu, sans panneau, se disent par
|
|
46
|
+
* `st-segmented-control`.
|
|
47
|
+
*
|
|
27
48
|
* ⚠️ **La liste d'onglets est rendue par le composant, a partir de donnees**, et
|
|
28
49
|
* non projetee. Les primitives d'Aria relient un onglet a sa liste par
|
|
29
50
|
* INJECTION, et un contenu projete garde l'injecteur de l'endroit ou il est
|
|
@@ -32,7 +53,9 @@ type OrientationDOnglets = 'horizontale' | 'verticale';
|
|
|
32
53
|
* primitive — et ses valeurs peuvent etre dites en francais.
|
|
33
54
|
*
|
|
34
55
|
* Les PANNEAUX, eux, sont projetes : ecrits directement sous `st-tabs`, leur
|
|
35
|
-
* injecteur parent est celui de l'hote, qui porte la primitive `Tabs`.
|
|
56
|
+
* injecteur parent est celui de l'hote, qui porte la primitive `Tabs`. Un panneau
|
|
57
|
+
* ecrit ailleurs (un composant intermediaire) ne trouve pas `Tabs` : la creation
|
|
58
|
+
* echoue, avec l'erreur d'injection d'Angular.
|
|
36
59
|
*
|
|
37
60
|
* ⚠️ **Activation manuelle par defaut.** En activation automatique, chaque
|
|
38
61
|
* fleche SELECTIONNE l'onglet atteint ; son contenu differe se rend, et charge
|
|
@@ -40,50 +63,156 @@ type OrientationDOnglets = 'horizontale' | 'verticale';
|
|
|
40
63
|
* lire un. En manuelle, les fleches deplacent le focus et Entree ou Espace
|
|
41
64
|
* selectionne. `automatique` reste le bon choix quand les panneaux sont deja la
|
|
42
65
|
* et s'affichent sans delai.
|
|
66
|
+
*
|
|
67
|
+
* **Une ligne, qui defile** (EA-22) : un libelle ne passe jamais a la ligne et
|
|
68
|
+
* n'est jamais tronque ; la liste defile, une ombre dit de quel cote il reste des
|
|
69
|
+
* onglets, et l'onglet choisi est amene en vue. Le chargement d'un panneau est
|
|
70
|
+
* dit par un `st-state` DANS son gabarit (`aria-busy` compris), jamais par
|
|
71
|
+
* l'onglet.
|
|
43
72
|
*/
|
|
44
|
-
declare class StTabs {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
73
|
+
export declare class StTabs {
|
|
74
|
+
private readonly hote;
|
|
75
|
+
private readonly locale;
|
|
76
|
+
private readonly baseParDefaut;
|
|
77
|
+
readonly onglets: import("@angular/core").InputSignal<readonly Onglet[]>;
|
|
78
|
+
/** Nom accessible de la liste : sans lui, plusieurs listes d'onglets se confondent. */
|
|
79
|
+
readonly etiquette: import("@angular/core").InputSignal<string>;
|
|
80
|
+
readonly activation: import("@angular/core").InputSignal<ActivationDOnglet>;
|
|
81
|
+
readonly orientation: import("@angular/core").InputSignal<OrientationDOnglets>;
|
|
82
|
+
/**
|
|
83
|
+
* Base des ids des onglets, `<identifiant>-onglet-<valeur>` : l'application synchronise
|
|
84
|
+
* `selection` avec l'adresse, et une ancre ou un essai designe l'onglet sans deviner. Absent :
|
|
85
|
+
* une base unique dans le document. Les panneaux gardent l'id de la primitive, que leur onglet
|
|
86
|
+
* suit dans `aria-controls`.
|
|
87
|
+
*/
|
|
88
|
+
readonly identifiant: import("@angular/core").InputSignal<string | undefined>;
|
|
89
|
+
/**
|
|
90
|
+
* Valeur de l'onglet selectionne, ecrite par le composant des le rendu : absente, inconnue ou
|
|
91
|
+
* desactivee, elle recoit le premier onglet disponible (une valeur fournie est signalee en
|
|
92
|
+
* developpement). Elle ne vaut `undefined` que si aucun onglet n'est selectionnable.
|
|
93
|
+
*/
|
|
94
|
+
readonly selection: import("@angular/core").ModelSignal<string | undefined>;
|
|
95
|
+
/**
|
|
96
|
+
* ⚠️ Toujours un onglet selectionne. Le motif ARIA l'exige : une liste sans
|
|
97
|
+
* selection n'affiche aucun panneau, et la page parait vide sans raison.
|
|
98
|
+
*/
|
|
99
|
+
protected readonly selectionEffective: import("@angular/core").Signal<string | undefined>;
|
|
100
|
+
protected readonly modeAria: import("@angular/core").Signal<"follow" | "explicit">;
|
|
101
|
+
protected readonly orientationAria: import("@angular/core").Signal<"vertical" | "horizontal">;
|
|
102
|
+
private readonly formatDesComptes;
|
|
103
|
+
constructor();
|
|
104
|
+
/** Id d'un onglet : stable avec `identifiant`, unique dans le document sans lui. */
|
|
105
|
+
protected idDOnglet(valeur: string): string;
|
|
106
|
+
protected compteDe(compte: number): string;
|
|
107
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StTabs, never>;
|
|
108
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StTabs, "st-tabs", never, {
|
|
109
|
+
"onglets": {
|
|
110
|
+
"alias": "onglets";
|
|
111
|
+
"required": true;
|
|
112
|
+
"isSignal": true;
|
|
113
|
+
};
|
|
114
|
+
"etiquette": {
|
|
115
|
+
"alias": "etiquette";
|
|
116
|
+
"required": true;
|
|
117
|
+
"isSignal": true;
|
|
118
|
+
};
|
|
119
|
+
"activation": {
|
|
120
|
+
"alias": "activation";
|
|
121
|
+
"required": false;
|
|
122
|
+
"isSignal": true;
|
|
123
|
+
};
|
|
124
|
+
"orientation": {
|
|
125
|
+
"alias": "orientation";
|
|
126
|
+
"required": false;
|
|
127
|
+
"isSignal": true;
|
|
128
|
+
};
|
|
129
|
+
"identifiant": {
|
|
130
|
+
"alias": "identifiant";
|
|
131
|
+
"required": false;
|
|
132
|
+
"isSignal": true;
|
|
133
|
+
};
|
|
134
|
+
"selection": {
|
|
135
|
+
"alias": "selection";
|
|
136
|
+
"required": false;
|
|
137
|
+
"isSignal": true;
|
|
138
|
+
};
|
|
139
|
+
}, {
|
|
140
|
+
"selection": "selectionChange";
|
|
141
|
+
}, never, ["*"], true, [{
|
|
142
|
+
directive: typeof i1.Tabs;
|
|
143
|
+
inputs: {};
|
|
144
|
+
outputs: {};
|
|
145
|
+
}]>;
|
|
61
146
|
}
|
|
62
|
-
|
|
63
147
|
/**
|
|
64
148
|
* Panneau d'un onglet, relie par sa `valeur`.
|
|
65
149
|
*
|
|
150
|
+
* ```html
|
|
151
|
+
* <st-tab-panel valeur="virement" contenuConserve>
|
|
152
|
+
* <ng-template stTabContent><app-saisie-du-virement /></ng-template>
|
|
153
|
+
* </st-tab-panel>
|
|
154
|
+
* ```
|
|
155
|
+
*
|
|
66
156
|
* ⚠️ La primitive d'Aria ne masque RIEN : elle pose `inert` sur le panneau
|
|
67
157
|
* inactif, ce qui le retire de l'arbre d'accessibilite et du clavier, mais le
|
|
68
158
|
* laisse a l'ecran. Sa documentation le dit en une ligne. Sans le style de ce
|
|
69
159
|
* composant, tous les panneaux s'affichaient empiles, muets et intouchables.
|
|
160
|
+
*
|
|
161
|
+
* Transparent, sans padding en ligne : la premiere ligne du contenu affleure le
|
|
162
|
+
* premier onglet ; 16 px le separent de la liste horizontale. Un panneau qui
|
|
163
|
+
* CHARGE le dit par un `st-state` dans son gabarit (`aria-busy` compris) : le
|
|
164
|
+
* panneau lui-meme ne montre rien.
|
|
70
165
|
*/
|
|
71
|
-
declare class StTabPanel {
|
|
72
|
-
|
|
73
|
-
|
|
166
|
+
export declare class StTabPanel {
|
|
167
|
+
/**
|
|
168
|
+
* Garde le contenu differe (`stTabContent`) quand l'onglet est quitte : masque et inerte, mais
|
|
169
|
+
* vivant. Une saisie commencee dans l'onglet survit au retour. Recommande pour tout panneau qui
|
|
170
|
+
* contient un formulaire. Sans lui, le contenu est detruit a la deselection et recree au retour.
|
|
171
|
+
*
|
|
172
|
+
* ⚠️ La primitive expose aussi, par sa propre composition, son entree anglaise `preserveContent`
|
|
173
|
+
* sur cet element ; le socle ne peut pas la masquer sans quitter `TabPanel`. Elle est ecrasee par
|
|
174
|
+
* celle-ci : n'employer que `contenuConserve`.
|
|
175
|
+
*/
|
|
176
|
+
readonly contenuConserve: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
177
|
+
/**
|
|
178
|
+
* Le `st-tabs` du panneau, par injection et non par un ancetre du DOM : en colonne, l'ecart de
|
|
179
|
+
* l'hote separe deja la liste du panneau, et un jeu d'onglets imbrique dans un panneau ne doit
|
|
180
|
+
* pas prendre l'orientation d'un ancetre.
|
|
181
|
+
*/
|
|
182
|
+
protected readonly onglets: StTabs | null;
|
|
183
|
+
constructor();
|
|
184
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StTabPanel, never>;
|
|
185
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StTabPanel, "st-tab-panel", never, {
|
|
186
|
+
"contenuConserve": {
|
|
187
|
+
"alias": "contenuConserve";
|
|
188
|
+
"required": false;
|
|
189
|
+
"isSignal": true;
|
|
190
|
+
};
|
|
191
|
+
}, {}, never, ["*"], true, [{
|
|
192
|
+
directive: typeof i1.TabPanel;
|
|
193
|
+
inputs: {
|
|
194
|
+
"value": "valeur";
|
|
195
|
+
};
|
|
196
|
+
outputs: {};
|
|
197
|
+
}]>;
|
|
74
198
|
}
|
|
75
|
-
|
|
76
199
|
/**
|
|
77
|
-
* Contenu differe d'un panneau : rendu a la premiere selection de son onglet
|
|
200
|
+
* Contenu differe d'un panneau : rendu a la premiere selection de son onglet,
|
|
201
|
+
* detruit a la deselection, sauf `contenuConserve` sur le `st-tab-panel`.
|
|
78
202
|
*
|
|
79
203
|
* Un ecran a cinq onglets ne charge ainsi que celui qu'on regarde. Voir
|
|
80
204
|
* l'activation manuelle de `st-tabs` : c'est ce qui empeche qu'un simple
|
|
81
|
-
* parcours au clavier les rende tous.
|
|
205
|
+
* parcours au clavier les rende tous. Un contenu qui charge des donnees pose son
|
|
206
|
+
* `st-state` DANS ce gabarit : l'attente (200 ms, puis 400 ms tenues) se regle
|
|
207
|
+
* la, pas ici.
|
|
82
208
|
*/
|
|
83
|
-
declare class StTabContent {
|
|
84
|
-
|
|
85
|
-
|
|
209
|
+
export declare class StTabContent {
|
|
210
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StTabContent, never>;
|
|
211
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<StTabContent, "ng-template[stTabContent]", never, {}, {}, never, never, true, [{
|
|
212
|
+
directive: typeof i1.TabContent;
|
|
213
|
+
inputs: {};
|
|
214
|
+
outputs: {};
|
|
215
|
+
}]>;
|
|
86
216
|
}
|
|
87
217
|
|
|
88
|
-
export {
|
|
89
|
-
export type { ActivationDOnglet, Onglet, OrientationDOnglets };
|
|
218
|
+
export {};
|