@dsivd/prestations-ng 15.0.0-beta3 → 15.0.0-beta6

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 (38) hide show
  1. package/CHANGELOG.md +64 -3
  2. package/dsivd-prestations-ng-v15.0.0-beta6.tgz +0 -0
  3. package/esm2020/foehn-address/address.type.mjs +1 -1
  4. package/esm2020/foehn-address/foehn-input-address.component.mjs +2 -2
  5. package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +12 -3
  6. package/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +3 -3
  7. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +254 -0
  8. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +42 -0
  9. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +2 -4
  10. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +3 -3
  11. package/esm2020/index.mjs +11 -1
  12. package/esm2020/refinf/model/address-type-light.mjs +3 -0
  13. package/esm2020/refinf/model/canton.mjs +3 -0
  14. package/esm2020/refinf/model/district.mjs +3 -0
  15. package/esm2020/refinf/model/municipality.mjs +3 -0
  16. package/esm2020/refinf/model/place-of-origin.mjs +3 -0
  17. package/esm2020/refinf/model/postal-locality.mjs +3 -0
  18. package/esm2020/sdk-dictionary/default-dictionary.mjs +11 -3
  19. package/esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +2 -2
  20. package/fesm2015/dsivd-prestations-ng.mjs +410 -102
  21. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
  22. package/fesm2020/dsivd-prestations-ng.mjs +410 -102
  23. package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
  24. package/foehn-address/address.type.d.ts +3 -3
  25. package/foehn-address/foehn-input-address.component.d.ts +2 -2
  26. package/foehn-checkables/foehn-checkable-group.component.d.ts +3 -2
  27. package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.d.ts +45 -0
  28. package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.d.ts +13 -0
  29. package/index.d.ts +8 -0
  30. package/package.json +1 -1
  31. package/refinf/model/address-type-light.d.ts +5 -0
  32. package/refinf/model/canton.d.ts +4 -0
  33. package/refinf/model/district.d.ts +7 -0
  34. package/refinf/model/municipality.d.ts +8 -0
  35. package/refinf/model/place-of-origin.d.ts +9 -0
  36. package/refinf/model/postal-locality.d.ts +11 -0
  37. package/sdk-recaptcha/grecaptcha/grecaptcha.component.d.ts +1 -1
  38. package/dsivd-prestations-ng-v15.0.0-beta3.tgz +0 -0
@@ -1472,8 +1472,16 @@ const DEFAULT_DICTIONARY = {
1472
1472
  'foehn-status-progress-bar.step1.srOnly': 'Etape 1 sur 3, Saisie',
1473
1473
  'foehn-status-progress-bar.step2': 'Vérification',
1474
1474
  'foehn-status-progress-bar.step2.srOnly': 'Etape 2 sur 3, Vérification',
1475
- 'foehn-status-progress-bar.step3': 'Confirmation',
1476
- 'foehn-status-progress-bar.step3.srOnly': 'Etape 3 sur 3, Confirmation, demande transmise'
1475
+ 'foehn-status-progress-bar.step3': 'Transmission',
1476
+ 'foehn-status-progress-bar.step3.srOnly': 'Etape 3 sur 3, Demande transmise',
1477
+ 'foehn-multiselect-autocomplete.selected.delete': 'Supprimer {elementLabel}',
1478
+ 'foehn-multiselect-autocomplete.sr-announcement.deleted': '{elementLabel} a été supprimé,',
1479
+ 'foehn-multiselect-autocomplete.sr-announcement.added': '{elementLabel} a été ajouté,',
1480
+ 'foehn-multiselect-autocomplete.sr-default-focus.no-element-to-delete': 'Aucun élément dans la liste.',
1481
+ 'foehn-multiselect-autocomplete.sr-default-selected-element': '(sélection par défaut)',
1482
+ 'foehn-multiselect-autocomplete.autocomplete.empty-message': 'Tous les éléments de la liste de proposition ont déjà été ajoutés.',
1483
+ 'foehn-multiselect-autocomplete.autocomplete.screen-reader.label': 'Sélectionner un élément dans la liste de recherche' +
1484
+ " ci-dessous pour l'ajouter à votre sélection."
1477
1485
  };
1478
1486
 
1479
1487
  const DICTIONARY_BASE_URL = 'api/dictionary';
@@ -3791,6 +3799,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
3791
3799
  class FormSelectOptionGroup {
3792
3800
  }
3793
3801
 
3802
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3803
+ class ObjectHelper {
3804
+ /**
3805
+ * Angular uses object identity to select option. It's possible for the identities of items to change while the data does not.
3806
+ * This can happen, for example, if the items are produced from an RPC to the server, and that RPC is re-run.
3807
+ * Even if the data hasn't changed, the second response will produce objects with different identities.
3808
+ * (see: https://angular.io/api/forms/SelectControlValueAccessor#customizing-option-selection)
3809
+ *
3810
+ * @param value1 as first value to compare to
3811
+ * @param value2 as value to be compared to
3812
+ * @returns boolean
3813
+ */
3814
+ static isEqual(value1, value2) {
3815
+ if (value1 &&
3816
+ value2 &&
3817
+ typeof value1 === 'object' &&
3818
+ typeof value2 === 'object') {
3819
+ const matches = (obj, source) => Object.keys(source).length === Object.keys(obj).length &&
3820
+ Object.keys(source).every(key => {
3821
+ if (obj.hasOwnProperty(key)) {
3822
+ if (obj[key] &&
3823
+ source[key] &&
3824
+ typeof obj[key] === 'object' &&
3825
+ typeof source[key] === 'object') {
3826
+ return matches(obj[key], source[key]);
3827
+ }
3828
+ return obj[key] === source[key];
3829
+ }
3830
+ return false;
3831
+ });
3832
+ return matches(value1, value2);
3833
+ }
3834
+ return value1 === value2;
3835
+ }
3836
+ static hasAnyValue(value) {
3837
+ // do not simplify with an inline variable result due to compilation error
3838
+ const result = Object.keys(value).some(key => {
3839
+ if (value[key] && typeof value[key] === 'object') {
3840
+ return ObjectHelper.hasAnyValue(value[key]);
3841
+ }
3842
+ return !!value[key];
3843
+ });
3844
+ return result;
3845
+ }
3846
+ static isEmpty(value) {
3847
+ return !ObjectHelper.hasAnyValue(value);
3848
+ }
3849
+ /**
3850
+ * Deep copy is a true copy for nested objects
3851
+ * Often, shallow copy is good enough and you will not need a deep copy.
3852
+ * A shallow copy means the first level is copied, deeper levels are referenced.
3853
+ *
3854
+ * Examples of shallow copy :
3855
+ * const shallowClone = { ...nestedObject };
3856
+ * const shallowClone = Object.assign({}, nestedObject);
3857
+ *
3858
+ * @param obj is the object to copied
3859
+ * @returns obj
3860
+ */
3861
+ static deepCopy(obj) {
3862
+ if (!obj || typeof obj !== 'object') {
3863
+ return obj;
3864
+ }
3865
+ let copy;
3866
+ if (obj instanceof Date) {
3867
+ copy = new Date();
3868
+ copy.setTime(obj.getTime());
3869
+ return copy;
3870
+ }
3871
+ if (obj instanceof Array) {
3872
+ copy = [];
3873
+ for (let i = 0, len = obj.length; i < len; i++) {
3874
+ copy[i] = ObjectHelper.deepCopy(obj[i]);
3875
+ }
3876
+ return copy;
3877
+ }
3878
+ if (obj instanceof Object) {
3879
+ copy = {};
3880
+ for (const attr in obj) {
3881
+ if (obj.hasOwnProperty(attr)) {
3882
+ copy[attr] = ObjectHelper.deepCopy(obj[attr]);
3883
+ }
3884
+ }
3885
+ return copy;
3886
+ }
3887
+ throw new Error('Unable to copy obj! Type not supported.');
3888
+ }
3889
+ }
3890
+
3794
3891
  /* eslint-disable @typescript-eslint/no-explicit-any */
