@cadriciel/ui 0.7.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/cadriciel-ui.mjs +3717 -291
- package/fesm2022/cadriciel-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/tokens.scss +11 -1
- package/types/cadriciel-ui.d.ts +805 -30
package/types/cadriciel-ui.d.ts
CHANGED
|
@@ -145,6 +145,7 @@ declare class CadIconRegistry {
|
|
|
145
145
|
/**
|
|
146
146
|
* <cad-icon name="search" [size]="16" />
|
|
147
147
|
* SVG inline, trait 2 px, hérite `currentColor`. `spin` (animation), `filled` (icône pleine), `flip`, `rotate`, `title` (info-bulle native).
|
|
148
|
+
* @atelier icone=sparkles largeur=1 hauteur=1
|
|
148
149
|
*/
|
|
149
150
|
declare class CadIconComponent {
|
|
150
151
|
private readonly registry;
|
|
@@ -178,6 +179,7 @@ declare class CadIconComponent {
|
|
|
178
179
|
* - Directive-composant appliquée sur un vrai <button>/<a> : sémantique native, focus, formulaire.
|
|
179
180
|
* - Signals inputs, OnPush, classes hôtes reflétées (stylables sans ::ng-deep).
|
|
180
181
|
* - Ne lit QUE les tokens --cad-* (thème clair/sombre transparent).
|
|
182
|
+
* @atelier icone=square largeur=2 hauteur=1 contenu=Bouton
|
|
181
183
|
*/
|
|
182
184
|
declare class CadButtonComponent {
|
|
183
185
|
readonly el: ElementRef<HTMLElement>;
|
|
@@ -208,6 +210,7 @@ declare class CadButtonComponent {
|
|
|
208
210
|
* Accole les boutons (radius aux extrémités, bordures fusionnées). Sans `attached`, simple groupe espacé (gap).
|
|
209
211
|
* Remplace p-buttonGroup. Le focus reste visible (z-index sur le bouton focusé).
|
|
210
212
|
* `selectable="single|multiple"` + `[(value)]` : les boutons portant `value` deviennent des options (état enfoncé, aria-pressed).
|
|
213
|
+
* @atelier icone=columns-3 hauteur=1 conteneur=direct ajustement=naturel
|
|
211
214
|
*/
|
|
212
215
|
declare class CadButtonGroupComponent {
|
|
213
216
|
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
|
|
@@ -222,6 +225,15 @@ declare class CadButtonGroupComponent {
|
|
|
222
225
|
readonly value: _angular_core.ModelSignal<unknown>;
|
|
223
226
|
readonly changed: _angular_core.OutputEmitterRef<unknown>;
|
|
224
227
|
private readonly buttons;
|
|
228
|
+
/**
|
|
229
|
+
* Enfants créés DYNAMIQUEMENT (atelier CadGrid, composition programmatique) : une
|
|
230
|
+
* requête de contenu ne voit JAMAIS un composant né de `createComponent`, donc sans
|
|
231
|
+
* ce registre le groupe serait sourd à leurs clics. Contrat d'accueil duck-typé —
|
|
232
|
+
* l'appelant fournit les instances, le groupe filtre ce qui n'est pas un bouton.
|
|
233
|
+
*/
|
|
234
|
+
private readonly enfantsDynamiques;
|
|
235
|
+
enregistrerEnfants(instances: unknown[]): void;
|
|
236
|
+
private readonly tousBoutons;
|
|
225
237
|
constructor();
|
|
226
238
|
protected onClick(e: Event): void;
|
|
227
239
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadButtonGroupComponent, never>;
|
|
@@ -258,6 +270,7 @@ declare class CadInputDirective {
|
|
|
258
270
|
*
|
|
259
271
|
* Le focus se pose sur la BOÎTE (`.cad-field__box:focus-within`) — jamais sur un morceau (règle SZU 17/08).
|
|
260
272
|
* L'erreur remplace l'aide quand elle est présente. `label` lié au contrôle via `for`.
|
|
273
|
+
* @atelier icone=text-cursor-input largeur=4 hauteur=1 pose-label=Champ
|
|
261
274
|
*/
|
|
262
275
|
declare class CadFieldComponent {
|
|
263
276
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -283,6 +296,7 @@ declare class CadFieldComponent {
|
|
|
283
296
|
/**
|
|
284
297
|
* <cad-number [(value)]="port" [min]="1" [max]="65535" [step]="1" suffix=" ms" [decimals]="0" showButtons/>
|
|
285
298
|
* CVA<number|null>. Clavier : ↑/↓ (± step), Shift+↑/↓ (× 10), Home/End (min/max). Locale via `locale`.
|
|
299
|
+
* @atelier icone=hash largeur=3 hauteur=1
|
|
286
300
|
*/
|
|
287
301
|
declare class CadNumberComponent extends CadValueAccessor<number> {
|
|
288
302
|
readonly min: _angular_core.InputSignalWithTransform<number | null, unknown>;
|
|
@@ -320,6 +334,7 @@ declare class CadNumberComponent extends CadValueAccessor<number> {
|
|
|
320
334
|
/**
|
|
321
335
|
* <cad-password [(value)]="pwd" placeholder="…" toggleMask [feedback]="true" />
|
|
322
336
|
* CVA<string>. Bouton œil (afficher/masquer), jauge de robustesse optionnelle (`feedback`), `autocomplete`.
|
|
337
|
+
* @atelier icone=lock largeur=3 hauteur=1
|
|
323
338
|
*/
|
|
324
339
|
declare class CadPasswordComponent extends CadValueAccessor<string> {
|
|
325
340
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
@@ -347,6 +362,7 @@ type CadSliderSeverity = 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
|
347
362
|
* <cad-slider range [(value)]="[a,b]" [marks]="[0,25,50,75,100]"/>
|
|
348
363
|
* CVA<number | [number, number]>. Remplace p-slider. Clavier ←→↑↓ (±step), PageUp/Down (±10 steps), Home/End, Shift = ×10.
|
|
349
364
|
* `lazy` : `valueChange`/`changed` émis au relâchement seulement (`sliding` pendant le drag).
|
|
365
|
+
* @atelier icone=sliders-horizontal largeur=4 hauteur=1
|
|
350
366
|
*/
|
|
351
367
|
declare class CadSliderComponent extends CadValueAccessor<CadSliderValue> {
|
|
352
368
|
readonly min: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -449,6 +465,7 @@ declare const CAD_COLOR_PRESETS: string[];
|
|
|
449
465
|
* <cad-colorpicker [(value)]="color" format="hex" alpha [presets]="[…]" inline/>
|
|
450
466
|
* CVA<string>. Panneau : zone saturation/luminosité + barre de teinte (+ alpha), champs hex/r/g/b, palette, pipette (EyeDropper si dispo).
|
|
451
467
|
* Clavier : flèches sur les poignées (Shift = ×10). Events `changed`, `opened`, `closed`.
|
|
468
|
+
* @atelier icone=palette largeur=3 hauteur=1
|
|
452
469
|
*/
|
|
453
470
|
declare class CadColorpickerComponent extends CadValueAccessor<string> {
|
|
454
471
|
readonly format: _angular_core.InputSignal<CadColorFormat>;
|
|
@@ -508,6 +525,7 @@ declare class CadColorpickerComponent extends CadValueAccessor<string> {
|
|
|
508
525
|
/**
|
|
509
526
|
* <cad-rating [(value)]="note" [max]="5" allowHalf clearable showValue severity="warning"/>
|
|
510
527
|
* CVA<number>. Clavier ←→ (± 1 ou ½), Home/End, Suppr = 0 (clearable). `role="slider"`.
|
|
528
|
+
* @atelier ajustement=naturel icone=star largeur=2 hauteur=1 pose-value=3
|
|
511
529
|
*/
|
|
512
530
|
declare class CadRatingComponent extends CadValueAccessor<number> {
|
|
513
531
|
readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -612,6 +630,7 @@ declare class CadInplaceContentDirective {
|
|
|
612
630
|
* <ng-template cadInplaceContent><input cadInput [(ngModel)]="name"></ng-template>
|
|
613
631
|
* </cad-inplace>
|
|
614
632
|
* Texte → éditeur au clic/Entrée ; Échap ou blur referme (`closeOnEscape`, `closeOnBlur`) ; crayon au survol.
|
|
633
|
+
* @atelier icone=pen-line hauteur=1
|
|
615
634
|
*/
|
|
616
635
|
declare class CadInplaceComponent {
|
|
617
636
|
readonly active: _angular_core.ModelSignal<boolean>;
|
|
@@ -635,6 +654,7 @@ declare class CadInplaceComponent {
|
|
|
635
654
|
/**
|
|
636
655
|
* <cad-switch [(value)]="on" label="Auto-park 7 j" size="sm" labelPosition="left" />
|
|
637
656
|
* CVA<boolean>. Espace/Entrée basculent. `readonly` = visible mais figé.
|
|
657
|
+
* @atelier ajustement=naturel icone=toggle-right largeur=2 hauteur=1 pose-label=Interrupteur
|
|
638
658
|
*/
|
|
639
659
|
declare class CadSwitchComponent extends CadValueAccessor<boolean> {
|
|
640
660
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -653,6 +673,7 @@ declare class CadSwitchComponent extends CadValueAccessor<boolean> {
|
|
|
653
673
|
* <cad-checkbox [(value)]="checked" label="PostGIS" [indeterminate]="some" />
|
|
654
674
|
* CVA<boolean>. `indeterminate` (two-way) = état visuel « partiel » ; un clic passe à coché.
|
|
655
675
|
* `invalid` pour l'état d'erreur (ex. CGU non acceptées).
|
|
676
|
+
* @atelier ajustement=naturel icone=check-square largeur=2 hauteur=1 pose-label="Case à cocher"
|
|
656
677
|
*/
|
|
657
678
|
declare class CadCheckboxComponent extends CadValueAccessor<boolean> {
|
|
658
679
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -673,6 +694,7 @@ declare class CadCheckboxComponent extends CadValueAccessor<boolean> {
|
|
|
673
694
|
* <cad-radio value="session" label="Session" [disabled]="true" />
|
|
674
695
|
* </cad-radio-group>
|
|
675
696
|
* CVA<T> sur le GROUPE. Clavier : ←/→/↑/↓ déplacent la sélection (pattern WAI-ARIA radiogroup).
|
|
697
|
+
* @atelier icone=circle-dot largeur=2
|
|
676
698
|
*/
|
|
677
699
|
declare class CadRadioGroupComponent<T = unknown> extends CadValueAccessor<T> {
|
|
678
700
|
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
|
|
@@ -711,6 +733,8 @@ type CadSegmentOption = {
|
|
|
711
733
|
* <cad-segmented [(value)]="view" [options]="[{label:'Tableau',value:'t'},{label:'SQL',value:'s',icon:'code'}]" />
|
|
712
734
|
* Remplace p-selectButton. CVA<T>. `multiple` = tableau de valeurs. `allowEmpty` (single) autorise la désélection.
|
|
713
735
|
* `optionLabel`/`optionValue` pour des objets. Template d'option : <ng-template let-o>…</ng-template>.
|
|
736
|
+
* @atelier icone=columns-3 hauteur=1
|
|
737
|
+
* @atelier-exemple options [{"label":"Jour","value":"jour"},{"label":"Semaine","value":"semaine"},{"label":"Mois","value":"mois"}]
|
|
714
738
|
*/
|
|
715
739
|
declare class CadSegmentedComponent<T = unknown> extends CadValueAccessor<T | T[]> {
|
|
716
740
|
readonly options: _angular_core.InputSignal<CadSegmentOption[]>;
|
|
@@ -736,6 +760,7 @@ declare class CadSegmentedComponent<T = unknown> extends CadValueAccessor<T | T[
|
|
|
736
760
|
/**
|
|
737
761
|
* <cad-toggle-button [(value)]="on" onLabel="Actif" offLabel="Inactif" onIcon="check" offIcon="x" severity="primary"/>
|
|
738
762
|
* CVA<boolean>. Actif = bouton plein, inactif = contour. `aria-pressed`. Remplace p-toggleButton.
|
|
763
|
+
* @atelier icone=toggle-left largeur=2 hauteur=1
|
|
739
764
|
*/
|
|
740
765
|
declare class CadToggleButtonComponent extends CadValueAccessor<boolean> {
|
|
741
766
|
readonly onLabel: _angular_core.InputSignal<string>;
|
|
@@ -1119,6 +1144,8 @@ declare abstract class CadSelectBase<T, V> extends CadValueAccessor<V> {
|
|
|
1119
1144
|
* Escape/Tab ferment, lettres = typeahead (sélection directe quand fermé), Suppr/Retour = effacer si `clearable`.
|
|
1120
1145
|
* - `open()/close()/toggle()/focus()` publiques ; events `changed`, `opened`, `closed`, `filtered`, `cleared`, `focusChange`.
|
|
1121
1146
|
* - mobile : `mobile="auto|sheet|popover"` — sous le seuil mobile le panneau s'ouvre en feuille basse (cad-sheet), options 44 px.
|
|
1147
|
+
* @atelier icone=chevrons-up-down largeur=3 hauteur=1
|
|
1148
|
+
* @atelier-exemple options [{"label":"Béton"},{"label":"Acier"},{"label":"Bois"},{"label":"Mixte"}]
|
|
1122
1149
|
*/
|
|
1123
1150
|
declare class CadSelectComponent<T = unknown, V = unknown> extends CadSelectBase<T, V> {
|
|
1124
1151
|
/** Émis quand l'utilisateur choisit (ou efface) une option. */
|
|
@@ -1147,6 +1174,8 @@ declare class CadSelectComponent<T = unknown, V = unknown> extends CadSelectBase
|
|
|
1147
1174
|
* - Espace/Entrée basculent l'option SANS fermer le panneau ; Escape ferme.
|
|
1148
1175
|
* - events : `changed<V[]>`, `removed<V>` (chip retirée), + `opened/closed/filtered/cleared/focusChange`.
|
|
1149
1176
|
* - mobile : `mobile="auto|sheet|popover"` — feuille basse avec pied « OK (n) » sous le seuil mobile.
|
|
1177
|
+
* @atelier icone=list-checks largeur=3 hauteur=1
|
|
1178
|
+
* @atelier-exemple options [{"label":"Nord"},{"label":"Sud"},{"label":"Est"},{"label":"Ouest"}]
|
|
1150
1179
|
*/
|
|
1151
1180
|
declare class CadMultiselectComponent<T = unknown, V = unknown> extends CadSelectBase<T, V[]> {
|
|
1152
1181
|
readonly display: _angular_core.InputSignal<"chip" | "comma">;
|
|
@@ -1423,6 +1452,7 @@ interface CadColumnFilterOption {
|
|
|
1423
1452
|
* <ng-template cadFilterTemplate let-col>…</ng-template>
|
|
1424
1453
|
* </cad-column>
|
|
1425
1454
|
* Déclaration d'une colonne de cad-table (élément sans rendu propre).
|
|
1455
|
+
* @atelier icone=columns
|
|
1426
1456
|
*/
|
|
1427
1457
|
declare class CadColumnComponent {
|
|
1428
1458
|
/** Chemin (pointé) de la donnée dans la ligne. */
|
|
@@ -1485,6 +1515,7 @@ declare class CadColumnComponent {
|
|
|
1485
1515
|
/**
|
|
1486
1516
|
* <cad-filter-chip label="Statut" value="en ligne, en pause" active removable (removed)="…" (clicked)="…"/>
|
|
1487
1517
|
* Chip de filtre de la barre d'outils (pointillé inactif = « + Filtre », plein accent quand actif).
|
|
1518
|
+
* @atelier ajustement=naturel icone=filter largeur=2 hauteur=1 pose-label=Filtre
|
|
1488
1519
|
*/
|
|
1489
1520
|
declare class CadFilterChipComponent {
|
|
1490
1521
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -1509,6 +1540,9 @@ interface CadPageEvent {
|
|
|
1509
1540
|
/**
|
|
1510
1541
|
* <cad-paginator [(first)]="first" [(rows)]="rows" [totalRecords]="42" [rowsPerPageOptions]="[10,25,50]" (pageChange)="…"/>
|
|
1511
1542
|
* Remplace p-paginator. Réutilisé par cad-table. `currentPageReportTemplate` : {first} {last} {totalRecords} {currentPage} {totalPages} {rows}.
|
|
1543
|
+
* @atelier icone=arrow-left-right hauteur=1
|
|
1544
|
+
* @atelier-exemple totalRecords 120
|
|
1545
|
+
* @atelier-exemple rows 10
|
|
1512
1546
|
*/
|
|
1513
1547
|
declare class CadPaginatorComponent {
|
|
1514
1548
|
readonly first: _angular_core.ModelSignal<number>;
|
|
@@ -1853,6 +1887,7 @@ declare class CadTabComponent {
|
|
|
1853
1887
|
/**
|
|
1854
1888
|
* <cad-tabs [(value)]="tab" [(activeIndex)]="i" variant="line|pill|enclosed" size="sm|md" [stretch] [scrollable] [lazy]="true" [keepAlive]="true" (changed) (tabChange)>
|
|
1855
1889
|
* `value` prime sur `activeIndex` (les deux sont two-way et synchronisés). Clavier ←/→/Home/End sur la liste.
|
|
1890
|
+
* @atelier icone=folder
|
|
1856
1891
|
*/
|
|
1857
1892
|
declare class CadTabsComponent {
|
|
1858
1893
|
readonly value: _angular_core.ModelSignal<unknown>;
|
|
@@ -1912,6 +1947,7 @@ declare class CadStepComponent {
|
|
|
1912
1947
|
/**
|
|
1913
1948
|
* <cad-stepper [(activeIndex)]="i" [linear] [clickable]="true" orientation="horizontal|vertical" size="sm|md" (changed) (stepClick)>
|
|
1914
1949
|
* `linear` : impossible d'aller au-delà de la première étape non `completed`. Méthodes next()/prev()/goTo(i).
|
|
1950
|
+
* @atelier icone=git-commit
|
|
1915
1951
|
*/
|
|
1916
1952
|
declare class CadStepperComponent {
|
|
1917
1953
|
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
@@ -1984,6 +2020,7 @@ declare class CadAccordionPanelComponent {
|
|
|
1984
2020
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadAccordionPanelComponent, never>;
|
|
1985
2021
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadAccordionPanelComponent, "cad-accordion-panel", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "opened": "opened"; "closed": "closed"; }, ["headerTpl", "contentTpl"], ["[cadPanelExtra]", "*"], true, never>;
|
|
1986
2022
|
}
|
|
2023
|
+
/** @atelier icone=chevron-down */
|
|
1987
2024
|
declare class CadAccordionComponent {
|
|
1988
2025
|
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1989
2026
|
/** Ouvert(s) : string (single) ou string[] (multiple). */
|
|
@@ -2022,6 +2059,8 @@ declare class CadBreadcrumbItemDirective {
|
|
|
2022
2059
|
* <cad-breadcrumb [items]="[{label:'Projets', routerLink:'/projets'}, {label:'gestion-flotte'}, {label:'Environnements'}]"
|
|
2023
2060
|
* [home]="{icon:'home', routerLink:'/'}" separatorIcon="chevron-right" [maxItems]="4" (itemClick)>
|
|
2024
2061
|
* Le dernier élément porte aria-current="page". Au-delà de `maxItems`, les éléments du milieu sont repliés en « … » (clic = déplie).
|
|
2062
|
+
* @atelier icone=chevron-right hauteur=1
|
|
2063
|
+
* @atelier-exemple items [{"label":"Accueil"},{"label":"Ouvrages"},{"label":"Pont de Sèvres"}]
|
|
2025
2064
|
*/
|
|
2026
2065
|
declare class CadBreadcrumbComponent {
|
|
2027
2066
|
readonly items: _angular_core.InputSignal<CadBreadcrumbItem[]>;
|
|
@@ -2073,6 +2112,8 @@ interface CadMenuItem {
|
|
|
2073
2112
|
* inline : liste verticale. Sous-menu 1 niveau (`items`), ouvert au survol / →. Clavier ↑/↓/Home/End/Entrée/→/←/Escape.
|
|
2074
2113
|
* mobile : `mobile="auto|sheet|popover"` — sous le seuil mobile, le menu popup s'ouvre en feuille basse (items 44 px,
|
|
2075
2114
|
* sous-menus dépliés en accordéon) sauf menu contextuel (clic droit) sur desktop.
|
|
2115
|
+
* @atelier icone=menu
|
|
2116
|
+
* @atelier-exemple items [{"label":"Ouvrir","icon":"folder-open"},{"label":"Exporter","icon":"download"},{"separator":true},{"label":"Supprimer","icon":"trash-2","severity":"danger"}]
|
|
2076
2117
|
*/
|
|
2077
2118
|
declare class CadMenuComponent {
|
|
2078
2119
|
private readonly overlay;
|
|
@@ -2138,6 +2179,8 @@ interface CadMenubarItem extends CadMenuItem {
|
|
|
2138
2179
|
* Barre horizontale : racines (routerLink actif souligné), sous-menus en overlay CDK (`cad-menu` popup, 2 niveaux) au clic ou au survol,
|
|
2139
2180
|
* méga-menu multi-colonnes (`columns`), clavier ←→ entre racines, ↓/Entrée ouvre, Échap ferme, `role=menubar`.
|
|
2140
2181
|
* Sous `breakpoint` (fenêtre) : bouton hamburger + menu vertical déplié en accordéon.
|
|
2182
|
+
* @atelier icone=menu
|
|
2183
|
+
* @atelier-exemple items [{"label":"Fichier","items":[{"label":"Nouveau"},{"label":"Ouvrir"}]},{"label":"Édition","items":[{"label":"Annuler"},{"label":"Rétablir"}]},{"label":"Affichage"}]
|
|
2141
2184
|
*/
|
|
2142
2185
|
declare class CadMenubarComponent {
|
|
2143
2186
|
private readonly overlay;
|
|
@@ -2215,6 +2258,9 @@ declare class CadSplitButtonComponent {
|
|
|
2215
2258
|
/**
|
|
2216
2259
|
* <cad-speed-dial [items]="items" direction="up" type="linear" [(visible)] mask/>
|
|
2217
2260
|
* FAB 48 px + items déployés en ligne (`linear`), en cercle ou demi-cercle. Clic dehors / Échap ferment. Tooltips (label), clavier ↑↓ Entrée.
|
|
2261
|
+
* @atelier icone=plus-circle
|
|
2262
|
+
* @atelier-exemple items [{"icon":"pen-line","title":"Éditer"},{"icon":"share-2","title":"Partager"},{"icon":"trash-2","title":"Supprimer"}]
|
|
2263
|
+
* @atelier-exemple visible true
|
|
2218
2264
|
*/
|
|
2219
2265
|
declare class CadSpeedDialComponent {
|
|
2220
2266
|
readonly items: _angular_core.InputSignal<CadMenuItem[]>;
|
|
@@ -2279,6 +2325,9 @@ interface CadBottomNavItem {
|
|
|
2279
2325
|
* couleur : la couleur seule disparaît pour une personne daltonienne. Les cibles font 44 px de
|
|
2280
2326
|
* haut au minimum, et la barre réserve la zone sûre des téléphones à encoche
|
|
2281
2327
|
* (`env(safe-area-inset-bottom)`), sans quoi la dernière rangée passe sous la barre d'accueil.
|
|
2328
|
+
* @atelier icone=panel-bottom
|
|
2329
|
+
* @atelier-exemple items [{"value":"carte","label":"Carte","icon":"map"},{"value":"releves","label":"Relevés","icon":"clipboard-list"},{"value":"alertes","label":"Alertes","icon":"bell"},{"value":"profil","label":"Profil","icon":"user-round"}]
|
|
2330
|
+
* @atelier-exemple value "carte"
|
|
2282
2331
|
*/
|
|
2283
2332
|
declare class CadBottomNavComponent {
|
|
2284
2333
|
private readonly bp;
|
|
@@ -2391,6 +2440,9 @@ interface CadNavDrawerRow {
|
|
|
2391
2440
|
*
|
|
2392
2441
|
* LA LISTE EST DISTINCTE DE CELLE DE `cad-bottom-nav`, volontairement — voir la note qui s'y
|
|
2393
2442
|
* trouve : on ne met pas en avant les mêmes destinations au pouce que dans un menu complet.
|
|
2443
|
+
* @atelier icone=sidebar-open
|
|
2444
|
+
* @atelier-exemple items [{"value":"tableau","label":"Tableau de bord","icon":"layout-dashboard"},{"value":"ouvrages","label":"Ouvrages","icon":"building-2"},{"value":"releves","label":"Relevés","icon":"clipboard-list"},{"value":"parametres","label":"Paramètres","icon":"settings-2"}]
|
|
2445
|
+
* @atelier-exemple value "tableau"
|
|
2394
2446
|
*/
|
|
2395
2447
|
declare class CadNavDrawerComponent {
|
|
2396
2448
|
private readonly bp;
|
|
@@ -2481,6 +2533,15 @@ interface CadColumnReorderEvent {
|
|
|
2481
2533
|
columns: CadColumnComponent[];
|
|
2482
2534
|
order: string[];
|
|
2483
2535
|
}
|
|
2536
|
+
/** Une colonne définie par entrée (`[colonnes]`) — le sous-ensemble utile de `<cad-column>`. */
|
|
2537
|
+
interface CadColonneDef {
|
|
2538
|
+
field: string;
|
|
2539
|
+
header?: string;
|
|
2540
|
+
dataType?: CadColumnDataType;
|
|
2541
|
+
align?: CadColumnAlign;
|
|
2542
|
+
width?: string;
|
|
2543
|
+
sortable?: boolean;
|
|
2544
|
+
}
|
|
2484
2545
|
interface CadFilterChangeEvent {
|
|
2485
2546
|
filters: CadFilters;
|
|
2486
2547
|
globalFilter: string;
|
|
@@ -2704,7 +2765,21 @@ declare abstract class CadTableBase<T> {
|
|
|
2704
2765
|
/** Pied « N lignes · filtrées · sélectionnées ». */
|
|
2705
2766
|
readonly showRowCount: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2706
2767
|
readonly rowCountLabel: _angular_core.InputSignal<string>;
|
|
2707
|
-
|
|
2768
|
+
/**
|
|
2769
|
+
* Colonnes par ENTRÉE — jumelles des `<cad-column>` projetées, pour les contextes où
|
|
2770
|
+
* la projection n'existe pas : construction dynamique (l'atelier CadGrid instancie par
|
|
2771
|
+
* `createComponent`, et une requête de contenu ne voit JAMAIS un composant créé
|
|
2772
|
+
* dynamiquement), configuration programmatique, colonnes venues d'une API.
|
|
2773
|
+
*
|
|
2774
|
+
* Le gabarit de `cad-table` rend ces définitions en `<cad-column>` réels (masqués,
|
|
2775
|
+
* la colonne ne dessine rien) et une requête de VUE les récupère : tout le moteur
|
|
2776
|
+
* continue de consommer des `CadColumnComponent`, aucune seconde voie interne.
|
|
2777
|
+
* Les deux sources se cumulent, projection d'abord.
|
|
2778
|
+
*/
|
|
2779
|
+
readonly colonnes: _angular_core.InputSignal<CadColonneDef[]>;
|
|
2780
|
+
protected readonly columnsProjetees: _angular_core.Signal<readonly CadColumnComponent[]>;
|
|
2781
|
+
protected readonly columnsSynthetisees: _angular_core.Signal<readonly CadColumnComponent[]>;
|
|
2782
|
+
readonly columns: _angular_core.Signal<CadColumnComponent[]>;
|
|
2708
2783
|
readonly expansionTpl: _angular_core.Signal<CadRowExpansionDirective | undefined>;
|
|
2709
2784
|
readonly rowActionsTpl: _angular_core.Signal<CadRowActionsDirective | undefined>;
|
|
2710
2785
|
readonly emptyTpl: _angular_core.Signal<CadEmptyDirective | undefined>;
|
|
@@ -2715,7 +2790,7 @@ declare abstract class CadTableBase<T> {
|
|
|
2715
2790
|
readonly cardTpl: _angular_core.Signal<CadCardDirective | undefined>;
|
|
2716
2791
|
readonly rowCountTpl: _angular_core.Signal<CadRowCountDirective | undefined>;
|
|
2717
2792
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadTableBase<any>, never>;
|
|
2718
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CadTableBase<any>, never, never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingRows": { "alias": "loadingRows"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "emptyHint": { "alias": "emptyHint"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "cellFormatter": { "alias": "cellFormatter"; "required": false; "isSignal": true; }; "dense": { "alias": "dense"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "borderless": { "alias": "borderless"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; "isSignal": true; }; "resizableColumns": { "alias": "resizableColumns"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "tableClass": { "alias": "tableClass"; "required": false; "isSignal": true; }; "tableStyle": { "alias": "tableStyle"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "rowStyle": { "alias": "rowStyle"; "required": false; "isSignal": true; }; "rowActionsWidth": { "alias": "rowActionsWidth"; "required": false; "isSignal": true; }; "rowActionsAlwaysVisible": { "alias": "rowActionsAlwaysVisible"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "columnToggle": { "alias": "columnToggle"; "required": false; "isSignal": true; }; "columnsLabel": { "alias": "columnsLabel"; "required": false; "isSignal": true; }; "showDensityToggle": { "alias": "showDensityToggle"; "required": false; "isSignal": true; }; "showSelectionBar": { "alias": "showSelectionBar"; "required": false; "isSignal": true; }; "selectedLabel": { "alias": "selectedLabel"; "required": false; "isSignal": true; }; "selectedLabelPlural": { "alias": "selectedLabelPlural"; "required": false; "isSignal": true; }; "filtersLabel": { "alias": "filtersLabel"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "selectAll": { "alias": "selectAll"; "required": false; "isSignal": true; }; "selectAllScope": { "alias": "selectAllScope"; "required": false; "isSignal": true; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; "isSignal": true; }; "metaKeySelection": { "alias": "metaKeySelection"; "required": false; "isSignal": true; }; "selectionPropagation": { "alias": "selectionPropagation"; "required": false; "isSignal": true; }; "sortField": { "alias": "sortField"; "required": false; "isSignal": true; }; "sortOrder": { "alias": "sortOrder"; "required": false; "isSignal": true; }; "sortMode": { "alias": "sortMode"; "required": false; "isSignal": true; }; "multiSortMeta": { "alias": "multiSortMeta"; "required": false; "isSignal": true; }; "defaultSortOrder": { "alias": "defaultSortOrder"; "required": false; "isSignal": true; }; "customSort": { "alias": "customSort"; "required": false; "isSignal": true; }; "paginator": { "alias": "paginator"; "required": false; "isSignal": true; }; "first": { "alias": "first"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; "isSignal": true; }; "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "showCurrentPageReport": { "alias": "showCurrentPageReport"; "required": false; "isSignal": true; }; "currentPageReportTemplate": { "alias": "currentPageReportTemplate"; "required": false; "isSignal": true; }; "pageLinks": { "alias": "pageLinks"; "required": false; "isSignal": true; }; "showFirstLastIcon": { "alias": "showFirstLastIcon"; "required": false; "isSignal": true; }; "alwaysShowPaginator": { "alias": "alwaysShowPaginator"; "required": false; "isSignal": true; }; "globalFilter": { "alias": "globalFilter"; "required": false; "isSignal": true; }; "globalFilterFields": { "alias": "globalFilterFields"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "filterDelay": { "alias": "filterDelay"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "lazyLoadOnInit": { "alias": "lazyLoadOnInit"; "required": false; "isSignal": true; }; "rowExpandable": { "alias": "rowExpandable"; "required": false; "isSignal": true; }; "expandedRowKeys": { "alias": "expandedRowKeys"; "required": false; "isSignal": true; }; "expandMode": { "alias": "expandMode"; "required": false; "isSignal": true; }; "treeField": { "alias": "treeField"; "required": false; "isSignal": true; }; "parentKey": { "alias": "parentKey"; "required": false; "isSignal": true; }; "treeColumn": { "alias": "treeColumn"; "required": false; "isSignal": true; }; "indent": { "alias": "indent"; "required": false; "isSignal": true; }; "expandedNodeKeys": { "alias": "expandedNodeKeys"; "required": false; "isSignal": true; }; "lazyChildren": { "alias": "lazyChildren"; "required": false; "isSignal": true; }; "hasChildren": { "alias": "hasChildren"; "required": false; "isSignal": true; }; "showTreeLines": { "alias": "showTreeLines"; "required": false; "isSignal": true; }; "treeIcon": { "alias": "treeIcon"; "required": false; "isSignal": true; }; "keepAncestors": { "alias": "keepAncestors"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "expandedGroups": { "alias": "expandedGroups"; "required": false; "isSignal": true; }; "aggregates": { "alias": "aggregates"; "required": false; "isSignal": true; }; "showGrandTotal": { "alias": "showGrandTotal"; "required": false; "isSignal": true; }; "grandTotalLabel": { "alias": "grandTotalLabel"; "required": false; "isSignal": true; }; "groupSort": { "alias": "groupSort"; "required": false; "isSignal": true; }; "groupLabel": { "alias": "groupLabel"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "stackAt": { "alias": "stackAt"; "required": false; "isSignal": true; }; "priorityBreakpoints": { "alias": "priorityBreakpoints"; "required": false; "isSignal": true; }; "showHiddenInExpansion": { "alias": "showHiddenInExpansion"; "required": false; "isSignal": true; }; "stickyFirstColumn": { "alias": "stickyFirstColumn"; "required": false; "isSignal": true; }; "stickyActions": { "alias": "stickyActions"; "required": false; "isSignal": true; }; "reorderableColumns": { "alias": "reorderableColumns"; "required": false; "isSignal": true; }; "columnOrder": { "alias": "columnOrder"; "required": false; "isSignal": true; }; "headerGroups": { "alias": "headerGroups"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualRowHeight": { "alias": "virtualRowHeight"; "required": false; "isSignal": true; }; "virtualBuffer": { "alias": "virtualBuffer"; "required": false; "isSignal": true; }; "editMode": { "alias": "editMode"; "required": false; "isSignal": true; }; "editOnClick": { "alias": "editOnClick"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "mutate": { "alias": "mutate"; "required": false; "isSignal": true; }; "showEditIcon": { "alias": "showEditIcon"; "required": false; "isSignal": true; }; "showRowEditButton": { "alias": "showRowEditButton"; "required": false; "isSignal": true; }; "rowEditDialogHeader": { "alias": "rowEditDialogHeader"; "required": false; "isSignal": true; }; "rowEditDialogSize": { "alias": "rowEditDialogSize"; "required": false; "isSignal": true; }; "rowEditDialogCols": { "alias": "rowEditDialogCols"; "required": false; "isSignal": true; }; "columnMenu": { "alias": "columnMenu"; "required": false; "isSignal": true; }; "columnMenuItems": { "alias": "columnMenuItems"; "required": false; "isSignal": true; }; "columnMenuExtra": { "alias": "columnMenuExtra"; "required": false; "isSignal": true; }; "pinnedColumns": { "alias": "pinnedColumns"; "required": false; "isSignal": true; }; "showFilterRow": { "alias": "showFilterRow"; "required": false; "isSignal": true; }; "showGroupZone": { "alias": "showGroupZone"; "required": false; "isSignal": true; }; "groupZoneLabel": { "alias": "groupZoneLabel"; "required": false; "isSignal": true; }; "hideGroupedColumns": { "alias": "hideGroupedColumns"; "required": false; "isSignal": true; }; "showRowNumber": { "alias": "showRowNumber"; "required": false; "isSignal": true; }; "reorderableRows": { "alias": "reorderableRows"; "required": false; "isSignal": true; }; "rowDragDisabled": { "alias": "rowDragDisabled"; "required": false; "isSignal": true; }; "showRowCount": { "alias": "showRowCount"; "required": false; "isSignal": true; }; "rowCountLabel": { "alias": "rowCountLabel"; "required": false; "isSignal": true; }; }, { "dense": "denseChange"; "selection": "selectionChange"; "rowSelect": "rowSelect"; "rowUnselect": "rowUnselect"; "rowClick": "rowClick"; "rowDblClick": "rowDblClick"; "sortField": "sortFieldChange"; "sortOrder": "sortOrderChange"; "multiSortMeta": "multiSortMetaChange"; "sortChange": "sortChange"; "first": "firstChange"; "rows": "rowsChange"; "pageChange": "pageChange"; "globalFilter": "globalFilterChange"; "filters": "filtersChange"; "filterChange": "filterChange"; "lazyLoad": "lazyLoad"; "expandedRowKeys": "expandedRowKeysChange"; "rowExpand": "rowExpand"; "rowCollapse": "rowCollapse"; "expandedNodeKeys": "expandedNodeKeysChange"; "nodeExpand": "nodeExpand"; "nodeCollapse": "nodeCollapse"; "groupBy": "groupByChange"; "expandedGroups": "expandedGroupsChange"; "aggregates": "aggregatesChange"; "columnResize": "columnResize"; "columnToggled": "columnToggled"; "columnOrder": "columnOrderChange"; "columnReorder": "columnReorder"; "editInit": "editInit"; "editComplete": "editComplete"; "editCancel": "editCancel"; "cellChange": "cellChange"; "rowEditInit": "rowEditInit"; "rowEditSave": "rowEditSave"; "rowEditCancel": "rowEditCancel"; "columnMenuAction": "columnMenuAction"; "pinnedColumns": "pinnedColumnsChange"; "columnPin": "columnPin"; "rowReorder": "rowReorder"; }, ["columns", "expansionTpl", "rowActionsTpl", "emptyTpl", "footerTpl", "captionTpl", "groupHeaderTpl", "groupFooterTpl", "cardTpl", "rowCountTpl"], never, true, never>;
|
|
2793
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CadTableBase<any>, never, never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingRows": { "alias": "loadingRows"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "emptyHint": { "alias": "emptyHint"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "cellFormatter": { "alias": "cellFormatter"; "required": false; "isSignal": true; }; "dense": { "alias": "dense"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "borderless": { "alias": "borderless"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; "isSignal": true; }; "resizableColumns": { "alias": "resizableColumns"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "tableClass": { "alias": "tableClass"; "required": false; "isSignal": true; }; "tableStyle": { "alias": "tableStyle"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "rowStyle": { "alias": "rowStyle"; "required": false; "isSignal": true; }; "rowActionsWidth": { "alias": "rowActionsWidth"; "required": false; "isSignal": true; }; "rowActionsAlwaysVisible": { "alias": "rowActionsAlwaysVisible"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "columnToggle": { "alias": "columnToggle"; "required": false; "isSignal": true; }; "columnsLabel": { "alias": "columnsLabel"; "required": false; "isSignal": true; }; "showDensityToggle": { "alias": "showDensityToggle"; "required": false; "isSignal": true; }; "showSelectionBar": { "alias": "showSelectionBar"; "required": false; "isSignal": true; }; "selectedLabel": { "alias": "selectedLabel"; "required": false; "isSignal": true; }; "selectedLabelPlural": { "alias": "selectedLabelPlural"; "required": false; "isSignal": true; }; "filtersLabel": { "alias": "filtersLabel"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "selectAll": { "alias": "selectAll"; "required": false; "isSignal": true; }; "selectAllScope": { "alias": "selectAllScope"; "required": false; "isSignal": true; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; "isSignal": true; }; "metaKeySelection": { "alias": "metaKeySelection"; "required": false; "isSignal": true; }; "selectionPropagation": { "alias": "selectionPropagation"; "required": false; "isSignal": true; }; "sortField": { "alias": "sortField"; "required": false; "isSignal": true; }; "sortOrder": { "alias": "sortOrder"; "required": false; "isSignal": true; }; "sortMode": { "alias": "sortMode"; "required": false; "isSignal": true; }; "multiSortMeta": { "alias": "multiSortMeta"; "required": false; "isSignal": true; }; "defaultSortOrder": { "alias": "defaultSortOrder"; "required": false; "isSignal": true; }; "customSort": { "alias": "customSort"; "required": false; "isSignal": true; }; "paginator": { "alias": "paginator"; "required": false; "isSignal": true; }; "first": { "alias": "first"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; "isSignal": true; }; "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "showCurrentPageReport": { "alias": "showCurrentPageReport"; "required": false; "isSignal": true; }; "currentPageReportTemplate": { "alias": "currentPageReportTemplate"; "required": false; "isSignal": true; }; "pageLinks": { "alias": "pageLinks"; "required": false; "isSignal": true; }; "showFirstLastIcon": { "alias": "showFirstLastIcon"; "required": false; "isSignal": true; }; "alwaysShowPaginator": { "alias": "alwaysShowPaginator"; "required": false; "isSignal": true; }; "globalFilter": { "alias": "globalFilter"; "required": false; "isSignal": true; }; "globalFilterFields": { "alias": "globalFilterFields"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "filterDelay": { "alias": "filterDelay"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "lazyLoadOnInit": { "alias": "lazyLoadOnInit"; "required": false; "isSignal": true; }; "rowExpandable": { "alias": "rowExpandable"; "required": false; "isSignal": true; }; "expandedRowKeys": { "alias": "expandedRowKeys"; "required": false; "isSignal": true; }; "expandMode": { "alias": "expandMode"; "required": false; "isSignal": true; }; "treeField": { "alias": "treeField"; "required": false; "isSignal": true; }; "parentKey": { "alias": "parentKey"; "required": false; "isSignal": true; }; "treeColumn": { "alias": "treeColumn"; "required": false; "isSignal": true; }; "indent": { "alias": "indent"; "required": false; "isSignal": true; }; "expandedNodeKeys": { "alias": "expandedNodeKeys"; "required": false; "isSignal": true; }; "lazyChildren": { "alias": "lazyChildren"; "required": false; "isSignal": true; }; "hasChildren": { "alias": "hasChildren"; "required": false; "isSignal": true; }; "showTreeLines": { "alias": "showTreeLines"; "required": false; "isSignal": true; }; "treeIcon": { "alias": "treeIcon"; "required": false; "isSignal": true; }; "keepAncestors": { "alias": "keepAncestors"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "expandedGroups": { "alias": "expandedGroups"; "required": false; "isSignal": true; }; "aggregates": { "alias": "aggregates"; "required": false; "isSignal": true; }; "showGrandTotal": { "alias": "showGrandTotal"; "required": false; "isSignal": true; }; "grandTotalLabel": { "alias": "grandTotalLabel"; "required": false; "isSignal": true; }; "groupSort": { "alias": "groupSort"; "required": false; "isSignal": true; }; "groupLabel": { "alias": "groupLabel"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "stackAt": { "alias": "stackAt"; "required": false; "isSignal": true; }; "priorityBreakpoints": { "alias": "priorityBreakpoints"; "required": false; "isSignal": true; }; "showHiddenInExpansion": { "alias": "showHiddenInExpansion"; "required": false; "isSignal": true; }; "stickyFirstColumn": { "alias": "stickyFirstColumn"; "required": false; "isSignal": true; }; "stickyActions": { "alias": "stickyActions"; "required": false; "isSignal": true; }; "reorderableColumns": { "alias": "reorderableColumns"; "required": false; "isSignal": true; }; "columnOrder": { "alias": "columnOrder"; "required": false; "isSignal": true; }; "headerGroups": { "alias": "headerGroups"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualRowHeight": { "alias": "virtualRowHeight"; "required": false; "isSignal": true; }; "virtualBuffer": { "alias": "virtualBuffer"; "required": false; "isSignal": true; }; "editMode": { "alias": "editMode"; "required": false; "isSignal": true; }; "editOnClick": { "alias": "editOnClick"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "mutate": { "alias": "mutate"; "required": false; "isSignal": true; }; "showEditIcon": { "alias": "showEditIcon"; "required": false; "isSignal": true; }; "showRowEditButton": { "alias": "showRowEditButton"; "required": false; "isSignal": true; }; "rowEditDialogHeader": { "alias": "rowEditDialogHeader"; "required": false; "isSignal": true; }; "rowEditDialogSize": { "alias": "rowEditDialogSize"; "required": false; "isSignal": true; }; "rowEditDialogCols": { "alias": "rowEditDialogCols"; "required": false; "isSignal": true; }; "columnMenu": { "alias": "columnMenu"; "required": false; "isSignal": true; }; "columnMenuItems": { "alias": "columnMenuItems"; "required": false; "isSignal": true; }; "columnMenuExtra": { "alias": "columnMenuExtra"; "required": false; "isSignal": true; }; "pinnedColumns": { "alias": "pinnedColumns"; "required": false; "isSignal": true; }; "showFilterRow": { "alias": "showFilterRow"; "required": false; "isSignal": true; }; "showGroupZone": { "alias": "showGroupZone"; "required": false; "isSignal": true; }; "groupZoneLabel": { "alias": "groupZoneLabel"; "required": false; "isSignal": true; }; "hideGroupedColumns": { "alias": "hideGroupedColumns"; "required": false; "isSignal": true; }; "showRowNumber": { "alias": "showRowNumber"; "required": false; "isSignal": true; }; "reorderableRows": { "alias": "reorderableRows"; "required": false; "isSignal": true; }; "rowDragDisabled": { "alias": "rowDragDisabled"; "required": false; "isSignal": true; }; "showRowCount": { "alias": "showRowCount"; "required": false; "isSignal": true; }; "rowCountLabel": { "alias": "rowCountLabel"; "required": false; "isSignal": true; }; "colonnes": { "alias": "colonnes"; "required": false; "isSignal": true; }; }, { "dense": "denseChange"; "selection": "selectionChange"; "rowSelect": "rowSelect"; "rowUnselect": "rowUnselect"; "rowClick": "rowClick"; "rowDblClick": "rowDblClick"; "sortField": "sortFieldChange"; "sortOrder": "sortOrderChange"; "multiSortMeta": "multiSortMetaChange"; "sortChange": "sortChange"; "first": "firstChange"; "rows": "rowsChange"; "pageChange": "pageChange"; "globalFilter": "globalFilterChange"; "filters": "filtersChange"; "filterChange": "filterChange"; "lazyLoad": "lazyLoad"; "expandedRowKeys": "expandedRowKeysChange"; "rowExpand": "rowExpand"; "rowCollapse": "rowCollapse"; "expandedNodeKeys": "expandedNodeKeysChange"; "nodeExpand": "nodeExpand"; "nodeCollapse": "nodeCollapse"; "groupBy": "groupByChange"; "expandedGroups": "expandedGroupsChange"; "aggregates": "aggregatesChange"; "columnResize": "columnResize"; "columnToggled": "columnToggled"; "columnOrder": "columnOrderChange"; "columnReorder": "columnReorder"; "editInit": "editInit"; "editComplete": "editComplete"; "editCancel": "editCancel"; "cellChange": "cellChange"; "rowEditInit": "rowEditInit"; "rowEditSave": "rowEditSave"; "rowEditCancel": "rowEditCancel"; "columnMenuAction": "columnMenuAction"; "pinnedColumns": "pinnedColumnsChange"; "columnPin": "columnPin"; "rowReorder": "rowReorder"; }, ["columnsProjetees", "expansionTpl", "rowActionsTpl", "emptyTpl", "footerTpl", "captionTpl", "groupHeaderTpl", "groupFooterTpl", "cardTpl", "rowCountTpl"], never, true, never>;
|
|
2719
2794
|
}
|
|
2720
2795
|
|
|
2721
2796
|
/**
|
|
@@ -2726,6 +2801,9 @@ declare abstract class CadTableBase<T> {
|
|
|
2726
2801
|
* </cad-table>
|
|
2727
2802
|
* UN composant : plat, ARBRE (`treeField`/`parentKey`), GROUPEMENT (`groupBy`) — moteur CadTreeAdapter ; responsive scroll|priority|stack ; colonnes figées,
|
|
2728
2803
|
* réordonnables (`columnOrder`), virtual scroll, édition inline cell|row. Tri/filtre/pagination locaux, ou tout délégué en `lazy`.
|
|
2804
|
+
* @atelier icone=table
|
|
2805
|
+
* @atelier-exemple colonnes [{"field":"nom","header":"Nom"},{"field":"etat","header":"État"},{"field":"controle","header":"Dernier contrôle"}]
|
|
2806
|
+
* @atelier-exemple value [{"nom":"Pont de Sèvres","etat":"Bon","controle":"12/03/2026"},{"nom":"Viaduc de Meudon","etat":"À surveiller","controle":"28/05/2026"},{"nom":"Passerelle Rive Sud","etat":"Bon","controle":"02/07/2026"},{"nom":"Tunnel des Acacias","etat":"Dégradé","controle":"19/08/2026"}]
|
|
2729
2807
|
*/
|
|
2730
2808
|
declare class CadTableComponent<T = Record<string, unknown>> extends CadTableBase<T> {
|
|
2731
2809
|
private readonly host;
|
|
@@ -2994,6 +3072,11 @@ interface CadTreeNodeEvent<T> {
|
|
|
2994
3072
|
* </cad-tree>
|
|
2995
3073
|
* Arbre sans colonnes ; même moteur (CadTreeAdapter) que le mode arbre de cad-table. Données imbriquées (`treeField`) ou plates (`parentKey`+`dataKey`).
|
|
2996
3074
|
* Clavier : ↑/↓ (nœud suivant/précédent), → déplie / va au 1er enfant, ← replie / remonte au parent, Home/End, Entrée = sélection, Espace = case, * = déplie la fratrie.
|
|
3075
|
+
* @atelier icone=folder-tree
|
|
3076
|
+
* @atelier-exemple value [{"id":1,"label":"Infrastructures"},{"id":2,"label":"Pont de Sèvres","parent":1},{"id":3,"label":"Viaduc de Meudon","parent":1},{"id":4,"label":"Équipements"},{"id":5,"label":"Éclairage public","parent":4},{"id":6,"label":"Signalisation","parent":4}]
|
|
3077
|
+
* @atelier-exemple parentKey "parent"
|
|
3078
|
+
* @atelier-exemple dataKey "id"
|
|
3079
|
+
* @atelier-exemple labelField "label"
|
|
2997
3080
|
*/
|
|
2998
3081
|
declare class CadTreeComponent<T = Record<string, unknown>> {
|
|
2999
3082
|
private readonly host;
|
|
@@ -3123,6 +3206,7 @@ interface FilterDraft {
|
|
|
3123
3206
|
* </div>
|
|
3124
3207
|
* ou dans `<cad-split ratio="1fr auto">` / `<cad-sidebar>` de la couche layout.
|
|
3125
3208
|
* Sous `md` (fenêtre) le panneau devient un overlay à droite, fermé par défaut.
|
|
3209
|
+
* @atelier icone=table-properties
|
|
3126
3210
|
*/
|
|
3127
3211
|
declare class CadTablePanelComponent<T = unknown> {
|
|
3128
3212
|
private readonly bp;
|
|
@@ -3291,6 +3375,8 @@ type CadDataviewLayout = 'list' | 'grid';
|
|
|
3291
3375
|
* <ng-template cadDataviewGrid let-p>…carte…</ng-template>
|
|
3292
3376
|
* </cad-dataview>
|
|
3293
3377
|
* Remplace p-dataView : liste ou grille de templates, tri/filtre/pagination locaux, squelettes en `loading`.
|
|
3378
|
+
* @atelier icone=layout-list
|
|
3379
|
+
* @atelier-exemple value [{"label":"Pont de Sèvres","etat":"Bon"},{"label":"Viaduc de Meudon","etat":"À surveiller"},{"label":"Passerelle Rive Sud","etat":"Bon"}]
|
|
3294
3380
|
*/
|
|
3295
3381
|
declare class CadDataviewComponent<T = unknown> {
|
|
3296
3382
|
readonly value: _angular_core.InputSignal<T[]>;
|
|
@@ -3332,6 +3418,7 @@ declare class CadDataviewComponent<T = unknown> {
|
|
|
3332
3418
|
* <cad-treeselect [(value)]="v" [options]="arbre" treeField="children" labelField="name" dataKey="id" selectionMode="checkbox" filter clearable/>
|
|
3333
3419
|
* CVA : valeur = nœud(s) (objets) ; `optionValue` (chemin) pour stocker un identifiant. Panneau CDK avec un cad-tree.
|
|
3334
3420
|
* single → ferme à la sélection ; multiple/checkbox → chips ou « n sélectionnés » (`display`). Events changed/opened/closed/nodeExpand.
|
|
3421
|
+
* @atelier icone=folder-tree largeur=3 hauteur=1
|
|
3335
3422
|
*/
|
|
3336
3423
|
declare class CadTreeselectComponent<T = unknown> extends CadValueAccessor<T | T[] | unknown> {
|
|
3337
3424
|
readonly options: _angular_core.InputSignal<T[]>;
|
|
@@ -3394,6 +3481,7 @@ declare class CadTreeselectComponent<T = unknown> extends CadValueAccessor<T | T
|
|
|
3394
3481
|
/**
|
|
3395
3482
|
* <cad-cascade-select [(value)]="commune" [options]="regions" optionLabel="nom" optionValue="code" optionGroupLabel="nom" optionGroupChildren="items" showPath/>
|
|
3396
3483
|
* CVA valeur FEUILLE. Panneau à colonnes successives (survol/clic ouvre le niveau suivant, ← → ↑ ↓, Entrée choisit). Events changed/opened/closed/groupChange.
|
|
3484
|
+
* @atelier icone=corner-down-right largeur=3 hauteur=1
|
|
3397
3485
|
*/
|
|
3398
3486
|
declare class CadCascadeSelectComponent<T = unknown, V = unknown> extends CadValueAccessor<V> {
|
|
3399
3487
|
readonly options: _angular_core.InputSignal<T[]>;
|
|
@@ -3450,6 +3538,8 @@ type CadComboSource<T> = T[] | ((query: string) => T[] | Promise<T[]> | Observab
|
|
|
3450
3538
|
* <cad-combo [(value)]="ville" [suggestions]="search" optionLabel="nom" [minLength]="2" [delay]="250" dropdown forceSelection placeholder="Commune…"/>
|
|
3451
3539
|
* Autocomplete (remplace p-autocomplete et le cad-combo du studio). CVA string (texte libre) ou objet (`forceSelection`), `multiple` = chips.
|
|
3452
3540
|
* `suggestions` = tableau (filtré localement) ou fonction (query) → tableau | Promise | Observable. Template `cadSelectItem`. Clavier ↑↓ Entrée Échap.
|
|
3541
|
+
* @atelier icone=list-filter largeur=3 hauteur=1
|
|
3542
|
+
* @atelier-exemple suggestions [{"label":"Béton armé"},{"label":"Béton précontraint"},{"label":"Acier"},{"label":"Bois lamellé"}]
|
|
3453
3543
|
*/
|
|
3454
3544
|
declare class CadComboComponent<T = unknown> extends CadValueAccessor<unknown> {
|
|
3455
3545
|
readonly suggestions: _angular_core.InputSignal<CadComboSource<T>>;
|
|
@@ -3561,6 +3651,7 @@ interface DayCell {
|
|
|
3561
3651
|
* CVA<CadDateValue>. `dataType='string'` (défaut, compat studio/Postgres) → ISO local
|
|
3562
3652
|
* ("yyyy-MM-dd" / "yyyy-MM-ddTHH:mm" / "HH:mm" / "yyyy-MM" / "yyyy") ; `dataType='date'` → Date.
|
|
3563
3653
|
* `selectionMode='range'` → [debut, fin] ; 'multiple' → tableau.
|
|
3654
|
+
* @atelier icone=calendar-days largeur=3 hauteur=1
|
|
3564
3655
|
*/
|
|
3565
3656
|
declare class CadDatepickerComponent extends CadValueAccessor<CadDateValue> {
|
|
3566
3657
|
private readonly host;
|
|
@@ -3884,6 +3975,7 @@ declare abstract class CadOverlayBase implements OnDestroy {
|
|
|
3884
3975
|
* </cad-dialog>
|
|
3885
3976
|
* Remplace p-dialog. Chrome partagé (CadDialogContainerComponent), focus trap, Escape/backdrop configurables.
|
|
3886
3977
|
* Mobile : plein écran par défaut (`mobileFullscreen`), ou feuille basse (`mobileSheet`).
|
|
3978
|
+
* @atelier icone=message-square
|
|
3887
3979
|
*/
|
|
3888
3980
|
declare class CadDialogComponent extends CadOverlayBase {
|
|
3889
3981
|
readonly width: _angular_core.InputSignal<string | undefined>;
|
|
@@ -3911,6 +4003,7 @@ declare class CadDialogComponent extends CadOverlayBase {
|
|
|
3911
4003
|
* </cad-drawer>
|
|
3912
4004
|
* Remplace p-drawer. Même chrome/slots que cad-dialog (cadDialogHeader / cadDialogFooter), glissement 180 ms.
|
|
3913
4005
|
* Mobile : `mobileSize` ('full' par défaut = pleine largeur / hauteur).
|
|
4006
|
+
* @atelier icone=panel-right
|
|
3914
4007
|
*/
|
|
3915
4008
|
declare class CadDrawerComponent extends CadOverlayBase {
|
|
3916
4009
|
readonly position: _angular_core.InputSignal<CadDrawerPosition>;
|
|
@@ -3983,6 +4076,7 @@ declare class CadConfirmService {
|
|
|
3983
4076
|
/**
|
|
3984
4077
|
* <cad-confirm-dialog key="…"/> — wrapper de migration (PrimeNG exigeait un p-confirmDialog dans le template).
|
|
3985
4078
|
* cadriciel-ui n'en a PAS besoin (CadConfirmService rend lui-même) : ce composant ne fait rien et peut être retiré.
|
|
4079
|
+
* @atelier icone=help-circle
|
|
3986
4080
|
*/
|
|
3987
4081
|
declare class CadConfirmDialogComponent {
|
|
3988
4082
|
readonly key: _angular_core.InputSignal<string>;
|
|
@@ -4046,6 +4140,7 @@ declare class CadTooltipDirective implements OnDestroy {
|
|
|
4046
4140
|
* <button (click)="p.toggle($event)">…</button>
|
|
4047
4141
|
* Panneau flottant ancré sur une cible passée à `open(target)`. Base du futur menu contextuel.
|
|
4048
4142
|
* Mobile : `mobile="sheet"` → sous le seuil mobile le contenu s'ouvre en feuille basse (défaut 'popover' = inchangé).
|
|
4143
|
+
* @atelier icone=message-circle
|
|
4049
4144
|
*/
|
|
4050
4145
|
declare class CadPopoverComponent implements OnDestroy {
|
|
4051
4146
|
private readonly overlay;
|
|
@@ -4161,6 +4256,7 @@ interface ToastItem {
|
|
|
4161
4256
|
/**
|
|
4162
4257
|
* <cad-toast position="top-right" [life]="4000" [maxVisible]="5" [preventDuplicates]="true" [showProgress]="true" />
|
|
4163
4258
|
* Conteneur des toasts d'un `key` (ou sans clé). Position fixe hors flux, pause au survol, aria-live.
|
|
4259
|
+
* @atelier icone=bell
|
|
4164
4260
|
*/
|
|
4165
4261
|
declare class CadToastComponent {
|
|
4166
4262
|
private readonly svc;
|
|
@@ -4196,6 +4292,7 @@ declare class CadToastComponent {
|
|
|
4196
4292
|
/**
|
|
4197
4293
|
* <cad-message severity="warning" [closable]="true">Le certificat expire dans 6 jours.</cad-message>
|
|
4198
4294
|
* Message inline (remplace p-message). `text` ou contenu projeté ; `icon` (nom cad-icon, '' = sans icône) ; variant soft|outline ; size sm|md.
|
|
4295
|
+
* @atelier icone=info largeur=6 hauteur=1 pose-text="Message d'information"
|
|
4199
4296
|
*/
|
|
4200
4297
|
declare class CadMessageComponent {
|
|
4201
4298
|
readonly severity: _angular_core.InputSignal<"secondary" | "success" | "warning" | "danger" | "info">;
|
|
@@ -4218,6 +4315,7 @@ declare class CadMessageComponent {
|
|
|
4218
4315
|
/**
|
|
4219
4316
|
* <cad-avatar [src]="url" text="SZ" icon="user" size="sm|md|lg" shape="circle|square" [color]="'#…'" />
|
|
4220
4317
|
* Sans `color`, la teinte est dérivée du texte (hash → hue) : stable pour un même utilisateur.
|
|
4318
|
+
* @atelier ajustement=naturel icone=user-round largeur=1 hauteur=1 pose-text=AB
|
|
4221
4319
|
*/
|
|
4222
4320
|
declare class CadAvatarComponent {
|
|
4223
4321
|
readonly src: _angular_core.InputSignal<string | null | undefined>;
|
|
@@ -4239,6 +4337,7 @@ declare class CadAvatarComponent {
|
|
|
4239
4337
|
/**
|
|
4240
4338
|
* <cad-chip label="szu" icon="user" [image]="url" avatarText="SZ" removable [selected] [disabled] size="sm|md" severity="primary" (removed) (clicked)/>
|
|
4241
4339
|
* Backspace/Suppr sur un chip focalisé → `removed`. `clickable` rend le chip actionnable (role=button).
|
|
4340
|
+
* @atelier ajustement=naturel icone=tags largeur=2 hauteur=1 pose-label=Élément
|
|
4242
4341
|
*/
|
|
4243
4342
|
declare class CadChipComponent {
|
|
4244
4343
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -4262,7 +4361,10 @@ declare class CadChipComponent {
|
|
|
4262
4361
|
}
|
|
4263
4362
|
|
|
4264
4363
|
type CadTagSeverity = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
|
|
4265
|
-
/**
|
|
4364
|
+
/**
|
|
4365
|
+
* <cad-tag severity="success" dot value="En ligne" /> — statut compact (fond soft + point).
|
|
4366
|
+
* @atelier ajustement=naturel icone=tag largeur=1 hauteur=1 pose-value=Étiquette
|
|
4367
|
+
*/
|
|
4266
4368
|
declare class CadTagComponent {
|
|
4267
4369
|
readonly value: _angular_core.InputSignal<string>;
|
|
4268
4370
|
readonly severity: _angular_core.InputSignal<CadTagSeverity>;
|
|
@@ -4275,7 +4377,10 @@ declare class CadTagComponent {
|
|
|
4275
4377
|
}
|
|
4276
4378
|
|
|
4277
4379
|
type CadBadgeSeverity = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
|
|
4278
|
-
/**
|
|
4380
|
+
/**
|
|
4381
|
+
* <cad-badge [value]="3" [max]="99" severity="danger" [dot] size="sm|md" />
|
|
4382
|
+
* @atelier ajustement=naturel icone=badge-check largeur=1 hauteur=1 pose-value=3
|
|
4383
|
+
*/
|
|
4279
4384
|
declare class CadBadgeComponent {
|
|
4280
4385
|
readonly value: _angular_core.InputSignal<string | number | null>;
|
|
4281
4386
|
readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -4306,7 +4411,10 @@ declare class CadBadgeDirective {
|
|
|
4306
4411
|
}
|
|
4307
4412
|
|
|
4308
4413
|
type CadProgressSeverity = 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
4309
|
-
/**
|
|
4414
|
+
/**
|
|
4415
|
+
* <cad-progress [value]="62" [max]="100" [indeterminate] severity size="sm|md|lg" showValue label="Build" striped />
|
|
4416
|
+
* @atelier icone=percent largeur=4 hauteur=1 pose-value=60
|
|
4417
|
+
*/
|
|
4310
4418
|
declare class CadProgressComponent {
|
|
4311
4419
|
readonly value: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
4312
4420
|
readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -4321,7 +4429,10 @@ declare class CadProgressComponent {
|
|
|
4321
4429
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadProgressComponent, never>;
|
|
4322
4430
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadProgressComponent, "cad-progress", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4323
4431
|
}
|
|
4324
|
-
/**
|
|
4432
|
+
/**
|
|
4433
|
+
* <cad-spinner [size]="24" [strokeWidth]="2.5" severity ariaLabel="Chargement" />
|
|
4434
|
+
* @atelier ajustement=naturel icone=loader-2 largeur=1 hauteur=1
|
|
4435
|
+
*/
|
|
4325
4436
|
declare class CadSpinnerComponent {
|
|
4326
4437
|
readonly size: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
4327
4438
|
readonly strokeWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
@@ -4331,7 +4442,10 @@ declare class CadSpinnerComponent {
|
|
|
4331
4442
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadSpinnerComponent, "cad-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4332
4443
|
}
|
|
4333
4444
|
|
|
4334
|
-
/**
|
|
4445
|
+
/**
|
|
4446
|
+
* <cad-skeleton width="70%" height="12px" shape="text|rect|circle" [lines]="3" [animation]="true" />
|
|
4447
|
+
* @atelier icone=loader
|
|
4448
|
+
*/
|
|
4335
4449
|
declare class CadSkeletonComponent {
|
|
4336
4450
|
readonly width: _angular_core.InputSignal<string>;
|
|
4337
4451
|
readonly height: _angular_core.InputSignal<string>;
|
|
@@ -4358,6 +4472,7 @@ declare class CadCardHeaderDirective {
|
|
|
4358
4472
|
* contenu
|
|
4359
4473
|
* <div cadCardFooter>…</div>
|
|
4360
4474
|
* </cad-card>
|
|
4475
|
+
* @atelier icone=layout-template conteneur=flux largeur=6 hauteur=6 rang=2
|
|
4361
4476
|
*/
|
|
4362
4477
|
declare class CadCardComponent {
|
|
4363
4478
|
readonly header: _angular_core.InputSignal<string>;
|
|
@@ -4373,7 +4488,10 @@ declare class CadCardComponent {
|
|
|
4373
4488
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadCardComponent, "cad-card", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "subheader": { "alias": "subheader"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "flat": { "alias": "flat"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; }, {}, ["headerTpl"], ["[cadCardActions]", "*", "[cadCardFooter]"], true, never>;
|
|
4374
4489
|
}
|
|
4375
4490
|
|
|
4376
|
-
/**
|
|
4491
|
+
/**
|
|
4492
|
+
* <cad-divider [vertical] align="left|center|right" [dashed]>texte optionnel</cad-divider>
|
|
4493
|
+
* @atelier icone=minus largeur=12 hauteur=1
|
|
4494
|
+
*/
|
|
4377
4495
|
declare class CadDividerComponent {
|
|
4378
4496
|
readonly vertical: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4379
4497
|
readonly dashed: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -4391,6 +4509,7 @@ declare class CadFieldsetLegendDirective {
|
|
|
4391
4509
|
/**
|
|
4392
4510
|
* <cad-fieldset legend="Options avancées" toggleable [(collapsed)]="c" (toggled)="…">…</cad-fieldset>
|
|
4393
4511
|
* Remplace p-fieldset : légende posée sur la bordure, contenu repliable (animation grid-rows, `inert` fermé).
|
|
4512
|
+
* @atelier icone=square-dashed conteneur=flux largeur=6 hauteur=5
|
|
4394
4513
|
*/
|
|
4395
4514
|
declare class CadFieldsetComponent {
|
|
4396
4515
|
readonly legend: _angular_core.InputSignal<string>;
|
|
@@ -4417,6 +4536,7 @@ declare class CadPanelHeadingDirective {
|
|
|
4417
4536
|
* <div cadPanelFooter>…</div>
|
|
4418
4537
|
* </cad-panel>
|
|
4419
4538
|
* Remplace p-panel : en-tête 42 px fond `--cad-bg-subtle`, repli animé.
|
|
4539
|
+
* @atelier icone=panel-top conteneur=flux largeur=6 hauteur=6 rang=1
|
|
4420
4540
|
*/
|
|
4421
4541
|
declare class CadPanelComponent {
|
|
4422
4542
|
readonly header: _angular_core.InputSignal<string>;
|
|
@@ -4426,6 +4546,14 @@ declare class CadPanelComponent {
|
|
|
4426
4546
|
readonly flat: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4427
4547
|
readonly toggled: _angular_core.OutputEmitterRef<boolean>;
|
|
4428
4548
|
readonly headingTpl: _angular_core.Signal<CadPanelHeadingDirective | undefined>;
|
|
4549
|
+
/**
|
|
4550
|
+
* Un en-tête qui n'a RIEN à montrer ne se dessine pas (SZU 24/08 : un panel nu posé
|
|
4551
|
+
* dans l'atelier arborait une barre vide de 42 px). Masqué en CSS et non par un @if :
|
|
4552
|
+
* un `@if` autour d'un `<ng-content>` ferait retomber la projection dans le corps —
|
|
4553
|
+
* piège payé le 22/08. Limite assumée : des actions `[cadPanelActions]` SANS titre ni
|
|
4554
|
+
* repli restent masquées avec l'en-tête — donner alors un `header`.
|
|
4555
|
+
*/
|
|
4556
|
+
protected readonly sansEntete: _angular_core.Signal<boolean>;
|
|
4429
4557
|
protected readonly id: string;
|
|
4430
4558
|
toggle(): void;
|
|
4431
4559
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadPanelComponent, never>;
|
|
@@ -4435,6 +4563,7 @@ declare class CadPanelComponent {
|
|
|
4435
4563
|
/**
|
|
4436
4564
|
* <cad-avatar-group [max]="3" size="md"><cad-avatar text="SZ"/><cad-avatar text="PA"/>…</cad-avatar-group>
|
|
4437
4565
|
* Avatars empilés (chevauchement, bordure surface) ; au-delà de `max` un avatar « +N » (title = noms masqués).
|
|
4566
|
+
* @atelier ajustement=naturel icone=users largeur=2 hauteur=1
|
|
4438
4567
|
*/
|
|
4439
4568
|
declare class CadAvatarGroupComponent {
|
|
4440
4569
|
readonly max: _angular_core.InputSignalWithTransform<number | null, unknown>;
|
|
@@ -4465,6 +4594,8 @@ declare class CadMeterLabelDirective {
|
|
|
4465
4594
|
/**
|
|
4466
4595
|
* <cad-meter [values]="[{label:'Utilisé', value: 62, severity:'primary'}, {label:'Réservé', value: 18, severity:'warning'}]" [max]="100" unit="Gi" showLabels/>
|
|
4467
4596
|
* Jauge segmentée (remplace p-meterGroup) : segments proportionnels, légende (point + label + valeur/%), horizontal ou vertical.
|
|
4597
|
+
* @atelier icone=gauge
|
|
4598
|
+
* @atelier-exemple values [{"label":"Utilisé","value":62,"severity":"primary"},{"label":"Réservé","value":21,"severity":"warning"}]
|
|
4468
4599
|
*/
|
|
4469
4600
|
declare class CadMeterComponent {
|
|
4470
4601
|
readonly values: _angular_core.InputSignal<CadMeterValue[]>;
|
|
@@ -4518,6 +4649,8 @@ type CadTimelineAlign = 'left' | 'right' | 'alternate' | 'top' | 'bottom';
|
|
|
4518
4649
|
* <ng-template cadTimelineContent let-e let-i="index"><b>{{ e.title }}</b></ng-template>
|
|
4519
4650
|
* </cad-timeline>
|
|
4520
4651
|
* `activeIndex` : les événements d'index ≤ activeIndex sont « passés » (marqueur/connecteur en accent).
|
|
4652
|
+
* @atelier icone=milestone
|
|
4653
|
+
* @atelier-exemple events [{"title":"Mise en service","date":"2019"},{"title":"Première inspection","date":"2022"},{"title":"Réparations","date":"2024"},{"title":"Inspection décennale","date":"2029"}]
|
|
4521
4654
|
*/
|
|
4522
4655
|
declare class CadTimelineComponent<T = unknown> {
|
|
4523
4656
|
readonly events: _angular_core.InputSignal<T[]>;
|
|
@@ -4548,6 +4681,7 @@ interface CadCarouselResponsive {
|
|
|
4548
4681
|
* <ng-template cadCarouselItem let-it let-i="index">…</ng-template>
|
|
4549
4682
|
* </cad-carousel>
|
|
4550
4683
|
* `numVisible` responsive par breakpoints FENÊTRE ("1 sm:2 lg:3") ou `[responsive]="[{breakpoint:768,numVisible:1}]"` (max-width du CONTENEUR).
|
|
4684
|
+
* @atelier icone=images
|
|
4551
4685
|
*/
|
|
4552
4686
|
declare class CadCarouselComponent<T = unknown> {
|
|
4553
4687
|
private readonly bp;
|
|
@@ -4591,6 +4725,7 @@ declare class CadCarouselComponent<T = unknown> {
|
|
|
4591
4725
|
/**
|
|
4592
4726
|
* <cad-image src="…" alt="…" width="240px" height="160px" fit="cover" rounded preview caption="Légende" fallback="/assets/nope.png"/>
|
|
4593
4727
|
* Aperçu plein écran (clic) : zoom ± / molette, rotation, téléchargement, Échap/croix ; squelette pendant le chargement, image de repli sur erreur.
|
|
4728
|
+
* @atelier icone=image
|
|
4594
4729
|
*/
|
|
4595
4730
|
declare class CadImageComponent {
|
|
4596
4731
|
readonly src: _angular_core.InputSignal<string>;
|
|
@@ -4628,6 +4763,7 @@ declare class CadImageComponent {
|
|
|
4628
4763
|
/**
|
|
4629
4764
|
* <cad-scroll-top [threshold]="400" target="window" behavior="smooth"/> — bouton flottant « remonter » (fondu au-delà du seuil).
|
|
4630
4765
|
* `target` = 'window' ou un élément défilant (`[target]="scroller"`).
|
|
4766
|
+
* @atelier icone=arrow-up largeur=1 hauteur=1
|
|
4631
4767
|
*/
|
|
4632
4768
|
declare class CadScrollTopComponent {
|
|
4633
4769
|
readonly target: _angular_core.InputSignal<HTMLElement | "window">;
|
|
@@ -4696,7 +4832,10 @@ declare class CadIfDirective {
|
|
|
4696
4832
|
|
|
4697
4833
|
type Align = 'stretch' | 'start' | 'center' | 'end' | 'baseline';
|
|
4698
4834
|
type Justify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
|
|
4699
|
-
/**
|
|
4835
|
+
/**
|
|
4836
|
+
* Pile verticale : `<cad-stack gap="sm" align="stretch">` — les enfants s'empilent avec un gap uniforme (jamais de marges).
|
|
4837
|
+
* @atelier icone=rows conteneur=flux largeur=4 hauteur=5
|
|
4838
|
+
*/
|
|
4700
4839
|
declare class CadStackComponent {
|
|
4701
4840
|
readonly gap: _angular_core.InputSignal<CadGap>;
|
|
4702
4841
|
readonly align: _angular_core.InputSignal<Align>;
|
|
@@ -4708,7 +4847,10 @@ declare class CadStackComponent {
|
|
|
4708
4847
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadStackComponent, never>;
|
|
4709
4848
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadStackComponent, "cad-stack", never, { "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "justify": { "alias": "justify"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4710
4849
|
}
|
|
4711
|
-
/**
|
|
4850
|
+
/**
|
|
4851
|
+
* Groupe horizontal qui replie : `<cad-cluster gap="sm" justify="between" align="center">` (boutons, chips, méta).
|
|
4852
|
+
* @atelier icone=boxes conteneur=flux largeur=6 hauteur=3
|
|
4853
|
+
*/
|
|
4712
4854
|
declare class CadClusterComponent {
|
|
4713
4855
|
readonly gap: _angular_core.InputSignal<CadGap>;
|
|
4714
4856
|
readonly align: _angular_core.InputSignal<Align>;
|
|
@@ -4725,6 +4867,7 @@ declare class CadClusterComponent {
|
|
|
4725
4867
|
* Grille responsive : `<cad-grid cols="1 sm:2 lg:4" gap="md">` (breakpoints FENÊTRE, mobile-first)
|
|
4726
4868
|
* ou `<cad-grid min="220px">` (auto-fit : autant de colonnes que le CONTENEUR en accepte — préférer pour les composants).
|
|
4727
4869
|
* Enfant : `<div cadCol="2">` / `cadCol="1 md:2"` = span, `cadCol="full"` = toute la largeur.
|
|
4870
|
+
* @atelier icone=grid
|
|
4728
4871
|
*/
|
|
4729
4872
|
declare class CadGridComponent {
|
|
4730
4873
|
readonly cols: _angular_core.InputSignal<string | number>;
|
|
@@ -4748,7 +4891,10 @@ declare class CadColDirective {
|
|
|
4748
4891
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadColDirective, never>;
|
|
4749
4892
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CadColDirective, "[cadCol]", never, { "cadCol": { "alias": "cadCol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4750
4893
|
}
|
|
4751
|
-
/**
|
|
4894
|
+
/**
|
|
4895
|
+
* Deux zones : `<cad-split ratio="1fr auto" gap="md" stackAt="md">` — sous `stackAt`, empilé.
|
|
4896
|
+
* @atelier icone=split-square-horizontal
|
|
4897
|
+
*/
|
|
4752
4898
|
declare class CadSplitComponent {
|
|
4753
4899
|
private readonly bp;
|
|
4754
4900
|
readonly ratio: _angular_core.InputSignal<string>;
|
|
@@ -4771,6 +4917,7 @@ declare class CadSidebarPanelDirective {
|
|
|
4771
4917
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadSidebarPanelDirective, never>;
|
|
4772
4918
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CadSidebarPanelDirective, "[cadSidebarPanel]", never, {}, {}, never, never, true, never>;
|
|
4773
4919
|
}
|
|
4920
|
+
/** @atelier icone=panel-left */
|
|
4774
4921
|
declare class CadSidebarComponent {
|
|
4775
4922
|
private readonly bp;
|
|
4776
4923
|
readonly side: _angular_core.InputSignal<"left" | "right">;
|
|
@@ -4785,7 +4932,10 @@ declare class CadSidebarComponent {
|
|
|
4785
4932
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadSidebarComponent, never>;
|
|
4786
4933
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadSidebarComponent, "cad-sidebar", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "contentMin": { "alias": "contentMin"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "collapseAt": { "alias": "collapseAt"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4787
4934
|
}
|
|
4788
|
-
/**
|
|
4935
|
+
/**
|
|
4936
|
+
* Centre horizontalement avec largeur max : `<cad-center maxWidth="60ch" [gutters]="'16px'" andText>`
|
|
4937
|
+
* @atelier icone=crosshair
|
|
4938
|
+
*/
|
|
4789
4939
|
declare class CadCenterComponent {
|
|
4790
4940
|
readonly maxWidth: _angular_core.InputSignal<string>;
|
|
4791
4941
|
readonly gutters: _angular_core.InputSignal<string>;
|
|
@@ -4794,7 +4944,10 @@ declare class CadCenterComponent {
|
|
|
4794
4944
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadCenterComponent, never>;
|
|
4795
4945
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadCenterComponent, "cad-center", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "gutters": { "alias": "gutters"; "required": false; "isSignal": true; }; "andText": { "alias": "andText"; "required": false; "isSignal": true; }; "intrinsic": { "alias": "intrinsic"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4796
4946
|
}
|
|
4797
|
-
/**
|
|
4947
|
+
/**
|
|
4948
|
+
* Conteneur de page : `<cad-container size="lg" padding="md">` — largeur max par taille (sm 640, md 768, lg 1024, xl 1280, 2xl 1536, full = --cad-container-max), centré.
|
|
4949
|
+
* @atelier icone=box conteneur=flux largeur=6 hauteur=5
|
|
4950
|
+
*/
|
|
4798
4951
|
declare class CadContainerComponent {
|
|
4799
4952
|
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg" | "xl" | "2xl" | "full">;
|
|
4800
4953
|
readonly padding: _angular_core.InputSignal<CadGap>;
|
|
@@ -4803,7 +4956,10 @@ declare class CadContainerComponent {
|
|
|
4803
4956
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadContainerComponent, never>;
|
|
4804
4957
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadContainerComponent, "cad-container", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4805
4958
|
}
|
|
4806
|
-
/**
|
|
4959
|
+
/**
|
|
4960
|
+
* Espace flexible (pousse ce qui suit) ou fixe : `<cad-spacer/>` · `<cad-spacer size="lg"/>`
|
|
4961
|
+
* @atelier icone=move-horizontal
|
|
4962
|
+
*/
|
|
4807
4963
|
declare class CadSpacerComponent {
|
|
4808
4964
|
readonly size: _angular_core.InputSignal<"" | CadGap>;
|
|
4809
4965
|
protected readonly cadGap: typeof cadGap;
|
|
@@ -4823,6 +4979,7 @@ declare class CadSplitterPanelComponent {
|
|
|
4823
4979
|
* <cad-splitter-panel>…</cad-splitter-panel><cad-splitter-panel>…</cad-splitter-panel>
|
|
4824
4980
|
* </cad-splitter>
|
|
4825
4981
|
* Gouttière glissable (pointer), double-clic = tailles initiales, clavier ←→/↑↓ (±2 %), `role=separator`, persistance localStorage via `stateKey`, imbriquable.
|
|
4982
|
+
* @atelier icone=columns
|
|
4826
4983
|
*/
|
|
4827
4984
|
declare class CadSplitterComponent {
|
|
4828
4985
|
private readonly host;
|
|
@@ -4942,6 +5099,7 @@ declare const CAD_SHELL: InjectionToken<CadShellApi>;
|
|
|
4942
5099
|
* En application autonome (ajoutée à l'écran d'accueil), la page ne passe pas sous la bande
|
|
4943
5100
|
* d'état : `viewport-fit=cover` n'y suffit pas et c'est `<meta name="theme-color">`, tenu à
|
|
4944
5101
|
* jour avec le thème, qui donne la continuité.
|
|
5102
|
+
* @atelier icone=layout-dashboard
|
|
4945
5103
|
*/
|
|
4946
5104
|
declare class CadAppShellComponent implements CadShellApi {
|
|
4947
5105
|
private readonly bp;
|
|
@@ -5201,6 +5359,7 @@ declare const CAD_MAP_CHILD: InjectionToken<CadMapChild>;
|
|
|
5201
5359
|
* <div cadMapTopLeft>…</div> ← coins (recherche, légende, chrome…)
|
|
5202
5360
|
* </cad-map>
|
|
5203
5361
|
* MapLibre est chargé à la demande ; le fond change sans perdre les couches ; `followTheme` bascule clair/sombre avec `.theme-dark`.
|
|
5362
|
+
* @atelier icone=map conteneur=direct
|
|
5204
5363
|
*/
|
|
5205
5364
|
declare class CadMapComponent {
|
|
5206
5365
|
private readonly registry;
|
|
@@ -5373,6 +5532,7 @@ interface CadFeatureEvent {
|
|
|
5373
5532
|
* <cad-map-layer id="oa" label="Ouvrages d'art" type="geojson" [data]="geojson" [style]="{ color: { field:'etat', categories:{…} }, radius: 6 }" cluster [popupTemplate]="tpl" (featureClick)/>
|
|
5374
5533
|
* <cad-map-layer id="ppri" label="PPRI" type="wms" url="https://…/wms" layers="PPRI" [opacity]=".6"/>
|
|
5375
5534
|
* Enfant de <cad-map>, sans rendu : crée/maintient sources et couches MapLibre, réagit aux inputs, survit aux changements de fond.
|
|
5535
|
+
* @atelier icone=layers dans=cad-map
|
|
5376
5536
|
*/
|
|
5377
5537
|
declare class CadMapLayerComponent implements CadMapChild {
|
|
5378
5538
|
private readonly mapCmp;
|
|
@@ -5478,6 +5638,7 @@ declare class CadMapLayerComponent implements CadMapChild {
|
|
|
5478
5638
|
/**
|
|
5479
5639
|
* <cad-map-legend/> (dans un coin de la carte : `<cad-map-legend cadMapBottomRight/>`) — légende auto des couches visibles de la carte parente,
|
|
5480
5640
|
* ou `[layers]="[layerA, layerB]"`, ou `[items]="CadLegendItem[]"` (manuel). Repliable, `title`, `compact`.
|
|
5641
|
+
* @atelier icone=clipboard-list dans=cad-map
|
|
5481
5642
|
*/
|
|
5482
5643
|
declare class CadMapLegendComponent {
|
|
5483
5644
|
private readonly mapCmp;
|
|
@@ -5544,6 +5705,7 @@ declare class CadGeocodingService {
|
|
|
5544
5705
|
/**
|
|
5545
5706
|
* <cad-map-search cadMapTopLeft placeholder="Adresse, commune…" (select)="…"/> — recherche d'adresse (BAN par défaut ou `provider`),
|
|
5546
5707
|
* résultats au fil de la frappe, ↑↓ Entrée Échap, sélection → flyTo + marqueur temporaire sur la carte parente.
|
|
5708
|
+
* @atelier icone=search dans=cad-map
|
|
5547
5709
|
*/
|
|
5548
5710
|
declare class CadMapSearchComponent {
|
|
5549
5711
|
private readonly geo;
|
|
@@ -5592,6 +5754,7 @@ declare class CadMapSearchComponent {
|
|
|
5592
5754
|
* <div cadMapRailBottom>v1.2</div>
|
|
5593
5755
|
* </cad-map-rail>
|
|
5594
5756
|
*/
|
|
5757
|
+
/** @atelier dans=cad-map */
|
|
5595
5758
|
declare class CadMapRailComponent {
|
|
5596
5759
|
private readonly mapCmp;
|
|
5597
5760
|
readonly position: _angular_core.InputSignal<CadMapSide>;
|
|
@@ -5600,6 +5763,7 @@ declare class CadMapRailComponent {
|
|
|
5600
5763
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadMapRailComponent, never>;
|
|
5601
5764
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadMapRailComponent, "cad-map-rail", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[cadMapRailBottom]"], true, never>;
|
|
5602
5765
|
}
|
|
5766
|
+
/** @atelier dans=cad-map */
|
|
5603
5767
|
declare class CadMapRailItemComponent {
|
|
5604
5768
|
readonly mapCmp: CadMapComponent | null;
|
|
5605
5769
|
readonly icon: _angular_core.InputSignal<string>;
|
|
@@ -5619,6 +5783,7 @@ declare class CadMapRailItemComponent {
|
|
|
5619
5783
|
* Panneau accolé au rail : <cad-map-panel id="carto" header="Cartographie" [width]="300" side="left" [(open)]>
|
|
5620
5784
|
* <cad-map-section header="Fonds de carte" expanded><cad-map-basemaps/></cad-map-section>
|
|
5621
5785
|
* </cad-map-panel>
|
|
5786
|
+
* @atelier icone=panel-right dans=cad-map
|
|
5622
5787
|
*/
|
|
5623
5788
|
declare class CadMapPanelComponent {
|
|
5624
5789
|
private readonly mapCmp;
|
|
@@ -5640,6 +5805,7 @@ declare class CadMapPanelComponent {
|
|
|
5640
5805
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadMapPanelComponent, "cad-map-panel", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "opened": "opened"; "closed": "closed"; }, never, ["[cadMapPanelActions]", "*", "[cadMapPanelFooter]"], true, never>;
|
|
5641
5806
|
}
|
|
5642
5807
|
/** Section repliable d'un panneau : <cad-map-section header="Gares" [expanded]="true" icon="server"> contenu libre </cad-map-section> */
|
|
5808
|
+
/** @atelier dans=cad-map */
|
|
5643
5809
|
declare class CadMapSectionComponent {
|
|
5644
5810
|
readonly header: _angular_core.InputSignal<string>;
|
|
5645
5811
|
readonly icon: _angular_core.InputSignal<string>;
|
|
@@ -5660,6 +5826,7 @@ declare function cadMapLayerOf(map: CadMapComponent | null, id: string): CadMapL
|
|
|
5660
5826
|
/**
|
|
5661
5827
|
* Sélecteur de fonds en vignettes + transparence + overlays :
|
|
5662
5828
|
* <cad-map-basemaps [ids]="['ign-plan','ign-ortho']" [columns]="2" showOpacity showOverlays/>
|
|
5829
|
+
* @atelier icone=globe dans=cad-map
|
|
5663
5830
|
*/
|
|
5664
5831
|
declare class CadMapBasemapsComponent {
|
|
5665
5832
|
protected thumbUrl(b: {
|
|
@@ -5692,6 +5859,7 @@ declare class CadMapBasemapsComponent {
|
|
|
5692
5859
|
* Ligne « couche » : picto dérivé de la symbologie + case de visibilité + label + opacité + zoom.
|
|
5693
5860
|
* <cad-map-layer-toggle layer="ouvrages" showOpacity showLegend zoomTo/>
|
|
5694
5861
|
*/
|
|
5862
|
+
/** @atelier dans=cad-map */
|
|
5695
5863
|
declare class CadMapLayerToggleComponent {
|
|
5696
5864
|
readonly mapCmp: CadMapComponent | null;
|
|
5697
5865
|
readonly layer: _angular_core.InputSignal<string>;
|
|
@@ -5718,7 +5886,10 @@ declare class CadMapLayerToggleComponent {
|
|
|
5718
5886
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadMapLayerToggleComponent, never>;
|
|
5719
5887
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadMapLayerToggleComponent, "cad-map-layer-toggle", never, { "layer": { "alias": "layer"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showOpacity": { "alias": "showOpacity"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "zoomTo": { "alias": "zoomTo"; "required": false; "isSignal": true; }; }, { "visibleChange": "visibleChange"; }, never, never, true, never>;
|
|
5720
5888
|
}
|
|
5721
|
-
/**
|
|
5889
|
+
/**
|
|
5890
|
+
* Groupe de couches avec case parent tri-état : <cad-map-layer-group header="Risques" [layers]="['ppri','argiles']" showOpacity/>
|
|
5891
|
+
* @atelier icone=layers dans=cad-map
|
|
5892
|
+
*/
|
|
5722
5893
|
declare class CadMapLayerGroupComponent {
|
|
5723
5894
|
readonly mapCmp: CadMapComponent | null;
|
|
5724
5895
|
readonly header: _angular_core.InputSignal<string>;
|
|
@@ -5801,6 +5972,7 @@ interface CadMapMenuConfig {
|
|
|
5801
5972
|
/**
|
|
5802
5973
|
* Menu de carte généré depuis une config JSON (rail + panneaux + sections + blocs), posé dans <cad-map> :
|
|
5803
5974
|
* <cad-map-menu [config]="cfg" [templates]="{ meteo: tplMeteo }" (action)="…"/>
|
|
5975
|
+
* @atelier icone=menu dans=cad-map
|
|
5804
5976
|
*/
|
|
5805
5977
|
declare class CadMapMenuComponent {
|
|
5806
5978
|
readonly config: _angular_core.InputSignal<CadMapMenuConfig>;
|
|
@@ -5907,6 +6079,8 @@ declare function cadJsonErrorPos(err: unknown, src: string): {
|
|
|
5907
6079
|
/**
|
|
5908
6080
|
* <cad-json-editor [(value)]="obj" mode="object" height="320px" [validator]="cadValidateGeoJSON" (invalid)="…"/>
|
|
5909
6081
|
* CVA string|object : textarea + numéros de ligne + coloration + validation en direct (JSON puis `validator`) + Formater/Compacter/Copier/Importer/Télécharger.
|
|
6082
|
+
* @atelier icone=braces
|
|
6083
|
+
* @atelier-exemple value {"ouvrage":"Pont de Sèvres","etat":"Bon","inspection":{"date":"2026-03-12","agent":"SZU"},"geometrie":{"lat":48.8264,"lng":2.2275}}
|
|
5910
6084
|
*/
|
|
5911
6085
|
declare class CadJsonEditorComponent extends CadValueAccessor<string | object> {
|
|
5912
6086
|
private readonly san;
|
|
@@ -5952,6 +6126,7 @@ type CadGeoJSON = FeatureCollection | Feature | Geometry;
|
|
|
5952
6126
|
* <cad-map-card [(value)]="geojson" header="Emprise" height="320px" editable showStats/>
|
|
5953
6127
|
* ControlValueAccessor GeoJSON en carte « flip » : recto = carte (couche auto, fit, dessin optionnel), verso = éditeur JSON validé.
|
|
5954
6128
|
* `mode="string"` : la valeur est la chaîne JSON. Utilisable dans <cad-field plain>.
|
|
6129
|
+
* @atelier icone=map-pinned
|
|
5955
6130
|
*/
|
|
5956
6131
|
declare class CadMapCardComponent extends CadValueAccessor<CadGeoJSON | string> {
|
|
5957
6132
|
readonly header: _angular_core.InputSignal<string>;
|
|
@@ -6183,6 +6358,8 @@ declare class CadOrgNodeDirective {
|
|
|
6183
6358
|
* <cad-listbox [(value)]="v" [options]="opts" optionLabel="name" optionValue="id" [multiple] checkbox filter listHeight="240px" selectAll/>
|
|
6184
6359
|
* Liste de sélection toujours visible (remplace p-listbox). CVA<V | V[]>. Clavier ↑↓ Home End PageUp/Down Espace/Entrée, typeahead,
|
|
6185
6360
|
* Shift+clic = plage, Ctrl/⌘+clic (metaKeySelection) = bascule sans désélectionner en multiple.
|
|
6361
|
+
* @atelier icone=list
|
|
6362
|
+
* @atelier-exemple options [{"label":"Ouvrage d'art"},{"label":"Chaussée"},{"label":"Signalisation"},{"label":"Éclairage"}]
|
|
6186
6363
|
*/
|
|
6187
6364
|
declare class CadListboxComponent<T = unknown, V = unknown> extends CadValueAccessor<V | V[]> {
|
|
6188
6365
|
readonly options: _angular_core.InputSignal<T[]>;
|
|
@@ -6257,6 +6434,9 @@ declare class CadListboxComponent<T = unknown, V = unknown> extends CadValueAcce
|
|
|
6257
6434
|
/**
|
|
6258
6435
|
* <cad-orderlist [(value)]="items" optionLabel="name" header="Colonnes" controls="side" dragHandle filter listHeight="260px" (reorder)="…"/>
|
|
6259
6436
|
* Liste réordonnable (drag CDK vertical + boutons ↑ ↓ ⤒ ⤓, sélection multiple Ctrl/Shift). CVA<T[]> : la valeur = NOUVEAU tableau réordonné.
|
|
6437
|
+
* @atelier icone=list-ordered
|
|
6438
|
+
* @atelier-exemple value [{"label":"1. Inspection visuelle"},{"label":"2. Relevé des désordres"},{"label":"3. Essais matériaux"},{"label":"4. Rapport"}]
|
|
6439
|
+
* @atelier-exemple header "Étapes"
|
|
6260
6440
|
*/
|
|
6261
6441
|
declare class CadOrderlistComponent<T = unknown> extends CadValueAccessor<T[]> {
|
|
6262
6442
|
readonly optionLabel: _angular_core.InputSignal<string>;
|
|
@@ -6310,6 +6490,8 @@ type Side = 'source' | 'target';
|
|
|
6310
6490
|
* <cad-picklist [(value)]="selected" [options]="tous" optionLabel="name" sourceHeader="Disponibles" targetHeader="Sélectionnés" filter showTargetControls/>
|
|
6311
6491
|
* Deux listes reliées par des boutons → ← ⇒ ⇐ + drag & drop entre listes (CDK). CVA<T[]> = cible ; source = options − cible.
|
|
6312
6492
|
* Responsive : sous 640 px de large (conteneur), les listes s'empilent et les boutons passent à l'horizontale.
|
|
6493
|
+
* @atelier icone=arrow-right-left
|
|
6494
|
+
* @atelier-exemple options [{"label":"Pont de Sèvres"},{"label":"Viaduc de Meudon"},{"label":"Passerelle Rive Sud"},{"label":"Tunnel des Acacias"}]
|
|
6313
6495
|
*/
|
|
6314
6496
|
declare class CadPicklistComponent<T = unknown> extends CadValueAccessor<T[]> {
|
|
6315
6497
|
private readonly destroyRef;
|
|
@@ -6415,6 +6597,8 @@ interface Flat<T> {
|
|
|
6415
6597
|
* <cad-orgchart [value]="nodes" labelField="name" sublabelField="role" avatarField="initials" collapsible zoomable selectionMode="single" [(selection)]="sel"/>
|
|
6416
6598
|
* Organigramme maison (grille CSS + connecteurs), template de nœud `cadOrgNode`, orientation vertical/horizontal, mode compact (liste indentée) sous 640 px
|
|
6417
6599
|
* ou forcé, zoom molette/± + drag pour panner. Clavier ←→↑↓ (nœuds), Entrée sélectionne, +/− déplie/replie.
|
|
6600
|
+
* @atelier icone=git-fork
|
|
6601
|
+
* @atelier-exemple value [{"data":{"label":"Direction technique"},"expanded":true,"children":[{"data":{"label":"Bureau d'études"}},{"data":{"label":"Travaux"}},{"data":{"label":"Maintenance"}}]}]
|
|
6418
6602
|
*/
|
|
6419
6603
|
declare class CadOrgchartComponent<T = unknown> {
|
|
6420
6604
|
private readonly destroyRef;
|
|
@@ -6529,6 +6713,7 @@ declare function cadFormatSize(b: number): string;
|
|
|
6529
6713
|
* <cad-upload url="/api/upload" multiple accept="image/*,.pdf" [maxFileSize]="5e6" [maxFiles]="5" auto (upload)="…"/>
|
|
6530
6714
|
* Modes : `advanced` (zone de dépôt + liste + boutons), `dropzone` (zone seule, liste), `basic` (un bouton).
|
|
6531
6715
|
* Envoi : `url` (HttpClient — `provideHttpClient()` requis dans l'app) OU `customUpload` + `(uploadHandler)` OU `selectOnly` (l'app lit `files()`).
|
|
6716
|
+
* @atelier icone=upload-cloud
|
|
6532
6717
|
*/
|
|
6533
6718
|
declare class CadUploadComponent {
|
|
6534
6719
|
private readonly http;
|
|
@@ -6622,6 +6807,9 @@ interface CadChartClickEvent {
|
|
|
6622
6807
|
* <cad-chart type="bar" [data]="data" [options]="options" height="280px" (chartClick)="…"/>
|
|
6623
6808
|
* Wrapper Chart.js 4 (chargé à la demande) : thème automatique depuis les tokens (police, grille, tooltip) et re-rendu au changement `.theme-dark`,
|
|
6624
6809
|
* palette par défaut sur les datasets sans couleur, ResizeObserver, `getChart()/update()/toBase64Image()`, canvas `role="img"` + table accessible optionnelle.
|
|
6810
|
+
* @atelier icone=chart-bar
|
|
6811
|
+
* @atelier-exemple type "bar"
|
|
6812
|
+
* @atelier-exemple data {"labels":["Jan","Fév","Mar","Avr","Mai"],"datasets":[{"label":"Relevés","data":[12,19,8,15,11]}]}
|
|
6625
6813
|
*/
|
|
6626
6814
|
declare class CadChartComponent {
|
|
6627
6815
|
private readonly hostEl;
|
|
@@ -7372,6 +7560,103 @@ declare function cadProjeterClavier(kind: CadEditKind, base: CadEditBase, jours:
|
|
|
7372
7560
|
end: Date;
|
|
7373
7561
|
};
|
|
7374
7562
|
|
|
7563
|
+
/**
|
|
7564
|
+
* Mise en page du scheduler — logique PURE, sans DOM, donc testable seule.
|
|
7565
|
+
*
|
|
7566
|
+
* Le scheduler n'a pas de projection à lui : un geste horizontal y est exactement la
|
|
7567
|
+
* projection HORAIRE du calendrier tournée d'un quart de tour (échelle heure), ou la
|
|
7568
|
+
* projection de MOIS sans rangées (échelle jour). On réutilise `cadProjeterEdition` et
|
|
7569
|
+
* `cadProjeterMois` en réinterprétant leur géométrie — une seule logique de placement à
|
|
7570
|
+
* éprouver, pas trois.
|
|
7571
|
+
*
|
|
7572
|
+
* Ce fichier ne porte donc que ce qui est PROPRE au scheduler : l'empilement en voies,
|
|
7573
|
+
* la partition planifié / non planifié, et le découpage d'une barre à la fenêtre.
|
|
7574
|
+
*/
|
|
7575
|
+
|
|
7576
|
+
interface CadLaneSpan {
|
|
7577
|
+
start: Date;
|
|
7578
|
+
end: Date;
|
|
7579
|
+
}
|
|
7580
|
+
/**
|
|
7581
|
+
* Empilement des chevauchements : balayage, première voie libre.
|
|
7582
|
+
*
|
|
7583
|
+
* Les voies sont attribuées DANS L'ORDRE D'ENTRÉE trié par début (puis fin) ; le résultat
|
|
7584
|
+
* est aligné sur l'ordre d'entrée, pas sur l'ordre de balayage — l'appelant garde ses index.
|
|
7585
|
+
* Deux barres qui se touchent bord à bord (end === start) partagent une voie : une réunion
|
|
7586
|
+
* qui finit à 10 h et une qui commence à 10 h ne se chevauchent pas.
|
|
7587
|
+
*/
|
|
7588
|
+
declare function cadPackLanes(items: readonly CadLaneSpan[]): {
|
|
7589
|
+
lanes: number[];
|
|
7590
|
+
count: number;
|
|
7591
|
+
};
|
|
7592
|
+
/**
|
|
7593
|
+
* Partition planifié / non planifié — LA règle du document commun : une tâche que la vue ne
|
|
7594
|
+
* sait pas placer part dans sa zone « non planifié » avec un compteur, jamais dans le silence.
|
|
7595
|
+
* Ici, placer exige un début, une fin ET au moins une affectation (les lignes SONT des
|
|
7596
|
+
* ressources : sans affectation, aucune ligne ne peut l'accueillir).
|
|
7597
|
+
*/
|
|
7598
|
+
declare function cadSchedulerPartition(tasks: readonly CadPlannedTask[]): {
|
|
7599
|
+
posables: CadPlannedTask[];
|
|
7600
|
+
nonPlanifiees: CadPlannedTask[];
|
|
7601
|
+
};
|
|
7602
|
+
interface CadFenetreSpan {
|
|
7603
|
+
start: Date;
|
|
7604
|
+
end: Date;
|
|
7605
|
+
/** La barre continue avant / après la fenêtre — bord en pointillé, jamais coupé en silence. */
|
|
7606
|
+
continueAvant: boolean;
|
|
7607
|
+
continueApres: boolean;
|
|
7608
|
+
}
|
|
7609
|
+
/** Découpe une plage à la fenêtre. `null` si elle est entièrement dehors. */
|
|
7610
|
+
declare function cadClipFenetre(start: Date, end: Date, f0: Date, f1: Date): CadFenetreSpan | null;
|
|
7611
|
+
|
|
7612
|
+
/**
|
|
7613
|
+
* Mise en page du gantt — logique PURE, sans DOM, donc testable seule.
|
|
7614
|
+
*
|
|
7615
|
+
* Deux responsabilités, et rien d'autre : quelles rangées sont VISIBLES (l'arbre replié), et
|
|
7616
|
+
* par où passe une flèche de dépendance. L'axe de temps vient de planning.axis, la hiérarchie
|
|
7617
|
+
* et les dates roulées de planning.model — le gantt n'invente aucune donnée.
|
|
7618
|
+
*/
|
|
7619
|
+
|
|
7620
|
+
interface CadGanttRow {
|
|
7621
|
+
task: CadPlannedTask;
|
|
7622
|
+
level: number;
|
|
7623
|
+
}
|
|
7624
|
+
/**
|
|
7625
|
+
* Rangées visibles, dans l'ordre hiérarchique : on descend depuis les racines et on saute la
|
|
7626
|
+
* descendance des nœuds ABSENTS de `expanded`. Une tâche non plaçable (ni dates propres ni
|
|
7627
|
+
* dates roulées) ne produit pas de rangée : elle appartient à la zone « non planifié ».
|
|
7628
|
+
*/
|
|
7629
|
+
declare function cadGanttRows(tasks: readonly CadPlannedTask[], roots: readonly string[], expanded: ReadonlySet<string>): CadGanttRow[];
|
|
7630
|
+
/** Ancre d'une barre pour le routage : ses deux bouts et son centre vertical, en pixels. */
|
|
7631
|
+
interface CadLienAncre {
|
|
7632
|
+
x1: number;
|
|
7633
|
+
x2: number;
|
|
7634
|
+
y: number;
|
|
7635
|
+
}
|
|
7636
|
+
interface CadLienTrace {
|
|
7637
|
+
/** Chemin SVG orthogonal. */
|
|
7638
|
+
d: string;
|
|
7639
|
+
/** Pointe de flèche : sommet, et sens d'entrée ('right' = elle pointe vers la droite). */
|
|
7640
|
+
fleche: {
|
|
7641
|
+
x: number;
|
|
7642
|
+
y: number;
|
|
7643
|
+
sens: 'right' | 'left';
|
|
7644
|
+
};
|
|
7645
|
+
}
|
|
7646
|
+
/**
|
|
7647
|
+
* Routage orthogonal d'un lien, 3 segments — 5 quand l'entrée est à contre-sens.
|
|
7648
|
+
*
|
|
7649
|
+
* Les conventions MS Project portent tout : le type dit de quel BOUT on sort (F = fin, S =
|
|
7650
|
+
* début) et par quel bout on entre. On sort d'une longueur de garde `g`, on descend, on entre.
|
|
7651
|
+
* Le chemin direct n'est licite que si l'approche se fait DU BON CÔTÉ (par la gauche pour une
|
|
7652
|
+
* entrée sur un début, par la droite pour une entrée sur une fin) — sinon la flèche
|
|
7653
|
+
* traverserait la barre qu'elle vise. À contre-sens, on passe par le bord de la rangée cible.
|
|
7654
|
+
* L'évitement d'obstacles est EXCLU (acté le 21/08) : un lien peut croiser une barre tierce.
|
|
7655
|
+
*/
|
|
7656
|
+
declare function cadRouterLien(type: CadPlanLinkType, a: CadLienAncre, b: CadLienAncre, g?: number, demiRangee?: number): CadLienTrace;
|
|
7657
|
+
/** Points du polygone de la pointe, prêt pour l'attribut `points`. */
|
|
7658
|
+
declare function cadPointeFleche(f: CadLienTrace['fleche'], taille?: number): string;
|
|
7659
|
+
|
|
7375
7660
|
/** Contenu d'une carte : `<ng-template cadTaskCard let-task let-bucket="bucket">`. */
|
|
7376
7661
|
declare class CadTaskCardDirective {
|
|
7377
7662
|
readonly tpl: TemplateRef<any>;
|
|
@@ -7442,6 +7727,8 @@ interface Column {
|
|
|
7442
7727
|
*
|
|
7443
7728
|
* Clavier : Entrée / Espace ouvrent la tâche ; Ctrl (ou Cmd) + flèches la déplacent — gauche et
|
|
7444
7729
|
* droite changent de colonne, haut et bas changent de rang. Chaque déplacement est annoncé.
|
|
7730
|
+
* @atelier icone=kanban
|
|
7731
|
+
* @atelier-exemple plan {"buckets":[{"id":"afaire","label":"À faire","wipLimit":4},{"id":"encours","label":"En cours","wipLimit":3},{"id":"fait","label":"Fait"}],"tasks":[{"id":"t1","label":"Inspection du pont","bucket":"afaire"},{"id":"t2","label":"Rapport d'étude","bucket":"afaire"},{"id":"t3","label":"Levé topographique","bucket":"encours"},{"id":"t4","label":"Diagnostic béton","bucket":"fait"}]}
|
|
7445
7732
|
*/
|
|
7446
7733
|
declare class CadTaskboardComponent {
|
|
7447
7734
|
/** Document de planification brut ; il est normalisé en interne et jamais muté. */
|
|
@@ -7554,6 +7841,9 @@ interface CadCalendarDateEvent {
|
|
|
7554
7841
|
*
|
|
7555
7842
|
* LE COMPOSANT N'ÉCRIT JAMAIS : il émet `eventClick`, `dateClick`, `rangeChange`. Masquer un
|
|
7556
7843
|
* agenda est en revanche un état de PRÉSENTATION, donc un `model()` qu'il porte lui-même.
|
|
7844
|
+
* @atelier icone=calendar
|
|
7845
|
+
* @atelier-exemple plan {"tasks":[{"id":"v1","label":"Visite d'ouvrage","start":"@aujourdhuiT09:00","end":"@aujourdhuiT10:30"},{"id":"v2","label":"Relevé terrain","start":"@aujourdhui+1T14:00","end":"@aujourdhui+1T16:00"},{"id":"v3","label":"Réunion de service","start":"@aujourdhui+2","allDay":true},{"id":"v4","label":"Contrôle technique","start":"@aujourdhui-1T11:00","end":"@aujourdhui-1T12:00"}]}
|
|
7846
|
+
* @atelier-exemple view "week"
|
|
7557
7847
|
*/
|
|
7558
7848
|
declare class CadCalendarComponent {
|
|
7559
7849
|
protected readonly Math: Math;
|
|
@@ -7731,6 +8021,364 @@ declare class CadCalendarComponent {
|
|
|
7731
8021
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadCalendarComponent, "cad-calendar", never, { "plan": { "alias": "plan"; "required": false; "isSignal": true; }; "sources": { "alias": "sources"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "firstDay": { "alias": "firstDay"; "required": false; "isSignal": true; }; "dayStart": { "alias": "dayStart"; "required": false; "isSignal": true; }; "dayEnd": { "alias": "dayEnd"; "required": false; "isSignal": true; }; "hourHeight": { "alias": "hourHeight"; "required": false; "isSignal": true; }; "maxPerDay": { "alias": "maxPerDay"; "required": false; "isSignal": true; }; "workCalendar": { "alias": "workCalendar"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showNow": { "alias": "showNow"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; }, { "hidden": "hiddenChange"; "view": "viewChange"; "date": "dateChange"; "eventClick": "eventClick"; "dateClick": "dateClick"; "rangeChange": "rangeChange"; "eventMove": "eventMove"; "eventResize": "eventResize"; "eventCreate": "eventCreate"; }, never, never, true, never>;
|
|
7732
8022
|
}
|
|
7733
8023
|
|
|
8024
|
+
type CadSchedulerScale = 'day' | 'week' | 'month';
|
|
8025
|
+
type CadSchedulerMode = 'timeline' | 'list' | 'auto';
|
|
8026
|
+
interface CadSchedulerEventEvent {
|
|
8027
|
+
occurrence: CadOccurrence;
|
|
8028
|
+
originalEvent: Event;
|
|
8029
|
+
}
|
|
8030
|
+
/** Intention d'écriture. Le composant ne l'applique pas : il la propose. */
|
|
8031
|
+
interface CadSchedulerChangeEvent {
|
|
8032
|
+
occurrence: CadOccurrence;
|
|
8033
|
+
start: Date;
|
|
8034
|
+
end: Date;
|
|
8035
|
+
}
|
|
8036
|
+
/** Réaffectation : SEULE l'affectation saisie change de ligne, les dates ne bougent pas. */
|
|
8037
|
+
interface CadSchedulerAssignEvent {
|
|
8038
|
+
occurrence: CadOccurrence;
|
|
8039
|
+
assignmentIndex: number;
|
|
8040
|
+
from: string;
|
|
8041
|
+
to: string;
|
|
8042
|
+
}
|
|
8043
|
+
interface CadSchedulerCreateEvent {
|
|
8044
|
+
resource: string;
|
|
8045
|
+
start: Date;
|
|
8046
|
+
end: Date;
|
|
8047
|
+
}
|
|
8048
|
+
/** Une tâche de la zone « non planifié » déposée sur une ligne. */
|
|
8049
|
+
interface CadSchedulerScheduleEvent {
|
|
8050
|
+
task: CadPlannedTask;
|
|
8051
|
+
resource: string;
|
|
8052
|
+
start: Date;
|
|
8053
|
+
end: Date;
|
|
8054
|
+
}
|
|
8055
|
+
interface Rangee {
|
|
8056
|
+
type: 'groupe' | 'ligne';
|
|
8057
|
+
res: CadPlanResource;
|
|
8058
|
+
}
|
|
8059
|
+
interface Barre {
|
|
8060
|
+
o: CadOccurrence;
|
|
8061
|
+
ai: number;
|
|
8062
|
+
x: number;
|
|
8063
|
+
w: number;
|
|
8064
|
+
voie: number;
|
|
8065
|
+
continueAvant: boolean;
|
|
8066
|
+
continueApres: boolean;
|
|
8067
|
+
}
|
|
8068
|
+
/**
|
|
8069
|
+
* `<cad-scheduler [plan]="plan" scale="week" editable/>`
|
|
8070
|
+
*
|
|
8071
|
+
* LES LIGNES SONT DES RESSOURCES — c'est ce qui le distingue de `cad-calendar`, dont la
|
|
8072
|
+
* grille est le temps. On répond ici à « qui est libre jeudi ? ». Même document JSON.
|
|
8073
|
+
*
|
|
8074
|
+
* MULTI-RESSOURCE = 'each' (arbitré sur maquette le 24/08/2026) : une tâche affectée à N
|
|
8075
|
+
* ressources dessine UNE BARRE PAR LIGNE (⧉). Un déplacement horizontal bouge la tâche —
|
|
8076
|
+
* donc toutes ses barres ; un déplacement vertical ne réaffecte que l'affectation saisie.
|
|
8077
|
+
* C'est le seul rendu qui ne mente pas quand les lignes SONT les ressources.
|
|
8078
|
+
*
|
|
8079
|
+
* LES CHEVAUCHEMENTS S'EMPILENT en voies (balayage, première voie libre) : deux barres ne se
|
|
8080
|
+
* recouvrent jamais, la ligne grandit. La hauteur d'une ligne est donc une CONSÉQUENCE de la
|
|
8081
|
+
* donnée, pas un réglage.
|
|
8082
|
+
*
|
|
8083
|
+
* LE COMPOSANT N'ÉCRIT JAMAIS : il émet eventMove / eventResize / eventAssign / eventCreate /
|
|
8084
|
+
* eventSchedule et garde le geste vivant à l'écran (correctif optimiste, patron du taskboard).
|
|
8085
|
+
* Une tâche sans dates ou sans affectation part dans la zone « non planifié » avec un
|
|
8086
|
+
* compteur — jamais dans le silence — et se pose au glisser.
|
|
8087
|
+
* @atelier icone=chart-no-axes-gantt
|
|
8088
|
+
* @atelier-exemple plan {"resources":[{"id":"claire","label":"Claire Fontaine","color":"#2f6feb"},{"id":"marc","label":"Marc Delorme","color":"#a371f7"}],"tasks":[{"id":"t1","label":"Diagnostic OA 214","start":"@aujourdhuiT09:00","end":"@aujourdhui+2T17:00","assignments":[{"resource":"claire"}]},{"id":"t2","label":"Relevés terrain","start":"@aujourdhui+1T09:00","end":"@aujourdhui+3T12:00","assignments":[{"resource":"marc"}]},{"id":"t3","label":"Avis technique mur R27"}]}
|
|
8089
|
+
*/
|
|
8090
|
+
declare class CadSchedulerComponent {
|
|
8091
|
+
private readonly bp;
|
|
8092
|
+
private readonly hote;
|
|
8093
|
+
readonly plan: _angular_core.InputSignal<CadPlan | null>;
|
|
8094
|
+
readonly mode: _angular_core.InputSignal<CadSchedulerMode>;
|
|
8095
|
+
readonly scale: _angular_core.ModelSignal<CadSchedulerScale>;
|
|
8096
|
+
/** Date d'ancrage : le jour, la semaine ou le mois affiché. */
|
|
8097
|
+
readonly date: _angular_core.ModelSignal<Date>;
|
|
8098
|
+
readonly firstDay: _angular_core.InputSignal<0 | 1>;
|
|
8099
|
+
/** Plage horaire de l'échelle jour, en heures. */
|
|
8100
|
+
readonly dayStart: _angular_core.InputSignal<number>;
|
|
8101
|
+
readonly dayEnd: _angular_core.InputSignal<number>;
|
|
8102
|
+
/** Largeur d'une graduation en pixels. null = défaut selon l'échelle (64 / 76 / 27). */
|
|
8103
|
+
readonly tickWidth: _angular_core.InputSignal<number | null>;
|
|
8104
|
+
/** Aimantage à l'échelle jour, en minutes. Les échelles semaine et mois aimantent au JOUR. */
|
|
8105
|
+
readonly snap: _angular_core.InputSignal<number>;
|
|
8106
|
+
readonly workCalendar: _angular_core.InputSignal<CadWorkCalendar | null>;
|
|
8107
|
+
readonly today: _angular_core.InputSignal<Date | null>;
|
|
8108
|
+
readonly locale: _angular_core.InputSignal<string>;
|
|
8109
|
+
readonly emptyText: _angular_core.InputSignal<string>;
|
|
8110
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
8111
|
+
readonly showNow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8112
|
+
readonly showUnplanned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8113
|
+
readonly editable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8114
|
+
readonly eventClick: _angular_core.OutputEmitterRef<CadSchedulerEventEvent>;
|
|
8115
|
+
readonly eventMove: _angular_core.OutputEmitterRef<CadSchedulerChangeEvent>;
|
|
8116
|
+
readonly eventResize: _angular_core.OutputEmitterRef<CadSchedulerChangeEvent>;
|
|
8117
|
+
readonly eventAssign: _angular_core.OutputEmitterRef<CadSchedulerAssignEvent>;
|
|
8118
|
+
readonly eventCreate: _angular_core.OutputEmitterRef<CadSchedulerCreateEvent>;
|
|
8119
|
+
readonly eventSchedule: _angular_core.OutputEmitterRef<CadSchedulerScheduleEvent>;
|
|
8120
|
+
/** La fenêtre affichée a changé : l'hôte peut aller chercher les données qui manquent. */
|
|
8121
|
+
readonly rangeChange: _angular_core.OutputEmitterRef<{
|
|
8122
|
+
start: Date;
|
|
8123
|
+
end: Date;
|
|
8124
|
+
}>;
|
|
8125
|
+
/** `auto` : liste par ressource sous le seuil. Une grille de 14 jours à 390 px ne montre rien. */
|
|
8126
|
+
protected readonly modeEffectif: _angular_core.Signal<"list" | "timeline">;
|
|
8127
|
+
private readonly normalise;
|
|
8128
|
+
private readonly calendrier;
|
|
8129
|
+
/** Anomalies de normalisation et de dépliage — jamais tues : l'hôte peut les montrer. */
|
|
8130
|
+
readonly issues: _angular_core.Signal<(_cadriciel_ui.CadPlanIssue | _cadriciel_ui.CadRecurrenceIssue)[]>;
|
|
8131
|
+
protected readonly unite: _angular_core.Signal<number>;
|
|
8132
|
+
/** Fenêtre affichée : 1 jour en heures, 14 jours, ou 6 semaines pleines autour du mois. */
|
|
8133
|
+
protected readonly fenetre: _angular_core.Signal<{
|
|
8134
|
+
start: Date;
|
|
8135
|
+
end: Date;
|
|
8136
|
+
}>;
|
|
8137
|
+
private readonly tete;
|
|
8138
|
+
protected readonly axe: _angular_core.Signal<CadTimeAxis>;
|
|
8139
|
+
protected readonly enTete: _angular_core.Signal<{
|
|
8140
|
+
hautes: {
|
|
8141
|
+
label: string;
|
|
8142
|
+
w: number;
|
|
8143
|
+
}[];
|
|
8144
|
+
basses: {
|
|
8145
|
+
label: string;
|
|
8146
|
+
sub: string;
|
|
8147
|
+
off: boolean;
|
|
8148
|
+
today: boolean;
|
|
8149
|
+
}[];
|
|
8150
|
+
}>;
|
|
8151
|
+
/**
|
|
8152
|
+
* Rangées : les ressources dans leur ordre de déclaration ; celles que d'autres référencent
|
|
8153
|
+
* comme `parent` deviennent des bandes de groupe. Un groupe ne porte pas de barres — un
|
|
8154
|
+
* congé n'est pas un jour férié, une équipe n'est pas une ressource de travail.
|
|
8155
|
+
*/
|
|
8156
|
+
protected readonly rangees: _angular_core.Signal<Rangee[]>;
|
|
8157
|
+
/**
|
|
8158
|
+
* CORRECTIF OPTIMISTE — patron de cad-taskboard et cad-calendar : le composant n'écrit
|
|
8159
|
+
* jamais dans le document, mais garde les bornes, réaffectations et planifications
|
|
8160
|
+
* PROPOSÉES, attachées au `plan` d'origine, et les abandonne dès qu'un nouveau plan arrive.
|
|
8161
|
+
*/
|
|
8162
|
+
private readonly patch;
|
|
8163
|
+
private patchCourant;
|
|
8164
|
+
private readonly partition;
|
|
8165
|
+
protected readonly nonPlanifiees: _angular_core.Signal<CadPlannedTask[]>;
|
|
8166
|
+
private readonly occurrences;
|
|
8167
|
+
/** Barres par ligne : une par AFFECTATION (multi-ressource 'each'), empilées en voies. */
|
|
8168
|
+
private readonly rendu;
|
|
8169
|
+
protected barresDe(res: string): Barre[];
|
|
8170
|
+
protected hauteurDe(res: string): number;
|
|
8171
|
+
/**
|
|
8172
|
+
* Cellules de fond par ligne : fermé global (week-end, férié) ou pour CETTE ressource.
|
|
8173
|
+
* MÉMOÏSÉ en un seul computed — une méthode appelée du template serait recalculée à
|
|
8174
|
+
* chaque cycle de détection de changements, pour un résultat identique.
|
|
8175
|
+
*/
|
|
8176
|
+
private readonly cellules;
|
|
8177
|
+
protected cellulesDe(res: string): {
|
|
8178
|
+
off: boolean;
|
|
8179
|
+
ex: boolean;
|
|
8180
|
+
}[];
|
|
8181
|
+
protected readonly marqueurs: _angular_core.Signal<{
|
|
8182
|
+
x: number;
|
|
8183
|
+
label: string;
|
|
8184
|
+
}[]>;
|
|
8185
|
+
protected readonly ligneNow: _angular_core.Signal<number | null>;
|
|
8186
|
+
protected readonly survol: _angular_core.WritableSignal<string | null>;
|
|
8187
|
+
protected readonly cible: _angular_core.WritableSignal<string | null>;
|
|
8188
|
+
protected readonly fantome: _angular_core.WritableSignal<{
|
|
8189
|
+
res: string;
|
|
8190
|
+
x: number;
|
|
8191
|
+
w: number;
|
|
8192
|
+
texte: string;
|
|
8193
|
+
} | null>;
|
|
8194
|
+
protected readonly annonce: _angular_core.WritableSignal<string>;
|
|
8195
|
+
protected couleur(o: CadOccurrence): string;
|
|
8196
|
+
protected etp(c: number): string;
|
|
8197
|
+
protected heure(d: Date): string;
|
|
8198
|
+
private jour;
|
|
8199
|
+
protected periodeListe(o: CadOccurrence): string;
|
|
8200
|
+
protected titre(o: CadOccurrence): string;
|
|
8201
|
+
protected motifNonPlanifie(t: CadPlannedTask): string;
|
|
8202
|
+
/** Une occurrence de SÉRIE ou une tâche verrouillée n'est pas manipulable — on le MONTRE. */
|
|
8203
|
+
protected manipulable(o: CadOccurrence): boolean;
|
|
8204
|
+
protected motifVerrou(o: CadOccurrence): string;
|
|
8205
|
+
/**
|
|
8206
|
+
* Projection d'un geste HORIZONTAL — aucune logique neuve : à l'échelle jour c'est la
|
|
8207
|
+
* projection horaire du calendrier tournée d'un quart de tour (dx joue le rôle de dy,
|
|
8208
|
+
* la largeur de graduation celui de la hauteur d'heure) ; aux échelles semaine et mois
|
|
8209
|
+
* c'est la projection de mois sans rangées (des JOURS entiers, l'heure ne bouge pas).
|
|
8210
|
+
*/
|
|
8211
|
+
private projeter;
|
|
8212
|
+
private poserBornes;
|
|
8213
|
+
private lignesEcran;
|
|
8214
|
+
/** Le clic qui SUIT un glisser est celui du navigateur, pas celui de l'utilisateur. */
|
|
8215
|
+
private finGeste;
|
|
8216
|
+
/**
|
|
8217
|
+
* Geste au pointeur sur une barre. Patron de cad-calendar : écoute sur le DOCUMENT.
|
|
8218
|
+
* Horizontal = les dates (la tâche entière, donc toutes ses barres) ; vertical = la SEULE
|
|
8219
|
+
* affectation saisie change de ligne, dates intactes. Les deux ne se combinent pas dans un
|
|
8220
|
+
* même geste : une intention est atomique, l'hôte n'a jamais à en deviner la moitié.
|
|
8221
|
+
*/
|
|
8222
|
+
protected geste(kind: CadEditKind, b: Barre, origine: string, ev: PointerEvent): void;
|
|
8223
|
+
/** Création par glisser sur une plage libre d'une ligne. Un clic sec produit un pas. */
|
|
8224
|
+
protected creer(res: CadPlanResource, ev: PointerEvent, zone: HTMLElement): void;
|
|
8225
|
+
/** Glisser d'un chip « non planifié » vers une ligne. */
|
|
8226
|
+
protected prendreChip(t: CadPlannedTask, ev: PointerEvent): void;
|
|
8227
|
+
/**
|
|
8228
|
+
* Le CLAVIER passe par la MÊME projection que le pointeur. Ctrl/Cmd + ←/→ déplacent d'un
|
|
8229
|
+
* pas (un jour, ou l'aimantage à l'échelle jour), Maj + ←/→ redimensionnent par la fin,
|
|
8230
|
+
* Ctrl/Cmd + ↑/↓ réaffectent à la ligne voisine.
|
|
8231
|
+
*/
|
|
8232
|
+
protected clavier(b: Barre, origine: string, e: KeyboardEvent): void;
|
|
8233
|
+
private nomDe;
|
|
8234
|
+
/** L'annonce dit OÙ la tâche atterrit, pas seulement qu'elle a bougé. */
|
|
8235
|
+
private annoncer;
|
|
8236
|
+
protected clicEvenement(occurrence: CadOccurrence, originalEvent: Event): void;
|
|
8237
|
+
constructor();
|
|
8238
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadSchedulerComponent, never>;
|
|
8239
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadSchedulerComponent, "cad-scheduler", never, { "plan": { "alias": "plan"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "firstDay": { "alias": "firstDay"; "required": false; "isSignal": true; }; "dayStart": { "alias": "dayStart"; "required": false; "isSignal": true; }; "dayEnd": { "alias": "dayEnd"; "required": false; "isSignal": true; }; "tickWidth": { "alias": "tickWidth"; "required": false; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; "workCalendar": { "alias": "workCalendar"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showNow": { "alias": "showNow"; "required": false; "isSignal": true; }; "showUnplanned": { "alias": "showUnplanned"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; }, { "scale": "scaleChange"; "date": "dateChange"; "eventClick": "eventClick"; "eventMove": "eventMove"; "eventResize": "eventResize"; "eventAssign": "eventAssign"; "eventCreate": "eventCreate"; "eventSchedule": "eventSchedule"; "rangeChange": "rangeChange"; }, never, never, true, never>;
|
|
8240
|
+
}
|
|
8241
|
+
|
|
8242
|
+
type CadGanttScale = 'day' | 'week' | 'month';
|
|
8243
|
+
interface CadGanttTaskEvent {
|
|
8244
|
+
task: CadPlannedTask;
|
|
8245
|
+
originalEvent: Event;
|
|
8246
|
+
}
|
|
8247
|
+
interface LigneTable {
|
|
8248
|
+
id: string;
|
|
8249
|
+
parent: string | null;
|
|
8250
|
+
label: string;
|
|
8251
|
+
debut: string;
|
|
8252
|
+
fin: string;
|
|
8253
|
+
duree: string;
|
|
8254
|
+
pct: string;
|
|
8255
|
+
[extra: string]: unknown;
|
|
8256
|
+
}
|
|
8257
|
+
/**
|
|
8258
|
+
* `<cad-gantt [plan]="plan" scale="week"/>` — VOLET 1 : affichage.
|
|
8259
|
+
*
|
|
8260
|
+
* LES LIGNES SONT DES TÂCHES, avec dépendances — on répond à « si ça glisse, qu'est-ce qui
|
|
8261
|
+
* tombe ? ». Même document JSON que le taskboard, le calendrier et le scheduler.
|
|
8262
|
+
*
|
|
8263
|
+
* LE VOLET GAUCHE EST `cad-table` EN MODE ARBRE — le même composant, pas une ressemblance
|
|
8264
|
+
* (acté le 21/08) : hiérarchie par `parentKey`, repli par `expandedNodeKeys`, sélection
|
|
8265
|
+
* simple. Le volet droit s'aligne sur lui en MESURANT (ResizeObserver) la hauteur réelle de
|
|
8266
|
+
* son en-tête et de ses rangées : un calcul serait faux au premier changement de densité.
|
|
8267
|
+
*
|
|
8268
|
+
* RIEN NE SE DÉPLACE ICI. L'écriture (déplacer, redimensionner, relier) est le lot 5 ; le
|
|
8269
|
+
* moteur CPM (chemin critique, marge) est le volet 2. Les barres récapitulatives portent des
|
|
8270
|
+
* dates ROULÉES depuis leurs enfants — jamais saisies. Une tâche sans dates part dans la zone
|
|
8271
|
+
* « non planifié », comptée, jamais dans le silence.
|
|
8272
|
+
*
|
|
8273
|
+
* LES LIENS suivent les conventions MS Project (FS/SS/FF/SF, décalage) : routage orthogonal
|
|
8274
|
+
* 3 segments, 5 à contre-sens, évitement d'obstacles exclu (acté 21/08). Un lien dont une
|
|
8275
|
+
* extrémité est repliée est MASQUÉ. Survoler une barre allume ses liens et ses voisines.
|
|
8276
|
+
* @atelier icone=milestone
|
|
8277
|
+
* @atelier-exemple plan {"tasks":[{"id":"p1","label":"Études"},{"id":"t1","parent":"p1","label":"Relevés","start":"@aujourdhui-7","end":"@aujourdhui-3","progress":1},{"id":"t2","parent":"p1","label":"Diagnostic","start":"@aujourdhui-2","end":"@aujourdhui+4","progress":0.4},{"id":"t3","label":"Rapport","start":"@aujourdhui+5","end":"@aujourdhui+9"},{"id":"j1","label":"Remise","start":"@aujourdhui+10","milestone":true}],"links":[{"from":"t1","to":"t2"},{"from":"t2","to":"t3"},{"from":"t3","to":"j1"}]}
|
|
8278
|
+
*/
|
|
8279
|
+
declare class CadGanttComponent {
|
|
8280
|
+
private readonly hote;
|
|
8281
|
+
readonly plan: _angular_core.InputSignal<CadPlan | null>;
|
|
8282
|
+
readonly scale: _angular_core.ModelSignal<CadGanttScale>;
|
|
8283
|
+
/** Nœuds dépliés. `null` (défaut) = tout déplié. */
|
|
8284
|
+
readonly expandedKeys: _angular_core.ModelSignal<string[] | null>;
|
|
8285
|
+
readonly selectedKey: _angular_core.ModelSignal<string | null>;
|
|
8286
|
+
/** Largeur d'une graduation en pixels. null = défaut selon l'échelle (36 / 90 / 120). */
|
|
8287
|
+
readonly tickWidth: _angular_core.InputSignal<number | null>;
|
|
8288
|
+
readonly workCalendar: _angular_core.InputSignal<CadWorkCalendar | null>;
|
|
8289
|
+
readonly today: _angular_core.InputSignal<Date | null>;
|
|
8290
|
+
readonly locale: _angular_core.InputSignal<string>;
|
|
8291
|
+
readonly firstDay: _angular_core.InputSignal<0 | 1>;
|
|
8292
|
+
readonly emptyText: _angular_core.InputSignal<string>;
|
|
8293
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
8294
|
+
readonly showNow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8295
|
+
readonly showUnplanned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8296
|
+
/** Largeur de la colonne Tâche du volet gauche. */
|
|
8297
|
+
readonly taskColumnWidth: _angular_core.InputSignal<string>;
|
|
8298
|
+
readonly taskClick: _angular_core.OutputEmitterRef<CadGanttTaskEvent>;
|
|
8299
|
+
private readonly normalise;
|
|
8300
|
+
private readonly calendrier;
|
|
8301
|
+
/** Anomalies de normalisation — jamais tues : l'hôte peut les montrer. */
|
|
8302
|
+
readonly issues: _angular_core.Signal<_cadriciel_ui.CadPlanIssue[]>;
|
|
8303
|
+
protected readonly colTache: _angular_core.Signal<string>;
|
|
8304
|
+
protected readonly leftWidth: _angular_core.Signal<string>;
|
|
8305
|
+
protected readonly unite: _angular_core.Signal<number>;
|
|
8306
|
+
private readonly parents;
|
|
8307
|
+
protected readonly expansion: _angular_core.Signal<string[]>;
|
|
8308
|
+
protected basculer(key: unknown, ouvert: boolean): void;
|
|
8309
|
+
protected readonly rangeesVisibles: _angular_core.Signal<CadGanttRow[]>;
|
|
8310
|
+
protected readonly nonPlanifiees: _angular_core.Signal<CadPlannedTask[]>;
|
|
8311
|
+
private readonly bornes;
|
|
8312
|
+
private readonly tete;
|
|
8313
|
+
protected readonly axe: _angular_core.Signal<CadTimeAxis>;
|
|
8314
|
+
protected readonly enTete: _angular_core.Signal<{
|
|
8315
|
+
hautes: {
|
|
8316
|
+
label: string;
|
|
8317
|
+
w: number;
|
|
8318
|
+
}[];
|
|
8319
|
+
basses: {
|
|
8320
|
+
label: string;
|
|
8321
|
+
off: boolean;
|
|
8322
|
+
today: boolean;
|
|
8323
|
+
}[];
|
|
8324
|
+
}>;
|
|
8325
|
+
protected readonly colonnesFermees: _angular_core.Signal<{
|
|
8326
|
+
off: boolean;
|
|
8327
|
+
x: number;
|
|
8328
|
+
w: number;
|
|
8329
|
+
}[]>;
|
|
8330
|
+
/** Traits verticaux : chaque graduation quand elle est lisible, sinon les majeures seules. */
|
|
8331
|
+
protected readonly traits: _angular_core.Signal<number[]>;
|
|
8332
|
+
protected readonly marqueurs: _angular_core.Signal<{
|
|
8333
|
+
x: number;
|
|
8334
|
+
label: string;
|
|
8335
|
+
}[]>;
|
|
8336
|
+
protected readonly ligneNow: _angular_core.Signal<number | null>;
|
|
8337
|
+
protected readonly hdH: _angular_core.WritableSignal<number>;
|
|
8338
|
+
/** Géométrie PAR RANGÉE mesurée sur la vraie table : un libellé qui replie sur deux lignes
|
|
8339
|
+
* rend les rangées inégales — un pas uniforme ferait dériver toutes les barres suivantes. */
|
|
8340
|
+
private readonly mesures;
|
|
8341
|
+
protected readonly geo: _angular_core.Signal<{
|
|
8342
|
+
tops: number[];
|
|
8343
|
+
hauteurs: number[];
|
|
8344
|
+
total: number;
|
|
8345
|
+
}>;
|
|
8346
|
+
private readonly geometrie;
|
|
8347
|
+
protected readonly barres: _angular_core.Signal<{
|
|
8348
|
+
task: CadPlannedTask;
|
|
8349
|
+
genre: "barre" | "recap" | "jalon";
|
|
8350
|
+
x: number;
|
|
8351
|
+
w: number;
|
|
8352
|
+
y: number;
|
|
8353
|
+
titre: string;
|
|
8354
|
+
}[]>;
|
|
8355
|
+
protected readonly traces: _angular_core.Signal<{
|
|
8356
|
+
id: string;
|
|
8357
|
+
d: string;
|
|
8358
|
+
pointe: string;
|
|
8359
|
+
titre: string;
|
|
8360
|
+
from: string;
|
|
8361
|
+
to: string;
|
|
8362
|
+
}[]>;
|
|
8363
|
+
protected readonly chaud: _angular_core.WritableSignal<string | null>;
|
|
8364
|
+
protected readonly chauds: _angular_core.Signal<Set<string>>;
|
|
8365
|
+
protected readonly voisins: _angular_core.Signal<Set<string>>;
|
|
8366
|
+
protected readonly lignesTable: _angular_core.Signal<LigneTable[]>;
|
|
8367
|
+
protected surLigneTable(e: {
|
|
8368
|
+
row: LigneTable;
|
|
8369
|
+
event: Event;
|
|
8370
|
+
}): void;
|
|
8371
|
+
protected selectionner(t: CadPlannedTask, ev: Event): void;
|
|
8372
|
+
protected ouvrir(t: CadPlannedTask, ev: Event): void;
|
|
8373
|
+
private dateCourt;
|
|
8374
|
+
private duree;
|
|
8375
|
+
private titre;
|
|
8376
|
+
private titreLien;
|
|
8377
|
+
constructor();
|
|
8378
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CadGanttComponent, never>;
|
|
8379
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CadGanttComponent, "cad-gantt", never, { "plan": { "alias": "plan"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "expandedKeys": { "alias": "expandedKeys"; "required": false; "isSignal": true; }; "selectedKey": { "alias": "selectedKey"; "required": false; "isSignal": true; }; "tickWidth": { "alias": "tickWidth"; "required": false; "isSignal": true; }; "workCalendar": { "alias": "workCalendar"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDay": { "alias": "firstDay"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showNow": { "alias": "showNow"; "required": false; "isSignal": true; }; "showUnplanned": { "alias": "showUnplanned"; "required": false; "isSignal": true; }; "taskColumnWidth": { "alias": "taskColumnWidth"; "required": false; "isSignal": true; }; }, { "scale": "scaleChange"; "expandedKeys": "expandedKeysChange"; "selectedKey": "selectedKeyChange"; "taskClick": "taskClick"; }, never, never, true, never>;
|
|
8380
|
+
}
|
|
8381
|
+
|
|
7734
8382
|
/**
|
|
7735
8383
|
* Le format d'une maquette de l'Atelier CadGrid.
|
|
7736
8384
|
*
|
|
@@ -7763,6 +8411,8 @@ declare const ATELIER_BORNES: {
|
|
|
7763
8411
|
readonly hMax: 100;
|
|
7764
8412
|
readonly itemsMax: 200;
|
|
7765
8413
|
readonly propsMax: 30;
|
|
8414
|
+
/** Enfants directs d'un conteneur. Le plafond GLOBAL reste `itemsMax`, enfants compris. */
|
|
8415
|
+
readonly enfantsMax: 30;
|
|
7766
8416
|
};
|
|
7767
8417
|
/** Un composant posé sur le plan. */
|
|
7768
8418
|
interface AtelierItem {
|
|
@@ -7787,6 +8437,21 @@ interface AtelierItem {
|
|
|
7787
8437
|
label?: string;
|
|
7788
8438
|
};
|
|
7789
8439
|
hideMobile?: boolean;
|
|
8440
|
+
/**
|
|
8441
|
+
* Enfants d'un CONTENEUR (panel, carte, fieldset…), projetés dans son emplacement par
|
|
8442
|
+
* défaut — arbitrage SZU 24/08.
|
|
8443
|
+
*
|
|
8444
|
+
* · Les enfants vivent en GRILLE DE FLUX (le patron du `cad-grid` homonyme) : leur
|
|
8445
|
+
* ORDRE fait loi, et leur `w` est une LARGEUR en colonnes (1–12 de la largeur du
|
|
8446
|
+
* conteneur) — quatre tags à `w=3` tiennent côte à côte. `x`, `y` et `h` restent
|
|
8447
|
+
* normalisés (0/0/1) : pas de placement absolu à l'intérieur, c'est ce qui évite le
|
|
8448
|
+
* glisser inter-grilles, là où les outils de maquette meurent.
|
|
8449
|
+
* · UN SEUL niveau en v1 : un enfant n'a jamais d'enfants (l'assainisseur écarte le
|
|
8450
|
+
* surplus, la pose le refuse). Élargir = décision, pas dérive.
|
|
8451
|
+
* · ⚠️ Frontless ne REND pas encore ce champ (grid.ts à enseigner — noté au Task
|
|
8452
|
+
* Board) : une maquette imbriquée exportée y montre le conteneur sans ses enfants.
|
|
8453
|
+
*/
|
|
8454
|
+
children?: AtelierItem[];
|
|
7790
8455
|
}
|
|
7791
8456
|
interface AtelierLayout {
|
|
7792
8457
|
version: 1;
|
|
@@ -7811,19 +8476,41 @@ declare function atelierPremierePlaceLibre(items: readonly AtelierItem[], w: num
|
|
|
7811
8476
|
x: number;
|
|
7812
8477
|
y: number;
|
|
7813
8478
|
};
|
|
7814
|
-
/**
|
|
8479
|
+
/** Nombre TOTAL de composants, enfants compris — c'est lui que borne `itemsMax`. */
|
|
8480
|
+
declare function atelierCompter(layout: AtelierLayout): number;
|
|
8481
|
+
/**
|
|
8482
|
+
* Retrouve un composant OÙ QU'IL VIVE — au premier niveau ou dans un conteneur.
|
|
8483
|
+
* `parentId` dit d'où il vient : c'est ce qui permet à l'inspecteur de remonter.
|
|
8484
|
+
*/
|
|
8485
|
+
declare function atelierTrouver(layout: AtelierLayout, id: string): {
|
|
8486
|
+
item: AtelierItem;
|
|
8487
|
+
parentId: string | null;
|
|
8488
|
+
} | null;
|
|
8489
|
+
/**
|
|
8490
|
+
* Pose un composant — sur le plan, ou DANS un conteneur (`dansId`).
|
|
8491
|
+
*
|
|
8492
|
+
* Dans un conteneur, l'enfant vit en FLUX : ajouté en fin, x/y/w/h normalisés (0/0/12/1),
|
|
8493
|
+
* l'ordre fait loi. Refus VISIBLE (id vide) si le conteneur n'existe pas, est lui-même un
|
|
8494
|
+
* enfant (un seul niveau en v1), ou si un plafond est atteint — jamais de troncature
|
|
8495
|
+
* silencieuse, même doctrine que le plafond global.
|
|
8496
|
+
*/
|
|
7815
8497
|
declare function atelierAjouter(layout: AtelierLayout, type: string, gabarit?: {
|
|
7816
8498
|
w?: number;
|
|
7817
8499
|
h?: number;
|
|
7818
8500
|
props?: AtelierItem['props'];
|
|
7819
|
-
}): {
|
|
8501
|
+
}, dansId?: string): {
|
|
7820
8502
|
layout: AtelierLayout;
|
|
7821
8503
|
id: string;
|
|
7822
8504
|
};
|
|
7823
|
-
/** Retire un composant.
|
|
8505
|
+
/** Retire un composant, où qu'il vive. Retirer un conteneur emporte ses enfants. */
|
|
7824
8506
|
declare function atelierRetirer(layout: AtelierLayout, id: string): AtelierLayout;
|
|
7825
|
-
/** Change une
|
|
8507
|
+
/** Change une propriété — où que vive le composant. `undefined` la supprime. */
|
|
7826
8508
|
declare function atelierDefinirProp(layout: AtelierLayout, id: string, nom: string, valeur: string | number | boolean | string[] | undefined): AtelierLayout;
|
|
8509
|
+
/**
|
|
8510
|
+
* Déplace un ENFANT d'un cran dans son conteneur (le flux : l'ordre fait loi).
|
|
8511
|
+
* Même chemin pour la souris et le clavier, comme le reste du modèle.
|
|
8512
|
+
*/
|
|
8513
|
+
declare function atelierReordonnerEnfant(layout: AtelierLayout, parentId: string, id: string, sens: -1 | 1): AtelierLayout;
|
|
7827
8514
|
/**
|
|
7828
8515
|
* Change la largeur, en gardant le bloc DANS la grille.
|
|
7829
8516
|
*
|
|
@@ -7877,6 +8564,12 @@ interface AtelierProp {
|
|
|
7877
8564
|
controle: 'interrupteur' | 'liste' | 'nombre' | 'texte' | 'liaison';
|
|
7878
8565
|
/** Valeurs proposées quand `controle === 'liste'`. */
|
|
7879
8566
|
choix?: string[];
|
|
8567
|
+
/**
|
|
8568
|
+
* La liste accepte AUSSI l'état vide : union `'a' | 'b' | null` — le troisième état
|
|
8569
|
+
* est « rien », pas un texte libre. L'inspecteur propose alors « (aucun) », qui
|
|
8570
|
+
* RETIRE la prop. Signalé par SZU le 24/08 sur `selectable`.
|
|
8571
|
+
*/
|
|
8572
|
+
videAutorise?: boolean;
|
|
7880
8573
|
}
|
|
7881
8574
|
interface AtelierComposant {
|
|
7882
8575
|
/**
|
|
@@ -7905,6 +8598,67 @@ interface AtelierComposant {
|
|
|
7905
8598
|
largeur: number;
|
|
7906
8599
|
/** Hauteur de départ, en lignes de grille. */
|
|
7907
8600
|
hauteur: number;
|
|
8601
|
+
/**
|
|
8602
|
+
* Comment le composant occupe sa cellule : il la REMPLIT (défaut — un bouton d'une
|
|
8603
|
+
* rangée fait la hauteur d'une rangée), ou il garde sa taille NATURELLE, centré
|
|
8604
|
+
* verticalement — pour les composants plus petits qu'un contrôle (tag, badge,
|
|
8605
|
+
* interrupteur…), qu'étirer déformerait.
|
|
8606
|
+
*
|
|
8607
|
+
* Vient de l'annotation `@atelier ajustement=naturel` portée par le composant : la
|
|
8608
|
+
* métadonnée voyage avec lui, l'atelier n'a aucune liste.
|
|
8609
|
+
*/
|
|
8610
|
+
ajustement: 'remplir' | 'naturel';
|
|
8611
|
+
/**
|
|
8612
|
+
* Icône de palette (`@atelier icone=…`), VALIDÉE contre le jeu d'icônes réel : un nom
|
|
8613
|
+
* inconnu retombe sur `null` plutôt que d'afficher un carré cassé — mieux vaut vide
|
|
8614
|
+
* que faux, comme `role`. Les correspondances vivent sur les composants (88 posées le
|
|
8615
|
+
* 24/08), jamais dans une table de l'atelier.
|
|
8616
|
+
*/
|
|
8617
|
+
icone: string | null;
|
|
8618
|
+
/**
|
|
8619
|
+
* Texte projeté DE DÉPART (`@atelier contenu=…`) : un bouton posé dit « Bouton » au
|
|
8620
|
+
* lieu de ressembler à un point. Réservé aux composants dont le corps passe par
|
|
8621
|
+
* `<ng-content>` ; l'atelier l'écrit sous la clé `__contenu` à la pose.
|
|
8622
|
+
*/
|
|
8623
|
+
contenu: string | null;
|
|
8624
|
+
/**
|
|
8625
|
+
* Ce composant ACCUEILLE des enfants, et dit COMMENT :
|
|
8626
|
+
* · `flux` (panel, carte, fieldset…) — enfants dans une grille de flux 12 colonnes,
|
|
8627
|
+
* chacun enveloppé d'un bloc d'atelier (largeur, isolation d'échec, ajustement) ;
|
|
8628
|
+
* · `direct` (groupe de boutons…) — enfants projetés NUS, sans enveloppe ni grille :
|
|
8629
|
+
* pour les composants dont les styles ciblent leurs enfants DIRECTS et que toute
|
|
8630
|
+
* enveloppe casserait (pilule, segments accolés).
|
|
8631
|
+
* `false` : rien ne se pose dedans. Un seul niveau dans tous les cas.
|
|
8632
|
+
*/
|
|
8633
|
+
conteneur: 'flux' | 'direct' | false;
|
|
8634
|
+
/**
|
|
8635
|
+
* Ce composant n'a de sens QUE DANS un hôte (`@atelier dans=cad-map`) : les pièces de
|
|
8636
|
+
* carte, par exemple, s'instancient sans erreur mais ne montrent rien de sensé posées
|
|
8637
|
+
* seules. La palette les MASQUE tant que leur hôte n'est pas la cible de pose — elles
|
|
8638
|
+
* apparaissent dans leur groupe quand on est « dans » le bon conteneur.
|
|
8639
|
+
*/
|
|
8640
|
+
dans: string | null;
|
|
8641
|
+
/**
|
|
8642
|
+
* Valeurs de départ des ENTRÉES à la pose (`@atelier pose-value=Étiquette`) — le
|
|
8643
|
+
* pendant de `contenu` pour les composants dont le visible passe par une entrée et
|
|
8644
|
+
* non par la projection : un tag sans `value` est une coquille invisible, constaté
|
|
8645
|
+
* au clic le 24/08. Modifiables et effaçables ensuite comme toute saisie.
|
|
8646
|
+
*/
|
|
8647
|
+
proposDeDepart: Record<string, string | number | boolean>;
|
|
8648
|
+
/**
|
|
8649
|
+
* Rang d'affichage DANS son groupe (`@atelier rang=1`), 99 sans annotation. Sert à
|
|
8650
|
+
* mettre en tête ce qu'on pose en premier (le panel chez les conteneurs) sans
|
|
8651
|
+
* qu'aucune liste d'ordre ne vive dans l'atelier.
|
|
8652
|
+
*/
|
|
8653
|
+
rang: number;
|
|
8654
|
+
/**
|
|
8655
|
+
* Jeux d'exemple (`@atelier-exemple <entrée> <JSON>`) : ce qui rend un composant À
|
|
8656
|
+
* DONNÉES jugeable posé nu — une table montre des lignes, un select des options.
|
|
8657
|
+
* Poussés AU RENDU quand l'item ne fournit pas l'entrée, JAMAIS écrits dans le
|
|
8658
|
+
* layout ni dans le code généré : le gabarit reste scalaire, l'exemple s'efface dès
|
|
8659
|
+
* qu'une vraie valeur arrive.
|
|
8660
|
+
*/
|
|
8661
|
+
exemples: Record<string, unknown>;
|
|
7908
8662
|
}
|
|
7909
8663
|
/** `CadBadgeComponent` → `cad-badge`. Dérivé, jamais saisi. */
|
|
7910
8664
|
declare function atelierCleDeSymbole(symbole: string): string;
|
|
@@ -7925,14 +8679,34 @@ declare function atelierBalise(selecteur: string): {
|
|
|
7925
8679
|
* retomberait sur un champ texte, y compris les 253 booléens de la bibliothèque.
|
|
7926
8680
|
*/
|
|
7927
8681
|
declare function atelierControle(type: string | undefined): Pick<AtelierProp, 'controle' | 'choix'>;
|
|
7928
|
-
/**
|
|
7929
|
-
|
|
8682
|
+
/**
|
|
8683
|
+
* Tous les composants posables — calculés à la PREMIÈRE DEMANDE, jamais au chargement.
|
|
8684
|
+
*
|
|
8685
|
+
* ⚠️ CE N'EST PAS UNE OPTIMISATION, C'EST UN CORRECTIF. Construire au chargement du
|
|
8686
|
+
* module obligeait `REGISTRE` — qui vit dans un AUTRE module — à être déjà initialisé.
|
|
8687
|
+
* Quand l'ordre d'évaluation s'inverse, et le rechargement à chaud d'Angular le fait,
|
|
8688
|
+
* la palette naissait VIDE et le restait jusqu'à un vrai rechargement de la page.
|
|
8689
|
+
*
|
|
8690
|
+
* Symptôme observé deux fois par SZU le 23/08 : boîte à outils vide, glisser-déposer
|
|
8691
|
+
* erratique, puis « je rafraîchis et là ça marche ». Le diagnostic a coûté cher parce
|
|
8692
|
+
* que rien ne lève : la palette vide ressemble à un bug d'affichage, et le glisser
|
|
8693
|
+
* ratait pour une raison qui n'avait rien à voir avec lui.
|
|
8694
|
+
*
|
|
8695
|
+
* Différé, l'ordre des modules cesse d'exister comme problème : au premier appel, tout
|
|
8696
|
+
* est chargé, quelle que soit la façon dont on y est arrivé.
|
|
8697
|
+
*/
|
|
8698
|
+
declare function atelierPalette(): readonly AtelierComposant[];
|
|
7930
8699
|
/** Le composant derrière une clé de `layout.json`, ou `null` s'il n'existe plus. */
|
|
7931
8700
|
declare function atelierComposant(cle: string): AtelierComposant | null;
|
|
7932
|
-
/**
|
|
7933
|
-
|
|
8701
|
+
/**
|
|
8702
|
+
* Recherche par nom, clé ou sélecteur. Sans terme, rend tout — SAUF les composants
|
|
8703
|
+
* `dans=`, réservés à leur hôte : ils n'apparaissent que quand `hote` est le leur
|
|
8704
|
+
* (la cible de pose courante). `cad-map-panel` posé seul ne montre rien de sensé —
|
|
8705
|
+
* signalé par SZU le 24/08.
|
|
8706
|
+
*/
|
|
8707
|
+
declare function atelierChercher(terme: string, hote?: string | null): AtelierComposant[];
|
|
7934
8708
|
/** Les composants groupés, dans l'ordre d'affichage de la palette. */
|
|
7935
|
-
declare function atelierGroupes(terme?: string): {
|
|
8709
|
+
declare function atelierGroupes(terme?: string, hote?: string | null): {
|
|
7936
8710
|
groupe: string;
|
|
7937
8711
|
composants: AtelierComposant[];
|
|
7938
8712
|
}[];
|
|
@@ -7955,11 +8729,12 @@ declare function atelierImports(layout: AtelierLayout): string[];
|
|
|
7955
8729
|
*/
|
|
7956
8730
|
declare function atelierGabarit(layout: AtelierLayout): string;
|
|
7957
8731
|
/**
|
|
7958
|
-
* Les styles du plan —
|
|
7959
|
-
*
|
|
8732
|
+
* Les styles du plan — la grille de frontless (`serverless/shell/src/frontless/grid.ts`),
|
|
8733
|
+
* à la rangée près : 44 px comme l'atelier (divergence assumée du 24/08 — la rangée fait
|
|
8734
|
+
* la hauteur d'un contrôle). Une maquette doit s'afficher chez qui la colle exactement
|
|
7960
8735
|
* comme dans l'atelier, y compris son repli mobile à une colonne.
|
|
7961
8736
|
*/
|
|
7962
|
-
declare const ATELIER_STYLES_PLAN = " .plan {\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n grid-auto-rows:
|
|
8737
|
+
declare const ATELIER_STYLES_PLAN = " .plan {\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n grid-auto-rows: 44px;\n gap: 10px;\n }\n .bloc { grid-column: var(--gc); grid-row: var(--gr); min-width: 0; overflow: hidden; }\n .flux { display: grid; grid-template-columns: repeat(12, 1fr); gap: 8px; width: 100%; }\n .flux > * { min-width: 0; }\n @media (max-width: 700px) {\n .plan { grid-template-columns: 1fr; grid-auto-rows: minmax(44px, auto); }\n .bloc { grid-column: auto; grid-row: auto; }\n .bloc.cache-mobile { display: none; }\n .flux { grid-template-columns: 1fr; }\n .flux > * { grid-column: auto !important; }\n }";
|
|
7963
8738
|
/** Le composant Angular complet, prêt à coller dans un projet. */
|
|
7964
8739
|
declare function atelierCode(layout: AtelierLayout, titre?: string): string;
|
|
7965
8740
|
|
|
@@ -7988,10 +8763,10 @@ interface EntreeRegistre {
|
|
|
7988
8763
|
/** La balise à créer pour l'héberger. */
|
|
7989
8764
|
readonly hote: string;
|
|
7990
8765
|
}
|
|
7991
|
-
/** Symbole -> de quoi le construire.
|
|
8766
|
+
/** Symbole -> de quoi le construire. 104 composants posables. */
|
|
7992
8767
|
declare const REGISTRE: Readonly<Record<string, EntreeRegistre>>;
|
|
7993
8768
|
/** La classe d'un symbole, ou `null` s'il n'est pas posable (directive, ou hôte indéterminable). */
|
|
7994
8769
|
declare function classeDe(symbole: string): Type<unknown> | null;
|
|
7995
8770
|
|
|
7996
|
-
export { ATELIER_BORNES, ATELIER_COLONNES,
|
|
7997
|
-
export type { AtelierComposant, AtelierItem, AtelierLayout, AtelierProp, CadAggregate, CadAggregateFn, CadAggregates, CadBadgeSeverity, CadBand, CadBandRow, CadBasemap, CadBasemapKind, CadBottomNavItem, CadBounds, CadBreadcrumbItem, CadBreakpoint, CadCalendarChangeEvent, CadCalendarCreateEvent, CadCalendarDateEvent, CadCalendarEventEvent, CadCalendarSource, CadCalendarView, CadCarouselResponsive, CadCellContext, CadCellEditState, CadChartClickEvent, CadChartType, CadColorFormat, CadColorSpec, CadColumnAlign, CadColumnDataType, CadColumnEditor, CadColumnFilterOption, CadColumnFilterType, CadColumnMenuActionEvent, CadColumnPinEvent, CadColumnReorderEvent, CadColumnResizeEvent, CadColumnToggleEvent, CadComboSource, CadConfirmOptions, CadDataviewLayout, CadDateMode, CadDateSelection, CadDateValue, CadDialogConfig, CadDialogPosition, CadDialogSize, CadDisplayRow, CadDrawMode, CadDrawOptions, CadDrawerPosition, CadDuration, CadDurationUnit, CadEditBase, CadEditCompleteEvent, CadEditEvent, CadEditGeometry, CadEditKind, CadEditMode, CadEditorContext, CadExpandResult, CadFeatureEvent, CadFilterChangeEvent, CadFilterKind, CadFilterMatchMode, CadFilterMeta, CadFilterOperator, CadFilters, CadGap, CadGeoJSON, CadGeocodeOptions, CadGeocodeResult, CadGeocoder, CadGeometryKind, CadGroupBy, CadGroupContext, CadGroupInfo, CadGroupItem, CadHeaderMenuHost, CadHsva, CadLayerStyle, CadLazyLoadEvent, CadLegendItem, CadListGroup, CadListItem, CadListNormalizeOpts, CadListOption, CadListRow, CadLngLat, CadMapChild, CadMapChrome, CadMapClick, CadMapControl, CadMapLayerType, CadMapMenuConfig, CadMapMenuItem, CadMapMenuPanel, CadMapMenuRailItem, CadMapMenuSection, CadMapPosition, CadMapSide, CadMapView, CadMeasure, CadMenuItem, CadMenubarItem, CadMeterValue, CadMonthGrid, CadNavDrawerItem, CadNavDrawerMode, CadNavDrawerRow, CadNodeEvent, CadNormalizePlanOptions, CadNormalizedPlan, CadNumberSpec, CadOccurrence, CadOptionItem, CadOrgNode, CadOverlayHandle, CadPageEvent, CadPaintSet, CadPinnedColumns, CadPlacement, CadPlan, CadPlanAssignment, CadPlanBucket, CadPlanCalendar, CadPlanCalendarException, CadPlanDateInput, CadPlanHeader, CadPlanHours, CadPlanIssue, CadPlanLink, CadPlanLinkType, CadPlanMarker, CadPlanResource, CadPlanScale, CadPlanTask, CadPlanTick, CadPlanTicksOptions, CadPlannedLink, CadPlannedTask, CadPriorityBreakpoints, CadProgressSeverity, CadRRule, CadRRuleFreq, CadRecurrenceIssue, CadRgba, CadRowEditEvent, CadRowEditState, CadRowEvent, CadRowReorderEvent, CadSegmentOption, CadSelectItemContext, CadSelectionMode, CadSelectionPropagation, CadSeverity, CadSheetConfig, CadSheetHeight, CadShellApi, CadSize, CadSliderMark, CadSliderSeverity, CadSliderValue, CadSlot, CadSortEvent, CadSortMeta, CadSortOrder, CadStepState, CadTableEditContext, CadTableEditUiContext, CadTablePanelTab, CadTableResponsiveMode, CadTableSelectionContext, CadTagSeverity, CadTaskAssignEvent, CadTaskMoveEvent, CadTaskOpenEvent, CadTaskboardGroupBy, CadTaskboardMode, CadTimelineAlign, CadToastAction, CadToastMessage, CadToastPosition, CadToastSeverity, CadTreeAdapterOptions, CadTreeNode, CadTreeNodeEvent, CadUploadFile, CadUploadHandlerEvent, CadUploadStatus, CadVariant, CadVirtualRange, CadWipEvent, EntreeRegistre, MLExpression, MaplibreModule };
|
|
8771
|
+
export { ATELIER_BORNES, ATELIER_COLONNES, ATELIER_STYLES_PLAN, BanGeocoder, CAD_BREAKPOINTS, CAD_CHART_PALETTE, CAD_COLOR_PRESETS, CAD_DEFAULT_BASEMAPS, CAD_DEFAULT_PRIORITY_BREAKPOINTS, CAD_DIALOG_DATA, CAD_FILTER_OPERATORS, CAD_GEOCODER, CAD_ICONS, CAD_ICONS_CEREMA, CAD_ICONS_CORE, CAD_ICONS_DATA, CAD_ICONS_FILES, CAD_ICONS_GEO, CAD_ICONS_SUBSET, CAD_ICONS_TOKEN, CAD_ICONS_UI, CAD_ICON_ALIASES, CAD_ICON_CATEGORIES, CAD_MAPLIBRE_CSS_URL, CAD_MAP_CHILD, CAD_MAP_DEFAULTS, CAD_MAP_GLOBAL_STYLES, CAD_MAP_GLYPHS, CAD_MAP_PALETTE, CAD_MASK_PRESETS, CAD_MOBILE_BREAKPOINT, CAD_RECURRENCE_INTERNE, CAD_SELECT_POSITIONS, CAD_SELECT_TRIGGER_STYLES, CAD_SHEET_DATA, CAD_SHELL, CAD_TOUCH_DENSITY, CadAccordionComponent, CadAccordionPanelComponent, CadAppShellComponent, CadAvatarComponent, CadAvatarGroupComponent, CadBadgeComponent, CadBadgeDirective, CadBlockDirective, CadBlockOverlayComponent, CadBlockUiComponent, CadBottomNavComponent, CadBreadcrumbComponent, CadBreadcrumbItemDirective, CadBreakpointService, CadButtonComponent, CadButtonGroupComponent, CadCalendarComponent, CadCaptionDirective, CadCardComponent, CadCardDirective, CadCardHeaderDirective, CadCarouselComponent, CadCarouselItemDirective, CadCascadeSelectComponent, CadCellTemplateDirective, CadCenterComponent, CadChartComponent, CadCheckboxComponent, CadChipComponent, CadClusterComponent, CadColDirective, CadColorpickerComponent, CadColumnComponent, CadComboComponent, CadConfirmContentComponent, CadConfirmDialogComponent, CadConfirmService, CadContainerComponent, CadDataviewComponent, CadDataviewGridDirective, CadDataviewListDirective, CadDatepickerComponent, CadDialogComponent, CadDialogContainerComponent, CadDialogFooterDirective, CadDialogHeaderDirective, CadDialogRef, CadDialogService, CadDividerComponent, CadDrawerComponent, CadEditFocusDirective, CadEditorTemplateDirective, CadEmptyDirective, CadFieldComponent, CadFieldsetComponent, CadFieldsetLegendDirective, CadFilterChipComponent, CadFilterTemplateDirective, CadGanttComponent, CadGeocodingService, CadGridComponent, CadGroupFooterDirective, CadGroupHeaderDirective, CadHeaderTemplateDirective, CadIconComponent, CadIconRegistry, CadIfDirective, CadImageComponent, CadInplaceComponent, CadInplaceContentDirective, CadInplaceDisplayDirective, CadInputDirective, CadJsonEditorComponent, CadKeyFilterDirective, CadListEmptyDirective, CadListFooterDirective, CadListHeaderDirective, CadListItemDirective, CadListboxComponent, CadMapBasemapRegistry, CadMapBasemapsComponent, CadMapCardComponent, CadMapChromeComponent, CadMapComponent, CadMapDrawEngine, CadMapLayerComponent, CadMapLayerGroupComponent, CadMapLayerToggleComponent, CadMapLegendComponent, CadMapMenuComponent, CadMapPanelComponent, CadMapPanels, CadMapRailComponent, CadMapRailItemComponent, CadMapSearchComponent, CadMapSectionComponent, CadMaskDirective, CadMenuComponent, CadMenubarComponent, CadMessageComponent, CadMeterComponent, CadMeterLabelDirective, CadMultiselectComponent, CadNavDrawerComponent, CadNavDrawerFooterDirective, CadNavDrawerHeaderDirective, CadNumberComponent, CadOptionListComponent, CadOrderlistComponent, CadOrgNodeDirective, CadOrgchartComponent, CadOverlayBase, CadPaginatorComponent, CadPanelComponent, CadPanelContentDirective, CadPanelHeaderDirective, CadPanelHeadingDirective, CadPasswordComponent, CadPicklistComponent, CadPopoverComponent, CadProgressComponent, CadRadioComponent, CadRadioGroupComponent, CadRatingComponent, CadRowActionsDirective, CadRowCountDirective, CadRowExpansionDirective, CadSchedulerComponent, CadScrollTopComponent, CadSegmentedComponent, CadSelectBase, CadSelectComponent, CadSelectEmptyDirective, CadSelectFooterDirective, CadSelectHeaderDirective, CadSelectItemDirective, CadSelectSelectedDirective, CadSheetContainerComponent, CadSheetRef, CadSheetService, CadSidebarComponent, CadSidebarPanelDirective, CadSkeletonComponent, CadSliderComponent, CadSpacerComponent, CadSpeedDialComponent, CadSpinnerComponent, CadSplitButtonComponent, CadSplitComponent, CadSplitterComponent, CadSplitterPanelComponent, CadStackComponent, CadStepComponent, CadStepperComponent, CadSwitchComponent, CadTabComponent, CadTabContentDirective, CadTabLabelDirective, CadTableBase, CadTableComponent, CadTableEdit, CadTableEditUi, CadTableFooterDirective, CadTablePanelComponent, CadTableResponsive, CadTableSelection, CadTableSticky, CadTableVirtual, CadTabsComponent, CadTagComponent, CadTaskCardDirective, CadTaskRowDirective, CadTaskboardComponent, CadTimeAxis, CadTimelineComponent, CadTimelineContentDirective, CadTimelineMarkerDirective, CadTimelineOppositeDirective, CadToastComponent, CadToastItemDirective, CadToastService, CadToggleButtonComponent, CadTooltipComponent, CadTooltipDirective, CadTreeAdapter, CadTreeComponent, CadTreeNodeDirective, CadTreeselectComponent, CadUploadComponent, CadUploadContentDirective, CadUploadEmptyDirective, CadUploadItemDirective, CadValueAccessor, CadWorkCalendar, MAPLIBRE_MIN_CSS, REGISTRE, addDays, addMonths, addYears, atelierAjouter, atelierBalise, atelierChercher, atelierCleDeSymbole, atelierCode, atelierComposant, atelierCompter, atelierControle, atelierDefinirProp, atelierDeplacer, atelierGabarit, atelierGroupes, atelierImports, atelierLayoutVide, atelierManques, atelierNomDeClasse, atelierNormaliser, atelierNouvelId, atelierPalette, atelierPoser, atelierPremierePlaceLibre, atelierRecompacter, atelierRedimensionner, atelierReinitialiserIds, atelierReordonnerEnfant, atelierRetirer, atelierSelecteurDeClasse, atelierTrouver, cadAggregate, cadApplyColumnOrder, cadApplyMask, cadArea, cadAutosizeWidth, cadBasemapThumbnail, cadBoundsOf, cadCategories, cadCentroid, cadClipFenetre, cadColorExpr, cadCompare, cadCompareRank, cadCurrentOperator, cadDebutSemaine, cadDefaultMatchMode, cadDistance, cadDownloadCsv, cadDurationToMinutes, cadEstBandeau, cadExpandOccurrences, cadFilterData, cadFilterKindOf, cadFilterOperators, cadFilterRows, cadFindLinkCycle, cadFmtArea, cadFmtLength, cadFormatCell, cadFormatColor, cadFormatDuration, cadFormatSize, cadFrenchHolidays, cadGanttRows, cadGap, cadGeoJSONStats, cadGeometryKinds, cadHeaderMenuItems, cadHighlightJson, cadHslToRgb, cadHsvToRgb, cadId, cadIsGroupKey, cadIsRank, cadJsonErrorPos, cadLegendFromStyle, cadLength, cadMapEstVivante, cadMapLayerOf, cadMapLayersOf, cadMatch, cadMinuit, cadMonthGrid, cadMoveColumn, cadMoveItems, cadNormalize, cadNormalizeOptions, cadNormalizePlan, cadNumberExpr, cadNumeroJour, cadPackDay, cadPackLanes, cadPadBounds, cadParseColor, cadParseDuration, cadParseRRule, cadParseResponsive, cadPlanHeader, cadPlanTicks, cadPointeFleche, cadProjeterClavier, cadProjeterCreation, cadProjeterEdition, cadProjeterMois, cadPropsTable, cadRankBetween, cadRankFirst, cadRankLast, cadRankSequence, cadResolve, cadResolveResponsive, cadResponsive, cadRgbToHsl, cadRgbToHsv, cadRingArea, cadRouterLien, cadRowKey, cadRowPredicate, cadSameValue, cadScaleNext, cadScaleStart, cadSchedulerPartition, cadSortData, cadStartResize, cadStyleToExpressions, cadUnmask, cadUnscheduled, cadValidateGeoJSON, cadValueForOperator, cadWeekBands, cadWriteField, classeDe, compareDay, daysInMonth, endOfMonth, ensureMaplibreCss, formatDate, isBetweenDay, isSameDay, isSameMonth, isValidDate, isoOf, isoWeek, loadChartJs, loadMaplibre, monthNames, pad2, parseIso, parseWithFormat, provideCadIcons, startOfDay, startOfMonth, toDate, weekdayNames };
|
|
8772
|
+
export type { AtelierComposant, AtelierItem, AtelierLayout, AtelierProp, CadAggregate, CadAggregateFn, CadAggregates, CadBadgeSeverity, CadBand, CadBandRow, CadBasemap, CadBasemapKind, CadBottomNavItem, CadBounds, CadBreadcrumbItem, CadBreakpoint, CadCalendarChangeEvent, CadCalendarCreateEvent, CadCalendarDateEvent, CadCalendarEventEvent, CadCalendarSource, CadCalendarView, CadCarouselResponsive, CadCellContext, CadCellEditState, CadChartClickEvent, CadChartType, CadColonneDef, CadColorFormat, CadColorSpec, CadColumnAlign, CadColumnDataType, CadColumnEditor, CadColumnFilterOption, CadColumnFilterType, CadColumnMenuActionEvent, CadColumnPinEvent, CadColumnReorderEvent, CadColumnResizeEvent, CadColumnToggleEvent, CadComboSource, CadConfirmOptions, CadDataviewLayout, CadDateMode, CadDateSelection, CadDateValue, CadDialogConfig, CadDialogPosition, CadDialogSize, CadDisplayRow, CadDrawMode, CadDrawOptions, CadDrawerPosition, CadDuration, CadDurationUnit, CadEditBase, CadEditCompleteEvent, CadEditEvent, CadEditGeometry, CadEditKind, CadEditMode, CadEditorContext, CadExpandResult, CadFeatureEvent, CadFenetreSpan, CadFilterChangeEvent, CadFilterKind, CadFilterMatchMode, CadFilterMeta, CadFilterOperator, CadFilters, CadGanttRow, CadGanttScale, CadGanttTaskEvent, CadGap, CadGeoJSON, CadGeocodeOptions, CadGeocodeResult, CadGeocoder, CadGeometryKind, CadGroupBy, CadGroupContext, CadGroupInfo, CadGroupItem, CadHeaderMenuHost, CadHsva, CadLaneSpan, CadLayerStyle, CadLazyLoadEvent, CadLegendItem, CadLienAncre, CadLienTrace, CadListGroup, CadListItem, CadListNormalizeOpts, CadListOption, CadListRow, CadLngLat, CadMapChild, CadMapChrome, CadMapClick, CadMapControl, CadMapLayerType, CadMapMenuConfig, CadMapMenuItem, CadMapMenuPanel, CadMapMenuRailItem, CadMapMenuSection, CadMapPosition, CadMapSide, CadMapView, CadMeasure, CadMenuItem, CadMenubarItem, CadMeterValue, CadMonthGrid, CadNavDrawerItem, CadNavDrawerMode, CadNavDrawerRow, CadNodeEvent, CadNormalizePlanOptions, CadNormalizedPlan, CadNumberSpec, CadOccurrence, CadOptionItem, CadOrgNode, CadOverlayHandle, CadPageEvent, CadPaintSet, CadPinnedColumns, CadPlacement, CadPlan, CadPlanAssignment, CadPlanBucket, CadPlanCalendar, CadPlanCalendarException, CadPlanDateInput, CadPlanHeader, CadPlanHours, CadPlanIssue, CadPlanLink, CadPlanLinkType, CadPlanMarker, CadPlanResource, CadPlanScale, CadPlanTask, CadPlanTick, CadPlanTicksOptions, CadPlannedLink, CadPlannedTask, CadPriorityBreakpoints, CadProgressSeverity, CadRRule, CadRRuleFreq, CadRecurrenceIssue, CadRgba, CadRowEditEvent, CadRowEditState, CadRowEvent, CadRowReorderEvent, CadSchedulerAssignEvent, CadSchedulerChangeEvent, CadSchedulerCreateEvent, CadSchedulerEventEvent, CadSchedulerMode, CadSchedulerScale, CadSchedulerScheduleEvent, CadSegmentOption, CadSelectItemContext, CadSelectionMode, CadSelectionPropagation, CadSeverity, CadSheetConfig, CadSheetHeight, CadShellApi, CadSize, CadSliderMark, CadSliderSeverity, CadSliderValue, CadSlot, CadSortEvent, CadSortMeta, CadSortOrder, CadStepState, CadTableEditContext, CadTableEditUiContext, CadTablePanelTab, CadTableResponsiveMode, CadTableSelectionContext, CadTagSeverity, CadTaskAssignEvent, CadTaskMoveEvent, CadTaskOpenEvent, CadTaskboardGroupBy, CadTaskboardMode, CadTimelineAlign, CadToastAction, CadToastMessage, CadToastPosition, CadToastSeverity, CadTreeAdapterOptions, CadTreeNode, CadTreeNodeEvent, CadUploadFile, CadUploadHandlerEvent, CadUploadStatus, CadVariant, CadVirtualRange, CadWipEvent, EntreeRegistre, MLExpression, MaplibreModule };
|