@dsivd/prestations-ng 19.2.0-beta.3 → 19.2.0-beta.5

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.
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnInit, AfterViewInit, Signal, ElementRef, DestroyRef, OnDestroy, InjectionToken, OnChanges, SimpleChanges, EnvironmentProviders, SimpleChange, AfterViewChecked, PipeTransform, TemplateRef, TrackByFunction, 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';
@@ -117,6 +117,7 @@ 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
+ #private;
120
121
  readonly model: _angular_core.ModelSignal<T | null | undefined>;
121
122
  readonly pattern: _angular_core.ModelSignal<string | undefined>;
122
123
  readonly helpModal: _angular_core.ModelSignal<HelpModal | undefined>;
@@ -194,7 +195,7 @@ declare abstract class FoehnInputComponent<T> implements OnInit, AfterViewInit {
194
195
  protected readonly hostHidden: Signal<"hidden" | null>;
195
196
  protected readonly _destroyRef: DestroyRef;
196
197
  private readonly registerNgModelService;
197
- private _errors;
198
+ private readonly _errors;
198
199
  private readonly userInputSubject;
199
200
  private readonly subComponentsEffect;
200
201
  private readonly modelEffect;
@@ -429,7 +430,7 @@ declare class GesdemHandlerService {
429
430
  private readonly dictionaryService;
430
431
  private readonly dateHelper;
431
432
  private readonly _updateFormDataSubject;
432
- private _lastResponse;
433
+ private readonly _lastResponse;
433
434
  private _captchaToken;
434
435
  get lastResponse(): FormPostResponse<I18nForm>;
435
436
  get updateFormDataSubject(): Observable<I18nForm | undefined | null>;
@@ -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;
@@ -530,6 +531,7 @@ declare class SdkEventsLoggerService {
530
531
  }
531
532
 
532
533
  declare abstract class AbstractPageComponent<T extends I18nForm> implements OnInit, AfterViewInit {
534
+ #private;
533
535
  readonly foehnFormComponent: _angular_core.Signal<FoehnFormComponent | undefined>;
534
536
  form: T | undefined | null;
535
537
  reference: string | null | undefined;
@@ -569,7 +571,7 @@ 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;
574
+ readonly seconds: _angular_core.WritableSignal<number>;
573
575
  private readonly router;
574
576
  private readonly foehnPageService;
575
577
  private intervalId;
@@ -816,7 +818,8 @@ declare class GesdemErrorComponent implements OnInit {
816
818
  }
817
819
 
818
820
  /**
819
- * 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).
820
823
  * Replaces the old PrestationsNgCoreModule.
821
824
  *
822
825
  * Usage in bootstrapApplication:
@@ -897,7 +900,7 @@ declare class FoehnPageComponent implements OnChanges, OnInit {
897
900
  * reloading the page while having unsaved data.
898
901
  */
899
902
  readonly showBeforeUnloadNativeConfirmAlert: _angular_core.InputSignal<boolean | undefined>;
900
- pageTitle: string | undefined;
903
+ readonly pageTitle: _angular_core.WritableSignal<string | undefined>;
901
904
  hasBlockingSupportAlert: Observable<boolean>;
902
905
  displayUserCategory: Observable<boolean> | undefined;
903
906
  showSecuredAreaLoginButton: Observable<boolean> | undefined;
@@ -937,9 +940,12 @@ declare class FoehnPageComponent implements OnChanges, OnInit {
937
940
 
938
941
  declare class FoehnPageCounterComponent {
939
942
  readonly textTemplate: _angular_core.InputSignal<string>;
940
- isStable: Observable<boolean>;
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>;
941
948
  private readonly foehnNavigationService;
942
- private readonly ngZone;
943
949
  constructor();
944
950
  get placeholders(): PlaceholderType;
945
951
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnPageCounterComponent, never>;
@@ -1026,7 +1032,7 @@ declare class FoehnHeaderComponent implements OnInit {
1026
1032
  readonly isParticulier: _angular_core.Signal<boolean>;
1027
1033
  readonly prenomNom: _angular_core.Signal<string>;
1028
1034
  id: string;
1029
- connectedEsMenu: DropdownMenuGroup[] | undefined;
1035
+ readonly connectedEsMenu: _angular_core.Signal<DropdownMenuGroup[] | undefined>;
1030
1036
  isProduction: Observable<boolean> | undefined;
1031
1037
  mockedServices: Observable<string[] | null | undefined> | undefined;
1032
1038
  availableLanguages: Observable<Language[]> | undefined;
@@ -1040,7 +1046,6 @@ declare class FoehnHeaderComponent implements OnInit {
1040
1046
  private readonly destroyRef;
1041
1047
  private readonly ENV_PROD;
1042
1048
  private readonly AVS;
1043
- constructor();
1044
1049
  ngOnInit(): void;
1045
1050
  getEnvironmentLabel(info: ApplicationInfo): string | null | undefined;
1046
1051
  languageChanged(languageCode: string): void;
@@ -1070,7 +1075,7 @@ declare class FoehnSkipLinkComponent implements OnInit {
1070
1075
 
1071
1076
  declare class FoehnStatusProgressBarComponent implements OnInit {
1072
1077
  readonly hidden: _angular_core.InputSignal<boolean | undefined>;
1073
- isTransmitted: boolean;
1078
+ readonly isTransmitted: _angular_core.WritableSignal<boolean>;
1074
1079
  protected activatedRoute: ActivatedRoute;
1075
1080
  private readonly navigation;
1076
1081
  private readonly gesdemHand;
@@ -1124,6 +1129,7 @@ declare class FormSelectOptionGroup {
1124
1129
  }
1125
1130
 
1126
1131
  declare abstract class FoehnCheckableGroupComponent extends FoehnInputComponent<any> implements OnInit, OnChanges {
1132
+ #private;
1127
1133
  readonly elements: _angular_core.ModelSignal<any>;
1128
1134
  readonly elementsUrl: _angular_core.InputSignal<string | undefined>;
1129
1135
  /**
@@ -1153,10 +1159,9 @@ declare abstract class FoehnCheckableGroupComponent extends FoehnInputComponent<
1153
1159
  */
1154
1160
  readonly missingModelValues: Signal<any[]>;
1155
1161
  readonly hasMissingModelValue: Signal<boolean>;
1156
- groupedElements: FormSelectOptionGroup[];
1162
+ readonly groupedElements: _angular_core.WritableSignal<FormSelectOptionGroup[]>;
1157
1163
  protected readonly httpClient: HttpClient;
1158
1164
  protected readonly multiple: Signal<boolean>;
1159
- private readonly ngZone;
1160
1165
  private pulling_;
1161
1166
  private readonly _onInitSubject;
1162
1167
  private disabledByElements;
@@ -1238,20 +1243,24 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1238
1243
  readonly suggestionsList: _angular_core.Signal<any>;
1239
1244
  readonly inputElement: _angular_core.Signal<any>;
1240
1245
  readonly inputValue: _angular_core.WritableSignal<string | null>;
1241
- searchValue: string | null;
1242
- inputHasFocus: boolean;
1243
- hideSuggestions: boolean;
1246
+ readonly searchValue: _angular_core.WritableSignal<string | null>;
1247
+ readonly inputHasFocus: _angular_core.WritableSignal<boolean>;
1248
+ readonly hideSuggestions: _angular_core.WritableSignal<boolean>;
1244
1249
  currentBlurTimer: ReturnType<typeof setTimeout> | null;
1245
1250
  placeholder: string | undefined;
1246
- VIEW_PORT_HEIGHT: number;
1247
- displayedElements: any[];
1248
- notificationMessageUpdated: boolean;
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>;
1249
1257
  readonly disabledComputed: _angular_core.Signal<boolean>;
1258
+ protected readonly componentInjector: Injector;
1250
1259
  private currentItemGlobalIndex;
1251
1260
  private readonly NB_ITEMS_VISIBLE;
1252
1261
  private readonly filterSubject;
1253
1262
  private listHasFocus;
1254
- private activeDescendantId;
1263
+ private readonly activeDescendantId;
1255
1264
  private readonly SUGGESTION_SELECTED_CLASS;
1256
1265
  private readonly EXCLUDE_HTML_TAGS_REGEX;
1257
1266
  private readonly SUGGESTION_CUSTOM_ATTRIBUTE_LABEL_VALUE;
@@ -1299,7 +1308,10 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1299
1308
  private checkAndSetInputValue;
1300
1309
  private setSuggestionsDisplayed;
1301
1310
  private setDisplayedElements;
1302
- private resizeDisplayViewPort;
1311
+ /**
1312
+ * The virtual scroll viewport has to measure its size again once its new height is rendered.
1313
+ */
1314
+ private checkViewportSizeAfterRender;
1303
1315
  private getSelectedElement;
1304
1316
  private selectNextElement;
1305
1317
  private clearSelectionAndFindSelectedIndex;
@@ -1319,7 +1331,24 @@ declare class FoehnAutocompleteComponent extends FoehnCheckableGroupComponent im
1319
1331
  private getCustomValue;
1320
1332
  private getModelValueDisplayValue;
1321
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
+ */
1322
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;
1323
1352
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnAutocompleteComponent, never>;
1324
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>;
1325
1354
  }
@@ -1347,8 +1376,8 @@ declare class FoehnInputTextComponent extends FoehnInputStringComponent {
1347
1376
  declare class FoehnInputForeignLocalityComponent extends FoehnInputComponent<Locality> {
1348
1377
  readonly localityRequired: _angular_core.InputSignal<boolean>;
1349
1378
  readonly zipCodeRequired: _angular_core.InputSignal<boolean>;
1350
- zipCode: string | null;
1351
- longName: string | null;
1379
+ readonly zipCode: _angular_core.WritableSignal<string | null>;
1380
+ readonly longName: _angular_core.WritableSignal<string | null>;
1352
1381
  updateLocality(): void;
1353
1382
  handleUserInput(): void;
1354
1383
  onModelChange(value: Locality | null): void;
@@ -1359,7 +1388,7 @@ declare class FoehnInputForeignLocalityComponent extends FoehnInputComponent<Loc
1359
1388
  }
1360
1389
 
1361
1390
  declare class FoehnInputForeignStreetComponent extends FoehnInputComponent<Street> {
1362
- longName: string | null;
1391
+ readonly longName: _angular_core.WritableSignal<string | null>;
1363
1392
  updateStreet(): void;
1364
1393
  handleUserInput(): void;
1365
1394
  onModelChange(value: Street | null): void;
@@ -1398,20 +1427,22 @@ declare class FoehnInputAddressComponent extends FoehnInputComponent<Address> im
1398
1427
  readonly foreignStreetComponent: _angular_core.Signal<FoehnInputForeignStreetComponent | undefined>;
1399
1428
  readonly foreignHouseNumber: _angular_core.Signal<FoehnInputTextComponent | undefined>;
1400
1429
  readonly countryAutocomplete: _angular_core.Signal<FoehnAutocompleteComponent | undefined>;
1401
- country: Country | null;
1402
- locality: Locality | null;
1403
- street: Street | null;
1404
- houseNumber: string | null;
1405
- postOfficeBoxText: string | null;
1406
- addressLine1: string | null;
1407
- addressLine2: string | null;
1430
+ readonly country: _angular_core.WritableSignal<Country | null>;
1431
+ readonly locality: _angular_core.WritableSignal<Locality | null>;
1432
+ readonly street: _angular_core.WritableSignal<Street | null>;
1433
+ readonly houseNumber: _angular_core.WritableSignal<string | null>;
1434
+ readonly postOfficeBoxText: _angular_core.WritableSignal<string | null>;
1435
+ readonly addressLine1: _angular_core.WritableSignal<string | null>;
1436
+ readonly addressLine2: _angular_core.WritableSignal<string | null>;
1408
1437
  countries: Observable<Country[]> | undefined;
1409
1438
  localities: Observable<Locality[]> | undefined;
1410
1439
  streets: Observable<Street[]> | undefined;
1411
1440
  streetNumbers: Observable<StreetNumber[]> | undefined;
1412
- streetCustomErrors: Record<string, string>;
1441
+ readonly streetCustomErrors: _angular_core.WritableSignal<Record<string, string>>;
1413
1442
  private readonly httpClient;
1414
1443
  private readonly dictionaryService;
1444
+ private readonly addressPendingTasks;
1445
+ private isSanitizationScheduled;
1415
1446
  private readonly iso2IdSubject;
1416
1447
  private readonly zipCodeIdSubject;
1417
1448
  private readonly estrIdSubject;
@@ -1440,6 +1471,15 @@ declare class FoehnInputAddressComponent extends FoehnInputComponent<Address> im
1440
1471
  isForeignStreetRequired(): boolean;
1441
1472
  isPostOfficeBoxTextRequired(): boolean;
1442
1473
  private sanitizeAddress;
1474
+ /**
1475
+ * @returns the sanitized address when it differs from the given value, otherwise null
1476
+ */
1477
+ private getSanitizedModel;
1478
+ /**
1479
+ * The sanitized model is set in a macrotask (not while the view is checked) and computed from the latest model
1480
+ * (e.g. the default country may have been set in between). The application is not stable until it is done.
1481
+ */
1482
+ private scheduleModelSanitization;
1443
1483
  private replaceAtLeastOneNotNull;
1444
1484
  private getCountries;
1445
1485
  private getLocalities;
@@ -1489,7 +1529,7 @@ declare class FoehnCheckboxComponent extends FoehnCheckableGroupComponent implem
1489
1529
  }
1490
1530
 
1491
1531
  declare class FoehnRadioComponent extends FoehnCheckableGroupComponent implements OnInit, AfterViewChecked {
1492
- inputValue: string | null | undefined;
1532
+ readonly inputValue: _angular_core.WritableSignal<string | null | undefined>;
1493
1533
  ngOnInit(): void;
1494
1534
  onModelChange(value: any): void;
1495
1535
  ngAfterViewChecked(): void;
@@ -1542,9 +1582,9 @@ declare class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteCom
1542
1582
  readonly defaultElemRef: _angular_core.Signal<readonly ElementRef<any>[]>;
1543
1583
  readonly defaultDeleteFocusArea: _angular_core.Signal<ElementRef<any> | undefined>;
1544
1584
  readonly defaultElementValuesComputed: _angular_core.Signal<unknown[]>;
1545
- autocompleteInputValue: string | null;
1546
- showEmptyListMessage: boolean;
1547
- srAnnouncements: string;
1585
+ readonly autocompleteInputValue: _angular_core.WritableSignal<string | null>;
1586
+ readonly showEmptyListMessage: _angular_core.WritableSignal<boolean>;
1587
+ readonly srAnnouncements: _angular_core.WritableSignal<string>;
1548
1588
  private readonly dictionaryService;
1549
1589
  private srAnnouncementClearTimer;
1550
1590
  private readonly SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS;
@@ -1672,7 +1712,7 @@ declare class FoehnInputPrefixedTextComponent extends FoehnInputStringComponent
1672
1712
  readonly prefixColClass: _angular_core.InputSignal<string>;
1673
1713
  readonly textColClass: _angular_core.InputSignal<string>;
1674
1714
  readonly text: _angular_core.Signal<string | null>;
1675
- private previousPrefix;
1715
+ private readonly previousPrefix;
1676
1716
  constructor();
1677
1717
  onTextChange(value: string | undefined | null): void;
1678
1718
  updateFullText(text: string | null | undefined): void;
@@ -1685,10 +1725,10 @@ declare class FoehnInputPrefixedTextComponent extends FoehnInputStringComponent
1685
1725
  declare class FoehnInputTextareaComponent extends FoehnInputStringComponent implements OnInit {
1686
1726
  readonly rows: _angular_core.InputSignal<number>;
1687
1727
  readonly displayCharCount: _angular_core.InputSignal<boolean | undefined>;
1688
- isCharCountExceeded: boolean;
1689
- charCountLeft: number | undefined;
1690
- charCountLabel: string | undefined;
1691
- ariaLiveStatus: string;
1728
+ readonly isCharCountExceeded: _angular_core.WritableSignal<boolean>;
1729
+ readonly charCountLeft: _angular_core.WritableSignal<number | undefined>;
1730
+ readonly charCountLabel: _angular_core.WritableSignal<string | undefined>;
1731
+ readonly ariaLiveStatus: _angular_core.WritableSignal<string>;
1692
1732
  private readonly dictionary;
1693
1733
  ngOnInit(): void;
1694
1734
  onModelChange(value: string): void;
@@ -1708,10 +1748,10 @@ declare class FoehnDateComponent extends FoehnInputComponent<(number | null)[]>
1708
1748
  readonly maxDate: _angular_core.InputSignal<number[] | undefined>;
1709
1749
  readonly childrenLabelSrOnly: _angular_core.InputSignal<boolean>;
1710
1750
  readonly clearButton: _angular_core.InputSignal<boolean>;
1711
- day: string | null;
1712
- month: string | null;
1713
- year: string | null;
1714
- datePickerModel: number[] | null;
1751
+ readonly day: _angular_core.WritableSignal<string | null>;
1752
+ readonly month: _angular_core.WritableSignal<string | null>;
1753
+ readonly year: _angular_core.WritableSignal<string | null>;
1754
+ readonly datePickerModel: _angular_core.WritableSignal<number[] | null>;
1715
1755
  readonly disabledComputed: Signal<boolean>;
1716
1756
  constructor();
1717
1757
  updateDate(): void;
@@ -1739,18 +1779,23 @@ declare class FoehnDateTimeComponent extends FoehnInputComponent<(number | null)
1739
1779
  readonly hideDatePickerButton: _angular_core.InputSignal<boolean>;
1740
1780
  readonly childrenLabelSrOnly: _angular_core.InputSignal<boolean>;
1741
1781
  readonly clearButton: _angular_core.InputSignal<boolean>;
1742
- date: (number | null)[] | null;
1743
- time: string | null;
1782
+ readonly date: _angular_core.WritableSignal<(number | null)[] | null>;
1783
+ readonly time: _angular_core.WritableSignal<string | null>;
1744
1784
  private readonly userInputTimeSubject;
1745
1785
  private readonly timeModelChangeSubject;
1746
1786
  private readonly dateHelper;
1787
+ private readonly pendingTasksService;
1788
+ /**
1789
+ * The application is not stable (e.g. fixture.whenStable() in tests) while a time user input is debounced.
1790
+ */
1791
+ private removePendingTimeInputTask;
1747
1792
  constructor();
1748
1793
  updateDateTime(): void;
1749
1794
  handleUserInput(): void;
1750
1795
  timeModelChange(value: string | null | undefined): void;
1751
1796
  handleUserInputTime(value: string | null | undefined): void;
1752
1797
  handleUserInputDate(): void;
1753
- onModelChange(value: (number | null)[] | null): void;
1798
+ onModelChange(_value: (number | null)[] | null): void;
1754
1799
  getValidValue(): (number | null)[] | null | undefined;
1755
1800
  resetModel(): void;
1756
1801
  isEmpty(): boolean;
@@ -1758,6 +1803,7 @@ declare class FoehnDateTimeComponent extends FoehnInputComponent<(number | null)
1758
1803
  private isTimeEmpty;
1759
1804
  private isDateEmpty;
1760
1805
  private isDateEmptyDependingOnDisabled;
1806
+ private stopPendingTimeInputTask;
1761
1807
  private toNumber;
1762
1808
  private numberToString;
1763
1809
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnDateTimeComponent, never>;
@@ -1767,15 +1813,19 @@ declare class FoehnDateTimeComponent extends FoehnInputComponent<(number | null)
1767
1813
  declare class FoehnTimeComponent extends FoehnInputStringComponent {
1768
1814
  readonly childrenLabelSrOnly: _angular_core.InputSignal<boolean>;
1769
1815
  readonly clearButton: _angular_core.InputSignal<boolean>;
1770
- hour: string | null;
1771
- minute: string | null;
1816
+ readonly hour: _angular_core.WritableSignal<string | null>;
1817
+ readonly minute: _angular_core.WritableSignal<string | null>;
1772
1818
  private readonly dateHelper;
1773
1819
  constructor();
1774
1820
  updateTime(): void;
1775
1821
  handleUserInput(): void;
1776
- onModelChange(value: string): void;
1822
+ onModelChange(_value: string): void;
1777
1823
  resetModel(): void;
1778
1824
  isEmpty(): boolean;
1825
+ /**
1826
+ * @returns the part of the time of the model, the previous value when the model is not a complete time
1827
+ */
1828
+ private getTimePart;
1779
1829
  private getValidValue;
1780
1830
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnTimeComponent, never>;
1781
1831
  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>;
@@ -1783,9 +1833,9 @@ declare class FoehnTimeComponent extends FoehnInputStringComponent {
1783
1833
 
1784
1834
  declare class FoehnInputNav13Component extends FoehnInputStringComponent implements OnInit {
1785
1835
  PREFIX_NAVS: string;
1786
- part2: string | null;
1787
- part3: string | null;
1788
- part4: string | null;
1836
+ readonly part2: _angular_core.WritableSignal<string | null>;
1837
+ readonly part3: _angular_core.WritableSignal<string | null>;
1838
+ readonly part4: _angular_core.WritableSignal<string | null>;
1789
1839
  readonly label: _angular_core.InputSignalWithTransform<string | undefined, string | undefined>;
1790
1840
  constructor();
1791
1841
  ngOnInit(): void;
@@ -1853,12 +1903,13 @@ declare const GrowlType: {
1853
1903
  DANGER: string;
1854
1904
  };
1855
1905
 
1856
- declare class SdkDictionaryPipe implements PipeTransform {
1906
+ declare class SdkDictionaryPipe implements PipeTransform, OnDestroy {
1857
1907
  private readonly dictionaryService;
1858
1908
  private readonly ref;
1859
1909
  private readonly asyncPipe;
1860
1910
  constructor();
1861
1911
  transform(key: any, placeHolderType?: PlaceholderType): any;
1912
+ ngOnDestroy(): void;
1862
1913
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdkDictionaryPipe, never>;
1863
1914
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<SdkDictionaryPipe, "fromDictionary", true>;
1864
1915
  }
@@ -2141,8 +2192,8 @@ declare class FoehnListComponent implements OnChanges {
2141
2192
  readonly trackByFn: _angular_core.InputSignal<(index: number, _item: unknown) => number | string>;
2142
2193
  readonly templateVariable: _angular_core.Signal<TemplateRef<any> | undefined>;
2143
2194
  readonly pageChange: _angular_core.OutputEmitterRef<PageChangeEvent>;
2144
- currentPage: number;
2145
- filteredList: unknown[];
2195
+ readonly currentPage: _angular_core.WritableSignal<number>;
2196
+ readonly filteredList: _angular_core.WritableSignal<unknown[]>;
2146
2197
  ngOnChanges(changes: SimpleChanges): void;
2147
2198
  previousPage(): void;
2148
2199
  hasPreviousPage(): boolean;
@@ -2198,9 +2249,9 @@ declare class FoehnTableComponent extends FoehnInputComponent<unknown[]> impleme
2198
2249
  readonly trackByFn: _angular_core.InputSignal<TrackByFunction<unknown>>;
2199
2250
  readonly pageChange: _angular_core.OutputEmitterRef<FoehnTablePageChangeEvent>;
2200
2251
  readonly rowClick: _angular_core.OutputEmitterRef<RowElement>;
2201
- currentPage: number;
2202
- filteredList: unknown[];
2203
- private _list;
2252
+ readonly currentPage: _angular_core.WritableSignal<number>;
2253
+ readonly filteredList: _angular_core.WritableSignal<unknown[]>;
2254
+ private readonly _list;
2204
2255
  onModelChange(value: unknown[]): void;
2205
2256
  trackFoehnTableColumnConfiguration: TrackByFunction<FoehnTableColumnConfiguration<any>>;
2206
2257
  ngOnChanges(changes: SimpleChanges): void;
@@ -2320,21 +2371,17 @@ declare class GrecaptchaComponent implements OnInit, OnDestroy {
2320
2371
  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>;
2321
2372
  }
2322
2373
 
2323
- declare class SdkRecaptchaComponent implements OnInit, OnDestroy {
2374
+ declare class SdkRecaptchaComponent {
2324
2375
  readonly grecaptcha: _angular_core.Signal<GrecaptchaComponent | undefined>;
2325
2376
  shouldDisplay: Observable<boolean>;
2326
- isLoaded: boolean;
2327
- hasLoadingError: boolean;
2377
+ readonly isLoaded: _angular_core.WritableSignal<boolean>;
2378
+ readonly hasLoadingError: _angular_core.WritableSignal<boolean>;
2328
2379
  errors: Observable<FormError[]>;
2329
2380
  publicKey: Observable<string | null>;
2330
2381
  recaptchaUrlForUserError: Observable<string | null>;
2331
2382
  private readonly recaptchaService;
2332
- private readonly cdr;
2333
2383
  private readonly destroyRef;
2334
- private forceDetectChange;
2335
2384
  constructor();
2336
- ngOnInit(): void;
2337
- ngOnDestroy(): void;
2338
2385
  setIsLoaded(isLoaded: boolean): void;
2339
2386
  setScriptError(scriptError: boolean): void;
2340
2387
  tokenOnSuccess(token: string | null): void;
@@ -2354,7 +2401,7 @@ declare const IAM_ACV_OIDC_REDIRECT_LOCATION_REGEX: InjectionToken<RegExp>;
2354
2401
 
2355
2402
  declare class RedirectComponent implements OnDestroy {
2356
2403
  isModalVisible: Observable<boolean>;
2357
- counter: number;
2404
+ readonly counter: _angular_core.WritableSignal<number>;
2358
2405
  redirectUrl: string;
2359
2406
  private readonly DEFAULT_COUNTER;
2360
2407
  private readonly iamInterceptor;
@@ -2403,7 +2450,7 @@ declare class DocumentReferenceWithFile extends DocumentReference {
2403
2450
  declare class UploaderHelper {
2404
2451
  private readonly dictionaryService;
2405
2452
  private readonly applicationInfoService;
2406
- private _accept;
2453
+ private readonly _accept;
2407
2454
  private _fileMaxSizeInBytesByFormKey;
2408
2455
  private _maxFileNameLength;
2409
2456
  private _illegalCharacters;
@@ -2428,6 +2475,17 @@ declare class UploaderHelper {
2428
2475
  isFileExtensionValid(fileExtension: string, overrideAcceptedExtensions?: string): boolean;
2429
2476
  getUniqueErrorByCode(name: string, errorCode: string, fileName: string, customErrors: Record<string, string>, overrideAcceptedExtensions?: string, overrideMaxFileNameLength?: number, overrideIllegalCharacters?: string): FormError;
2430
2477
  addCustomErrorOrDefault(name: string, destinationErrors: FormError[], errorCode: string, fileName: string, customErrors: Record<string, string>, overrideAcceptedExtensions?: string, overrideMaxFileNameLength?: number, overrideIllegalCharacters?: string): void;
2478
+ /**
2479
+ * The default messages of the upload errors, in the current language.
2480
+ */
2481
+ getDefaultCustomErrors(): Record<string, string>;
2482
+ /**
2483
+ * The messages of the upload errors: the given custom errors, completed with the default messages.
2484
+ */
2485
+ mergeCustomErrors(customErrors: Record<string, string>, defaultCustomErrors?: Record<string, string>): Record<string, string>;
2486
+ /**
2487
+ * @deprecated Overwrites the given custom errors with the default messages: use `mergeCustomErrors()`.
2488
+ */
2431
2489
  createDefaultCustomErrors(customErrors: Record<string, string>): void;
2432
2490
  getLocalErrors(name: string, files: File[], customErrors: Record<string, string>, overrideAcceptedExtensions?: string, overrideMaxFileNameLength?: number, overrideIllegalCharacters?: string): FormError[];
2433
2491
  hasLiveUploadErrors(errors: FormError[]): boolean;
@@ -2482,11 +2540,13 @@ declare abstract class AbstractFoehnUploaderComponent<T> extends FoehnInputCompo
2482
2540
  protected deleteDocumentSubject: BehaviorSubject<DocumentReference | File | null>;
2483
2541
  protected uploadFilesSubject: BehaviorSubject<File[] | null>;
2484
2542
  protected currentLanguage: string | undefined;
2543
+ protected readonly uploaderCustomErrors: _angular_core.Signal<Record<string, string>>;
2485
2544
  protected readonly resolvedChooseButtonLabel: _angular_core.Signal<string>;
2486
2545
  protected readonly resolvedChooseButtonLabelMultiple: _angular_core.Signal<string>;
2487
2546
  protected readonly resolvedDropZoneLabel: _angular_core.Signal<string>;
2488
2547
  protected readonly resolvedDropZoneLabelMultiple: _angular_core.Signal<string>;
2489
2548
  protected readonly resolvedDeleteConfirmationMessage: _angular_core.Signal<string>;
2549
+ private readonly defaultCustomErrors;
2490
2550
  constructor();
2491
2551
  abstract get addedFiles(): unknown[];
2492
2552
  onDocumentDragOver(event: any): void;
@@ -2685,9 +2745,9 @@ declare class FoehnPictureUploadComponent extends FoehnInputComponent<DocumentRe
2685
2745
  readonly resizeToHeight: _angular_core.InputSignal<number>;
2686
2746
  readonly shouldDisplayFileSavedConfirmation: _angular_core.InputSignal<boolean>;
2687
2747
  readonly acceptFormats = ".jpeg,.jpg,.png";
2688
- pictureToCrop: Event | null;
2689
- croppedPictureAsBlob: Blob | null;
2690
- loading: boolean;
2748
+ readonly pictureToCrop: _angular_core.WritableSignal<Event | null>;
2749
+ readonly croppedPictureAsBlob: _angular_core.WritableSignal<Blob | null>;
2750
+ readonly loading: _angular_core.WritableSignal<boolean>;
2691
2751
  protected currentLanguage: string | undefined;
2692
2752
  private readonly uploadService;
2693
2753
  private readonly dictionaryService;
@@ -2714,6 +2774,7 @@ declare abstract class AbstractUploadProgressService {
2714
2774
  }
2715
2775
 
2716
2776
  declare class AbstractFoehnGlobalUploadProgressBarComponent {
2777
+ #private;
2717
2778
  readonly progressBarPanel: _angular_core.Signal<ElementRef<any> | undefined>;
2718
2779
  showProgress: Observable<boolean>;
2719
2780
  protected uploadProgressService: AbstractUploadProgressService;
@@ -2795,8 +2856,8 @@ declare class PendingPaymentComponent {
2795
2856
  declare class SdkEpaymentComponent implements OnInit {
2796
2857
  readonly baseUrl: _angular_core.InputSignal<string>;
2797
2858
  platformFailureMessageDicoKey: string;
2798
- failureModalDisplayed: boolean;
2799
- redirectModalDisplayed: boolean;
2859
+ readonly failureModalDisplayed: _angular_core.WritableSignal<boolean>;
2860
+ readonly redirectModalDisplayed: _angular_core.WritableSignal<boolean>;
2800
2861
  private readonly ePaymentService;
2801
2862
  private readonly route;
2802
2863
  private readonly gesDemService;
@@ -2834,11 +2895,11 @@ declare class EPaymentService {
2834
2895
  }
2835
2896
 
2836
2897
  declare class FoehnConfirmModalComponent implements OnInit {
2837
- isVisible: boolean;
2898
+ readonly isVisible: _angular_core.WritableSignal<boolean>;
2899
+ readonly content: Observable<FoehnConfirmModalContent | null>;
2838
2900
  private readonly confirmModalService;
2839
2901
  private readonly destroyRef;
2840
2902
  constructor();
2841
- get content(): Observable<FoehnConfirmModalContent | null>;
2842
2903
  ngOnInit(): void;
2843
2904
  cancel(): void;
2844
2905
  ok(): void;
@@ -2853,7 +2914,7 @@ declare class FoehnHelpModalComponent {
2853
2914
  readonly hideable: _angular_core.InputSignal<boolean>;
2854
2915
  readonly modalTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
2855
2916
  readonly content: _angular_core.Signal<ElementRef<any> | undefined>;
2856
- private isVisible;
2917
+ private readonly isVisible;
2857
2918
  get isModalVisible(): boolean;
2858
2919
  get currentModalTitle(): string;
2859
2920
  open(): void;
@@ -2880,6 +2941,7 @@ declare class FoehnModalComponent {
2880
2941
  readonly modalTitle: _angular_core.Signal<ElementRef<any> | undefined>;
2881
2942
  readonly specificfooter: _angular_core.Signal<ElementRef<any> | undefined>;
2882
2943
  readonly modalDefaultCloseBtn: _angular_core.Signal<ElementRef<any> | undefined>;
2944
+ private readonly injector;
2883
2945
  private previousIsVisible;
2884
2946
  private readonly visibilityEffect;
2885
2947
  handleKeyboardEvent(event: KeyboardEvent): void;
@@ -2890,12 +2952,12 @@ declare class FoehnModalComponent {
2890
2952
  }
2891
2953
 
2892
2954
  declare class FoehnPageModalComponent implements OnInit {
2893
- wrongPublicModalVisible: boolean;
2894
- formattedPublicsCibles: string[];
2955
+ readonly wrongPublicModalVisible: _angular_core.WritableSignal<boolean>;
2956
+ readonly formattedPublicsCibles: _angular_core.WritableSignal<string[]>;
2895
2957
  private readonly sessionInfo;
2896
2958
  private readonly applicationInfoService;
2897
2959
  private readonly foehnPageModalService;
2898
- private userCategories;
2960
+ private readonly userCategories;
2899
2961
  private publicsCibles;
2900
2962
  ngOnInit(): void;
2901
2963
  getFullLoginUrl(): Observable<string>;
@@ -2958,8 +3020,14 @@ declare class CurrencyHelper {
2958
3020
 
2959
3021
  declare class NumberCurrencyFormatterDirective implements OnInit {
2960
3022
  private readonly host;
2961
- private readonly ngZone;
3023
+ private readonly injector;
2962
3024
  private hasFocus;
3025
+ /**
3026
+ * Model value written by the formatting itself: its change must not be
3027
+ * formatted again, the input already displays the formatted value
3028
+ * (e.g. "-.00" for the model ".00").
3029
+ */
3030
+ private modelSetByFormatting;
2963
3031
  private readonly formattingEffect;
2964
3032
  onBlur(event: FocusEvent): void;
2965
3033
  onFocus(event: FocusEvent): void;
@@ -3057,11 +3125,11 @@ declare class GesdemActionRecoveryLoginComponent implements OnInit {
3057
3125
  readonly redirectTarget: _angular_core.InputSignal<string | undefined>;
3058
3126
  readonly loginForm: _angular_core.Signal<FoehnFormComponent>;
3059
3127
  readonly recaptchaComponent: _angular_core.Signal<SdkRecaptchaComponent | undefined>;
3060
- demandeNotFound: boolean;
3061
- rateLimited: boolean;
3062
- rateLimitCounter: number;
3063
- otpRecipient: string | null | undefined;
3064
- otp: string;
3128
+ readonly demandeNotFound: _angular_core.WritableSignal<boolean>;
3129
+ readonly rateLimited: _angular_core.WritableSignal<boolean>;
3130
+ readonly rateLimitCounter: _angular_core.WritableSignal<number>;
3131
+ readonly otpRecipient: _angular_core.WritableSignal<string | null | undefined>;
3132
+ readonly otp: _angular_core.WritableSignal<string>;
3065
3133
  private readonly recoveryService;
3066
3134
  private readonly growlService;
3067
3135
  private readonly confirmModalService;
@@ -3090,8 +3158,8 @@ declare class GesdemActionRecoveryRegistrationComponent implements OnInit {
3090
3158
  readonly triggerOnPageChange: _angular_core.InputSignal<boolean>;
3091
3159
  readonly modalTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
3092
3160
  readonly form: _angular_core.Signal<FoehnFormComponent | undefined>;
3093
- model: InfoReprise | null;
3094
- mailSent: boolean;
3161
+ readonly model: _angular_core.WritableSignal<InfoReprise | null>;
3162
+ readonly mailSent: _angular_core.WritableSignal<boolean>;
3095
3163
  canContinueLater: Observable<boolean> | undefined;
3096
3164
  isConnectedCyber: Observable<boolean> | undefined;
3097
3165
  currentInfoReprise: Observable<InfoReprise | undefined>;
@@ -3110,13 +3178,18 @@ declare class GesdemActionRecoveryRegistrationComponent implements OnInit {
3110
3178
  private readonly eventsLoggerService;
3111
3179
  private readonly dictionaryService;
3112
3180
  private readonly destroyRef;
3113
- private isVisible;
3181
+ private readonly isVisible;
3114
3182
  constructor();
3115
3183
  get isModalVisible(): boolean;
3116
3184
  get reference(): string;
3117
3185
  ngOnInit(): void;
3118
3186
  saveAndOpenModal(): void;
3119
3187
  openModal(isConnectedCyber: boolean): void;
3188
+ /**
3189
+ * Updates the recovery information entered by the user, without mutating the current value.
3190
+ * @param changes values entered by the user
3191
+ */
3192
+ updateModel(changes: Partial<InfoReprise>): void;
3120
3193
  close(): void;
3121
3194
  sendAndClose(): void;
3122
3195
  updateVisibilityStatus(status: boolean): void;
@@ -3154,6 +3227,7 @@ declare class FoehnListItem {
3154
3227
  }
3155
3228
 
3156
3229
  declare abstract class AbstractListDetailPageComponent<FORM_TYPE extends I18nForm, ITEM_TYPE extends FoehnListItem> extends AbstractPageFromMenuComponent<FORM_TYPE> implements OnInit, OnDestroy {
3230
+ #private;
3157
3231
  list: ITEM_TYPE[];
3158
3232
  itemIndex: number | null;
3159
3233
  protected router: Router;
@@ -3178,6 +3252,11 @@ declare abstract class AbstractListDetailPageComponent<FORM_TYPE extends I18nFor
3178
3252
  }
3179
3253
 
3180
3254
  declare abstract class AbstractMenuPageComponent<T extends I18nForm> extends AbstractPageComponent<T> implements AfterViewInit {
3255
+ #private;
3256
+ /**
3257
+ * @deprecated not used anymore by prestations-ng, which does not depend on zone.js.
3258
+ * Inject `NgZone` in your own component if you really need it.
3259
+ */
3181
3260
  protected ngZone: NgZone;
3182
3261
  ngAfterViewInit(): void;
3183
3262
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AbstractMenuPageComponent<any>, never>;
@@ -3195,37 +3274,35 @@ declare class FoehnErrorPillComponent {
3195
3274
  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>;
3196
3275
  }
3197
3276
 
3198
- interface FoehnListItemDescription {
3277
+ interface FoehnListItemDescription<T> {
3199
3278
  label: string;
3200
- hideIfEmpty?(item: FoehnListItem): boolean;
3201
- getFormattedValue(item: FoehnListItem): string;
3279
+ hideIfEmpty?(item: T): boolean;
3280
+ getFormattedValue(item: T): string;
3202
3281
  }
3203
3282
 
3204
- declare class FoehnListSummaryComponent extends FoehnInputComponent<FoehnListItem[]> implements AfterViewInit, OnChanges {
3205
- readonly getListItemTitle: _angular_core.InputSignal<((item: FoehnListItem) => string | null | undefined) | undefined>;
3206
- readonly listItemDescriptions: _angular_core.InputSignal<FoehnListItemDescription[]>;
3283
+ declare class FoehnListSummaryComponent<T extends FoehnListItem> extends FoehnInputComponent<T[]> implements OnChanges {
3284
+ readonly getListItemTitle: _angular_core.InputSignal<((item: T) => string | null | undefined) | undefined>;
3285
+ readonly listItemDescriptions: _angular_core.InputSignal<FoehnListItemDescription<T>[]>;
3207
3286
  readonly showAsTable: _angular_core.InputSignal<boolean>;
3208
3287
  readonly tableActionButtons: _angular_core.Signal<TemplateRef<unknown> | undefined>;
3209
3288
  readonly canAddItems: _angular_core.InputSignal<boolean>;
3210
3289
  readonly itemRemoved: _angular_core.OutputEmitterRef<void>;
3211
3290
  readonly itemEdit: _angular_core.OutputEmitterRef<number | null>;
3212
- listCopyForTable: FoehnListItem[] | null | undefined;
3213
- tableConfiguration: FoehnTableColumnConfiguration<FoehnListItem>[];
3291
+ readonly listCopyForTable: _angular_core.WritableSignal<T[] | null | undefined>;
3292
+ readonly tableConfiguration: _angular_core.Signal<FoehnTableColumnConfiguration<T>[]>;
3214
3293
  tableSort: TableSort;
3215
3294
  private readonly confirmModalService;
3216
- private readonly ngZone;
3217
- trackFoehnListItem: TrackByFunction<FoehnListItem>;
3218
- trackFoehnListItemDescription: TrackByFunction<FoehnListItemDescription>;
3295
+ trackFoehnListItem: TrackByFunction<T>;
3296
+ trackFoehnListItemDescription: TrackByFunction<FoehnListItemDescription<T>>;
3219
3297
  ngOnChanges(changes: SimpleChanges): void;
3220
- ngAfterViewInit(): void;
3221
- showLine(item: FoehnListItem, itemParam: FoehnListItemDescription): boolean;
3298
+ showLine(item: T, itemParam: FoehnListItemDescription<T>): boolean;
3222
3299
  editItem(index?: number | null): void;
3223
3300
  removeItem(index: number): void;
3224
3301
  changeSort(sortEvent: TableSort | undefined): void;
3225
3302
  private sortNow;
3226
3303
  private updateListCopyForTable;
3227
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnListSummaryComponent, never>;
3228
- 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>;
3304
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FoehnListSummaryComponent<any>, never>;
3305
+ 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>;
3229
3306
  }
3230
3307
 
3231
3308
  declare class FoehnMenuItemComponent {
@@ -3338,7 +3415,7 @@ declare class FocusedDay {
3338
3415
  }
3339
3416
 
3340
3417
  declare class FoehnDatePickerComponent implements OnInit {
3341
- hostId: string | null;
3418
+ readonly hostId: _angular_core.WritableSignal<string | null>;
3342
3419
  readonly daysButtonsElemRef: _angular_core.Signal<readonly ElementRef<any>[]>;
3343
3420
  readonly model: _angular_core.ModelSignal<number[] | null>;
3344
3421
  readonly isDatepickerVisible: _angular_core.ModelSignal<boolean>;
@@ -3354,14 +3431,15 @@ declare class FoehnDatePickerComponent implements OnInit {
3354
3431
  readonly minYearComputed: _angular_core.Signal<number>;
3355
3432
  readonly maxYearComputed: _angular_core.Signal<number>;
3356
3433
  readonly yearListItem: _angular_core.Signal<FormSelectOption[]>;
3357
- weekDays: string[];
3358
- weeks: DayMonth[][];
3359
- selectedDate: dayjs.Dayjs | null;
3434
+ readonly weekDays: _angular_core.WritableSignal<string[]>;
3435
+ readonly weeks: _angular_core.WritableSignal<DayMonth[][]>;
3436
+ readonly selectedDate: _angular_core.WritableSignal<dayjs.Dayjs | null>;
3360
3437
  currentMonthYear: Observable<MonthYear | null>;
3361
3438
  model_: number[] | undefined | null;
3362
- monthListItem: FormSelectOption[];
3439
+ readonly monthListItem: _angular_core.WritableSignal<FormSelectOption[]>;
3363
3440
  private readonly dictionary;
3364
- private readonly ngZone;
3441
+ private readonly injector;
3442
+ private readonly pendingTasks;
3365
3443
  private readonly changeDetector;
3366
3444
  private readonly destroyRef;
3367
3445
  private previousIsVisible;
@@ -3423,7 +3501,7 @@ declare class FoehnDatePickerButtonComponent implements OnInit {
3423
3501
  readonly datepickerTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
3424
3502
  readonly userInput: _angular_core.OutputEmitterRef<number[] | null>;
3425
3503
  model_: number[] | null | undefined;
3426
- private isVisible;
3504
+ private readonly isVisible;
3427
3505
  private readonly modelEffect;
3428
3506
  get isDatepickerVisible(): boolean;
3429
3507
  ngOnInit(): void;
@@ -3579,26 +3657,39 @@ declare class SelectedSlot {
3579
3657
  date: number[] | undefined | null;
3580
3658
  }
3581
3659
 
3582
- declare class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent<SelectedSlot> implements OnChanges {
3660
+ declare class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent<SelectedSlot> {
3583
3661
  readonly DEFAULT_NB_VISIBLE_ELEMENTS = 22;
3584
3662
  readonly calendar: _angular_core.InputSignal<Observable<Calendar> | undefined>;
3585
3663
  readonly currentWeek: _angular_core.InputSignal<DaySlots | undefined>;
3586
3664
  readonly nbVisibleElements: _angular_core.InputSignal<number | null | undefined>;
3587
3665
  readonly visibleElementsCount: _angular_core.Signal<number>;
3588
3666
  readonly timeSlotButtonsElemRef: _angular_core.Signal<readonly ElementRef<any>[]>;
3589
- selectedTimeSlot: string | null;
3590
- timeSlots: string[];
3591
- isClosed: boolean;
3592
- timeslotRemaining: number;
3593
- timeInputValue: string | undefined | null;
3594
- canClose: boolean;
3667
+ readonly selectedTimeSlot: _angular_core.WritableSignal<string | null>;
3668
+ readonly timeInputValue: _angular_core.WritableSignal<string | null | undefined>;
3669
+ /**
3670
+ * TRUE when only the first visibleElementsCount() time slots are displayed.
3671
+ * Closed again when the time slots change, unless the selected slot would be hidden.
3672
+ */
3673
+ readonly isClosed: _angular_core.WritableSignal<boolean>;
3674
+ readonly timeSlots: _angular_core.Signal<string[]>;
3675
+ readonly timeslotRemaining: _angular_core.Signal<number>;
3676
+ /**
3677
+ * FALSE when closing the panel would hide the selected slot.
3678
+ */
3679
+ readonly canClose: _angular_core.Signal<boolean>;
3595
3680
  private readonly dictionaryService;
3596
- private dayInputValue;
3681
+ private readonly dayInputValue;
3597
3682
  private keyboardNavigationAllowed;
3598
3683
  private currentActiveElement;
3599
- private hasSelectedSlotInPanel;
3600
- constructor();
3601
- ngOnChanges(changes: SimpleChanges): void;
3684
+ /**
3685
+ * Index of the selected slot in the time slots of the day, -1 when it is not in this panel.
3686
+ */
3687
+ private readonly selectedSlotIndex;
3688
+ private readonly hasSelectedSlotInPanel;
3689
+ /**
3690
+ * TRUE when the selected slot is in this panel but not displayed while it is closed.
3691
+ */
3692
+ private readonly isSelectedSlotHidden;
3602
3693
  handleKeyboardDownEvent(event: KeyboardEvent): void;
3603
3694
  focus(): void;
3604
3695
  capitalCaseFirstLetter(s: string | null | undefined): string;
@@ -3606,6 +3697,9 @@ declare class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent<Sele
3606
3697
  togglePanel(): void;
3607
3698
  onModelChange(value: SelectedSlot | null): void;
3608
3699
  getTimeInputValue(s: string): string;
3700
+ /**
3701
+ * Opens the panel when the selected slot would be hidden.
3702
+ */
3609
3703
  searchTimeValueInTimeSlot(): void;
3610
3704
  onTimeFocusin(): void;
3611
3705
  onTimeFocusout(): void;
@@ -3613,7 +3707,6 @@ declare class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent<Sele
3613
3707
  getButtonTimeSlotAriaLabel(day: string | undefined | null, timeSlot: string): string;
3614
3708
  getTimeSlotTabIndex(timeSlot: string, index: number): number;
3615
3709
  cleanIdForQuerySelector(s: string): string;
3616
- private sliceNbVisibleElements;
3617
3710
  private getValidValue;
3618
3711
  private onKeyDownInner;
3619
3712
  private focusTimeSlot;
@@ -3627,7 +3720,7 @@ declare class FoehnAgendaComponent extends FoehnInputComponent<SelectedSlot> {
3627
3720
  readonly paginationChange: _angular_core.OutputEmitterRef<PaginationWeek>;
3628
3721
  readonly readableSelectedTimeSlot: _angular_core.Signal<string>;
3629
3722
  readonly timeSlotPanelsElemRef: _angular_core.Signal<readonly FoehnAgendaTimeslotPanelComponent[]>;
3630
- srAnnouncements: string;
3723
+ readonly srAnnouncements: _angular_core.WritableSignal<string>;
3631
3724
  private readonly dictionaryService;
3632
3725
  private srAnnouncementClearTimer;
3633
3726
  private readonly SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS;
@@ -3672,14 +3765,14 @@ declare class FoehnDropdownMenuComponent implements OnInit {
3672
3765
  readonly selectedFocusList: _angular_core.Signal<readonly ElementRef<any>[]>;
3673
3766
  readonly buttonTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
3674
3767
  readonly entryPoint: _angular_core.Signal<ElementRef<any> | undefined>;
3675
- isDropdownVisible: boolean;
3768
+ readonly isDropdownVisible: _angular_core.WritableSignal<boolean>;
3676
3769
  closeDropdownTimer: ReturnType<typeof setTimeout> | undefined;
3677
- popupPosition: Position;
3770
+ readonly popupPosition: _angular_core.WritableSignal<Position>;
3678
3771
  private readonly router;
3772
+ private readonly injector;
3679
3773
  private currentItemGlobalIndex;
3680
3774
  private shouldFocusEntryPointAfterOpen;
3681
3775
  private readonly selectedFocusListEffect;
3682
- constructor();
3683
3776
  handleKeyboardUpEvent(event: KeyboardEvent): void;
3684
3777
  handleKeyboardDownEvent(event: KeyboardEvent): void;
3685
3778
  ngOnInit(): void;
@@ -3752,6 +3845,7 @@ interface BrowserInfo {
3752
3845
  }
3753
3846
  declare class SdkLogsService {
3754
3847
  private readonly http;
3848
+ private readonly destroyRef;
3755
3849
  private cachedBrowserInfo;
3756
3850
  addLog(message: string, logLevel: SdkLogLevel): void;
3757
3851
  addLogWithError(message: string, logLevel: SdkLogLevel, error: unknown): void;