@dsivd/prestations-ng 19.1.2 → 19.2.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +186 -7
  2. package/CONTRIBUTING.md +43 -3
  3. package/GOOD_PRACTICES.md +329 -124
  4. package/UPGRADING_V18.md +1 -0
  5. package/UPGRADING_V19.md +224 -3
  6. package/dsivd-prestations-ng-19.2.0-beta.10.tgz +0 -0
  7. package/eslint/configs/spec-ts-recommended.mjs +34 -0
  8. package/eslint/configs/template-recommended.mjs +2 -0
  9. package/eslint/configs/template-rules.mjs +6 -2
  10. package/eslint/configs/ts-recommended.mjs +2 -0
  11. package/eslint/configs/ts-rules.mjs +6 -2
  12. package/eslint/index.mjs +17 -0
  13. package/eslint/rules/no-direct-signal-mutation.mjs +1 -1
  14. package/eslint/signal-names.mjs +66 -35
  15. package/fesm2022/dsivd-prestations-ng.mjs +5013 -4196
  16. package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
  17. package/package.json +1 -2
  18. package/schematics/ng-add/index.js +2 -4
  19. package/schematics/ng-update/migrations/update-13_2_0/index.js +7 -2
  20. package/schematics/utility/add-allow-synthetic-default-imports.js +2 -2
  21. package/schematics/utility/add-allowed-common-js-dependencies.js +39 -29
  22. package/schematics/utility/foehn2-bootstrap5-migration.js +20 -20
  23. package/schematics/utility/migrate-to-karma-coverage.js +2 -2
  24. package/schematics/utility/remove-emit-decorator-metadata.js +8 -9
  25. package/src/eslint/__tests__/signal-names.test.mjs +129 -0
  26. package/src/eslint/configs/__tests__/configs.test.mjs +46 -2
  27. package/src/eslint/configs/spec-ts-recommended.mjs +34 -0
  28. package/src/eslint/configs/template-recommended.mjs +2 -0
  29. package/src/eslint/configs/template-rules.mjs +6 -2
  30. package/src/eslint/configs/ts-recommended.mjs +2 -0
  31. package/src/eslint/configs/ts-rules.mjs +6 -2
  32. package/src/eslint/index.mjs +17 -0
  33. package/src/eslint/rules/no-direct-signal-mutation.mjs +1 -1
  34. package/src/eslint/signal-names.mjs +66 -35
  35. package/types/dsivd-prestations-ng.d.ts +1184 -998
  36. package/dsivd-prestations-ng-19.1.2.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnInit, AfterViewInit, Signal, ElementRef, DestroyRef, OnDestroy, OnChanges, SimpleChanges, EnvironmentProviders, SimpleChange, AfterViewChecked, PipeTransform, TemplateRef, TrackByFunction, InjectionToken, ErrorHandler, NgZone } from '@angular/core';
2
+ import { OnInit, AfterViewInit, Signal, ElementRef, DestroyRef, OnDestroy, InjectionToken, OnChanges, SimpleChanges, EnvironmentProviders, Injector, SimpleChange, AfterViewChecked, PipeTransform, TemplateRef, TrackByFunction, ErrorHandler, NgZone } from '@angular/core';
3
3
  import { Params, Route, ActivatedRoute, ActivatedRouteSnapshot, CanActivateFn, Router, QueryParamsHandling } from '@angular/router';
4
4
  import { Observable, Subject, BehaviorSubject } from 'rxjs';
5
5
  import { NgModel, NgForm } from '@angular/forms';
@@ -12,31 +12,31 @@ import { IconDefinition } from '@fortawesome/fontawesome-common-types';
12
12
  import { ImageCroppedEvent } from 'ngx-image-cropper';
13
13
 
14
14
  declare class BreadcrumbItem {
15
- url: string;
16
- routerLink: string;
17
- label: string;
15
+ url: string | null | undefined;
16
+ routerLink: string | null | undefined;
17
+ label: string | null | undefined;
18
18
  skipLeavingAlert?: boolean;
19
19
  routerLinkQueryParams?: Params;
20
20
  urlTarget?: '_blank' | '_self' | '_parent' | '_top';
21
21
  }
22
22
  declare class Breadcrumb {
23
- breadcrumbItems: BreadcrumbItem[];
24
- current: BreadcrumbItem;
23
+ breadcrumbItems: BreadcrumbItem[] | undefined;
24
+ current: BreadcrumbItem | null | undefined;
25
25
  }
26
26
  interface BreadcrumbConfiguration {
27
- prestationCode?: string;
28
- vdChUrl?: string;
29
- descriptionPageBaseUrl?: string;
30
- espaceSecuriseUrl?: string;
31
- allPrestationsUrl?: string;
27
+ prestationCode?: string | null;
28
+ vdChUrl?: string | null;
29
+ descriptionPageBaseUrl?: string | null;
30
+ espaceSecuriseUrl?: string | null;
31
+ allPrestationsUrl?: string | null;
32
32
  }
33
33
 
