@starterlib/ui 0.9.1 → 0.10.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/README.md +44 -32
- package/assets/icones/catalogue.json +1 -1
- package/fesm2022/starterlib-ui-donnees.mjs +200 -3
- package/fesm2022/starterlib-ui-donnees.mjs.map +1 -1
- package/fesm2022/starterlib-ui-etats.mjs +1158 -0
- package/fesm2022/starterlib-ui-etats.mjs.map +1 -0
- package/fesm2022/starterlib-ui-formulaires.mjs +3 -2
- package/fesm2022/starterlib-ui-formulaires.mjs.map +1 -1
- package/fesm2022/starterlib-ui-indicateurs.mjs +1013 -0
- package/fesm2022/starterlib-ui-indicateurs.mjs.map +1 -0
- package/fesm2022/starterlib-ui-libelles-en.mjs.map +1 -1
- package/fesm2022/starterlib-ui-listes.mjs +5 -2
- package/fesm2022/starterlib-ui-listes.mjs.map +1 -1
- package/fesm2022/starterlib-ui-messagerie.mjs +2 -2
- package/fesm2022/starterlib-ui-messagerie.mjs.map +1 -1
- package/fesm2022/starterlib-ui-mise-en-page.mjs +892 -0
- package/fesm2022/starterlib-ui-mise-en-page.mjs.map +1 -0
- package/fesm2022/starterlib-ui-parcours.mjs +222 -4
- package/fesm2022/starterlib-ui-parcours.mjs.map +1 -1
- package/fesm2022/starterlib-ui-saisie.mjs +131 -3
- package/fesm2022/starterlib-ui-saisie.mjs.map +1 -1
- package/fesm2022/starterlib-ui-surfaces.mjs +2 -1
- package/fesm2022/starterlib-ui-surfaces.mjs.map +1 -1
- package/fesm2022/starterlib-ui.mjs +3526 -7105
- package/fesm2022/starterlib-ui.mjs.map +1 -1
- package/package.json +15 -3
- package/types/starterlib-ui-donnees.d.ts +95 -1
- package/types/starterlib-ui-etats.d.ts +486 -0
- package/types/starterlib-ui-formulaires.d.ts +1 -1
- package/types/starterlib-ui-indicateurs.d.ts +463 -0
- package/types/starterlib-ui-listes.d.ts +2 -1
- package/types/starterlib-ui-mise-en-page.d.ts +355 -0
- package/types/starterlib-ui-parcours.d.ts +123 -3
- package/types/starterlib-ui-saisie.d.ts +72 -2
- package/types/starterlib-ui-selection.d.ts +3 -2
- package/types/starterlib-ui.d.ts +36 -1604
package/types/starterlib-ui.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import { AnimationCallbackEvent, DestroyRef, EnvironmentProviders, InjectionToken, Provider,
|
|
3
|
-
import { ChoixDeTheme, ETATS_DE_BLOC, EtatDeBloc,
|
|
2
|
+
import { AnimationCallbackEvent, DestroyRef, EnvironmentProviders, InjectionToken, Provider, Signal } from "@angular/core";
|
|
3
|
+
import { ChoixDeTheme, ETATS_DE_BLOC, EtatDeBloc, Langue, MoyenDeCeremonie, Ton, TonSemantique, VarianteDErreur, VarianteDErreur as VarianteDErreur$1, sansCommandesDeDirection } from "@starterlib/util";
|
|
4
|
+
import { EtatDeDocument, ListesDAdresses, NatureDeRegion, RechercheDAdresses } from "@starterlib/util/valeurs";
|
|
4
5
|
import * as i1 from "@angular/router";
|
|
5
6
|
export interface LibellesUi {
|
|
6
7
|
/**
|
|
@@ -1124,81 +1125,6 @@ export declare class StIcon {
|
|
|
1124
1125
|
};
|
|
1125
1126
|
}, {}, never, never, true, never>;
|
|
1126
1127
|
}
|
|
1127
|
-
export type VarianteDeTexte = 'corps' | 'corps-sm' | 'discret' | 'legende' | 'meta' | 'mono';
|
|
1128
|
-
export type GraisseDeTexte = 'normale' | 'moyenne' | 'semi';
|
|
1129
|
-
/**
|
|
1130
|
-
* Bloc de texte de l'echelle typographique.
|
|
1131
|
-
*
|
|
1132
|
-
* L'hote EST la boite : jamais `display: contents`, qui retire l'element de
|
|
1133
|
-
* l'arbre d'accessibilite dans plusieurs navigateurs. Seul un texte `revelable`
|
|
1134
|
-
* gagne une zone interieure, parce que son bouton doit rester HORS de la coupe.
|
|
1135
|
-
*
|
|
1136
|
-
* ```html
|
|
1137
|
-
* <st-text variante="meta">Mis a jour il y a 2 min</st-text>
|
|
1138
|
-
* <st-text [tronquerA]="3" revelable>{{ conditions }}</st-text>
|
|
1139
|
-
* ```
|
|
1140
|
-
*/
|
|
1141
|
-
export declare class StText {
|
|
1142
|
-
readonly variante: import("@angular/core").InputSignal<VarianteDeTexte>;
|
|
1143
|
-
readonly graisse: import("@angular/core").InputSignal<GraisseDeTexte>;
|
|
1144
|
-
readonly enLigne: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1145
|
-
/**
|
|
1146
|
-
* Nombre de lignes au-dela duquel le texte est coupe.
|
|
1147
|
-
*
|
|
1148
|
-
* ⚠️ A ne jamais employer sur un message d'erreur, un statut, un libelle
|
|
1149
|
-
* d'action, un montant ou un nom qui distingue : une information tronquee y
|
|
1150
|
-
* devient fausse. Le texte coupe reste lu en entier par un lecteur d'ecran ;
|
|
1151
|
-
* l'oeil, lui, n'en voit que le debut, d'ou `revelable`.
|
|
1152
|
-
*
|
|
1153
|
-
* ⚠️ **Sans `revelable`, un APERCU seulement** : le texte entier doit s'atteindre
|
|
1154
|
-
* ailleurs, a l'oeil et au clavier (la ligne est un lien vers le detail, ou le
|
|
1155
|
-
* detail est sur la page). Une bulle `title` ne le remplace pas : ni le clavier ni
|
|
1156
|
-
* le toucher ne l'ouvrent (WCAG 1.4.10 et 2.1.1 ; audit UI du 2026-09-27, D-34).
|
|
1157
|
-
* Partout ailleurs, `revelable`.
|
|
1158
|
-
*/
|
|
1159
|
-
readonly tronquerA: import("@angular/core").InputSignal<number | null>;
|
|
1160
|
-
/**
|
|
1161
|
-
* Avec `tronquerA` : un bouton « Afficher la suite » / « Reduire » sous le
|
|
1162
|
-
* bloc, SEULEMENT quand le texte deborde reellement de sa coupe (WCAG 1.4.4 et
|
|
1163
|
-
* 1.4.10 : ce que la coupe cache doit rester atteignable a l'oeil).
|
|
1164
|
-
*/
|
|
1165
|
-
readonly revelable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1166
|
-
protected readonly libelles: import("@angular/core").Signal<import("@starterlib/ui").LibellesUi>;
|
|
1167
|
-
protected readonly identifiantDuContenu: string;
|
|
1168
|
-
protected readonly ouvert: import("@angular/core").WritableSignal<boolean>;
|
|
1169
|
-
protected readonly deborde: import("@angular/core").WritableSignal<boolean>;
|
|
1170
|
-
private readonly zone;
|
|
1171
|
-
constructor();
|
|
1172
|
-
protected basculer(): void;
|
|
1173
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StText, never>;
|
|
1174
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StText, "st-text", never, {
|
|
1175
|
-
"variante": {
|
|
1176
|
-
"alias": "variante";
|
|
1177
|
-
"required": false;
|
|
1178
|
-
"isSignal": true;
|
|
1179
|
-
};
|
|
1180
|
-
"graisse": {
|
|
1181
|
-
"alias": "graisse";
|
|
1182
|
-
"required": false;
|
|
1183
|
-
"isSignal": true;
|
|
1184
|
-
};
|
|
1185
|
-
"enLigne": {
|
|
1186
|
-
"alias": "enLigne";
|
|
1187
|
-
"required": false;
|
|
1188
|
-
"isSignal": true;
|
|
1189
|
-
};
|
|
1190
|
-
"tronquerA": {
|
|
1191
|
-
"alias": "tronquerA";
|
|
1192
|
-
"required": false;
|
|
1193
|
-
"isSignal": true;
|
|
1194
|
-
};
|
|
1195
|
-
"revelable": {
|
|
1196
|
-
"alias": "revelable";
|
|
1197
|
-
"required": false;
|
|
1198
|
-
"isSignal": true;
|
|
1199
|
-
};
|
|
1200
|
-
}, {}, never, ["*"], true, never>;
|
|
1201
|
-
}
|
|
1202
1128
|
export type NiveauDeTitre = 1 | 2 | 3 | 4 | 5 | 6;
|
|
1203
1129
|
export type TailleDeTitre = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
|
|
1204
1130
|
/**
|
|
@@ -1450,98 +1376,6 @@ export declare class StProgress {
|
|
|
1450
1376
|
};
|
|
1451
1377
|
}, {}, never, ["*"], true, never>;
|
|
1452
1378
|
}
|
|
1453
|
-
/**
|
|
1454
|
-
* Les silhouettes de la planche 9 de Claude Design (typologie des squelettes, lot 207) :
|
|
1455
|
-
* - `texte` (defaut) : des lignes de texte, la derniere a 60 % ;
|
|
1456
|
-
* - `tableau` : rangee d'en-tete courte, puis des rangees de cellules (la troisieme en pastille) ;
|
|
1457
|
-
* - `liste` : des rangees disque de 40 px, deux lignes et un montant, en option sous une rangee
|
|
1458
|
-
* d'en-tete (`entete`, planche 2) ;
|
|
1459
|
-
* - `carte` : en-tete, media 16/9 a pictogramme, pied ;
|
|
1460
|
-
* - `formulaire` : des champs (libelle, champ de 44 px, aide sur un champ sur deux) ;
|
|
1461
|
-
* - `indicateur` : le bloc d'un indicateur chiffre (libelle et pastille, valeur, deux lignes).
|
|
1462
|
-
*/
|
|
1463
|
-
export type VarianteDeSquelette = 'texte' | 'tableau' | 'liste' | 'carte' | 'formulaire' | 'indicateur';
|
|
1464
|
-
/**
|
|
1465
|
-
* Silhouette du contenu en cours de chargement.
|
|
1466
|
-
*
|
|
1467
|
-
* Entierement masque aux technologies d'assistance : c'est `stState` qui
|
|
1468
|
-
* annonce le chargement, une fois. Un squelette annonce ligne par ligne
|
|
1469
|
-
* noierait le lecteur d'ecran. Pose hors de `st-state`, son conteneur porte
|
|
1470
|
-
* `aria-busy="true"` pendant le chargement (recette).
|
|
1471
|
-
*
|
|
1472
|
-
* Il doit reproduire la BOITE du contenu reel, sinon l'arrivee des donnees
|
|
1473
|
-
* fait sauter la mise en page.
|
|
1474
|
-
*/
|
|
1475
|
-
export declare class StSkeleton {
|
|
1476
|
-
readonly variante: import("@angular/core").InputSignal<VarianteDeSquelette>;
|
|
1477
|
-
/** Lignes de texte, rangees de tableau ou de liste, champs de formulaire. */
|
|
1478
|
-
readonly lignes: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
1479
|
-
readonly colonnes: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
1480
|
-
readonly anime: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1481
|
-
/**
|
|
1482
|
-
* Pose la silhouette dans un creux (`surfaceConteneurBas`, 16 px de marge, coins de 8 px) :
|
|
1483
|
-
* la planche 9 montre ainsi un bloc en attente au milieu d'une carte blanche.
|
|
1484
|
-
*/
|
|
1485
|
-
readonly puits: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1486
|
-
/**
|
|
1487
|
-
* Une rangee d'en-tete au-dessus de la liste : deux blocs de 24 px aux deux bouts (le titre et
|
|
1488
|
-
* l'action d'une liste, planche 2). Sans effet hors de la variante `liste`.
|
|
1489
|
-
*/
|
|
1490
|
-
readonly entete: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1491
|
-
protected readonly avecEntete: import("@angular/core").Signal<boolean>;
|
|
1492
|
-
protected readonly enteteDeListe: readonly [32, 20];
|
|
1493
|
-
protected readonly indicesDeLigne: import("@angular/core").Signal<number[]>;
|
|
1494
|
-
protected readonly indicesDeColonne: import("@angular/core").Signal<number[]>;
|
|
1495
|
-
/** Pas des titres de colonne. */
|
|
1496
|
-
protected readonly enteteDeTableau: import("@angular/core").Signal<(24 | 32 | 20)[]>;
|
|
1497
|
-
/** Pour chaque rangee, le pas de chaque cellule et si elle est une pastille. */
|
|
1498
|
-
protected readonly rangeesDeTableau: import("@angular/core").Signal<{
|
|
1499
|
-
pas: 16 | 24 | 40 | 32 | 20 | 28 | 48 | 36 | 14;
|
|
1500
|
-
pastille: boolean;
|
|
1501
|
-
}[][]>;
|
|
1502
|
-
protected readonly rangeesDeListe: import("@angular/core").Signal<{
|
|
1503
|
-
titre: 28 | 36 | 44;
|
|
1504
|
-
sousTitre: 40 | 32 | 48;
|
|
1505
|
-
montant: 24 | 20 | 28;
|
|
1506
|
-
}[]>;
|
|
1507
|
-
protected readonly champsDeFormulaire: import("@angular/core").Signal<{
|
|
1508
|
-
libelle: 28 | 36;
|
|
1509
|
-
aide: boolean;
|
|
1510
|
-
}[]>;
|
|
1511
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StSkeleton, never>;
|
|
1512
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StSkeleton, "st-skeleton", never, {
|
|
1513
|
-
"variante": {
|
|
1514
|
-
"alias": "variante";
|
|
1515
|
-
"required": false;
|
|
1516
|
-
"isSignal": true;
|
|
1517
|
-
};
|
|
1518
|
-
"lignes": {
|
|
1519
|
-
"alias": "lignes";
|
|
1520
|
-
"required": false;
|
|
1521
|
-
"isSignal": true;
|
|
1522
|
-
};
|
|
1523
|
-
"colonnes": {
|
|
1524
|
-
"alias": "colonnes";
|
|
1525
|
-
"required": false;
|
|
1526
|
-
"isSignal": true;
|
|
1527
|
-
};
|
|
1528
|
-
"anime": {
|
|
1529
|
-
"alias": "anime";
|
|
1530
|
-
"required": false;
|
|
1531
|
-
"isSignal": true;
|
|
1532
|
-
};
|
|
1533
|
-
"puits": {
|
|
1534
|
-
"alias": "puits";
|
|
1535
|
-
"required": false;
|
|
1536
|
-
"isSignal": true;
|
|
1537
|
-
};
|
|
1538
|
-
"entete": {
|
|
1539
|
-
"alias": "entete";
|
|
1540
|
-
"required": false;
|
|
1541
|
-
"isSignal": true;
|
|
1542
|
-
};
|
|
1543
|
-
}, {}, never, never, true, never>;
|
|
1544
|
-
}
|
|
1545
1379
|
/**
|
|
1546
1380
|
* ⚠️ Une variante dit quel FOND le bouton prend, pas ce qu'il signifie ; c'est
|
|
1547
1381
|
* un axe distinct du ton, et il le reste. Mais les membres rouges s'appellent
|
|
@@ -1913,129 +1747,6 @@ export declare class StLink {
|
|
|
1913
1747
|
};
|
|
1914
1748
|
}, {}, never, ["*"], true, never>;
|
|
1915
1749
|
}
|
|
1916
|
-
/**
|
|
1917
|
-
* Regroupe des actions liees.
|
|
1918
|
-
*
|
|
1919
|
-
* ⚠️ `role="group"` et NON `role="toolbar"` : une barre d'outils exige un
|
|
1920
|
-
* `tabindex` glissant et la navigation par fleches. Annoncer « barre d'outils »
|
|
1921
|
-
* sans en fournir le comportement desoriente plus qu'un groupe simple. Le
|
|
1922
|
-
* motif complet viendra avec les primitives d'`@angular/aria`.
|
|
1923
|
-
*
|
|
1924
|
-
* `attache` : le groupe marque ses enfants du tronc (`stButton`, `stIconButton`,
|
|
1925
|
-
* `stLink`) par leur position, et chaque enfant rend ses coins (`_groupe.scss`) ; un
|
|
1926
|
-
* enfant survole ou focalise passe au-dessus de son voisin. Les enfants d'un groupe
|
|
1927
|
-
* attache ont la MEME taille (avertissement en developpement), et le groupe passe a la
|
|
1928
|
-
* ligne plutot que de deborder (1.4.10). Au-dela de cinq boutons attaches, un
|
|
1929
|
-
* `st-segmented-control` ou un `st-select` dit mieux la chose.
|
|
1930
|
-
*
|
|
1931
|
-
* `plateau` : le groupe pose sur le fond du conteneur, rayon et filet discret (planche 9).
|
|
1932
|
-
*/
|
|
1933
|
-
export declare class StButtonGroup {
|
|
1934
|
-
/** Nom du groupe : sans lui, le regroupement n'apprend rien a l'oral. */
|
|
1935
|
-
readonly etiquette: import("@angular/core").InputSignal<string>;
|
|
1936
|
-
readonly orientation: import("@angular/core").InputSignal<"horizontale" | "verticale">;
|
|
1937
|
-
/** Boutons jointifs : un seul trait entre deux, coins exterieurs seulement. */
|
|
1938
|
-
readonly attache: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1939
|
-
/** Le groupe pose sur un plateau (planche 9). */
|
|
1940
|
-
readonly plateau: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
1941
|
-
private readonly boutons;
|
|
1942
|
-
private readonly boutonsIcone;
|
|
1943
|
-
private readonly liens;
|
|
1944
|
-
private readonly taillesDesBoutons;
|
|
1945
|
-
private readonly taillesDesBoutonsIcone;
|
|
1946
|
-
constructor();
|
|
1947
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StButtonGroup, never>;
|
|
1948
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StButtonGroup, "st-button-group", never, {
|
|
1949
|
-
"etiquette": {
|
|
1950
|
-
"alias": "etiquette";
|
|
1951
|
-
"required": true;
|
|
1952
|
-
"isSignal": true;
|
|
1953
|
-
};
|
|
1954
|
-
"orientation": {
|
|
1955
|
-
"alias": "orientation";
|
|
1956
|
-
"required": false;
|
|
1957
|
-
"isSignal": true;
|
|
1958
|
-
};
|
|
1959
|
-
"attache": {
|
|
1960
|
-
"alias": "attache";
|
|
1961
|
-
"required": false;
|
|
1962
|
-
"isSignal": true;
|
|
1963
|
-
};
|
|
1964
|
-
"plateau": {
|
|
1965
|
-
"alias": "plateau";
|
|
1966
|
-
"required": false;
|
|
1967
|
-
"isSignal": true;
|
|
1968
|
-
};
|
|
1969
|
-
}, {}, ["boutons", "boutonsIcone", "liens", "taillesDesBoutons", "taillesDesBoutonsIcone"], ["*"], true, never>;
|
|
1970
|
-
}
|
|
1971
|
-
/**
|
|
1972
|
-
* `collee` (defaut, planche 3b) : une carte collee au bas de la zone de
|
|
1973
|
-
* defilement, a 16 px du bord. `pied` (planche 13) : une rangee posee a la fin du
|
|
1974
|
-
* formulaire, sans cadre, pour un formulaire qui tient dans l'ecran.
|
|
1975
|
-
*/
|
|
1976
|
-
export type DispositionDActions = 'collee' | 'pied';
|
|
1977
|
-
/**
|
|
1978
|
-
* Barre d'actions d'un formulaire.
|
|
1979
|
-
*
|
|
1980
|
-
* ```html
|
|
1981
|
-
* <form (submit)="envoyer()">
|
|
1982
|
-
* …
|
|
1983
|
-
* <st-form-actions>
|
|
1984
|
-
* <button debut stButton type="button">Annuler</button>
|
|
1985
|
-
* <st-icon aide nom="cercle-alerte-plein" ton="danger" />
|
|
1986
|
-
* <span aide id="aide-envoi">3 erreurs a corriger</span>
|
|
1987
|
-
* <button stButton type="button">Enregistrer le brouillon</button>
|
|
1988
|
-
* <button stButton type="submit" variante="primaire" aria-describedby="aide-envoi">
|
|
1989
|
-
* Valider le virement
|
|
1990
|
-
* </button>
|
|
1991
|
-
* </st-form-actions>
|
|
1992
|
-
* </form>
|
|
1993
|
-
* ```
|
|
1994
|
-
*
|
|
1995
|
-
* ⚠️ **`sticky`, JAMAIS `fixed`.** Un element fixe sort du flux : a 200 %
|
|
1996
|
-
* d'echelle il recouvre les derniers champs, et dans une vue embarquee il se
|
|
1997
|
-
* pose sous la barre du systeme. Collee, la barre reste dans le document —
|
|
1998
|
-
* elle suit le formulaire, cede la place a son pied, et respecte la zone sure
|
|
1999
|
-
* du bas de l'ecran (`env(safe-area-inset-bottom)`).
|
|
2000
|
-
*
|
|
2001
|
-
* ⚠️ **Le focus n'est jamais recouvert** (WCAG 2.4.11). Collee, la barre cache
|
|
2002
|
-
* les derniers champs quand le navigateur y amene un arret de tabulation : elle
|
|
2003
|
-
* MESURE sa hauteur et la pose en `scroll-padding-block-end` sur son conteneur
|
|
2004
|
-
* de defilement, avec le contrat d'hote `--st-form-actions-hauteur` (D13, D16).
|
|
2005
|
-
*
|
|
2006
|
-
* ⚠️ **L'ordre du document est l'ordre visuel.** Rien n'est inverse par le
|
|
2007
|
-
* style : l'action principale s'ecrit en dernier, elle se lit en dernier et se
|
|
2008
|
-
* tabule en dernier. `debut` accueille ce qui part a l'oppose (un retour, une
|
|
2009
|
-
* annulation) et `aide` la raison d'une action indisponible, a relier au bouton
|
|
2010
|
-
* par `aria-describedby`. Dans un conteneur de moins de 480 px, la barre
|
|
2011
|
-
* s'empile, l'action principale en bas, sous le pouce (planche 6).
|
|
2012
|
-
*
|
|
2013
|
-
* `data-collee` dit que la barre FLOTTE sur du contenu qui continue dessous :
|
|
2014
|
-
* son ombre s'epaissit alors (une barre posee a la fin du formulaire garde
|
|
2015
|
-
* l'ombre de la planche 3b).
|
|
2016
|
-
*
|
|
2017
|
-
* Une seule action principale par formulaire, et elle est un vrai
|
|
2018
|
-
* `type="submit"` : Entree dans un champ l'envoie. Deux avertissent en
|
|
2019
|
-
* developpement.
|
|
2020
|
-
*/
|
|
2021
|
-
export declare class StFormActions {
|
|
2022
|
-
readonly disposition: import("@angular/core").InputSignal<DispositionDActions>;
|
|
2023
|
-
protected readonly collee: import("@angular/core").WritableSignal<boolean>;
|
|
2024
|
-
constructor();
|
|
2025
|
-
/**
|
|
2026
|
-
* Observe la barre collee : si elle flotte (`data-collee`) et quelle hauteur
|
|
2027
|
-
* elle recouvre. Rend la fonction qui defait tout.
|
|
2028
|
-
*/
|
|
2029
|
-
private suivreLaBarre;
|
|
2030
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StFormActions, never>;
|
|
2031
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StFormActions, "st-form-actions", never, {
|
|
2032
|
-
"disposition": {
|
|
2033
|
-
"alias": "disposition";
|
|
2034
|
-
"required": false;
|
|
2035
|
-
"isSignal": true;
|
|
2036
|
-
};
|
|
2037
|
-
}, {}, never, ["[debut]", "[aide]", "*"], true, never>;
|
|
2038
|
-
}
|
|
2039
1750
|
/**
|
|
2040
1751
|
* Un segment du groupe. Les textes sont deja traduits ; le libelle visible est le nom du segment,
|
|
2041
1752
|
* que `etiquette` complete.
|
|
@@ -2211,556 +1922,6 @@ export declare class StSegmentedControl {
|
|
|
2211
1922
|
"touch": "touch";
|
|
2212
1923
|
}, never, never, true, never>;
|
|
2213
1924
|
}
|
|
2214
|
-
/**
|
|
2215
|
-
* Valeur technique courte et copiable : identifiant de trace, reference
|
|
2216
|
-
* d'operation, code d'erreur. Jamais un secret.
|
|
2217
|
-
*
|
|
2218
|
-
* ⚠️ Le `<code>` est lu par TOUT LE MONDE, technologies d'assistance comprises, precede
|
|
2219
|
-
* de son etiquette (« Code : 7f3a-91c4 ») : la valeur se selectionne au curseur virtuel.
|
|
2220
|
-
* Avant 0.9, un `<code aria-hidden>` doublait une copie masquee, et le curseur virtuel ne
|
|
2221
|
-
* pouvait rien selectionner. `translate="no"` : une reference ne se traduit pas.
|
|
2222
|
-
*
|
|
2223
|
-
* ⚠️ Le bouton de copie porte un nom DISTINCT par valeur : « Copier : <etiquette> », ou
|
|
2224
|
-
* « Copier : <valeur> » sans etiquette. Deux valeurs techniques d'une page ne proposent plus
|
|
2225
|
-
* deux boutons « Copier » ; sans etiquette, « Copier : Code » se repetait a chaque valeur
|
|
2226
|
-
* (revue E7). La valeur est courte par contrat : le nom reste lisible a l'oral.
|
|
2227
|
-
*
|
|
2228
|
-
* ⚠️ La confirmation de copie passe par une petite region vivante interne, et
|
|
2229
|
-
* le NOM DU BOUTON NE CHANGE PAS. Le changer ferait annoncer un autre bouton que
|
|
2230
|
-
* celui que l'utilisateur a sous le doigt.
|
|
2231
|
-
*
|
|
2232
|
-
* ⚠️ Le retour se VOIT aussi (03 §3.20, MV-7) : l'icone passe a la coche, en
|
|
2233
|
-
* `succes`, pendant `rythme.tenue.confirmation`, d'un coup ; un refus laisse un
|
|
2234
|
-
* message visible sous la valeur jusqu'a la tentative suivante. Meme regle que
|
|
2235
|
-
* `st-copy-button`.
|
|
2236
|
-
*/
|
|
2237
|
-
export declare class StCode {
|
|
2238
|
-
private readonly document;
|
|
2239
|
-
private readonly libelles;
|
|
2240
|
-
readonly valeur: import("@angular/core").InputSignal<string>;
|
|
2241
|
-
readonly copiable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2242
|
-
/**
|
|
2243
|
-
* Nature de la valeur (« Identifiant de trace », « Reference de l'operation »), lue avant
|
|
2244
|
-
* elle. `null` : « Code », le mot generique du dictionnaire.
|
|
2245
|
-
*/
|
|
2246
|
-
readonly etiquette: import("@angular/core").InputSignal<string | null>;
|
|
2247
|
-
/**
|
|
2248
|
-
* Nom du bouton de copie. `null` : « Copier : <etiquette> » (« Copier : Code » sans etiquette).
|
|
2249
|
-
* Jamais la valeur : un secret (TOTP) devenait le nom du bouton, lu et journalise par les
|
|
2250
|
-
* technologies d'assistance (audit du 2026-09-27, A-11).
|
|
2251
|
-
*/
|
|
2252
|
-
readonly libelleCopier: import("@angular/core").InputSignal<string | null>;
|
|
2253
|
-
readonly messageDeConfirmation: import("@angular/core").InputSignal<string | null>;
|
|
2254
|
-
/**
|
|
2255
|
-
* La valeur telle qu'elle s'affiche ET se copie : sans commande de direction, ce qu'on voit est
|
|
2256
|
-
* ce qu'on colle (audit du 2026-09-27, A-2).
|
|
2257
|
-
*/
|
|
2258
|
-
protected readonly valeurAffichee: import("@angular/core").Signal<string>;
|
|
2259
|
-
protected readonly etiquetteLue: import("@angular/core").Signal<string>;
|
|
2260
|
-
protected readonly libelleCopierLu: import("@angular/core").Signal<string>;
|
|
2261
|
-
readonly copie: import("@angular/core").OutputEmitterRef<string>;
|
|
2262
|
-
protected readonly annonce: AnnonceLocale;
|
|
2263
|
-
protected readonly copieConfirmee: import("@angular/core").WritableSignal<boolean>;
|
|
2264
|
-
protected readonly copieRefusee: import("@angular/core").WritableSignal<boolean>;
|
|
2265
|
-
protected readonly iconeDeCopie: import("@angular/core").Signal<"iban" | "code" | "copie" | "accessibilite" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "connexion" | "contraste" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "devise" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "etoile" | "euro" | "fichier" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "imprimer" | "interdit" | "jalons" | "jauge" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu" | "menu-ouvert" | "message" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau-jauge" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "wifi" | "wifi-barre">;
|
|
2266
|
-
protected readonly messageDeRefus: import("@angular/core").Signal<string>;
|
|
2267
|
-
private minuterieDeConfirmation;
|
|
2268
|
-
constructor();
|
|
2269
|
-
/**
|
|
2270
|
-
* Le bouton n'apparait que si le navigateur sait copier. Sans presse-papiers,
|
|
2271
|
-
* un bouton qui ne fait rien vaut moins que la selection manuelle, que la
|
|
2272
|
-
* feuille garde possible (`user-select: all`).
|
|
2273
|
-
*/
|
|
2274
|
-
protected readonly copiePossible: import("@angular/core").Signal<boolean>;
|
|
2275
|
-
protected auClicDeCopie(): Promise<void>;
|
|
2276
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StCode, never>;
|
|
2277
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StCode, "st-code", never, {
|
|
2278
|
-
"valeur": {
|
|
2279
|
-
"alias": "valeur";
|
|
2280
|
-
"required": true;
|
|
2281
|
-
"isSignal": true;
|
|
2282
|
-
};
|
|
2283
|
-
"copiable": {
|
|
2284
|
-
"alias": "copiable";
|
|
2285
|
-
"required": false;
|
|
2286
|
-
"isSignal": true;
|
|
2287
|
-
};
|
|
2288
|
-
"etiquette": {
|
|
2289
|
-
"alias": "etiquette";
|
|
2290
|
-
"required": false;
|
|
2291
|
-
"isSignal": true;
|
|
2292
|
-
};
|
|
2293
|
-
"libelleCopier": {
|
|
2294
|
-
"alias": "libelleCopier";
|
|
2295
|
-
"required": false;
|
|
2296
|
-
"isSignal": true;
|
|
2297
|
-
};
|
|
2298
|
-
"messageDeConfirmation": {
|
|
2299
|
-
"alias": "messageDeConfirmation";
|
|
2300
|
-
"required": false;
|
|
2301
|
-
"isSignal": true;
|
|
2302
|
-
};
|
|
2303
|
-
}, {
|
|
2304
|
-
"copie": "copie";
|
|
2305
|
-
}, never, never, true, never>;
|
|
2306
|
-
}
|
|
2307
|
-
/**
|
|
2308
|
-
* ⚠️ `primaire` et non « info » : les deux designaient deja la meme couleur
|
|
2309
|
-
* d'accent, et rien ne distinguait un statut « info » d'un statut « primaire »
|
|
2310
|
-
* ailleurs dans le socle.
|
|
2311
|
-
*/
|
|
2312
|
-
export type TonDeStatut = TonSemantique;
|
|
2313
|
-
/**
|
|
2314
|
-
* `md` (defaut) : 24 px, libelle de 11 px, icone de 16 px au trait (planche 2 de Claude Design).
|
|
2315
|
-
* `sm` : 18 px, icone de 14 px PLEINE, pour les tableaux denses (a cette taille, un trait ne
|
|
2316
|
-
* se lit plus).
|
|
2317
|
-
*/
|
|
2318
|
-
export type TailleDePastille = 'md' | 'sm';
|
|
2319
|
-
/**
|
|
2320
|
-
* `icone` (defaut) : la forme du statut devant le libelle. `point` : un point fixe de 8 px,
|
|
2321
|
-
* reserve au TEMOIN DE LIAISON (« Passerelle active ») ; un statut metier garde sa forme.
|
|
2322
|
-
*/
|
|
2323
|
-
export type VarianteDePastille = 'icone' | 'point';
|
|
2324
|
-
/**
|
|
2325
|
-
* `capitales` (defaut) : le libelle en capitales de 11 px, a l'interlettrage du micro-libelle
|
|
2326
|
-
* (forme de la planche 4, DESIGN.md « label-sm uppercase »). `phrase` : la casse du texte, en
|
|
2327
|
-
* 12/16 — 11 px est reserve aux micro-libelles en capitales (ADR 0005 D18, D38).
|
|
2328
|
-
*/
|
|
2329
|
-
export type CasseDePastille = 'phrase' | 'capitales';
|
|
2330
|
-
/**
|
|
2331
|
-
* Pastille de statut.
|
|
2332
|
-
*
|
|
2333
|
-
* ⚠️ Le libelle est OBLIGATOIRE, et l'icone differe par sa FORME d'un ton a l'autre (coche,
|
|
2334
|
-
* horloge, croix, cercle) : un statut porte par la seule couleur est illisible pour une personne
|
|
2335
|
-
* daltonienne, a l'impression, et sous un theme a fort contraste. Sans icone fournie, la forme
|
|
2336
|
-
* vient du ton (lot 206) : un appelant ne peut plus l'oublier.
|
|
2337
|
-
*
|
|
2338
|
-
* ⚠️ Aucun role ARIA, malgre le nom du composant : `role="status"` en ferait
|
|
2339
|
-
* une region vivante, et une liste de vingt lignes ferait annoncer vingt
|
|
2340
|
-
* statuts a chaque rendu.
|
|
2341
|
-
*
|
|
2342
|
-
* Rendu de reference : la forme de la planche 4 (icone du ton, filet du ton a 20 %, capitales)
|
|
2343
|
-
* a la taille de la planche 2 (24 px, libelle 11/600, icone de 16 au trait), ADR web/starter 0005
|
|
2344
|
-
* D23. Les capitales sont le DEFAUT (revue E8) : un libelle de 11 px en casse de phrase est
|
|
2345
|
-
* refuse par D18 ; la casse de phrase passe a 12/16.
|
|
2346
|
-
*/
|
|
2347
|
-
export declare class StStatusPill {
|
|
2348
|
-
/** Code machine du statut : sert aux tests et aux selecteurs, jamais a l'affichage. */
|
|
2349
|
-
readonly statut: import("@angular/core").InputSignal<string>;
|
|
2350
|
-
/** Texte deja traduit par l'appelant : le socle ne traduit rien. */
|
|
2351
|
-
readonly libelle: import("@angular/core").InputSignal<string>;
|
|
2352
|
-
/**
|
|
2353
|
-
* `null` : la forme du ton (neutre `cercle`, information et primaire `cercle-info`, succes
|
|
2354
|
-
* `cercle-coche`, avertissement `triangle-alerte`, danger `cercle-croix`). Fournie, une forme
|
|
2355
|
-
* plus precise : `horloge` (en attente), `octogone-alerte` (bloque), `interdit` (opposition).
|
|
2356
|
-
*/
|
|
2357
|
-
readonly icone: import("@angular/core").InputSignal<Icone | null>;
|
|
2358
|
-
readonly ton: import("@angular/core").InputSignal<TonSemantique>;
|
|
2359
|
-
readonly taille: import("@angular/core").InputSignal<TailleDePastille>;
|
|
2360
|
-
readonly variante: import("@angular/core").InputSignal<VarianteDePastille>;
|
|
2361
|
-
readonly casse: import("@angular/core").InputSignal<CasseDePastille>;
|
|
2362
|
-
/**
|
|
2363
|
-
* L'icone dessinee : celle de l'appelant, ou la forme du ton. En `sm`, le jumeau PLEIN des
|
|
2364
|
-
* qu'il existe (a 14 px, un contour ne se lit plus) ; en `md`, le trait, sauf si l'appelant
|
|
2365
|
-
* demande lui-meme le plein (`{ nom, variante: 'plein' }`).
|
|
2366
|
-
*/
|
|
2367
|
-
protected readonly iconeDessinee: import("@angular/core").Signal<Icone>;
|
|
2368
|
-
protected readonly tailleDIcone: import("@angular/core").Signal<TailleDIcone>;
|
|
2369
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StStatusPill, never>;
|
|
2370
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StStatusPill, "st-status-pill", never, {
|
|
2371
|
-
"statut": {
|
|
2372
|
-
"alias": "statut";
|
|
2373
|
-
"required": true;
|
|
2374
|
-
"isSignal": true;
|
|
2375
|
-
};
|
|
2376
|
-
"libelle": {
|
|
2377
|
-
"alias": "libelle";
|
|
2378
|
-
"required": true;
|
|
2379
|
-
"isSignal": true;
|
|
2380
|
-
};
|
|
2381
|
-
"icone": {
|
|
2382
|
-
"alias": "icone";
|
|
2383
|
-
"required": false;
|
|
2384
|
-
"isSignal": true;
|
|
2385
|
-
};
|
|
2386
|
-
"ton": {
|
|
2387
|
-
"alias": "ton";
|
|
2388
|
-
"required": false;
|
|
2389
|
-
"isSignal": true;
|
|
2390
|
-
};
|
|
2391
|
-
"taille": {
|
|
2392
|
-
"alias": "taille";
|
|
2393
|
-
"required": false;
|
|
2394
|
-
"isSignal": true;
|
|
2395
|
-
};
|
|
2396
|
-
"variante": {
|
|
2397
|
-
"alias": "variante";
|
|
2398
|
-
"required": false;
|
|
2399
|
-
"isSignal": true;
|
|
2400
|
-
};
|
|
2401
|
-
"casse": {
|
|
2402
|
-
"alias": "casse";
|
|
2403
|
-
"required": false;
|
|
2404
|
-
"isSignal": true;
|
|
2405
|
-
};
|
|
2406
|
-
}, {}, never, never, true, never>;
|
|
2407
|
-
}
|
|
2408
|
-
/**
|
|
2409
|
-
* Ou le badge se pose sur son porteur :
|
|
2410
|
-
* - `haut-fin` (defaut) : centre sur le coin superieur de fin (droit en francais), a 6 px du bord ;
|
|
2411
|
-
* - `haut-debut` : le coin superieur de debut ;
|
|
2412
|
-
* - `en-ligne` : dans le flux, apres le libelle (entree de navigation, onglet).
|
|
2413
|
-
*/
|
|
2414
|
-
export type PositionDeBadge = 'haut-fin' | 'haut-debut' | 'en-ligne';
|
|
2415
|
-
/**
|
|
2416
|
-
* Porteur d'un `st-badge` : la cloche, l'entree de navigation, l'onglet qui compte.
|
|
2417
|
-
*
|
|
2418
|
-
* ```html
|
|
2419
|
-
* <span stBadgeAncre etiquetteDuCompte=", 3 non lues">
|
|
2420
|
-
* <st-icon nom="cloche" /> Notifications
|
|
2421
|
-
* <st-badge [valeur]="3" />
|
|
2422
|
-
* </span>
|
|
2423
|
-
* ```
|
|
2424
|
-
*
|
|
2425
|
-
* ⚠️ Elle remplace la classe `st-badge-ancre` que la 0.8.0 exigeait et qu'aucune feuille ne
|
|
2426
|
-
* definissait (A1099) : le badge restait dans le flux, loin de son porteur.
|
|
2427
|
-
*
|
|
2428
|
-
* Le badge est pose en ABSOLU dans son porteur : il apparait, grandit de « 3 » a « 99+ » et
|
|
2429
|
-
* disparait sans jamais deplacer le porteur ni la page (aucun decalage de mise en page). Un seul
|
|
2430
|
-
* decalage pour tous les badges : leur CENTRE a 6 px du coin, quelle que soit leur largeur.
|
|
2431
|
-
*
|
|
2432
|
-
* ⚠️ Le badge est MUET (un « 5 » flottant n'apprend rien) : le compte se dit par
|
|
2433
|
-
* `etiquetteDuCompte`, texte masque rendu DANS le porteur, donc dans son nom accessible
|
|
2434
|
-
* (« Notifications, 3 non lues »). Un porteur nomme par `aria-label` (un `stIconButton`) ignore
|
|
2435
|
-
* son contenu : le compte va alors dans son `etiquette`.
|
|
2436
|
-
*/
|
|
2437
|
-
export declare class StBadgeAncre {
|
|
2438
|
-
/** La position du badge ; l'attribut nu vaut `haut-fin`. */
|
|
2439
|
-
readonly position: import("@angular/core").InputSignalWithTransform<PositionDeBadge, "" | PositionDeBadge>;
|
|
2440
|
-
/** Texte lu du compte (« , 3 non lues »), deja traduit par l'appelant ; `null` : aucun. */
|
|
2441
|
-
readonly etiquetteDuCompte: import("@angular/core").InputSignal<string | null>;
|
|
2442
|
-
constructor();
|
|
2443
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StBadgeAncre, never>;
|
|
2444
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<StBadgeAncre, "[stBadgeAncre]", never, {
|
|
2445
|
-
"position": {
|
|
2446
|
-
"alias": "stBadgeAncre";
|
|
2447
|
-
"required": false;
|
|
2448
|
-
"isSignal": true;
|
|
2449
|
-
};
|
|
2450
|
-
"etiquetteDuCompte": {
|
|
2451
|
-
"alias": "etiquetteDuCompte";
|
|
2452
|
-
"required": false;
|
|
2453
|
-
"isSignal": true;
|
|
2454
|
-
};
|
|
2455
|
-
}, {}, never, never, true, never>;
|
|
2456
|
-
}
|
|
2457
|
-
export type TonDeBadge = TonSemantique;
|
|
2458
|
-
/**
|
|
2459
|
-
* Pastille de comptage superposee a un autre element (planche 2 de Claude Design, lot 206) :
|
|
2460
|
-
* disque de 20 px, gelule qui s'allonge sans changer de hauteur, « 99+ » au-dela du plafond,
|
|
2461
|
-
* point de 10 px a lisere de surface.
|
|
2462
|
-
*
|
|
2463
|
-
* ⚠️ Le chiffre est TOUJOURS muet. Un « 5 » flottant, lu hors contexte,
|
|
2464
|
-
* n'apprend rien. Le compte doit entrer dans le nom accessible de l'element
|
|
2465
|
-
* porteur : « Notifications, 5 non lues », par `etiquetteDuCompte` de l'ancre
|
|
2466
|
-
* (`[stBadgeAncre]`) ou compose par l'appelant.
|
|
2467
|
-
*
|
|
2468
|
-
* Pose dans un porteur `[stBadgeAncre]`, il s'y superpose ; seul, il reste dans le flux.
|
|
2469
|
-
*/
|
|
2470
|
-
export declare class StBadge {
|
|
2471
|
-
protected readonly ancre: StBadgeAncre | null;
|
|
2472
|
-
readonly valeur: import("@angular/core").InputSignal<string | number | null>;
|
|
2473
|
-
readonly max: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
2474
|
-
readonly ton: import("@angular/core").InputSignal<TonSemantique>;
|
|
2475
|
-
/** Point seul, sans chiffre : signale une nouveaute sans la quantifier. */
|
|
2476
|
-
readonly point: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2477
|
-
protected readonly texte: import("@angular/core").Signal<string>;
|
|
2478
|
-
/** Rien a montrer : ni chiffre, ni point. La place reste reservee, rien ne saute. */
|
|
2479
|
-
protected readonly vide: import("@angular/core").Signal<boolean>;
|
|
2480
|
-
protected readonly etiquetteDuCompte: import("@angular/core").Signal<string | null>;
|
|
2481
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StBadge, never>;
|
|
2482
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StBadge, "st-badge", never, {
|
|
2483
|
-
"valeur": {
|
|
2484
|
-
"alias": "valeur";
|
|
2485
|
-
"required": false;
|
|
2486
|
-
"isSignal": true;
|
|
2487
|
-
};
|
|
2488
|
-
"max": {
|
|
2489
|
-
"alias": "max";
|
|
2490
|
-
"required": false;
|
|
2491
|
-
"isSignal": true;
|
|
2492
|
-
};
|
|
2493
|
-
"ton": {
|
|
2494
|
-
"alias": "ton";
|
|
2495
|
-
"required": false;
|
|
2496
|
-
"isSignal": true;
|
|
2497
|
-
};
|
|
2498
|
-
"point": {
|
|
2499
|
-
"alias": "point";
|
|
2500
|
-
"required": false;
|
|
2501
|
-
"isSignal": true;
|
|
2502
|
-
};
|
|
2503
|
-
}, {}, never, never, true, never>;
|
|
2504
|
-
}
|
|
2505
|
-
/** Le ton de l'etiquette : papier teinte du ton (`discrete`) ou aplat (`pleine`). */
|
|
2506
|
-
export type TonDEtiquette = Exclude<Ton, 'discret' | 'inverse'>;
|
|
2507
|
-
/**
|
|
2508
|
-
* `md` (defaut) : 22 px, 4 x 10 de marge (planches 10 a 12) ; `sm` : 18 px, 2 x 8 (planches 2,
|
|
2509
|
-
* 6 et 8), pour une puce de code ou une legende. Le retrait n'existe qu'en `md`.
|
|
2510
|
-
*/
|
|
2511
|
-
export type TailleDEtiquette = 'md' | 'sm';
|
|
2512
|
-
/**
|
|
2513
|
-
* `discrete` : texte du ton sur son papier teinte ; `pleine` : texte clair sur l'aplat du ton ;
|
|
2514
|
-
* `attenuee` : le papier attenue de la marque, plus soutenu que le discret (surtitre en pastille
|
|
2515
|
-
* d'un en-tete, planche 2 ; ADR 0005 D44). Seul le ton `primaire` a un papier attenue : un autre
|
|
2516
|
-
* ton garde son papier discret.
|
|
2517
|
-
*/
|
|
2518
|
-
export type VarianteDEtiquette = 'discrete' | 'pleine' | 'attenuee';
|
|
2519
|
-
/** `mono` : une puce de code ou de reference, en JetBrains Mono (planches 2, 3 et 9). */
|
|
2520
|
-
export type PoliceDEtiquette = 'texte' | 'mono';
|
|
2521
|
-
/**
|
|
2522
|
-
* `phrase` (defaut) : la casse du texte (une reference de code ne se met pas en capitales), en
|
|
2523
|
-
* 12/16 ; `capitales` : le micro-libelle de 11 px. 11 px est reserve aux capitales (ADR 0005 D18,
|
|
2524
|
-
* D38 ; revue E8).
|
|
2525
|
-
*/
|
|
2526
|
-
export type CasseDEtiquette = 'phrase' | 'capitales';
|
|
2527
|
-
/**
|
|
2528
|
-
* Etiquette : une puce non interactive (categorie, reference, legende), eventuellement
|
|
2529
|
-
* retirable dans un formulaire. Un filtre actif est un `st-filter-chip`.
|
|
2530
|
-
*
|
|
2531
|
-
* Rendu de reference : les puces des planches 2 a 16 de Claude Design (lot 206) — libelle
|
|
2532
|
-
* 11/600 au micro-interlettrage en capitales, 12/16 en casse de phrase (D18), coins de 4 px (la
|
|
2533
|
-
* pilule de quelques planches est un ecart assume), point ou icone de tete, police mono.
|
|
2534
|
-
*
|
|
2535
|
-
* ⚠️ Le retrait DEPLACE LE FOCUS. Sans cela, le bouton disparait sous le doigt de
|
|
2536
|
-
* l'utilisateur clavier, le focus retombe sur le corps du document, et la navigation repart du
|
|
2537
|
-
* haut de la page. C'est l'un des defauts d'accessibilite les plus frequents des listes
|
|
2538
|
-
* d'etiquettes. Le focus va au bouton de retrait de la prochaine etiquette RETIRABLE, puis de la
|
|
2539
|
-
* precedente, jamais a un autre bouton de la page ; a defaut, au groupe, ou au premier ancetre
|
|
2540
|
-
* focalisable par script. Seul le MOMENT change avec le groupe (D80) : la liste de
|
|
2541
|
-
* `[stGroupeDEtiquettes]` le pose avant l'emission ; `st-tag-group`, dont l'application tient les
|
|
2542
|
-
* elements, apres leur retrait reel.
|
|
2543
|
-
*
|
|
2544
|
-
* ⚠️ Le role `listitem` n'est pose que dans la liste de `[stGroupeDEtiquettes]`, et PARTAGE : hors
|
|
2545
|
-
* groupe, le role que l'appelant a ecrit (`<st-tag role="listitem">` dans sa propre liste) reste
|
|
2546
|
-
* (revue E8 ; une liaison d'hote l'effacait). Dans le `li` de `st-tag-group`, aucun.
|
|
2547
|
-
*/
|
|
2548
|
-
export declare class StTag {
|
|
2549
|
-
private readonly element;
|
|
2550
|
-
private readonly libelles;
|
|
2551
|
-
private readonly groupe;
|
|
2552
|
-
/** Le role du groupe, sauf role ecrit par l'appelant ; hors groupe, le sien. */
|
|
2553
|
-
private readonly role;
|
|
2554
|
-
readonly libelle: import("@angular/core").InputSignal<string>;
|
|
2555
|
-
readonly supprimable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2556
|
-
readonly ton: import("@angular/core").InputSignal<TonDEtiquette>;
|
|
2557
|
-
readonly taille: import("@angular/core").InputSignal<TailleDEtiquette>;
|
|
2558
|
-
readonly variante: import("@angular/core").InputSignal<VarianteDEtiquette>;
|
|
2559
|
-
readonly police: import("@angular/core").InputSignal<PoliceDEtiquette>;
|
|
2560
|
-
readonly casse: import("@angular/core").InputSignal<CasseDEtiquette>;
|
|
2561
|
-
/** Un point de 6 px a l'encre du ton, devant le libelle (planches 2, 11 et 12). */
|
|
2562
|
-
readonly point: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
2563
|
-
/** Une icone de tete, decorative : le libelle porte le sens. */
|
|
2564
|
-
readonly iconeAvant: import("@angular/core").InputSignal<Icone | null>;
|
|
2565
|
-
readonly supprime: import("@angular/core").OutputEmitterRef<void>;
|
|
2566
|
-
constructor();
|
|
2567
|
-
/** Le retrait n'existe qu'en `md` : a 18 px, sa cible tomberait sous 24 px. */
|
|
2568
|
-
protected readonly retirable: import("@angular/core").Signal<boolean>;
|
|
2569
|
-
/**
|
|
2570
|
-
* Le nom du bouton de retrait : `LibellesUi.retirerLEtiquette(libelle)`, qui laisse la langue
|
|
2571
|
-
* ordonner les mots (« Paris retire » contre « Remove Paris »).
|
|
2572
|
-
*/
|
|
2573
|
-
protected readonly libelleDeSuppression: import("@angular/core").Signal<string>;
|
|
2574
|
-
/**
|
|
2575
|
-
* Le libelle est souvent une donnee (une ville, un courriel) : sans commande de direction, et
|
|
2576
|
-
* isole (`<bdi>`), il ne reordonne ni l'etiquette ni ce qui l'entoure (audit du 2026-09-26, S-1).
|
|
2577
|
-
*/
|
|
2578
|
-
protected readonly libelleAffiche: import("@angular/core").Signal<string>;
|
|
2579
|
-
protected auRetrait(): void;
|
|
2580
|
-
/**
|
|
2581
|
-
* `Suppr` et `Retour arriere` sur le bouton retirent aussi l'etiquette (APG) : la touche que
|
|
2582
|
-
* l'on presse naturellement pour effacer une valeur.
|
|
2583
|
-
*/
|
|
2584
|
-
protected auClavier(evenement: Event): void;
|
|
2585
|
-
/**
|
|
2586
|
-
* Le bouton de retrait de la prochaine etiquette soeur RETIRABLE (une puce sans retrait, ou un
|
|
2587
|
-
* autre element, est sautee), a defaut de la precedente. Seules les etiquettes soeurs comptent :
|
|
2588
|
-
* un autre bouton voisin n'est pas la suite de la liste.
|
|
2589
|
-
*/
|
|
2590
|
-
private voisineRetirable;
|
|
2591
|
-
/** Hors groupe, a defaut de voisine : le premier ancetre focalisable par script. */
|
|
2592
|
-
private ancetreFocalisable;
|
|
2593
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StTag, never>;
|
|
2594
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StTag, "st-tag", never, {
|
|
2595
|
-
"libelle": {
|
|
2596
|
-
"alias": "libelle";
|
|
2597
|
-
"required": true;
|
|
2598
|
-
"isSignal": true;
|
|
2599
|
-
};
|
|
2600
|
-
"supprimable": {
|
|
2601
|
-
"alias": "supprimable";
|
|
2602
|
-
"required": false;
|
|
2603
|
-
"isSignal": true;
|
|
2604
|
-
};
|
|
2605
|
-
"ton": {
|
|
2606
|
-
"alias": "ton";
|
|
2607
|
-
"required": false;
|
|
2608
|
-
"isSignal": true;
|
|
2609
|
-
};
|
|
2610
|
-
"taille": {
|
|
2611
|
-
"alias": "taille";
|
|
2612
|
-
"required": false;
|
|
2613
|
-
"isSignal": true;
|
|
2614
|
-
};
|
|
2615
|
-
"variante": {
|
|
2616
|
-
"alias": "variante";
|
|
2617
|
-
"required": false;
|
|
2618
|
-
"isSignal": true;
|
|
2619
|
-
};
|
|
2620
|
-
"police": {
|
|
2621
|
-
"alias": "police";
|
|
2622
|
-
"required": false;
|
|
2623
|
-
"isSignal": true;
|
|
2624
|
-
};
|
|
2625
|
-
"casse": {
|
|
2626
|
-
"alias": "casse";
|
|
2627
|
-
"required": false;
|
|
2628
|
-
"isSignal": true;
|
|
2629
|
-
};
|
|
2630
|
-
"point": {
|
|
2631
|
-
"alias": "point";
|
|
2632
|
-
"required": false;
|
|
2633
|
-
"isSignal": true;
|
|
2634
|
-
};
|
|
2635
|
-
"iconeAvant": {
|
|
2636
|
-
"alias": "iconeAvant";
|
|
2637
|
-
"required": false;
|
|
2638
|
-
"isSignal": true;
|
|
2639
|
-
};
|
|
2640
|
-
}, {
|
|
2641
|
-
"supprime": "supprime";
|
|
2642
|
-
}, never, never, true, never>;
|
|
2643
|
-
}
|
|
2644
|
-
/**
|
|
2645
|
-
* Groupe d'etiquettes retirables : une liste (`role="list"`, chaque `st-tag` en `listitem`) et
|
|
2646
|
-
* UNE region polie qui dit ce qui vient d'etre retire (« Paris retire »).
|
|
2647
|
-
*
|
|
2648
|
-
* ```html
|
|
2649
|
-
* <div stGroupeDEtiquettes etiquette="Villes choisies">
|
|
2650
|
-
* @for (ville of villes(); track ville) {
|
|
2651
|
-
* <st-tag [libelle]="ville" supprimable (supprime)="retirer(ville)" />
|
|
2652
|
-
* }
|
|
2653
|
-
* </div>
|
|
2654
|
-
* ```
|
|
2655
|
-
*
|
|
2656
|
-
* ⚠️ La region vit dans le GROUPE, et non dans l'etiquette : l'etiquette retiree quitte le
|
|
2657
|
-
* document avant que son annonce n'arrive (`rythme.delai.annonce`), et une region detruite ne
|
|
2658
|
-
* dit plus rien. Elle est hors de la liste : une liste ne contient que ses elements.
|
|
2659
|
-
*
|
|
2660
|
-
* ⚠️ La liste est focalisable par script (`tabindex="-1"`, hors de l'ordre de tabulation) : la
|
|
2661
|
-
* DERNIERE etiquette retiree y pose le focus, qui sinon retombait sur le corps du document.
|
|
2662
|
-
*
|
|
2663
|
-
* Les etiquettes projetees recoivent ces crochets par un jeton (D80, partage avec `st-tag-group`) :
|
|
2664
|
-
* chacune y est un `listitem`, et son retrait pose le focus et s'annonce AVANT son emission.
|
|
2665
|
-
* Des etiquettes decrites en donnees, que l'application retire elle-meme, vont dans
|
|
2666
|
-
* `st-tag-group`.
|
|
2667
|
-
*/
|
|
2668
|
-
export declare class StGroupeDEtiquettes {
|
|
2669
|
-
private readonly libelles;
|
|
2670
|
-
/** Nom de la liste, lu en y entrant (« Villes choisies ») ; `null` : aucun. */
|
|
2671
|
-
readonly etiquette: import("@angular/core").InputSignal<string | null>;
|
|
2672
|
-
protected readonly annonce: AnnonceLocale;
|
|
2673
|
-
private readonly liste;
|
|
2674
|
-
/** Appele par une etiquette du groupe au moment ou elle est retiree. */
|
|
2675
|
-
annoncerLeRetrait(libelle: string): void;
|
|
2676
|
-
/** Appele par une etiquette retiree qui n'a plus de voisine retirable ou poser le focus. */
|
|
2677
|
-
recevoirLeFocus(): void;
|
|
2678
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StGroupeDEtiquettes, never>;
|
|
2679
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StGroupeDEtiquettes, "[stGroupeDEtiquettes]", never, {
|
|
2680
|
-
"etiquette": {
|
|
2681
|
-
"alias": "etiquette";
|
|
2682
|
-
"required": false;
|
|
2683
|
-
"isSignal": true;
|
|
2684
|
-
};
|
|
2685
|
-
}, {}, never, ["*"], true, never>;
|
|
2686
|
-
}
|
|
2687
|
-
/** Une etiquette du groupe, decrite en donnees. */
|
|
2688
|
-
export interface EtiquetteDeGroupe {
|
|
2689
|
-
/** Cle stable et unique dans le groupe : c'est elle que `supprime` emet. */
|
|
2690
|
-
readonly valeur: string;
|
|
2691
|
-
readonly libelle: string;
|
|
2692
|
-
readonly ton?: TonDEtiquette;
|
|
2693
|
-
/** Offre le bouton de retrait, nomme par `retirerLEtiquette` (« Retirer Paris »). */
|
|
2694
|
-
readonly supprimable?: boolean;
|
|
2695
|
-
}
|
|
2696
|
-
/**
|
|
2697
|
-
* Le champ qui contient un `st-tag-group` (`st-tag-input`) : le groupe annonce ses retraits dans
|
|
2698
|
-
* la region du champ, la seule du champ (D81), et rend le focus au champ quand plus aucune
|
|
2699
|
-
* etiquette retirable ne reste.
|
|
2700
|
-
*/
|
|
2701
|
-
export interface ChampAEtiquettes {
|
|
2702
|
-
annoncer(message: string): void;
|
|
2703
|
-
recevoirLeFocus(): void;
|
|
2704
|
-
}
|
|
2705
|
-
export declare const ST_CHAMP_A_ETIQUETTES: InjectionToken<ChampAEtiquettes>;
|
|
2706
|
-
/**
|
|
2707
|
-
* Groupe d'etiquettes decrites en donnees : une liste nommee, `ul > li > st-tag` (lot 252, ADR
|
|
2708
|
-
* 0005 D80).
|
|
2709
|
-
*
|
|
2710
|
-
* ```html
|
|
2711
|
-
* <st-tag-group etiquette="Villes choisies" [elements]="villes()" (supprime)="retirer($event)" />
|
|
2712
|
-
* ```
|
|
2713
|
-
*
|
|
2714
|
-
* La liste est nommee SANS compte : le lecteur d'ecran dit deja le nombre d'elements en y
|
|
2715
|
-
* entrant. Des etiquettes projetees vont dans `[stGroupeDEtiquettes]`.
|
|
2716
|
-
*
|
|
2717
|
-
* ⚠️ **Le focus suit le retrait REEL.** `elements` appartient a l'application : le groupe emet
|
|
2718
|
-
* `supprime(valeur)` et attend que la valeur ait quitte la liste (apres un aller-retour serveur
|
|
2719
|
-
* compris) pour rendre le focus a l'etiquette retirable suivante, sinon a la precedente, sinon a
|
|
2720
|
-
* la liste (focalisable par script) — ou au champ qui contient le groupe. Focaliser a la demande
|
|
2721
|
-
* visait une etiquette encore presente, puis le document quand elle disparaissait (A1160). Un
|
|
2722
|
-
* focus parti ailleurs pendant l'attente n'est jamais repris. L'annonce (« Paris retire ») part
|
|
2723
|
-
* au meme moment : elle dit ce qui a quitte la liste, et non ce qui a ete demande.
|
|
2724
|
-
*/
|
|
2725
|
-
export declare class StTagGroup {
|
|
2726
|
-
private readonly libelles;
|
|
2727
|
-
private readonly document;
|
|
2728
|
-
private readonly injecteur;
|
|
2729
|
-
protected readonly champ: ChampAEtiquettes | null;
|
|
2730
|
-
/** Nom de la liste, lu en y entrant (« Villes choisies »). */
|
|
2731
|
-
readonly etiquette: import("@angular/core").InputSignal<string>;
|
|
2732
|
-
/** Les etiquettes, dans l'ordre. */
|
|
2733
|
-
readonly elements: import("@angular/core").InputSignal<readonly EtiquetteDeGroupe[]>;
|
|
2734
|
-
/** La `valeur` de l'etiquette dont la personne demande le retrait. */
|
|
2735
|
-
readonly supprime: import("@angular/core").OutputEmitterRef<string>;
|
|
2736
|
-
protected readonly annonce: AnnonceLocale;
|
|
2737
|
-
private readonly liste;
|
|
2738
|
-
private enAttente;
|
|
2739
|
-
constructor();
|
|
2740
|
-
protected retirer(element: EtiquetteDeGroupe, indice: number): void;
|
|
2741
|
-
private annoncer;
|
|
2742
|
-
/**
|
|
2743
|
-
* Seulement si le focus a ete perdu avec l'etiquette, ou s'il est encore sur ce qui a demande le
|
|
2744
|
-
* retrait : la touche suivante (Espace, Entree) activerait sinon la voisine et retirerait une
|
|
2745
|
-
* seconde etiquette.
|
|
2746
|
-
*/
|
|
2747
|
-
private rendreLeFocus;
|
|
2748
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StTagGroup, never>;
|
|
2749
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StTagGroup, "st-tag-group", never, {
|
|
2750
|
-
"etiquette": {
|
|
2751
|
-
"alias": "etiquette";
|
|
2752
|
-
"required": true;
|
|
2753
|
-
"isSignal": true;
|
|
2754
|
-
};
|
|
2755
|
-
"elements": {
|
|
2756
|
-
"alias": "elements";
|
|
2757
|
-
"required": false;
|
|
2758
|
-
"isSignal": true;
|
|
2759
|
-
};
|
|
2760
|
-
}, {
|
|
2761
|
-
"supprime": "supprime";
|
|
2762
|
-
}, never, never, true, never>;
|
|
2763
|
-
}
|
|
2764
1925
|
/** xs 24, sm 32, md 40 (defaut), lg 64, xl 96 px : l'echelle d'espacement du socle. */
|
|
2765
1926
|
export type TailleDAvatar = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
2766
1927
|
export type FormeDAvatar = 'cercle' | 'carre';
|
|
@@ -3318,180 +2479,42 @@ export declare class StCard {
|
|
|
3318
2479
|
* </st-card>
|
|
3319
2480
|
* ```
|
|
3320
2481
|
*
|
|
3321
|
-
* La carte ne devient pas un controle : le nom accessible reste celui du lien,
|
|
3322
|
-
* le clavier n'a rien de plus a apprendre, et la zone cliquable couvre la carte
|
|
3323
|
-
* par un pseudo-element du lien. La carte, elle, se dit interactive
|
|
3324
|
-
* (`data-interactive` : survol, appui) et porte l'anneau quand le lien a le focus
|
|
3325
|
-
* visible.
|
|
3326
|
-
*
|
|
3327
|
-
* ⚠️ Le pseudo-element vit dans `@starterlib/ui/styles/couches.css`, la feuille
|
|
3328
|
-
* que l'hote charge deja : une feuille de composant ne peut pas regler un
|
|
3329
|
-
* element projete sans percer l'encapsulation (`::ng-deep`, deprecie). Sans
|
|
3330
|
-
* cette feuille, le lien reste un lien, seulement pas etendu.
|
|
3331
|
-
*
|
|
3332
|
-
* ⚠️ L'hote doit rester en `position: static` : le pseudo-element se cale sur
|
|
3333
|
-
* le premier ancetre positionne, qui doit etre la carte. `a`, `a[stLink]` et un
|
|
3334
|
-
* `button` natif le sont ; `button[stButton]` et `button[stIconButton]` NON (leur
|
|
3335
|
-
* hote ancre l'indicateur de chargement) : la directive y est refusee, la carte
|
|
3336
|
-
* ne se dit pas interactive, et un avertissement le signale en developpement.
|
|
3337
|
-
* Un hote positionne par une feuille d'application est traite de meme apres le
|
|
3338
|
-
* premier rendu.
|
|
3339
|
-
*
|
|
3340
|
-
* Les AUTRES controles de la carte passent au-dessus de la zone etendue par une
|
|
3341
|
-
* regle de `couches.css` (`position: relative; z-index: 1`, sans specificite :
|
|
3342
|
-
* une position ecrite par l'application gagne) ; en developpement, la directive
|
|
3343
|
-
* verifie au premier focus que chacun reste atteignable au pointeur.
|
|
3344
|
-
*/
|
|
3345
|
-
export declare class StLienEtendu {
|
|
3346
|
-
private readonly element;
|
|
3347
|
-
private readonly carte;
|
|
3348
|
-
protected inscription: import("@starterlib/ui").InscriptionDeLienEtendu | undefined;
|
|
3349
|
-
protected readonly actif: import("@angular/core").WritableSignal<boolean>;
|
|
3350
|
-
private verifie;
|
|
3351
|
-
constructor();
|
|
3352
|
-
protected signalerLeFocus(): void;
|
|
3353
|
-
/** Un hote positionne par une feuille d'application : meme refus, apres rendu. */
|
|
3354
|
-
private refuserUnHotePositionne;
|
|
3355
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StLienEtendu, never>;
|
|
3356
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<StLienEtendu, "a[stLienEtendu], button[stLienEtendu]", never, {}, {}, never, never, true, never>;
|
|
3357
|
-
}
|
|
3358
|
-
export type EspacementDeSection = 'aucun' | 'sm' | 'md' | 'lg';
|
|
3359
|
-
/**
|
|
3360
|
-
* Regroupement de contenu, expose comme REPERE de navigation quand il porte un
|
|
3361
|
-
* nom, pose en ATTRIBUT sur une vraie balise `section`.
|
|
3362
|
-
*
|
|
3363
|
-
* ```html
|
|
3364
|
-
* <section stSection titreDe="titre-operations" surtitre="Compte courant">
|
|
3365
|
-
* <h2 stHeading titre id="titre-operations">Operations recentes</h2>
|
|
3366
|
-
* <button stButton fin type="button">Exporter</button>
|
|
3367
|
-
* …
|
|
3368
|
-
* </section>
|
|
3369
|
-
* ```
|
|
3370
|
-
*
|
|
3371
|
-
* ⚠️ Le point qui decide de tout : une region n'est exposee comme repere que si
|
|
3372
|
-
* elle a un NOM ACCESSIBLE. Sans nom, la plupart des lecteurs d'ecran
|
|
3373
|
-
* l'ignorent — la balise est la, le repere n'existe pas, et rien ne le signale.
|
|
3374
|
-
* Une `section` native sans nom reste un simple bloc, ce qu'elle est
|
|
3375
|
-
* reellement : son role de region vient de son nom, sans rien poser.
|
|
3376
|
-
*
|
|
3377
|
-
* Deux facons de la nommer, et la seconde vaut mieux : `titreDe` pointe le
|
|
3378
|
-
* titre deja affiche, ce qui garde un seul texte a traduire et a maintenir. On
|
|
3379
|
-
* nomme une section quand une personne au lecteur d'ecran voudrait y SAUTER ;
|
|
3380
|
-
* au-dela de cinq reperes nommes par page, on regroupe.
|
|
3381
|
-
*
|
|
3382
|
-
* L'en-tete (planches 11 a 14) est facultatif : surtitre, titre projete
|
|
3383
|
-
* (`[titre]`), description, et ce qui se place au bout (`[fin]` : une puce, une
|
|
3384
|
-
* action). Sans aucun des quatre, il n'existe pas.
|
|
3385
|
-
*/
|
|
3386
|
-
export declare class StSection {
|
|
3387
|
-
/** Nom accessible ecrit a la main. A preferer `titreDe` quand un titre existe. */
|
|
3388
|
-
readonly etiquette: import("@angular/core").InputSignal<string | null>;
|
|
3389
|
-
/** Identifiant du titre qui nomme la section. Prime sur `etiquette`. */
|
|
3390
|
-
readonly titreDe: import("@angular/core").InputSignal<string | null>;
|
|
3391
|
-
/** Marge apres la section : 0, 16, 24 (defaut) ou 32 px. */
|
|
3392
|
-
readonly espacement: import("@angular/core").InputSignal<EspacementDeSection>;
|
|
3393
|
-
/** Petites capitales au-dessus du titre (planche 11). */
|
|
3394
|
-
readonly surtitre: import("@angular/core").InputSignal<string | null>;
|
|
3395
|
-
/** Une phrase sous le titre (planches 13 et 14). */
|
|
3396
|
-
readonly description: import("@angular/core").InputSignal<string | null>;
|
|
3397
|
-
private readonly element;
|
|
3398
|
-
/**
|
|
3399
|
-
* ⚠️ `aria-labelledby` et `aria-label` sont PARTAGES avec l'appelant
|
|
3400
|
-
* (`noyau/attributs-partages`) : le composant ne pose que ce que ses entrees disent, et garde
|
|
3401
|
-
* ce que l'appelant a ecrit OU LIE (`[attr.aria-labelledby]="idTitre"`). Une liaison d'hote
|
|
3402
|
-
* effacait le nom lie, et la section cessait d'etre un repere sans rien dire (revue E7).
|
|
3403
|
-
*/
|
|
3404
|
-
private readonly nommeePar;
|
|
3405
|
-
private readonly nom;
|
|
3406
|
-
constructor();
|
|
3407
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StSection, never>;
|
|
3408
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StSection, "section[stSection]", never, {
|
|
3409
|
-
"etiquette": {
|
|
3410
|
-
"alias": "etiquette";
|
|
3411
|
-
"required": false;
|
|
3412
|
-
"isSignal": true;
|
|
3413
|
-
};
|
|
3414
|
-
"titreDe": {
|
|
3415
|
-
"alias": "titreDe";
|
|
3416
|
-
"required": false;
|
|
3417
|
-
"isSignal": true;
|
|
3418
|
-
};
|
|
3419
|
-
"espacement": {
|
|
3420
|
-
"alias": "espacement";
|
|
3421
|
-
"required": false;
|
|
3422
|
-
"isSignal": true;
|
|
3423
|
-
};
|
|
3424
|
-
"surtitre": {
|
|
3425
|
-
"alias": "surtitre";
|
|
3426
|
-
"required": false;
|
|
3427
|
-
"isSignal": true;
|
|
3428
|
-
};
|
|
3429
|
-
"description": {
|
|
3430
|
-
"alias": "description";
|
|
3431
|
-
"required": false;
|
|
3432
|
-
"isSignal": true;
|
|
3433
|
-
};
|
|
3434
|
-
}, {}, never, ["[titre]", "[fin]", "*"], true, never>;
|
|
3435
|
-
}
|
|
3436
|
-
export type OrientationDeSeparateur = 'horizontale' | 'verticale';
|
|
3437
|
-
/**
|
|
3438
|
-
* `filet` (defaut) : la bordure decorative #d7dadf ; `tonale` : le trait de la surface du
|
|
3439
|
-
* conteneur haut #e3e8f4, pose dans un panneau teinte (planches 10, 11 et 13). Un separateur
|
|
3440
|
-
* porteur de sens prend la bordure forte (3,78:1) quelle que soit la variante.
|
|
3441
|
-
*/
|
|
3442
|
-
export type VarianteDeSeparateur = 'filet' | 'tonale';
|
|
3443
|
-
/**
|
|
3444
|
-
* Trait de separation.
|
|
3445
|
-
*
|
|
3446
|
-
* ⚠️ **Decoratif par defaut, et c'est le bon defaut.** Un `<hr>` porte le role
|
|
3447
|
-
* `separator` de facon implicite, que les lecteurs d'ecran annoncent. Sur une
|
|
3448
|
-
* page qui en compte huit — ce qui est courant dans une liste de reglages — la
|
|
3449
|
-
* lecture est ponctuee de huit « separateur » qui n'apprennent rien.
|
|
3450
|
-
*
|
|
3451
|
-
* Le role ne se pose que lorsque le trait porte vraiment du sens : il separe
|
|
3452
|
-
* alors deux GROUPES que rien d'autre ne distingue, comme les sections d'un
|
|
3453
|
-
* menu. Regle de tri : si le retirer ne retire aucune information, il est
|
|
3454
|
-
* decoratif. Decoratif, il porte `aria-hidden` SEUL : un `role="none"` en plus
|
|
3455
|
-
* ne disait rien de plus a un element deja retire de l'arbre.
|
|
2482
|
+
* La carte ne devient pas un controle : le nom accessible reste celui du lien,
|
|
2483
|
+
* le clavier n'a rien de plus a apprendre, et la zone cliquable couvre la carte
|
|
2484
|
+
* par un pseudo-element du lien. La carte, elle, se dit interactive
|
|
2485
|
+
* (`data-interactive` : survol, appui) et porte l'anneau quand le lien a le focus
|
|
2486
|
+
* visible.
|
|
3456
2487
|
*
|
|
3457
|
-
*
|
|
3458
|
-
*
|
|
2488
|
+
* ⚠️ Le pseudo-element vit dans `@starterlib/ui/styles/couches.css`, la feuille
|
|
2489
|
+
* que l'hote charge deja : une feuille de composant ne peut pas regler un
|
|
2490
|
+
* element projete sans percer l'encapsulation (`::ng-deep`, deprecie). Sans
|
|
2491
|
+
* cette feuille, le lien reste un lien, seulement pas etendu.
|
|
3459
2492
|
*
|
|
3460
|
-
*
|
|
3461
|
-
*
|
|
3462
|
-
*
|
|
3463
|
-
*
|
|
2493
|
+
* ⚠️ L'hote doit rester en `position: static` : le pseudo-element se cale sur
|
|
2494
|
+
* le premier ancetre positionne, qui doit etre la carte. `a`, `a[stLink]` et un
|
|
2495
|
+
* `button` natif le sont ; `button[stButton]` et `button[stIconButton]` NON (leur
|
|
2496
|
+
* hote ancre l'indicateur de chargement) : la directive y est refusee, la carte
|
|
2497
|
+
* ne se dit pas interactive, et un avertissement le signale en developpement.
|
|
2498
|
+
* Un hote positionne par une feuille d'application est traite de meme apres le
|
|
2499
|
+
* premier rendu.
|
|
3464
2500
|
*
|
|
3465
|
-
*
|
|
3466
|
-
*
|
|
3467
|
-
*
|
|
2501
|
+
* Les AUTRES controles de la carte passent au-dessus de la zone etendue par une
|
|
2502
|
+
* regle de `couches.css` (`position: relative; z-index: 1`, sans specificite :
|
|
2503
|
+
* une position ecrite par l'application gagne) ; en developpement, la directive
|
|
2504
|
+
* verifie au premier focus que chacun reste atteignable au pointeur.
|
|
3468
2505
|
*/
|
|
3469
|
-
export declare class
|
|
3470
|
-
readonly
|
|
3471
|
-
readonly
|
|
3472
|
-
|
|
3473
|
-
readonly
|
|
3474
|
-
|
|
3475
|
-
protected readonly avecTexte: import("@angular/core").WritableSignal<boolean>;
|
|
2506
|
+
export declare class StLienEtendu {
|
|
2507
|
+
private readonly element;
|
|
2508
|
+
private readonly carte;
|
|
2509
|
+
protected inscription: import("@starterlib/ui").InscriptionDeLienEtendu | undefined;
|
|
2510
|
+
protected readonly actif: import("@angular/core").WritableSignal<boolean>;
|
|
2511
|
+
private verifie;
|
|
3476
2512
|
constructor();
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
"isSignal": true;
|
|
3483
|
-
};
|
|
3484
|
-
"variante": {
|
|
3485
|
-
"alias": "variante";
|
|
3486
|
-
"required": false;
|
|
3487
|
-
"isSignal": true;
|
|
3488
|
-
};
|
|
3489
|
-
"porteurDeSens": {
|
|
3490
|
-
"alias": "porteurDeSens";
|
|
3491
|
-
"required": false;
|
|
3492
|
-
"isSignal": true;
|
|
3493
|
-
};
|
|
3494
|
-
}, {}, never, ["*"], true, never>;
|
|
2513
|
+
protected signalerLeFocus(): void;
|
|
2514
|
+
/** Un hote positionne par une feuille d'application : meme refus, apres rendu. */
|
|
2515
|
+
private refuserUnHotePositionne;
|
|
2516
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StLienEtendu, never>;
|
|
2517
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<StLienEtendu, "a[stLienEtendu], button[stLienEtendu]", never, {}, {}, never, never, true, never>;
|
|
3495
2518
|
}
|
|
3496
2519
|
/**
|
|
3497
2520
|
* Taille du titre de page : `3xl` (32 px, 24 sous `md`) par defaut ; `4xl` pour
|
|
@@ -4201,294 +3224,6 @@ export declare class StAuthShell {
|
|
|
4201
3224
|
static ɵfac: i0.ɵɵFactoryDeclaration<StAuthShell, never>;
|
|
4202
3225
|
static ɵcmp: i0.ɵɵComponentDeclaration<StAuthShell, "st-auth-shell", never, {}, {}, never, ["[entete]", "[banniere]", "*", "[pied]", "[version]"], true, never>;
|
|
4203
3226
|
}
|
|
4204
|
-
/** `clair` : surface a liseret primaire. `marque` : ilot sombre de la marque, a halo. */
|
|
4205
|
-
export type VarianteDeDemarrage = 'clair' | 'marque';
|
|
4206
|
-
/**
|
|
4207
|
-
* Ecran de demarrage : ce qu'on voit pendant que l'application se charge, APRES l'amorce statique
|
|
4208
|
-
* (`@starterlib/ui/styles/amorce.css`, peinte avant le JavaScript) et avant le premier ecran.
|
|
4209
|
-
*
|
|
4210
|
-
* ```html
|
|
4211
|
-
* <st-splash-screen variante="marque" nom="Banque Exemple" sousTitre="Tresorerie"
|
|
4212
|
-
* statut="Synchronisation des ordres" version="Version 0.9.0">
|
|
4213
|
-
* <st-icon logo nom="banque" taille="28" />
|
|
4214
|
-
* <span surtitre>PORTAIL</span>
|
|
4215
|
-
* </st-splash-screen>
|
|
4216
|
-
* ```
|
|
4217
|
-
*
|
|
4218
|
-
* ⚠️ **Aucune retention artificielle** (D25) : l'application le retire des qu'elle est prete. Un
|
|
4219
|
-
* ecran de demarrage qui se montre « au moins deux secondes » fait attendre pour rien.
|
|
4220
|
-
*
|
|
4221
|
-
* ⚠️ **Le statut n'apparait qu'apres `rythme.delai.attente`** (200 ms) : un demarrage rapide ne
|
|
4222
|
-
* fait pas clignoter une phrase qu'on n'a pas le temps de lire. Il est lu par une region
|
|
4223
|
-
* `status`, presente VIDE des la creation ; sans `statut`, elle lit le libelle par defaut
|
|
4224
|
-
* (`chargementEnCours`, masque) : l'attente est un message d'etat (WCAG 4.1.3). L'indicateur et
|
|
4225
|
-
* la barre, eux, se taisent (une seule annonce).
|
|
4226
|
-
*
|
|
4227
|
-
* ⚠️ **Aucun `aria-busy` sur l'ecran** : un sous-arbre `busy` peut etre ignore par les lecteurs
|
|
4228
|
-
* d'ecran jusqu'a son retour a `false`, et l'ecran est retire, jamais rendu « pret ». Il ferait
|
|
4229
|
-
* taire la region meme qu'il contient.
|
|
4230
|
-
*
|
|
4231
|
-
* ⚠️ **La version est un texte public** : un numero de version, jamais un numero de construction,
|
|
4232
|
-
* une adresse ou un detail d'infrastructure (EA-15).
|
|
4233
|
-
*
|
|
4234
|
-
* Emplacements : `[logo]` (tuile de 48 px), `[surtitre]` (ligne du haut, micro-libelle de 11 px
|
|
4235
|
-
* mis en capitales par le composant, D18, D41), contenu libre sous le statut (une mention),
|
|
4236
|
-
* `[pied]` apres la version (12/16 ; un micro-libelle projete y pose ses capitales lui-meme).
|
|
4237
|
-
*/
|
|
4238
|
-
export declare class StSplashScreen {
|
|
4239
|
-
private readonly libelles;
|
|
4240
|
-
readonly variante: import("@angular/core").InputSignal<VarianteDeDemarrage>;
|
|
4241
|
-
/** Nom de l'application ou de l'etablissement. */
|
|
4242
|
-
readonly nom: import("@angular/core").InputSignal<string>;
|
|
4243
|
-
readonly sousTitre: import("@angular/core").InputSignal<string | null>;
|
|
4244
|
-
/** Ce qui se passe (« Synchronisation des ordres ») ; montre apres `rythme.delai.attente`. */
|
|
4245
|
-
readonly statut: import("@angular/core").InputSignal<string | null>;
|
|
4246
|
-
/** Version publiee (« Version 0.9.0 »), jamais un numero de construction. */
|
|
4247
|
-
readonly version: import("@angular/core").InputSignal<string | null>;
|
|
4248
|
-
/**
|
|
4249
|
-
* Delai avant le statut, en millisecondes : `rythme.delai.attente` par defaut. Zero le montre
|
|
4250
|
-
* tout de suite (une vignette de galerie, un test).
|
|
4251
|
-
*/
|
|
4252
|
-
readonly delaiMs: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
4253
|
-
protected readonly etiquetteLue: import("@angular/core").Signal<string>;
|
|
4254
|
-
protected readonly statutVisible: import("@angular/core").Signal<boolean>;
|
|
4255
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StSplashScreen, never>;
|
|
4256
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StSplashScreen, "st-splash-screen", never, {
|
|
4257
|
-
"variante": {
|
|
4258
|
-
"alias": "variante";
|
|
4259
|
-
"required": false;
|
|
4260
|
-
"isSignal": true;
|
|
4261
|
-
};
|
|
4262
|
-
"nom": {
|
|
4263
|
-
"alias": "nom";
|
|
4264
|
-
"required": true;
|
|
4265
|
-
"isSignal": true;
|
|
4266
|
-
};
|
|
4267
|
-
"sousTitre": {
|
|
4268
|
-
"alias": "sousTitre";
|
|
4269
|
-
"required": false;
|
|
4270
|
-
"isSignal": true;
|
|
4271
|
-
};
|
|
4272
|
-
"statut": {
|
|
4273
|
-
"alias": "statut";
|
|
4274
|
-
"required": false;
|
|
4275
|
-
"isSignal": true;
|
|
4276
|
-
};
|
|
4277
|
-
"version": {
|
|
4278
|
-
"alias": "version";
|
|
4279
|
-
"required": false;
|
|
4280
|
-
"isSignal": true;
|
|
4281
|
-
};
|
|
4282
|
-
"delaiMs": {
|
|
4283
|
-
"alias": "delaiMs";
|
|
4284
|
-
"required": false;
|
|
4285
|
-
"isSignal": true;
|
|
4286
|
-
};
|
|
4287
|
-
}, {}, never, ["[surtitre]", "[logo]", "*", "[pied]"], true, never>;
|
|
4288
|
-
}
|
|
4289
|
-
/** Une etape d'un parcours, decrite par l'appelant. Les textes sont deja traduits. */
|
|
4290
|
-
export interface EtapeDeParcours {
|
|
4291
|
-
readonly libelle: string;
|
|
4292
|
-
/** Precision sous le libelle (« Termine le 28.09 a 14:32 ») ; aucune si absente. */
|
|
4293
|
-
readonly description?: string;
|
|
4294
|
-
}
|
|
4295
|
-
export type EtatDEtape = 'faite' | 'courante' | 'a-venir';
|
|
4296
|
-
/** `verticale` : les etapes en colonne, a toutes les largeurs (un assistant a sa marge, lot 262). */
|
|
4297
|
-
export type OrientationDeParcours = 'horizontale' | 'verticale';
|
|
4298
|
-
/**
|
|
4299
|
-
* Parcours par etapes : ou l'on en est, ce qui est fait, ce qui reste.
|
|
4300
|
-
*
|
|
4301
|
-
* ```html
|
|
4302
|
-
* <st-stepper [etapes]="etapes" [etape]="indice()" />
|
|
4303
|
-
* ```
|
|
4304
|
-
*
|
|
4305
|
-
* ⚠️ Une liste ORDONNEE : l'ordre des etapes est l'information, et le lecteur
|
|
4306
|
-
* d'ecran annonce « 2 sur 4 » de lui-meme. L'etape courante porte
|
|
4307
|
-
* `aria-current="step"`, ce qui est exactement le mot de la specification, et
|
|
4308
|
-
* elle est seule a le porter.
|
|
4309
|
-
*
|
|
4310
|
-
* ⚠️ **L'etat de chaque etape se lit par sa forme ET par un texte**, jamais par
|
|
4311
|
-
* la couleur seule : une coche pour ce qui est fait, un numero plein a halo pour
|
|
4312
|
-
* l'etape en cours, un numero sur fond discret pour ce qui vient ; et un mot —
|
|
4313
|
-
* « en cours », « a venir » dans le surtitre visible, « terminee » lu seulement,
|
|
4314
|
-
* la double coche le montrant. Sous contraste force, il ne reste que la forme et
|
|
4315
|
-
* le mot.
|
|
4316
|
-
*
|
|
4317
|
-
* Deux formes, sans transition de l'une a l'autre : la RANGEE (reperes de 40 px
|
|
4318
|
-
* relies par des connecteurs de 4 px, surtitre, libelle, description) des que
|
|
4319
|
-
* SA BOITE atteint la rupture `md` (requete de conteneur : une carte etroite sur
|
|
4320
|
-
* un grand ecran prend la forme compacte), et la forme COMPACTE en dessous (« Etape 3 sur 4 : ... »,
|
|
4321
|
-
* pourcentage CALCULE, un segment par etape, precedente et suivante). La forme
|
|
4322
|
-
* compacte est une vue : la liste complete reste dans le document, lue
|
|
4323
|
-
* seulement, et la vue est masquee aux lecteurs d'ecran pour ne rien dire deux
|
|
4324
|
-
* fois. `compacte` l'impose a toutes les largeurs.
|
|
4325
|
-
*
|
|
4326
|
-
* Il n'est PAS interactif : revenir a une etape est une decision du parcours,
|
|
4327
|
-
* qui la rend par un vrai lien ou un vrai bouton dans la page. Un indicateur
|
|
4328
|
-
* cliquable promettrait un retour que tous les parcours n'autorisent pas.
|
|
4329
|
-
*
|
|
4330
|
-
* Le composant ne pose aucune marge externe : l'espace autour de lui appartient
|
|
4331
|
-
* a la page.
|
|
4332
|
-
*/
|
|
4333
|
-
export declare class StStepper {
|
|
4334
|
-
private readonly libelles;
|
|
4335
|
-
private readonly locale;
|
|
4336
|
-
readonly etapes: import("@angular/core").InputSignal<readonly EtapeDeParcours[]>;
|
|
4337
|
-
/**
|
|
4338
|
-
* Indice de l'etape en cours, a partir de zero. Le nombre d'etapes dit un
|
|
4339
|
-
* parcours acheve : toutes faites, aucune courante. Hors de ces bornes,
|
|
4340
|
-
* l'indice est ramene a la plus proche, avec un avertissement en developpement.
|
|
4341
|
-
*/
|
|
4342
|
-
readonly etape: import("@angular/core").InputSignal<number>;
|
|
4343
|
-
/**
|
|
4344
|
-
* Nom de la liste, jamais affiche. `null` : le `libelle` visible s'il est pose (un voyant lit
|
|
4345
|
-
* « Virement », un lecteur d'ecran l'entend aussi), sinon « Etapes », du dictionnaire.
|
|
4346
|
-
*/
|
|
4347
|
-
readonly etiquette: import("@angular/core").InputSignal<string | null>;
|
|
4348
|
-
/** Nom visible du parcours, en surtitre de la forme compacte ; aucun si `null`. */
|
|
4349
|
-
readonly libelle: import("@angular/core").InputSignal<string | null>;
|
|
4350
|
-
/** Forme compacte a toutes les largeurs, et non sous la seule rupture `md`. */
|
|
4351
|
-
readonly compacte: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
4352
|
-
/** `verticale` : la liste en colonne a toutes les largeurs ; `compacte` l'emporte. */
|
|
4353
|
-
readonly orientation: import("@angular/core").InputSignal<OrientationDeParcours>;
|
|
4354
|
-
protected readonly etiquetteLue: import("@angular/core").Signal<string>;
|
|
4355
|
-
protected readonly motDeLEtapeFaite: import("@angular/core").Signal<string>;
|
|
4356
|
-
/** L'indice borne : une etape hors du parcours ne peut ni tout cocher ni tout vider en silence. */
|
|
4357
|
-
private readonly courante;
|
|
4358
|
-
protected readonly lignes: import("@angular/core").Signal<{
|
|
4359
|
-
libelle: string;
|
|
4360
|
-
description: string | null;
|
|
4361
|
-
numero: number;
|
|
4362
|
-
etat: EtatDEtape;
|
|
4363
|
-
surtitre: string;
|
|
4364
|
-
relie: boolean;
|
|
4365
|
-
}[]>;
|
|
4366
|
-
/** Le format de la locale de l'application : « 50 % » en francais, « 50% » en anglais. */
|
|
4367
|
-
private readonly formatDuPourcentage;
|
|
4368
|
-
/** Resume de la forme compacte : CALCULE sur les etapes faites, jamais recopie. */
|
|
4369
|
-
protected readonly resume: import("@angular/core").Signal<{
|
|
4370
|
-
titre: string;
|
|
4371
|
-
pourcentage: string;
|
|
4372
|
-
precedente: string | null;
|
|
4373
|
-
suivante: string | null;
|
|
4374
|
-
} | null>;
|
|
4375
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StStepper, never>;
|
|
4376
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StStepper, "st-stepper", never, {
|
|
4377
|
-
"etapes": {
|
|
4378
|
-
"alias": "etapes";
|
|
4379
|
-
"required": true;
|
|
4380
|
-
"isSignal": true;
|
|
4381
|
-
};
|
|
4382
|
-
"etape": {
|
|
4383
|
-
"alias": "etape";
|
|
4384
|
-
"required": true;
|
|
4385
|
-
"isSignal": true;
|
|
4386
|
-
};
|
|
4387
|
-
"etiquette": {
|
|
4388
|
-
"alias": "etiquette";
|
|
4389
|
-
"required": false;
|
|
4390
|
-
"isSignal": true;
|
|
4391
|
-
};
|
|
4392
|
-
"libelle": {
|
|
4393
|
-
"alias": "libelle";
|
|
4394
|
-
"required": false;
|
|
4395
|
-
"isSignal": true;
|
|
4396
|
-
};
|
|
4397
|
-
"compacte": {
|
|
4398
|
-
"alias": "compacte";
|
|
4399
|
-
"required": false;
|
|
4400
|
-
"isSignal": true;
|
|
4401
|
-
};
|
|
4402
|
-
"orientation": {
|
|
4403
|
-
"alias": "orientation";
|
|
4404
|
-
"required": false;
|
|
4405
|
-
"isSignal": true;
|
|
4406
|
-
};
|
|
4407
|
-
}, {}, never, never, true, never>;
|
|
4408
|
-
}
|
|
4409
|
-
/**
|
|
4410
|
-
* `ligne` : filet capillaire entre les lignes d'une liste de reglages (le
|
|
4411
|
-
* defaut) ; `tuile` : chaque reglage dans sa tuile `surfaceConteneurBas`
|
|
4412
|
-
* (regles de la planche 14).
|
|
4413
|
-
*/
|
|
4414
|
-
export type VarianteDeLigneDeReglage = 'ligne' | 'tuile';
|
|
4415
|
-
/**
|
|
4416
|
-
* Ligne de reglage : un libelle, une description, et le controle qui les suit.
|
|
4417
|
-
*
|
|
4418
|
-
* ```html
|
|
4419
|
-
* <st-settings-row libelle="Alertes par SMS" description="Un SMS a chaque virement sortant.">
|
|
4420
|
-
* <st-switch libelle="Activer" [(checked)]="sms" />
|
|
4421
|
-
* </st-settings-row>
|
|
4422
|
-
* ```
|
|
4423
|
-
*
|
|
4424
|
-
* Facultatifs : un carre d'icone de 36 px en tete (`icone`, `ton`), et un
|
|
4425
|
-
* complement du libelle sur sa ligne (`[suffixe]`, une puce « STRICT »).
|
|
4426
|
-
*
|
|
4427
|
-
* ⚠️ **La ligne est un GROUPE nomme et decrit, et non une etiquette.** Le
|
|
4428
|
-
* controle projete garde son propre nom — celui de son `libelle`, ou un
|
|
4429
|
-
* `aria-label` pour un element natif — et la ligne l'enveloppe d'un
|
|
4430
|
-
* `role="group"` relie a son libelle par `aria-labelledby` et a sa description
|
|
4431
|
-
* par `aria-describedby`. En entrant dans le groupe, le lecteur d'ecran lit le
|
|
4432
|
-
* libelle, puis la description, puis le controle : « Alertes par SMS, groupe,
|
|
4433
|
-
* Un SMS a chaque virement sortant, Activer, interrupteur, desactive ». En
|
|
4434
|
-
* developpement, un controle projete SANS nom accessible est signale.
|
|
4435
|
-
*
|
|
4436
|
-
* Pourquoi pas un `label for` : la plupart des controles du socle portent deja
|
|
4437
|
-
* leur etiquette, et un controle non natif (un groupe segmente, un declencheur
|
|
4438
|
-
* de menu) n'en accepte aucun. Le groupe, lui, marche pour tous, sans que la
|
|
4439
|
-
* ligne ait a connaitre ce qu'on lui projette.
|
|
4440
|
-
*
|
|
4441
|
-
* ⚠️ Un reglage s'applique IMMEDIATEMENT (c'est le sens de `st-switch`) ou
|
|
4442
|
-
* s'envoie avec un formulaire : la ligne ne tranche pas, le controle le dit.
|
|
4443
|
-
*
|
|
4444
|
-
* Une ligne qui NAVIGUE (vers le detail d'un reglage) projette un `a[stLink]`
|
|
4445
|
-
* suivi de l'icone `chevron-droite` de taille `sm`, miroitee en RTL.
|
|
4446
|
-
*/
|
|
4447
|
-
export declare class StSettingsRow {
|
|
4448
|
-
/** Texte visible, deja traduit : le socle ne traduit rien. */
|
|
4449
|
-
readonly libelle: import("@angular/core").InputSignal<string>;
|
|
4450
|
-
/** Ce que le reglage fait, en une phrase. Reliee au groupe par `aria-describedby`. */
|
|
4451
|
-
readonly description: import("@angular/core").InputSignal<string | null>;
|
|
4452
|
-
readonly variante: import("@angular/core").InputSignal<VarianteDeLigneDeReglage>;
|
|
4453
|
-
/** Icone decorative du carre de tete ; `null` : pas de carre. */
|
|
4454
|
-
readonly icone: import("@angular/core").InputSignal<Icone | null>;
|
|
4455
|
-
/** Ton du glyphe du carre d'icone. */
|
|
4456
|
-
readonly ton: import("@angular/core").InputSignal<TonDIcone>;
|
|
4457
|
-
/** Identifiants du libelle et de la description, cibles des attributs ARIA. */
|
|
4458
|
-
protected readonly identifiants: {
|
|
4459
|
-
readonly libelle: `${string}-libelle`;
|
|
4460
|
-
readonly description: `${string}-description`;
|
|
4461
|
-
};
|
|
4462
|
-
constructor();
|
|
4463
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StSettingsRow, never>;
|
|
4464
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StSettingsRow, "st-settings-row", never, {
|
|
4465
|
-
"libelle": {
|
|
4466
|
-
"alias": "libelle";
|
|
4467
|
-
"required": true;
|
|
4468
|
-
"isSignal": true;
|
|
4469
|
-
};
|
|
4470
|
-
"description": {
|
|
4471
|
-
"alias": "description";
|
|
4472
|
-
"required": false;
|
|
4473
|
-
"isSignal": true;
|
|
4474
|
-
};
|
|
4475
|
-
"variante": {
|
|
4476
|
-
"alias": "variante";
|
|
4477
|
-
"required": false;
|
|
4478
|
-
"isSignal": true;
|
|
4479
|
-
};
|
|
4480
|
-
"icone": {
|
|
4481
|
-
"alias": "icone";
|
|
4482
|
-
"required": false;
|
|
4483
|
-
"isSignal": true;
|
|
4484
|
-
};
|
|
4485
|
-
"ton": {
|
|
4486
|
-
"alias": "ton";
|
|
4487
|
-
"required": false;
|
|
4488
|
-
"isSignal": true;
|
|
4489
|
-
};
|
|
4490
|
-
}, {}, never, ["[suffixe]", "*"], true, never>;
|
|
4491
|
-
}
|
|
4492
3227
|
/** Les tons semantiques, sauf `primaire` : une banniere informe, elle ne marque pas. */
|
|
4493
3228
|
export type TonDeBanniere = Exclude<TonSemantique, 'primaire'>;
|
|
4494
3229
|
/** `bloc` : en page, au-dessus du contenu concerne. `bandeau` : sous l'en-tete de la coquille. */
|
|
@@ -4549,7 +3284,7 @@ export declare class StBanner {
|
|
|
4549
3284
|
protected readonly idDuTitre: import("@angular/core").Signal<string>;
|
|
4550
3285
|
protected readonly prefixe: import("@angular/core").Signal<string | null>;
|
|
4551
3286
|
protected readonly libelleFermetureLu: import("@angular/core").Signal<string>;
|
|
4552
|
-
protected readonly roleLu: import("@angular/core").Signal<"
|
|
3287
|
+
protected readonly roleLu: import("@angular/core").Signal<"status" | "alert" | null>;
|
|
4553
3288
|
/**
|
|
4554
3289
|
* ⚠️ Le focus est DEPLACE avant l'emission, vers le premier element focalisable
|
|
4555
3290
|
* VISIBLE qui suit (sinon le dernier qui precede, sinon le conteneur), sans
|
|
@@ -4651,7 +3386,7 @@ export declare class StInlineMessage {
|
|
|
4651
3386
|
readonly icone: import("@angular/core").InputSignal<Icone | null>;
|
|
4652
3387
|
protected readonly iconeLue: import("@angular/core").Signal<Icone>;
|
|
4653
3388
|
protected readonly prefixe: import("@angular/core").Signal<string | null>;
|
|
4654
|
-
protected readonly role: import("@angular/core").Signal<"
|
|
3389
|
+
protected readonly role: import("@angular/core").Signal<"status" | "alert" | null>;
|
|
4655
3390
|
/** Le contenu de la region, apres `rythme.delai.annonce` ; tout de suite sans `annonce`. */
|
|
4656
3391
|
private readonly contenuInsere;
|
|
4657
3392
|
protected readonly contenuVisible: import("@angular/core").Signal<boolean>;
|
|
@@ -5212,307 +3947,4 @@ export declare class StLogo {
|
|
|
5212
3947
|
};
|
|
5213
3948
|
}, {}, never, never, true, never>;
|
|
5214
3949
|
}
|
|
5215
|
-
/**
|
|
5216
|
-
* Presence du reseau, lue par `st-state` A L'INSTANT OU UNE ERREUR APPARAIT : une erreur survenue
|
|
5217
|
-
* hors ligne se dit « hors ligne », pas « une erreur est survenue ». La lecture est figee avec
|
|
5218
|
-
* l'erreur : une erreur deja affichee n'est jamais re-etiquetee quand la connectivite bascule.
|
|
5219
|
-
*
|
|
5220
|
-
* ⚠️ `ui` ne depend pas de `@starterlib/core` (ADR 0003) : c'est l'HOTE qui relie ce jeton a
|
|
5221
|
-
* `StConnectivite` du noyau, qui fait d'un statut 0 la source d'autorite et se rouvre a la
|
|
5222
|
-
* premiere reponse (lot 165) :
|
|
5223
|
-
*
|
|
5224
|
-
* ```ts
|
|
5225
|
-
* { provide: ST_EN_LIGNE, useFactory: () => inject(StConnectivite).enLigne }
|
|
5226
|
-
* ```
|
|
5227
|
-
*
|
|
5228
|
-
* ⚠️ Relie a `StConnectivite`, le jeton ne change le rendu d'AUCUNE reponse du serveur :
|
|
5229
|
-
* l'intercepteur du noyau remet la connectivite en ligne sur toute reponse, avant que l'erreur
|
|
5230
|
-
* n'atteigne la ressource. Seul le statut 0 fait alors autorite (predicat `estHorsLigne`). Le
|
|
5231
|
-
* defaut, qui suit les evenements `online` / `offline` du navigateur, couvre en plus l'erreur
|
|
5232
|
-
* rendue hors ligne sans reseau (un service worker qui repond a la place du serveur).
|
|
5233
|
-
*/
|
|
5234
|
-
export declare const ST_EN_LIGNE: InjectionToken<Signal<boolean>>;
|
|
5235
|
-
/** Ce qu'un etat degrade rend quand l'appelant n'a pas fourni son gabarit. */
|
|
5236
|
-
type GabaritParDefaut = 'vide' | 'erreur' | 'hors-ligne';
|
|
5237
|
-
/**
|
|
5238
|
-
* Impose les cinq etats a un bloc qui consomme l'API, et centralise leur
|
|
5239
|
-
* annonce.
|
|
5240
|
-
*
|
|
5241
|
-
* Deux usages. Le plus courant passe la ressource, et l'etat s'en deduit :
|
|
5242
|
-
*
|
|
5243
|
-
* ```html
|
|
5244
|
-
* <st-state [ressource]="operations">
|
|
5245
|
-
* <ng-template [stSucces]="operations" let-page>…</ng-template>
|
|
5246
|
-
* <ng-template stErreur let-erreur><st-error [code]="erreur.code" … /></ng-template>
|
|
5247
|
-
* <ng-template stVide><st-empty … /></ng-template>
|
|
5248
|
-
* </st-state>
|
|
5249
|
-
* ```
|
|
5250
|
-
*
|
|
5251
|
-
* L'autre pose `[etat]` a la main, pour un bloc qui ne vient pas d'une
|
|
5252
|
-
* ressource — une soumission de formulaire, par exemple.
|
|
5253
|
-
*
|
|
5254
|
-
* ⚠️ Un RECHARGEMENT garde le contenu affiche, sous une barre de 4 px en tete du bloc
|
|
5255
|
-
* (planche 9). Revenir a la silhouette a chaque changement de filtre fait clignoter la
|
|
5256
|
-
* page entiere et perd la position de lecture ; seul un chargement SANS valeur retenue
|
|
5257
|
-
* (premier appel, ou rejeu apres une erreur) montre la silhouette — jamais l'etat vide.
|
|
5258
|
-
*
|
|
5259
|
-
* ⚠️ Anti-clignotement, a l'oeil ET a l'oreille : rien avant `rythme.delai.attente`, puis
|
|
5260
|
-
* la silhouette au moins `rythme.tenue.affichageMinimal` ; « Chargement en cours » n'est
|
|
5261
|
-
* dit que si la silhouette est montree. Un rechargement de plus de
|
|
5262
|
-
* `rythme.tenue.rechargementAnnonce` s'annonce une fois (« Actualisation en cours »).
|
|
5263
|
-
*
|
|
5264
|
-
* ⚠️ L'hote ne porte PAS `role="status"`, contrairement a ce qu'on attendrait :
|
|
5265
|
-
* un remplacement de contenu A L'INTERIEUR d'une region vivante fait relire
|
|
5266
|
-
* tout le sous-arbre par le lecteur d'ecran a chaque bascule d'etat. Seule une
|
|
5267
|
-
* petite zone masquee porte l'annonce, qui tient en quelques mots.
|
|
5268
|
-
*
|
|
5269
|
-
* ⚠️ `REGION_VIVANTE_PARENTE` ne vaut que pour les etats que st-state ANNONCE (chargement,
|
|
5270
|
-
* erreur, vide, hors ligne) : il se tait en succes, et le contenu du gabarit `stSucces` se dit
|
|
5271
|
-
* donc lui-meme — une erreur d'action y garde son `role="alert"`, une banniere hors ligne son
|
|
5272
|
-
* `role="status"`. Fourni a tout le contenu, le jeton les faisait taire sans que personne ne
|
|
5273
|
-
* parle a leur place (revue E8).
|
|
5274
|
-
*
|
|
5275
|
-
* ⚠️ Un gabarit d'etat degrade oublie rend le gabarit PAR DEFAUT du dictionnaire (« Aucun
|
|
5276
|
-
* resultat », « Une erreur est survenue », « Hors connexion ») plutot qu'un bloc vide ; en
|
|
5277
|
-
* developpement, un avertissement le signale.
|
|
5278
|
-
*/
|
|
5279
|
-
export declare class StState<T> {
|
|
5280
|
-
private readonly libelles;
|
|
5281
|
-
private readonly enLigne;
|
|
5282
|
-
/** La ressource dont l'etat se deduit. */
|
|
5283
|
-
readonly ressource: import("@angular/core").InputSignal<Resource<T> | null>;
|
|
5284
|
-
/** Etat pose a la main. Il prime sur la ressource quand les deux existent. */
|
|
5285
|
-
readonly etat: import("@angular/core").InputSignal<EtatDeBloc$1 | null>;
|
|
5286
|
-
/** Ce qui compte comme « vide » : par defaut, une collection sans element. */
|
|
5287
|
-
readonly estVide: import("@angular/core").InputSignal<(valeur: T) => boolean>;
|
|
5288
|
-
/**
|
|
5289
|
-
* Ce qui compte comme une perte de reseau : par defaut, le statut 0. Une erreur APPARUE
|
|
5290
|
-
* pendant que `ST_EN_LIGNE` disait hors ligne en est une aussi, quel que soit ce predicat.
|
|
5291
|
-
*/
|
|
5292
|
-
readonly estHorsLigne: import("@angular/core").InputSignal<(erreur: unknown) => boolean>;
|
|
5293
|
-
/** Silhouette par defaut du chargement. `null` : un indicateur tournant. */
|
|
5294
|
-
readonly squelette: import("@angular/core").InputSignal<VarianteDeSquelette | null>;
|
|
5295
|
-
readonly lignesDeSquelette: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
5296
|
-
/**
|
|
5297
|
-
* Rien n'est montre avant ce delai, en millisecondes (`rythme.delai.attente`). Zero : la
|
|
5298
|
-
* silhouette tout de suite, pour un bloc dont on SAIT qu'il sera long (un rapport).
|
|
5299
|
-
*/
|
|
5300
|
-
readonly delaiAvantSilhouette: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
5301
|
-
/** `null` : les annonces viennent du dictionnaire de l'application. `succes` se tait. */
|
|
5302
|
-
readonly annonces: import("@angular/core").InputSignal<Readonly<Partial<Record<EtatDeBloc$1, string>>> | null>;
|
|
5303
|
-
/**
|
|
5304
|
-
* Hauteur reservee au bloc, longueur CSS (`'12rem'`, `'240px'`) : la silhouette, puis le contenu,
|
|
5305
|
-
* y tiennent sans pousser ce qui suit — aucun decalage de mise en page au passage du chargement
|
|
5306
|
-
* au succes (CLS 0, lot 211). Un contenu plus haut agrandit le bloc. `null` : rien de reserve.
|
|
5307
|
-
*/
|
|
5308
|
-
readonly hauteurMinimale: import("@angular/core").InputSignal<string | null>;
|
|
5309
|
-
private readonly gabaritSucces;
|
|
5310
|
-
private readonly gabaritErreur;
|
|
5311
|
-
private readonly gabaritVide;
|
|
5312
|
-
private readonly gabaritHorsLigne;
|
|
5313
|
-
private readonly gabaritChargement;
|
|
5314
|
-
private readonly instantane;
|
|
5315
|
-
/**
|
|
5316
|
-
* La derniere valeur connue, gardee pendant qu'une autre se charge.
|
|
5317
|
-
*
|
|
5318
|
-
* ⚠️ Necessaire, et pas seulement confortable : un changement de PARAMETRE
|
|
5319
|
-
* n'est pas un `reload`. Angular traite le premier comme une nouvelle
|
|
5320
|
-
* requete — statut « loading », valeur videe. Sans cette memoire, changer un
|
|
5321
|
-
* filtre ou tourner une page ferait donc disparaitre le tableau, clignoter la
|
|
5322
|
-
* page, et perdre la position de lecture. Une erreur, elle, ne garde rien :
|
|
5323
|
-
* afficher des donnees perimees sous un message d'erreur serait mentir.
|
|
5324
|
-
*/
|
|
5325
|
-
private readonly valeurRetenue;
|
|
5326
|
-
/**
|
|
5327
|
-
* La connectivite a l'instant de l'erreur, figee avec elle : recalculee seulement quand une
|
|
5328
|
-
* NOUVELLE erreur apparait. Lue en direct, une bascule du reseau re-etiquetait une erreur deja
|
|
5329
|
-
* affichee (un 409 devenait « Hors connexion »), et la region polie la re-annoncait.
|
|
5330
|
-
*/
|
|
5331
|
-
private readonly horsLigneALErreur;
|
|
5332
|
-
/** Etat deduit de la ressource, valeur retenue comprise. */
|
|
5333
|
-
private readonly etatDeLaRessource;
|
|
5334
|
-
/**
|
|
5335
|
-
* ⚠️ Un succes pose A LA MAIN sur une ressource qui n'a encore rien rendu passerait `undefined`
|
|
5336
|
-
* au gabarit de succes, que son type promet defini (`let-page` : A1113) : c'est encore un
|
|
5337
|
-
* chargement. Sans ressource, le succes pose a la main se rend tel quel.
|
|
5338
|
-
*/
|
|
5339
|
-
protected readonly etatEffectif: Signal<EtatDeBloc$1>;
|
|
5340
|
-
/**
|
|
5341
|
-
* Une valeur est affichee, et une autre arrive — par rappel explicite ou par
|
|
5342
|
-
* changement de parametre.
|
|
5343
|
-
*/
|
|
5344
|
-
protected readonly enRechargement: Signal<boolean>;
|
|
5345
|
-
/** Une ressource au repos (`idle`) n'attend rien : pas d'`aria-busy` perpetuel. */
|
|
5346
|
-
protected readonly enAttente: Signal<boolean>;
|
|
5347
|
-
/**
|
|
5348
|
-
* La silhouette, une fois le delai anti-clignotement passe, et pour au moins la
|
|
5349
|
-
* tenue minimale (`rythme.delai.attente`, `rythme.tenue.affichageMinimal`) : une
|
|
5350
|
-
* reponse rapide n'a pas a clignoter, une reponse a 210 ms ne produit pas d'eclair.
|
|
5351
|
-
* Le gabarit `stChargement` y est soumis aussi.
|
|
5352
|
-
*/
|
|
5353
|
-
private readonly chargementVisible;
|
|
5354
|
-
/** Un rechargement long s'annonce, une fois, passe `rythme.tenue.rechargementAnnonce`. */
|
|
5355
|
-
private readonly rechargementLong;
|
|
5356
|
-
/**
|
|
5357
|
-
* La silhouette, une fois le delai anti-clignotement passe, et TENUE :
|
|
5358
|
-
* elle reste le temps de la tenue minimale meme si la reponse arrive avant.
|
|
5359
|
-
* ⚠️ Sans condition sur l'etat : exiger aussi « encore en chargement » faisait
|
|
5360
|
-
* partir la silhouette des la reponse, et une reponse a 230 ms la montrait 30 ms
|
|
5361
|
-
* — l'eclair que la tenue doit eviter (revue E5).
|
|
5362
|
-
*/
|
|
5363
|
-
protected readonly montreLaSilhouette: Signal<boolean>;
|
|
5364
|
-
/** Le gabarit `stChargement`, soumis au meme delai et a la meme tenue que la silhouette. */
|
|
5365
|
-
protected readonly gabaritDeChargement: Signal<TemplateRef<void> | null>;
|
|
5366
|
-
private readonly annoncesLues;
|
|
5367
|
-
/**
|
|
5368
|
-
* Ce qui se dit : l'etat, sauf le chargement tant que la silhouette n'est pas montree (une
|
|
5369
|
-
* reponse a 100 ms ne dit rien), et « Actualisation en cours » pour un rechargement long.
|
|
5370
|
-
*/
|
|
5371
|
-
protected readonly annonce: Signal<string>;
|
|
5372
|
-
/**
|
|
5373
|
-
* L'injecteur du gabarit de succes : il masque `REGION_VIVANTE_PARENTE`, que les fournisseurs
|
|
5374
|
-
* de st-state posent pour les etats qu'il annonce. Le gabarit est declare dans le contenu de
|
|
5375
|
-
* st-state : sans ce masque, il voyait le jeton.
|
|
5376
|
-
*/
|
|
5377
|
-
private readonly injecteurDuSucces;
|
|
5378
|
-
/** `null` : l'injecteur de declaration du gabarit, sous la region de st-state. */
|
|
5379
|
-
protected readonly injecteurDuGabarit: Signal<import("@angular/core").DestroyableInjector | null>;
|
|
5380
|
-
/** L'erreur de la ressource, decrite pour le gabarit (`let-erreur` : `ErreurDeBloc`). */
|
|
5381
|
-
protected readonly erreurDecrite: Signal<ErreurDeBloc | null>;
|
|
5382
|
-
/** Contexte passe au gabarit : la valeur en succes, l'erreur decrite en erreur. */
|
|
5383
|
-
protected readonly contexte: Signal<{
|
|
5384
|
-
$implicit: unknown;
|
|
5385
|
-
}>;
|
|
5386
|
-
/** Le gabarit de l'etat courant, ou `null` (silhouette, ou gabarit par defaut). */
|
|
5387
|
-
protected readonly gabaritDeLEtat: Signal<TemplateRef<unknown> | null>;
|
|
5388
|
-
/** L'etat degrade dont le gabarit manque, rendu par le gabarit du dictionnaire. */
|
|
5389
|
-
protected readonly gabaritParDefaut: Signal<GabaritParDefaut | null>;
|
|
5390
|
-
/** Les textes des gabarits par defaut : ceux du dictionnaire, jamais une phrase du serveur. */
|
|
5391
|
-
protected readonly textesParDefaut: Signal<import("@starterlib/ui").LibellesUi>;
|
|
5392
|
-
/**
|
|
5393
|
-
* Ce qui est a l'ecran : la silhouette, ou le bloc de l'etat. Suivi pour le fondu
|
|
5394
|
-
* d'arrivee, qui ne vaut qu'a la sortie d'un chargement MONTRE.
|
|
5395
|
-
*/
|
|
5396
|
-
private readonly affiche;
|
|
5397
|
-
constructor();
|
|
5398
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StState<any>, never>;
|
|
5399
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StState<any>, "st-state", never, {
|
|
5400
|
-
"ressource": {
|
|
5401
|
-
"alias": "ressource";
|
|
5402
|
-
"required": false;
|
|
5403
|
-
"isSignal": true;
|
|
5404
|
-
};
|
|
5405
|
-
"etat": {
|
|
5406
|
-
"alias": "etat";
|
|
5407
|
-
"required": false;
|
|
5408
|
-
"isSignal": true;
|
|
5409
|
-
};
|
|
5410
|
-
"estVide": {
|
|
5411
|
-
"alias": "estVide";
|
|
5412
|
-
"required": false;
|
|
5413
|
-
"isSignal": true;
|
|
5414
|
-
};
|
|
5415
|
-
"estHorsLigne": {
|
|
5416
|
-
"alias": "estHorsLigne";
|
|
5417
|
-
"required": false;
|
|
5418
|
-
"isSignal": true;
|
|
5419
|
-
};
|
|
5420
|
-
"squelette": {
|
|
5421
|
-
"alias": "squelette";
|
|
5422
|
-
"required": false;
|
|
5423
|
-
"isSignal": true;
|
|
5424
|
-
};
|
|
5425
|
-
"lignesDeSquelette": {
|
|
5426
|
-
"alias": "lignesDeSquelette";
|
|
5427
|
-
"required": false;
|
|
5428
|
-
"isSignal": true;
|
|
5429
|
-
};
|
|
5430
|
-
"delaiAvantSilhouette": {
|
|
5431
|
-
"alias": "delaiAvantSilhouette";
|
|
5432
|
-
"required": false;
|
|
5433
|
-
"isSignal": true;
|
|
5434
|
-
};
|
|
5435
|
-
"annonces": {
|
|
5436
|
-
"alias": "annonces";
|
|
5437
|
-
"required": false;
|
|
5438
|
-
"isSignal": true;
|
|
5439
|
-
};
|
|
5440
|
-
"hauteurMinimale": {
|
|
5441
|
-
"alias": "hauteurMinimale";
|
|
5442
|
-
"required": false;
|
|
5443
|
-
"isSignal": true;
|
|
5444
|
-
};
|
|
5445
|
-
}, {}, ["gabaritSucces", "gabaritErreur", "gabaritVide", "gabaritHorsLigne", "gabaritChargement"], never, true, never>;
|
|
5446
|
-
}
|
|
5447
|
-
/**
|
|
5448
|
-
* Les gabarits des cinq etats, declares DANS `<st-state>`.
|
|
5449
|
-
*
|
|
5450
|
-
* ⚠️ Pourquoi des directives de contenu plutot que des entrees `TemplateRef` :
|
|
5451
|
-
* un `<ng-template>` declare a l'exterieur du composant appartient a
|
|
5452
|
-
* l'injecteur de l'endroit ou il est ECRIT, pas de celui qui le rend. Les
|
|
5453
|
-
* fournisseurs de `st-state` — dont `REGION_VIVANTE_PARENTE`, qui fait taire
|
|
5454
|
-
* les annonces en double — ne l'atteignaient donc pas, et l'erreur etait
|
|
5455
|
-
* annoncee deux fois. Passer par le contenu rend la declaration a l'exterieur
|
|
5456
|
-
* impossible : le defaut ne peut plus revenir.
|
|
5457
|
-
*/
|
|
5458
|
-
export declare class StSucces<T> {
|
|
5459
|
-
readonly gabarit: TemplateRef<{
|
|
5460
|
-
$implicit: Exclude<T, undefined>;
|
|
5461
|
-
}>;
|
|
5462
|
-
/**
|
|
5463
|
-
* La ressource n'est lue nulle part : elle porte le TYPE de la valeur, pour
|
|
5464
|
-
* que `let-valeur` soit type dans le gabarit au lieu d'etre `unknown`.
|
|
5465
|
-
*/
|
|
5466
|
-
readonly stSucces: import("@angular/core").InputSignal<Resource<T> | undefined>;
|
|
5467
|
-
/**
|
|
5468
|
-
* `Exclude<T, undefined>` : une ressource sans valeur initiale se type
|
|
5469
|
-
* `T | undefined`, mais st-state ne rend ce gabarit QUE lorsqu'une valeur
|
|
5470
|
-
* existe. Sans cela, chaque gabarit de succes devrait ecrire `page?.length`
|
|
5471
|
-
* pour un cas qui ne se produit pas.
|
|
5472
|
-
*/
|
|
5473
|
-
static ngTemplateContextGuard<T>(_directive: StSucces<T>, _contexte: unknown): _contexte is {
|
|
5474
|
-
$implicit: Exclude<T, undefined>;
|
|
5475
|
-
};
|
|
5476
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StSucces<any>, never>;
|
|
5477
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<StSucces<any>, "ng-template[stSucces]", never, {
|
|
5478
|
-
"stSucces": {
|
|
5479
|
-
"alias": "stSucces";
|
|
5480
|
-
"required": false;
|
|
5481
|
-
"isSignal": true;
|
|
5482
|
-
};
|
|
5483
|
-
}, {}, never, never, true, never>;
|
|
5484
|
-
}
|
|
5485
|
-
/**
|
|
5486
|
-
* Erreur. Le contexte porte l'erreur DECRITE (`decrireLErreur`) : code machine, variante,
|
|
5487
|
-
* rejouabilite, trace ; l'erreur brute reste dans `cause`. Les applications cessent de recopier
|
|
5488
|
-
* leur « code de » et leur « est-ce rejouable ».
|
|
5489
|
-
*/
|
|
5490
|
-
export declare class StErreur {
|
|
5491
|
-
readonly gabarit: TemplateRef<{
|
|
5492
|
-
$implicit: ErreurDeBloc;
|
|
5493
|
-
}>;
|
|
5494
|
-
static ngTemplateContextGuard(_directive: StErreur, _contexte: unknown): _contexte is {
|
|
5495
|
-
$implicit: ErreurDeBloc;
|
|
5496
|
-
};
|
|
5497
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StErreur, never>;
|
|
5498
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<StErreur, "ng-template[stErreur]", never, {}, {}, never, never, true, never>;
|
|
5499
|
-
}
|
|
5500
|
-
export declare class StVide {
|
|
5501
|
-
readonly gabarit: TemplateRef<void>;
|
|
5502
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StVide, never>;
|
|
5503
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<StVide, "ng-template[stVide]", never, {}, {}, never, never, true, never>;
|
|
5504
|
-
}
|
|
5505
|
-
export declare class StHorsLigne {
|
|
5506
|
-
readonly gabarit: TemplateRef<void>;
|
|
5507
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StHorsLigne, never>;
|
|
5508
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<StHorsLigne, "ng-template[stHorsLigne]", never, {}, {}, never, never, true, never>;
|
|
5509
|
-
}
|
|
5510
|
-
/** Chargement sur mesure. Sans lui, `st-state` rend sa silhouette par defaut. */
|
|
5511
|
-
export declare class StChargement {
|
|
5512
|
-
readonly gabarit: TemplateRef<void>;
|
|
5513
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<StChargement, never>;
|
|
5514
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<StChargement, "ng-template[stChargement]", never, {}, {}, never, never, true, never>;
|
|
5515
|
-
}
|
|
5516
|
-
/** Toutes les directives de gabarit, a importer d'un coup. */
|
|
5517
|
-
export declare const GABARITS_D_ETAT: readonly [typeof StSucces, typeof StErreur, typeof StVide, typeof StHorsLigne, typeof StChargement];
|
|
5518
3950
|
export { ETATS_DE_BLOC, type EtatDeBloc, type VarianteDErreur };
|