@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.
- package/CHANGELOG.md +64 -3
- package/dsivd-prestations-ng-v15.0.0-beta6.tgz +0 -0
- package/esm2020/foehn-address/address.type.mjs +1 -1
- package/esm2020/foehn-address/foehn-input-address.component.mjs +2 -2
- package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +12 -3
- package/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +3 -3
- package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +254 -0
- package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +42 -0
- package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +2 -4
- package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +3 -3
- package/esm2020/index.mjs +11 -1
- package/esm2020/refinf/model/address-type-light.mjs +3 -0
- package/esm2020/refinf/model/canton.mjs +3 -0
- package/esm2020/refinf/model/district.mjs +3 -0
- package/esm2020/refinf/model/municipality.mjs +3 -0
- package/esm2020/refinf/model/place-of-origin.mjs +3 -0
- package/esm2020/refinf/model/postal-locality.mjs +3 -0
- package/esm2020/sdk-dictionary/default-dictionary.mjs +11 -3
- package/esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +2 -2
- package/fesm2015/dsivd-prestations-ng.mjs +410 -102
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
- package/fesm2020/dsivd-prestations-ng.mjs +410 -102
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-address/address.type.d.ts +3 -3
- package/foehn-address/foehn-input-address.component.d.ts +2 -2
- package/foehn-checkables/foehn-checkable-group.component.d.ts +3 -2
- package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.d.ts +45 -0
- package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.d.ts +13 -0
- package/index.d.ts +8 -0
- package/package.json +1 -1
- package/refinf/model/address-type-light.d.ts +5 -0
- package/refinf/model/canton.d.ts +4 -0
- package/refinf/model/district.d.ts +7 -0
- package/refinf/model/municipality.d.ts +8 -0
- package/refinf/model/place-of-origin.d.ts +9 -0
- package/refinf/model/postal-locality.d.ts +11 -0
- package/sdk-recaptcha/grecaptcha/grecaptcha.component.d.ts +1 -1
- 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': '
|
|
1476
|
-
'foehn-status-progress-bar.step3.srOnly': 'Etape 3 sur 3,
|
|
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
|
|
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.
|
|
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\">×</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\">×</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\">×</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\">×</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
|