34
34
  declare class BreadcrumbEventService {
35
35
  private readonly sessionInfo;
36
36
  private readonly applicationInfoService;
37
- private _breadcrumbOverride;
38
- private _breadcrumbConfiguration;
39
- private _currentBreadcrumbItem;
37
+ private readonly _breadcrumbOverride;
38
+ private readonly _breadcrumbConfiguration;
39
+ private readonly _currentBreadcrumbItem;
40
40
  private readonly _breadcrumbObservable;
41
41
  private readonly _neverConnectedBreadcrumbObservable;
42
42
  private _skipLeavingAlertBecauseDemandIsTransmitted;
@@ -48,29 +48,29 @@ declare class BreadcrumbEventService {
48
48
  * `setConfiguration`. Only use if you want to handle the breadcrumb manually.
49
49
  * @param breadcrumb as Breadcrumb
50
50
  */
51
- setBreadcrumb(breadcrumb: Breadcrumb): void;
51
+ setBreadcrumb(breadcrumb: Breadcrumb | null): void;
52
52
  /**
53
53
  * The breadcrumb value.
54
54
  * @returns Observable<Breadcrumb>
55
55
  */
56
- breadcrumbObservable(): Observable<Breadcrumb>;
56
+ breadcrumbObservable(): Observable<Breadcrumb | null>;
57
57
  /**
58
58
  * The breadcrumb value if never connected.
59
59
  * @returns Observable<Breadcrumb>
60
60
  */
61
- neverConnectedBreadcrumbObservable(): Observable<Breadcrumb>;
61
+ neverConnectedBreadcrumbObservable(): Observable<Breadcrumb | null>;
62
62
  /**
63
63
  * Set the current item. Used for accessibility purposes.
64
64
  * @param currentItem as BreadcrumbItem
65
65
  */
66
- setCurrentBreadcrumb(currentItem: BreadcrumbItem): void;
66
+ setCurrentBreadcrumb(currentItem: BreadcrumbItem | null): void;
67
67
  /**
68
68
  * Set the current breadcrumb configuration.
69
69
  *
70
70
  * Set to `null` to disable the breadcrumb.
71
71
  * @param configuration as BreadcrumbConfiguration
72
72
  */
73
- setConfiguration(configuration: BreadcrumbConfiguration): void;
73
+ setConfiguration(configuration: BreadcrumbConfiguration | null): void;
74
74
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbEventService, never>;
75
75
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<BreadcrumbEventService>;
76
76
  }
@@ -117,25 +117,26 @@ declare class ValidationHandlerService {
117
117
 
118
118
  declare const GESDEM_MAX_DATA_LENGTH = 10000;
119
119
  declare abstract class FoehnInputComponent<T> implements OnInit, AfterViewInit {
120
- readonly model: _angular_core.ModelSignal<T>;
121
- readonly pattern: _angular_core.ModelSignal<string>;
122
- readonly helpModal: _angular_core.ModelSignal<HelpModal>;
123
- readonly standardHelpText: _angular_core.ModelSignal<string>;
124
- readonly helpText: _angular_core.ModelSignal<string>;
120
+ #private;
121
+ readonly model: _angular_core.ModelSignal<T | null | undefined>;
122
+ readonly pattern: _angular_core.ModelSignal<string | undefined>;
123
+ readonly helpModal: _angular_core.ModelSignal<HelpModal | undefined>;
124
+ readonly standardHelpText: _angular_core.ModelSignal<string | undefined>;
125
+ readonly helpText: _angular_core.ModelSignal<string | undefined>;
125
126
  readonly disabled: _angular_core.ModelSignal<boolean>;
126
127
  readonly hidden: _angular_core.ModelSignal<boolean>;
127
- readonly id: _angular_core.InputSignal<string>;
128
+ readonly id: _angular_core.InputSignal<string | undefined>;
128
129
  readonly name: _angular_core.InputSignal<string>;
129
130
  readonly overrideGesdemMaxlength: _angular_core.InputSignal<boolean>;
130
- readonly min: _angular_core.InputSignal<number>;
131
- readonly max: _angular_core.InputSignal<number>;
131
+ readonly min: _angular_core.InputSignal<number | undefined>;
132
+ readonly max: _angular_core.InputSignal<number | undefined>;
132
133
  readonly preventPaste: _angular_core.InputSignal<boolean>;
133
134
  /**
134
135
  * The autocapitalize attribute never causes autocapitalization to be enabled for
135
136
  * an <input> element with a type attribute whose value is url, email, or password.
136
137
  * https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/autocapitalize
137
138
  */
138
- readonly autocapitalize: _angular_core.InputSignal<string>;
139
+ readonly autocapitalize: _angular_core.InputSignal<string | undefined>;
139
140
  /**
140
141
  * When set to TRUE: Allows model update to be emitted
141
142
  */
@@ -144,19 +145,19 @@ declare abstract class FoehnInputComponent<T> implements OnInit, AfterViewInit {
144
145
  * When set to TRUE: Shows error even if input is disabled
145
146
  */
146
147
  readonly showErrorWhenDisabled: _angular_core.InputSignal<boolean>;
147
- readonly labelStyleModifier: _angular_core.InputSignal<string>;
148
+ readonly labelStyleModifier: _angular_core.InputSignal<string | undefined>;
148
149
  readonly customErrors: _angular_core.InputSignal<Record<string, string>>;
149
150
  /**
150
151
  * Hide the 'facultatif' extra label.
151
152
  */
152
153
  readonly hideNotRequiredExtraLabel: _angular_core.InputSignal<boolean>;
153
154
  readonly isErrorInherited: _angular_core.InputSignal<boolean>;
154
- readonly maxlength: _angular_core.InputSignal<number>;
155
+ readonly maxlength: _angular_core.InputSignal<number | null | undefined>;
155
156
  /**
156
157
  * The attribute must take one of the following values:
157
158
  * See https://developer.mozilla.org/fr/docs/Web/HTML/Attributes/autocomplete
158
159
  */
159
- readonly autocomplete: _angular_core.InputSignal<string | boolean>;
160
+ readonly autocomplete: _angular_core.InputSignal<string | boolean | undefined>;
160
161
  readonly clearButton: _angular_core.InputSignal<boolean>;
161
162
  /**
162
163
  * Exclude the component from the error summary if the component has an error.
@@ -166,44 +167,44 @@ declare abstract class FoehnInputComponent<T> implements OnInit, AfterViewInit {
166
167
  * When TRUE, adds class 'visually-hidden' (only for screen readers) on tag <label> or <legend>
167
168
  * depending on component extending this class
168
169
  */
169
- readonly isLabelSrOnly: _angular_core.InputSignal<boolean>;
170
+ readonly isLabelSrOnly: _angular_core.InputSignal<boolean | undefined>;
170
171
  readonly required: _angular_core.InputSignal<boolean>;
171
- readonly label: _angular_core.InputSignal<string>;
172
+ readonly label: _angular_core.InputSignal<string | undefined>;
172
173
  readonly inputModelList: Signal<readonly NgModel[]>;
173
- readonly inputElement: Signal<ElementRef<any>>;
174
+ readonly inputElement: Signal<ElementRef<any> | undefined>;
174
175
  readonly subComponents: Signal<readonly FoehnInputComponent<any>[]>;
175
176
  /**
176
177
  * Fired when the user changes a value, after the model is updated.
177
178
  */
178
- readonly userInput: _angular_core.OutputEmitterRef<T>;
179
+ readonly userInput: _angular_core.OutputEmitterRef<T | null>;
179
180
  readonly blurHandler: _angular_core.OutputEmitterRef<FocusEvent>;
180
181
  readonly focusHandler: _angular_core.OutputEmitterRef<FocusEvent>;
181
182
  displayClearButton: Signal<boolean>;
182
- model_: T;
183
- type: string;
183
+ model_: T | null | undefined;
184
+ type: string | undefined;
184
185
  readonly validationHandlerService: ValidationHandlerService;
185
186
  /**
186
187
  * linkedSignal est un WritableSignal dont la valeur par défaut est recalculée si les dépendances changent,
187
188
  * mais qui peut être écrasé manuellement avec .set().
188
189
  */
189
- protected readonly hostId: _angular_core.WritableSignal<string>;
190
+ protected readonly hostId: _angular_core.WritableSignal<string | null>;
190
191
  /**
191
192
  * computed() — valeur dérivée
192
193
  * Quand le résultat est une valeur qui dépend d'autres signals. C'est une transformation pure, synchrone, sans side effect.
193
194
  */
194
- protected readonly hostHidden: Signal<string>;
195
+ protected readonly hostHidden: Signal<"hidden" | null>;
195
196
  protected readonly _destroyRef: DestroyRef;
196
197
  private readonly registerNgModelService;
197
- private _errors;
198
- private userInputSubject;
198
+ private readonly _errors;
199
+ private readonly userInputSubject;
199
200
  private readonly subComponentsEffect;
200
201
  private readonly modelEffect;
201
202
  get errors(): FormError[];
202
203
  ngOnInit(): void;
203
204
  ngAfterViewInit(): void;
204
- onModelChange(value: T): void;
205
- handleChange(value: T): void;
206
- updateNgModel(value: T): void;
205
+ onModelChange(value: T | null | undefined): void;
206
+ handleChange(value: T | null): void;
207
+ updateNgModel(value: T | null): void;
207
208
  hasErrorsToDisplay(): boolean;
208
209
  hasErrors(): boolean;
209
210
  hasInheritErrorFromParent(): boolean;
@@ -214,9 +215,9 @@ declare abstract class FoehnInputComponent<T> implements OnInit, AfterViewInit {
214
215
  getMeAndSubComponents(): FoehnInputComponent<any>[];
215
216
  refreshErrors(results: any[]): void;
216
217
  focus(scrollIntoView?: boolean): void;
217
- getMaxLength(): number;
218
- buildId(suffix?: string): string;
219
- buildChildId(suffix?: string): string;
218
+ getMaxLength(): number | null;
219
+ buildId(suffix?: string): string | null;
220
+ buildChildId(suffix?: string): string | null;
220
221
  buildChildName(suffix?: string): string;
221
222
  onKeydown(_key: KeyboardEvent): void;
222
223
  reset(): void;
@@ -224,22 +225,22 @@ declare abstract class FoehnInputComponent<T> implements OnInit, AfterViewInit {
224
225
  onBlur(e: FocusEvent): void;
225
226
  onFocus(e: FocusEvent): void;
226
227
  onClear(): void;
227
- getDescribedBy(): string;
228
- getAutoComplete(): string;
229
- protected getFirstInputComponentEnabled(subComponents: readonly FoehnInputComponent<any>[]): FoehnInputComponent<any>;
230
- protected findFirstHtmlInputElementEnabled(elementNodeListOf: NodeListOf<Element>): HTMLInputElement;
231
- protected isEmpty(data: any): boolean;
232
- protected isEmptyWhenTrimmedIfString(data: any): boolean;
233
- protected triggerUserInput(value: T): void;
228
+ getDescribedBy(): string | null;
229
+ getAutoComplete(): string | undefined;
230
+ protected getFirstInputComponentEnabled(subComponents: readonly FoehnInputComponent<any>[]): FoehnInputComponent<any> | null;
231
+ protected findFirstHtmlInputElementEnabled(elementNodeListOf: NodeListOf<Element>): HTMLInputElement | null;
232
+ protected isEmpty(data: unknown): boolean;
233
+ protected isEmptyWhenTrimmedIfString(data: unknown): boolean;
234
+ protected triggerUserInput(value: T | null | undefined): void;
234
235
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputComponent<any>, never>;
235
236
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FoehnInputComponent<any>, never, never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "helpModal": { "alias": "helpModal"; "required": false; "isSignal": true; }; "standardHelpText": { "alias": "standardHelpText"; "required": false; "isSignal": true; }; "helpText": { "alias": "helpText"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "overrideGesdemMaxlength": { "alias": "overrideGesdemMaxlength"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "preventPaste": { "alias": "preventPaste"; "required": false; "isSignal": true; }; "autocapitalize": { "alias": "autocapitalize"; "required": false; "isSignal": true; }; "updateModelWhenDisabled": { "alias": "updateModelWhenDisabled"; "required": false; "isSignal": true; }; "showErrorWhenDisabled": { "alias": "showErrorWhenDisabled"; "required": false; "isSignal": true; }; "labelStyleModifier": { "alias": "labelStyleModifier"; "required": false; "isSignal": true; }; "customErrors": { "alias": "customErrors"; "required": false; "isSignal": true; }; "hideNotRequiredExtraLabel": { "alias": "hideNotRequiredExtraLabel"; "required": false; "isSignal": true; }; "isErrorInherited": { "alias": "isErrorInherited"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "clearButton": { "alias": "clearButton"; "required": false; "isSignal": true; }; "excludeFromErrorSummary": { "alias": "excludeFromErrorSummary"; "required": false; "isSignal": true; }; "isLabelSrOnly": { "alias": "isLabelSrOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "pattern": "patternChange"; "helpModal": "helpModalChange"; "standardHelpText": "standardHelpTextChange"; "helpText": "helpTextChange"; "disabled": "disabledChange"; "hidden": "hiddenChange"; "userInput": "userInput"; "blurHandler": "blur"; "focusHandler": "focus"; }, never, never, true, never>;
236
237
  }
237
238
 
238
239
  declare class FoehnFormComponent implements AfterViewInit {
239
240
  readonly shouldDisplayAlertSummary: _angular_core.InputSignal<boolean>;
240
- readonly ngFormComponent: _angular_core.Signal<NgForm>;
241
+ readonly ngFormComponent: _angular_core.Signal<NgForm | undefined>;
241
242
  private readonly childrenInputComponents;
242
- private registeredNgModels;
243
+ private readonly registeredNgModels;
243
244
  private readonly registerNgModelService;
244
245
  private readonly destroyRef;
245
246
  private readonly childrenInputComponentsEffect;
@@ -261,15 +262,15 @@ declare class FoehnFormComponent implements AfterViewInit {
261
262
 
262
263
  declare class GrowlMessage {
263
264
  type: string;
264
- content: string;
265
+ content: string | undefined;
265
266
  isCloseable: boolean;
266
267
  isVisible: boolean;
267
- timeToDisplayInSeconds: number;
268
+ timeToDisplayInSeconds: number | undefined;
268
269
  }
269
270
 
270
271
  declare class GrowlBrokerService {
271
- private _messageAddedSubject;
272
- get messageAddedSubject(): Observable<GrowlMessage>;
272
+ private readonly _messageAddedSubject;
273
+ get messageAddedSubject(): Observable<GrowlMessage | null>;
273
274
  addMessage(message: GrowlMessage): void;
274
275
  addWithType(type: string, content: string): void;
275
276
  addWithTypeAndTimeToDisplayInSeconds(type: string, content: string, timeToDisplayInSeconds: number): void;
@@ -282,46 +283,46 @@ declare enum NavigationDirection {
282
283
  BACKWARD = -1
283
284
  }
284
285
  declare class FoehnNavigationService {
285
- currentRouteOrder: number;
286
+ currentRouteOrder: number | undefined;
286
287
  orderedRoutes: Route[];
287
- private router;
288
- private gesdemService;
289
- private gesdemActionRecoveryService;
290
- private route;
291
- private location;
292
- private demandeTransmitInterceptor;
293
- private eventsLoggerService;
294
- private injector;
288
+ private readonly router;
289
+ private readonly gesdemService;
290
+ private readonly gesdemActionRecoveryService;
291
+ private readonly route;
292
+ private readonly location;
293
+ private readonly demandeTransmitInterceptor;
294
+ private readonly eventsLoggerService;
295
+ private readonly injector;
295
296
  private _activatedRoute;
296
297
  private isInit;
297
- private initializedAndRouteActivated;
298
+ private readonly initializedAndRouteActivated;
298
299
  private linearRouting;
299
300
  get initialized(): boolean;
300
301
  set activatedRoute(value: ActivatedRoute);
301
- static getRootRouteRecursive(route: ActivatedRouteSnapshot): Route;
302
- initRoute(route: Route): void;
302
+ static getRootRouteRecursive(route: ActivatedRouteSnapshot | null): Route | null;
303
+ initRoute(route: Route | null): void;
303
304
  throwIfNotInit(): void;
304
305
  updateRouteInformations(): void;
305
306
  getFirstRoute(): Route;
306
307
  current(): Promise<boolean>;
307
308
  hasBeenInitialized(): Observable<boolean>;
308
309
  getQueryParamsToForwardAsString(): string;
309
- getQueryParamsToForward(): Params;
310
+ getQueryParamsToForward(): Params | null;
310
311
  next(): Promise<boolean>;
311
312
  previous(): Promise<boolean>;
312
313
  last(): Promise<boolean>;
313
314
  recap(): Promise<boolean>;
314
- redirect(newPath: string): Promise<boolean>;
315
+ redirect(newPath: string | null | undefined): Promise<boolean>;
315
316
  getAvailableRoutes(): Route[];
316
- getCurrentRouteIndex(): number;
317
+ getCurrentRouteIndex(): number | null;
317
318
  getTotalRoutesSize(): number;
318
- getLastRouteOrder(): number;
319
- getNextAvailableRoute(direction: NavigationDirection): Route;
319
+ getLastRouteOrder(): number | null;
320
+ getNextAvailableRoute(direction: NavigationDirection): Route | null;
320
321
  isFirstFormPage(): boolean;
321
322
  isForcedOnRecapForPendingPayment(): boolean;
322
323
  isLastFormPage(): boolean;
323
- getNextRouteIndex(): number;
324
- getPreviousRouteIndex(): number;
324
+ getNextRouteIndex(): number | null;
325
+ getPreviousRouteIndex(): number | null;
325
326
  isLinearRouting(): boolean;
326
327
  private getCurrentRoute;
327
328
  private redirectToAvailableRoute;
@@ -339,44 +340,44 @@ declare class FoehnNavigationService {
339
340
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FoehnNavigationService>;
340
341
  }
341
342
 
342
- declare class RepriseInfo {
343
- mobile: string;
344
- email: string;
343
+ declare class InfoReprise {
344
+ mobile: string | undefined | null;
345
+ email: string | undefined | null;
345
346
  referenceInterne?: string;
346
347
  lastUpdate?: number[];
347
348
  }
348
349
 
349
350
  declare class I18nForm {
350
351
  language: string;
351
- acceptDecisionElectronique: boolean;
352
- referenceInterne: string;
352
+ acceptDecisionElectronique: boolean | undefined | null;
353
+ referenceInterne: string | undefined | null;
353
354
  }
354
355
 
355
356
  declare class FormMetadata {
356
- reference: string;
357
- currentAction: number;
358
- referenceInterne: string;
359
- critical: boolean;
360
- initialisationDateTime: string;
361
- transfertDateTime: string;
362
- modificationDateTime: string;
363
- draftDemandeDeletionDate: number[];
364
- draftDemRetentionDays: number;
365
- statut: string;
366
- infoReprise: RepriseInfo;
357
+ reference: string | undefined | null;
358
+ currentAction: number | undefined | null;
359
+ referenceInterne: string | undefined | null;
360
+ critical: boolean | undefined;
361
+ initialisationDateTime: string | undefined | null;
362
+ transfertDateTime: string | undefined | null;
363
+ modificationDateTime: string | undefined | null;
364
+ draftDemandeDeletionDate: number[] | undefined;
365
+ draftDemRetentionDays: number | undefined;
366
+ statut: string | undefined | null;
367
+ infoReprise: InfoReprise | undefined;
367
368
  }
368
369
  declare class FormPostResponse<T extends I18nForm> {
369
- form: T;
370
+ form: T | undefined | null;
370
371
  errors: FormError[];
371
372
  meta: FormMetadata;
372
373
  }
373
374
 
374
375
  declare class FoehnPageService {
375
- private _foehnPageSubject;
376
- private _saveFormRequestSubject;
377
- private _currentEtapeId;
376
+ private readonly _foehnPageSubject;
377
+ private readonly _saveFormRequestSubject;
378
+ private readonly _currentEtapeId;
378
379
  private readonly _appVersionMismatch;
379
- private currentEtapeIdObs;
380
+ private readonly currentEtapeIdObs;
380
381
  constructor();
381
382
  foehnPageObservable(): Observable<string>;
382
383
  setAppVersionMismatch(): void;
@@ -385,22 +386,22 @@ declare class FoehnPageService {
385
386
  requestFormSave(displaySuccessMessage?: boolean): void;
386
387
  saveFormRequest(): Observable<boolean>;
387
388
  setCurrentEtapeId(etapeId: string): void;
388
- onEtapeIdChange(): Observable<string>;
389
- isUserCategoryVisible(isFirstPage: boolean, isLastPage: boolean, isUserCategoryEnabled: boolean, isInitialStep: boolean, isUserNeverConnected: boolean, backendResponse: FormPostResponse<any>, isCurrentRouteDefined: boolean): boolean;
389
+ onEtapeIdChange(): Observable<string | null>;
390
+ isUserCategoryVisible(isFirstPage: boolean, isLastPage: boolean, isUserCategoryEnabled: boolean, isInitialStep: boolean | null, isUserNeverConnected: boolean, backendResponse: FormPostResponse<I18nForm> | undefined, isCurrentRouteDefined: boolean): boolean;
390
391
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnPageService, never>;
391
392
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FoehnPageService>;
392
393
  }
393
394
 
394
395
  declare class GesdemEventService {
395
- private _formInitializationSubject;
396
- private _formTransmittedSubject;
397
- private _formSentSubject;
398
- get formInitializationSubject(): Subject<any>;
399
- get formTransmittedSubject(): Subject<FormPostResponse<any>>;
400
- get formSentSubject(): Subject<FormPostResponse<any>>;
401
- formInitializationObservable(): Observable<any>;
402
- formTransmittedObservable(): Observable<FormPostResponse<any>>;
403
- formSentObservable(): Observable<FormPostResponse<any>>;
396
+ private readonly _formInitializationSubject;
397
+ private readonly _formTransmittedSubject;
398
+ private readonly _formSentSubject;
399
+ get formInitializationSubject(): Subject<I18nForm>;
400
+ get formTransmittedSubject(): Subject<FormPostResponse<I18nForm>>;
401
+ get formSentSubject(): Subject<FormPostResponse<I18nForm>>;
402
+ formInitializationObservable(): Observable<I18nForm>;
403
+ formTransmittedObservable(): Observable<FormPostResponse<I18nForm>>;
404
+ formSentObservable(): Observable<FormPostResponse<I18nForm>>;
404
405
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GesdemEventService, never>;
405
406
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<GesdemEventService>;
406
407
  }
@@ -419,27 +420,27 @@ declare class GesdemStatutUtils {
419
420
  }
420
421
 
421
422
  declare class GesdemHandlerService {
422
- _prefix: string;
423
- private http;
424
- private growlService;
425
- private validationHandlerService;
426
- private route;
427
- private errorHandlerService;
428
- private sessionInfo;
429
- private dictionaryService;
430
- private dateHelper;
431
- private _updateFormDataSubject;
432
- private _lastResponse;
423
+ _prefix: string | undefined;
424
+ private readonly http;
425
+ private readonly growlService;
426
+ private readonly validationHandlerService;
427
+ private readonly route;
428
+ private readonly errorHandlerService;
429
+ private readonly sessionInfo;
430
+ private readonly dictionaryService;
431
+ private readonly dateHelper;
432
+ private readonly _updateFormDataSubject;
433
+ private readonly _lastResponse;
433
434
  private _captchaToken;
434
- get lastResponse(): FormPostResponse<any>;
435
- get updateFormDataSubject(): Observable<any>;
436
- get prefix(): string;
437
- set prefix(prefix: string);
435
+ get lastResponse(): FormPostResponse<I18nForm>;
436
+ get updateFormDataSubject(): Observable<I18nForm | undefined | null>;
437
+ get prefix(): string | undefined;
438
+ set prefix(prefix: string | undefined);
438
439
  isPendingPayment(): boolean;
439
- save(form: any, canCreateDemande?: boolean, displaySuccessMessage?: boolean): Observable<any>;
440
- pdf(form: any): Observable<any>;
441
- setCaptchaToken(token: string): void;
442
- getCaptchaToken(): string;
440
+ save(form: I18nForm, canCreateDemande?: boolean, displaySuccessMessage?: boolean): Observable<boolean>;
441
+ pdf(form: I18nForm): Observable<boolean>;
442
+ setCaptchaToken(token: string | null): void;
443
+ getCaptchaToken(): string | null;
443
444
  /**
444
445
  *
445
446
  * @param reference de la demande
@@ -448,11 +449,11 @@ declare class GesdemHandlerService {
448
449
  * @param byPassEmitResponse boolean used to emit or not gesdem last response (default is false)
449
450
  * @returns Observable
450
451
  */
451
- require(reference?: string, reCaptchaByPassUUID?: string, forceRefreshIfNew?: boolean, byPassEmitResponse?: boolean): Observable<any>;
452
- transmit(): Observable<any>;
453
- retrieve(reference: any, reCaptchaByPassUUID: string, shouldDispatchErrors?: boolean): Observable<any>;
454
- retrieveActionStatut(reference: any): Observable<ActionStatut>;
455
- validate(form: any): Observable<any>;
452
+ require(reference?: string, reCaptchaByPassUUID?: string, forceRefreshIfNew?: boolean, byPassEmitResponse?: boolean): Observable<boolean>;
453
+ transmit(): Observable<boolean>;
454
+ retrieve(reference: string | null | undefined, reCaptchaByPassUUID?: string | null, shouldDispatchErrors?: boolean): Observable<boolean>;
455
+ retrieveActionStatut(reference: string | null | undefined): Observable<ActionStatut>;
456
+ validate(form: I18nForm): Observable<boolean>;
456
457
  private postToUrl;
457
458
  private emitResponse;
458
459
  private handleGesdemError;
@@ -460,7 +461,7 @@ declare class GesdemHandlerService {
460
461
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<GesdemHandlerService>;
461
462
  }
462
463
 
463
- type PlaceholderType = Record<string, string>;
464
+ type PlaceholderType = Record<string, string | null | undefined>;
464
465
  type DictionaryType = Record<string, string>;
465
466
  interface Language {
466
467
  code: string;
@@ -478,7 +479,7 @@ declare class SdkDictionaryService {
478
479
  private readonly httpClient;
479
480
  private readonly growlService;
480
481
  private readonly validationService;
481
- private dictionary;
482
+ private readonly dictionary;
482
483
  private defaultLanguageCode;
483
484
  private readonly dictionaryObservable;
484
485
  private readonly availableLanguagesObservable;
@@ -488,8 +489,8 @@ declare class SdkDictionaryService {
488
489
  getAvailableLanguages(): Observable<Language[]>;
489
490
  getKey(key: string, placeholders?: PlaceholderType): Observable<string>;
490
491
  getKeySync(key: string, placeholders?: PlaceholderType): string;
491
- getPluralMarkerSync(count: number): string;
492
- changeLanguage(code: string): void;
492
+ getPluralMarkerSync(count: number | null | undefined): string;
493
+ changeLanguage(code: string | undefined): void;
493
494
  getCurrentLanguageCode(): Observable<string>;
494
495
  setDefaultLanguageCode(code: string): void;
495
496
  private getNavigatorLanguageCodeOrDefault;
@@ -511,17 +512,17 @@ declare enum SdkEventType {
511
512
  }
512
513
 
513
514
  declare class SdkEvent {
514
- timestamp: Date;
515
- reference: string;
516
- sessionInfoContext?: string;
517
- type: SdkEventType | string;
518
- detail?: string;
515
+ timestamp: Date | undefined;
516
+ reference: string | undefined | null;
517
+ sessionInfoContext?: string | null;
518
+ type: SdkEventType | string | undefined;
519
+ detail?: string | null;
519
520
  }
520
521
 
521
522
  declare class SdkEventsLoggerService {
522
- private activatedRoute;
523
- private gesdemService;
524
- private sessionInfo;
523
+ private readonly activatedRoute;
524
+ private readonly gesdemService;
525
+ private readonly sessionInfo;
525
526
  private _events;
526
527
  get events(): Observable<SdkEvent>;
527
528
  addEvent(type: SdkEventType | string, detail?: string): void;
@@ -530,9 +531,10 @@ declare class SdkEventsLoggerService {
530
531
  }
531
532
 
532
533
  declare abstract class AbstractPageComponent<T extends I18nForm> implements OnInit, AfterViewInit {
533
- readonly foehnFormComponent: _angular_core.Signal<FoehnFormComponent>;
534
- form: T;
535
- reference: string;
534
+ #private;
535
+ readonly foehnFormComponent: _angular_core.Signal<FoehnFormComponent | undefined>;
536
+ form: T | undefined | null;
537
+ reference: string | null | undefined;
536
538
  protected _destroyRef: DestroyRef;
537
539
  protected _gesdemService: GesdemHandlerService;
538
540
  protected _gesdemEventService: GesdemEventService;
@@ -544,8 +546,8 @@ declare abstract class AbstractPageComponent<T extends I18nForm> implements OnIn
544
546
  protected _foehnPageService: FoehnPageService;
545
547
  protected _dictionaryService: SdkDictionaryService;
546
548
  protected _eventsLoggerService: SdkEventsLoggerService;
547
- private _pendingUploadService;
548
- private _transmitConcurrentSafe;
549
+ private readonly _pendingUploadService;
550
+ private readonly _transmitConcurrentSafe;
549
551
  private _gesdemSaveSubscription;
550
552
  private readonly _registerNgModelService;
551
553
  private readonly _pageTitle;
@@ -569,9 +571,9 @@ declare abstract class AbstractPageComponent<T extends I18nForm> implements OnIn
569
571
  declare class FoehnNotfoundComponent implements OnInit, OnDestroy {
570
572
  readonly shouldRedirect: _angular_core.InputSignal<boolean>;
571
573
  readonly setPageTitle: _angular_core.InputSignal<boolean>;
572
- seconds: number;
573
- private router;
574
- private foehnPageService;
574
+ readonly seconds: _angular_core.WritableSignal<number>;
575
+ private readonly router;
576
+ private readonly foehnPageService;
575
577
  private intervalId;
576
578
  ngOnInit(): void;
577
579
  ngOnDestroy(): void;
@@ -584,29 +586,30 @@ declare class FoehnNotfoundComponent implements OnInit, OnDestroy {
584
586
  declare const gesdemLoaderGuard: CanActivateFn;
585
587
 
586
588
  declare class ApplicationInfo {
587
- version: string;
588
- buildtime: string;
589
- contextPath: string;
590
- environment: string;
591
- environmentLabel: string;
592
- appProperties: Record<string, string>;
593
- etapeInfos: Record<string, EtapeInfo>;
589
+ version: string | undefined | null;
590
+ buildtime: string | undefined | null;
591
+ contextPath: string | undefined | null;
592
+ environment: string | undefined | null;
593
+ environmentLabel: string | undefined | null;
594
+ appProperties: Record<string, string> | undefined | null;
595
+ etapeInfos: Record<string, EtapeInfo> | undefined;
594
596
  configuration: Configuration;
595
- mockedServices: string[];
597
+ mockedServices: string[] | undefined;
598
+ dependencies: Record<string, string> | undefined;
596
599
  }
597
600
  declare class EtapeInfo {
598
- titreEtape: string;
599
- idMetierEtape: string;
601
+ titreEtape: string | undefined | null;
602
+ idMetierEtape: string | undefined | null;
600
603
  reprisePossible: boolean;
601
- titrePrestation: string;
602
- idMetierPrestation: string;
603
- publicCible: string[];
604
+ titrePrestation: string | undefined | null;
605
+ idMetierPrestation: string | undefined | null;
606
+ publicCible: string[] | undefined | null;
604
607
  decisionElectroniqueAvailable: boolean;
605
608
  deployeeCyber: boolean;
606
- lienAcces: string;
607
- draftDemRetentionDaysPublic: number;
608
- draftDemRetentionDaysConnected: number;
609
- userFeedbackRequested?: boolean;
609
+ lienAcces: string | undefined | null;
610
+ draftDemRetentionDaysPublic: number | undefined | null;
611
+ draftDemRetentionDaysConnected: number | undefined | null;
612
+ userFeedbackRequested: boolean;
610
613
  alertePerteDonnees: boolean;
611
614
  }
612
615
  declare class Configuration {
@@ -616,21 +619,21 @@ declare class Configuration {
616
619
  session?: Session;
617
620
  }
618
621
  declare class Session {
619
- sessionTokenMessageDelayInMinutes: number;
620
- iamMessageDelayInMinutes: number;
622
+ sessionTokenMessageDelayInMinutes: number | undefined | null;
623
+ iamMessageDelayInMinutes: number | undefined | null;
621
624
  }
622
625
  declare class Document {
623
- fileMaxSizeInBytesByFormKey: Record<string, number>;
624
- maxFileNameLength: string;
625
- fileExtensions: string;
626
- illegalCharacters: string;
626
+ fileMaxSizeInBytesByFormKey: Record<string, number> | undefined;
627
+ maxFileNameLength: string | undefined | null;
628
+ fileExtensions: string | undefined | null;
629
+ illegalCharacters: string | undefined | null;
627
630
  }
628
631
  declare class Captcha {
629
- publickey?: string;
630
- captchaUrlToken?: string;
632
+ publickey: string | undefined | null;
633
+ captchaUrlToken: string | undefined | null;
631
634
  }
632
635
  declare class Portail {
633
- baseVdChUrl?: string;
636
+ baseVdChUrl: string | undefined | null;
634
637
  cyberLoginUrl?: string;
635
638
  supportFormUrl?: string;
636
639
  espaceSecuriseUrl?: string;
@@ -645,18 +648,18 @@ declare const PORTAIL_BASE_URL_PROD = "https://prestations.vd.ch/";
645
648
  declare const FORM_SUPPORT_CYBER_TITLE_FALLBACK = "Demander de l'aide pour l'utilisation du portail s\u00E9curis\u00E9";
646
649
  declare class ApplicationInfoService {
647
650
  private readonly http;
648
- private foehnPageService;
651
+ private readonly foehnPageService;
649
652
  private applicationInfo;
650
- private pulling_;
651
- private data_;
652
- private firstEtapeInfo_;
653
- private currentEtapeInfo_;
653
+ private readonly pulling_;
654
+ private readonly data_;
655
+ private readonly firstEtapeInfo_;
656
+ private readonly currentEtapeInfo_;
654
657
  constructor();
655
658
  get data(): Observable<ApplicationInfo>;
656
659
  get firstEtapeInfo(): Observable<EtapeInfo>;
657
- get currentEtapeInfo(): Observable<EtapeInfo>;
660
+ get currentEtapeInfo(): Observable<EtapeInfo | null>;
658
661
  getSafeCyberLoginUrl(): Observable<string>;
659
- getSafeSupportFormUrl(reference?: string, errors?: FormError[]): Observable<string>;
662
+ getSafeSupportFormUrl(reference?: string | null | undefined, errors?: FormError[]): Observable<string>;
660
663
  getSafeSupportFormTitle(): Observable<string>;
661
664
  getSafeEspacesSecuriseUrl(): Observable<string>;
662
665
  private setApplicationInfo;
@@ -666,69 +669,70 @@ declare class ApplicationInfoService {
666
669
  }
667
670
 
668
671
  declare class Street {
669
- estrid?: string;
670
- longName: string;
672
+ estrid?: string | null;
673
+ longName: string | undefined | null;
671
674
  }
672
675
  declare class Locality {
673
- postalLocalityHistoryId?: string;
674
- zipCode?: string;
675
- longName?: string;
676
- zipCodeId?: string;
676
+ postalLocalityHistoryId?: string | null;
677
+ zipCode?: string | null;
678
+ longName?: string | null;
679
+ zipCodeId?: string | null;
677
680
  municipalityId?: number;
678
681
  cantonCode?: string;
679
682
  }
680
683
  declare class Country {
681
- iso2Id: string;
682
- shortNameFr: string;
684
+ iso2Id: string | undefined | null;
685
+ shortNameFr: string | undefined | null;
683
686
  }
684
687
  declare class Address {
685
- addressLine1?: string;
686
- addressLine2?: string;
687
- postOfficeBoxText?: string;
688
- postOfficeBoxNumber?: string;
689
- street?: Street;
690
- houseNumber?: string;
691
- dwellingNumber?: string;
692
- locality?: Locality;
693
- country?: Country;
688
+ addressLine1?: string | null;
689
+ addressLine2?: string | null;
690
+ postOfficeBoxText?: string | null;
691
+ postOfficeBoxNumber?: string | null;
692
+ street?: Street | null;
693
+ houseNumber?: string | null;
694
+ dwellingNumber?: string | null;
695
+ locality?: Locality | null;
696
+ country?: Country | null;
694
697
  }
695
698
 
696
699
  declare class SessionInfoData {
697
- lastLogin: number[];
698
- context: string;
699
- iup: string;
700
- gender: string;
701
- firstName: string;
702
- fullFirstNames: string;
703
- lastName: string;
704
- birthDate: string;
705
- birthDateAsLocalDate: number[];
706
- espaceId: string;
707
- espaceLabel: string;
708
- businessId: string;
709
- categories: string[];
710
- type: string;
711
- prestationsRoles: string[];
712
- preferences: Preferences;
713
- sessionTimeout: number;
700
+ lastLogin: number[] | undefined | null;
701
+ context: string | undefined | null;
702
+ iup: string | undefined | null;
703
+ gender: string | undefined | null;
704
+ firstName: string | undefined | null;
705
+ fullFirstNames: string | undefined | null;
706
+ lastName: string | undefined | null;
707
+ birthDate: string | undefined | null;
708
+ birthDateAsLocalDate: number[] | undefined | null;
709
+ espaceId: string | undefined | null;
710
+ espaceLabel: string | undefined | null;
711
+ businessId: string | undefined | null;
712
+ categories: string[] | undefined | null;
713
+ type: string | undefined | null;
714
+ prestationsRoles: string[] | undefined | null;
715
+ preferences: Preferences | undefined | null;
716
+ sessionTimeout: number | undefined | null;
714
717
  ofs?: number;
715
718
  nogaCode?: string;
716
719
  }
717
720
  declare class Preferences {
718
- email: string;
719
- phone: string;
720
- adresseCourrier: Address;
721
- adresseFacturation: Address;
722
- adresseLivraison: Address;
721
+ email: string | undefined | null;
722
+ phone: string | undefined | null;
723
+ adresseCourrier: Address | undefined | null;
724
+ adresseFacturation: Address | undefined | null;
725
+ adresseLivraison: Address | undefined | null;
723
726
  }
724
727
 
725
728
  declare const SESSION_INFO_API_URL = "api/sessionInfo/data";
729
+ declare const NEVER_CONNECTED: InjectionToken<boolean>;
726
730
  declare class SessionInfo {
727
- private http;
731
+ private readonly http;
728
732
  private neverConnected_;
729
733
  private sessionData;
730
734
  private pulling_;
731
- get data(): Observable<SessionInfoData>;
735
+ get data(): Observable<SessionInfoData | null>;
732
736
  get neverConnected(): boolean;
733
737
  set neverConnected(neverConnected: boolean);
734
738
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SessionInfo, never>;
@@ -736,7 +740,7 @@ declare class SessionInfo {
736
740
  }
737
741
 
738
742
  declare class GesdemConfirmationComponent implements OnInit, OnChanges {
739
- readonly reference: _angular_core.ModelSignal<string>;
743
+ readonly reference: _angular_core.ModelSignal<string | undefined>;
740
744
  readonly hasEmailSent: _angular_core.ModelSignal<boolean>;
741
745
  readonly showDownloadPdfRecapButton: _angular_core.ModelSignal<boolean>;
742
746
  readonly showLinkToMyDemandes: _angular_core.ModelSignal<boolean>;
@@ -744,22 +748,22 @@ declare class GesdemConfirmationComponent implements OnInit, OnChanges {
744
748
  readonly actionStatut: _angular_core.ModelSignal<ActionStatut>;
745
749
  readonly connectedConfirmationMessage: _angular_core.ModelSignal<string>;
746
750
  readonly connectedConfirmationMessageIfAbandoned: _angular_core.ModelSignal<string>;
747
- readonly downloadPdfRecapButtonText: _angular_core.ModelSignal<string>;
748
- readonly closeButtonText: _angular_core.ModelSignal<string>;
749
- readonly closeButtonConnectedText: _angular_core.ModelSignal<string>;
751
+ readonly downloadPdfRecapButtonText: _angular_core.ModelSignal<string | undefined>;
752
+ readonly closeButtonText: _angular_core.ModelSignal<string | undefined>;
753
+ readonly closeButtonConnectedText: _angular_core.ModelSignal<string | undefined>;
750
754
  readonly baseUrlPdf: _angular_core.ModelSignal<string>;
751
755
  readonly hideReference: _angular_core.ModelSignal<boolean>;
752
756
  readonly hideFeedbackNotificationOverride: _angular_core.ModelSignal<boolean>;
753
757
  readonly successLabelDicoKeyFirstStep: _angular_core.ModelSignal<string>;
754
758
  readonly successLabelDicoAdditionalSteps: _angular_core.ModelSignal<string>;
755
- readonly closeHref: _angular_core.InputSignal<string>;
756
- readonly closeHrefConnected: _angular_core.InputSignal<string>;
759
+ readonly closeHref: _angular_core.InputSignal<string | undefined>;
760
+ readonly closeHrefConnected: _angular_core.InputSignal<string | undefined>;
757
761
  readonly setPageTitle: _angular_core.InputSignal<boolean>;
758
- isConnectedCyber: Observable<boolean>;
762
+ isConnectedCyber: Observable<boolean> | undefined;
759
763
  firstPageLink: string;
760
- urlPdf: string;
761
- closeLinkNotConnected: BehaviorSubject<string>;
762
- closeLinkConnected: BehaviorSubject<string>;
764
+ urlPdf: string | undefined;
765
+ closeLinkNotConnected: BehaviorSubject<string | null>;
766
+ closeLinkConnected: BehaviorSubject<string | null>;
763
767
  protected _breadcrumbEventService: BreadcrumbEventService;
764
768
  protected _foehnPageService: FoehnPageService;
765
769
  protected _sessionInfo: SessionInfo;
@@ -791,20 +795,20 @@ declare class GesdemConfirmationComponent implements OnInit, OnChanges {
791
795
  declare class GesdemErrorComponent implements OnInit {
792
796
  readonly setPageTitle: _angular_core.InputSignal<boolean>;
793
797
  link: string;
794
- reference: string;
798
+ reference: string | null | undefined;
795
799
  supportLink: Observable<string>;
796
800
  hasSessionExpired: boolean;
797
801
  demandeShouldExist: boolean;
798
802
  wrongEtapeRequested: boolean;
799
803
  demandeNotFound: boolean;
800
804
  isPendingPayment: Observable<boolean>;
801
- private activatedRoute;
802
- private navigation;
803
- private gesdemService;
804
- private dictionaryService;
805
- private foehnPageService;
806
- private supportAlertService;
807
- private applicationInfoService;
805
+ private readonly activatedRoute;
806
+ private readonly navigation;
807
+ private readonly gesdemService;
808
+ private readonly dictionaryService;
809
+ private readonly foehnPageService;
810
+ private readonly supportAlertService;
811
+ private readonly applicationInfoService;
808
812
  constructor();
809
813
  ngOnInit(): void;
810
814
  private getFirstPage;
@@ -814,7 +818,8 @@ declare class GesdemErrorComponent implements OnInit {
814
818
  }
815
819
 
816
820
  /**
817
- * Provides the core PrestationsNg configuration (HTTP interceptors, error handler, FontAwesome config).
821
+ * Provides the core PrestationsNg configuration (HTTP interceptors, error handler and global error
822
+ * listeners, FontAwesome config).
818
823
  * Replaces the old PrestationsNgCoreModule.
819
824
  *
820
825
  * Usage in bootstrapApplication:
@@ -827,23 +832,23 @@ declare class GesdemErrorComponent implements OnInit {
827
832
  declare function providePrestationsNgCore(): EnvironmentProviders;
828
833
 
829
834
  declare class SessionInfoWithApplicationService {
830
- private sessionInfo;
831
- private gesdemEventService;
832
- private gesdemService;
835
+ private readonly sessionInfo;
836
+ private readonly gesdemEventService;
837
+ private readonly gesdemService;
833
838
  private sessionInfoWithNoReference;
834
839
  private referenceObservable;
835
840
  constructor();
836
841
  get isUserConnected(): Observable<boolean>;
837
842
  get isReady(): Observable<boolean>;
838
843
  initSessionInfo(): void;
839
- prefillForm(mappingFunction?: (info: SessionInfoData) => void): Observable<SessionInfoData>;
844
+ prefillForm(mappingFunction?: ((info: SessionInfoData | null) => void) | undefined): Observable<SessionInfoData | null>;
840
845
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SessionInfoWithApplicationService, never>;
841
846
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SessionInfoWithApplicationService>;
842
847
  }
843
848
 
844
849
  declare class FoehnConfirmModalContent {
845
850
  title?: string;
846
- htmlContent: string;
851
+ htmlContent: string | undefined;
847
852
  okButtonLabel?: string;
848
853
  showOkButton?: boolean;
849
854
  cancelButtonLabel?: string;
@@ -854,13 +859,13 @@ declare class FoehnConfirmModalContent {
854
859
  }
855
860
 
856
861
  declare class FooterLink {
857
- url: string;
858
- label: string;
862
+ url: string | undefined;
863
+ label: string | undefined;
859
864
  }
860
865
 
861
866
  declare class FoehnPageComponent implements OnChanges, OnInit {
862
867
  readonly supportAlertEnabled: _angular_core.InputSignal<boolean>;
863
- readonly supportAlertUrl: _angular_core.InputSignal<string>;
868
+ readonly supportAlertUrl: _angular_core.InputSignal<string | undefined>;
864
869
  /**
865
870
  * If set to 'false', hide the default Contact link in the footer.
866
871
  */
@@ -877,49 +882,49 @@ declare class FoehnPageComponent implements OnChanges, OnInit {
877
882
  * If set to 'false', hide the default Security Best Practice link.
878
883
  */
879
884
  readonly showDefaultSecurityBestPracticeLink: _angular_core.InputSignal<boolean>;
880
- readonly appTitle: _angular_core.InputSignal<string>;
881
- readonly footerLinks: _angular_core.InputSignal<FooterLink[]>;
885
+ readonly appTitle: _angular_core.InputSignal<string | null | undefined>;
886
+ readonly footerLinks: _angular_core.InputSignal<FooterLink[] | undefined>;
882
887
  readonly draftsEnabled: _angular_core.InputSignal<boolean>;
883
- readonly draftsUrl: _angular_core.InputSignal<string>;
884
- readonly etapeId: _angular_core.InputSignal<string>;
888
+ readonly draftsUrl: _angular_core.InputSignal<string | undefined>;
889
+ readonly etapeId: _angular_core.InputSignal<string | null | undefined>;
885
890
  readonly userConnectedAsDisplayed: _angular_core.InputSignal<boolean>;
886
- readonly statusProgressBarHidden: _angular_core.InputSignal<boolean>;
891
+ readonly statusProgressBarHidden: _angular_core.InputSignal<boolean | undefined>;
887
892
  /**
888
893
  * Alert message displayed when navigating internally (Angular router) to another page while having unsaved data.
889
894
  */
890
895
  readonly confirmLeavingAlert: _angular_core.InputSignal<FoehnConfirmModalContent>;
891
896
  readonly showAppVersionMismatchAlert: _angular_core.InputSignal<boolean>;
892
- readonly routerLinkAppTitle: _angular_core.InputSignal<string>;
897
+ readonly routerLinkAppTitle: _angular_core.InputSignal<string | undefined>;
893
898
  /**
894
899
  * If set to 'false', does not display native browser alert message when closing the tab, closing the browser or
895
900
  * reloading the page while having unsaved data.
896
901
  */
897
- readonly showBeforeUnloadNativeConfirmAlert: _angular_core.InputSignal<boolean>;
898
- pageTitle: string;
902
+ readonly showBeforeUnloadNativeConfirmAlert: _angular_core.InputSignal<boolean | undefined>;
903
+ readonly pageTitle: _angular_core.WritableSignal<string | undefined>;
899
904
  hasBlockingSupportAlert: Observable<boolean>;
900
- displayUserCategory: Observable<boolean>;
901
- showSecuredAreaLoginButton: Observable<boolean>;
905
+ displayUserCategory: Observable<boolean> | undefined;
906
+ showSecuredAreaLoginButton: Observable<boolean> | undefined;
902
907
  loginMessagesHidden: boolean;
903
- isBrowserSupported: boolean;
904
- isApplePlatform: boolean;
908
+ isBrowserSupported: boolean | undefined;
909
+ isApplePlatform: boolean | undefined;
905
910
  browserLinkTitlePrefix: string;
906
911
  browserNotSupportedBypass: boolean;
907
912
  displayDemandeExpirationTimer: Observable<boolean>;
908
- private _titleService;
909
- private foehnPageService;
910
- private supportAlertService;
911
- private foehnNavigationService;
912
- private applicationInfoService;
913
- private gesdemEventService;
914
- private breadcrumbService;
915
- private router;
916
- private sessionInfo;
917
- private foehnPageModalService;
918
- private sdkDictionaryService;
919
- private statisticsService;
913
+ private readonly _titleService;
914
+ private readonly foehnPageService;
915
+ private readonly supportAlertService;
916
+ private readonly foehnNavigationService;
917
+ private readonly applicationInfoService;
918
+ private readonly gesdemEventService;
919
+ private readonly breadcrumbService;
920
+ private readonly router;
921
+ private readonly sessionInfo;
922
+ private readonly foehnPageModalService;
923
+ private readonly sdkDictionaryService;
924
+ private readonly statisticsService;
920
925
  private readonly demandeExpirationService;
921
926
  private readonly registerNgModelService;
922
- private destroyRef;
927
+ private readonly destroyRef;
923
928
  private readonly showBeforeUnloadNativeConfirmAlertInternal;
924
929
  private readonly showBeforeUnloadNativeConfirmAlert$;
925
930
  constructor();
@@ -935,9 +940,12 @@ declare class FoehnPageComponent implements OnChanges, OnInit {
935
940
 
936
941
  declare class FoehnPageCounterComponent {
937
942
  readonly textTemplate: _angular_core.InputSignal<string>;
938
- isStable: Observable<boolean>;
939
- private foehnNavigationService;
940
- private ngZone;
943
+ /**
944
+ * The counter is displayed once the page has been rendered,
945
+ * when the current route of the navigation is known.
946
+ */
947
+ readonly isStable: _angular_core.WritableSignal<boolean>;
948
+ private readonly foehnNavigationService;
941
949
  constructor();
942
950
  get placeholders(): PlaceholderType;
943
951
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnPageCounterComponent, never>;
@@ -945,15 +953,15 @@ declare class FoehnPageCounterComponent {
945
953
  }
946
954
 
947
955
  declare class CurrentSessionExpiration {
948
- expiration: dayjs.Dayjs;
949
- type: 'IAM' | 'SESSION-TOKEN';
956
+ expiration: dayjs.Dayjs | undefined;
957
+ type: 'IAM' | 'SESSION-TOKEN' | undefined;
950
958
  }
951
959
 
952
960
  declare class DemandeExpirationService {
953
961
  private interval;
954
962
  private readonly PULLING_IN_MILLISECONDS;
955
- private _demandeExpirationDateTimeSubject;
956
- private intervalSubject;
963
+ private readonly _demandeExpirationDateTimeSubject;
964
+ private readonly intervalSubject;
957
965
  shouldDisplayExpirationTimerMessage(): Observable<boolean>;
958
966
  setDemandeExpirationDateTime(expiration: CurrentSessionExpiration): void;
959
967
  getDemandeExpirationDateTime(): Observable<CurrentSessionExpiration>;
@@ -968,14 +976,14 @@ declare class FoehnPageExpirationTimerComponent implements OnDestroy {
968
976
  countDownTimeToDisplay: Observable<string>;
969
977
  sessionExpired: Observable<boolean>;
970
978
  srAnnouncements: Observable<string>;
971
- private applicationInfoService;
972
- private dictionaryService;
973
- private demandeExpirationService;
974
- private countDownTimeInSeconds;
975
- private sessionHasExpired;
976
- private srAnnouncementsSubject;
979
+ private readonly applicationInfoService;
980
+ private readonly dictionaryService;
981
+ private readonly demandeExpirationService;
982
+ private readonly countDownTimeInSeconds;
983
+ private readonly sessionHasExpired;
984
+ private readonly srAnnouncementsSubject;
977
985
  private interval;
978
- private dateHelper;
986
+ private readonly dateHelper;
979
987
  private readonly PULLING_IN_MILLISECONDS;
980
988
  private srAnnouncementClearTimer;
981
989
  private readonly SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS;
@@ -999,8 +1007,8 @@ declare class IntervalHelper {
999
1007
  }
1000
1008
 
1001
1009
  declare class DropdownMenuItem {
1002
- title: string;
1003
- label: string;
1010
+ title: string | undefined;
1011
+ label: string | undefined;
1004
1012
  routerLink?: string;
1005
1013
  queryParams?: Params;
1006
1014
  href?: string;
@@ -1009,38 +1017,37 @@ declare class DropdownMenuItem {
1009
1017
 
1010
1018
  declare class DropdownMenuGroup {
1011
1019
  title?: string;
1012
- items: DropdownMenuItem[];
1020
+ items: DropdownMenuItem[] | undefined;
1013
1021
  }
1014
1022
 
1015
1023
  declare class FoehnHeaderComponent implements OnInit {
1016
- readonly title: _angular_core.InputSignal<string>;
1017
- readonly showSecuredAreaLoginButton: _angular_core.InputSignal<boolean>;
1018
- readonly routerLinkAppTitle: _angular_core.InputSignal<string>;
1019
- readonly userInfo: _angular_core.ModelSignal<SessionInfoData>;
1024
+ readonly title: _angular_core.InputSignal<string | null | undefined>;
1025
+ readonly showSecuredAreaLoginButton: _angular_core.InputSignal<boolean | null>;
1026
+ readonly routerLinkAppTitle: _angular_core.InputSignal<string | undefined>;
1027
+ readonly userInfo: _angular_core.ModelSignal<SessionInfoData | null | undefined>;
1020
1028
  readonly isConnected: _angular_core.Signal<boolean>;
1021
- readonly beneficiaire: _angular_core.Signal<string>;
1029
+ readonly beneficiaire: _angular_core.Signal<string | null | undefined>;
1022
1030
  readonly isIamCyber: _angular_core.Signal<boolean>;
1023
1031
  readonly isIamAcv: _angular_core.Signal<boolean>;
1024
1032
  readonly isParticulier: _angular_core.Signal<boolean>;
1025
1033
  readonly prenomNom: _angular_core.Signal<string>;
1026
1034
  id: string;
1027
- connectedEsMenu: DropdownMenuGroup[];
1028
- isProduction: Observable<boolean>;
1029
- mockedServices: Observable<string[]>;
1030
- availableLanguages: Observable<Language[]>;
1031
- currentLanguageCode: Observable<string>;
1032
- baseVdChUrl: Observable<string>;
1035
+ readonly connectedEsMenu: _angular_core.Signal<DropdownMenuGroup[] | undefined>;
1036
+ isProduction: Observable<boolean> | undefined;
1037
+ mockedServices: Observable<string[] | null | undefined> | undefined;
1038
+ availableLanguages: Observable<Language[]> | undefined;
1039
+ currentLanguageCode: Observable<string> | undefined;
1040
+ baseVdChUrl: Observable<string | null | undefined> | undefined;
1033
1041
  applicationInfoService: ApplicationInfoService;
1034
- private sessionInfo;
1035
- private dictionaryService;
1036
- private foehnPageModalService;
1037
- private gesdemHandlerService;
1038
- private destroyRef;
1042
+ private readonly sessionInfo;
1043
+ private readonly dictionaryService;
1044
+ private readonly foehnPageModalService;
1045
+ private readonly gesdemHandlerService;
1046
+ private readonly destroyRef;
1039
1047
  private readonly ENV_PROD;
1040
1048
  private readonly AVS;
1041
- constructor();
1042
1049
  ngOnInit(): void;
1043
- getEnvironmentLabel(info: ApplicationInfo): string;
1050
+ getEnvironmentLabel(info: ApplicationInfo): string | null | undefined;
1044
1051
  languageChanged(languageCode: string): void;
1045
1052
  getFullLoginUrl(): Observable<string>;
1046
1053
  isSecuredAreaLoginButtonAllowed(): boolean;
@@ -1050,30 +1057,29 @@ declare class FoehnHeaderComponent implements OnInit {
1050
1057
  }
1051
1058
 
1052
1059
  declare class FoehnSkipLinkComponent implements OnInit {
1053
- readonly targetAnchor: _angular_core.InputSignal<string>;
1054
- readonly accesskey: _angular_core.InputSignal<string>;
1055
- readonly title: _angular_core.InputSignal<string>;
1056
- readonly content: _angular_core.InputSignal<string>;
1060
+ readonly targetAnchor: _angular_core.InputSignal<string | undefined>;
1061
+ readonly title: _angular_core.InputSignal<string | undefined>;
1062
+ readonly content: _angular_core.InputSignal<string | undefined>;
1057
1063
  /**
1058
1064
  * The skip link path MUST take the router into account, otherwise the user is send back to
1059
1065
  * the first page when the skip link is activated.
1060
1066
  */
1061
- skipLinkPath: Observable<string>;
1062
- private platformLocation;
1063
- private router;
1067
+ skipLinkPath: Observable<string> | undefined;
1068
+ private readonly platformLocation;
1069
+ private readonly router;
1064
1070
  ngOnInit(): void;
1065
1071
  private computeUrl;
1066
1072
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnSkipLinkComponent, never>;
1067
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnSkipLinkComponent, "foehn-skip-link", never, { "targetAnchor": { "alias": "targetAnchor"; "required": false; "isSignal": true; }; "accesskey": { "alias": "accesskey"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1073
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnSkipLinkComponent, "foehn-skip-link", never, { "targetAnchor": { "alias": "targetAnchor"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1068
1074
  }
1069
1075
 
1070
1076
  declare class FoehnStatusProgressBarComponent implements OnInit {
1071
- readonly hidden: _angular_core.InputSignal<boolean>;
1072
- isTransmitted: boolean;
1077
+ readonly hidden: _angular_core.InputSignal<boolean | undefined>;
1078
+ readonly isTransmitted: _angular_core.WritableSignal<boolean>;
1073
1079
  protected activatedRoute: ActivatedRoute;
1074
- private navigation;
1075
- private gesdemHand;
1076
- private destroyRef;
1080
+ private readonly navigation;
1081
+ private readonly gesdemHand;
1082
+ private readonly destroyRef;
1077
1083
  isEnabled(): boolean;
1078
1084
  isStep2Active(): boolean;
1079
1085
  ngOnInit(): void;
@@ -1087,9 +1093,9 @@ declare global {
1087
1093
  }
1088
1094
  }
1089
1095
  declare class SdkStatisticsService {
1090
- private ngZone;
1091
- private _router;
1092
- private _applicationInfoService;
1096
+ private readonly ngZone;
1097
+ private readonly _router;
1098
+ private readonly _applicationInfoService;
1093
1099
  track(): void;
1094
1100
  private send;
1095
1101
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdkStatisticsService, never>;
@@ -1097,7 +1103,8 @@ declare class SdkStatisticsService {
1097
1103
  }
1098
1104
 
1099
1105
  declare class FoehnDisplayAddressComponent {
1100
- readonly address: _angular_core.InputSignal<Address>;
1106
+ readonly address: _angular_core.InputSignal<Address | undefined>;
1107
+ readonly lines: _angular_core.Signal<string[]>;
1101
1108
  /**
1102
1109
  * Get the address lines formatted.
1103
1110
  *
@@ -1106,8 +1113,12 @@ declare class FoehnDisplayAddressComponent {
1106
1113
  * @param address as Address
1107
1114
  * @returns any[]
1108
1115
  */
1109
- static getLines(address: Address): string[];
1110
- getLines(address: Address): string[];
1116
+ static getLines(address?: Address): string[];
1117
+ private static normalize;
1118
+ private static buildStreetLine;
1119
+ private static buildPostOfficeBoxLine;
1120
+ private static buildLocalityLine;
1121
+ getLines(address?: Address): string[];
1111
1122
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnDisplayAddressComponent, never>;
1112
1123
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnDisplayAddressComponent, "foehn-display-address", never, { "address": { "alias": "address"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1113
1124
  }
@@ -1118,8 +1129,9 @@ declare class FormSelectOptionGroup {
1118
1129
  }
1119
1130
 
1120
1131
  declare abstract class FoehnCheckableGroupComponent extends FoehnInputComponent<any> implements OnInit, OnChanges {
1132
+ #private;
1121
1133
  readonly elements: _angular_core.ModelSignal<any>;
1122
- readonly elementsUrl: _angular_core.InputSignal<string>;
1134
+ readonly elementsUrl: _angular_core.InputSignal<string | undefined>;
1123
1135
  /**
1124
1136
  * The value in the object. Can be a string or a function.
1125
1137
  * Defaults to `value`
@@ -1134,11 +1146,11 @@ declare abstract class FoehnCheckableGroupComponent extends FoehnInputComponent<
1134
1146
  * The identify value to match the value to the list of elements.
1135
1147
  * By default `x => x`
1136
1148
  */
1137
- readonly elementValueIdentity: _angular_core.InputSignal<(element: any) => any>;
1149
+ readonly elementValueIdentity: _angular_core.InputSignal<((element: any) => any) | undefined>;
1138
1150
  readonly elementDisabled: _angular_core.InputSignal<string | ((element: any) => boolean)>;
1139
1151
  readonly elementGroup: _angular_core.InputSignal<any>;
1140
- readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean, string | boolean>;
1141
- readonly defaultElementValue: _angular_core.InputSignal<string>;
1152
+ readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean | undefined, string | boolean | undefined>;
1153
+ readonly defaultElementValue: _angular_core.InputSignal<string | undefined>;
1142
1154
  readonly elementsLoaded: _angular_core.OutputEmitterRef<any>;
1143
1155
  /**
1144
1156
  * Values stored in the model that are no longer present in the list of
@@ -1147,23 +1159,22 @@ declare abstract class FoehnCheckableGroupComponent extends FoehnInputComponent<
1147
1159
  */
1148
1160
  readonly missingModelValues: Signal<any[]>;
1149
1161
  readonly hasMissingModelValue: Signal<boolean>;
1150
- groupedElements: FormSelectOptionGroup[];
1162
+ readonly groupedElements: _angular_core.WritableSignal<FormSelectOptionGroup[]>;
1151
1163
  protected readonly httpClient: HttpClient;
1152
1164
  protected readonly multiple: Signal<boolean>;
1153
- private readonly ngZone;
1154
1165
  private pulling_;
1155
- private _onInitSubject;
1166
+ private readonly _onInitSubject;
1156
1167
  private disabledByElements;
1157
1168
  constructor();
1158
1169
  get onInitSubject(): Subject<void>;
1159
1170
  ngOnInit(): void;
1160
1171
  ngOnChanges(changes: SimpleChanges): void;
1161
- getElements(): Observable<any>;
1162
- getGroup(element: any): string;
1172
+ getElements(): Observable<any[]>;
1173
+ getGroup(element: any): string | null | undefined;
1163
1174
  setElements(elements: any[]): void;
1164
- getValue(element: any): string;
1165
- getLabel(element: any): string;
1166
- getElementIdentifier(element: any): string;
1175
+ getValue(element: any): string | null | undefined;
1176
+ getLabel(element: any): string | null | undefined;
1177
+ getElementIdentifier(element: any): string | null | undefined;
1167
1178
  getDisabled(element: any): boolean;
1168
1179
  getElementDisabled(element: any): boolean;
1169
1180
  onCheck(element: any, valueEmitted: any, fireModelChange?: boolean): void;
@@ -1176,7 +1187,6 @@ declare abstract class FoehnCheckableGroupComponent extends FoehnInputComponent<
1176
1187
  reset(): void;
1177
1188
  refreshElementsUrl(): void;
1178
1189
  protected findIndexInModel(value: any): number;
1179
- private isValueInElements;
1180
1190
  /**
1181
1191
  * Whether values absent from the list of elements should be reported as
1182
1192
  * "missing". `true` by default (select, radio, checkbox). Overridden by
@@ -1186,6 +1196,7 @@ declare abstract class FoehnCheckableGroupComponent extends FoehnInputComponent<
1186
1196
  protected detectMissingModelValues(): boolean;
1187
1197
  protected areValuesEquals(value1: any, value2: any): boolean;
1188
1198
  protected onElementsRetrieved(): void;
1199
+ private isValueInElements;
1189
1200
  private getGroupedElements;
1190
1201
  private getValueIdentityFunction;
1191
1202
  private fetchData;
@@ -1216,7 +1227,7 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1216
1227
  * a string. Use this is `allowCustomValue` is true and `elementValue`
1217
1228
  * is a function.
1218
1229
  */
1219
- readonly customValueModelGenerator: _angular_core.InputSignal<(input: string) => any>;
1230
+ readonly customValueModelGenerator: _angular_core.InputSignal<((input: string) => any) | undefined>;
1220
1231
  readonly itemHeightInSuggestionListInPx: _angular_core.InputSignal<number>;
1221
1232
  /**
1222
1233
  * The suggestion label used in the displayed list. Can be a string or a function
@@ -1227,30 +1238,35 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1227
1238
  /**
1228
1239
  * Fired when user changes search input value
1229
1240
  */
1230
- readonly userSearchInput: _angular_core.OutputEmitterRef<string>;
1231
- readonly virtualScrollViewport: _angular_core.Signal<CdkVirtualScrollViewport>;
1241
+ readonly userSearchInput: _angular_core.OutputEmitterRef<string | null>;
1242
+ readonly virtualScrollViewport: _angular_core.Signal<CdkVirtualScrollViewport | undefined>;
1232
1243
  readonly suggestionsList: _angular_core.Signal<any>;
1233
1244
  readonly inputElement: _angular_core.Signal<any>;
1234
- readonly inputValue: _angular_core.WritableSignal<string>;
1235
- searchValue: string;
1236
- inputHasFocus: boolean;
1237
- hideSuggestions: boolean;
1238
- currentBlurTimer: any;
1239
- placeholder: string;
1240
- VIEW_PORT_HEIGHT: number;
1241
- displayedElements: any[];
1242
- notificationMessageUpdated: boolean;
1243
- disabledSubject: Observable<boolean>;
1245
+ readonly inputValue: _angular_core.WritableSignal<string | null>;
1246
+ readonly searchValue: _angular_core.WritableSignal<string | null>;
1247
+ readonly inputHasFocus: _angular_core.WritableSignal<boolean>;
1248
+ readonly hideSuggestions: _angular_core.WritableSignal<boolean>;
1249
+ currentBlurTimer: ReturnType<typeof setTimeout> | null;
1250
+ placeholder: string | undefined;
1251
+ readonly displayedElements: _angular_core.WritableSignal<any[]>;
1252
+ /**
1253
+ * Height of the suggestion list: at most NB_ITEMS_VISIBLE items are visible.
1254
+ */
1255
+ readonly VIEW_PORT_HEIGHT: _angular_core.Signal<number>;
1256
+ readonly notificationMessageUpdated: _angular_core.WritableSignal<boolean>;
1257
+ readonly disabledComputed: _angular_core.Signal<boolean>;
1258
+ protected readonly componentInjector: Injector;
1244
1259
  private currentItemGlobalIndex;
1245
1260
  private readonly NB_ITEMS_VISIBLE;
1246
- private filterSubject;
1261
+ private readonly filterSubject;
1247
1262
  private listHasFocus;
1248
- private activeDescendantId;
1263
+ private readonly activeDescendantId;
1249
1264
  private readonly SUGGESTION_SELECTED_CLASS;
1250
1265
  private readonly EXCLUDE_HTML_TAGS_REGEX;
1251
1266
  private readonly SUGGESTION_CUSTOM_ATTRIBUTE_LABEL_VALUE;
1252
- private userSearchInputSubject;
1267
+ private readonly userSearchInputSubject;
1253
1268
  private readonly model$;
1269
+ private readonly elementsLoadedSignal;
1254
1270
  constructor();
1255
1271
  ngOnInit(): void;
1256
1272
  ngOnChanges(changes: SimpleChanges): void;
@@ -1270,12 +1286,19 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1270
1286
  onClickSuggestion(element: any): void;
1271
1287
  reset(): void;
1272
1288
  shouldDisplayListbox(): boolean;
1273
- getActiveDescendantId(): string;
1274
- showSuggestionsWhenInputHasFocusAndIsEmpty(val: string): void;
1275
- handleSearchInputChange(value: string): void;
1289
+ getActiveDescendantId(): string | null;
1290
+ showSuggestionsWhenInputHasFocusAndIsEmpty(val: string | null): void;
1291
+ handleSearchInputChange(value: string | null): void;
1276
1292
  onDynamicElementsChange(change: SimpleChange): void;
1277
1293
  protected detectMissingModelValues(): boolean;
1278
1294
  private clearOnBlurTimeout;
1295
+ private handleKeyCode;
1296
+ private handleKeyValue;
1297
+ private handleSpaceKey;
1298
+ private handleEnterKey;
1299
+ private handleEscapeKey;
1300
+ private selectCurrentSuggestion;
1301
+ private stopKeyPropagation;
1279
1302
  private setSelectedElement;
1280
1303
  private setInputValue;
1281
1304
  /**
@@ -1285,9 +1308,16 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1285
1308
  private checkAndSetInputValue;
1286
1309
  private setSuggestionsDisplayed;
1287
1310
  private setDisplayedElements;
1288
- private resizeDisplayViewPort;
1311
+ /**
1312
+ * The virtual scroll viewport has to measure its size again once its new height is rendered.
1313
+ */
1314
+ private checkViewportSizeAfterRender;
1289
1315
  private getSelectedElement;
1290
1316
  private selectNextElement;
1317
+ private clearSelectionAndFindSelectedIndex;
1318
+ private getNextSelectedItem;
1319
+ private updateCurrentItemGlobalIndex;
1320
+ private scrollToSelectedItemIfNeeded;
1291
1321
  private getSuggestionList;
1292
1322
  private unselectItem;
1293
1323
  private selectItem;
@@ -1301,7 +1331,24 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1301
1331
  private getCustomValue;
1302
1332
  private getModelValueDisplayValue;
1303
1333
  private selectValueToDisplay;
1334
+ /**
1335
+ * Selects the value to display each time the elements are retrieved (onInitSubject) and each time the model
1336
+ * changes. `isSuggestionListDynamic` is read at each retrieval as it can change at runtime: only the matching
1337
+ * of the current kind of list is active (switchMap).
1338
+ */
1304
1339
  private matchValueOnModelChangeSubscription;
1340
+ /**
1341
+ * Dynamic suggestion list: the value to display is selected each time the model changes, with the current elements
1342
+ * and then with the elements loaded next, until they contain the model. The loaded elements depend on the search:
1343
+ * the model is not reset when it is not in them, and once displayed, the elements loaded for the search of the user
1344
+ * no longer change what is displayed.
1345
+ */
1346
+ private matchValueOfDynamicList;
1347
+ /**
1348
+ * Static suggestion list: each time the elements are retrieved, the value to display is selected for the current
1349
+ * model (replayed by model$), then each time the model changes.
1350
+ */
1351
+ private matchValueOfStaticList;
1305
1352
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnAutocompleteComponent, never>;
1306
1353
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnAutocompleteComponent, "foehn-autocomplete", never, { "searchValueMinCharsCount": { "alias": "searchValueMinCharsCount"; "required": false; "isSignal": true; }; "allowCustomValue": { "alias": "allowCustomValue"; "required": false; "isSignal": true; }; "isSuggestionListDynamic": { "alias": "isSuggestionListDynamic"; "required": false; "isSignal": true; }; "customValueModelGenerator": { "alias": "customValueModelGenerator"; "required": false; "isSignal": true; }; "itemHeightInSuggestionListInPx": { "alias": "itemHeightInSuggestionListInPx"; "required": false; "isSignal": true; }; "elementSuggestionLabel": { "alias": "elementSuggestionLabel"; "required": false; "isSignal": true; }; "caseSensitiveSearch": { "alias": "caseSensitiveSearch"; "required": false; "isSignal": true; }; }, { "userSearchInput": "userSearchInput"; }, never, ["*"], true, never>;
1307
1354
  }
@@ -1311,15 +1358,15 @@ declare abstract class FoehnInputStringComponent extends FoehnInputComponent<str
1311
1358
  readonly sanitizeOnBlur: _angular_core.InputSignal<boolean>;
1312
1359
  private readonly inputSanitizerService;
1313
1360
  onBlur(e: FocusEvent): void;
1314
- onModelChange(value: string): void;
1361
+ onModelChange(value: string | null): void;
1315
1362
  private isZeroAsNumber;
1316
- private replaceTabWithWhiteSpace;
1363
+ private readonly replaceTabWithWhiteSpace;
1317
1364
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputStringComponent, never>;
1318
1365
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FoehnInputStringComponent, never, never, { "trimOnBlur": { "alias": "trimOnBlur"; "required": false; "isSignal": true; }; "sanitizeOnBlur": { "alias": "sanitizeOnBlur"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1319
1366
  }
1320
1367
 
1321
1368
  declare class FoehnInputTextComponent extends FoehnInputStringComponent {
1322
- readonly numberOnly: _angular_core.InputSignal<boolean>;
1369
+ readonly numberOnly: _angular_core.InputSignal<boolean | undefined>;
1323
1370
  onKeydown(event: KeyboardEvent): void;
1324
1371
  private acceptedKeysForNumber;
1325
1372
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputTextComponent, never>;
@@ -1329,11 +1376,11 @@ declare class FoehnInputTextComponent extends FoehnInputStringComponent {
1329
1376
  declare class FoehnInputForeignLocalityComponent extends FoehnInputComponent<Locality> {
1330
1377
  readonly localityRequired: _angular_core.InputSignal<boolean>;
1331
1378
  readonly zipCodeRequired: _angular_core.InputSignal<boolean>;
1332
- zipCode: string;
1333
- longName: string;
1379
+ readonly zipCode: _angular_core.WritableSignal<string | null>;
1380
+ readonly longName: _angular_core.WritableSignal<string | null>;
1334
1381
  updateLocality(): void;
1335
1382
  handleUserInput(): void;
1336
- onModelChange(value: Locality): void;
1383
+ onModelChange(value: Locality | null): void;
1337
1384
  isRequired(): boolean;
1338
1385
  private getValidValue;
1339
1386
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputForeignLocalityComponent, never>;
@@ -1341,10 +1388,10 @@ declare class FoehnInputForeignLocalityComponent extends FoehnInputComponent<Loc
1341
1388
  }
1342
1389
 
1343
1390
  declare class FoehnInputForeignStreetComponent extends FoehnInputComponent<Street> {
1344
- longName: string;
1391
+ readonly longName: _angular_core.WritableSignal<string | null>;
1345
1392
  updateStreet(): void;
1346
1393
  handleUserInput(): void;
1347
- onModelChange(value: Street): void;
1394
+ onModelChange(value: Street | null): void;
1348
1395
  private getValidValue;
1349
1396
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputForeignStreetComponent, never>;
1350
1397
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputForeignStreetComponent, "foehn-input-foreign-street", never, {}, {}, never, ["*"], true, never>;
@@ -1352,7 +1399,7 @@ declare class FoehnInputForeignStreetComponent extends FoehnInputComponent<Stree
1352
1399
 
1353
1400
  declare const SWISS_ISO_ID = "CH";
1354
1401
  declare class StreetNumber {
1355
- name: string;
1402
+ name: string | null;
1356
1403
  }
1357
1404
  declare class FoehnInputAddressComponent extends FoehnInputComponent<Address> implements OnInit, OnChanges {
1358
1405
  readonly isOnlySwiss: _angular_core.InputSignal<boolean>;
@@ -1362,43 +1409,48 @@ declare class FoehnInputAddressComponent extends FoehnInputComponent<Address> im
1362
1409
  readonly showAdressLine2: _angular_core.InputSignal<boolean>;
1363
1410
  readonly countryRequired: _angular_core.InputSignal<boolean>;
1364
1411
  readonly swissNpaLocalityRequired: _angular_core.InputSignal<boolean>;
1365
- readonly streetRequired: _angular_core.InputSignal<boolean>;
1412
+ readonly swissNpaLocalityBaseUrl: _angular_core.InputSignal<string>;
1413
+ readonly streetRequired: _angular_core.InputSignal<boolean | undefined>;
1414
+ readonly streetAllowCustomValue: _angular_core.InputSignal<boolean>;
1366
1415
  readonly streetNumberRequired: _angular_core.InputSignal<boolean>;
1367
1416
  readonly hideNotRequiredExtraLabelStreetNumber: _angular_core.InputSignal<boolean>;
1368
1417
  readonly foreignZipCodeRequired: _angular_core.InputSignal<boolean>;
1369
1418
  readonly foreignLocalityRequired: _angular_core.InputSignal<boolean>;
1370
- readonly foreignStreetRequired: _angular_core.InputSignal<boolean>;
1419
+ readonly foreignStreetRequired: _angular_core.InputSignal<boolean | undefined>;
1371
1420
  readonly foreignStreetNumberRequired: _angular_core.InputSignal<boolean>;
1372
- readonly postOfficeBoxTextRequired: _angular_core.InputSignal<boolean>;
1421
+ readonly postOfficeBoxTextRequired: _angular_core.InputSignal<boolean | undefined>;
1373
1422
  readonly addressLine1Required: _angular_core.InputSignal<boolean>;
1374
1423
  readonly addressLine2Required: _angular_core.InputSignal<boolean>;
1375
1424
  readonly withCompanyLocalities: _angular_core.InputSignal<boolean>;
1376
1425
  readonly withDefaultCountry: _angular_core.InputSignal<boolean>;
1377
- readonly specifiedCanton: _angular_core.InputSignal<string>;
1426
+ readonly specifiedCanton: _angular_core.InputSignal<string | undefined>;
1378
1427
  readonly countriesUrl: _angular_core.InputSignal<string>;
1379
- readonly foreignLocalityComponent: _angular_core.Signal<FoehnInputForeignLocalityComponent>;
1380
- readonly foreignStreetComponent: _angular_core.Signal<FoehnInputForeignStreetComponent>;
1381
- readonly foreignHouseNumber: _angular_core.Signal<FoehnInputTextComponent>;
1382
- readonly countryAutocomplete: _angular_core.Signal<FoehnAutocompleteComponent>;
1383
- country: Country;
1384
- locality: Locality;
1385
- street: Street;
1386
- houseNumber: string;
1387
- postOfficeBoxText: string;
1388
- addressLine1: string;
1389
- addressLine2: string;
1390
- countries: Observable<Country[]>;
1391
- localities: Observable<Locality[]>;
1392
- streets: Observable<Street[]>;
1393
- streetNumbers: Observable<StreetNumber[]>;
1394
- streetCustomErrors: Record<string, string>;
1428
+ readonly foreignLocalityComponent: _angular_core.Signal<FoehnInputForeignLocalityComponent | undefined>;
1429
+ readonly foreignStreetComponent: _angular_core.Signal<FoehnInputForeignStreetComponent | undefined>;
1430
+ readonly foreignHouseNumber: _angular_core.Signal<FoehnInputTextComponent | undefined>;
1431
+ readonly countryAutocomplete: _angular_core.Signal<FoehnAutocompleteComponent | undefined>;
1432
+ readonly country: _angular_core.WritableSignal<Country | null>;
1433
+ readonly locality: _angular_core.WritableSignal<Locality | null>;
1434
+ readonly street: _angular_core.WritableSignal<Street | null>;
1435
+ readonly houseNumber: _angular_core.WritableSignal<string | null>;
1436
+ readonly postOfficeBoxText: _angular_core.WritableSignal<string | null>;
1437
+ readonly addressLine1: _angular_core.WritableSignal<string | null>;
1438
+ readonly addressLine2: _angular_core.WritableSignal<string | null>;
1439
+ countries: Observable<Country[]> | undefined;
1440
+ localities: Observable<Locality[]> | undefined;
1441
+ streets: Observable<Street[]> | undefined;
1442
+ streetNumbers: Observable<StreetNumber[]> | undefined;
1443
+ readonly streetCustomErrors: _angular_core.WritableSignal<Record<string, string>>;
1395
1444
  private readonly httpClient;
1396
1445
  private readonly dictionaryService;
1397
- private iso2IdSubject;
1398
- private zipCodeIdSubject;
1399
- private estrIdSubject;
1400
- private countryModelChangeSubject;
1401
- private isOnlySwissChangeSubject;
1446
+ private readonly addressInjector;
1447
+ private isSanitizationScheduled;
1448
+ private isDefaultCountryScheduled;
1449
+ private readonly iso2IdSubject;
1450
+ private readonly zipCodeIdSubject;
1451
+ private readonly estrIdSubject;
1452
+ private readonly countryModelChangeSubject;
1453
+ private readonly isOnlySwissChangeSubject;
1402
1454
  constructor();
1403
1455
  identity: <T>(n: T) => T;
1404
1456
  countryIdentity: (country: Country) => string;
@@ -1409,19 +1461,28 @@ declare class FoehnInputAddressComponent extends FoehnInputComponent<Address> im
1409
1461
  ngOnChanges(changes: SimpleChanges): void;
1410
1462
  updateAddress(): void;
1411
1463
  handleUserInput(): void;
1412
- onModelChange(value: Address): void;
1464
+ onModelChange(value: Address | null): void;
1413
1465
  isSwiss(): boolean;
1414
1466
  userInputCountry(country: unknown): void;
1415
1467
  userInputLocality(locality: unknown): void;
1416
1468
  userInputStreet(street: unknown): void;
1417
- countryUpdated(country: Country): void;
1418
- getLocalityDisplayedName(locality: Locality): string | void;
1419
- localityUpdated(locality: Locality): void;
1420
- streetUpdated(street: Street): void;
1469
+ countryUpdated(country: Country | null): void;
1470
+ getLocalityDisplayedName(locality: Locality): string;
1471
+ localityUpdated(locality: Locality | null): void;
1472
+ streetUpdated(street: Street | null): void;
1421
1473
  isStreetRequired(): boolean;
1422
1474
  isForeignStreetRequired(): boolean;
1423
1475
  isPostOfficeBoxTextRequired(): boolean;
1424
1476
  private sanitizeAddress;
1477
+ /**
1478
+ * @returns the sanitized address when it differs from the given value, otherwise null
1479
+ */
1480
+ private getSanitizedModel;
1481
+ /**
1482
+ * The sanitized model is set after the next rendering (not while the view is checked), from the latest model: the
1483
+ * model given by the parent in between (e.g. prefilled asynchronously) has been received, it is not overwritten.
1484
+ */
1485
+ private scheduleModelSanitization;
1425
1486
  private replaceAtLeastOneNotNull;
1426
1487
  private getCountries;
1427
1488
  private getLocalities;
@@ -1437,17 +1498,24 @@ declare class FoehnInputAddressComponent extends FoehnInputComponent<Address> im
1437
1498
  private getValidValue;
1438
1499
  private isModelEmpty;
1439
1500
  private manageDefaultCountry;
1501
+ /**
1502
+ * The default country is applied after the next rendering (once for the changes of the same rendering), from the
1503
+ * latest state: without zone.js, a model given by the parent in between (e.g. prefilled asynchronously) is only
1504
+ * received with the next change detection, it must not be overwritten by the model with the default country only.
1505
+ */
1506
+ private scheduleDefaultCountry;
1507
+ private applyDefaultCountry;
1440
1508
  private isCountryInputDirty;
1441
1509
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputAddressComponent, never>;
1442
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputAddressComponent, "foehn-input-address", never, { "isOnlySwiss": { "alias": "isOnlySwiss"; "required": false; "isSignal": true; }; "showPostOfficeBoxText": { "alias": "showPostOfficeBoxText"; "required": false; "isSignal": true; }; "showAdressLines": { "alias": "showAdressLines"; "required": false; "isSignal": true; }; "showAdressLine1": { "alias": "showAdressLine1"; "required": false; "isSignal": true; }; "showAdressLine2": { "alias": "showAdressLine2"; "required": false; "isSignal": true; }; "countryRequired": { "alias": "countryRequired"; "required": false; "isSignal": true; }; "swissNpaLocalityRequired": { "alias": "swissNpaLocalityRequired"; "required": false; "isSignal": true; }; "streetRequired": { "alias": "streetRequired"; "required": false; "isSignal": true; }; "streetNumberRequired": { "alias": "streetNumberRequired"; "required": false; "isSignal": true; }; "hideNotRequiredExtraLabelStreetNumber": { "alias": "hideNotRequiredExtraLabelStreetNumber"; "required": false; "isSignal": true; }; "foreignZipCodeRequired": { "alias": "foreignZipCodeRequired"; "required": false; "isSignal": true; }; "foreignLocalityRequired": { "alias": "foreignLocalityRequired"; "required": false; "isSignal": true; }; "foreignStreetRequired": { "alias": "foreignStreetRequired"; "required": false; "isSignal": true; }; "foreignStreetNumberRequired": { "alias": "foreignStreetNumberRequired"; "required": false; "isSignal": true; }; "postOfficeBoxTextRequired": { "alias": "postOfficeBoxTextRequired"; "required": false; "isSignal": true; }; "addressLine1Required": { "alias": "addressLine1Required"; "required": false; "isSignal": true; }; "addressLine2Required": { "alias": "addressLine2Required"; "required": false; "isSignal": true; }; "withCompanyLocalities": { "alias": "withCompanyLocalities"; "required": false; "isSignal": true; }; "withDefaultCountry": { "alias": "withDefaultCountry"; "required": false; "isSignal": true; }; "specifiedCanton": { "alias": "specifiedCanton"; "required": false; "isSignal": true; }; "countriesUrl": { "alias": "countriesUrl"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1510
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputAddressComponent, "foehn-input-address", never, { "isOnlySwiss": { "alias": "isOnlySwiss"; "required": false; "isSignal": true; }; "showPostOfficeBoxText": { "alias": "showPostOfficeBoxText"; "required": false; "isSignal": true; }; "showAdressLines": { "alias": "showAdressLines"; "required": false; "isSignal": true; }; "showAdressLine1": { "alias": "showAdressLine1"; "required": false; "isSignal": true; }; "showAdressLine2": { "alias": "showAdressLine2"; "required": false; "isSignal": true; }; "countryRequired": { "alias": "countryRequired"; "required": false; "isSignal": true; }; "swissNpaLocalityRequired": { "alias": "swissNpaLocalityRequired"; "required": false; "isSignal": true; }; "swissNpaLocalityBaseUrl": { "alias": "swissNpaLocalityBaseUrl"; "required": false; "isSignal": true; }; "streetRequired": { "alias": "streetRequired"; "required": false; "isSignal": true; }; "streetAllowCustomValue": { "alias": "streetAllowCustomValue"; "required": false; "isSignal": true; }; "streetNumberRequired": { "alias": "streetNumberRequired"; "required": false; "isSignal": true; }; "hideNotRequiredExtraLabelStreetNumber": { "alias": "hideNotRequiredExtraLabelStreetNumber"; "required": false; "isSignal": true; }; "foreignZipCodeRequired": { "alias": "foreignZipCodeRequired"; "required": false; "isSignal": true; }; "foreignLocalityRequired": { "alias": "foreignLocalityRequired"; "required": false; "isSignal": true; }; "foreignStreetRequired": { "alias": "foreignStreetRequired"; "required": false; "isSignal": true; }; "foreignStreetNumberRequired": { "alias": "foreignStreetNumberRequired"; "required": false; "isSignal": true; }; "postOfficeBoxTextRequired": { "alias": "postOfficeBoxTextRequired"; "required": false; "isSignal": true; }; "addressLine1Required": { "alias": "addressLine1Required"; "required": false; "isSignal": true; }; "addressLine2Required": { "alias": "addressLine2Required"; "required": false; "isSignal": true; }; "withCompanyLocalities": { "alias": "withCompanyLocalities"; "required": false; "isSignal": true; }; "withDefaultCountry": { "alias": "withDefaultCountry"; "required": false; "isSignal": true; }; "specifiedCanton": { "alias": "specifiedCanton"; "required": false; "isSignal": true; }; "countriesUrl": { "alias": "countriesUrl"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1443
1511
  }
1444
1512
 
1445
1513
  declare class FoehnBreadcrumbComponent implements OnInit {
1446
1514
  readonly breadcrumbItems: _angular_core.InputSignal<BreadcrumbItem[]>;
1447
- readonly currentNav: _angular_core.InputSignal<string>;
1448
- readonly confirmLeavingAlert: _angular_core.InputSignal<FoehnConfirmModalContent>;
1515
+ readonly currentNav: _angular_core.InputSignal<string | undefined>;
1516
+ readonly confirmLeavingAlert: _angular_core.InputSignal<FoehnConfirmModalContent | null | undefined>;
1449
1517
  readonly breadcrumbItemsInternal: _angular_core.WritableSignal<BreadcrumbItem[]>;
1450
- readonly currentNavInternal: _angular_core.WritableSignal<string>;
1518
+ readonly currentNavInternal: _angular_core.WritableSignal<string | undefined>;
1451
1519
  private readonly breadcrumbService;
1452
1520
  private readonly router;
1453
1521
  private readonly foehnConfirmModalService;
@@ -1471,11 +1539,12 @@ declare class FoehnCheckboxComponent extends FoehnCheckableGroupComponent implem
1471
1539
  }
1472
1540
 
1473
1541
  declare class FoehnRadioComponent extends FoehnCheckableGroupComponent implements OnInit, AfterViewChecked {
1474
- inputValue: string;
1542
+ readonly inputValue: _angular_core.WritableSignal<string | null | undefined>;
1475
1543
  ngOnInit(): void;
1476
1544
  onModelChange(value: any): void;
1477
1545
  ngAfterViewChecked(): void;
1478
- getValueOrObject(element: any): string;
1546
+ getValueOrObject(element: any): string | undefined | null;
1547
+ getLabelledBy(elementsGroup: FormSelectOptionGroup, groupIndex: number, index: number): string;
1479
1548
  private syncDisabledState;
1480
1549
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnRadioComponent, never>;
1481
1550
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnRadioComponent, "foehn-radio", never, {}, {}, never, ["*"], true, never>;
@@ -1500,13 +1569,13 @@ declare class FoehnSelectComponent extends FoehnCheckableGroupComponent implemen
1500
1569
  }
1501
1570
 
1502
1571
  declare class FormSelectOption {
1503
- label: string;
1504
- value: string;
1572
+ label: string | undefined;
1573
+ value: string | undefined;
1505
1574
  disabled?: boolean;
1506
1575
  }
1507
1576
 
1508
1577
  declare class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteComponent implements OnInit {
1509
- hostName: string;
1578
+ hostName: string | null;
1510
1579
  /**
1511
1580
  * The label in the object. Can be a string or a function
1512
1581
  * Defaults to `label`
@@ -1516,43 +1585,46 @@ declare class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteCom
1516
1585
  readonly noElementsSelectedLabel: _angular_core.InputSignal<string>;
1517
1586
  readonly excludeFromErrorSummary: _angular_core.InputSignalWithTransform<boolean, boolean>;
1518
1587
  readonly multiple: _angular_core.WritableSignal<boolean>;
1519
- readonly defaultElementValues: _angular_core.InputSignal<unknown[]>;
1520
- readonly autocompleteComponent: _angular_core.Signal<FoehnAutocompleteComponent>;
1521
- readonly alertMessageContainer: _angular_core.Signal<ElementRef<any>>;
1588
+ readonly defaultElementValues: _angular_core.InputSignal<unknown[] | undefined>;
1589
+ readonly autocompleteComponent: _angular_core.Signal<FoehnAutocompleteComponent | undefined>;
1590
+ readonly alertMessageContainer: _angular_core.Signal<ElementRef<any> | undefined>;
1522
1591
  readonly selectedElemRef: _angular_core.Signal<readonly ElementRef<any>[]>;
1523
1592
  readonly defaultElemRef: _angular_core.Signal<readonly ElementRef<any>[]>;
1524
- readonly defaultDeleteFocusArea: _angular_core.Signal<ElementRef<any>>;
1593
+ readonly defaultDeleteFocusArea: _angular_core.Signal<ElementRef<any> | undefined>;
1525
1594
  readonly defaultElementValuesComputed: _angular_core.Signal<unknown[]>;
1526
- autocompleteInputValue: string;
1527
- showEmptyListMessage: boolean;
1528
- srAnnouncements: string;
1595
+ readonly autocompleteInputValue: _angular_core.WritableSignal<string | null>;
1596
+ /**
1597
+ * Every element is selected: a message replaces the autocomplete (not for an empty list of elements).
1598
+ */
1599
+ readonly showEmptyListMessage: _angular_core.Signal<boolean>;
1600
+ readonly srAnnouncements: _angular_core.WritableSignal<string>;
1601
+ protected readonly suggestions: _angular_core.Signal<[]>;
1529
1602
  private readonly dictionaryService;
1530
1603
  private srAnnouncementClearTimer;
1531
1604
  private readonly SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS;
1532
1605
  private pendingRemovedIndexForFocus;
1606
+ private readonly suggestionsEffect;
1607
+ private readonly autocompleteInputVisibilityEffect;
1533
1608
  private readonly selectedElemRefEffect;
1534
1609
  ngOnInit(): void;
1535
- onModelChange(value: any): void;
1536
1610
  hasErrorsToDisplay(): boolean;
1537
- getLabel(value: any): string;
1611
+ getLabel(value: any): string | null | undefined;
1538
1612
  updateMultiselectAutocomplete(currentModel: unknown[]): void;
1539
1613
  handleUserInput(currentModel: unknown[]): void;
1540
1614
  addItem(item: unknown): void;
1541
1615
  removeItem(item: unknown, index: number): void;
1542
1616
  trackByFn(index: number): number;
1543
1617
  canBeDeleted(index: number): boolean;
1544
- onAutocompleteElementsLoaded(elements: []): void;
1618
+ onAutocompleteElementsLoaded(): void;
1545
1619
  getDeleteButtonAriaLabel(element: unknown): string;
1546
1620
  hasDefaultDeleteFocusArea(): boolean;
1547
1621
  getBadgeLabel(element: any): string;
1548
- private manageListWhenElementsAreLoaded;
1549
1622
  private findElementByModelItem;
1550
1623
  private getValidValue;
1551
1624
  private focusNextAreaAfterDelete;
1552
1625
  private filterAutocompleteElements;
1553
- private manageSuggestionListAndFocusAfterAddingAnItem;
1554
- private manageSuggestionListAndFocusAfterRemovingAnItem;
1555
- private showAlertMessageAndHideAutocomplete;
1626
+ private focusAfterAddingAnItem;
1627
+ private applySuggestionsToAutocomplete;
1556
1628
  private manageScreenReaderAnnouncement;
1557
1629
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnMultiselectAutocompleteComponent, never>;
1558
1630
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnMultiselectAutocompleteComponent, "foehn-multiselect-autocomplete", never, { "elementBadgeLabel": { "alias": "elementBadgeLabel"; "required": false; "isSignal": true; }; "selectedItemsListLegend": { "alias": "selectedItemsListLegend"; "required": false; "isSignal": true; }; "noElementsSelectedLabel": { "alias": "noElementsSelectedLabel"; "required": false; "isSignal": true; }; "excludeFromErrorSummary": { "alias": "excludeFromErrorSummary"; "required": false; "isSignal": true; }; "defaultElementValues": { "alias": "defaultElementValues"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -1560,8 +1632,8 @@ declare class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteCom
1560
1632
 
1561
1633
  declare class FoehnInputEmailComponent extends FoehnInputStringComponent implements OnInit {
1562
1634
  timeoutReference: any;
1563
- readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean, string | boolean>;
1564
- private dictionaryService;
1635
+ readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean | undefined, string | boolean | undefined>;
1636
+ private readonly dictionaryService;
1565
1637
  ngOnInit(): void;
1566
1638
  onModelChange(value: string): void;
1567
1639
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputEmailComponent, never>;
@@ -1570,33 +1642,33 @@ declare class FoehnInputEmailComponent extends FoehnInputStringComponent impleme
1570
1642
 
1571
1643
  declare class FoehnInputHiddenComponent extends FoehnInputStringComponent implements OnInit {
1572
1644
  timeoutReference: any;
1573
- readonly model: _angular_core.ModelSignal<string>;
1645
+ readonly model: _angular_core.ModelSignal<string | null | undefined>;
1574
1646
  constructor();
1575
1647
  ngOnInit(): void;
1576
- onModelChange(value: string): void;
1648
+ onModelChange(value: string | null): void;
1577
1649
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputHiddenComponent, never>;
1578
1650
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputHiddenComponent, "foehn-input-hidden", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; }, never, ["*"], true, never>;
1579
1651
  }
1580
1652
 
1581
1653
  declare class FoehnInputNumberComponent extends FoehnInputStringComponent implements OnInit, OnChanges {
1582
1654
  readonly hideStandardHelpText: _angular_core.InputSignal<boolean>;
1583
- readonly allowDecimal: _angular_core.InputSignal<boolean>;
1584
- readonly allowNegative: _angular_core.InputSignal<boolean>;
1655
+ readonly allowDecimal: _angular_core.InputSignal<boolean | undefined>;
1656
+ readonly allowNegative: _angular_core.InputSignal<boolean | undefined>;
1585
1657
  readonly maxDecimalCount: _angular_core.InputSignal<number>;
1586
1658
  readonly allowFreeInput: _angular_core.InputSignal<boolean>;
1587
1659
  readonly allowLeadingZero: _angular_core.InputSignal<boolean>;
1588
- readonly maxlength: _angular_core.InputSignalWithTransform<number, number>;
1660
+ readonly maxlengthValue: _angular_core.Signal<number>;
1589
1661
  private readonly dictionaryService;
1590
1662
  private initialHelpText;
1591
1663
  ngOnInit(): void;
1592
1664
  ngOnChanges(changes: SimpleChanges): void;
1593
- getMaxLength(): number;
1594
- updateNgModel(value: string): void;
1665
+ getMaxLength(): number | null;
1666
+ updateNgModel(value: string | null | undefined): void;
1595
1667
  /**
1596
1668
  * To be used for post-formatting by directives.
1597
1669
  * @param value of model
1598
1670
  */
1599
- forceUpdateNgModel(value: string): void;
1671
+ forceUpdateNgModel(value: string | null): void;
1600
1672
  private isStringAValidNumber;
1601
1673
  private isModelValid;
1602
1674
  private getValidationRegex;
@@ -1607,15 +1679,21 @@ declare class FoehnInputNumberComponent extends FoehnInputStringComponent implem
1607
1679
  private updateInputElementValue;
1608
1680
  private setToEmpty;
1609
1681
  private manageHelpText;
1682
+ private updateHelpTextForConstrainedInput;
1683
+ private updateHelpTextForFreeInput;
1684
+ private resetHelpTextWithInitialPrefix;
1685
+ private appendStandardHelpText;
1686
+ private getMaxAsString;
1687
+ private getMinAsString;
1610
1688
  private formatValue;
1611
1689
  private removeLeadingZero;
1612
1690
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputNumberComponent, never>;
1613
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputNumberComponent, "foehn-input-number", never, { "hideStandardHelpText": { "alias": "hideStandardHelpText"; "required": false; "isSignal": true; }; "allowDecimal": { "alias": "allowDecimal"; "required": false; "isSignal": true; }; "allowNegative": { "alias": "allowNegative"; "required": false; "isSignal": true; }; "maxDecimalCount": { "alias": "maxDecimalCount"; "required": false; "isSignal": true; }; "allowFreeInput": { "alias": "allowFreeInput"; "required": false; "isSignal": true; }; "allowLeadingZero": { "alias": "allowLeadingZero"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1691
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputNumberComponent, "foehn-input-number", never, { "hideStandardHelpText": { "alias": "hideStandardHelpText"; "required": false; "isSignal": true; }; "allowDecimal": { "alias": "allowDecimal"; "required": false; "isSignal": true; }; "allowNegative": { "alias": "allowNegative"; "required": false; "isSignal": true; }; "maxDecimalCount": { "alias": "maxDecimalCount"; "required": false; "isSignal": true; }; "allowFreeInput": { "alias": "allowFreeInput"; "required": false; "isSignal": true; }; "allowLeadingZero": { "alias": "allowLeadingZero"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1614
1692
  }
1615
1693
 
1616
1694
  declare class FoehnInputPasswordComponent extends FoehnInputStringComponent implements OnInit {
1617
1695
  timeoutReference: any;
1618
- readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean, string | boolean>;
1696
+ readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean | undefined, string | boolean | undefined>;
1619
1697
  ngOnInit(): void;
1620
1698
  onModelChange(value: string): void;
1621
1699
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputPasswordComponent, never>;
@@ -1633,8 +1711,8 @@ declare class FoehnInputPhoneComponent extends FoehnInputStringComponent impleme
1633
1711
  readonly acceptInternational: _angular_core.InputSignal<boolean>;
1634
1712
  readonly acceptMobilePhone: _angular_core.InputSignal<boolean>;
1635
1713
  readonly acceptPhone: _angular_core.InputSignal<boolean>;
1636
- readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean, string | boolean>;
1637
- private dictionaryService;
1714
+ readonly autocomplete: _angular_core.InputSignalWithTransform<string | boolean | undefined, string | boolean | undefined>;
1715
+ private readonly dictionaryService;
1638
1716
  ngOnInit(): void;
1639
1717
  private getStandardHelpTextDicoKey;
1640
1718
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputPhoneComponent, never>;
@@ -1646,12 +1724,12 @@ declare class FoehnInputPrefixedTextComponent extends FoehnInputStringComponent
1646
1724
  readonly prefix: _angular_core.InputSignal<string>;
1647
1725
  readonly prefixColClass: _angular_core.InputSignal<string>;
1648
1726
  readonly textColClass: _angular_core.InputSignal<string>;
1649
- readonly text: _angular_core.Signal<string>;
1650
- private previousPrefix;
1727
+ readonly text: _angular_core.Signal<string | null>;
1728
+ private readonly previousPrefix;
1651
1729
  constructor();
1652
- onTextChange(value: string): void;
1653
- updateFullText(text: string): void;
1654
- handleUserInput(text: string): void;
1730
+ onTextChange(value: string | undefined | null): void;
1731
+ updateFullText(text: string | null | undefined): void;
1732
+ handleUserInput(text: string | null | undefined): void;
1655
1733
  private getValidValue;
1656
1734
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnInputPrefixedTextComponent, never>;
1657
1735
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputPrefixedTextComponent, "foehn-input-prefixed-text", never, { "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "prefixColClass": { "alias": "prefixColClass"; "required": false; "isSignal": true; }; "textColClass": { "alias": "textColClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -1659,12 +1737,12 @@ declare class FoehnInputPrefixedTextComponent extends FoehnInputStringComponent
1659
1737
 
1660
1738
  declare class FoehnInputTextareaComponent extends FoehnInputStringComponent implements OnInit {
1661
1739
  readonly rows: _angular_core.InputSignal<number>;
1662
- readonly displayCharCount: _angular_core.InputSignal<boolean>;
1663
- isCharCountExceeded: boolean;
1664
- charCountLeft: number;
1665
- charCountLabel: string;
1666
- ariaLiveStatus: string;
1667
- private dictionary;
1740
+ readonly displayCharCount: _angular_core.InputSignal<boolean | undefined>;
1741
+ readonly isCharCountExceeded: _angular_core.WritableSignal<boolean>;
1742
+ readonly charCountLeft: _angular_core.WritableSignal<number | undefined>;
1743
+ readonly charCountLabel: _angular_core.WritableSignal<string | undefined>;
1744
+ readonly ariaLiveStatus: _angular_core.WritableSignal<string>;
1745
+ private readonly dictionary;
1668
1746
  ngOnInit(): void;
1669
1747
  onModelChange(value: string): void;
1670
1748
  countCharLeft(): void;
@@ -1674,27 +1752,27 @@ declare class FoehnInputTextareaComponent extends FoehnInputStringComponent impl
1674
1752
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnInputTextareaComponent, "foehn-input-textarea", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "displayCharCount": { "alias": "displayCharCount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1675
1753
  }
1676
1754
 
1677
- declare class FoehnDateComponent extends FoehnInputComponent<number[]> {
1755
+ declare class FoehnDateComponent extends FoehnInputComponent<(number | null)[]> {
1678
1756
  readonly disableDay: _angular_core.InputSignal<boolean>;
1679
1757
  readonly disableMonth: _angular_core.InputSignal<boolean>;
1680
1758
  readonly disableYear: _angular_core.InputSignal<boolean>;
1681
1759
  readonly hideDatePickerButton: _angular_core.InputSignal<boolean>;
1682
- readonly minDate: _angular_core.InputSignal<number[]>;
1683
- readonly maxDate: _angular_core.InputSignal<number[]>;
1760
+ readonly minDate: _angular_core.InputSignal<number[] | undefined>;
1761
+ readonly maxDate: _angular_core.InputSignal<number[] | undefined>;
1684
1762
  readonly childrenLabelSrOnly: _angular_core.InputSignal<boolean>;
1685
1763
  readonly clearButton: _angular_core.InputSignal<boolean>;
1686
- day: string;
1687
- month: string;
1688
- year: string;
1689
- datePickerModel: number[];
1764
+ readonly day: _angular_core.WritableSignal<string | null>;
1765
+ readonly month: _angular_core.WritableSignal<string | null>;
1766
+ readonly year: _angular_core.WritableSignal<string | null>;
1767
+ readonly datePickerModel: _angular_core.WritableSignal<number[] | null>;
1690
1768
  readonly disabledComputed: Signal<boolean>;
1691
1769
  constructor();
1692
1770
  updateDate(): void;
1693
- updateDateFromDatePicker(date: number[]): void;
1771
+ updateDateFromDatePicker(date: number[] | null): void;
1694
1772
  handleUserInput(): void;
1695
- handleDatePickerUserInput(date: number[]): void;
1696
- onModelChange(value: number[]): void;
1697
- getValidValue(): number[] | null | undefined;
1773
+ handleDatePickerUserInput(date: (number | null)[] | null): void;
1774
+ onModelChange(value: (number | null)[] | null): void;
1775
+ getValidValue(): (number | null)[] | null | undefined;
1698
1776
  shouldDisplayDatePicker(): boolean;
1699
1777
  resetModel(): void;
1700
1778
  isEmpty(): boolean;
@@ -1705,34 +1783,40 @@ declare class FoehnDateComponent extends FoehnInputComponent<number[]> {
1705
1783
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnDateComponent, "foehn-input-date", never, { "disableDay": { "alias": "disableDay"; "required": false; "isSignal": true; }; "disableMonth": { "alias": "disableMonth"; "required": false; "isSignal": true; }; "disableYear": { "alias": "disableYear"; "required": false; "isSignal": true; }; "hideDatePickerButton": { "alias": "hideDatePickerButton"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "childrenLabelSrOnly": { "alias": "childrenLabelSrOnly"; "required": false; "isSignal": true; }; "clearButton": { "alias": "clearButton"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1706
1784
  }
1707
1785
 
1708
- declare class FoehnDateTimeComponent extends FoehnInputComponent<number[]> {
1786
+ declare class FoehnDateTimeComponent extends FoehnInputComponent<(number | null)[]> {
1709
1787
  readonly disableDay: _angular_core.InputSignal<boolean>;
1710
1788
  readonly disableMonth: _angular_core.InputSignal<boolean>;
1711
1789
  readonly disableYear: _angular_core.InputSignal<boolean>;
1712
- readonly minDate: _angular_core.InputSignal<number[]>;
1713
- readonly maxDate: _angular_core.InputSignal<number[]>;
1790
+ readonly minDate: _angular_core.InputSignal<number[] | undefined>;
1791
+ readonly maxDate: _angular_core.InputSignal<number[] | undefined>;
1714
1792
  readonly hideDatePickerButton: _angular_core.InputSignal<boolean>;
1715
1793
  readonly childrenLabelSrOnly: _angular_core.InputSignal<boolean>;
1716
1794
  readonly clearButton: _angular_core.InputSignal<boolean>;
1717
- date: number[];
1718
- time: string;
1719
- private userInputTimeSubject;
1720
- private timeModelChangeSubject;
1721
- private dateHelper;
1795
+ readonly date: _angular_core.WritableSignal<(number | null)[] | null>;
1796
+ readonly time: _angular_core.WritableSignal<string | null>;
1797
+ private readonly userInputTimeSubject;
1798
+ private readonly timeModelChangeSubject;
1799
+ private readonly dateHelper;
1800
+ private readonly pendingTasksService;
1801
+ /**
1802
+ * The application is not stable (e.g. fixture.whenStable() in tests) while a time user input is debounced.
1803
+ */
1804
+ private removePendingTimeInputTask;
1722
1805
  constructor();
1723
1806
  updateDateTime(): void;
1724
1807
  handleUserInput(): void;
1725
- timeModelChange(value: string): void;
1726
- handleUserInputTime(value: string): void;
1808
+ timeModelChange(value: string | null | undefined): void;
1809
+ handleUserInputTime(value: string | null | undefined): void;
1727
1810
  handleUserInputDate(): void;
1728
- onModelChange(value: number[]): void;
1729
- getValidValue(): number[] | null | undefined;
1811
+ onModelChange(_value: (number | null)[] | null): void;
1812
+ getValidValue(): (number | null)[] | null | undefined;
1730
1813
  resetModel(): void;
1731
1814
  isEmpty(): boolean;
1732
1815
  isEmptyDependingOnDisabled(): boolean;
1733
1816
  private isTimeEmpty;
1734
1817
  private isDateEmpty;
1735
1818
  private isDateEmptyDependingOnDisabled;
1819
+ private stopPendingTimeInputTask;
1736
1820
  private toNumber;
1737
1821
  private numberToString;
1738
1822
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnDateTimeComponent, never>;
@@ -1742,15 +1826,19 @@ declare class FoehnDateTimeComponent extends FoehnInputComponent<number[]> {
1742
1826
  declare class FoehnTimeComponent extends FoehnInputStringComponent {
1743
1827
  readonly childrenLabelSrOnly: _angular_core.InputSignal<boolean>;
1744
1828
  readonly clearButton: _angular_core.InputSignal<boolean>;
1745
- hour: string;
1746
- minute: string;
1747
- private dateHelper;
1829
+ readonly hour: _angular_core.WritableSignal<string | null>;
1830
+ readonly minute: _angular_core.WritableSignal<string | null>;
1831
+ private readonly dateHelper;
1748
1832
  constructor();
1749
1833
  updateTime(): void;
1750
1834
  handleUserInput(): void;
1751
- onModelChange(value: string): void;
1835
+ onModelChange(_value: string): void;
1752
1836
  resetModel(): void;
1753
1837
  isEmpty(): boolean;
1838
+ /**
1839
+ * @returns the part of the time of the model, the previous value when the model is not a complete time
1840
+ */
1841
+ private getTimePart;
1754
1842
  private getValidValue;
1755
1843
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnTimeComponent, never>;
1756
1844
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnTimeComponent, "foehn-input-time", never, { "childrenLabelSrOnly": { "alias": "childrenLabelSrOnly"; "required": false; "isSignal": true; }; "clearButton": { "alias": "clearButton"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -1758,10 +1846,10 @@ declare class FoehnTimeComponent extends FoehnInputStringComponent {
1758
1846
 
1759
1847
  declare class FoehnInputNav13Component extends FoehnInputStringComponent implements OnInit {
1760
1848
  PREFIX_NAVS: string;
1761
- part2: string;
1762
- part3: string;
1763
- part4: string;
1764
- readonly label: _angular_core.InputSignalWithTransform<string, string>;
1849
+ readonly part2: _angular_core.WritableSignal<string | null>;
1850
+ readonly part3: _angular_core.WritableSignal<string | null>;
1851
+ readonly part4: _angular_core.WritableSignal<string | null>;
1852
+ readonly label: _angular_core.InputSignalWithTransform<string | undefined, string | undefined>;
1765
1853
  constructor();
1766
1854
  ngOnInit(): void;
1767
1855
  updateNavs(): void;
@@ -1788,15 +1876,15 @@ declare class FoehnBooleanRadioComponent extends FoehnInputComponent<boolean> {
1788
1876
  }
1789
1877
 
1790
1878
  declare class DisplayCurrencyPipe implements PipeTransform {
1791
- private currencyHelper;
1792
- transform(value: number | string, currency?: string, fixedDecimalCount?: number, showZero?: boolean): string;
1879
+ private readonly currencyHelper;
1880
+ transform(value: number | string | null | undefined, currency?: string, fixedDecimalCount?: number, showZero?: boolean): string | null;
1793
1881
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DisplayCurrencyPipe, never>;
1794
1882
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<DisplayCurrencyPipe, "displayCurrency", true>;
1795
1883
  }
1796
1884
 
1797
1885
  declare class DisplayDatePipe implements PipeTransform {
1798
1886
  private readonly dateHelper;
1799
- transform(value: Date | number[], showTime?: boolean): any;
1887
+ transform(value: Date | number[] | null | undefined, showTime?: boolean): string | null;
1800
1888
  private transformFromDate;
1801
1889
  private transformFromArray;
1802
1890
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DisplayDatePipe, never>;
@@ -1804,19 +1892,19 @@ declare class DisplayDatePipe implements PipeTransform {
1804
1892
  }
1805
1893
 
1806
1894
  declare class FormatAvsPipe implements PipeTransform {
1807
- transform(value: string, _args?: string[]): string;
1895
+ transform(value: string | null | undefined, _args?: string[]): string | null;
1808
1896
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormatAvsPipe, never>;
1809
1897
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<FormatAvsPipe, "formatAvs", true>;
1810
1898
  }
1811
1899
 
1812
1900
  declare class FormatIdePipe implements PipeTransform {
1813
- transform(value: string, _args?: string[]): string;
1901
+ transform(value: string | null | undefined, _args?: string[]): string;
1814
1902
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormatIdePipe, never>;
1815
1903
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<FormatIdePipe, "formatIde", true>;
1816
1904
  }
1817
1905
 
1818
1906
  declare class LineBreakAsHtmlPipe implements PipeTransform {
1819
- transform(text: string): string;
1907
+ transform(text: string | undefined | null): string;
1820
1908
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineBreakAsHtmlPipe, never>;
1821
1909
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<LineBreakAsHtmlPipe, "lineBreakAsHtml", true>;
1822
1910
  }
@@ -1828,12 +1916,13 @@ declare const GrowlType: {
1828
1916
  DANGER: string;
1829
1917
  };
1830
1918
 
1831
- declare class SdkDictionaryPipe implements PipeTransform {
1832
- private dictionaryService;
1833
- private ref;
1834
- private asyncPipe;
1919
+ declare class SdkDictionaryPipe implements PipeTransform, OnDestroy {
1920
+ private readonly dictionaryService;
1921
+ private readonly ref;
1922
+ private readonly asyncPipe;
1835
1923
  constructor();
1836
1924
  transform(key: any, placeHolderType?: PlaceholderType): any;
1925
+ ngOnDestroy(): void;
1837
1926
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdkDictionaryPipe, never>;
1838
1927
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<SdkDictionaryPipe, "fromDictionary", true>;
1839
1928
  }
@@ -1858,15 +1947,15 @@ declare abstract class AbstractFoehnNavigationComponent {
1858
1947
 
1859
1948
  declare class FoehnNavigationComponent extends AbstractFoehnNavigationComponent implements OnInit {
1860
1949
  readonly transmitLabel: _angular_core.InputSignal<string>;
1861
- private navigationService;
1862
- private activatedRoute;
1950
+ private readonly navigationService;
1951
+ private readonly activatedRoute;
1863
1952
  ngOnInit(): void;
1864
1953
  canShowNextButton(): boolean;
1865
1954
  canShowPreviousButton(): boolean;
1866
1955
  isForcedOnRecapForPendingPayment(): boolean;
1867
1956
  isLastFormPage(): boolean;
1868
- getNextRouteIndex(): number;
1869
- getPreviousRouteIndex(): number;
1957
+ getNextRouteIndex(): number | null;
1958
+ getPreviousRouteIndex(): number | null;
1870
1959
  getTotalRoutesSize(): number;
1871
1960
  isLinearRouting(): boolean;
1872
1961
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnNavigationComponent, never>;
@@ -1882,14 +1971,14 @@ declare class FoehnSimpleNavigationComponent extends AbstractFoehnNavigationComp
1882
1971
 
1883
1972
  declare class FoehnRemainingAlertsSummaryComponent {
1884
1973
  readonly remainingErrorNamesToIgnore: _angular_core.InputSignal<string[]>;
1885
- readonly remainingErrorsLabel: _angular_core.InputSignal<string>;
1974
+ readonly remainingErrorsLabel: _angular_core.InputSignal<string | null>;
1886
1975
  showDebugData: Observable<boolean>;
1887
1976
  hasRemainingErrors: Observable<boolean>;
1888
1977
  remainingErrors: Observable<FormError[]>;
1889
1978
  remainingErrorsMessage: Observable<string>;
1890
- private gesdemService;
1891
- private applicationInfoService;
1892
- private dictionaryService;
1979
+ private readonly gesdemService;
1980
+ private readonly applicationInfoService;
1981
+ private readonly dictionaryService;
1893
1982
  private readonly DEFAULT_REMAINING_ERRORS_MSG_KEY;
1894
1983
  private reference;
1895
1984
  constructor();
@@ -1898,26 +1987,26 @@ declare class FoehnRemainingAlertsSummaryComponent {
1898
1987
  }
1899
1988
 
1900
1989
  declare class FoehnValidationAlertSummaryComponent {
1901
- readonly form: _angular_core.InputSignal<FoehnFormComponent>;
1990
+ readonly form: _angular_core.InputSignal<FoehnFormComponent | undefined>;
1902
1991
  private readonly validationHandlerService;
1903
1992
  get shouldDisplayAlertSummary(): boolean;
1904
1993
  get errors(): ComponentError[];
1905
1994
  scrollToError(event: Event, errorId: string): void;
1906
1995
  trackByError(index: number, e: ComponentError): string;
1907
- protected findFirstHtmlInputElementEnabled(elementNodeListOf: NodeListOf<Element>): HTMLInputElement;
1996
+ protected findFirstHtmlInputElementEnabled(elementNodeListOf: NodeListOf<Element>): HTMLInputElement | null;
1908
1997
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnValidationAlertSummaryComponent, never>;
1909
1998
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnValidationAlertSummaryComponent, "foehn-validation-alert-summary", never, { "form": { "alias": "form"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1910
1999
  }
1911
- declare class ComponentError {
2000
+ interface ComponentError {
1912
2001
  name: string;
1913
2002
  message: string;
1914
2003
  componentLabel: string;
1915
2004
  }
1916
2005
 
1917
2006
  declare class FoehnValidationAlertsComponent {
1918
- readonly component: _angular_core.InputSignal<FoehnInputComponent<any>>;
2007
+ readonly component: _angular_core.InputSignal<FoehnInputComponent<any> | undefined>;
1919
2008
  readonly shouldErrorsBeLive: _angular_core.InputSignal<boolean>;
1920
- private validationHandlerService;
2009
+ private readonly validationHandlerService;
1921
2010
  get errorMessages(): FormError[];
1922
2011
  getMessage(error: FormError): string;
1923
2012
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnValidationAlertsComponent, never>;
@@ -1925,7 +2014,7 @@ declare class FoehnValidationAlertsComponent {
1925
2014
  }
1926
2015
 
1927
2016
  declare abstract class AbstractIconComponent {
1928
- readonly title: _angular_core.InputSignal<string>;
2017
+ readonly title: _angular_core.InputSignal<string | undefined>;
1929
2018
  abstract iconName: IconDefinition;
1930
2019
  abstract defaultTitle: string;
1931
2020
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AbstractIconComponent, never>;
@@ -2101,23 +2190,23 @@ declare class FoehnIconUserComponent extends AbstractIconComponent {
2101
2190
  }
2102
2191
 
2103
2192
  declare class PageChangeEvent {
2104
- previousPage: number;
2105
- currentPage: number;
2106
- pageCount: number;
2193
+ previousPage: number | undefined;
2194
+ currentPage: number | undefined;
2195
+ pageCount: number | undefined;
2107
2196
  }
2108
2197
 
2109
2198
  declare class FoehnListComponent implements OnChanges {
2110
2199
  readonly itemsPerPage: _angular_core.InputSignal<number>;
2111
- readonly fixedPageCount: _angular_core.InputSignal<number>;
2112
- readonly list: _angular_core.InputSignal<unknown[]>;
2200
+ readonly fixedPageCount: _angular_core.InputSignal<number | undefined>;
2201
+ readonly list: _angular_core.InputSignal<unknown[] | undefined>;
2113
2202
  readonly id: _angular_core.InputSignal<string>;
2114
2203
  readonly previousLabel: _angular_core.InputSignal<string>;
2115
2204
  readonly nextLabel: _angular_core.InputSignal<string>;
2116
2205
  readonly trackByFn: _angular_core.InputSignal<(index: number, _item: unknown) => number | string>;
2117
- readonly templateVariable: _angular_core.Signal<TemplateRef<any>>;
2206
+ readonly templateVariable: _angular_core.Signal<TemplateRef<any> | undefined>;
2118
2207
  readonly pageChange: _angular_core.OutputEmitterRef<PageChangeEvent>;
2119
- currentPage: number;
2120
- filteredList: unknown[];
2208
+ readonly currentPage: _angular_core.WritableSignal<number>;
2209
+ readonly filteredList: _angular_core.WritableSignal<unknown[]>;
2121
2210
  ngOnChanges(changes: SimpleChanges): void;
2122
2211
  previousPage(): void;
2123
2212
  hasPreviousPage(): boolean;
@@ -2131,53 +2220,53 @@ declare class FoehnListComponent implements OnChanges {
2131
2220
  }
2132
2221
 
2133
2222
  declare class FoehnTableColumnConfiguration<T> {
2134
- id: string;
2135
- columnLabelKey: string;
2223
+ id: string | undefined;
2224
+ columnLabelKey: string | undefined;
2136
2225
  isImportant?: (item: T) => boolean;
2137
2226
  iconGetter?: (item: T) => {
2138
2227
  icon: IconDefinition;
2139
2228
  label: string;
2140
- };
2229
+ } | null;
2141
2230
  valueGetter?: (item: T) => string;
2142
2231
  template?: TemplateRef<unknown>;
2143
2232
  sortAttribute?: string;
2144
2233
  }
2145
2234
 
2146
2235
  declare class FoehnTablePageChangeEvent {
2147
- previousPage: number;
2148
- currentPage: number;
2149
- pageCount: number;
2236
+ previousPage: number | undefined;
2237
+ currentPage: number | undefined;
2238
+ pageCount: number | undefined;
2150
2239
  }
2151
2240
 
2152
2241
  declare class RowElement {
2153
- indexInArray: number;
2154
- element: HTMLTableRowElement;
2242
+ indexInArray: number | undefined;
2243
+ element: HTMLTableRowElement | undefined;
2155
2244
  }
2156
2245
 
2157
2246
  declare class TableSort {
2158
- sortDirection: 'DESC' | 'ASC';
2247
+ sortDirection: 'DESC' | 'ASC' | undefined;
2159
2248
  sortAttribute?: string;
2160
2249
  }
2161
2250
 
2162
2251
  declare class FoehnTableComponent extends FoehnInputComponent<unknown[]> implements OnChanges {
2163
- readonly columnsConfiguration: _angular_core.ModelSignal<FoehnTableColumnConfiguration<unknown>[]>;
2252
+ readonly columnsConfiguration: _angular_core.ModelSignal<FoehnTableColumnConfiguration<any>[] | undefined>;
2164
2253
  readonly itemsPerPage: _angular_core.InputSignal<number>;
2165
- readonly fixedPageCount: _angular_core.InputSignal<number>;
2166
- readonly sort: _angular_core.ModelSignal<TableSort>;
2167
- readonly title: _angular_core.InputSignal<string>;
2168
- readonly totalElements: _angular_core.InputSignal<number>;
2169
- readonly titleSrOnly: _angular_core.InputSignal<boolean>;
2254
+ readonly fixedPageCount: _angular_core.InputSignal<number | undefined>;
2255
+ readonly sort: _angular_core.ModelSignal<TableSort | undefined>;
2256
+ readonly title: _angular_core.InputSignal<string | undefined>;
2257
+ readonly totalElements: _angular_core.InputSignal<number | undefined>;
2258
+ readonly titleSrOnly: _angular_core.InputSignal<boolean | undefined>;
2170
2259
  readonly previousLabel: _angular_core.InputSignal<string>;
2171
2260
  readonly nextLabel: _angular_core.InputSignal<string>;
2172
2261
  readonly tableClass: _angular_core.InputSignal<string>;
2173
2262
  readonly trackByFn: _angular_core.InputSignal<TrackByFunction<unknown>>;
2174
2263
  readonly pageChange: _angular_core.OutputEmitterRef<FoehnTablePageChangeEvent>;
2175
2264
  readonly rowClick: _angular_core.OutputEmitterRef<RowElement>;
2176
- currentPage: number;
2177
- filteredList: unknown[];
2178
- private _list;
2265
+ readonly currentPage: _angular_core.WritableSignal<number>;
2266
+ readonly filteredList: _angular_core.WritableSignal<unknown[]>;
2267
+ private readonly _list;
2179
2268
  onModelChange(value: unknown[]): void;
2180
- trackFoehnTableColumnConfiguration: TrackByFunction<FoehnTableColumnConfiguration<unknown>>;
2269
+ trackFoehnTableColumnConfiguration: TrackByFunction<FoehnTableColumnConfiguration<any>>;
2181
2270
  ngOnChanges(changes: SimpleChanges): void;
2182
2271
  previousPage(): void;
2183
2272
  hasPreviousPage(): boolean;
@@ -2187,6 +2276,7 @@ declare class FoehnTableComponent extends FoehnInputComponent<unknown[]> impleme
2187
2276
  pagesCount(): number;
2188
2277
  triggerSort(sortAttribute: string): void;
2189
2278
  manageRowClick(rowElem: HTMLTableRowElement, item: unknown): void;
2279
+ onSpaceKeydown(event: Event, rowElem: HTMLTableRowElement, item: unknown): void;
2190
2280
  private buildFilteredList;
2191
2281
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnTableComponent, never>;
2192
2282
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnTableComponent, "foehn-table", never, { "columnsConfiguration": { "alias": "columnsConfiguration"; "required": false; "isSignal": true; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; "isSignal": true; }; "fixedPageCount": { "alias": "fixedPageCount"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "totalElements": { "alias": "totalElements"; "required": false; "isSignal": true; }; "titleSrOnly": { "alias": "titleSrOnly"; "required": false; "isSignal": true; }; "previousLabel": { "alias": "previousLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "tableClass": { "alias": "tableClass"; "required": false; "isSignal": true; }; "trackByFn": { "alias": "trackByFn"; "required": false; "isSignal": true; }; }, { "columnsConfiguration": "columnsConfigurationChange"; "sort": "sortChange"; "pageChange": "pageChange"; "rowClick": "rowClick"; }, never, ["*"], true, never>;
@@ -2204,8 +2294,8 @@ declare class RegisterNgModelService {
2204
2294
  }
2205
2295
 
2206
2296
  declare class FoehnUserConnectedAsComponent implements OnInit {
2207
- connectedAs: Observable<string>;
2208
- private sessionInfo;
2297
+ connectedAs: Observable<string | null | undefined> | undefined;
2298
+ private readonly sessionInfo;
2209
2299
  ngOnInit(): void;
2210
2300
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnUserConnectedAsComponent, never>;
2211
2301
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnUserConnectedAsComponent, "foehn-user-connected-as", never, {}, {}, never, never, true, never>;
@@ -2218,12 +2308,12 @@ declare const OIDC_ENABLED: InjectionToken<boolean>;
2218
2308
  declare const RECAPTCHA_API_URL = "api/recaptcha";
2219
2309
  declare const CAPTCHA_ERROR_NAME = "recaptcha";
2220
2310
  declare class RecaptchaService {
2221
- private http;
2222
- private sessionInfo;
2223
- private route;
2224
- private validationHandlerService;
2225
- private gesdemService;
2226
- private gesdemEventService;
2311
+ private readonly http;
2312
+ private readonly sessionInfo;
2313
+ private readonly route;
2314
+ private readonly validationHandlerService;
2315
+ private readonly gesdemService;
2316
+ private readonly gesdemEventService;
2227
2317
  private readonly applicationInfoService;
2228
2318
  private readonly sdkLogsService;
2229
2319
  private readonly errors;
@@ -2234,14 +2324,14 @@ declare class RecaptchaService {
2234
2324
  private token;
2235
2325
  private gesdemFormErrors;
2236
2326
  constructor();
2237
- onSuccess(token: string): void;
2327
+ onSuccess(token: string | null): void;
2238
2328
  addError(message: string): void;
2239
2329
  clearErrors(): void;
2240
2330
  getErrors(): Observable<FormError[]>;
2241
2331
  getShouldDisplay(): Observable<boolean>;
2242
- getPublicKey(): Observable<string>;
2243
- getToken(): string;
2244
- getCaptchaScriptUrl(): Observable<string>;
2332
+ getPublicKey(): Observable<string | null>;
2333
+ getToken(): string | null;
2334
+ getCaptchaScriptUrl(): Observable<string | null>;
2245
2335
  private initErrorObservable;
2246
2336
  private initShouldDisplayObservable;
2247
2337
  private checkBypassProperty;
@@ -2266,17 +2356,18 @@ declare global {
2266
2356
  *
2267
2357
  */
2268
2358
  declare class GrecaptchaComponent implements OnInit, OnDestroy {
2269
- readonly siteKey: _angular_core.InputSignal<string>;
2359
+ readonly siteKey: _angular_core.InputSignal<string | undefined>;
2270
2360
  readonly loaded: _angular_core.OutputEmitterRef<boolean>;
2271
2361
  readonly scriptError: _angular_core.OutputEmitterRef<boolean>;
2272
- readonly tokenOnSuccess: _angular_core.OutputEmitterRef<string>;
2362
+ readonly tokenOnSuccess: _angular_core.OutputEmitterRef<string | null>;
2273
2363
  readonly destroyed: _angular_core.OutputEmitterRef<boolean>;
2274
- readonly recaptchaContainer: _angular_core.Signal<ElementRef<any>>;
2275
- readonly recaptchaScriptContainer: _angular_core.Signal<ElementRef<any>>;
2364
+ readonly recaptchaContainer: _angular_core.Signal<ElementRef<any> | undefined>;
2365
+ readonly recaptchaScriptContainer: _angular_core.Signal<ElementRef<any> | undefined>;
2276
2366
  private readonly recaptchaService;
2277
2367
  private readonly sdkLogsService;
2278
2368
  private readonly destroyRef;
2279
2369
  private widgetId;
2370
+ private scriptElement;
2280
2371
  ngOnInit(): void;
2281
2372
  ngOnDestroy(): void;
2282
2373
  reset(): void;
@@ -2294,24 +2385,20 @@ declare class GrecaptchaComponent implements OnInit, OnDestroy {
2294
2385
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<GrecaptchaComponent, "app-grecaptcha", never, { "siteKey": { "alias": "siteKey"; "required": false; "isSignal": true; }; }, { "loaded": "loaded"; "scriptError": "scriptError"; "tokenOnSuccess": "tokenOnSuccess"; "destroyed": "destroyed"; }, never, never, true, never>;
2295
2386
  }
2296
2387
 
2297
- declare class SdkRecaptchaComponent implements OnInit, OnDestroy {
2298
- readonly grecaptcha: _angular_core.Signal<GrecaptchaComponent>;
2388
+ declare class SdkRecaptchaComponent {
2389
+ readonly grecaptcha: _angular_core.Signal<GrecaptchaComponent | undefined>;
2299
2390
  shouldDisplay: Observable<boolean>;
2300
- isLoaded: boolean;
2301
- hasLoadingError: boolean;
2391
+ readonly isLoaded: _angular_core.WritableSignal<boolean>;
2392
+ readonly hasLoadingError: _angular_core.WritableSignal<boolean>;
2302
2393
  errors: Observable<FormError[]>;
2303
- publicKey: Observable<string>;
2304
- recaptchaUrlForUserError: Observable<string>;
2305
- private recaptchaService;
2306
- private cdr;
2307
- private destroyRef;
2308
- private forceDetectChange;
2394
+ publicKey: Observable<string | null>;
2395
+ recaptchaUrlForUserError: Observable<string | null>;
2396
+ private readonly recaptchaService;
2397
+ private readonly destroyRef;
2309
2398
  constructor();
2310
- ngOnInit(): void;
2311
- ngOnDestroy(): void;
2312
2399
  setIsLoaded(isLoaded: boolean): void;
2313
2400
  setScriptError(scriptError: boolean): void;
2314
- tokenOnSuccess(token: string): void;
2401
+ tokenOnSuccess(token: string | null): void;
2315
2402
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdkRecaptchaComponent, never>;
2316
2403
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdkRecaptchaComponent, "captcha", never, {}, {}, never, never, true, never>;
2317
2404
  }
@@ -2328,12 +2415,13 @@ declare const IAM_ACV_OIDC_REDIRECT_LOCATION_REGEX: InjectionToken<RegExp>;
2328
2415
 
2329
2416
  declare class RedirectComponent implements OnDestroy {
2330
2417
  isModalVisible: Observable<boolean>;
2331
- counter: number;
2418
+ readonly counter: _angular_core.WritableSignal<number>;
2332
2419
  redirectUrl: string;
2333
- private iamInterceptor;
2334
- private foehnPageModalService;
2335
- private sessionInfo;
2336
- private registerNgModelService;
2420
+ private readonly DEFAULT_COUNTER;
2421
+ private readonly iamInterceptor;
2422
+ private readonly foehnPageModalService;
2423
+ private readonly sessionInfo;
2424
+ private readonly registerNgModelService;
2337
2425
  private intervalId;
2338
2426
  constructor();
2339
2427
  ngOnDestroy(): void;
@@ -2345,44 +2433,54 @@ declare class RedirectComponent implements OnDestroy {
2345
2433
  }
2346
2434
 
2347
2435
  declare class FoehnConfirmModalService {
2348
- private content;
2436
+ private readonly content;
2349
2437
  private readonly visible;
2350
2438
  private resolveCallback;
2351
2439
  private rejectCallback;
2352
2440
  constructor();
2353
2441
  getIsVisible(): Observable<boolean>;
2354
- getContent(): Observable<FoehnConfirmModalContent>;
2442
+ getContent(): Observable<FoehnConfirmModalContent | null>;
2355
2443
  close(): void;
2356
2444
  ok(): void;
2357
- openConfirmModal(content: FoehnConfirmModalContent): Promise<boolean>;
2445
+ openConfirmModal(content: FoehnConfirmModalContent | null | undefined): Promise<boolean>;
2358
2446
  private reset;
2359
2447
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnConfirmModalService, never>;
2360
2448
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FoehnConfirmModalService>;
2361
2449
  }
2362
2450
 
2363
2451
  declare class DocumentReference {
2364
- reference: string;
2365
- filename: string;
2366
- key: string;
2367
- label: string;
2368
- mimeType: string;
2369
- fileSize: number;
2452
+ reference: string | undefined | null;
2453
+ filename: string | undefined | null;
2454
+ key: string | undefined | null;
2455
+ label: string | undefined | null;
2456
+ mimeType: string | undefined | null;
2457
+ fileSize: number | undefined | null;
2370
2458
  readonly?: boolean;
2371
2459
  }
2372
2460
  declare class DocumentReferenceWithFile extends DocumentReference {
2373
- file: File;
2461
+ file: File | undefined | null;
2374
2462
  }
2375
2463
 
2464
+ declare const getSafeFileNameForErrorMessage: (fileName: string) => string;
2465
+ /**
2466
+ * Limits of an uploader overriding the ones of the application info, displayed in its error messages.
2467
+ */
2468
+ interface UploaderErrorLimits {
2469
+ overrideAcceptedExtensions?: string;
2470
+ overrideMaxFileNameLength?: number;
2471
+ overrideIllegalCharacters?: string;
2472
+ maxFileSizeInMo?: number;
2473
+ }
2376
2474
  declare class UploaderHelper {
2377
- private dictionaryService;
2378
- private applicationInfoService;
2379
- private _accept;
2475
+ private readonly dictionaryService;
2476
+ private readonly applicationInfoService;
2477
+ private readonly _accept;
2380
2478
  private _fileMaxSizeInBytesByFormKey;
2381
2479
  private _maxFileNameLength;
2382
2480
  private _illegalCharacters;
2383
2481
  private _fileMinSizeInBytes;
2384
2482
  private readonly CHAR_TO_REPLACE;
2385
- private destroyRef;
2483
+ private readonly destroyRef;
2386
2484
  constructor(dictionaryService: SdkDictionaryService, applicationInfoService: ApplicationInfoService);
2387
2485
  get fileMinSizeInBytes(): number;
2388
2486
  set fileMinSizeInBytes(value: number);
@@ -2392,29 +2490,46 @@ declare class UploaderHelper {
2392
2490
  set maxFileNameLength(value: number);
2393
2491
  get accept(): string;
2394
2492
  set accept(value: string);
2395
- getMaxFileSizeInBytesForFormKey(formKey: string): number;
2396
- isFileTooBig(formKey: string, fileSizeInBytes: number): boolean;
2493
+ getMaxFileSizeInBytesForFormKey(formKey: string): number | undefined | null;
2494
+ /**
2495
+ * The maximum size of a file: the one of its form key (application info) and `maxFileSizeInMo` (a limit of the
2496
+ * component), the smallest of both.
2497
+ */
2498
+ getMaxFileSizeInBytes(formKey: string, maxFileSizeInMo?: number): number | null;
2499
+ isFileTooBig(formKey: string, fileSizeInBytes: number, maxFileSizeInMo?: number): boolean;
2397
2500
  isFileTooSmall(fileSizeInBytes: number): boolean;
2398
- isFileNameLengthValid(filename: string, overrideMaxFileNameLength: number): boolean;
2399
- isFileNameNameValid(filename: string, overrideIllegalCharacters: string): boolean;
2501
+ isFileNameLengthValid(filename: string, overrideMaxFileNameLength?: number): boolean;
2502
+ isFileNameNameValid(filename: string, overrideIllegalCharacters?: string): boolean;
2400
2503
  getFileExtension(filename: string): string;
2401
- isFileExtensionValid(fileExtension: string, overrideAcceptedExtensions: string): boolean;
2402
- getUniqueErrorByCode(name: string, errorCode: string, fileName: string, customErrors: Record<string, string>, overrideAcceptedExtensions: string, overrideMaxFileNameLength: number, overrideIllegalCharacters: string): FormError;
2403
- addCustomErrorOrDefault(name: string, destinationErrors: FormError[], errorCode: string, fileName: string, customErrors: Record<string, string>, overrideAcceptedExtensions: string, overrideMaxFileNameLength: number, overrideIllegalCharacters: string): void;
2504
+ isFileExtensionValid(fileExtension: string, overrideAcceptedExtensions?: string): boolean;
2505
+ getUniqueErrorByCode(name: string, errorCode: string, fileName: string, customErrors: Record<string, string>, overrideAcceptedExtensions?: string, overrideMaxFileNameLength?: number, overrideIllegalCharacters?: string): FormError;
2506
+ addCustomErrorOrDefault(name: string, destinationErrors: FormError[], errorCode: string, fileName: string, customErrors: Record<string, string>, limits?: UploaderErrorLimits): void;
2507
+ /**
2508
+ * The default messages of the upload errors, in the current language.
2509
+ */
2510
+ getDefaultCustomErrors(): Record<string, string>;
2511
+ /**
2512
+ * The messages of the upload errors: the given custom errors, completed with the default messages.
2513
+ */
2514
+ mergeCustomErrors(customErrors: Record<string, string>, defaultCustomErrors?: Record<string, string>): Record<string, string>;
2515
+ /**
2516
+ * @deprecated Overwrites the given custom errors with the default messages: use `mergeCustomErrors()`.
2517
+ */
2404
2518
  createDefaultCustomErrors(customErrors: Record<string, string>): void;
2405
- getLocalErrors(name: string, files: File[], customErrors: Record<string, string>, overrideAcceptedExtensions: string, overrideMaxFileNameLength: number, overrideIllegalCharacters: string): FormError[];
2519
+ getLocalErrors(name: string, files: File[], customErrors: Record<string, string>, overrideAcceptedExtensions?: string, overrideMaxFileNameLength?: number, overrideIllegalCharacters?: string, maxFileSizeInMo?: number): FormError[];
2406
2520
  hasLiveUploadErrors(errors: FormError[]): boolean;
2407
2521
  preventAndStop(event: any): void;
2408
- getAllFilesCount(data: any): string;
2409
- getAllFilesSizeInMo(data: any): string;
2410
- toMegaOctets(size: number): string;
2411
- getTransfer(event: any): FileList;
2522
+ getAllFilesCount(data: any): string | null;
2523
+ getAllFilesSizeInMo(data: any): number | null;
2524
+ toMegaOctets(size: number): number;
2525
+ getTransfer(event: any): FileList | null;
2412
2526
  getGlobalInfos(data: any): string;
2413
- showGlobalInfos(data: any, hideGlobalInfos: boolean): boolean;
2527
+ showGlobalInfos(data: DocumentReference[] | File[] | undefined | null, hideGlobalInfos: boolean): boolean;
2414
2528
  mapToDocumentReference(file: File, label: string, key: string, isMultiple: boolean, uniqPrefix: number, globalSequence: number): DocumentReferenceWithFile;
2415
2529
  mapToFormData(documents: DocumentReferenceWithFile[], formKey: string, language: string): FormData;
2416
2530
  removeCommasInLabel(label: string): string;
2417
2531
  private isTooBig;
2532
+ private getUniqueError;
2418
2533
  private replaceErrorMessageKeys;
2419
2534
  private getDefaultUnknownErrorMessage;
2420
2535
  private normalizeKey;
@@ -2431,51 +2546,61 @@ declare abstract class AbstractFoehnUploaderComponent<T> extends FoehnInputCompo
2431
2546
  readonly readonly: _angular_core.InputSignal<boolean>;
2432
2547
  readonly hideGlobalInfos: _angular_core.InputSignal<boolean>;
2433
2548
  readonly multiple: _angular_core.InputSignal<boolean>;
2434
- readonly key: _angular_core.InputSignal<string>;
2435
- readonly overrideAcceptedExtensions: _angular_core.InputSignal<string>;
2436
- readonly overrideMaxFileNameLength: _angular_core.InputSignal<number>;
2437
- readonly overrideIllegalCharacters: _angular_core.InputSignal<string>;
2549
+ readonly key: _angular_core.InputSignal<string | undefined>;
2550
+ readonly overrideAcceptedExtensions: _angular_core.InputSignal<string | undefined>;
2551
+ readonly overrideMaxFileNameLength: _angular_core.InputSignal<number | undefined>;
2552
+ readonly overrideIllegalCharacters: _angular_core.InputSignal<string | undefined>;
2438
2553
  readonly showDeleteConfirmationMessage: _angular_core.InputSignal<boolean>;
2439
- readonly maxSimultaneousSelectedFiles: _angular_core.InputSignal<number>;
2440
- readonly maxFilesCount: _angular_core.InputSignal<number>;
2441
- readonly maxFilesSizeInMo: _angular_core.InputSignal<number>;
2554
+ readonly maxSimultaneousSelectedFiles: _angular_core.InputSignal<number | null>;
2555
+ readonly maxFilesCount: _angular_core.InputSignal<number | undefined>;
2556
+ readonly maxFilesSizeInMo: _angular_core.InputSignal<number | undefined>;
2442
2557
  readonly dragAndDrop: _angular_core.InputSignal<boolean>;
2443
2558
  readonly shouldDisplayFileSavedConfirmation: _angular_core.InputSignal<boolean>;
2444
- readonly chooseButtonLabel: _angular_core.InputSignal<string>;
2445
- readonly chooseButtonLabelMultiple: _angular_core.InputSignal<string>;
2446
- readonly dropZoneLabel: _angular_core.InputSignal<string>;
2447
- readonly dropZoneLabelMultiple: _angular_core.InputSignal<string>;
2448
- readonly deleteConfirmationMessage: _angular_core.InputSignal<string>;
2559
+ readonly chooseButtonLabel: _angular_core.InputSignal<string | undefined>;
2560
+ readonly chooseButtonLabelMultiple: _angular_core.InputSignal<string | undefined>;
2561
+ readonly dropZoneLabel: _angular_core.InputSignal<string | undefined>;
2562
+ readonly dropZoneLabelMultiple: _angular_core.InputSignal<string | undefined>;
2563
+ readonly deleteConfirmationMessage: _angular_core.InputSignal<string | undefined>;
2449
2564
  uploaderHelper: UploaderHelper;
2450
2565
  showDropZone: boolean;
2451
2566
  protected applicationInfoService: ApplicationInfoService;
2452
2567
  protected confirmModalService: FoehnConfirmModalService;
2453
2568
  protected dictionaryService: SdkDictionaryService;
2454
2569
  protected growlService: GrowlBrokerService;
2455
- protected deleteDocumentSubject: BehaviorSubject<DocumentReference>;
2456
- protected uploadFilesSubject: BehaviorSubject<File[]>;
2457
- protected currentLanguage: string;
2570
+ protected deleteDocumentSubject: BehaviorSubject<DocumentReference | File | null>;
2571
+ protected uploadFilesSubject: BehaviorSubject<File[] | null>;
2572
+ protected currentLanguage: string | undefined;
2573
+ protected readonly uploaderCustomErrors: _angular_core.Signal<Record<string, string>>;
2458
2574
  protected readonly resolvedChooseButtonLabel: _angular_core.Signal<string>;
2459
2575
  protected readonly resolvedChooseButtonLabelMultiple: _angular_core.Signal<string>;
2460
2576
  protected readonly resolvedDropZoneLabel: _angular_core.Signal<string>;
2461
2577
  protected readonly resolvedDropZoneLabelMultiple: _angular_core.Signal<string>;
2462
2578
  protected readonly resolvedDeleteConfirmationMessage: _angular_core.Signal<string>;
2579
+ private readonly defaultCustomErrors;
2463
2580
  constructor();
2464
2581
  abstract get addedFiles(): unknown[];
2465
2582
  onDocumentDragOver(event: any): void;
2466
2583
  onDocumentDragLeave(event: any): void;
2467
2584
  onDocumentDrop(event: any): void;
2468
- ngOnInit(): void;
2469
- trackByDocument(index: number, document: DocumentReference): string;
2470
- removeFile(document: any): void;
2471
- showGlobalInfos(data: any): boolean;
2472
- getGlobalInfos(data: any): string;
2473
- toMegaOctets(size: number): string;
2474
2585
  onDragenter(event: any): void;
2475
2586
  onDragleave(event: any): void;
2476
2587
  onDragover(event: any): void;
2588
+ ngOnInit(): void;
2589
+ trackByDocument(index: number, document: DocumentReference): string;
2590
+ removeFile(document: DocumentReference | File): void;
2591
+ showGlobalInfos(data: DocumentReference[] | File[] | undefined | null): boolean;
2592
+ getGlobalInfos(data: DocumentReference[] | File[] | undefined | null): string;
2593
+ toMegaOctets(size: number): number;
2477
2594
  hasLiveUploadErrors(): boolean;
2478
- protected removeFileOnConfirmation(document: any): void;
2595
+ protected removeFileOnConfirmation(document: DocumentReference | File): void;
2596
+ /**
2597
+ * A maximum size of each file, in addition to the one of its form key in the application info.
2598
+ */
2599
+ protected getMaxFileSizeInMo(): number | undefined;
2600
+ /**
2601
+ * The limits of this uploader displayed in its error messages.
2602
+ */
2603
+ protected getErrorLimits(): UploaderErrorLimits;
2479
2604
  protected displayLocalErrors(files: File[]): FormError[];
2480
2605
  protected isMaxSelectionReached(files: File[]): boolean;
2481
2606
  protected isMaxFilesCountReached(files: File[]): boolean;
@@ -2485,22 +2610,33 @@ declare abstract class AbstractFoehnUploaderComponent<T> extends FoehnInputCompo
2485
2610
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AbstractFoehnUploaderComponent<any>, never, never, { "showUploadButton": { "alias": "showUploadButton"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hideGlobalInfos": { "alias": "hideGlobalInfos"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "key": { "alias": "key"; "required": false; "isSignal": true; }; "overrideAcceptedExtensions": { "alias": "overrideAcceptedExtensions"; "required": false; "isSignal": true; }; "overrideMaxFileNameLength": { "alias": "overrideMaxFileNameLength"; "required": false; "isSignal": true; }; "overrideIllegalCharacters": { "alias": "overrideIllegalCharacters"; "required": false; "isSignal": true; }; "showDeleteConfirmationMessage": { "alias": "showDeleteConfirmationMessage"; "required": false; "isSignal": true; }; "maxSimultaneousSelectedFiles": { "alias": "maxSimultaneousSelectedFiles"; "required": false; "isSignal": true; }; "maxFilesCount": { "alias": "maxFilesCount"; "required": false; "isSignal": true; }; "maxFilesSizeInMo": { "alias": "maxFilesSizeInMo"; "required": false; "isSignal": true; }; "dragAndDrop": { "alias": "dragAndDrop"; "required": false; "isSignal": true; }; "shouldDisplayFileSavedConfirmation": { "alias": "shouldDisplayFileSavedConfirmation"; "required": false; "isSignal": true; }; "chooseButtonLabel": { "alias": "chooseButtonLabel"; "required": false; "isSignal": true; }; "chooseButtonLabelMultiple": { "alias": "chooseButtonLabelMultiple"; "required": false; "isSignal": true; }; "dropZoneLabel": { "alias": "dropZoneLabel"; "required": false; "isSignal": true; }; "dropZoneLabelMultiple": { "alias": "dropZoneLabelMultiple"; "required": false; "isSignal": true; }; "deleteConfirmationMessage": { "alias": "deleteConfirmationMessage"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2486
2611
  }
2487
2612
 
2613
+ interface DocumentChanges {
2614
+ filesToAdd: File[];
2615
+ documentsToDelete: DocumentReference[];
2616
+ }
2617
+ /**
2618
+ * Computes what needs to be uploaded/deleted server-side by comparing a document list
2619
+ * currently held in a "local upload" model (mixing already persisted `DocumentReference`
2620
+ * and pending `DocumentReferenceWithFile`) against the list as it was originally loaded.
2621
+ */
2622
+ declare function splitDocumentChanges(current: DocumentReference[] | undefined | null, original: DocumentReference[] | undefined | null): DocumentChanges;
2623
+
2488
2624
  declare class PendingFiles {
2489
- url: string;
2490
- formKey: string;
2491
- label: string;
2492
- files: File[];
2493
- key: string;
2494
- isMultiple: boolean;
2495
- shouldDisplayFileSavedConfirmation: boolean;
2625
+ url: string | undefined | null;
2626
+ formKey: string | undefined | null;
2627
+ label: string | undefined | null;
2628
+ files: File[] | undefined | null;
2629
+ key: string | undefined | null;
2630
+ isMultiple: boolean | undefined | null;
2631
+ shouldDisplayFileSavedConfirmation: boolean | undefined | null;
2496
2632
  }
2497
2633
 
2498
2634
  declare class PageUploadLimitService {
2499
- private dictionaryService;
2500
- private growlService;
2635
+ private readonly dictionaryService;
2636
+ private readonly growlService;
2501
2637
  private pageMaxFilesCount;
2502
2638
  private pageMaxFilesSizeInMo;
2503
- private registeredUploaders;
2639
+ private readonly registeredUploaders;
2504
2640
  setPageMaxFilesCount(countLimit: number): void;
2505
2641
  setPageMaxFilesSizeInMo(maxSizeInMo: number): void;
2506
2642
  registerUploader(uploader: UploaderRegistration): void;
@@ -2513,10 +2649,10 @@ declare class PageUploadLimitService {
2513
2649
  }
2514
2650
 
2515
2651
  declare class DocumentError {
2516
- key: string;
2517
- label: string;
2518
- formKey: string;
2519
- errorCode: string;
2652
+ key: string | undefined | null;
2653
+ label: string | undefined | null;
2654
+ formKey: string | undefined | null;
2655
+ errorCode: string | undefined | null;
2520
2656
  }
2521
2657
  declare class DocumentsWithErrors {
2522
2658
  documents: DocumentReference[];
@@ -2524,40 +2660,40 @@ declare class DocumentsWithErrors {
2524
2660
  }
2525
2661
 
2526
2662
  declare class MultiUploadService {
2527
- private httpClient;
2528
- private growlService;
2529
- private gesdemHandlerService;
2530
- private applicationInfoService;
2531
- private dictionaryService;
2663
+ private readonly httpClient;
2664
+ private readonly growlService;
2665
+ private readonly gesdemHandlerService;
2666
+ private readonly applicationInfoService;
2667
+ private readonly dictionaryService;
2532
2668
  private readonly uploadProgressService;
2533
2669
  private readonly globalUploadProgressService;
2534
2670
  private globalSequence;
2535
- private uploaderHelper;
2671
+ private readonly uploaderHelper;
2536
2672
  private readonly NB_CONCURRENT_FILES_TO_UPLOAD;
2537
2673
  constructor();
2538
2674
  uploadDocuments(baseUrl: string, formKey: string, label: string, files: File[], key: string, isMultiple: boolean, language: string, shouldDisplayFileSavedConfirmation: boolean, hasGlobalProgress?: boolean): Observable<DocumentsWithErrors>;
2539
2675
  deleteDocument(baseUrl: string, document: DocumentReference): Observable<DocumentReference>;
2540
2676
  getDownloadUrl(baseUrl: string, document: DocumentReference): string;
2541
2677
  private getDocumentsWithErrorsObservable;
2542
- private mergeDocumentsWithErrors;
2678
+ private readonly mergeDocumentsWithErrors;
2543
2679
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultiUploadService, never>;
2544
2680
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<MultiUploadService>;
2545
2681
  }
2546
2682
 
2547
2683
  declare class PendingUploadService {
2548
- private gesdemService;
2684
+ private readonly gesdemService;
2549
2685
  private readonly gesdemEventService;
2550
2686
  private readonly uploadProgressService;
2551
- private pendingFilesByFormKey;
2552
- private attachmentsUploadedSubject;
2553
- private pendingUploadedErrorsSubject;
2554
- private uploadExecutors;
2555
- private destroyRef;
2687
+ private readonly destroyRef;
2688
+ private readonly pendingFilesByFormKey;
2689
+ private readonly attachmentsUploadedSubject;
2690
+ private readonly pendingUploadedErrorsSubject;
2691
+ private readonly uploadExecutors;
2556
2692
  constructor();
2557
2693
  get attachmentsUploaded(): Observable<any>;
2558
2694
  get pendingUploadedErrors(): Observable<DocumentsWithErrors>;
2559
2695
  getPendingFiles(formKey: string): File[];
2560
- hasPendingFiles(formKey?: string): boolean;
2696
+ hasPendingFiles(formKey?: string | null): boolean;
2561
2697
  addPendingFiles(baseUrl: string, formKey: string, label: string, files: File[], key: string, isMultiple: boolean, shouldDisplayFileSavedConfirmation: boolean): void;
2562
2698
  removePendingFile(file: File, formKey: string): void;
2563
2699
  registerUploadExecutor(formKey: string, executor: () => Observable<DocumentsWithErrors>): void;
@@ -2572,7 +2708,7 @@ declare class PendingUploadService {
2572
2708
 
2573
2709
  declare class FoehnMultiUploadComponent extends AbstractFoehnUploaderComponent<DocumentReference[]> implements OnInit, OnDestroy {
2574
2710
  readonly url: _angular_core.InputSignal<string>;
2575
- readonly reference: _angular_core.InputSignal<string>;
2711
+ readonly reference: _angular_core.InputSignal<string | null | undefined>;
2576
2712
  multiUploadService: MultiUploadService;
2577
2713
  pendingUploadService: PendingUploadService;
2578
2714
  protected pageUploadLimitService: PageUploadLimitService;
@@ -2585,7 +2721,7 @@ declare class FoehnMultiUploadComponent extends AbstractFoehnUploaderComponent<D
2585
2721
  canAddMoreFiles(): boolean;
2586
2722
  onFileChange(event: Event): void;
2587
2723
  onDrop(event: any): void;
2588
- protected removeFileOnConfirmation(document: any): void;
2724
+ protected removeFileOnConfirmation(document: DocumentReference | File): void;
2589
2725
  private populateFileItemList;
2590
2726
  private displayPendingUploadedErrorsFromServerByFormKey;
2591
2727
  private displayResultFromServer;
@@ -2597,10 +2733,10 @@ declare class FoehnMultiUploadComponent extends AbstractFoehnUploaderComponent<D
2597
2733
  }
2598
2734
 
2599
2735
  declare class BoDocumentError {
2600
- key: string;
2601
- label: string;
2602
- formKey: string;
2603
- errorCode: string;
2736
+ key: string | undefined;
2737
+ label: string | undefined;
2738
+ formKey: string | undefined;
2739
+ errorCode: string | undefined;
2604
2740
  }
2605
2741
  declare class BoDocumentsWithErrors {
2606
2742
  documents: DocumentReference[];
@@ -2608,62 +2744,75 @@ declare class BoDocumentsWithErrors {
2608
2744
  }
2609
2745
 
2610
2746
  declare class BoMultiUploadService {
2611
- private httpClient;
2612
- private growlService;
2613
- private applicationInfoService;
2614
- private dictionaryService;
2615
- private uploadProgressService;
2747
+ private readonly httpClient;
2748
+ private readonly growlService;
2749
+ private readonly applicationInfoService;
2750
+ private readonly dictionaryService;
2751
+ private readonly uploadProgressService;
2616
2752
  private globalSequence;
2617
- private uploaderHelper;
2753
+ private readonly uploaderHelper;
2618
2754
  private readonly NB_CONCURRENT_FILES_TO_UPLOAD;
2619
2755
  constructor();
2620
2756
  uploadDocuments(url: string, formKey: string, label: string, files: File[], key: string, isMultiple: boolean, language: string, shouldDisplayFileSavedConfirmation: boolean): Observable<BoDocumentsWithErrors>;
2621
2757
  deleteDocument(baseUrl: string, document: DocumentReference): Observable<DocumentReference>;
2622
- getDownloadUrl(baseUrl: string, document: DocumentReference): string;
2758
+ getDownloadUrl(baseUrl: string | undefined, document: DocumentReference): string;
2623
2759
  private getDocumentsWithErrorsObservable;
2624
- private mergeDocumentsWithErrors;
2760
+ private readonly mergeDocumentsWithErrors;
2625
2761
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BoMultiUploadService, never>;
2626
2762
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<BoMultiUploadService>;
2627
2763
  }
2628
2764
 
2629
2765
  declare class FoehnBoMultiUploadComponent extends AbstractFoehnUploaderComponent<DocumentReference[]> implements OnInit, OnDestroy {
2630
- readonly uploadUrl: _angular_core.InputSignal<string>;
2631
- readonly deleteUrl: _angular_core.InputSignal<string>;
2632
- readonly downloadUrl: _angular_core.InputSignal<string>;
2766
+ readonly uploadUrl: _angular_core.InputSignal<string | undefined>;
2767
+ readonly deleteUrl: _angular_core.InputSignal<string | undefined>;
2768
+ readonly downloadUrl: _angular_core.InputSignal<string | undefined>;
2633
2769
  readonly optionalLabelKey: _angular_core.InputSignal<string>;
2770
+ readonly localUpload: _angular_core.InputSignal<boolean>;
2771
+ readonly maxFileSizeInMo: _angular_core.InputSignal<number | undefined>;
2772
+ readonly chooseButtonStyleModifier: _angular_core.InputSignal<string | undefined>;
2634
2773
  readonly documentDeleted: _angular_core.OutputEmitterRef<DocumentReference>;
2635
2774
  boMultiUploadService: BoMultiUploadService;
2636
2775
  protected pageUploadLimitService: PageUploadLimitService;
2776
+ private readonly blobUrls;
2777
+ private localSequence;
2637
2778
  get addedFiles(): DocumentReference[];
2638
2779
  ngOnInit(): void;
2639
2780
  ngOnDestroy(): void;
2781
+ isPending(document: DocumentReference): boolean;
2782
+ getDocumentDownloadUrl(document: DocumentReference): string;
2640
2783
  getTotalFilesSize(): number;
2641
2784
  canAddMoreFiles(): boolean;
2642
2785
  onFileChange(event: Event): void;
2643
2786
  onDrop(event: any): void;
2787
+ protected getMaxFileSizeInMo(): number | undefined;
2788
+ protected removeFileOnConfirmation(document: DocumentReference | File): void;
2644
2789
  private populateFileItemList;
2790
+ private addFilesLocally;
2791
+ private toPendingDocument;
2792
+ private removeDocumentLocally;
2793
+ private revokeBlobUrl;
2645
2794
  private displayResultFromServer;
2646
2795
  private removeDocumentFromModel;
2647
2796
  private displayErrorsFromServer;
2648
2797
  private manageSingleFile;
2649
2798
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnBoMultiUploadComponent, never>;
2650
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnBoMultiUploadComponent, "foehn-bo-multi-upload", never, { "uploadUrl": { "alias": "uploadUrl"; "required": false; "isSignal": true; }; "deleteUrl": { "alias": "deleteUrl"; "required": false; "isSignal": true; }; "downloadUrl": { "alias": "downloadUrl"; "required": false; "isSignal": true; }; "optionalLabelKey": { "alias": "optionalLabelKey"; "required": false; "isSignal": true; }; }, { "documentDeleted": "documentDeleted"; }, never, ["*"], true, never>;
2799
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnBoMultiUploadComponent, "foehn-bo-multi-upload", never, { "uploadUrl": { "alias": "uploadUrl"; "required": false; "isSignal": true; }; "deleteUrl": { "alias": "deleteUrl"; "required": false; "isSignal": true; }; "downloadUrl": { "alias": "downloadUrl"; "required": false; "isSignal": true; }; "optionalLabelKey": { "alias": "optionalLabelKey"; "required": false; "isSignal": true; }; "localUpload": { "alias": "localUpload"; "required": false; "isSignal": true; }; "maxFileSizeInMo": { "alias": "maxFileSizeInMo"; "required": false; "isSignal": true; }; "chooseButtonStyleModifier": { "alias": "chooseButtonStyleModifier"; "required": false; "isSignal": true; }; }, { "documentDeleted": "documentDeleted"; }, never, ["*"], true, never>;
2651
2800
  }
2652
2801
 
2653
2802
  declare class FoehnPictureUploadComponent extends FoehnInputComponent<DocumentReference[]> implements OnInit {
2654
- readonly key: _angular_core.InputSignal<string>;
2803
+ readonly key: _angular_core.InputSignal<string | undefined>;
2655
2804
  readonly baseUrl: _angular_core.InputSignal<string>;
2656
2805
  readonly croppedPictureFilename: _angular_core.InputSignal<string>;
2657
2806
  readonly resizeToWidth: _angular_core.InputSignal<number>;
2658
2807
  readonly resizeToHeight: _angular_core.InputSignal<number>;
2659
2808
  readonly shouldDisplayFileSavedConfirmation: _angular_core.InputSignal<boolean>;
2660
2809
  readonly acceptFormats = ".jpeg,.jpg,.png";
2661
- pictureToCrop: Event;
2662
- croppedPictureAsBlob: Blob;
2663
- loading: boolean;
2664
- protected currentLanguage: string;
2665
- private uploadService;
2666
- private dictionaryService;
2810
+ readonly pictureToCrop: _angular_core.WritableSignal<Event | null>;
2811
+ readonly croppedPictureAsBlob: _angular_core.WritableSignal<Blob | null>;
2812
+ readonly loading: _angular_core.WritableSignal<boolean>;
2813
+ protected currentLanguage: string | undefined;
2814
+ private readonly uploadService;
2815
+ private readonly dictionaryService;
2667
2816
  get hasPicture(): boolean;
2668
2817
  ngOnInit(): void;
2669
2818
  onPictureSelection(imgEvent: Event): void;
@@ -2687,7 +2836,8 @@ declare abstract class AbstractUploadProgressService {
2687
2836
  }
2688
2837
 
2689
2838
  declare class AbstractFoehnGlobalUploadProgressBarComponent {
2690
- readonly progressBarPanel: _angular_core.Signal<ElementRef<any>>;
2839
+ #private;
2840
+ readonly progressBarPanel: _angular_core.Signal<ElementRef<any> | undefined>;
2691
2841
  showProgress: Observable<boolean>;
2692
2842
  protected uploadProgressService: AbstractUploadProgressService;
2693
2843
  constructor();
@@ -2728,25 +2878,25 @@ declare class UploadProgress {
2728
2878
  }
2729
2879
 
2730
2880
  declare class UploadProgressService extends AbstractUploadProgressService {
2731
- private _analysisProgressSubject;
2881
+ private readonly _analysisProgressSubject;
2732
2882
  private readonly _uploadProgressSubject;
2733
2883
  get analysisProgress(): BehaviorSubject<boolean>;
2734
2884
  get analysisProgressSubject(): Observable<boolean>;
2735
- get uploadProgress(): BehaviorSubject<UploadProgress>;
2736
- get uploadProgressSubject(): Observable<UploadProgress>;
2885
+ get uploadProgress(): BehaviorSubject<UploadProgress | null>;
2886
+ get uploadProgressSubject(): Observable<UploadProgress | null>;
2737
2887
  manageUploadEventFilter(event: HttpEvent<DocumentsWithErrors>, packageIndex?: number, nbPackages?: number): boolean;
2738
2888
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<UploadProgressService, never>;
2739
2889
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<UploadProgressService>;
2740
2890
  }
2741
2891
 
2742
2892
  declare class FoehnUploadProgressBarComponent extends AbstractFoehnGlobalUploadProgressBarComponent {
2743
- readonly progressBarTriggerHtmlElement: _angular_core.InputSignal<HTMLElement>;
2893
+ readonly progressBarTriggerHtmlElement: _angular_core.InputSignal<HTMLElement | undefined>;
2744
2894
  analysisProgress: Observable<boolean>;
2745
2895
  currentUploadPercentage: Observable<number>;
2746
2896
  hasUploadPackages: Observable<boolean>;
2747
2897
  uploadPackage: Observable<UploadProgress>;
2748
2898
  protected uploadProgressService: UploadProgressService;
2749
- private destroyRef;
2899
+ private readonly destroyRef;
2750
2900
  constructor();
2751
2901
  private calculateProgressPercentage;
2752
2902
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnUploadProgressBarComponent, never>;
@@ -2768,30 +2918,30 @@ declare class PendingPaymentComponent {
2768
2918
  declare class SdkEpaymentComponent implements OnInit {
2769
2919
  readonly baseUrl: _angular_core.InputSignal<string>;
2770
2920
  platformFailureMessageDicoKey: string;
2771
- failureModalDisplayed: boolean;
2772
- redirectModalDisplayed: boolean;
2773
- private ePaymentService;
2921
+ readonly failureModalDisplayed: _angular_core.WritableSignal<boolean>;
2922
+ readonly redirectModalDisplayed: _angular_core.WritableSignal<boolean>;
2923
+ private readonly ePaymentService;
2774
2924
  private readonly route;
2775
2925
  private readonly gesDemService;
2776
2926
  private readonly gesdemEventService;
2777
2927
  private readonly registerNgModelService;
2778
- private window;
2779
- private failureMessageDicoKeyByCode;
2928
+ private readonly window;
2929
+ private readonly failureMessageDicoKeyByCode;
2780
2930
  ngOnInit(): void;
2781
2931
  /**
2782
2932
  * Déclenche le processus de paiement électronique. Le paiement est d'abord préparé avec GesDem, puis on navigue
2783
2933
  * vers la plateforme de paiement.
2784
2934
  * @param reference La référence de la demande en cours
2785
2935
  */
2786
- payNow(reference: string): void;
2936
+ payNow(reference: string | undefined | null): void;
2787
2937
  private handleFailure;
2788
2938
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdkEpaymentComponent, never>;
2789
2939
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdkEpaymentComponent, "epayment-form", never, { "baseUrl": { "alias": "baseUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2790
2940
  }
2791
2941
 
2792
2942
  declare class EPaymentService {
2793
- private http;
2794
- private growlService;
2943
+ private readonly http;
2944
+ private readonly growlService;
2795
2945
  /**
2796
2946
  * Effectuer une requête de préparation du paiement auprès du backend, et obtenir les paramètres de formulaire
2797
2947
  * en vue du passage sur la plateforme de paiement électronique.
@@ -2799,19 +2949,19 @@ declare class EPaymentService {
2799
2949
  * @param baseUrl L'url de base (optionnelle)
2800
2950
  * @returns la page de paiement sur laquelle rediriger l'utilisateur
2801
2951
  */
2802
- createPendingPayment(ref: string, baseUrl: string): Observable<string>;
2803
- cancelPendingPayment(ref: string, baseUrl: string): void;
2952
+ createPendingPayment(ref: string | undefined | null, baseUrl: string): Observable<string>;
2953
+ cancelPendingPayment(ref: string | undefined | null, baseUrl: string): void;
2804
2954
  private handleError;
2805
2955
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EPaymentService, never>;
2806
2956
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<EPaymentService>;
2807
2957
  }
2808
2958
 
2809
2959
  declare class FoehnConfirmModalComponent implements OnInit {
2810
- isVisible: boolean;
2811
- private confirmModalService;
2812
- private destroyRef;
2960
+ readonly isVisible: _angular_core.WritableSignal<boolean>;
2961
+ readonly content: Observable<FoehnConfirmModalContent | null>;
2962
+ private readonly confirmModalService;
2963
+ private readonly destroyRef;
2813
2964
  constructor();
2814
- get content(): Observable<FoehnConfirmModalContent>;
2815
2965
  ngOnInit(): void;
2816
2966
  cancel(): void;
2817
2967
  ok(): void;
@@ -2821,12 +2971,12 @@ declare class FoehnConfirmModalComponent implements OnInit {
2821
2971
  }
2822
2972
 
2823
2973
  declare class FoehnHelpModalComponent {
2824
- readonly modalContent: _angular_core.InputSignal<HelpModal>;
2974
+ readonly modalContent: _angular_core.InputSignal<HelpModal | undefined>;
2825
2975
  readonly draggable: _angular_core.InputSignal<boolean>;
2826
2976
  readonly hideable: _angular_core.InputSignal<boolean>;
2827
- readonly modalTrigger: _angular_core.Signal<ElementRef<any>>;
2828
- readonly content: _angular_core.Signal<ElementRef<any>>;
2829
- private isVisible;
2977
+ readonly modalTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
2978
+ readonly content: _angular_core.Signal<ElementRef<any> | undefined>;
2979
+ private readonly isVisible;
2830
2980
  get isModalVisible(): boolean;
2831
2981
  get currentModalTitle(): string;
2832
2982
  open(): void;
@@ -2840,19 +2990,20 @@ declare class FoehnHelpModalComponent {
2840
2990
 
2841
2991
  declare class FoehnModalComponent {
2842
2992
  readonly isModalVisible: _angular_core.ModelSignal<boolean>;
2843
- readonly id: _angular_core.InputSignal<string>;
2844
- readonly modalBodyText: _angular_core.InputSignal<string>;
2845
- readonly modalHeaderText: _angular_core.InputSignal<string>;
2993
+ readonly id: _angular_core.InputSignal<string | undefined>;
2994
+ readonly modalBodyText: _angular_core.InputSignal<string | undefined>;
2995
+ readonly modalHeaderText: _angular_core.InputSignal<string | undefined>;
2846
2996
  readonly closeable: _angular_core.InputSignal<boolean>;
2847
2997
  readonly draggable: _angular_core.InputSignal<boolean>;
2848
2998
  readonly hideable: _angular_core.InputSignal<boolean>;
2849
- readonly modalTriggerHtmlElement: _angular_core.InputSignal<HTMLElement>;
2850
- readonly name: _angular_core.InputSignal<string>;
2851
- readonly modalSize: _angular_core.InputSignal<string>;
2852
- readonly modalBody: _angular_core.Signal<ElementRef<any>>;
2853
- readonly modalTitle: _angular_core.Signal<ElementRef<any>>;
2854
- readonly specificfooter: _angular_core.Signal<ElementRef<any>>;
2855
- readonly modalDefaultCloseBtn: _angular_core.Signal<ElementRef<any>>;
2999
+ readonly modalTriggerHtmlElement: _angular_core.InputSignal<HTMLElement | undefined>;
3000
+ readonly name: _angular_core.InputSignal<string | undefined>;
3001
+ readonly modalSize: _angular_core.InputSignal<string | undefined>;
3002
+ readonly modalBody: _angular_core.Signal<ElementRef<any> | undefined>;
3003
+ readonly modalTitle: _angular_core.Signal<ElementRef<any> | undefined>;
3004
+ readonly specificfooter: _angular_core.Signal<ElementRef<any> | undefined>;
3005
+ readonly modalDefaultCloseBtn: _angular_core.Signal<ElementRef<any> | undefined>;
3006
+ private readonly injector;
2856
3007
  private previousIsVisible;
2857
3008
  private readonly visibilityEffect;
2858
3009
  handleKeyboardEvent(event: KeyboardEvent): void;
@@ -2863,12 +3014,12 @@ declare class FoehnModalComponent {
2863
3014
  }
2864
3015
 
2865
3016
  declare class FoehnPageModalComponent implements OnInit {
2866
- wrongPublicModalVisible: boolean;
2867
- formattedPublicsCibles: string[];
2868
- private sessionInfo;
2869
- private applicationInfoService;
2870
- private foehnPageModalService;
2871
- private userCategories;
3017
+ readonly wrongPublicModalVisible: _angular_core.WritableSignal<boolean>;
3018
+ readonly formattedPublicsCibles: _angular_core.WritableSignal<string[]>;
3019
+ private readonly sessionInfo;
3020
+ private readonly applicationInfoService;
3021
+ private readonly foehnPageModalService;
3022
+ private readonly userCategories;
2872
3023
  private publicsCibles;
2873
3024
  ngOnInit(): void;
2874
3025
  getFullLoginUrl(): Observable<string>;
@@ -2880,8 +3031,8 @@ declare class FoehnPageModalComponent implements OnInit {
2880
3031
  }
2881
3032
 
2882
3033
  declare class FoehnTransmitWaitingModalComponent {
2883
- isTransmit: Observable<boolean>;
2884
- private transmitModalService;
3034
+ readonly isTransmit: Signal<boolean>;
3035
+ private readonly transmitModalService;
2885
3036
  constructor();
2886
3037
  updateVisibilityStatus(status: boolean): void;
2887
3038
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnTransmitWaitingModalComponent, never>;
@@ -2891,7 +3042,7 @@ declare class FoehnTransmitWaitingModalComponent {
2891
3042
  declare const TRANSMIT_WAITING_MODAL_DELAY_IN_MILLISECONDS = 2000;
2892
3043
  declare class FoehnTransmitWaitingModalService {
2893
3044
  private showModalDelayTimer;
2894
- private toggleModalBehaviorSubject;
3045
+ private readonly toggleModalBehaviorSubject;
2895
3046
  modalVisibilityObservable(): Observable<boolean>;
2896
3047
  toggleModalVisibility(isVisible: boolean): void;
2897
3048
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnTransmitWaitingModalService, never>;
@@ -2899,17 +3050,17 @@ declare class FoehnTransmitWaitingModalService {
2899
3050
  }
2900
3051
 
2901
3052
  declare class DateHelper {
2902
- private locale;
2903
- private dateFormat;
2904
- private dateTimeFormat;
2905
- private datePipe;
3053
+ private readonly locale;
3054
+ private readonly dateFormat;
3055
+ private readonly dateTimeFormat;
3056
+ private readonly datePipe;
2906
3057
  constructor();
2907
3058
  private static isValidArray;
2908
3059
  mapToDateFromNumberArray(object: any, ...fieldsNames: string[]): any;
2909
3060
  mapAllToDateFromNumberArray(objects: any[], ...fieldsNames: string[]): any[];
2910
- toDateFromNumberArray(dateInArray: number[]): Date;
2911
- arrayToDisplayDateDMY(d: number[], showTime: boolean): string | null;
2912
- toDayjsFromNumberArray(value: number[]): dayjs.Dayjs;
3061
+ toDateFromNumberArray(dateInArray: number[] | null | undefined): Date | null;
3062
+ arrayToDisplayDateDMY(d: number[] | null | undefined, showTime: boolean): string | null;
3063
+ toDayjsFromNumberArray(value: number[]): dayjs.Dayjs | null;
2913
3064
  isValid(value: number[]): boolean;
2914
3065
  isToday(value: number[]): boolean;
2915
3066
  leftPad(num: string): string;
@@ -2920,23 +3071,29 @@ declare class DateHelper {
2920
3071
  declare const CURRENCY_REGEXP: RegExp;
2921
3072
  declare const THOUSANDS_SEPARATOR = "'";
2922
3073
  declare const DECIMALS_SEPARATOR = ".";
2923
- declare function formatNumberAsGiven(value: string): string;
2924
- declare function formatDecimalCurrency(value: string, maxDecimalCount: number, maxLength: number, allowFreeInput: boolean): string;
2925
- declare function formatNonDecimalCurrency(value: string): string;
3074
+ declare function formatNumberAsGiven(value: string | undefined | null): string | null;
3075
+ declare function formatDecimalCurrency(value: string | undefined | null, maxDecimalCount: number, maxLength: number | null | undefined, allowFreeInput: boolean): string | null;
3076
+ declare function formatNonDecimalCurrency(value: string | undefined | null): string | null;
2926
3077
  declare class CurrencyHelper {
2927
- formatCurrency(value: number | string, currency?: string, fixedDecimalCount?: number, showZero?: boolean): string;
3078
+ formatCurrency(value: number | string | undefined | null, currency?: string, fixedDecimalCount?: number, showZero?: boolean): string | null;
2928
3079
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CurrencyHelper, never>;
2929
3080
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CurrencyHelper>;
2930
3081
  }
2931
3082
 
2932
3083
  declare class NumberCurrencyFormatterDirective implements OnInit {
2933
3084
  private readonly host;
2934
- private readonly ngZone;
3085
+ private readonly injector;
2935
3086
  private hasFocus;
3087
+ /**
3088
+ * Model value written by the formatting itself: its change must not be
3089
+ * formatted again, the input already displays the formatted value
3090
+ * (e.g. "-.00" for the model ".00").
3091
+ */
3092
+ private modelSetByFormatting;
2936
3093
  private readonly formattingEffect;
2937
3094
  onBlur(event: FocusEvent): void;
2938
3095
  onFocus(event: FocusEvent): void;
2939
- onModelChange(value: string): void;
3096
+ onModelChange(value: string | null | undefined): void;
2940
3097
  ngOnInit(): void;
2941
3098
  private setFormatting;
2942
3099
  private hasValueChanged;
@@ -2989,9 +3146,10 @@ declare class NDCFormatterDirective {
2989
3146
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NDCFormatterDirective, "[ndcFormatter]", never, {}, {}, never, never, true, never>;
2990
3147
  }
2991
3148
 
3149
+ type FoehnRecapSectionElementValueType = Address | string | number | boolean | undefined | null;
2992
3150
  interface FoehnRecapSectionElement {
2993
- key: string;
2994
- value: Address | string | number | boolean;
3151
+ key: string | undefined | null;
3152
+ value: FoehnRecapSectionElementValueType;
2995
3153
  acceptEmptyValue?: boolean;
2996
3154
  /**
2997
3155
  * An optional Id, will be added on the `dd` DOM element.
@@ -3008,13 +3166,13 @@ interface FoehnRecapSection {
3008
3166
 
3009
3167
  declare class FoehnRecapSectionComponent {
3010
3168
  readonly acceptEmptyValues: _angular_core.InputSignal<boolean>;
3011
- readonly data: _angular_core.InputSignal<FoehnRecapSection>;
3012
- readonly comment: _angular_core.Signal<FoehnRecapSectionElement>;
3013
- readonly section: _angular_core.Signal<FoehnRecapSection>;
3014
- cleanValue(element: FoehnRecapSectionElement): any;
3015
- atLeastOneElementHasContent(data: FoehnRecapSection): boolean;
3016
- hasContent(element: FoehnRecapSectionElement): boolean;
3017
- buildId(element: FoehnRecapSectionElement): string;
3169
+ readonly data: _angular_core.InputSignal<FoehnRecapSection | undefined>;
3170
+ readonly comment: _angular_core.Signal<FoehnRecapSectionElement | undefined>;
3171
+ readonly section: _angular_core.Signal<FoehnRecapSection | undefined>;
3172
+ cleanValue(element: FoehnRecapSectionElement | undefined): FoehnRecapSectionElementValueType;
3173
+ atLeastOneElementHasContent(data: FoehnRecapSection | undefined): boolean;
3174
+ hasContent(element: FoehnRecapSectionElement | undefined): boolean;
3175
+ buildId(element: FoehnRecapSectionElement | undefined): string | null;
3018
3176
  isAddress(element: FoehnRecapSectionElement): boolean;
3019
3177
  getAddressToDisplay(element: FoehnRecapSectionElement): Address;
3020
3178
  private formatEmptyValue;
@@ -3025,70 +3183,75 @@ declare class FoehnRecapSectionComponent {
3025
3183
  }
3026
3184
 
3027
3185
  declare class GesdemActionRecoveryLoginComponent implements OnInit {
3028
- readonly reference: _angular_core.InputSignal<string>;
3029
- readonly redirectTarget: _angular_core.InputSignal<string>;
3186
+ readonly reference: _angular_core.InputSignal<string | null | undefined>;
3187
+ readonly redirectTarget: _angular_core.InputSignal<string | undefined>;
3030
3188
  readonly loginForm: _angular_core.Signal<FoehnFormComponent>;
3031
- readonly recaptchaComponent: _angular_core.Signal<SdkRecaptchaComponent>;
3032
- demandeNotFound: boolean;
3033
- rateLimited: boolean;
3034
- rateLimitCounter: number;
3035
- otpRecipient: string;
3036
- otp: string;
3037
- private recoveryService;
3038
- private growlService;
3039
- private confirmModalService;
3040
- private validationHandler;
3041
- private applicationInfoService;
3042
- private gesDemHandlerService;
3043
- private dictionaryService;
3044
- private router;
3045
- private route;
3046
- private eventsLoggerService;
3047
- private destroyRef;
3189
+ readonly recaptchaComponent: _angular_core.Signal<SdkRecaptchaComponent | undefined>;
3190
+ readonly demandeNotFound: _angular_core.WritableSignal<boolean>;
3191
+ readonly rateLimited: _angular_core.WritableSignal<boolean>;
3192
+ readonly rateLimitCounter: _angular_core.WritableSignal<number>;
3193
+ readonly otpRecipient: _angular_core.WritableSignal<string | null | undefined>;
3194
+ readonly otp: _angular_core.WritableSignal<string>;
3195
+ private readonly recoveryService;
3196
+ private readonly growlService;
3197
+ private readonly confirmModalService;
3198
+ private readonly validationHandler;
3199
+ private readonly applicationInfoService;
3200
+ private readonly gesDemHandlerService;
3201
+ private readonly dictionaryService;
3202
+ private readonly router;
3203
+ private readonly route;
3204
+ private readonly eventsLoggerService;
3205
+ private readonly destroyRef;
3048
3206
  ngOnInit(): void;
3049
3207
  validateOtp(): void;
3050
3208
  getPluralMarker(count: number): string;
3051
3209
  private startRecovery;
3052
3210
  private startRateLimitCounter;
3053
3211
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GesdemActionRecoveryLoginComponent, never>;
3054
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<GesdemActionRecoveryLoginComponent, "gesdem-action-recovery-login", never, { "reference": { "alias": "reference"; "required": false; "isSignal": true; }; "redirectTarget": { "alias": "redirectTarget"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3212
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GesdemActionRecoveryLoginComponent, "gesdem-action-recovery-login", never, { "reference": { "alias": "reference"; "required": true; "isSignal": true; }; "redirectTarget": { "alias": "redirectTarget"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3055
3213
  }
3056
3214
 
3057
3215
  declare class GesdemActionRecoveryRegistrationComponent implements OnInit {
3058
3216
  readonly dispatchFormErrors: _angular_core.InputSignal<boolean>;
3059
- readonly continueLaterLabel: _angular_core.InputSignal<string>;
3060
- readonly continueLaterAlreadyRegisteredLabel: _angular_core.InputSignal<string>;
3061
- readonly continueLaterConnectedLabel: _angular_core.InputSignal<string>;
3217
+ readonly continueLaterLabel: _angular_core.InputSignal<string | undefined>;
3218
+ readonly continueLaterAlreadyRegisteredLabel: _angular_core.InputSignal<string | undefined>;
3219
+ readonly continueLaterConnectedLabel: _angular_core.InputSignal<string | undefined>;
3062
3220
  readonly triggerOnPageChange: _angular_core.InputSignal<boolean>;
3063
- readonly modalTrigger: _angular_core.Signal<ElementRef<any>>;
3064
- readonly form: _angular_core.Signal<FoehnFormComponent>;
3065
- model: RepriseInfo;
3066
- mailSent: boolean;
3067
- canContinueLater: Observable<boolean>;
3068
- isConnectedCyber: Observable<boolean>;
3069
- currentInfoReprise: Observable<RepriseInfo>;
3070
- currentEtapeInfo: Observable<EtapeInfo>;
3071
- draftDemRetentionDays: Observable<number>;
3072
- draftDemandeDeletionDate: Observable<number[]>;
3073
- modalTriggerLabel: Observable<string>;
3074
- private actionRecoveryService;
3075
- private validationHandler;
3076
- private foehnPageService;
3077
- private gesdemEventService;
3078
- private gesdemService;
3079
- private appInfoService;
3080
- private sessionInfoService;
3081
- private router;
3082
- private eventsLoggerService;
3083
- private dictionaryService;
3084
- private destroyRef;
3085
- private isVisible;
3221
+ readonly modalTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
3222
+ readonly form: _angular_core.Signal<FoehnFormComponent | undefined>;
3223
+ readonly model: _angular_core.WritableSignal<InfoReprise | null>;
3224
+ readonly mailSent: _angular_core.WritableSignal<boolean>;
3225
+ canContinueLater: Observable<boolean> | undefined;
3226
+ isConnectedCyber: Observable<boolean> | undefined;
3227
+ currentInfoReprise: Observable<InfoReprise | undefined>;
3228
+ currentEtapeInfo: Observable<EtapeInfo | null>;
3229
+ draftDemRetentionDays: Observable<number | undefined>;
3230
+ draftDemandeDeletionDate: Observable<number[] | undefined>;
3231
+ modalTriggerLabel: Observable<string> | undefined;
3232
+ private readonly actionRecoveryService;
3233
+ private readonly validationHandler;
3234
+ private readonly foehnPageService;
3235
+ private readonly gesdemEventService;
3236
+ private readonly gesdemService;
3237
+ private readonly appInfoService;
3238
+ private readonly sessionInfoService;
3239
+ private readonly router;
3240
+ private readonly eventsLoggerService;
3241
+ private readonly dictionaryService;
3242
+ private readonly destroyRef;
3243
+ private readonly isVisible;
3086
3244
  constructor();
3087
3245
  get isModalVisible(): boolean;
3088
3246
  get reference(): string;
3089
3247
  ngOnInit(): void;
3090
3248
  saveAndOpenModal(): void;
3091
3249
  openModal(isConnectedCyber: boolean): void;
3250
+ /**
3251
+ * Updates the recovery information entered by the user, without mutating the current value.
3252
+ * @param changes values entered by the user
3253
+ */
3254
+ updateModel(changes: Partial<InfoReprise>): void;
3092
3255
  close(): void;
3093
3256
  sendAndClose(): void;
3094
3257
  updateVisibilityStatus(status: boolean): void;
@@ -3100,8 +3263,8 @@ declare class GesdemActionRecoveryRegistrationComponent implements OnInit {
3100
3263
  }
3101
3264
 
3102
3265
  declare class FoehnAbbrComponent {
3103
- readonly title: _angular_core.InputSignal<string>;
3104
- readonly text: _angular_core.InputSignal<string>;
3266
+ readonly title: _angular_core.InputSignal<string | undefined>;
3267
+ readonly text: _angular_core.InputSignal<string | undefined>;
3105
3268
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnAbbrComponent, never>;
3106
3269
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnAbbrComponent, "foehn-abbr", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3107
3270
  }
@@ -3120,17 +3283,18 @@ declare abstract class AbstractPageFromMenuComponent<T extends I18nForm> extends
3120
3283
  }
3121
3284
 
3122
3285
  declare class FoehnListItem {
3123
- trackingIndex: number;
3286
+ trackingIndex: number | undefined;
3124
3287
  disableEdition?: boolean;
3125
3288
  disableDeletion?: boolean;
3126
3289
  }
3127
3290
 
3128
3291
  declare abstract class AbstractListDetailPageComponent<FORM_TYPE extends I18nForm, ITEM_TYPE extends FoehnListItem> extends AbstractPageFromMenuComponent<FORM_TYPE> implements OnInit, OnDestroy {
3292
+ #private;
3129
3293
  list: ITEM_TYPE[];
3130
- itemIndex: number;
3294
+ itemIndex: number | null;
3131
3295
  protected router: Router;
3132
3296
  protected location: Location;
3133
- get itemToEdit(): ITEM_TYPE;
3297
+ get itemToEdit(): ITEM_TYPE | null;
3134
3298
  ngOnInit(): void;
3135
3299
  ngOnDestroy(): void;
3136
3300
  protected getNextTrackingIndex(): number;
@@ -3150,6 +3314,11 @@ declare abstract class AbstractListDetailPageComponent<FORM_TYPE extends I18nFor
3150
3314
  }
3151
3315
 
3152
3316
  declare abstract class AbstractMenuPageComponent<T extends I18nForm> extends AbstractPageComponent<T> implements AfterViewInit {
3317
+ #private;
3318
+ /**
3319
+ * @deprecated not used anymore by prestations-ng, which does not depend on zone.js.
3320
+ * Inject `NgZone` in your own component if you really need it.
3321
+ */
3153
3322
  protected ngZone: NgZone;
3154
3323
  ngAfterViewInit(): void;
3155
3324
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AbstractMenuPageComponent<any>, never>;
@@ -3157,57 +3326,55 @@ declare abstract class AbstractMenuPageComponent<T extends I18nForm> extends Abs
3157
3326
  }
3158
3327
 
3159
3328
  declare class FoehnErrorPillComponent {
3160
- readonly errorPrefix: _angular_core.InputSignal<string | RegExp>;
3329
+ readonly errorPrefix: _angular_core.InputSignal<string | RegExp | undefined>;
3161
3330
  readonly incompleteIndicatorOnly: _angular_core.InputSignal<boolean>;
3162
3331
  hasErrors: Observable<boolean>;
3163
- private validationHandlerService;
3332
+ private readonly validationHandlerService;
3164
3333
  constructor();
3165
3334
  private matchesErrorPrefix;
3166
3335
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnErrorPillComponent, never>;
3167
3336
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnErrorPillComponent, "foehn-error-pill", never, { "errorPrefix": { "alias": "errorPrefix"; "required": false; "isSignal": true; }; "incompleteIndicatorOnly": { "alias": "incompleteIndicatorOnly"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3168
3337
  }
3169
3338
 
3170
- interface FoehnListItemDescription {
3339
+ interface FoehnListItemDescription<T> {
3171
3340
  label: string;
3172
- hideIfEmpty?(item: FoehnListItem): boolean;
3173
- getFormattedValue(item: FoehnListItem): string;
3341
+ hideIfEmpty?(item: T): boolean;
3342
+ getFormattedValue(item: T): string;
3174
3343
  }
3175
3344
 
3176
- declare class FoehnListSummaryComponent extends FoehnInputComponent<FoehnListItem[]> implements AfterViewInit, OnChanges {
3177
- readonly getListItemTitle: _angular_core.InputSignal<(item: FoehnListItem) => string>;
3178
- readonly listItemDescriptions: _angular_core.InputSignal<FoehnListItemDescription[]>;
3345
+ declare class FoehnListSummaryComponent<T extends FoehnListItem> extends FoehnInputComponent<T[]> implements OnChanges {
3346
+ readonly getListItemTitle: _angular_core.InputSignal<((item: T) => string | null | undefined) | undefined>;
3347
+ readonly listItemDescriptions: _angular_core.InputSignal<FoehnListItemDescription<T>[]>;
3179
3348
  readonly showAsTable: _angular_core.InputSignal<boolean>;
3180
- readonly tableActionButtons: _angular_core.Signal<TemplateRef<unknown>>;
3349
+ readonly tableActionButtons: _angular_core.Signal<TemplateRef<unknown> | undefined>;
3181
3350
  readonly canAddItems: _angular_core.InputSignal<boolean>;
3182
3351
  readonly itemRemoved: _angular_core.OutputEmitterRef<void>;
3183
- readonly itemEdit: _angular_core.OutputEmitterRef<number>;
3184
- listCopyForTable: FoehnListItem[];
3185
- tableConfiguration: FoehnTableColumnConfiguration<FoehnListItem>[];
3352
+ readonly itemEdit: _angular_core.OutputEmitterRef<number | null>;
3353
+ readonly listCopyForTable: _angular_core.WritableSignal<T[] | null | undefined>;
3354
+ readonly tableConfiguration: _angular_core.Signal<FoehnTableColumnConfiguration<T>[]>;
3186
3355
  tableSort: TableSort;
3187
- private confirmModalService;
3188
- private ngZone;
3189
- trackFoehnListItem: TrackByFunction<FoehnListItem>;
3190
- trackFoehnListItemDescription: TrackByFunction<FoehnListItemDescription>;
3356
+ private readonly confirmModalService;
3357
+ trackFoehnListItem: TrackByFunction<T>;
3358
+ trackFoehnListItemDescription: TrackByFunction<FoehnListItemDescription<T>>;
3191
3359
  ngOnChanges(changes: SimpleChanges): void;
3192
- ngAfterViewInit(): void;
3193
- showLine(item: FoehnListItem, itemParam: FoehnListItemDescription): boolean;
3194
- editItem(index?: number): void;
3360
+ showLine(item: T, itemParam: FoehnListItemDescription<T>): boolean;
3361
+ editItem(index?: number | null): void;
3195
3362
  removeItem(index: number): void;
3196
- changeSort(sortEvent: TableSort): void;
3363
+ changeSort(sortEvent: TableSort | undefined): void;
3197
3364
  private sortNow;
3198
3365
  private updateListCopyForTable;
3199
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnListSummaryComponent, never>;
3200
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnListSummaryComponent, "foehn-list-summary", never, { "getListItemTitle": { "alias": "getListItemTitle"; "required": false; "isSignal": true; }; "listItemDescriptions": { "alias": "listItemDescriptions"; "required": false; "isSignal": true; }; "showAsTable": { "alias": "showAsTable"; "required": false; "isSignal": true; }; "canAddItems": { "alias": "canAddItems"; "required": false; "isSignal": true; }; }, { "itemRemoved": "itemRemoved"; "itemEdit": "itemEdit"; }, never, never, true, never>;
3366
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnListSummaryComponent<any>, never>;
3367
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnListSummaryComponent<any>, "foehn-list-summary", never, { "getListItemTitle": { "alias": "getListItemTitle"; "required": false; "isSignal": true; }; "listItemDescriptions": { "alias": "listItemDescriptions"; "required": false; "isSignal": true; }; "showAsTable": { "alias": "showAsTable"; "required": false; "isSignal": true; }; "canAddItems": { "alias": "canAddItems"; "required": false; "isSignal": true; }; }, { "itemRemoved": "itemRemoved"; "itemEdit": "itemEdit"; }, never, never, true, never>;
3201
3368
  }
3202
3369
 
3203
3370
  declare class FoehnMenuItemComponent {
3204
- readonly labelDicoKey: _angular_core.InputSignal<string>;
3205
- readonly dicoLabelPlaceHolders: _angular_core.InputSignal<PlaceholderType>;
3206
- readonly linkId: _angular_core.InputSignal<string>;
3207
- readonly rLink: _angular_core.InputSignal<string>;
3371
+ readonly labelDicoKey: _angular_core.InputSignal<string | undefined>;
3372
+ readonly dicoLabelPlaceHolders: _angular_core.InputSignal<PlaceholderType | undefined>;
3373
+ readonly linkId: _angular_core.InputSignal<string | undefined>;
3374
+ readonly rLink: _angular_core.InputSignal<string | undefined>;
3208
3375
  readonly queryParamsHandling: _angular_core.InputSignal<QueryParamsHandling>;
3209
- readonly errorPrefix: _angular_core.InputSignal<string | RegExp>;
3210
- readonly listLength: _angular_core.InputSignal<number>;
3376
+ readonly errorPrefix: _angular_core.InputSignal<string | RegExp | undefined>;
3377
+ readonly listLength: _angular_core.InputSignal<number | undefined>;
3211
3378
  readonly applicable: _angular_core.InputSignal<boolean>;
3212
3379
  readonly showErrorPill: _angular_core.InputSignal<boolean>;
3213
3380
  get nonApplicableId(): string;
@@ -3217,48 +3384,48 @@ declare class FoehnMenuItemComponent {
3217
3384
 
3218
3385
  declare class FoehnMenuItemTransmitComponent {
3219
3386
  readonly linkId: _angular_core.InputSignal<string>;
3220
- readonly rLink: _angular_core.InputSignal<string>;
3221
- readonly labelDicoKey: _angular_core.InputSignal<string>;
3222
- readonly dicoLabelPlaceHolders: _angular_core.InputSignal<PlaceholderType>;
3387
+ readonly rLink: _angular_core.InputSignal<string | undefined>;
3388
+ readonly labelDicoKey: _angular_core.InputSignal<string | undefined>;
3389
+ readonly dicoLabelPlaceHolders: _angular_core.InputSignal<PlaceholderType | undefined>;
3223
3390
  readonly remainingErrorNamesToIgnore: _angular_core.InputSignal<string[]>;
3224
3391
  readonly remainingErrorsAlertTitle: _angular_core.InputSignal<string>;
3225
3392
  readonly remainingErrorsAlertBody: _angular_core.InputSignal<string>;
3226
3393
  readonly clickedWithRemainingErrors: _angular_core.OutputEmitterRef<number>;
3227
3394
  showRemainingErrorsAlert: boolean;
3228
- private router;
3229
- private activatedRoute;
3230
- private gesdemService;
3395
+ private readonly router;
3396
+ private readonly activatedRoute;
3397
+ private readonly gesdemService;
3231
3398
  transmit(): void;
3232
3399
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnMenuItemTransmitComponent, never>;
3233
3400
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnMenuItemTransmitComponent, "foehn-menu-item-transmit", never, { "linkId": { "alias": "linkId"; "required": false; "isSignal": true; }; "rLink": { "alias": "rLink"; "required": false; "isSignal": true; }; "labelDicoKey": { "alias": "labelDicoKey"; "required": false; "isSignal": true; }; "dicoLabelPlaceHolders": { "alias": "dicoLabelPlaceHolders"; "required": false; "isSignal": true; }; "remainingErrorNamesToIgnore": { "alias": "remainingErrorNamesToIgnore"; "required": false; "isSignal": true; }; "remainingErrorsAlertTitle": { "alias": "remainingErrorsAlertTitle"; "required": false; "isSignal": true; }; "remainingErrorsAlertBody": { "alias": "remainingErrorsAlertBody"; "required": false; "isSignal": true; }; }, { "clickedWithRemainingErrors": "clickedWithRemainingErrors"; }, never, never, true, never>;
3234
3401
  }
3235
3402
 
3236
3403
  declare class DayMonth {
3237
- date: dayjs.Dayjs;
3238
- dateAsString: string;
3239
- dateAsReadable: string;
3240
- dayOfMonth: number;
3241
- isCurrentMonth: boolean;
3404
+ date: dayjs.Dayjs | undefined;
3405
+ dateAsString: string | undefined;
3406
+ dateAsReadable: string | undefined;
3407
+ dayOfMonth: number | undefined;
3408
+ isCurrentMonth: boolean | undefined;
3242
3409
  }
3243
3410
 
3244
3411
  declare class MonthYear {
3245
- year: string;
3246
- month: string;
3412
+ year: string | undefined;
3413
+ month: string | undefined;
3247
3414
  }
3248
3415
 
3249
3416
  declare class DatePickerHelper {
3250
- initialMonth: string;
3251
- initialYear: string;
3252
- initialDay: string;
3417
+ initialMonth: string | undefined;
3418
+ initialYear: string | undefined;
3419
+ initialDay: string | undefined;
3253
3420
  readonly YEAR_STRING_FORMAT = "YYYY";
3254
3421
  readonly MONTH_STRING_NUMBER_FORMAT = "M";
3255
3422
  readonly DAY_STRING_NUMBER_FORMAT = "D";
3256
3423
  private readonly NB_DAYS_IN_WEEK;
3257
3424
  private readonly DATE_STRING_FORMAT;
3258
3425
  private readonly DATE_READABLE_FORMAT;
3259
- private _displayedMonthYear;
3260
- get displayedMonthYear(): Observable<MonthYear>;
3261
- static getDateAsString(date: number[]): string;
3426
+ private readonly _displayedMonthYear;
3427
+ get displayedMonthYear(): Observable<MonthYear | null>;
3428
+ static getDateAsString(date?: number[] | null): string | null;
3262
3429
  private static getWeekday;
3263
3430
  private static getNumberOfDaysInMonth;
3264
3431
  private static getPreviousMonth;
@@ -3279,13 +3446,13 @@ declare class DatePickerNavigationHelper {
3279
3446
  private _daysButtonsElemRef;
3280
3447
  private _hostId;
3281
3448
  private pendingDaysButtonsUpdateAction;
3282
- private _displayNextMonth;
3283
- private _displayPreviousMonth;
3449
+ private readonly _displayNextMonth;
3450
+ private readonly _displayPreviousMonth;
3284
3451
  get displayNextMonth(): Observable<void>;
3285
3452
  get displayPreviousMonth(): Observable<void>;
3286
- set currentFocusedElement(elem: Element);
3453
+ set currentFocusedElement(elem: Element | null);
3287
3454
  set daysButtonsElemRef(elems: readonly ElementRef[]);
3288
- set hostId(id: string);
3455
+ set hostId(id: string | null);
3289
3456
  private static convertElementToFocusedDay;
3290
3457
  private static focusPreviousMonthButton;
3291
3458
  private static focusNextMonthButton;
@@ -3299,46 +3466,48 @@ declare class DatePickerNavigationHelper {
3299
3466
  private getAllDaysInColumn;
3300
3467
  private getEnabledDaysInColumn;
3301
3468
  private getCurrentFocusedIndex;
3469
+ private getCurrentFocusedDay;
3302
3470
  }
3303
3471
 
3304
3472
  declare class FocusedDay {
3305
- disabled: boolean;
3306
- indexDay: number;
3307
- indexRow: number;
3308
- indexColumn: number;
3473
+ disabled: boolean | undefined;
3474
+ indexDay: number | undefined;
3475
+ indexRow: number | undefined;
3476
+ indexColumn: number | undefined;
3309
3477
  }
3310
3478
 
3311
3479
  declare class FoehnDatePickerComponent implements OnInit {
3312
- hostId: string;
3480
+ readonly hostId: _angular_core.WritableSignal<string | null>;
3313
3481
  readonly daysButtonsElemRef: _angular_core.Signal<readonly ElementRef<any>[]>;
3314
- readonly model: _angular_core.ModelSignal<number[]>;
3482
+ readonly model: _angular_core.ModelSignal<number[] | null>;
3315
3483
  readonly isDatepickerVisible: _angular_core.ModelSignal<boolean>;
3316
- readonly id: _angular_core.InputSignal<string>;
3317
- readonly minDate: _angular_core.InputSignal<number[]>;
3318
- readonly maxDate: _angular_core.InputSignal<number[]>;
3319
- readonly datepickerTriggerHtmlElement: _angular_core.InputSignal<HTMLElement>;
3484
+ readonly id: _angular_core.InputSignal<string | undefined>;
3485
+ readonly minDate: _angular_core.InputSignal<number[] | undefined>;
3486
+ readonly maxDate: _angular_core.InputSignal<number[] | undefined>;
3487
+ readonly datepickerTriggerHtmlElement: _angular_core.InputSignal<HTMLElement | undefined>;
3320
3488
  readonly closeable: _angular_core.InputSignal<boolean>;
3321
3489
  readonly name: _angular_core.InputSignal<string>;
3322
3490
  readonly minYear: _angular_core.InputSignal<number>;
3323
3491
  readonly maxYear: _angular_core.InputSignal<number>;
3324
- readonly userInput: _angular_core.OutputEmitterRef<number[]>;
3492
+ readonly userInput: _angular_core.OutputEmitterRef<number[] | null>;
3325
3493
  readonly minYearComputed: _angular_core.Signal<number>;
3326
3494
  readonly maxYearComputed: _angular_core.Signal<number>;
3327
3495
  readonly yearListItem: _angular_core.Signal<FormSelectOption[]>;
3328
- weekDays: string[];
3329
- weeks: DayMonth[][];
3330
- selectedDate: dayjs.Dayjs;
3331
- currentMonthYear: Observable<MonthYear>;
3332
- model_: number[];
3333
- monthListItem: FormSelectOption[];
3334
- private dictionary;
3335
- private ngZone;
3336
- private changeDetector;
3337
- private destroyRef;
3496
+ readonly weekDays: _angular_core.WritableSignal<string[]>;
3497
+ readonly weeks: _angular_core.WritableSignal<DayMonth[][]>;
3498
+ readonly selectedDate: _angular_core.WritableSignal<dayjs.Dayjs | null>;
3499
+ currentMonthYear: Observable<MonthYear | null>;
3500
+ model_: number[] | undefined | null;
3501
+ readonly monthListItem: _angular_core.WritableSignal<FormSelectOption[]>;
3502
+ private readonly dictionary;
3503
+ private readonly injector;
3504
+ private readonly pendingTasks;
3505
+ private readonly changeDetector;
3506
+ private readonly destroyRef;
3338
3507
  private previousIsVisible;
3339
3508
  private keyboardNavigationAllowed;
3340
- private datePickerHelper;
3341
- private datePickerNavigationHelper;
3509
+ private readonly datePickerHelper;
3510
+ private readonly datePickerNavigationHelper;
3342
3511
  /**
3343
3512
  * effect() — side effect
3344
3513
  * Quand un changement de signal doit déclencher quelque chose en dehors du graphe de signals : DOM, localStorage, log, appel externe...
@@ -3350,12 +3519,12 @@ declare class FoehnDatePickerComponent implements OnInit {
3350
3519
  handleKeyboardUpEvent(event: KeyboardEvent): void;
3351
3520
  handleKeyboardDownEvent(event: KeyboardEvent): void;
3352
3521
  ngOnInit(): void;
3353
- onModelChange(value: number[]): void;
3354
- updateNgModel(value: number[]): void;
3355
- buildId(suffix?: string): string;
3356
- isToday(date: dayjs.Dayjs): boolean;
3357
- isSelected(date: dayjs.Dayjs): boolean;
3358
- handleUserInput(date: dayjs.Dayjs): void;
3522
+ onModelChange(value: number[] | null): void;
3523
+ updateNgModel(value: number[] | null): void;
3524
+ buildId(suffix?: string): string | null;
3525
+ isToday(date: dayjs.Dayjs | undefined): boolean;
3526
+ isSelected(date: dayjs.Dayjs | undefined): boolean;
3527
+ handleUserInput(date: dayjs.Dayjs | undefined): void;
3359
3528
  previousMonth(): void;
3360
3529
  nextMonth(): void;
3361
3530
  userInputMonth(month: string): void;
@@ -3374,52 +3543,53 @@ declare class FoehnDatePickerComponent implements OnInit {
3374
3543
  private getDateAsArray;
3375
3544
  private focusOnDatepickerTrigger;
3376
3545
  private populateMonthList;
3546
+ private updateWeeksAndSyncNavigation;
3377
3547
  private onKeyDownInner;
3378
3548
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnDatePickerComponent, never>;
3379
3549
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnDatePickerComponent, "foehn-date-picker", never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; "isDatepickerVisible": { "alias": "isDatepickerVisible"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "datepickerTriggerHtmlElement": { "alias": "datepickerTriggerHtmlElement"; "required": false; "isSignal": true; }; "closeable": { "alias": "closeable"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "minYear": { "alias": "minYear"; "required": false; "isSignal": true; }; "maxYear": { "alias": "maxYear"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "isDatepickerVisible": "isDatepickerVisibleChange"; "userInput": "userInput"; }, never, never, true, never>;
3380
3550
  }
3381
3551
 
3382
3552
  declare class FoehnDatePickerButtonComponent implements OnInit {
3383
- hostId: string;
3384
- readonly model: _angular_core.ModelSignal<number[]>;
3385
- readonly id: _angular_core.InputSignal<string>;
3553
+ hostId: string | null;
3554
+ readonly model: _angular_core.ModelSignal<number[] | null>;
3555
+ readonly id: _angular_core.InputSignal<string | undefined>;
3386
3556
  readonly displaySelectedDate: _angular_core.InputSignal<boolean>;
3387
3557
  readonly name: _angular_core.InputSignal<string>;
3388
3558
  readonly minYear: _angular_core.InputSignal<number>;
3389
3559
  readonly maxYear: _angular_core.InputSignal<number>;
3390
- readonly minDate: _angular_core.InputSignal<number[]>;
3391
- readonly maxDate: _angular_core.InputSignal<number[]>;
3560
+ readonly minDate: _angular_core.InputSignal<number[] | undefined>;
3561
+ readonly maxDate: _angular_core.InputSignal<number[] | undefined>;
3392
3562
  readonly selectedDateSrOnlyLabelKey: _angular_core.InputSignal<string>;
3393
- readonly datepickerTrigger: _angular_core.Signal<ElementRef<any>>;
3394
- readonly userInput: _angular_core.OutputEmitterRef<number[]>;
3395
- model_: number[];
3396
- private isVisible;
3563
+ readonly datepickerTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
3564
+ readonly userInput: _angular_core.OutputEmitterRef<number[] | null>;
3565
+ model_: number[] | null | undefined;
3566
+ private readonly isVisible;
3397
3567
  private readonly modelEffect;
3398
3568
  get isDatepickerVisible(): boolean;
3399
3569
  ngOnInit(): void;
3400
- buildId(suffix?: string): string;
3570
+ buildId(suffix?: string): string | null;
3401
3571
  open(): void;
3402
3572
  close(): void;
3403
3573
  updateVisibilityStatus(status: boolean): void;
3404
- onModelChange(value: number[]): void;
3405
- updateNgModel(value: number[]): void;
3406
- handleUserInput(date: number[]): void;
3574
+ onModelChange(value: number[] | null): void;
3575
+ updateNgModel(value: number[] | null): void;
3576
+ handleUserInput(date: number[] | null): void;
3407
3577
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnDatePickerButtonComponent, never>;
3408
3578
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnDatePickerButtonComponent, "foehn-date-picker-button", never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "displaySelectedDate": { "alias": "displaySelectedDate"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "minYear": { "alias": "minYear"; "required": false; "isSignal": true; }; "maxYear": { "alias": "maxYear"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "selectedDateSrOnlyLabelKey": { "alias": "selectedDateSrOnlyLabelKey"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "userInput": "userInput"; }, never, never, true, never>;
3409
3579
  }
3410
3580
 
3411
3581
  declare class FoehnDecisionElectroniqueComponent extends FoehnInputComponent<boolean> {
3412
- readonly id: _angular_core.InputSignal<string>;
3582
+ readonly id: _angular_core.InputSignal<string | undefined>;
3413
3583
  readonly name: _angular_core.InputSignal<string>;
3414
3584
  isConnectedCyber: Observable<boolean>;
3415
- private sessionInfo;
3585
+ private readonly sessionInfo;
3416
3586
  constructor();
3417
3587
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnDecisionElectroniqueComponent, never>;
3418
3588
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnDecisionElectroniqueComponent, "foehn-decision-electronique", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3419
3589
  }
3420
3590
 
3421
3591
  declare class DemandeHelper {
3422
- static getSafeReference(reference: string): string;
3592
+ static getSafeReference(reference: string | null | undefined): string | null;
3423
3593
  }
3424
3594
 
3425
3595
  declare class ObjectHelper {
@@ -3454,7 +3624,7 @@ declare class ObjectHelper {
3454
3624
  }
3455
3625
 
3456
3626
  declare class ScrollHelper {
3457
- static scrollIntoViewWithExpirationTimerOffset(elementContainer: Element): void;
3627
+ static scrollIntoViewWithExpirationTimerOffset(elementContainer: Element | null | undefined): void;
3458
3628
  }
3459
3629
 
3460
3630
  declare class StringHelper {
@@ -3468,122 +3638,137 @@ declare class StringHelper {
3468
3638
  }
3469
3639
 
3470
3640
  declare class AddressTypeLight {
3471
- id: string;
3472
- egid: string;
3473
- number: string;
3641
+ id: string | undefined | null;
3642
+ egid: string | undefined | null;
3643
+ number: string | undefined | null;
3474
3644
  }
3475
3645
 
3476
3646
  declare class Canton {
3477
- code: string;
3478
- label: string;
3647
+ code: string | undefined | null;
3648
+ label: string | undefined | null;
3479
3649
  }
3480
3650
 
3481
3651
  declare class District {
3482
- districtHistId: string;
3483
- cantonId: string;
3484
- districtId: string;
3485
- districtLongName: string;
3486
- districtShortName: string;
3652
+ districtHistId: string | undefined | null;
3653
+ cantonId: string | undefined | null;
3654
+ districtId: string | undefined | null;
3655
+ districtLongName: string | undefined | null;
3656
+ districtShortName: string | undefined | null;
3487
3657
  }
3488
3658
 
3489
3659
  declare class Municipality {
3490
- id: number;
3491
- name: string;
3492
- canton: string;
3493
- districtHistId: string;
3494
- districtId: string;
3495
- historyMunicipalityId: string;
3496
- municipalityEntryMode: string;
3660
+ id: number | undefined | null;
3661
+ name: string | undefined | null;
3662
+ canton: string | undefined | null;
3663
+ districtHistId: string | undefined | null;
3664
+ districtId: string | undefined | null;
3665
+ historyMunicipalityId: string | undefined | null;
3666
+ municipalityEntryMode: string | undefined | null;
3497
3667
  }
3498
3668
 
3499
3669
  declare class PlaceOfOrigin {
3500
- canton: string;
3501
- historyMunicipalityId: number;
3502
- placeOfOriginId: string;
3503
- name: string;
3504
- successorId: string;
3505
- validFrom: number[];
3506
- validTo: number[];
3670
+ canton: string | undefined | null;
3671
+ historyMunicipalityId: number | undefined | null;
3672
+ placeOfOriginId: string | undefined | null;
3673
+ name: string | undefined | null;
3674
+ successorId: string | undefined | null;
3675
+ validFrom: number[] | undefined | null;
3676
+ validTo: number[] | undefined | null;
3507
3677
  }
3508
3678
 
3509
3679
  declare class PostalLocality {
3510
- id: string;
3511
- zipCode: string;
3512
- zipCodeAddOn: string;
3513
- zipCodeId: number;
3514
- name: string;
3515
- municipalityId: number;
3516
- canton: Canton;
3517
- zipCodeType: string;
3680
+ id: string | undefined | null;
3681
+ zipCode: string | undefined | null;
3682
+ zipCodeAddOn: string | undefined | null;
3683
+ zipCodeId: number | undefined | null;
3684
+ name: string | undefined | null;
3685
+ municipalityId: number | undefined | null;
3686
+ canton: Canton | undefined | null;
3687
+ zipCodeType: string | undefined | null;
3518
3688
  }
3519
3689
 
3520
3690
  declare class DaySlots {
3521
- day: string;
3522
- date: number[];
3523
- timeSlots: string[];
3691
+ day: string | undefined | null;
3692
+ date: number[] | undefined | null;
3693
+ timeSlots: string[] | undefined | null;
3524
3694
  }
3525
3695
 
3526
3696
  declare class PaginationWeek {
3527
- label: string;
3528
- weekNumber: number;
3529
- year: number;
3697
+ label: string | undefined | null;
3698
+ weekNumber: number | undefined | null;
3699
+ year: number | undefined | null;
3530
3700
  }
3531
3701
 
3532
3702
  declare class CurrentWeek extends PaginationWeek {
3533
- week: DaySlots[];
3703
+ week: DaySlots[] | undefined | null;
3534
3704
  }
3535
3705
 
3536
3706
  declare class Calendar {
3537
- previousWeek: PaginationWeek;
3538
- currentWeek: CurrentWeek;
3539
- nextWeek: PaginationWeek;
3540
- minAvailableDate: number[];
3541
- maxAvailableDate: number[];
3707
+ previousWeek: PaginationWeek | undefined | null;
3708
+ currentWeek: CurrentWeek | undefined | null;
3709
+ nextWeek: PaginationWeek | undefined | null;
3710
+ minAvailableDate: number[] | undefined;
3711
+ maxAvailableDate: number[] | undefined;
3542
3712
  }
3543
3713
 
3544
3714
  declare class SelectedSlot {
3545
- day: string;
3546
- time: string;
3547
- year: number;
3548
- weekNumber: number;
3549
- date: number[];
3715
+ day: string | undefined | null;
3716
+ time: string | undefined | null;
3717
+ year: number | undefined | null;
3718
+ weekNumber: number | undefined | null;
3719
+ date: number[] | undefined | null;
3550
3720
  }
3551
3721
 
3552
- declare class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent<SelectedSlot> implements OnChanges {
3722
+ declare class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent<SelectedSlot> {
3553
3723
  readonly DEFAULT_NB_VISIBLE_ELEMENTS = 22;
3554
- readonly calendar: _angular_core.InputSignal<Observable<Calendar>>;
3555
- readonly currentWeek: _angular_core.InputSignal<DaySlots>;
3556
- readonly nbVisibleElements: _angular_core.InputSignal<number>;
3724
+ readonly calendar: _angular_core.InputSignal<Observable<Calendar> | undefined>;
3725
+ readonly currentWeek: _angular_core.InputSignal<DaySlots | undefined>;
3726
+ readonly nbVisibleElements: _angular_core.InputSignal<number | null | undefined>;
3557
3727
  readonly visibleElementsCount: _angular_core.Signal<number>;
3558
3728
  readonly timeSlotButtonsElemRef: _angular_core.Signal<readonly ElementRef<any>[]>;
3559
- selectedTimeSlot: string;
3560
- timeSlots: string[];
3561
- isClosed: boolean;
3562
- timeslotRemaining: number;
3563
- timeInputValue: string;
3564
- canClose: boolean;
3565
- private dictionaryService;
3566
- private dayInputValue;
3729
+ readonly selectedTimeSlot: _angular_core.WritableSignal<string | null>;
3730
+ readonly timeInputValue: _angular_core.WritableSignal<string | null | undefined>;
3731
+ /**
3732
+ * TRUE when only the first visibleElementsCount() time slots are displayed.
3733
+ * Closed again when the time slots change, unless the selected slot would be hidden.
3734
+ */
3735
+ readonly isClosed: _angular_core.WritableSignal<boolean>;
3736
+ readonly timeSlots: _angular_core.Signal<string[]>;
3737
+ readonly timeslotRemaining: _angular_core.Signal<number>;
3738
+ /**
3739
+ * FALSE when closing the panel would hide the selected slot.
3740
+ */
3741
+ readonly canClose: _angular_core.Signal<boolean>;
3742
+ private readonly dictionaryService;
3743
+ private readonly dayInputValue;
3567
3744
  private keyboardNavigationAllowed;
3568
3745
  private currentActiveElement;
3569
- private hasSelectedSlotInPanel;
3570
- constructor();
3571
- ngOnChanges(changes: SimpleChanges): void;
3746
+ /**
3747
+ * Index of the selected slot in the time slots of the day, -1 when it is not in this panel.
3748
+ */
3749
+ private readonly selectedSlotIndex;
3750
+ private readonly hasSelectedSlotInPanel;
3751
+ /**
3752
+ * TRUE when the selected slot is in this panel but not displayed while it is closed.
3753
+ */
3754
+ private readonly isSelectedSlotHidden;
3572
3755
  handleKeyboardDownEvent(event: KeyboardEvent): void;
3573
3756
  focus(): void;
3574
- capitalCaseFirstLetter(s: string): string;
3575
- handleUserInput(day: string, date: number[], time: string, calendar: Calendar): void;
3757
+ capitalCaseFirstLetter(s: string | null | undefined): string;
3758
+ handleUserInput(day: string | undefined | null, date: number[] | undefined | null, time: string, calendar: Calendar): void;
3576
3759
  togglePanel(): void;
3577
- onModelChange(value: SelectedSlot): void;
3760
+ onModelChange(value: SelectedSlot | null): void;
3578
3761
  getTimeInputValue(s: string): string;
3762
+ /**
3763
+ * Opens the panel when the selected slot would be hidden.
3764
+ */
3579
3765
  searchTimeValueInTimeSlot(): void;
3580
3766
  onTimeFocusin(): void;
3581
3767
  onTimeFocusout(): void;
3582
- isSelected(timeSlot: string): boolean;
3583
- getButtonTimeSlotAriaLabel(day: string, timeSlot: string): string;
3768
+ isSelected(timeSlot: string | null | undefined): boolean;
3769
+ getButtonTimeSlotAriaLabel(day: string | undefined | null, timeSlot: string): string;
3584
3770
  getTimeSlotTabIndex(timeSlot: string, index: number): number;
3585
3771
  cleanIdForQuerySelector(s: string): string;
3586
- private sliceNbVisibleElements;
3587
3772
  private getValidValue;
3588
3773
  private onKeyDownInner;
3589
3774
  private focusTimeSlot;
@@ -3592,19 +3777,19 @@ declare class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent<Sele
3592
3777
  }
3593
3778
 
3594
3779
  declare class FoehnAgendaComponent extends FoehnInputComponent<SelectedSlot> {
3595
- readonly calendar: _angular_core.InputSignal<Observable<Calendar>>;
3596
- readonly nbVisibleElements: _angular_core.InputSignal<number>;
3780
+ readonly calendar: _angular_core.InputSignal<Observable<Calendar> | undefined>;
3781
+ readonly nbVisibleElements: _angular_core.InputSignal<number | undefined>;
3597
3782
  readonly paginationChange: _angular_core.OutputEmitterRef<PaginationWeek>;
3598
3783
  readonly readableSelectedTimeSlot: _angular_core.Signal<string>;
3599
3784
  readonly timeSlotPanelsElemRef: _angular_core.Signal<readonly FoehnAgendaTimeslotPanelComponent[]>;
3600
- srAnnouncements: string;
3601
- private dictionaryService;
3785
+ readonly srAnnouncements: _angular_core.WritableSignal<string>;
3786
+ private readonly dictionaryService;
3602
3787
  private srAnnouncementClearTimer;
3603
3788
  private readonly SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS;
3604
3789
  private static cleanIdForQuerySelector;
3605
3790
  focus(): void;
3606
3791
  paginate(paginationWeek: PaginationWeek): void;
3607
- handleUserInput(selectedTimeSlot: SelectedSlot): void;
3792
+ handleUserInput(selectedTimeSlot: SelectedSlot | null): void;
3608
3793
  scrollToNavigation(isTop: boolean): void;
3609
3794
  private manageScreenReaderAnnouncement;
3610
3795
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnAgendaComponent, never>;
@@ -3612,18 +3797,18 @@ declare class FoehnAgendaComponent extends FoehnInputComponent<SelectedSlot> {
3612
3797
  }
3613
3798
 
3614
3799
  declare class FoehnAgendaNavigationComponent implements OnChanges {
3615
- readonly id: _angular_core.InputSignal<string>;
3616
- readonly calendar: _angular_core.InputSignal<Calendar>;
3800
+ readonly id: _angular_core.InputSignal<string | undefined>;
3801
+ readonly calendar: _angular_core.InputSignal<Calendar | undefined>;
3617
3802
  readonly isSrOnly: _angular_core.InputSignal<boolean>;
3618
- readonly minDate: _angular_core.InputSignal<number[]>;
3619
- readonly maxDate: _angular_core.InputSignal<number[]>;
3803
+ readonly minDate: _angular_core.InputSignal<number[] | undefined>;
3804
+ readonly maxDate: _angular_core.InputSignal<number[] | undefined>;
3620
3805
  readonly paginationChange: _angular_core.OutputEmitterRef<PaginationWeek>;
3621
- currentDay: number[];
3806
+ currentDay: number[] | null;
3622
3807
  private overrideWithCalendarDate;
3623
3808
  private static getCurrentDateAsArray;
3624
3809
  ngOnChanges(changes: SimpleChanges): void;
3625
3810
  paginate(paginationWeek: PaginationWeek): void;
3626
- datePickerUserInput(selectedDate: number[]): void;
3811
+ datePickerUserInput(selectedDate: number[] | null): void;
3627
3812
  private onCalendarChange;
3628
3813
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnAgendaNavigationComponent, never>;
3629
3814
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FoehnAgendaNavigationComponent, "foehn-agenda-navigation", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "isSrOnly": { "alias": "isSrOnly"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "paginationChange": "paginationChange"; }, never, never, true, never>;
@@ -3634,28 +3819,28 @@ interface Position {
3634
3819
  top: number;
3635
3820
  }
3636
3821
  declare class FoehnDropdownMenuComponent implements OnInit {
3637
- hostId: string;
3638
- readonly id: _angular_core.InputSignal<string>;
3639
- readonly label: _angular_core.InputSignal<string>;
3640
- readonly model: _angular_core.InputSignal<DropdownMenuGroup[]>;
3822
+ hostId: string | null | undefined;
3823
+ readonly id: _angular_core.InputSignal<string | undefined>;
3824
+ readonly label: _angular_core.InputSignal<string | undefined>;
3825
+ readonly model: _angular_core.InputSignal<DropdownMenuGroup[] | undefined>;
3641
3826
  readonly btnCssClass: _angular_core.InputSignal<string>;
3642
3827
  readonly selectedFocusList: _angular_core.Signal<readonly ElementRef<any>[]>;
3643
- readonly buttonTrigger: _angular_core.Signal<ElementRef<any>>;
3644
- readonly entryPoint: _angular_core.Signal<ElementRef<any>>;
3645
- isDropdownVisible: boolean;
3646
- closeDropdownTimer: any;
3647
- popupPosition: Position;
3648
- private router;
3828
+ readonly buttonTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
3829
+ readonly entryPoint: _angular_core.Signal<ElementRef<any> | undefined>;
3830
+ readonly isDropdownVisible: _angular_core.WritableSignal<boolean>;
3831
+ closeDropdownTimer: ReturnType<typeof setTimeout> | undefined;
3832
+ readonly popupPosition: _angular_core.WritableSignal<Position>;
3833
+ private readonly router;
3834
+ private readonly injector;
3649
3835
  private currentItemGlobalIndex;
3650
3836
  private shouldFocusEntryPointAfterOpen;
3651
3837
  private readonly selectedFocusListEffect;
3652
- constructor();
3653
3838
  handleKeyboardUpEvent(event: KeyboardEvent): void;
3654
3839
  handleKeyboardDownEvent(event: KeyboardEvent): void;
3655
3840
  ngOnInit(): void;
3656
3841
  handleFocusIn(): void;
3657
3842
  handleFocusOut(): void;
3658
- buildId(suffix?: string): string;
3843
+ buildId(suffix?: string): string | null;
3659
3844
  toggleDropdownVisibility(): void;
3660
3845
  resetDropdown(): void;
3661
3846
  private onKeyDownInner;
@@ -3670,12 +3855,12 @@ declare class FoehnDropdownMenuComponent implements OnInit {
3670
3855
  }
3671
3856
 
3672
3857
  declare class FoehnFeedbackNotificationType {
3673
- answer: string;
3674
- idMetierEtape: string;
3675
- isConnected: boolean;
3676
- beneficiaryCategory: string;
3677
- currentAction: number;
3678
- isBehindIAM: boolean;
3858
+ answer: string | undefined | null;
3859
+ idMetierEtape: string | undefined | null;
3860
+ isConnected: boolean | undefined | null;
3861
+ beneficiaryCategory: string | undefined | null;
3862
+ currentAction: number | undefined | null;
3863
+ isBehindIAM: boolean | undefined | null;
3679
3864
  }
3680
3865
 
3681
3866
  declare const FEEDBACK_USAGERS_LOCAL_STORAGE_PREFIX = "FEEDBACK-USAGERS-";
@@ -3684,19 +3869,19 @@ declare class FoehnFeedbackNotificationComponent {
3684
3869
  mediumIconName: _fortawesome_fontawesome_common_types.IconDefinition;
3685
3870
  badIconName: _fortawesome_fontawesome_common_types.IconDefinition;
3686
3871
  readonly expanded: _angular_core.WritableSignal<boolean>;
3687
- isScrollEnded: boolean;
3872
+ isScrollEnded: boolean | undefined;
3688
3873
  visible: Observable<boolean>;
3689
- goodUrl: Observable<string>;
3690
- mediumUrl: Observable<string>;
3691
- badUrl: Observable<string>;
3692
- private applicationInfoService;
3693
- private sessionInfo;
3694
- private gesdemHandlerService;
3695
- private http;
3874
+ goodUrl: Observable<string | null> | undefined;
3875
+ mediumUrl: Observable<string | null> | undefined;
3876
+ badUrl: Observable<string | null> | undefined;
3877
+ private readonly applicationInfoService;
3878
+ private readonly sessionInfo;
3879
+ private readonly gesdemHandlerService;
3880
+ private readonly http;
3696
3881
  constructor();
3697
3882
  onWindowScroll(): void;
3698
3883
  hideNotification(): void;
3699
- getUrl(answer: string, feedbackUsager: FoehnFeedbackNotificationType, feedBackFormBaseUrl: string, reference: string): Observable<string>;
3884
+ getUrl(answer: string, feedbackUsager: FoehnFeedbackNotificationType, feedBackFormBaseUrl: string, reference: string | null | undefined): Observable<string | null>;
3700
3885
  private getCategory;
3701
3886
  private getPortailBaseUrl;
3702
3887
  private getFullReference;
@@ -3711,8 +3896,8 @@ declare enum SdkLogLevel {
3711
3896
  }
3712
3897
 
3713
3898
  declare class SdkLog {
3714
- logLevel: SdkLogLevel;
3715
- message: string;
3899
+ logLevel: SdkLogLevel | undefined;
3900
+ message: string | undefined;
3716
3901
  }
3717
3902
 
3718
3903
  interface BrowserInfo {
@@ -3722,6 +3907,7 @@ interface BrowserInfo {
3722
3907
  }
3723
3908
  declare class SdkLogsService {
3724
3909
  private readonly http;
3910
+ private readonly destroyRef;
3725
3911
  private cachedBrowserInfo;
3726
3912
  addLog(message: string, logLevel: SdkLogLevel): void;
3727
3913
  addLogWithError(message: string, logLevel: SdkLogLevel, error: unknown): void;
@@ -3731,5 +3917,5 @@ declare class SdkLogsService {
3731
3917
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SdkLogsService>;
3732
3918
  }
3733
3919
 
3734
- export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Calendar, Canton, Captcha, ChunkLoadErrorHandler, ComponentError, Configuration, Country, CurrencyHelper, CurrentWeek, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_FIX_AND_MOBILE, DEFAULT_INTERNATIONAL_FIX_ONLY, DEFAULT_INTERNATIONAL_MOBILE_ONLY, DEFAULT_PREFIX, DEFAULT_SWISS_FIX_AND_MOBILE, DEFAULT_SWISS_FIX_ONLY, DEFAULT_SWISS_MOBILE_ONLY, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DaySlots, DemandeExpirationService, DemandeHelper, DisplayCurrencyPipe, DisplayDatePipe, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, DropdownMenuGroup, DropdownMenuItem, EPaymentService, EtapeInfo, FEEDBACK_USAGERS_LOCAL_STORAGE_PREFIX, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAgendaComponent, FoehnAgendaNavigationComponent, FoehnAgendaTimeslotPanelComponent, FoehnAutocompleteComponent, FoehnBoMultiUploadComponent, FoehnBooleanCheckboxComponent, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnCheckableGroupComponent, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerComponent, FoehnDateTimeComponent, FoehnDecisionElectroniqueComponent, FoehnDisplayAddressComponent, FoehnDropdownMenuComponent, FoehnErrorPillComponent, FoehnFeedbackNotificationComponent, FoehnFormComponent, FoehnGlobalUploadProgressBarComponent, FoehnHeaderComponent, FoehnHelpModalComponent, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPencilComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconUserComponent, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputNav13Component, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputPrefixedTextComponent, FoehnInputStringComponent, FoehnInputTextComponent, FoehnInputTextareaComponent, FoehnListComponent, FoehnListItem, FoehnListSummaryComponent, FoehnMenuItemComponent, FoehnMenuItemTransmitComponent, FoehnModalComponent, FoehnMultiUploadComponent, FoehnMultiselectAutocompleteComponent, FoehnNavigationComponent, FoehnNavigationService, FoehnNotfoundComponent, FoehnPageComponent, FoehnPageCounterComponent, FoehnPageExpirationTimerComponent, FoehnPageModalComponent, FoehnPageService, FoehnPictureUploadComponent, FoehnRadioComponent, FoehnRecapSectionComponent, FoehnRemainingAlertsSummaryComponent, FoehnSelectComponent, FoehnSimpleNavigationComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnTransmitWaitingModalComponent, FoehnTransmitWaitingModalService, FoehnUploadProgressBarComponent, FoehnUserConnectedAsComponent, FoehnValidationAlertSummaryComponent, FoehnValidationAlertsComponent, FooterLink, FormMetadata, FormPostResponse, FormSelectOption, FormatAvsPipe, FormatIdePipe, GESDEM_MAX_DATA_LENGTH, GesdemActionRecoveryLoginComponent, GesdemActionRecoveryRegistrationComponent, GesdemConfirmationComponent, GesdemErrorComponent, GesdemEventService, GesdemHandlerService, GesdemStatutUtils, GlobalUploadProgressService, GrowlBrokerService, GrowlMessage, GrowlType, HTTP_LOADER_FILTERED_URL, I18nForm, IAM_ACV_OIDC_REDIRECT_LOCATION_REGEX, IAM_ACV_REDIRECT_LOCATION_REGEX, IbanFormatterDirective, IdeFormatterDirective, IntervalHelper, LineBreakAsHtmlPipe, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, OIDC_ENABLED, ObjectHelper, PORTAIL_BASE_URL_INT, PORTAIL_BASE_URL_PROD, PORTAIL_BASE_URL_VAL, PageChangeEvent, PageUploadLimitService, PaginationWeek, PendingFiles, PendingPaymentComponent, PendingUploadService, PlaceOfOrigin, Portail, PostalLocality, Preferences, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, RegisterNgModelService, RowElement, SESSION_INFO_API_URL, SWISS_ISO_ID, ScrollHelper, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEvent, SdkEventType, SdkEventsLoggerService, SdkLog, SdkLogLevel, SdkLogsService, SdkRecaptchaComponent, SdkStatisticsService, SelectedSlot, Session, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, StringHelper, THOUSANDS_SEPARATOR, TRANSMIT_WAITING_MODAL_DELAY_IN_MILLISECONDS, TableSort, UploadProgress, UploadProgressService, UploaderHelper, ValidationHandlerService, formatDecimalCurrency, formatNonDecimalCurrency, formatNumberAsGiven, gesdemLoaderGuard, providePrestationsNgCore, replaceAll };
3735
- export type { BreadcrumbConfiguration, BrowserInfo, DictionaryType, FoehnListItemDescription, FoehnRecapSection, FoehnRecapSectionElement, FormError, HasCustomErrors, HelpModal, Image, Language, PlaceholderType };
3920
+ export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Calendar, Canton, Captcha, ChunkLoadErrorHandler, Configuration, Country, CurrencyHelper, CurrentWeek, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_FIX_AND_MOBILE, DEFAULT_INTERNATIONAL_FIX_ONLY, DEFAULT_INTERNATIONAL_MOBILE_ONLY, DEFAULT_PREFIX, DEFAULT_SWISS_FIX_AND_MOBILE, DEFAULT_SWISS_FIX_ONLY, DEFAULT_SWISS_MOBILE_ONLY, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DaySlots, DemandeExpirationService, DemandeHelper, DisplayCurrencyPipe, DisplayDatePipe, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, DropdownMenuGroup, DropdownMenuItem, EPaymentService, EtapeInfo, FEEDBACK_USAGERS_LOCAL_STORAGE_PREFIX, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAgendaComponent, FoehnAgendaNavigationComponent, FoehnAgendaTimeslotPanelComponent, FoehnAutocompleteComponent, FoehnBoMultiUploadComponent, FoehnBooleanCheckboxComponent, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnCheckableGroupComponent, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerComponent, FoehnDateTimeComponent, FoehnDecisionElectroniqueComponent, FoehnDisplayAddressComponent, FoehnDropdownMenuComponent, FoehnErrorPillComponent, FoehnFeedbackNotificationComponent, FoehnFormComponent, FoehnGlobalUploadProgressBarComponent, FoehnHeaderComponent, FoehnHelpModalComponent, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPencilComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconUserComponent, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputNav13Component, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputPrefixedTextComponent, FoehnInputStringComponent, FoehnInputTextComponent, FoehnInputTextareaComponent, FoehnListComponent, FoehnListItem, FoehnListSummaryComponent, FoehnMenuItemComponent, FoehnMenuItemTransmitComponent, FoehnModalComponent, FoehnMultiUploadComponent, FoehnMultiselectAutocompleteComponent, FoehnNavigationComponent, FoehnNavigationService, FoehnNotfoundComponent, FoehnPageComponent, FoehnPageCounterComponent, FoehnPageExpirationTimerComponent, FoehnPageModalComponent, FoehnPageService, FoehnPictureUploadComponent, FoehnRadioComponent, FoehnRecapSectionComponent, FoehnRemainingAlertsSummaryComponent, FoehnSelectComponent, FoehnSimpleNavigationComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnTransmitWaitingModalComponent, FoehnTransmitWaitingModalService, FoehnUploadProgressBarComponent, FoehnUserConnectedAsComponent, FoehnValidationAlertSummaryComponent, FoehnValidationAlertsComponent, FooterLink, FormMetadata, FormPostResponse, FormSelectOption, FormatAvsPipe, FormatIdePipe, GESDEM_MAX_DATA_LENGTH, GesdemActionRecoveryLoginComponent, GesdemActionRecoveryRegistrationComponent, GesdemConfirmationComponent, GesdemErrorComponent, GesdemEventService, GesdemHandlerService, GesdemStatutUtils, GlobalUploadProgressService, GrowlBrokerService, GrowlMessage, GrowlType, HTTP_LOADER_FILTERED_URL, I18nForm, IAM_ACV_OIDC_REDIRECT_LOCATION_REGEX, IAM_ACV_REDIRECT_LOCATION_REGEX, IbanFormatterDirective, IdeFormatterDirective, IntervalHelper, LineBreakAsHtmlPipe, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NEVER_CONNECTED, NavigationDirection, NumberCurrencyFormatterDirective, OIDC_ENABLED, ObjectHelper, PORTAIL_BASE_URL_INT, PORTAIL_BASE_URL_PROD, PORTAIL_BASE_URL_VAL, PageChangeEvent, PageUploadLimitService, PaginationWeek, PendingFiles, PendingPaymentComponent, PendingUploadService, PlaceOfOrigin, Portail, PostalLocality, Preferences, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, RegisterNgModelService, RowElement, SESSION_INFO_API_URL, SWISS_ISO_ID, ScrollHelper, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEvent, SdkEventType, SdkEventsLoggerService, SdkLog, SdkLogLevel, SdkLogsService, SdkRecaptchaComponent, SdkStatisticsService, SelectedSlot, Session, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, StringHelper, THOUSANDS_SEPARATOR, TRANSMIT_WAITING_MODAL_DELAY_IN_MILLISECONDS, TableSort, UploadProgress, UploadProgressService, UploaderHelper, ValidationHandlerService, formatDecimalCurrency, formatNonDecimalCurrency, formatNumberAsGiven, gesdemLoaderGuard, getSafeFileNameForErrorMessage, providePrestationsNgCore, replaceAll, splitDocumentChanges };
3921
+ export type { BreadcrumbConfiguration, BrowserInfo, ComponentError, DictionaryType, DocumentChanges, FoehnListItemDescription, FoehnRecapSection, FoehnRecapSectionElement, FoehnRecapSectionElementValueType, FormError, HasCustomErrors, HelpModal, Image, Language, PlaceholderType, UploaderErrorLimits };