3795
3892
  class FoehnCheckableGroupComponent extends FoehnInputComponent {
3796
3893
  constructor(ngZone) {
@@ -3808,6 +3905,7 @@ class FoehnCheckableGroupComponent extends FoehnInputComponent {
3808
3905
  this.elementLabel = 'label';
3809
3906
  this.elementDisabled = 'disabled';
3810
3907
  this.allElementDisabled = false;
3908
+ this.elementsLoaded = new EventEmitter();
3811
3909
  this.multiple = false;
3812
3910
  this._onInitSubject = new Subject();
3813
3911
  this.httpClient = ServiceLocator.injector.get(HttpClient);
@@ -3856,6 +3954,7 @@ class FoehnCheckableGroupComponent extends FoehnInputComponent {
3856
3954
  }
3857
3955
  setElements(elements) {
3858
3956
  this.elements = elements;
3957
+ this.elementsLoaded.next(elements);
3859
3958
  this.onElementsRetrieved();
3860
3959
  }
3861
3960
  getValue(element) {
@@ -4035,6 +4134,10 @@ class FoehnCheckableGroupComponent extends FoehnInputComponent {
4035
4134
  // Hack to refresh the display value
4036
4135
  this.updateNgModel(this.model_);
4037
4136
  }
4137
+ else if (change &&
4138
+ !ObjectHelper.isEqual(change.currentValue, change.previousValue)) {
4139
+ this.elementsLoaded.next(change.currentValue);
4140
+ }
4038
4141
  }
4039
4142
  onElementsUrlChange(change) {
4040
4143
  if (change && !change.firstChange) {
@@ -4043,7 +4146,7 @@ class FoehnCheckableGroupComponent extends FoehnInputComponent {
4043
4146
  }
4044
4147
  }
4045
4148
  FoehnCheckableGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnCheckableGroupComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
4046
- FoehnCheckableGroupComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: FoehnCheckableGroupComponent, inputs: { elements: "elements", elementsUrl: "elementsUrl", elementValue: "elementValue", elementLabel: "elementLabel", elementValueIdentity: "elementValueIdentity", elementDisabled: "elementDisabled", allElementDisabled: "allElementDisabled", elementGroup: "elementGroup", defaultElementValue: "defaultElementValue" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4149
+ FoehnCheckableGroupComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: FoehnCheckableGroupComponent, inputs: { elements: "elements", elementsUrl: "elementsUrl", elementValue: "elementValue", elementLabel: "elementLabel", elementValueIdentity: "elementValueIdentity", elementDisabled: "elementDisabled", allElementDisabled: "allElementDisabled", elementGroup: "elementGroup", defaultElementValue: "defaultElementValue" }, outputs: { elementsLoaded: "elementsLoaded" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
4047
4150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnCheckableGroupComponent, decorators: [{
4048
4151
  type: Directive
4049
4152
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { elements: [{
@@ -4062,99 +4165,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
4062
4165
  type: Input
4063
4166
  }], elementGroup: [{
4064
4167
  type: Input
4168
+ }], elementsLoaded: [{
4169
+ type: Output
4065
4170
  }], defaultElementValue: [{
4066
4171
  type: Input
4067
4172
  }] } });
4068
4173
 
4069
- /* eslint-disable @typescript-eslint/no-explicit-any */
4070
- class ObjectHelper {
4071
- /**
4072
- * Angular uses object identity to select option. It's possible for the identities of items to change while the data does not.
4073
- * This can happen, for example, if the items are produced from an RPC to the server, and that RPC is re-run.
4074
- * Even if the data hasn't changed, the second response will produce objects with different identities.
4075
- * (see: https://angular.io/api/forms/SelectControlValueAccessor#customizing-option-selection)
4076
- *
4077
- * @param value1 as first value to compare to
4078
- * @param value2 as value to be compared to
4079
- * @returns boolean
4080
- */
4081
- static isEqual(value1, value2) {
4082
- if (value1 &&
4083
- value2 &&
4084
- typeof value1 === 'object' &&
4085
- typeof value2 === 'object') {
4086
- const matches = (obj, source) => Object.keys(source).length === Object.keys(obj).length &&
4087
- Object.keys(source).every(key => {
4088
- if (obj.hasOwnProperty(key)) {
4089
- if (obj[key] &&
4090
- source[key] &&
4091
- typeof obj[key] === 'object' &&
4092
- typeof source[key] === 'object') {
4093
- return matches(obj[key], source[key]);
4094
- }
4095
- return obj[key] === source[key];
4096
- }
4097
- return false;
4098
- });
4099
- return matches(value1, value2);
4100
- }
4101
- return value1 === value2;
4102
- }
4103
- static hasAnyValue(value) {
4104
- // do not simplify with an inline variable result due to compilation error
4105
- const result = Object.keys(value).some(key => {
4106
- if (value[key] && typeof value[key] === 'object') {
4107
- return ObjectHelper.hasAnyValue(value[key]);
4108
- }
4109
- return !!value[key];
4110
- });
4111
- return result;
4112
- }
4113
- static isEmpty(value) {
4114
- return !ObjectHelper.hasAnyValue(value);
4115
- }
4116
- /**
4117
- * Deep copy is a true copy for nested objects
4118
- * Often, shallow copy is good enough and you will not need a deep copy.
4119
- * A shallow copy means the first level is copied, deeper levels are referenced.
4120
- *
4121
- * Examples of shallow copy :
4122
- * const shallowClone = { ...nestedObject };
4123
- * const shallowClone = Object.assign({}, nestedObject);
4124
- *
4125
- * @param obj is the object to copied
4126
- * @returns obj
4127
- */
4128
- static deepCopy(obj) {
4129
- if (!obj || typeof obj !== 'object') {
4130
- return obj;
4131
- }
4132
- let copy;
4133
- if (obj instanceof Date) {
4134
- copy = new Date();
4135
- copy.setTime(obj.getTime());
4136
- return copy;
4137
- }
4138
- if (obj instanceof Array) {
4139
- copy = [];
4140
- for (let i = 0, len = obj.length; i < len; i++) {
4141
- copy[i] = ObjectHelper.deepCopy(obj[i]);
4142
- }
4143
- return copy;
4144
- }
4145
- if (obj instanceof Object) {
4146
- copy = {};
4147
- for (const attr in obj) {
4148
- if (obj.hasOwnProperty(attr)) {
4149
- copy[attr] = ObjectHelper.deepCopy(obj[attr]);
4150
- }
4151
- }
4152
- return copy;
4153
- }
4154
- throw new Error('Unable to copy obj! Type not supported.');
4155
- }
4156
- }
4157
-
4158
4174
  class FoehnSelectComponent extends FoehnCheckableGroupComponent {
4159
4175
  constructor(zone) {
4160
4176
  super(zone);
@@ -4441,9 +4457,7 @@ class FoehnStatusProgressBarComponent {
4441
4457
  this.isTransmitted = merge(of((_a = this.gesdemHand.lastResponse) === null || _a === void 0 ? void 0 : _a.meta), this.gesdemHand.updateFormDataSubject.pipe(map(() => this.gesdemHand.lastResponse.meta))).pipe(filter(meta => !!meta), map(meta => ActionStatut[meta.statut]), map(statut => GesdemStatutUtils.isFinal(statut)));
4442
4458
  }
4443
4459
  isEnabled() {
4444
- return (this.hidden !== null &&
4445
- this.hidden !== undefined &&
4446
- this.hidden === false);
4460
+ return this.hidden !== true;
4447
4461
  }
4448
4462
  isStepVerificationActive() {
4449
4463
  return this.navigation.initialized && this.navigation.isLastFormPage();
@@ -7460,7 +7474,7 @@ class FoehnInputAddressComponent extends FoehnInputComponent {
7460
7474
  getValidLocality(value) {
7461
7475
  // PRESTAKIT-352: Need a fake 'postalLocalityHistoryId' for individual errors on 'zipCode' and 'longName'
7462
7476
  if (!this.isSwiss() && !value) {
7463
- return { postalLocalityHistoryId: -1 };
7477
+ return { postalLocalityHistoryId: '-1' };
7464
7478
  }
7465
7479
  return value;
7466
7480
  }
@@ -7599,6 +7613,282 @@ class Address {
7599
7613
  class FormSelectOption {
7600
7614
  }
7601
7615
 
7616
+ class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteComponent {
7617
+ constructor(ngZone, dictionaryService) {
7618
+ super(ngZone);
7619
+ this.dictionaryService = dictionaryService;
7620
+ this.showEmptyListMessage = false;
7621
+ this.srAnnouncements = '';
7622
+ this.SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS = 2000;
7623
+ }
7624
+ get defaultElementValues() {
7625
+ return this.defaultElementValues_;
7626
+ }
7627
+ set defaultElementValues(items) {
7628
+ this.defaultElementValues_ = [...items];
7629
+ if ((!this.model || !this.model.length) && items) {
7630
+ this.updateNgModel(items);
7631
+ }
7632
+ }
7633
+ set defaultElementValue(item) {
7634
+ this.defaultElementValues = [item];
7635
+ }
7636
+ ngOnInit() {
7637
+ super.ngOnInit();
7638
+ // The host is not related to foehn error management but foehn-autocomplete is.
7639
+ this.hostId = this.buildId('ParentContainer');
7640
+ this.hostName = this.hostId;
7641
+ this.excludeFromErrorSummary = true;
7642
+ }
7643
+ hasErrorsToDisplay() {
7644
+ return !!this.autocompleteComponent
7645
+ ? this.autocompleteComponent.hasErrorsToDisplay()
7646
+ : false;
7647
+ }
7648
+ updateMultiselectAutocomplete() {
7649
+ const validValue = this.getValidValue();
7650
+ if (typeof validValue !== 'undefined') {
7651
+ this.updateNgModel(validValue);
7652
+ }
7653
+ }
7654
+ handleUserInput() {
7655
+ const validValue = this.getValidValue();
7656
+ if (typeof validValue !== 'undefined') {
7657
+ this.handleChange(validValue);
7658
+ }
7659
+ }
7660
+ addItem(item) {
7661
+ if (!!item) {
7662
+ if (!this.model) {
7663
+ this.model = [];
7664
+ }
7665
+ const index = this.model.indexOf(item);
7666
+ if (index === -1) {
7667
+ this.model.push(item);
7668
+ this.updateMultiselectAutocomplete();
7669
+ this.handleUserInput();
7670
+ this.manageSuggestionListAndFocusAfterAddingAnItem();
7671
+ this.manageScreenReaderAnnouncement(item, false);
7672
+ }
7673
+ }
7674
+ }
7675
+ removeItem(item, index) {
7676
+ this.model.splice(index, 1);
7677
+ this.updateMultiselectAutocomplete();
7678
+ this.handleUserInput();
7679
+ this.manageSuggestionListAndFocusAfterRemovingAnItem(index);
7680
+ this.manageScreenReaderAnnouncement(item, true);
7681
+ this.autocompleteComponent.markAsDirty();
7682
+ }
7683
+ trackByFn(index) {
7684
+ return index;
7685
+ }
7686
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7687
+ getLabel(value) {
7688
+ const elem = this.findElementByModelItem(value);
7689
+ return super.getLabel(elem);
7690
+ }
7691
+ canBeDeleted(index) {
7692
+ return (!this.disabled &&
7693
+ (!this.defaultElementValues ||
7694
+ !this.defaultElementValues.includes(this.model[index])));
7695
+ }
7696
+ onAutocompleteElementsLoaded(elements) {
7697
+ // Need to wait for childView to be loaded
7698
+ setTimeout(() => {
7699
+ if (!!this.autocompleteComponent) {
7700
+ this.autocompleteComponent.elements = this.filterAutocompleteElements(elements);
7701
+ if (!this.disabled &&
7702
+ !this.autocompleteComponent.elements.length) {
7703
+ this.showAlertMessageAndHideAutocomplete();
7704
+ }
7705
+ }
7706
+ });
7707
+ }
7708
+ getDeleteButtonAriaLabel(element) {
7709
+ return `${this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.selected.delete', { elementLabel: this.getLabel(element) })}`;
7710
+ }
7711
+ hasDefaultDeleteFocusArea() {
7712
+ return (!this.disabled &&
7713
+ (!this.defaultElementValues || !this.defaultElementValues.length) &&
7714
+ (!this.model || !this.model.length));
7715
+ }
7716
+ findElementByModelItem(item) {
7717
+ if (!!this.elements && !!this.elements.length) {
7718
+ const itemValue = typeof item !== 'object' ? item : this.getValue(item);
7719
+ const elem = this.elements.find((element) => this.getValue(element) === itemValue);
7720
+ if (!!elem) {
7721
+ return elem;
7722
+ }
7723
+ }
7724
+ return item;
7725
+ }
7726
+ getValidValue() {
7727
+ if (!this.model || !this.model.length) {
7728
+ if (this.model_ !== undefined) {
7729
+ return null;
7730
+ }
7731
+ return undefined;
7732
+ }
7733
+ return this.model;
7734
+ }
7735
+ focusNextAreaAfterDelete(removedIndex) {
7736
+ // Adjust index depending on default elements that are not deletable
7737
+ if (!!this.defaultElementValues) {
7738
+ removedIndex -= this.defaultElementValues.length;
7739
+ }
7740
+ const closeButtonsElemRefArray = [...this.selectedElemRef.toArray()];
7741
+ // Need to find an element to focus on
7742
+ if (removedIndex === closeButtonsElemRefArray.length) {
7743
+ if (!!closeButtonsElemRefArray.length) {
7744
+ return closeButtonsElemRefArray[removedIndex - 1].nativeElement.focus();
7745
+ }
7746
+ const defaultElemRefArray = [...this.defaultElemRef.toArray()];
7747
+ if (!!defaultElemRefArray.length) {
7748
+ return defaultElemRefArray[defaultElemRefArray.length - 1].nativeElement.focus();
7749
+ }
7750
+ return this.defaultDeleteFocusArea.nativeElement.focus();
7751
+ }
7752
+ // Otherwise focus element by DOM replacement
7753
+ }
7754
+ filterAutocompleteElements(elements) {
7755
+ const filteredElements = ObjectHelper.deepCopy(elements);
7756
+ if (!!this.model && !!this.model.length) {
7757
+ this.model.forEach((selected) => {
7758
+ for (const [index, value] of filteredElements.entries()) {
7759
+ const elem = this.findElementByModelItem(selected);
7760
+ if (ObjectHelper.isEqual(elem, value)) {
7761
+ filteredElements.splice(index, 1);
7762
+ break;
7763
+ }
7764
+ }
7765
+ });
7766
+ }
7767
+ return filteredElements;
7768
+ }
7769
+ manageSuggestionListAndFocusAfterAddingAnItem() {
7770
+ // Empty autocomplete input
7771
+ this.autocompleteInputValue = null;
7772
+ // Remove selected item from autocomplete suggestion list
7773
+ this.autocompleteComponent.elements = this.filterAutocompleteElements(this.elements);
7774
+ // Check if we still have suggestions to display
7775
+ if (!this.autocompleteComponent.elements.length) {
7776
+ this.showAlertMessageAndHideAutocomplete();
7777
+ // Need setTimeout to ensure alert message is on the DOM and can be focusable
7778
+ setTimeout(() => {
7779
+ const alertMessage = this.alertMessageContainer.nativeElement.querySelector('p');
7780
+ if (alertMessage) {
7781
+ alertMessage.focus();
7782
+ }
7783
+ });
7784
+ }
7785
+ }
7786
+ manageSuggestionListAndFocusAfterRemovingAnItem(removedIndex) {
7787
+ // Hide message saying no more suggestions to display
7788
+ this.showEmptyListMessage = false;
7789
+ // Manually show autocomplete because there is at least one suggestions to display
7790
+ this.autocompleteComponent.inputElement.nativeElement.hidden = false;
7791
+ // Add back selected item to autocomplete suggestion list
7792
+ this.autocompleteComponent.elements = this.filterAutocompleteElements(this.elements);
7793
+ // When deleting a selected item, check were to set focus back when no more items to delete
7794
+ this.selectedElemRef.changes.pipe(first()).subscribe(() => {
7795
+ this.focusNextAreaAfterDelete(removedIndex);
7796
+ });
7797
+ }
7798
+ showAlertMessageAndHideAutocomplete() {
7799
+ // Show a message to user indicating there is no more suggestions to display
7800
+ this.showEmptyListMessage = true;
7801
+ // Manually reset and hide autocomplete because there is no more suggestions to display
7802
+ this.autocompleteInputValue = null;
7803
+ this.autocompleteComponent.inputElement.nativeElement.hidden = true;
7804
+ }
7805
+ manageScreenReaderAnnouncement(element, isDelete) {
7806
+ clearTimeout(this.srAnnouncementClearTimer);
7807
+ if (isDelete) {
7808
+ this.srAnnouncements += `${this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.sr-announcement.deleted', { elementLabel: this.getLabel(element) })}`;
7809
+ }
7810
+ else {
7811
+ this.srAnnouncements += `${this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.sr-announcement.added', { elementLabel: this.getLabel(element) })}`;
7812
+ }
7813
+ this.srAnnouncementClearTimer = setTimeout(() => {
7814
+ this.srAnnouncements = '';
7815
+ }, this.SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS);
7816
+ }
7817
+ }
7818
+ FoehnMultiselectAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnMultiselectAutocompleteComponent, deps: [{ token: i0.NgZone }, { token: SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
7819
+ FoehnMultiselectAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnMultiselectAutocompleteComponent, selector: "foehn-multiselect-autocomplete", inputs: { defaultElementValues: "defaultElementValues", defaultElementValue: "defaultElementValue" }, host: { properties: { "attr.name": "this.hostName" } }, providers: [
7820
+ {
7821
+ provide: FoehnInputComponent,
7822
+ useExisting: forwardRef(() => FoehnMultiselectAutocompleteComponent),
7823
+ multi: true
7824
+ }
7825
+ ], viewQueries: [{ propertyName: "autocompleteComponent", first: true, predicate: ["autocompleteComponent"], descendants: true }, { propertyName: "alertMessageContainer", first: true, predicate: ["alertMessageContainer"], descendants: true }, { propertyName: "defaultDeleteFocusArea", first: true, predicate: ["defaultDeleteFocusArea"], descendants: true }, { propertyName: "selectedElemRef", predicate: ["selectedElemRef"], descendants: true }, { propertyName: "defaultElemRef", predicate: ["defaultElemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n [showErrorWhenDisabled]=\"showErrorWhenDisabled\"\n [hideNotRequiredExtraLabel]=\"hideNotRequiredExtraLabel\"\n>\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId('Help')\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"\n helpText\n ? helpText\n : ('foehn-multiselect-autocomplete.autocomplete.screen-reader.label'\n | fromDictionary)\n \"\n ></small>\n\n <div\n [id]=\"buildChildId('AlertMessageContainer')\"\n role=\"status\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info mb-0\"\n tabindex=\"0\"\n >\n {{\n 'foehn-multiselect-autocomplete.autocomplete.empty-message'\n | fromDictionary\n }}\n </p>\n </div>\n</foehn-autocomplete>\n\n<p class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {{ srAnnouncements }}\n</p>\n\n<div\n class=\"form-group selected-list-container d-flex align-content-stretch flex-wrap\"\n [ngClass]=\"!!model && !!model.length ? 'pt-2' : 'pt-0'\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n tabindex=\"-1\"\n>\n <span\n *ngIf=\"hasDefaultDeleteFocusArea()\"\n class=\"sr-only\"\n [tabindex]=\"0\"\n [innerHTML]=\"\n 'foehn-multiselect-autocomplete.sr-default-focus.no-element-to-delete'\n | fromDictionary\n \"\n #defaultDeleteFocusArea\n ></span>\n <ng-container\n *ngFor=\"let element of model; let index = index; trackBy: trackByFn\"\n >\n <span\n *ngIf=\"!canBeDeleted(index)\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"disabled ? -1 : 0\"\n [attr.aria-describedby]=\"buildChildId('Label')\"\n #defaultElemRef\n >\n {{ getLabel(element) }}\n <span class=\"sr-only\">\n {{\n 'foehn-multiselect-autocomplete.sr-default-selected-element'\n | fromDictionary\n }}\n </span>\n </span>\n <button\n *ngIf=\"canBeDeleted(index)\"\n class=\"btn btn-danger badge badge-pill mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"getDeleteButtonAriaLabel(element)\"\n [attr.aria-describedby]=\"buildChildId('Label')\"\n [title]=\"getDeleteButtonAriaLabel(element)\"\n (click)=\"removeItem(element, index)\"\n #selectedElemRef\n >\n {{ getLabel(element) }}\n <foehn-icon-times\n aria-hidden=\"true\"\n class=\"ml-2\"\n [title]=\"getDeleteButtonAriaLabel(element)\"\n ></foehn-icon-times>\n </button>\n </ng-container>\n</div>\n", styles: ["foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}:host ::ng-deep foehn-autocomplete .form-group{margin-bottom:0!important}.selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container .btn{text-transform:none}:host ::ng-deep .btn .svg-inline--fa{color:#fff!important}.selected-list-container span.badge-pill:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"], components: [{ type: FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
7826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnMultiselectAutocompleteComponent, decorators: [{
7827
+ type: Component,
7828
+ args: [{ selector: 'foehn-multiselect-autocomplete', providers: [
7829
+ {
7830
+ provide: FoehnInputComponent,
7831
+ useExisting: forwardRef(() => FoehnMultiselectAutocompleteComponent),
7832
+ multi: true
7833
+ }
7834
+ ], template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n [showErrorWhenDisabled]=\"showErrorWhenDisabled\"\n [hideNotRequiredExtraLabel]=\"hideNotRequiredExtraLabel\"\n>\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId('Help')\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"\n helpText\n ? helpText\n : ('foehn-multiselect-autocomplete.autocomplete.screen-reader.label'\n | fromDictionary)\n \"\n ></small>\n\n <div\n [id]=\"buildChildId('AlertMessageContainer')\"\n role=\"status\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info mb-0\"\n tabindex=\"0\"\n >\n {{\n 'foehn-multiselect-autocomplete.autocomplete.empty-message'\n | fromDictionary\n }}\n </p>\n </div>\n</foehn-autocomplete>\n\n<p class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {{ srAnnouncements }}\n</p>\n\n<div\n class=\"form-group selected-list-container d-flex align-content-stretch flex-wrap\"\n [ngClass]=\"!!model && !!model.length ? 'pt-2' : 'pt-0'\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n tabindex=\"-1\"\n>\n <span\n *ngIf=\"hasDefaultDeleteFocusArea()\"\n class=\"sr-only\"\n [tabindex]=\"0\"\n [innerHTML]=\"\n 'foehn-multiselect-autocomplete.sr-default-focus.no-element-to-delete'\n | fromDictionary\n \"\n #defaultDeleteFocusArea\n ></span>\n <ng-container\n *ngFor=\"let element of model; let index = index; trackBy: trackByFn\"\n >\n <span\n *ngIf=\"!canBeDeleted(index)\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"disabled ? -1 : 0\"\n [attr.aria-describedby]=\"buildChildId('Label')\"\n #defaultElemRef\n >\n {{ getLabel(element) }}\n <span class=\"sr-only\">\n {{\n 'foehn-multiselect-autocomplete.sr-default-selected-element'\n | fromDictionary\n }}\n </span>\n </span>\n <button\n *ngIf=\"canBeDeleted(index)\"\n class=\"btn btn-danger badge badge-pill mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"getDeleteButtonAriaLabel(element)\"\n [attr.aria-describedby]=\"buildChildId('Label')\"\n [title]=\"getDeleteButtonAriaLabel(element)\"\n (click)=\"removeItem(element, index)\"\n #selectedElemRef\n >\n {{ getLabel(element) }}\n <foehn-icon-times\n aria-hidden=\"true\"\n class=\"ml-2\"\n [title]=\"getDeleteButtonAriaLabel(element)\"\n ></foehn-icon-times>\n </button>\n </ng-container>\n</div>\n", styles: ["foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}:host ::ng-deep foehn-autocomplete .form-group{margin-bottom:0!important}.selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container .btn{text-transform:none}:host ::ng-deep .btn .svg-inline--fa{color:#fff!important}.selected-list-container span.badge-pill:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"] }]
7835
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: SdkDictionaryService }]; }, propDecorators: { hostName: [{
7836
+ type: HostBinding,
7837
+ args: ['attr.name']
7838
+ }], autocompleteComponent: [{
7839
+ type: ViewChild,
7840
+ args: ['autocompleteComponent']
7841
+ }], alertMessageContainer: [{
7842
+ type: ViewChild,
7843
+ args: ['alertMessageContainer']
7844
+ }], selectedElemRef: [{
7845
+ type: ViewChildren,
7846
+ args: ['selectedElemRef']
7847
+ }], defaultElemRef: [{
7848
+ type: ViewChildren,
7849
+ args: ['defaultElemRef']
7850
+ }], defaultDeleteFocusArea: [{
7851
+ type: ViewChild,
7852
+ args: ['defaultDeleteFocusArea']
7853
+ }], defaultElementValues: [{
7854
+ type: Input
7855
+ }], defaultElementValue: [{
7856
+ type: Input
7857
+ }] } });
7858
+
7859
+ class FoehnMultiselectAutocompleteModule {
7860
+ }
7861
+ FoehnMultiselectAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnMultiselectAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7862
+ FoehnMultiselectAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnMultiselectAutocompleteModule, declarations: [FoehnMultiselectAutocompleteComponent], imports: [FoehnAutocompleteModule,
7863
+ SdkDictionaryModule,
7864
+ FoehnValidationAlertsModule,
7865
+ CommonModule,
7866
+ FoehnIconsModule,
7867
+ FormsModule], exports: [FoehnMultiselectAutocompleteComponent] });
7868
+ FoehnMultiselectAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnMultiselectAutocompleteModule, imports: [[
7869
+ FoehnAutocompleteModule,
7870
+ SdkDictionaryModule,
7871
+ FoehnValidationAlertsModule,
7872
+ CommonModule,
7873
+ FoehnIconsModule,
7874
+ FormsModule
7875
+ ]] });
7876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnMultiselectAutocompleteModule, decorators: [{
7877
+ type: NgModule,
7878
+ args: [{
7879
+ imports: [
7880
+ FoehnAutocompleteModule,
7881
+ SdkDictionaryModule,
7882
+ FoehnValidationAlertsModule,
7883
+ CommonModule,
7884
+ FoehnIconsModule,
7885
+ FormsModule
7886
+ ],
7887
+ declarations: [FoehnMultiselectAutocompleteComponent],
7888
+ exports: [FoehnMultiselectAutocompleteComponent]
7889
+ }]
7890
+ }] });
7891
+
7602
7892
  class FoehnInputNav13Component extends FoehnInputStringComponent {
7603
7893
  constructor() {
7604
7894
  super(...arguments);
@@ -8654,7 +8944,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
8654
8944
  }]
8655
8945
  }] });
8656
8946
 
8657
- const RECAPTCHA_URL = 'https://www.google.com/recaptcha/api.js?onload=reCaptchaLoad&render=explicit';
8947
+ const RECAPTCHA_URL = 'https://www.recaptcha.net/recaptcha/api.js?onload=reCaptchaLoad&render=explicit';
8658
8948
  const SCRIPT_ID = 'prestations-ng-captcha-script';
8659
8949
  /**
8660
8950
  * Integration with Google Recaptcha.
@@ -9857,7 +10147,7 @@ FoehnPictureUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
9857
10147
  useExisting: forwardRef(() => FoehnPictureUploadComponent),
9858
10148
  multi: true
9859
10149
  }
9860
- ], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"'.jpeg,.jpg,.png'\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [disabled]=\"loading\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i5.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
10150
+ ], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"'.jpeg,.jpg,.png'\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [attr.disabled]=\"loading ? 'disabled' : null\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i5.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
9861
10151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnPictureUploadComponent, decorators: [{
9862
10152
  type: Component,
9863
10153
  args: [{ selector: 'foehn-picture-upload', providers: [
@@ -9866,7 +10156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
9866
10156
  useExisting: forwardRef(() => FoehnPictureUploadComponent),
9867
10157
  multi: true
9868
10158
  }
9869
- ], template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"'.jpeg,.jpg,.png'\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [disabled]=\"loading\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
10159
+ ], template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"'.jpeg,.jpg,.png'\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [attr.disabled]=\"loading ? 'disabled' : null\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
9870
10160
  }], ctorParameters: function () { return [{ type: GrowlBrokerService }, { type: MultiUploadService }, { type: SdkDictionaryService }]; }, propDecorators: { name: [{
9871
10161
  type: Input
9872
10162
  }], key: [{
@@ -11320,10 +11610,10 @@ class FoehnDatePickerComponent {
11320
11610
  }
11321
11611
  }
11322
11612
  FoehnDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnDatePickerComponent, deps: [{ token: SdkDictionaryService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
11323
- FoehnDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnDatePickerComponent, selector: "foehn-date-picker", inputs: { minYear: "minYear", maxYear: "maxYear", datepickerTriggerHtmlElement: "datepickerTriggerHtmlElement", closeable: "closeable", isDatepickerVisible: "isDatepickerVisible", model: "model" }, outputs: { modelChange: "modelChange", userInput: "userInput", isDatepickerVisibleChange: "isDatepickerVisibleChange" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" } }, viewQueries: [{ propertyName: "daysButtonsElemRef", predicate: ["dayButtonElemRef"], descendants: true }], ngImport: i0, template: "<div\n id=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <div id=\"datepicker_header\" class=\"d-flex justify-content-between\">\n <button\n id=\"previous-month\"\n class=\"btn btn-link\"\n (click)=\"previousMonth()\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <span id=\"month-year-label\" aria-live=\"polite\" class=\"sr-only\">\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n id=\"month-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"false\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n id=\"year-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"false\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n </ng-container>\n <button id=\"next-month\" class=\"btn btn-link\" (click)=\"nextMonth()\">\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title' | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </div>\n <table\n id=\"datepicker_table\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [id]=\"'day_' + indexRow + '_' + indexColumn\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [disabled]=\"!dayOfWeek.isCurrentMonth\"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}#datepicker_header{margin-bottom:10px}#datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}#datepicker_wrapper .h4{margin-bottom:0}#datepicker_wrapper thead th{text-align:center;width:15%}#datepicker_wrapper .btn{padding:2px 4px}#datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}#datepicker_wrapper #month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}\n"], components: [{ type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple"] }, { type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { type: FoehnAbbrComponent, selector: "foehn-abbr", inputs: ["title", "text"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": SdkDictionaryPipe, "async": i3.AsyncPipe } });
11613
+ FoehnDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnDatePickerComponent, selector: "foehn-date-picker", inputs: { minYear: "minYear", maxYear: "maxYear", datepickerTriggerHtmlElement: "datepickerTriggerHtmlElement", closeable: "closeable", isDatepickerVisible: "isDatepickerVisible", model: "model" }, outputs: { modelChange: "modelChange", userInput: "userInput", isDatepickerVisibleChange: "isDatepickerVisibleChange" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" } }, viewQueries: [{ propertyName: "daysButtonsElemRef", predicate: ["dayButtonElemRef"], descendants: true }], ngImport: i0, template: "<div\n id=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <div id=\"datepicker_header\" class=\"d-flex justify-content-between\">\n <button\n id=\"previous-month\"\n class=\"btn btn-link\"\n (click)=\"previousMonth()\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <span id=\"month-year-label\" aria-live=\"polite\" class=\"sr-only\">\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n id=\"month-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"false\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n id=\"year-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"false\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n </ng-container>\n <button id=\"next-month\" class=\"btn btn-link\" (click)=\"nextMonth()\">\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title' | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </div>\n <table\n id=\"datepicker_table\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [id]=\"'day_' + indexRow + '_' + indexColumn\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"\n !dayOfWeek.isCurrentMonth ? 'disabled' : null\n \"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}#datepicker_header{margin-bottom:10px}#datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}#datepicker_wrapper .h4{margin-bottom:0}#datepicker_wrapper thead th{text-align:center;width:15%}#datepicker_wrapper .btn{padding:2px 4px}#datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}#datepicker_wrapper #month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}\n"], components: [{ type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple"] }, { type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { type: FoehnAbbrComponent, selector: "foehn-abbr", inputs: ["title", "text"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": SdkDictionaryPipe, "async": i3.AsyncPipe } });
11324
11614
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnDatePickerComponent, decorators: [{
11325
11615
  type: Component,
11326
- args: [{ selector: 'foehn-date-picker', template: "<div\n id=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <div id=\"datepicker_header\" class=\"d-flex justify-content-between\">\n <button\n id=\"previous-month\"\n class=\"btn btn-link\"\n (click)=\"previousMonth()\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <span id=\"month-year-label\" aria-live=\"polite\" class=\"sr-only\">\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n id=\"month-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"false\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n id=\"year-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"false\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n </ng-container>\n <button id=\"next-month\" class=\"btn btn-link\" (click)=\"nextMonth()\">\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title' | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </div>\n <table\n id=\"datepicker_table\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [id]=\"'day_' + indexRow + '_' + indexColumn\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [disabled]=\"!dayOfWeek.isCurrentMonth\"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}#datepicker_header{margin-bottom:10px}#datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}#datepicker_wrapper .h4{margin-bottom:0}#datepicker_wrapper thead th{text-align:center;width:15%}#datepicker_wrapper .btn{padding:2px 4px}#datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}#datepicker_wrapper #month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}\n"] }]
11616
+ args: [{ selector: 'foehn-date-picker', template: "<div\n id=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <div id=\"datepicker_header\" class=\"d-flex justify-content-between\">\n <button\n id=\"previous-month\"\n class=\"btn btn-link\"\n (click)=\"previousMonth()\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <span id=\"month-year-label\" aria-live=\"polite\" class=\"sr-only\">\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n id=\"month-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"false\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n id=\"year-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"false\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n </ng-container>\n <button id=\"next-month\" class=\"btn btn-link\" (click)=\"nextMonth()\">\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title' | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </div>\n <table\n id=\"datepicker_table\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [id]=\"'day_' + indexRow + '_' + indexColumn\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"\n !dayOfWeek.isCurrentMonth ? 'disabled' : null\n \"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}#datepicker_header{margin-bottom:10px}#datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}#datepicker_wrapper .h4{margin-bottom:0}#datepicker_wrapper thead th{text-align:center;width:15%}#datepicker_wrapper .btn{padding:2px 4px}#datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}#datepicker_wrapper #month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}\n"] }]
11327
11617
  }], ctorParameters: function () { return [{ type: SdkDictionaryService }, { type: i0.NgZone }]; }, propDecorators: { minYear: [{
11328
11618
  type: Input
11329
11619
  }], maxYear: [{
@@ -11529,6 +11819,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
11529
11819
  }]
11530
11820
  }] });
11531
11821
 
11822
+ class AddressTypeLight {
11823
+ }
11824
+
11825
+ class Canton {
11826
+ }
11827
+
11828
+ class District {
11829
+ }
11830
+
11831
+ class Municipality {
11832
+ }
11833
+
11834
+ class PlaceOfOrigin {
11835
+ }
11836
+
11837
+ class PostalLocality {
11838
+ }
11839
+
11532
11840
  /*
11533
11841
  * Public API Surface of prestations-ng
11534
11842
  */
@@ -11537,5 +11845,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
11537
11845
  * Generated bundle index. Do not edit.
11538
11846
  */
11539
11847
 
11540
- export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Captcha, ComponentError, Configuration, Country, CurrencyHelper, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_AND_NO_SWISS, DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE, DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE, DEFAULT_INTERNATIONAL_HELP_TEXT, DEFAULT_SWISS_HELP_TEXT, DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT, DEFAULT_SWISS_PHONE_HELP_TEXT, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DisplayCurrencyPipe, DisplayDatePipe, DisplayLoginMessagesData, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, EPaymentService, EtapeInfo, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAddressModule, FoehnAutocompleteComponent, FoehnAutocompleteModule, FoehnBoMultiUploadComponent, FoehnBoMultiUploadModule, FoehnBooleanCheckboxComponent, FoehnBooleanModule, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnBreadcrumbModule, FoehnCheckableGroupComponent, FoehnCheckablesModule, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalModule, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerButtonModule, FoehnDatePickerComponent, FoehnDatePickerModule, FoehnDecisionElectroniqueComponent, FoehnDecisionElectroniqueModule, FoehnDisplayAddressComponent, FoehnErrorPillComponent, FoehnFormComponent, FoehnFormModule, FoehnHeaderComponent, FoehnHeaderModule, FoehnHelpModalComponent, FoehnHelpModalModule, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconsModule, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputModule, FoehnInputNav13Component, FoehnInputNav13Module, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputStringComponent, FoehnInputTextComponent, FoehnInputTextareaComponent, FoehnListComponent, FoehnListItem, FoehnListModule, FoehnListSummaryComponent, FoehnMenuItemComponent, FoehnMenuItemTransmitComponent, FoehnMenuPrestationModule, FoehnMiscModule, FoehnModalComponent, FoehnModalModule, FoehnMultiUploadComponent, FoehnMultiUploadModule, FoehnNavigationComponent, FoehnNavigationModule, FoehnNavigationService, FoehnNotFoundModule, FoehnNotfoundComponent, FoehnPageComponent, FoehnPageCounterComponent, FoehnPageModalComponent, FoehnPageModule, FoehnPageService, FoehnPictureUploadComponent, FoehnPictureUploadModule, FoehnRadioComponent, FoehnRecapSectionComponent, FoehnRecapSectionModule, FoehnRemainingAlertsSummaryComponent, FoehnRemainingAlertsSummaryModule, FoehnSelectComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnStatusProgressBarModule, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTableModule, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnUserConnectedAsComponent, FoehnUserConnectedAsModule, FoehnValidationAlertSummaryComponent, FoehnValidationAlertSummaryModule, FoehnValidationAlertsComponent, FoehnValidationAlertsModule, FooterLink, FormMetadata, FormPostResponse, FormSelectOption, FormatIdePipe, FormatterModule, GESDEM_MAX_DATA_LENGTH, GesdemActionRecoveryLoginComponent, GesdemActionRecoveryModule, GesdemActionRecoveryRegistrationComponent, GesdemConfirmationComponent, GesdemConfirmationModule, GesdemErrorComponent, GesdemErrorModule, GesdemEventService, GesdemHandlerService, GesdemLoaderGuard, GesdemStatutUtils, GrowlBrokerService, GrowlMessage, GrowlType, I18nForm, IbanFormatterDirective, IdeFormatterDirective, Locality, MonthYear, MultiUploadService, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, ObjectHelper, PORTAIL_BASE_URL_INT, PageChangeEvent, PendingFiles, PendingUploadService, PipeModule, Portail, Preferences, PrestationsNgCoreModule, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, SESSION_INFO_API_URL, SWISS_ISO_ID, SdkDictionaryModule, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEpaymentModule, SdkRecaptchaComponent, SdkRecaptchaModule, SdkRedirectModule, ServiceLocator, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, THOUSANDS_SEPARATOR, TableSort, UploaderHelper, ValidationHandlerService };
11848
+ 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, Canton, Captcha, ComponentError, Configuration, Country, CurrencyHelper, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_AND_NO_SWISS, DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE, DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE, DEFAULT_INTERNATIONAL_HELP_TEXT, DEFAULT_SWISS_HELP_TEXT, DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT, DEFAULT_SWISS_PHONE_HELP_TEXT, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DisplayCurrencyPipe, DisplayDatePipe, DisplayLoginMessagesData, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, EPaymentService, EtapeInfo, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAddressModule, FoehnAutocompleteComponent, FoehnAutocompleteModule, FoehnBoMultiUploadComponent, FoehnBoMultiUploadModule, FoehnBooleanCheckboxComponent, FoehnBooleanModule, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnBreadcrumbModule, FoehnCheckableGroupComponent, FoehnCheckablesModule, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalModule, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerButtonModule, FoehnDatePickerComponent, FoehnDatePickerModule, FoehnDecisionElectroniqueComponent, FoehnDecisionElectroniqueModule, FoehnDisplayAddressComponent, FoehnErrorPillComponent, FoehnFormComponent, FoehnFormModule, FoehnHeaderComponent, FoehnHeaderModule, FoehnHelpModalComponent, FoehnHelpModalModule, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconsModule, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputModule, FoehnInputNav13Component, FoehnInputNav13Module, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputStringComponent, FoehnInputTextComponent, FoehnInputTextareaComponent, FoehnListComponent, FoehnListItem, FoehnListModule, FoehnListSummaryComponent, FoehnMenuItemComponent, FoehnMenuItemTransmitComponent, FoehnMenuPrestationModule, FoehnMiscModule, FoehnModalComponent, FoehnModalModule, FoehnMultiUploadComponent, FoehnMultiUploadModule, FoehnMultiselectAutocompleteComponent, FoehnMultiselectAutocompleteModule, FoehnNavigationComponent, FoehnNavigationModule, FoehnNavigationService, FoehnNotFoundModule, FoehnNotfoundComponent, FoehnPageComponent, FoehnPageCounterComponent, FoehnPageModalComponent, FoehnPageModule, FoehnPageService, FoehnPictureUploadComponent, FoehnPictureUploadModule, FoehnRadioComponent, FoehnRecapSectionComponent, FoehnRecapSectionModule, FoehnRemainingAlertsSummaryComponent, FoehnRemainingAlertsSummaryModule, FoehnSelectComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnStatusProgressBarModule, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTableModule, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnUserConnectedAsComponent, FoehnUserConnectedAsModule, FoehnValidationAlertSummaryComponent, FoehnValidationAlertSummaryModule, FoehnValidationAlertsComponent, FoehnValidationAlertsModule, FooterLink, FormMetadata, FormPostResponse, FormSelectOption, FormatIdePipe, FormatterModule, GESDEM_MAX_DATA_LENGTH, GesdemActionRecoveryLoginComponent, GesdemActionRecoveryModule, GesdemActionRecoveryRegistrationComponent, GesdemConfirmationComponent, GesdemConfirmationModule, GesdemErrorComponent, GesdemErrorModule, GesdemEventService, GesdemHandlerService, GesdemLoaderGuard, GesdemStatutUtils, GrowlBrokerService, GrowlMessage, GrowlType, I18nForm, IbanFormatterDirective, IdeFormatterDirective, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, ObjectHelper, PORTAIL_BASE_URL_INT, PageChangeEvent, PendingFiles, PendingUploadService, PipeModule, PlaceOfOrigin, Portail, PostalLocality, Preferences, PrestationsNgCoreModule, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, SESSION_INFO_API_URL, SWISS_ISO_ID, SdkDictionaryModule, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEpaymentModule, SdkRecaptchaComponent, SdkRecaptchaModule, SdkRedirectModule, ServiceLocator, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, THOUSANDS_SEPARATOR, TableSort, UploaderHelper, ValidationHandlerService };
11541
11849
  //# sourceMappingURL=dsivd-prestations-ng.mjs.map