@kksdev/ds-angular 1.4.0 → 1.6.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/kksdev-ds-angular.mjs +2735 -3
- package/fesm2022/kksdev-ds-angular.mjs.map +1 -1
- package/index.d.ts +926 -4
- package/package.json +2 -2
- package/src/styles/themes/_dark.scss +208 -0
- package/src/styles/themes/_light.scss +208 -0
- package/src/styles/tokens/_primitives.scss +1 -0
- package/src/styles/tokens/_semantic.scss +275 -0
- package/src/styles/tokens/_tokens.scss +229 -0
package/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import * as _angular_cdk_overlay from '@angular/cdk/overlay';
|
|
|
7
7
|
import { Overlay, ConnectedPosition } from '@angular/cdk/overlay';
|
|
8
8
|
import { IconDefinition as IconDefinition$2, FaIconLibrary } from '@fortawesome/angular-fontawesome';
|
|
9
9
|
import * as _fortawesome_fontawesome_common_types from '@fortawesome/fontawesome-common-types';
|
|
10
|
+
import * as _kksdev_ds_angular from '@kksdev/ds-angular';
|
|
10
11
|
import { ArgTypes, Args } from '@storybook/angular';
|
|
11
12
|
|
|
12
13
|
type BadgeType = 'status' | 'count' | 'label';
|
|
@@ -4160,7 +4161,7 @@ declare class DsDatePicker implements ControlValueAccessor, OnInit {
|
|
|
4160
4161
|
readonly currentMonthName: _angular_core.Signal<string>;
|
|
4161
4162
|
readonly calendarLabel: _angular_core.Signal<string>;
|
|
4162
4163
|
readonly yearRange: _angular_core.Signal<number[]>;
|
|
4163
|
-
readonly calendarWeeks: _angular_core.Signal<CalendarDay[][]>;
|
|
4164
|
+
readonly calendarWeeks: _angular_core.Signal<CalendarDay$1[][]>;
|
|
4164
4165
|
ngOnInit(): void;
|
|
4165
4166
|
navigateMonth(delta: number): void;
|
|
4166
4167
|
toggleMonthPicker(): void;
|
|
@@ -4191,7 +4192,7 @@ declare class DsDatePicker implements ControlValueAccessor, OnInit {
|
|
|
4191
4192
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsDatePicker, never>;
|
|
4192
4193
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsDatePicker, "ds-date-picker", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "todayLabel": { "alias": "todayLabel"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "prevMonthLabel": { "alias": "prevMonthLabel"; "required": false; "isSignal": true; }; "nextMonthLabel": { "alias": "nextMonthLabel"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "showRangePreview": { "alias": "showRangePreview"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; "rangeChange": "rangeChange"; }, never, never, true, never>;
|
|
4193
4194
|
}
|
|
4194
|
-
interface CalendarDay {
|
|
4195
|
+
interface CalendarDay$1 {
|
|
4195
4196
|
date: Date;
|
|
4196
4197
|
dayNumber: number;
|
|
4197
4198
|
isCurrentMonth: boolean;
|
|
@@ -5188,6 +5189,927 @@ declare class DsTree {
|
|
|
5188
5189
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsTree, "ds-tree", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "expandAll": { "alias": "expandAll"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "showLine": { "alias": "showLine"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "loadChildren": { "alias": "loadChildren"; "required": false; "isSignal": true; }; }, { "nodeSelect": "nodeSelect"; "nodeExpand": "nodeExpand"; "nodeCheck": "nodeCheck"; }, never, never, true, never>;
|
|
5189
5190
|
}
|
|
5190
5191
|
|
|
5192
|
+
/**
|
|
5193
|
+
* Niveaux de force du mot de passe.
|
|
5194
|
+
*/
|
|
5195
|
+
type PasswordStrength = 'none' | 'weak' | 'medium' | 'strong';
|
|
5196
|
+
/**
|
|
5197
|
+
* Tailles disponibles pour le composant.
|
|
5198
|
+
*/
|
|
5199
|
+
type PasswordStrengthSize = 'sm' | 'md' | 'lg';
|
|
5200
|
+
/**
|
|
5201
|
+
* Critère de validation du mot de passe.
|
|
5202
|
+
*/
|
|
5203
|
+
interface PasswordCriterion {
|
|
5204
|
+
key: string;
|
|
5205
|
+
label: string;
|
|
5206
|
+
valid: boolean;
|
|
5207
|
+
}
|
|
5208
|
+
/**
|
|
5209
|
+
* # DsPasswordStrength
|
|
5210
|
+
*
|
|
5211
|
+
* Composant indicateur de force de mot de passe avec affichage visuel
|
|
5212
|
+
* (barres de progression) et optionnel des critères de validation.
|
|
5213
|
+
*
|
|
5214
|
+
* ## Usage
|
|
5215
|
+
*
|
|
5216
|
+
* ```html
|
|
5217
|
+
* <ds-password-strength
|
|
5218
|
+
* [password]="userPassword"
|
|
5219
|
+
* [minLength]="8"
|
|
5220
|
+
* [showLabel]="true"
|
|
5221
|
+
* [showCriteria]="true"
|
|
5222
|
+
* (strengthChange)="handleStrengthChange($event)" />
|
|
5223
|
+
* ```
|
|
5224
|
+
*
|
|
5225
|
+
* ## Calcul de la force
|
|
5226
|
+
*
|
|
5227
|
+
* - `none`: Champ vide
|
|
5228
|
+
* - `weak`: Longueur < minLength OU uniquement lettres
|
|
5229
|
+
* - `medium`: Longueur ≥ minLength ET (lettres+chiffres OU lettres+spéciaux)
|
|
5230
|
+
* - `strong`: Longueur ≥ minLength ET majuscules + minuscules + chiffres + spéciaux
|
|
5231
|
+
*
|
|
5232
|
+
* ## Accessibilité
|
|
5233
|
+
*
|
|
5234
|
+
* - Attribut `role="status"` pour annoncer les changements
|
|
5235
|
+
* - Label ARIA dynamique selon la force
|
|
5236
|
+
* - Couleurs sémantiques (error/warning/success)
|
|
5237
|
+
*
|
|
5238
|
+
* @component
|
|
5239
|
+
*/
|
|
5240
|
+
declare class DsPasswordStrength {
|
|
5241
|
+
/**
|
|
5242
|
+
* Mot de passe à évaluer.
|
|
5243
|
+
* @default ''
|
|
5244
|
+
*/
|
|
5245
|
+
password: _angular_core.InputSignal<string>;
|
|
5246
|
+
/**
|
|
5247
|
+
* Longueur minimale requise.
|
|
5248
|
+
* @default 8
|
|
5249
|
+
*/
|
|
5250
|
+
minLength: _angular_core.InputSignal<number>;
|
|
5251
|
+
/**
|
|
5252
|
+
* Afficher le label textuel (ex: "Faible", "Moyen", "Fort").
|
|
5253
|
+
* @default true
|
|
5254
|
+
*/
|
|
5255
|
+
showLabel: _angular_core.InputSignal<boolean>;
|
|
5256
|
+
/**
|
|
5257
|
+
* Afficher les critères détaillés de validation.
|
|
5258
|
+
* @default false
|
|
5259
|
+
*/
|
|
5260
|
+
showCriteria: _angular_core.InputSignal<boolean>;
|
|
5261
|
+
/**
|
|
5262
|
+
* Taille du composant.
|
|
5263
|
+
* @default 'md'
|
|
5264
|
+
*/
|
|
5265
|
+
size: _angular_core.InputSignal<PasswordStrengthSize>;
|
|
5266
|
+
/**
|
|
5267
|
+
* Émis lorsque la force du mot de passe change.
|
|
5268
|
+
*/
|
|
5269
|
+
strengthChange: _angular_core.OutputEmitterRef<PasswordStrength>;
|
|
5270
|
+
/**
|
|
5271
|
+
* Icônes FontAwesome pour les critères.
|
|
5272
|
+
*/
|
|
5273
|
+
protected readonly faCheck: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
5274
|
+
protected readonly faTimes: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
5275
|
+
/**
|
|
5276
|
+
* Regex patterns pour la validation.
|
|
5277
|
+
*/
|
|
5278
|
+
private readonly hasUpperCase;
|
|
5279
|
+
private readonly hasLowerCase;
|
|
5280
|
+
private readonly hasNumber;
|
|
5281
|
+
private readonly hasSpecialChar;
|
|
5282
|
+
/**
|
|
5283
|
+
* Calcul de la force du mot de passe.
|
|
5284
|
+
*/
|
|
5285
|
+
readonly strength: _angular_core.Signal<PasswordStrength>;
|
|
5286
|
+
/**
|
|
5287
|
+
* Label textuel de la force (pour affichage).
|
|
5288
|
+
*/
|
|
5289
|
+
readonly strengthLabel: _angular_core.Signal<string>;
|
|
5290
|
+
/**
|
|
5291
|
+
* Label ARIA pour accessibilité.
|
|
5292
|
+
*/
|
|
5293
|
+
readonly ariaLabel: _angular_core.Signal<string>;
|
|
5294
|
+
/**
|
|
5295
|
+
* Classes CSS calculées pour le conteneur.
|
|
5296
|
+
*/
|
|
5297
|
+
readonly containerClasses: _angular_core.Signal<string>;
|
|
5298
|
+
/**
|
|
5299
|
+
* Barres indicatrices (3 barres).
|
|
5300
|
+
* Chaque barre est active selon la force.
|
|
5301
|
+
*/
|
|
5302
|
+
readonly bars: _angular_core.Signal<{
|
|
5303
|
+
active: boolean;
|
|
5304
|
+
level: PasswordStrength;
|
|
5305
|
+
}[]>;
|
|
5306
|
+
/**
|
|
5307
|
+
* Liste des critères de validation (pour affichage détaillé).
|
|
5308
|
+
*/
|
|
5309
|
+
readonly criteria: _angular_core.Signal<PasswordCriterion[]>;
|
|
5310
|
+
/**
|
|
5311
|
+
* Constructeur : émet les changements de force via effect.
|
|
5312
|
+
*/
|
|
5313
|
+
constructor();
|
|
5314
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsPasswordStrength, never>;
|
|
5315
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsPasswordStrength, "ds-password-strength", never, { "password": { "alias": "password"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "showCriteria": { "alias": "showCriteria"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "strengthChange": "strengthChange"; }, never, never, true, never>;
|
|
5316
|
+
}
|
|
5317
|
+
|
|
5318
|
+
/**
|
|
5319
|
+
* Mode d'affichage de la timeline.
|
|
5320
|
+
*/
|
|
5321
|
+
type TimelineMode = 'left' | 'right' | 'alternate';
|
|
5322
|
+
/**
|
|
5323
|
+
* Taille de la timeline.
|
|
5324
|
+
*/
|
|
5325
|
+
type TimelineSize = 'sm' | 'md' | 'lg';
|
|
5326
|
+
/**
|
|
5327
|
+
* Couleur du point de la timeline.
|
|
5328
|
+
*/
|
|
5329
|
+
type TimelineColor = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
|
|
5330
|
+
/**
|
|
5331
|
+
* Configuration d'un item de timeline.
|
|
5332
|
+
*/
|
|
5333
|
+
interface TimelineItem {
|
|
5334
|
+
/**
|
|
5335
|
+
* Contenu textuel de l'événement.
|
|
5336
|
+
*/
|
|
5337
|
+
content: string;
|
|
5338
|
+
/**
|
|
5339
|
+
* Date optionnelle de l'événement.
|
|
5340
|
+
*/
|
|
5341
|
+
date?: string;
|
|
5342
|
+
/**
|
|
5343
|
+
* Icône FontAwesome optionnelle.
|
|
5344
|
+
*/
|
|
5345
|
+
icon?: IconDefinition$1;
|
|
5346
|
+
/**
|
|
5347
|
+
* Couleur du point (si pas d'icône).
|
|
5348
|
+
* @default 'default'
|
|
5349
|
+
*/
|
|
5350
|
+
color?: TimelineColor;
|
|
5351
|
+
/**
|
|
5352
|
+
* Position du contenu (pour mode alternate).
|
|
5353
|
+
* Si non défini, suit le mode global.
|
|
5354
|
+
*/
|
|
5355
|
+
position?: 'left' | 'right';
|
|
5356
|
+
}
|
|
5357
|
+
/**
|
|
5358
|
+
* Événement émis au clic sur un item.
|
|
5359
|
+
*/
|
|
5360
|
+
interface TimelineItemClickEvent {
|
|
5361
|
+
item: TimelineItem;
|
|
5362
|
+
index: number;
|
|
5363
|
+
}
|
|
5364
|
+
/**
|
|
5365
|
+
* # DsTimeline
|
|
5366
|
+
*
|
|
5367
|
+
* Composant pour afficher une liste d'événements dans un ordre chronologique vertical.
|
|
5368
|
+
*
|
|
5369
|
+
* ## Usage
|
|
5370
|
+
*
|
|
5371
|
+
* ```html
|
|
5372
|
+
* <ds-timeline
|
|
5373
|
+
* [items]="events"
|
|
5374
|
+
* mode="left"
|
|
5375
|
+
* size="md"
|
|
5376
|
+
* [pending]="false"
|
|
5377
|
+
* (itemClick)="onItemClick($event)">
|
|
5378
|
+
* </ds-timeline>
|
|
5379
|
+
* ```
|
|
5380
|
+
*
|
|
5381
|
+
* ## Modes
|
|
5382
|
+
*
|
|
5383
|
+
* - `left` : Contenu aligné à droite de la ligne
|
|
5384
|
+
* - `right` : Contenu aligné à gauche de la ligne
|
|
5385
|
+
* - `alternate` : Contenu alterné gauche/droite
|
|
5386
|
+
*
|
|
5387
|
+
* ## Accessibilité
|
|
5388
|
+
*
|
|
5389
|
+
* - Liste sémantique avec `role="list"` et `role="listitem"`
|
|
5390
|
+
* - Dates et contenus avec attributs ARIA
|
|
5391
|
+
* - Navigation clavier supportée
|
|
5392
|
+
*
|
|
5393
|
+
* @component
|
|
5394
|
+
*/
|
|
5395
|
+
declare class DsTimeline {
|
|
5396
|
+
/**
|
|
5397
|
+
* Liste des événements à afficher.
|
|
5398
|
+
*/
|
|
5399
|
+
items: _angular_core.InputSignal<TimelineItem[]>;
|
|
5400
|
+
/**
|
|
5401
|
+
* Mode d'affichage (position du contenu).
|
|
5402
|
+
* @default 'left'
|
|
5403
|
+
*/
|
|
5404
|
+
mode: _angular_core.InputSignal<TimelineMode>;
|
|
5405
|
+
/**
|
|
5406
|
+
* Taille du composant.
|
|
5407
|
+
* @default 'md'
|
|
5408
|
+
*/
|
|
5409
|
+
size: _angular_core.InputSignal<TimelineSize>;
|
|
5410
|
+
/**
|
|
5411
|
+
* Affiche un indicateur "en cours" à la fin.
|
|
5412
|
+
* @default false
|
|
5413
|
+
*/
|
|
5414
|
+
pending: _angular_core.InputSignal<boolean>;
|
|
5415
|
+
/**
|
|
5416
|
+
* Texte de l'indicateur pending.
|
|
5417
|
+
* @default 'En cours...'
|
|
5418
|
+
*/
|
|
5419
|
+
pendingContent: _angular_core.InputSignal<string>;
|
|
5420
|
+
/**
|
|
5421
|
+
* Inverse l'ordre d'affichage (plus récent en haut).
|
|
5422
|
+
* @default false
|
|
5423
|
+
*/
|
|
5424
|
+
reverse: _angular_core.InputSignal<boolean>;
|
|
5425
|
+
/**
|
|
5426
|
+
* Événement émis au clic sur un item.
|
|
5427
|
+
*/
|
|
5428
|
+
itemClick: _angular_core.OutputEmitterRef<TimelineItemClickEvent>;
|
|
5429
|
+
/**
|
|
5430
|
+
* Icônes par défaut.
|
|
5431
|
+
*/
|
|
5432
|
+
protected readonly defaultIcon: IconDefinition$1;
|
|
5433
|
+
protected readonly pendingIcon: IconDefinition$1;
|
|
5434
|
+
/**
|
|
5435
|
+
* Items triés (reverse si demandé).
|
|
5436
|
+
*/
|
|
5437
|
+
readonly sortedItems: _angular_core.Signal<TimelineItem[]>;
|
|
5438
|
+
/**
|
|
5439
|
+
* Classes CSS du conteneur.
|
|
5440
|
+
*/
|
|
5441
|
+
readonly containerClasses: _angular_core.Signal<string[]>;
|
|
5442
|
+
/**
|
|
5443
|
+
* Classes CSS pour un item.
|
|
5444
|
+
*/
|
|
5445
|
+
getItemClasses(item: TimelineItem, index: number): string[];
|
|
5446
|
+
/**
|
|
5447
|
+
* Classes CSS pour le point d'un item.
|
|
5448
|
+
*/
|
|
5449
|
+
getDotClasses(item: TimelineItem): string[];
|
|
5450
|
+
/**
|
|
5451
|
+
* Détermine la position d'un item en fonction du mode.
|
|
5452
|
+
*/
|
|
5453
|
+
getItemPosition(index: number): 'left' | 'right';
|
|
5454
|
+
/**
|
|
5455
|
+
* Gère le clic sur un item.
|
|
5456
|
+
*/
|
|
5457
|
+
handleItemClick(item: TimelineItem, index: number): void;
|
|
5458
|
+
/**
|
|
5459
|
+
* Gère la touche Enter/Space sur un item.
|
|
5460
|
+
*/
|
|
5461
|
+
handleKeydown(event: KeyboardEvent, item: TimelineItem, index: number): void;
|
|
5462
|
+
/**
|
|
5463
|
+
* Icône à afficher pour un item.
|
|
5464
|
+
*/
|
|
5465
|
+
getIcon(item: TimelineItem): IconDefinition$1;
|
|
5466
|
+
/**
|
|
5467
|
+
* Vérifie si c'est le dernier item.
|
|
5468
|
+
*/
|
|
5469
|
+
isLastItem(index: number): boolean;
|
|
5470
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsTimeline, never>;
|
|
5471
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsTimeline, "ds-timeline", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "pendingContent": { "alias": "pendingContent"; "required": false; "isSignal": true; }; "reverse": { "alias": "reverse"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
|
|
5472
|
+
}
|
|
5473
|
+
|
|
5474
|
+
interface TransferItem {
|
|
5475
|
+
key: string;
|
|
5476
|
+
label: string;
|
|
5477
|
+
disabled?: boolean;
|
|
5478
|
+
description?: string;
|
|
5479
|
+
}
|
|
5480
|
+
type TransferDirection = 'left' | 'right';
|
|
5481
|
+
type TransferSize = 'sm' | 'md' | 'lg';
|
|
5482
|
+
interface TransferChangeEvent {
|
|
5483
|
+
source: TransferItem[];
|
|
5484
|
+
target: TransferItem[];
|
|
5485
|
+
}
|
|
5486
|
+
/**
|
|
5487
|
+
* DS Transfer
|
|
5488
|
+
*
|
|
5489
|
+
* Composant permettant de transférer des items entre deux listes (source et cible).
|
|
5490
|
+
* Inclut recherche, sélection multiple, et navigation clavier.
|
|
5491
|
+
*
|
|
5492
|
+
* @example
|
|
5493
|
+
* <ds-transfer
|
|
5494
|
+
* [source]="sourceItems"
|
|
5495
|
+
* [target]="targetItems"
|
|
5496
|
+
* sourceTitle="Disponibles"
|
|
5497
|
+
* targetTitle="Sélectionnés"
|
|
5498
|
+
* [showSearch]="true"
|
|
5499
|
+
* (transferChange)="onTransfer($event)"
|
|
5500
|
+
* />
|
|
5501
|
+
*/
|
|
5502
|
+
declare class DsTransfer {
|
|
5503
|
+
readonly source: _angular_core.InputSignal<TransferItem[]>;
|
|
5504
|
+
readonly target: _angular_core.InputSignal<TransferItem[]>;
|
|
5505
|
+
readonly sourceTitle: _angular_core.InputSignal<string>;
|
|
5506
|
+
readonly targetTitle: _angular_core.InputSignal<string>;
|
|
5507
|
+
readonly showSearch: _angular_core.InputSignal<boolean>;
|
|
5508
|
+
readonly showSelectAll: _angular_core.InputSignal<boolean>;
|
|
5509
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5510
|
+
readonly size: _angular_core.InputSignal<TransferSize>;
|
|
5511
|
+
readonly transferChange: _angular_core.OutputEmitterRef<TransferChangeEvent>;
|
|
5512
|
+
protected readonly sourceSelected: _angular_core.WritableSignal<Set<string>>;
|
|
5513
|
+
protected readonly targetSelected: _angular_core.WritableSignal<Set<string>>;
|
|
5514
|
+
protected readonly sourceSearchQuery: _angular_core.WritableSignal<string>;
|
|
5515
|
+
protected readonly targetSearchQuery: _angular_core.WritableSignal<string>;
|
|
5516
|
+
protected readonly filteredSource: _angular_core.Signal<TransferItem[]>;
|
|
5517
|
+
protected readonly filteredTarget: _angular_core.Signal<TransferItem[]>;
|
|
5518
|
+
protected readonly sourceSelectableCount: _angular_core.Signal<number>;
|
|
5519
|
+
protected readonly targetSelectableCount: _angular_core.Signal<number>;
|
|
5520
|
+
protected readonly isAllSourceSelected: _angular_core.Signal<boolean>;
|
|
5521
|
+
protected readonly isAllTargetSelected: _angular_core.Signal<boolean>;
|
|
5522
|
+
protected readonly canTransferToTarget: _angular_core.Signal<boolean>;
|
|
5523
|
+
protected readonly canTransferToSource: _angular_core.Signal<boolean>;
|
|
5524
|
+
protected readonly containerClasses: _angular_core.Signal<{
|
|
5525
|
+
[x: string]: boolean;
|
|
5526
|
+
'ds-transfer': boolean;
|
|
5527
|
+
'ds-transfer--disabled': boolean;
|
|
5528
|
+
}>;
|
|
5529
|
+
transferToTarget(): void;
|
|
5530
|
+
transferToSource(): void;
|
|
5531
|
+
toggleSelectAll(direction: TransferDirection): void;
|
|
5532
|
+
toggleItemSelection(item: TransferItem, direction: TransferDirection): void;
|
|
5533
|
+
isItemSelected(item: TransferItem, direction: TransferDirection): boolean;
|
|
5534
|
+
onSearchInput(event: Event, direction: TransferDirection): void;
|
|
5535
|
+
clearSearch(direction: TransferDirection): void;
|
|
5536
|
+
getSelectedCount(direction: TransferDirection): number;
|
|
5537
|
+
getItemCount(direction: TransferDirection): number;
|
|
5538
|
+
private emitChange;
|
|
5539
|
+
protected getListboxId(direction: TransferDirection): string;
|
|
5540
|
+
protected getItemId(item: TransferItem, direction: TransferDirection): string;
|
|
5541
|
+
protected readonly sourceListboxLabel: _angular_core.Signal<string>;
|
|
5542
|
+
protected readonly targetListboxLabel: _angular_core.Signal<string>;
|
|
5543
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsTransfer, never>;
|
|
5544
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsTransfer, "ds-transfer", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "sourceTitle": { "alias": "sourceTitle"; "required": false; "isSignal": true; }; "targetTitle": { "alias": "targetTitle"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "transferChange": "transferChange"; }, never, never, true, never>;
|
|
5545
|
+
}
|
|
5546
|
+
|
|
5547
|
+
interface CarouselSlide {
|
|
5548
|
+
id: string;
|
|
5549
|
+
image?: string;
|
|
5550
|
+
alt?: string;
|
|
5551
|
+
title?: string;
|
|
5552
|
+
description?: string;
|
|
5553
|
+
}
|
|
5554
|
+
type CarouselEffect = 'slide' | 'fade';
|
|
5555
|
+
type CarouselDotsPosition = 'bottom' | 'top' | 'left' | 'right';
|
|
5556
|
+
declare class DsCarousel implements AfterViewInit, OnDestroy {
|
|
5557
|
+
slides: _angular_core.InputSignal<CarouselSlide[]>;
|
|
5558
|
+
autoplay: _angular_core.InputSignal<boolean>;
|
|
5559
|
+
autoplaySpeed: _angular_core.InputSignal<number>;
|
|
5560
|
+
effect: _angular_core.InputSignal<CarouselEffect>;
|
|
5561
|
+
dots: _angular_core.InputSignal<boolean>;
|
|
5562
|
+
dotsPosition: _angular_core.InputSignal<CarouselDotsPosition>;
|
|
5563
|
+
arrows: _angular_core.InputSignal<boolean>;
|
|
5564
|
+
infinite: _angular_core.InputSignal<boolean>;
|
|
5565
|
+
pauseOnHover: _angular_core.InputSignal<boolean>;
|
|
5566
|
+
activeIndex: _angular_core.InputSignal<number>;
|
|
5567
|
+
slideChange: _angular_core.OutputEmitterRef<{
|
|
5568
|
+
index: number;
|
|
5569
|
+
slide: CarouselSlide;
|
|
5570
|
+
}>;
|
|
5571
|
+
trackElement?: ElementRef<HTMLDivElement>;
|
|
5572
|
+
slideElements?: QueryList<ElementRef<HTMLDivElement>>;
|
|
5573
|
+
readonly icons: {
|
|
5574
|
+
readonly left: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
5575
|
+
readonly right: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
5576
|
+
};
|
|
5577
|
+
readonly internalActiveIndex: _angular_core.WritableSignal<number>;
|
|
5578
|
+
readonly isPaused: _angular_core.WritableSignal<boolean>;
|
|
5579
|
+
readonly isTransitioning: _angular_core.WritableSignal<boolean>;
|
|
5580
|
+
private autoplayTimer;
|
|
5581
|
+
private startX;
|
|
5582
|
+
private startY;
|
|
5583
|
+
private isDragging;
|
|
5584
|
+
constructor();
|
|
5585
|
+
ngAfterViewInit(): void;
|
|
5586
|
+
ngOnDestroy(): void;
|
|
5587
|
+
readonly containerClasses: _angular_core.Signal<string>;
|
|
5588
|
+
readonly trackStyle: _angular_core.Signal<{
|
|
5589
|
+
transform: string;
|
|
5590
|
+
} | {
|
|
5591
|
+
transform?: undefined;
|
|
5592
|
+
}>;
|
|
5593
|
+
slideClasses(index: number): string;
|
|
5594
|
+
dotClasses(index: number): string;
|
|
5595
|
+
next(): void;
|
|
5596
|
+
prev(): void;
|
|
5597
|
+
goTo(index: number): void;
|
|
5598
|
+
pause(): void;
|
|
5599
|
+
play(): void;
|
|
5600
|
+
onMouseEnter(): void;
|
|
5601
|
+
onMouseLeave(): void;
|
|
5602
|
+
onKeydown(event: KeyboardEvent): void;
|
|
5603
|
+
onTouchStart(event: TouchEvent): void;
|
|
5604
|
+
onTouchMove(event: TouchEvent): void;
|
|
5605
|
+
onTouchEnd(event: TouchEvent): void;
|
|
5606
|
+
private startAutoplay;
|
|
5607
|
+
private stopAutoplay;
|
|
5608
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsCarousel, never>;
|
|
5609
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsCarousel, "ds-carousel", never, { "slides": { "alias": "slides"; "required": false; "isSignal": true; }; "autoplay": { "alias": "autoplay"; "required": false; "isSignal": true; }; "autoplaySpeed": { "alias": "autoplaySpeed"; "required": false; "isSignal": true; }; "effect": { "alias": "effect"; "required": false; "isSignal": true; }; "dots": { "alias": "dots"; "required": false; "isSignal": true; }; "dotsPosition": { "alias": "dotsPosition"; "required": false; "isSignal": true; }; "arrows": { "alias": "arrows"; "required": false; "isSignal": true; }; "infinite": { "alias": "infinite"; "required": false; "isSignal": true; }; "pauseOnHover": { "alias": "pauseOnHover"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; }, { "slideChange": "slideChange"; }, never, ["[carousel-slide]"], true, never>;
|
|
5610
|
+
}
|
|
5611
|
+
|
|
5612
|
+
interface NotificationAction {
|
|
5613
|
+
label: string;
|
|
5614
|
+
handler: () => void;
|
|
5615
|
+
variant?: 'primary' | 'secondary' | 'ghost';
|
|
5616
|
+
}
|
|
5617
|
+
interface NotificationConfig {
|
|
5618
|
+
id?: string;
|
|
5619
|
+
title: string;
|
|
5620
|
+
message: string;
|
|
5621
|
+
type?: 'info' | 'success' | 'warning' | 'error';
|
|
5622
|
+
duration?: number;
|
|
5623
|
+
closable?: boolean;
|
|
5624
|
+
icon?: IconDefinition;
|
|
5625
|
+
actions?: NotificationAction[];
|
|
5626
|
+
}
|
|
5627
|
+
type NotificationPlacement = 'topRight' | 'topLeft' | 'bottomRight' | 'bottomLeft';
|
|
5628
|
+
interface NotificationItem extends NotificationConfig {
|
|
5629
|
+
id: string;
|
|
5630
|
+
timestamp: number;
|
|
5631
|
+
}
|
|
5632
|
+
|
|
5633
|
+
declare class DsNotificationContainerComponent {
|
|
5634
|
+
private readonly notificationService;
|
|
5635
|
+
placement: _angular_core.InputSignal<NotificationPlacement>;
|
|
5636
|
+
maxStack: _angular_core.InputSignal<number>;
|
|
5637
|
+
readonly notifications: _angular_core.Signal<_kksdev_ds_angular.NotificationItem[]>;
|
|
5638
|
+
readonly visibleNotifications: _angular_core.Signal<_kksdev_ds_angular.NotificationItem[]>;
|
|
5639
|
+
readonly containerClasses: _angular_core.Signal<string>;
|
|
5640
|
+
onClose(id: string): void;
|
|
5641
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsNotificationContainerComponent, never>;
|
|
5642
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsNotificationContainerComponent, "ds-notification-container", never, { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "maxStack": { "alias": "maxStack"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5643
|
+
}
|
|
5644
|
+
|
|
5645
|
+
declare class DsNotificationItemComponent {
|
|
5646
|
+
notification: _angular_core.InputSignal<NotificationItem>;
|
|
5647
|
+
readonly closeClick: _angular_core.OutputEmitterRef<string>;
|
|
5648
|
+
readonly actionClick: _angular_core.OutputEmitterRef<{
|
|
5649
|
+
id: string;
|
|
5650
|
+
actionIndex: number;
|
|
5651
|
+
}>;
|
|
5652
|
+
readonly closeIcon: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
5653
|
+
readonly notificationClasses: () => string[];
|
|
5654
|
+
onClose(): void;
|
|
5655
|
+
onActionClick(index: number): void;
|
|
5656
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsNotificationItemComponent, never>;
|
|
5657
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsNotificationItemComponent, "ds-notification-item", never, { "notification": { "alias": "notification"; "required": true; "isSignal": true; }; }, { "closeClick": "closeClick"; "actionClick": "actionClick"; }, never, never, true, never>;
|
|
5658
|
+
}
|
|
5659
|
+
|
|
5660
|
+
declare class DsNotificationService {
|
|
5661
|
+
private readonly notifications;
|
|
5662
|
+
private nextId;
|
|
5663
|
+
readonly notifications$: _angular_core.Signal<NotificationItem[]>;
|
|
5664
|
+
open(config: NotificationConfig): string;
|
|
5665
|
+
info(title: string, message: string, config?: Partial<NotificationConfig>): string;
|
|
5666
|
+
success(title: string, message: string, config?: Partial<NotificationConfig>): string;
|
|
5667
|
+
warning(title: string, message: string, config?: Partial<NotificationConfig>): string;
|
|
5668
|
+
error(title: string, message: string, config?: Partial<NotificationConfig>): string;
|
|
5669
|
+
close(id: string): void;
|
|
5670
|
+
closeAll(): void;
|
|
5671
|
+
private getDefaultIcon;
|
|
5672
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsNotificationService, never>;
|
|
5673
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DsNotificationService>;
|
|
5674
|
+
}
|
|
5675
|
+
|
|
5676
|
+
/**
|
|
5677
|
+
* Interface pour les événements du calendrier
|
|
5678
|
+
*/
|
|
5679
|
+
interface CalendarEvent {
|
|
5680
|
+
id: string;
|
|
5681
|
+
date: Date;
|
|
5682
|
+
title: string;
|
|
5683
|
+
type?: 'default' | 'success' | 'warning' | 'error';
|
|
5684
|
+
}
|
|
5685
|
+
/**
|
|
5686
|
+
* Mode d'affichage du calendrier
|
|
5687
|
+
*/
|
|
5688
|
+
type CalendarMode = 'month' | 'year';
|
|
5689
|
+
/**
|
|
5690
|
+
* Tailles du calendrier
|
|
5691
|
+
*/
|
|
5692
|
+
type CalendarSize = 'sm' | 'md' | 'lg';
|
|
5693
|
+
/**
|
|
5694
|
+
* Représentation d'un jour dans le calendrier
|
|
5695
|
+
*/
|
|
5696
|
+
interface CalendarDay {
|
|
5697
|
+
date: Date;
|
|
5698
|
+
isCurrentMonth: boolean;
|
|
5699
|
+
isToday: boolean;
|
|
5700
|
+
isDisabled: boolean;
|
|
5701
|
+
events: CalendarEvent[];
|
|
5702
|
+
}
|
|
5703
|
+
/**
|
|
5704
|
+
* Représentation d'un mois dans la vue année
|
|
5705
|
+
*/
|
|
5706
|
+
interface CalendarMonth {
|
|
5707
|
+
monthIndex: number;
|
|
5708
|
+
label: string;
|
|
5709
|
+
isCurrentMonth: boolean;
|
|
5710
|
+
}
|
|
5711
|
+
/**
|
|
5712
|
+
* DsCalendar - Composant calendrier mensuel/annuel avec gestion d'événements
|
|
5713
|
+
*
|
|
5714
|
+
* @example
|
|
5715
|
+
* ```html
|
|
5716
|
+
* <ds-calendar
|
|
5717
|
+
* [value]="currentDate"
|
|
5718
|
+
* [events]="calendarEvents"
|
|
5719
|
+
* (dateSelect)="onDateSelect($event)"
|
|
5720
|
+
* (eventClick)="onEventClick($event)">
|
|
5721
|
+
* </ds-calendar>
|
|
5722
|
+
* ```
|
|
5723
|
+
*/
|
|
5724
|
+
declare class DsCalendar {
|
|
5725
|
+
/**
|
|
5726
|
+
* Date courante affichée
|
|
5727
|
+
*/
|
|
5728
|
+
value: _angular_core.InputSignal<Date>;
|
|
5729
|
+
/**
|
|
5730
|
+
* Mode d'affichage (month ou year)
|
|
5731
|
+
*/
|
|
5732
|
+
mode: _angular_core.InputSignal<CalendarMode>;
|
|
5733
|
+
/**
|
|
5734
|
+
* Événements à afficher dans le calendrier
|
|
5735
|
+
*/
|
|
5736
|
+
events: _angular_core.InputSignal<CalendarEvent[]>;
|
|
5737
|
+
/**
|
|
5738
|
+
* Taille du calendrier
|
|
5739
|
+
*/
|
|
5740
|
+
size: _angular_core.InputSignal<CalendarSize>;
|
|
5741
|
+
/**
|
|
5742
|
+
* Locale pour les noms de jours et mois
|
|
5743
|
+
*/
|
|
5744
|
+
locale: _angular_core.InputSignal<string>;
|
|
5745
|
+
/**
|
|
5746
|
+
* Premier jour de la semaine (0=dimanche, 1=lundi)
|
|
5747
|
+
*/
|
|
5748
|
+
firstDayOfWeek: _angular_core.InputSignal<number>;
|
|
5749
|
+
/**
|
|
5750
|
+
* Fonction pour désactiver certaines dates
|
|
5751
|
+
*/
|
|
5752
|
+
disabledDate: _angular_core.InputSignal<((date: Date) => boolean) | undefined>;
|
|
5753
|
+
/**
|
|
5754
|
+
* Émis lors de la sélection d'une date
|
|
5755
|
+
*/
|
|
5756
|
+
dateSelect: _angular_core.OutputEmitterRef<Date>;
|
|
5757
|
+
/**
|
|
5758
|
+
* Émis lors du changement de mois
|
|
5759
|
+
*/
|
|
5760
|
+
monthChange: _angular_core.OutputEmitterRef<Date>;
|
|
5761
|
+
/**
|
|
5762
|
+
* Émis lors du changement de mode
|
|
5763
|
+
*/
|
|
5764
|
+
modeChange: _angular_core.OutputEmitterRef<CalendarMode>;
|
|
5765
|
+
/**
|
|
5766
|
+
* Émis lors du clic sur un événement
|
|
5767
|
+
*/
|
|
5768
|
+
eventClick: _angular_core.OutputEmitterRef<CalendarEvent>;
|
|
5769
|
+
/**
|
|
5770
|
+
* Date actuellement affichée (mois/année)
|
|
5771
|
+
*/
|
|
5772
|
+
readonly displayDate: _angular_core.WritableSignal<Date>;
|
|
5773
|
+
/**
|
|
5774
|
+
* Mode actuel (interne)
|
|
5775
|
+
*/
|
|
5776
|
+
readonly currentMode: _angular_core.WritableSignal<CalendarMode>;
|
|
5777
|
+
readonly icons: {
|
|
5778
|
+
readonly chevronLeft: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
5779
|
+
readonly chevronRight: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
5780
|
+
};
|
|
5781
|
+
/**
|
|
5782
|
+
* Classes CSS de l'hôte
|
|
5783
|
+
*/
|
|
5784
|
+
readonly hostClasses: _angular_core.Signal<string>;
|
|
5785
|
+
/**
|
|
5786
|
+
* Titre du calendrier (mois + année)
|
|
5787
|
+
*/
|
|
5788
|
+
readonly calendarTitle: _angular_core.Signal<string>;
|
|
5789
|
+
/**
|
|
5790
|
+
* Noms des jours de la semaine
|
|
5791
|
+
*/
|
|
5792
|
+
readonly weekDays: _angular_core.Signal<string[]>;
|
|
5793
|
+
/**
|
|
5794
|
+
* Grille des jours du mois (6 semaines)
|
|
5795
|
+
*/
|
|
5796
|
+
readonly calendarGrid: _angular_core.Signal<CalendarDay[]>;
|
|
5797
|
+
/**
|
|
5798
|
+
* Grille des mois (vue année)
|
|
5799
|
+
*/
|
|
5800
|
+
readonly monthGrid: _angular_core.Signal<CalendarMonth[]>;
|
|
5801
|
+
constructor();
|
|
5802
|
+
/**
|
|
5803
|
+
* Navigue vers le mois précédent
|
|
5804
|
+
*/
|
|
5805
|
+
previousMonth(): void;
|
|
5806
|
+
/**
|
|
5807
|
+
* Navigue vers le mois suivant
|
|
5808
|
+
*/
|
|
5809
|
+
nextMonth(): void;
|
|
5810
|
+
/**
|
|
5811
|
+
* Navigue vers l'année précédente
|
|
5812
|
+
*/
|
|
5813
|
+
previousYear(): void;
|
|
5814
|
+
/**
|
|
5815
|
+
* Navigue vers l'année suivante
|
|
5816
|
+
*/
|
|
5817
|
+
nextYear(): void;
|
|
5818
|
+
/**
|
|
5819
|
+
* Sélectionne une date
|
|
5820
|
+
*/
|
|
5821
|
+
selectDate(day: CalendarDay): void;
|
|
5822
|
+
/**
|
|
5823
|
+
* Sélectionne un mois (en mode année)
|
|
5824
|
+
*/
|
|
5825
|
+
selectMonth(month: CalendarMonth): void;
|
|
5826
|
+
/**
|
|
5827
|
+
* Toggle entre mode mois et année
|
|
5828
|
+
*/
|
|
5829
|
+
toggleMode(): void;
|
|
5830
|
+
/**
|
|
5831
|
+
* Gère le clic sur un événement
|
|
5832
|
+
*/
|
|
5833
|
+
onEventClick(event: CalendarEvent, mouseEvent: MouseEvent): void;
|
|
5834
|
+
/**
|
|
5835
|
+
* Retourne les classes CSS d'un jour
|
|
5836
|
+
*/
|
|
5837
|
+
getDayClasses(day: CalendarDay): string;
|
|
5838
|
+
/**
|
|
5839
|
+
* Retourne les classes CSS d'un mois
|
|
5840
|
+
*/
|
|
5841
|
+
getMonthClasses(month: CalendarMonth): string;
|
|
5842
|
+
/**
|
|
5843
|
+
* Retourne les classes CSS d'un événement
|
|
5844
|
+
*/
|
|
5845
|
+
getEventClasses(event: CalendarEvent): string;
|
|
5846
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsCalendar, never>;
|
|
5847
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsCalendar, "ds-calendar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "events": { "alias": "events"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "disabledDate": { "alias": "disabledDate"; "required": false; "isSignal": true; }; }, { "dateSelect": "dateSelect"; "monthChange": "monthChange"; "modeChange": "modeChange"; "eventClick": "eventClick"; }, never, never, true, never>;
|
|
5848
|
+
}
|
|
5849
|
+
|
|
5850
|
+
type InputNumberSize = 'sm' | 'md' | 'lg';
|
|
5851
|
+
type InputNumberControlsPosition = 'both' | 'right';
|
|
5852
|
+
declare class DsInputNumber implements ControlValueAccessor {
|
|
5853
|
+
min: _angular_core.InputSignal<number>;
|
|
5854
|
+
max: _angular_core.InputSignal<number>;
|
|
5855
|
+
step: _angular_core.InputSignal<number>;
|
|
5856
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
5857
|
+
readonly: _angular_core.InputSignal<boolean>;
|
|
5858
|
+
required: _angular_core.InputSignal<boolean>;
|
|
5859
|
+
size: _angular_core.InputSignal<InputNumberSize>;
|
|
5860
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
5861
|
+
prefix: _angular_core.InputSignal<string | undefined>;
|
|
5862
|
+
suffix: _angular_core.InputSignal<string | undefined>;
|
|
5863
|
+
precision: _angular_core.InputSignal<number>;
|
|
5864
|
+
controls: _angular_core.InputSignal<boolean>;
|
|
5865
|
+
controlsPosition: _angular_core.InputSignal<InputNumberControlsPosition>;
|
|
5866
|
+
ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
5867
|
+
id: _angular_core.InputSignal<string>;
|
|
5868
|
+
name: _angular_core.InputSignal<string | undefined>;
|
|
5869
|
+
valueChange: _angular_core.OutputEmitterRef<number>;
|
|
5870
|
+
inputElement?: ElementRef<HTMLInputElement>;
|
|
5871
|
+
readonly faMinus: IconDefinition$1;
|
|
5872
|
+
readonly faPlus: IconDefinition$1;
|
|
5873
|
+
private readonly disabledState;
|
|
5874
|
+
readonly internalValue: _angular_core.WritableSignal<number | null>;
|
|
5875
|
+
readonly focused: _angular_core.WritableSignal<boolean>;
|
|
5876
|
+
readonly displayValue: _angular_core.WritableSignal<string>;
|
|
5877
|
+
constructor();
|
|
5878
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
5879
|
+
readonly isReadonly: _angular_core.Signal<boolean>;
|
|
5880
|
+
readonly showControls: _angular_core.Signal<boolean>;
|
|
5881
|
+
readonly controlsOnRight: _angular_core.Signal<boolean>;
|
|
5882
|
+
readonly controlsOnBoth: _angular_core.Signal<boolean>;
|
|
5883
|
+
readonly containerClasses: _angular_core.Signal<string>;
|
|
5884
|
+
readonly canDecrement: _angular_core.Signal<boolean>;
|
|
5885
|
+
readonly canIncrement: _angular_core.Signal<boolean>;
|
|
5886
|
+
private onChange;
|
|
5887
|
+
private onTouched;
|
|
5888
|
+
writeValue(value: number | null): void;
|
|
5889
|
+
registerOnChange(fn: (value: number | null) => void): void;
|
|
5890
|
+
registerOnTouched(fn: () => void): void;
|
|
5891
|
+
setDisabledState(isDisabled: boolean): void;
|
|
5892
|
+
private formatValue;
|
|
5893
|
+
private parseValue;
|
|
5894
|
+
private clampValue;
|
|
5895
|
+
private roundToPrecision;
|
|
5896
|
+
private emitValue;
|
|
5897
|
+
onInputChange(event: Event): void;
|
|
5898
|
+
onInputBlur(): void;
|
|
5899
|
+
onInputFocus(): void;
|
|
5900
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
5901
|
+
increment(): void;
|
|
5902
|
+
decrement(): void;
|
|
5903
|
+
private incrementBy;
|
|
5904
|
+
private decrementBy;
|
|
5905
|
+
private setToMin;
|
|
5906
|
+
private setToMax;
|
|
5907
|
+
readonly ariaValueMin: _angular_core.Signal<number>;
|
|
5908
|
+
readonly ariaValueMax: _angular_core.Signal<number>;
|
|
5909
|
+
readonly ariaValueNow: _angular_core.Signal<number | undefined>;
|
|
5910
|
+
readonly ariaValueText: _angular_core.Signal<string | undefined>;
|
|
5911
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsInputNumber, never>;
|
|
5912
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsInputNumber, "ds-input-number", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "precision": { "alias": "precision"; "required": false; "isSignal": true; }; "controls": { "alias": "controls"; "required": false; "isSignal": true; }; "controlsPosition": { "alias": "controlsPosition"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
5913
|
+
}
|
|
5914
|
+
|
|
5915
|
+
/**
|
|
5916
|
+
* Option pour un segment
|
|
5917
|
+
*/
|
|
5918
|
+
interface SegmentOption {
|
|
5919
|
+
value: string;
|
|
5920
|
+
label: string;
|
|
5921
|
+
icon?: string;
|
|
5922
|
+
disabled?: boolean;
|
|
5923
|
+
}
|
|
5924
|
+
/**
|
|
5925
|
+
* Taille du segmented control
|
|
5926
|
+
*/
|
|
5927
|
+
type SegmentedControlSize = 'sm' | 'md' | 'lg';
|
|
5928
|
+
/**
|
|
5929
|
+
* Orientation du segmented control
|
|
5930
|
+
*/
|
|
5931
|
+
type SegmentedControlOrientation = 'horizontal' | 'vertical';
|
|
5932
|
+
/**
|
|
5933
|
+
* Couleur du segment actif
|
|
5934
|
+
*/
|
|
5935
|
+
type SegmentedControlColor = 'primary' | 'neutral';
|
|
5936
|
+
/**
|
|
5937
|
+
* DS Segmented Control
|
|
5938
|
+
*
|
|
5939
|
+
* Composant groupe de boutons mutuellement exclusifs visuellement connectés.
|
|
5940
|
+
* Alternative stylisée aux boutons radio pour basculer entre vues, modes ou options.
|
|
5941
|
+
*
|
|
5942
|
+
* @example
|
|
5943
|
+
* // Formulaire réactif
|
|
5944
|
+
* <ds-segmented-control
|
|
5945
|
+
* formControlName="view"
|
|
5946
|
+
* [options]="viewOptions"
|
|
5947
|
+
* size="md"
|
|
5948
|
+
* fullWidth
|
|
5949
|
+
* />
|
|
5950
|
+
*
|
|
5951
|
+
* @example
|
|
5952
|
+
* // Template-driven
|
|
5953
|
+
* <ds-segmented-control
|
|
5954
|
+
* [(ngModel)]="selectedView"
|
|
5955
|
+
* [options]="[
|
|
5956
|
+
* { value: 'list', label: 'Liste', icon: 'fas-list' },
|
|
5957
|
+
* { value: 'grid', label: 'Grille', icon: 'fas-grid' },
|
|
5958
|
+
* { value: 'map', label: 'Carte', icon: 'fas-map' }
|
|
5959
|
+
* ]"
|
|
5960
|
+
* color="neutral"
|
|
5961
|
+
* />
|
|
5962
|
+
*/
|
|
5963
|
+
declare class DsSegmentedControl implements ControlValueAccessor {
|
|
5964
|
+
/**
|
|
5965
|
+
* Liste des options du segmented control
|
|
5966
|
+
*/
|
|
5967
|
+
options: _angular_core.InputSignal<SegmentOption[]>;
|
|
5968
|
+
/**
|
|
5969
|
+
* Taille du segmented control (sm, md, lg)
|
|
5970
|
+
*/
|
|
5971
|
+
size: _angular_core.InputSignal<SegmentedControlSize>;
|
|
5972
|
+
/**
|
|
5973
|
+
* État désactivé global
|
|
5974
|
+
*/
|
|
5975
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
5976
|
+
/**
|
|
5977
|
+
* Prend toute la largeur du conteneur
|
|
5978
|
+
*/
|
|
5979
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
5980
|
+
/**
|
|
5981
|
+
* Orientation (horizontal, vertical)
|
|
5982
|
+
*/
|
|
5983
|
+
orientation: _angular_core.InputSignal<SegmentedControlOrientation>;
|
|
5984
|
+
/**
|
|
5985
|
+
* Couleur du segment actif (primary, neutral)
|
|
5986
|
+
*/
|
|
5987
|
+
color: _angular_core.InputSignal<SegmentedControlColor>;
|
|
5988
|
+
private readonly disabledState;
|
|
5989
|
+
protected readonly internalValue: _angular_core.WritableSignal<string | null>;
|
|
5990
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
5991
|
+
protected readonly containerClasses: _angular_core.Signal<Record<string, boolean>>;
|
|
5992
|
+
readonly activeIndex: _angular_core.Signal<number>;
|
|
5993
|
+
/**
|
|
5994
|
+
* Vérifie si une option est sélectionnée
|
|
5995
|
+
*/
|
|
5996
|
+
protected isOptionSelected(option: SegmentOption): boolean;
|
|
5997
|
+
/**
|
|
5998
|
+
* Vérifie si une option est désactivée
|
|
5999
|
+
*/
|
|
6000
|
+
protected isOptionDisabled(option: SegmentOption): boolean;
|
|
6001
|
+
/**
|
|
6002
|
+
* Classes CSS pour un segment
|
|
6003
|
+
*/
|
|
6004
|
+
protected getSegmentClasses(option: SegmentOption): Record<string, boolean>;
|
|
6005
|
+
private onChange;
|
|
6006
|
+
private onTouched;
|
|
6007
|
+
writeValue(value: string | null): void;
|
|
6008
|
+
registerOnChange(fn: (value: string | null) => void): void;
|
|
6009
|
+
registerOnTouched(fn: () => void): void;
|
|
6010
|
+
setDisabledState(isDisabled: boolean): void;
|
|
6011
|
+
protected onSegmentClick(option: SegmentOption): void;
|
|
6012
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
6013
|
+
private findNextEnabledOption;
|
|
6014
|
+
private findPreviousEnabledOption;
|
|
6015
|
+
private focusSegment;
|
|
6016
|
+
protected trackByValue(_index: number, option: SegmentOption): string;
|
|
6017
|
+
/**
|
|
6018
|
+
* Parse l'icône depuis le format string vers le format FontAwesome
|
|
6019
|
+
* @param iconName - Nom de l'icône (ex: 'fas-list', 'list', 'fa-solid fa-list')
|
|
6020
|
+
* @returns Tuple [prefix, iconName] pour FontAwesome
|
|
6021
|
+
*/
|
|
6022
|
+
protected parseIcon(iconName: string): [string, string];
|
|
6023
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsSegmentedControl, never>;
|
|
6024
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsSegmentedControl, "ds-segmented-control", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6025
|
+
}
|
|
6026
|
+
|
|
6027
|
+
type ColorPickerSize = 'sm' | 'md' | 'lg';
|
|
6028
|
+
type ColorFormat = 'hex' | 'rgb' | 'hsl';
|
|
6029
|
+
interface RGBColor {
|
|
6030
|
+
r: number;
|
|
6031
|
+
g: number;
|
|
6032
|
+
b: number;
|
|
6033
|
+
a?: number;
|
|
6034
|
+
}
|
|
6035
|
+
interface HSLColor {
|
|
6036
|
+
h: number;
|
|
6037
|
+
s: number;
|
|
6038
|
+
l: number;
|
|
6039
|
+
a?: number;
|
|
6040
|
+
}
|
|
6041
|
+
/**
|
|
6042
|
+
* DsColorPicker - Composant de sélection de couleur
|
|
6043
|
+
*
|
|
6044
|
+
* @description
|
|
6045
|
+
* Sélecteur de couleur avec palette prédéfinie, spectre de couleurs,
|
|
6046
|
+
* support RGB/HSL, alpha channel optionnel, et intégration formulaires.
|
|
6047
|
+
*
|
|
6048
|
+
* @example
|
|
6049
|
+
* ```html
|
|
6050
|
+
* <ds-color-picker
|
|
6051
|
+
* [value]="'#3b82f6'"
|
|
6052
|
+
* [showAlpha]="true"
|
|
6053
|
+
* (colorChange)="onColorChange($event)">
|
|
6054
|
+
* </ds-color-picker>
|
|
6055
|
+
* ```
|
|
6056
|
+
*/
|
|
6057
|
+
declare class DsColorPicker implements ControlValueAccessor {
|
|
6058
|
+
private overlay;
|
|
6059
|
+
private elementRef;
|
|
6060
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
6061
|
+
readonly size: _angular_core.InputSignal<ColorPickerSize>;
|
|
6062
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
6063
|
+
readonly showAlpha: _angular_core.InputSignal<boolean>;
|
|
6064
|
+
readonly presetColors: _angular_core.InputSignal<string[]>;
|
|
6065
|
+
readonly format: _angular_core.InputSignal<ColorFormat>;
|
|
6066
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
6067
|
+
readonly allowClear: _angular_core.InputSignal<boolean>;
|
|
6068
|
+
readonly showRecentColors: _angular_core.InputSignal<boolean>;
|
|
6069
|
+
readonly maxRecentColors: _angular_core.InputSignal<number>;
|
|
6070
|
+
readonly colorChange: _angular_core.OutputEmitterRef<string>;
|
|
6071
|
+
readonly pickerIcon: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
6072
|
+
readonly clearIcon: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
6073
|
+
readonly checkIcon: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
6074
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
6075
|
+
readonly internalValue: _angular_core.WritableSignal<string>;
|
|
6076
|
+
readonly isFocused: _angular_core.WritableSignal<boolean>;
|
|
6077
|
+
readonly recentColors: _angular_core.WritableSignal<string[]>;
|
|
6078
|
+
private overlayRef;
|
|
6079
|
+
readonly containerClasses: _angular_core.Signal<string>;
|
|
6080
|
+
readonly displayValue: _angular_core.Signal<string>;
|
|
6081
|
+
readonly previewColor: _angular_core.Signal<string>;
|
|
6082
|
+
readonly effectivePresets: _angular_core.Signal<string[]>;
|
|
6083
|
+
private onChange;
|
|
6084
|
+
private onTouched;
|
|
6085
|
+
constructor(overlay: Overlay, elementRef: ElementRef);
|
|
6086
|
+
writeValue(value: string): void;
|
|
6087
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
6088
|
+
registerOnTouched(fn: () => void): void;
|
|
6089
|
+
setDisabledState(isDisabled: boolean): void;
|
|
6090
|
+
toggle(): void;
|
|
6091
|
+
open(): void;
|
|
6092
|
+
close(): void;
|
|
6093
|
+
onFocus(): void;
|
|
6094
|
+
onBlur(): void;
|
|
6095
|
+
clear(): void;
|
|
6096
|
+
onColorSelected(color: string): void;
|
|
6097
|
+
private updateValue;
|
|
6098
|
+
private createOverlay;
|
|
6099
|
+
private destroyOverlay;
|
|
6100
|
+
private addToRecentColors;
|
|
6101
|
+
private loadRecentColors;
|
|
6102
|
+
private saveRecentColors;
|
|
6103
|
+
private toHex;
|
|
6104
|
+
private toRGB;
|
|
6105
|
+
private toHSL;
|
|
6106
|
+
private hexToRGB;
|
|
6107
|
+
private parseRGB;
|
|
6108
|
+
private rgbToHSL;
|
|
6109
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsColorPicker, never>;
|
|
6110
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsColorPicker, "ds-color-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showAlpha": { "alias": "showAlpha"; "required": false; "isSignal": true; }; "presetColors": { "alias": "presetColors"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "allowClear": { "alias": "allowClear"; "required": false; "isSignal": true; }; "showRecentColors": { "alias": "showRecentColors"; "required": false; "isSignal": true; }; "maxRecentColors": { "alias": "maxRecentColors"; "required": false; "isSignal": true; }; }, { "colorChange": "colorChange"; }, never, never, true, never>;
|
|
6111
|
+
}
|
|
6112
|
+
|
|
5191
6113
|
/**
|
|
5192
6114
|
* Positions standard pour dropdowns (menus déroulants, select, etc.)
|
|
5193
6115
|
*
|
|
@@ -5556,5 +6478,5 @@ declare class DsI18nService {
|
|
|
5556
6478
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DsI18nService>;
|
|
5557
6479
|
}
|
|
5558
6480
|
|
|
5559
|
-
export { AUTOCOMPLETE_POSITIONS, BUTTON_APPEARANCE_OPTIONS, BUTTON_SIZE_OPTIONS, BUTTON_VARIANT_OPTIONS, DROPDOWN_POSITIONS, DsAccordion, DsAlert, DsAvatar, DsBadge, DsBreadcrumb, DsButton, DsCard, DsCheckbox, DsChip, DsCombobox, DsContainer, DsDatePicker, DsDivider, DsDrawer, DsDropdown, DsEmpty, DsFileUpload, DsI18nService, DsInputField, DsInputTextarea, DsMenu, DsModalComponent, DsPagination, DsPopover, DsPopoverComponent, DsProgressBar, DsRadioGroup, DsRating, DsSearchInput, DsSelect, DsSkeleton, DsSlider, DsStepper, DsTable, DsTabs, DsTimePicker, DsToastComponent, DsToastContainerComponent, DsToastService, DsToggle, DsTooltip, DsTooltipComponent, DsTree, IconRegistryService, POPOVER_POSITIONS, PrimitiveBadge, PrimitiveButton, PrimitiveCheckbox, PrimitiveInput, PrimitiveRadio, PrimitiveTextarea, PrimitiveToggle, TOOLTIP_POSITIONS, buildButtonArgTypes, buildButtonArgs, createSizeRender, createVariantRender };
|
|
5560
|
-
export type { AccordionChangeEvent, AccordionItem, AccordionSize, AccordionVariant, AlertSize, AlertType, AvatarShape, AvatarSize, BadgeAppearance, BadgeShape, BadgeSize, BadgeType, BadgeVariant, BreadcrumbItem, ButtonAppearance, ButtonSize, ButtonType, ButtonVariant, CardSize, CardVariant, CheckboxSize, CheckboxState, ChipColor, ChipSize, ChipVariant, ContainerGutter, ContainerMaxWidth, DatePickerMode, DatePickerSize, DateRange, DividerLabelPosition, DividerOrientation, DividerSize, DividerVariant, DrawerPosition, DrawerSize, DropdownItem, DropdownItemDTO, DsComboboxOption, DsComboboxSize, DsSelectOption, DsSelectSize, DsTableColumn, DsTableSize, DsTableVariant, EmptySize, FileUploadSize, I18nLabels, InputAppearance, InputSize, InputState, InputType, MenuItem, MenuSize, MenuTrigger, PageChangeEvent, PageSizeOption, PaginationSize, PopoverTrigger, ProgressBarMode, ProgressBarSize, ProgressBarVariant, RadioGroupLayout, RadioOption, RadioSize, RatingSize, SearchInputSize, SkeletonSize, SkeletonVariant, SliderOrientation, SliderSize, SliderValue, SortDirection, SortEvent, Step, StepChangeEvent, StepState, StepperOrientation, StepperSize, SupportedLocale, TabItem, TableState, TextareaAppearance, TextareaResize, TextareaSize, TextareaState, TimeFormat, TimePickerSize, TimeValue, ToastInstance, ToastOptions, ToastPosition, ToastType, ToggleSize, TreeNode, TreeNodeCheckEvent, TreeNodeExpandEvent, TreeNodeSelectEvent, TreeSize, UploadFile };
|
|
6481
|
+
export { AUTOCOMPLETE_POSITIONS, BUTTON_APPEARANCE_OPTIONS, BUTTON_SIZE_OPTIONS, BUTTON_VARIANT_OPTIONS, DROPDOWN_POSITIONS, DsAccordion, DsAlert, DsAvatar, DsBadge, DsBreadcrumb, DsButton, DsCalendar, DsCard, DsCarousel, DsCheckbox, DsChip, DsColorPicker, DsCombobox, DsContainer, DsDatePicker, DsDivider, DsDrawer, DsDropdown, DsEmpty, DsFileUpload, DsI18nService, DsInputField, DsInputNumber, DsInputTextarea, DsMenu, DsModalComponent, DsNotificationContainerComponent, DsNotificationItemComponent, DsNotificationService, DsPagination, DsPasswordStrength, DsPopover, DsPopoverComponent, DsProgressBar, DsRadioGroup, DsRating, DsSearchInput, DsSegmentedControl, DsSelect, DsSkeleton, DsSlider, DsStepper, DsTable, DsTabs, DsTimePicker, DsTimeline, DsToastComponent, DsToastContainerComponent, DsToastService, DsToggle, DsTooltip, DsTooltipComponent, DsTransfer, DsTree, IconRegistryService, POPOVER_POSITIONS, PrimitiveBadge, PrimitiveButton, PrimitiveCheckbox, PrimitiveInput, PrimitiveRadio, PrimitiveTextarea, PrimitiveToggle, TOOLTIP_POSITIONS, buildButtonArgTypes, buildButtonArgs, createSizeRender, createVariantRender };
|
|
6482
|
+
export type { AccordionChangeEvent, AccordionItem, AccordionSize, AccordionVariant, AlertSize, AlertType, AvatarShape, AvatarSize, BadgeAppearance, BadgeShape, BadgeSize, BadgeType, BadgeVariant, BreadcrumbItem, ButtonAppearance, ButtonSize, ButtonType, ButtonVariant, CalendarEvent, CalendarMode, CalendarSize, CardSize, CardVariant, CarouselDotsPosition, CarouselEffect, CarouselSlide, CheckboxSize, CheckboxState, ChipColor, ChipSize, ChipVariant, ColorFormat, ColorPickerSize, ContainerGutter, ContainerMaxWidth, DatePickerMode, DatePickerSize, DateRange, DividerLabelPosition, DividerOrientation, DividerSize, DividerVariant, DrawerPosition, DrawerSize, DropdownItem, DropdownItemDTO, DsComboboxOption, DsComboboxSize, DsSelectOption, DsSelectSize, DsTableColumn, DsTableSize, DsTableVariant, EmptySize, FileUploadSize, HSLColor, I18nLabels, InputAppearance, InputNumberControlsPosition, InputNumberSize, InputSize, InputState, InputType, MenuItem, MenuSize, MenuTrigger, NotificationAction, NotificationConfig, NotificationItem, NotificationPlacement, PageChangeEvent, PageSizeOption, PaginationSize, PasswordCriterion, PasswordStrength, PasswordStrengthSize, PopoverTrigger, ProgressBarMode, ProgressBarSize, ProgressBarVariant, RGBColor, RadioGroupLayout, RadioOption, RadioSize, RatingSize, SearchInputSize, SegmentOption, SegmentedControlColor, SegmentedControlOrientation, SegmentedControlSize, SkeletonSize, SkeletonVariant, SliderOrientation, SliderSize, SliderValue, SortDirection, SortEvent, Step, StepChangeEvent, StepState, StepperOrientation, StepperSize, SupportedLocale, TabItem, TableState, TextareaAppearance, TextareaResize, TextareaSize, TextareaState, TimeFormat, TimePickerSize, TimeValue, TimelineColor, TimelineItem, TimelineItemClickEvent, TimelineMode, TimelineSize, ToastInstance, ToastOptions, ToastPosition, ToastType, ToggleSize, TransferChangeEvent, TransferDirection, TransferItem, TransferSize, TreeNode, TreeNodeCheckEvent, TreeNodeExpandEvent, TreeNodeSelectEvent, TreeSize, UploadFile };
|