@dsivd/prestations-ng 15.4.2 → 15.4.3-beta1
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 +12 -0
- package/dsivd-prestations-ng-v15.4.3-beta1.tgz +0 -0
- package/esm2020/foehn-input/foehn-input-email.component.mjs +6 -6
- package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +3 -3
- package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +3 -3
- package/esm2020/sdk-dictionary/sdk-dictionary.service.mjs +32 -15
- package/fesm2015/dsivd-prestations-ng.mjs +38 -21
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
- package/fesm2020/dsivd-prestations-ng.mjs +38 -21
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
- package/package.json +1 -1
- package/sdk-dictionary/sdk-dictionary.service.d.ts +3 -0
- package/dsivd-prestations-ng-v15.4.2.tgz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, of } from 'rxjs';
|
|
3
|
-
import { catchError, map,
|
|
2
|
+
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
3
|
+
import { catchError, map, shareReplay, switchMap, tap } from 'rxjs/operators';
|
|
4
4
|
import { GrowlType } from '../foehn-growl/growl-types';
|
|
5
5
|
// eslint-disable-next-line import/no-cycle
|
|
6
6
|
import { DEFAULT_DICTIONARY } from './default-dictionary';
|
|
@@ -38,10 +38,16 @@ export class SdkDictionaryService {
|
|
|
38
38
|
constructor(httpClient, growlService) {
|
|
39
39
|
this.httpClient = httpClient;
|
|
40
40
|
this.growlService = growlService;
|
|
41
|
-
this.
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
.
|
|
41
|
+
this.defaultLanguageCode = 'fr';
|
|
42
|
+
this.languageCodeSubject = new BehaviorSubject(this.getNavigatorLanguageCodeOrDefault());
|
|
43
|
+
this.availableLanguagesObservable = this.httpClient
|
|
44
|
+
.get(`${DICTIONARY_BASE_URL}/languages`)
|
|
45
|
+
.pipe(catchError((e) => {
|
|
46
|
+
console.error(e);
|
|
47
|
+
growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les langues disponibles');
|
|
48
|
+
return of([]);
|
|
49
|
+
}), shareReplay(1));
|
|
50
|
+
this.dictionaryObservable = this.getCurrentLanguageCode().pipe(switchMap(languageCode => {
|
|
45
51
|
const url = DICTIONARY_BASE_URL +
|
|
46
52
|
(!!languageCode ? `/${languageCode}` : '');
|
|
47
53
|
return this.httpClient.get(url).pipe(catchError((e) => {
|
|
@@ -52,13 +58,6 @@ export class SdkDictionaryService {
|
|
|
52
58
|
this.dictionary = dictionary;
|
|
53
59
|
}));
|
|
54
60
|
}), shareReplay(1));
|
|
55
|
-
this.availableLanguagesObservable = this.httpClient
|
|
56
|
-
.get(`${DICTIONARY_BASE_URL}/languages`)
|
|
57
|
-
.pipe(catchError((e) => {
|
|
58
|
-
console.error(e);
|
|
59
|
-
growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les langues disponibles');
|
|
60
|
-
return of([]);
|
|
61
|
-
}), shareReplay(1));
|
|
62
61
|
}
|
|
63
62
|
getDictionary() {
|
|
64
63
|
return this.dictionaryObservable;
|
|
@@ -81,7 +80,25 @@ export class SdkDictionaryService {
|
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
getCurrentLanguageCode() {
|
|
84
|
-
return
|
|
83
|
+
return combineLatest([
|
|
84
|
+
this.availableLanguagesObservable,
|
|
85
|
+
this.languageCodeSubject.asObservable()
|
|
86
|
+
]).pipe(switchMap(([availableLanguageCodes, languageCode]) => {
|
|
87
|
+
const matchedLanguage = availableLanguageCodes.find(lc => lc.code === languageCode);
|
|
88
|
+
if (!!matchedLanguage && !!matchedLanguage.code) {
|
|
89
|
+
return of(matchedLanguage.code);
|
|
90
|
+
}
|
|
91
|
+
return of(this.defaultLanguageCode);
|
|
92
|
+
}), shareReplay(1));
|
|
93
|
+
}
|
|
94
|
+
setDefaultLanguageCode(code) {
|
|
95
|
+
this.defaultLanguageCode = code;
|
|
96
|
+
this.languageCodeSubject.next(this.getNavigatorLanguageCodeOrDefault());
|
|
97
|
+
}
|
|
98
|
+
getNavigatorLanguageCodeOrDefault() {
|
|
99
|
+
return !!navigator && !!navigator.language
|
|
100
|
+
? navigator.language.split('-')[0]
|
|
101
|
+
: this.defaultLanguageCode;
|
|
85
102
|
}
|
|
86
103
|
}
|
|
87
104
|
SdkDictionaryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SdkDictionaryService, deps: [{ token: i1.HttpClient }, { token: i2.GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -92,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
92
109
|
providedIn: 'root'
|
|
93
110
|
}]
|
|
94
111
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GrowlBrokerService }]; } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWRpY3Rpb25hcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRTFELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0FBZXBEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDdEIsS0FBYSxFQUNiLFlBQThCLEVBQ3hCLEVBQUU7SUFDUixJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2YsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3BELE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN2RSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDZCxDQUFD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LElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7O2tIQS9FUSxvQkFBb0I7c0hBQXBCLG9CQUFvQixjQUZqQixNQUFNOzRGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdyb3dsQnJva2VyU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLWdyb3dsL2dyb3dsLWJyb2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdyb3dsVHlwZSB9IGZyb20gJy4uL2ZvZWhuLWdyb3dsL2dyb3dsLXR5cGVzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IERFRkFVTFRfRElDVElPTkFSWSB9IGZyb20gJy4vZGVmYXVsdC1kaWN0aW9uYXJ5JztcblxuZXhwb3J0IGNvbnN0IERJQ1RJT05BUllfQkFTRV9VUkwgPSAnYXBpL2RpY3Rpb25hcnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlaG9sZGVyVHlwZSB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpY3Rpb25hcnlUeXBlIHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2Uge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBwYXJhbSB2YWx1ZSB0byBzZWFyY2ggaW5cbiAqIEBwYXJhbSBwbGFjZWhvbGRlcnMgdG8gYmUgcmVwbGFjZWRcbiAqIEByZXR1cm5zIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgcmVwbGFjZUFsbCA9IChcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZVxuKTogc3RyaW5nID0+IHtcbiAgICBpZiAoIXBsYWNlaG9sZGVycykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHBsYWNlaG9sZGVycykucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZVRvUmVwbGFjZSA9IHBsYWNlaG9sZGVyc1trZXldO1xuICAgICAgICByZXR1cm4gcmVzdWx0LnJlcGxhY2UobmV3IFJlZ0V4cChgeyR7a2V5fX1gLCAnZycpLCB2YWx1ZVRvUmVwbGFjZSk7XG4gICAgfSwgdmFsdWUpO1xufTtcblxuLyoqXG4gKiBAcGFyYW0gZGljdGlvbmFyeSBob2xkaW5nIGFsbCBrZXlzXG4gKiBAcGFyYW0ga2V5IGZyb20gZGljdGlvbmFyeVxuICogQHBhcmFtIHBsYWNlaG9sZGVycyB0byBiZSByZXBsYWNlZFxuICogQHJldHVybnMgc3RyaW5nXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9uc1xuZnVuY3Rpb24gZ2V0S2V5T3JEZWZhdWx0KFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZGljdGlvbmFyeTogYW55LFxuICAgIGtleTogc3RyaW5nLFxuICAgIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZVxuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVwbGFjZUFsbChcbiAgICAgICAgZGljdGlvbmFyeVtrZXldIHx8IERFRkFVTFRfRElDVElPTkFSWVtrZXldIHx8IGtleSxcbiAgICAgICAgcGxhY2Vob2xkZXJzXG4gICAgKTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZGtEaWN0aW9uYXJ5U2VydmljZSB7XG4gICAgcHJpdmF0ZSBkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5VHlwZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpY3Rpb25hcnlPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPERpY3Rpb25hcnlUeXBlPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGU6IE9ic2VydmFibGU8TGFuZ3VhZ2VbXT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZUNvZGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdmcicpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBncm93bFNlcnZpY2U6IEdyb3dsQnJva2VyU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlID0gdGhpcy5sYW5ndWFnZUNvZGVTdWJqZWN0XG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKGxhbmd1YWdlQ29kZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBESUNUSU9OQVJZX0JBU0VfVVJMICtcbiAgICAgICAgICAgICAgICAgICAgICAgICghIWxhbmd1YWdlQ29kZSA/IGAvJHtsYW5ndWFnZUNvZGV9YCA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8RGljdGlvbmFyeVR5cGU+KHVybCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Jvd2xUeXBlLkRBTkdFUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ltcG9zc2libGUgZGUgcsOpY3Vww6lyZXIgbGVzIHZhbGV1cnMgZHUgZGljdGlvbm5haXJlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKGRpY3Rpb25hcnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGljdGlvbmFyeSA9IGRpY3Rpb25hcnk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzT2JzZXJ2YWJsZSA9IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldDxMYW5ndWFnZVtdPihgJHtESUNUSU9OQVJZX0JBU0VfVVJMfS9sYW5ndWFnZXNgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZTogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICBncm93bFNlcnZpY2UuYWRkV2l0aFR5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuREFOR0VSLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0ltcG9zc2libGUgZGUgcsOpY3Vww6lyZXIgbGVzIGxhbmd1ZXMgZGlzcG9uaWJsZXMnXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0RGljdGlvbmFyeSgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnlUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIGdldEF2YWlsYWJsZUxhbmd1YWdlcygpOiBPYnNlcnZhYmxlPExhbmd1YWdlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBnZXRLZXkoa2V5OiBzdHJpbmcsIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGljdGlvbmFyeSA9PiBnZXRLZXlPckRlZmF1bHQoZGljdGlvbmFyeSwga2V5LCBwbGFjZWhvbGRlcnMpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEtleVN5bmMoa2V5OiBzdHJpbmcsIHBsYWNlaG9sZGVycz86IFBsYWNlaG9sZGVyVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5kaWN0aW9uYXJ5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpY3Rpb25hcnkgbm90IGluaXRpYWxpemVkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldEtleU9yRGVmYXVsdCh0aGlzLmRpY3Rpb25hcnksIGtleSwgcGxhY2Vob2xkZXJzKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VMYW5ndWFnZShjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhY29kZSAmJiB0aGlzLmxhbmd1YWdlQ29kZVN1YmplY3QuZ2V0VmFsdWUoKSAhPT0gY29kZSkge1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVTdWJqZWN0Lm5leHQoY29kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlQ29kZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxufVxuIl19
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWRpY3Rpb25hcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUUxRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQWVwRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3RCLEtBQWEsRUFDYixZQUE4QixFQUN4QixFQUFFO0lBQ1IsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNmLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNwRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdkUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFD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QyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ25DLENBQUM7O2tIQXpHUSxvQkFBb0I7c0hBQXBCLG9CQUFvQixjQUZqQixNQUFNOzRGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHcm93bEJyb2tlclNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHcm93bFR5cGUgfSBmcm9tICcuLi9mb2Vobi1ncm93bC9ncm93bC10eXBlcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBERUZBVUxUX0RJQ1RJT05BUlkgfSBmcm9tICcuL2RlZmF1bHQtZGljdGlvbmFyeSc7XG5cbmV4cG9ydCBjb25zdCBESUNUSU9OQVJZX0JBU0VfVVJMID0gJ2FwaS9kaWN0aW9uYXJ5JztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFjZWhvbGRlclR5cGUge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWN0aW9uYXJ5VHlwZSB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlIHtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcGFyYW0gdmFsdWUgdG8gc2VhcmNoIGluXG4gKiBAcGFyYW0gcGxhY2Vob2xkZXJzIHRvIGJlIHJlcGxhY2VkXG4gKiBAcmV0dXJucyBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcGxhY2VBbGwgPSAoXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBwbGFjZWhvbGRlcnM/OiBQbGFjZWhvbGRlclR5cGVcbik6IHN0cmluZyA9PiB7XG4gICAgaWYgKCFwbGFjZWhvbGRlcnMpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhwbGFjZWhvbGRlcnMpLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVUb1JlcGxhY2UgPSBwbGFjZWhvbGRlcnNba2V5XTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKG5ldyBSZWdFeHAoYHske2tleX19YCwgJ2cnKSwgdmFsdWVUb1JlcGxhY2UpO1xuICAgIH0sIHZhbHVlKTtcbn07XG5cbi8qKlxuICogQHBhcmFtIGRpY3Rpb25hcnkgaG9sZGluZyBhbGwga2V5c1xuICogQHBhcmFtIGtleSBmcm9tIGRpY3Rpb25hcnlcbiAqIEBwYXJhbSBwbGFjZWhvbGRlcnMgdG8gYmUgcmVwbGFjZWRcbiAqIEByZXR1cm5zIHN0cmluZ1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnNcbmZ1bmN0aW9uIGdldEtleU9yRGVmYXVsdChcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGRpY3Rpb25hcnk6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBwbGFjZWhvbGRlcnM/OiBQbGFjZWhvbGRlclR5cGVcbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlcGxhY2VBbGwoXG4gICAgICAgIGRpY3Rpb25hcnlba2V5XSB8fCBERUZBVUxUX0RJQ1RJT05BUllba2V5XSB8fCBrZXksXG4gICAgICAgIHBsYWNlaG9sZGVyc1xuICAgICk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2RrRGljdGlvbmFyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgZGljdGlvbmFyeTogRGljdGlvbmFyeVR5cGU7XG4gICAgcHJpdmF0ZSBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gJ2ZyJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpY3Rpb25hcnlPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPERpY3Rpb25hcnlUeXBlPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGU6IE9ic2VydmFibGU8TGFuZ3VhZ2VbXT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZUNvZGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KFxuICAgICAgICB0aGlzLmdldE5hdmlnYXRvckxhbmd1YWdlQ29kZU9yRGVmYXVsdCgpXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xTZXJ2aWNlOiBHcm93bEJyb2tlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXNPYnNlcnZhYmxlID0gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAuZ2V0PExhbmd1YWdlW10+KGAke0RJQ1RJT05BUllfQkFTRV9VUkx9L2xhbmd1YWdlc2ApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIGdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3dsVHlwZS5EQU5HRVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAnSW1wb3NzaWJsZSBkZSByw6ljdXDDqXJlciBsZXMgbGFuZ3VlcyBkaXNwb25pYmxlcydcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpY3Rpb25hcnlPYnNlcnZhYmxlID0gdGhpcy5nZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcChsYW5ndWFnZUNvZGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9XG4gICAgICAgICAgICAgICAgICAgIERJQ1RJT05BUllfQkFTRV9VUkwgK1xuICAgICAgICAgICAgICAgICAgICAoISFsYW5ndWFnZUNvZGUgPyBgLyR7bGFuZ3VhZ2VDb2RlfWAgOiAnJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8RGljdGlvbmFyeVR5cGU+KHVybCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZTogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3dsU2VydmljZS5hZGRXaXRoVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcm93bFR5cGUuREFOR0VSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJbXBvc3NpYmxlIGRlIHLDqWN1cMOpcmVyIGxlcyB2YWxldXJzIGR1IGRpY3Rpb25uYWlyZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFwKGRpY3Rpb25hcnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5ID0gZGljdGlvbmFyeTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldERpY3Rpb25hcnkoKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5VHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5T2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICBnZXRBdmFpbGFibGVMYW5ndWFnZXMoKTogT2JzZXJ2YWJsZTxMYW5ndWFnZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGU7XG4gICAgfVxuXG4gICAgZ2V0S2V5KGtleTogc3RyaW5nLCBwbGFjZWhvbGRlcnM/OiBQbGFjZWhvbGRlclR5cGUpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5T2JzZXJ2YWJsZS5waXBlKFxuICAgICAgICAgICAgbWFwKGRpY3Rpb25hcnkgPT4gZ2V0S2V5T3JEZWZhdWx0KGRpY3Rpb25hcnksIGtleSwgcGxhY2Vob2xkZXJzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRLZXlTeW5jKGtleTogc3RyaW5nLCBwbGFjZWhvbGRlcnM/OiBQbGFjZWhvbGRlclR5cGUpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXRoaXMuZGljdGlvbmFyeSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWN0aW9uYXJ5IG5vdCBpbml0aWFsaXplZC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnZXRLZXlPckRlZmF1bHQodGhpcy5kaWN0aW9uYXJ5LCBrZXksIHBsYWNlaG9sZGVycyk7XG4gICAgfVxuXG4gICAgY2hhbmdlTGFuZ3VhZ2UoY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghIWNvZGUgJiYgdGhpcy5sYW5ndWFnZUNvZGVTdWJqZWN0LmdldFZhbHVlKCkgIT09IGNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlU3ViamVjdC5uZXh0KGNvZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudExhbmd1YWdlQ29kZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc09ic2VydmFibGUsXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2F2YWlsYWJsZUxhbmd1YWdlQ29kZXMsIGxhbmd1YWdlQ29kZV0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVkTGFuZ3VhZ2UgPSBhdmFpbGFibGVMYW5ndWFnZUNvZGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIGxjID0+IGxjLmNvZGUgPT09IGxhbmd1YWdlQ29kZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCEhbWF0Y2hlZExhbmd1YWdlICYmICEhbWF0Y2hlZExhbmd1YWdlLmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG1hdGNoZWRMYW5ndWFnZS5jb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuZGVmYXVsdExhbmd1YWdlQ29kZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0RGVmYXVsdExhbmd1YWdlQ29kZShjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2VDb2RlID0gY29kZTtcbiAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVTdWJqZWN0Lm5leHQodGhpcy5nZXROYXZpZ2F0b3JMYW5ndWFnZUNvZGVPckRlZmF1bHQoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROYXZpZ2F0b3JMYW5ndWFnZUNvZGVPckRlZmF1bHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICEhbmF2aWdhdG9yICYmICEhbmF2aWdhdG9yLmxhbmd1YWdlXG4gICAgICAgICAgICA/IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdXG4gICAgICAgICAgICA6IHRoaXMuZGVmYXVsdExhbmd1YWdlQ29kZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1572,10 +1572,16 @@ class SdkDictionaryService {
|
|
|
1572
1572
|
constructor(httpClient, growlService) {
|
|
1573
1573
|
this.httpClient = httpClient;
|
|
1574
1574
|
this.growlService = growlService;
|
|
1575
|
-
this.
|
|
1576
|
-
this.
|
|
1577
|
-
|
|
1578
|
-
.
|
|
1575
|
+
this.defaultLanguageCode = 'fr';
|
|
1576
|
+
this.languageCodeSubject = new BehaviorSubject(this.getNavigatorLanguageCodeOrDefault());
|
|
1577
|
+
this.availableLanguagesObservable = this.httpClient
|
|
1578
|
+
.get(`${DICTIONARY_BASE_URL}/languages`)
|
|
1579
|
+
.pipe(catchError((e) => {
|
|
1580
|
+
console.error(e);
|
|
1581
|
+
growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les langues disponibles');
|
|
1582
|
+
return of([]);
|
|
1583
|
+
}), shareReplay(1));
|
|
1584
|
+
this.dictionaryObservable = this.getCurrentLanguageCode().pipe(switchMap(languageCode => {
|
|
1579
1585
|
const url = DICTIONARY_BASE_URL +
|
|
1580
1586
|
(!!languageCode ? `/${languageCode}` : '');
|
|
1581
1587
|
return this.httpClient.get(url).pipe(catchError((e) => {
|
|
@@ -1586,13 +1592,6 @@ class SdkDictionaryService {
|
|
|
1586
1592
|
this.dictionary = dictionary;
|
|
1587
1593
|
}));
|
|
1588
1594
|
}), shareReplay(1));
|
|
1589
|
-
this.availableLanguagesObservable = this.httpClient
|
|
1590
|
-
.get(`${DICTIONARY_BASE_URL}/languages`)
|
|
1591
|
-
.pipe(catchError((e) => {
|
|
1592
|
-
console.error(e);
|
|
1593
|
-
growlService.addWithType(GrowlType.DANGER, 'Impossible de récupérer les langues disponibles');
|
|
1594
|
-
return of([]);
|
|
1595
|
-
}), shareReplay(1));
|
|
1596
1595
|
}
|
|
1597
1596
|
getDictionary() {
|
|
1598
1597
|
return this.dictionaryObservable;
|
|
@@ -1615,7 +1614,25 @@ class SdkDictionaryService {
|
|
|
1615
1614
|
}
|
|
1616
1615
|
}
|
|
1617
1616
|
getCurrentLanguageCode() {
|
|
1618
|
-
return
|
|
1617
|
+
return combineLatest([
|
|
1618
|
+
this.availableLanguagesObservable,
|
|
1619
|
+
this.languageCodeSubject.asObservable()
|
|
1620
|
+
]).pipe(switchMap(([availableLanguageCodes, languageCode]) => {
|
|
1621
|
+
const matchedLanguage = availableLanguageCodes.find(lc => lc.code === languageCode);
|
|
1622
|
+
if (!!matchedLanguage && !!matchedLanguage.code) {
|
|
1623
|
+
return of(matchedLanguage.code);
|
|
1624
|
+
}
|
|
1625
|
+
return of(this.defaultLanguageCode);
|
|
1626
|
+
}), shareReplay(1));
|
|
1627
|
+
}
|
|
1628
|
+
setDefaultLanguageCode(code) {
|
|
1629
|
+
this.defaultLanguageCode = code;
|
|
1630
|
+
this.languageCodeSubject.next(this.getNavigatorLanguageCodeOrDefault());
|
|
1631
|
+
}
|
|
1632
|
+
getNavigatorLanguageCodeOrDefault() {
|
|
1633
|
+
return !!navigator && !!navigator.language
|
|
1634
|
+
? navigator.language.split('-')[0]
|
|
1635
|
+
: this.defaultLanguageCode;
|
|
1619
1636
|
}
|
|
1620
1637
|
}
|
|
1621
1638
|
SdkDictionaryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SdkDictionaryService, deps: [{ token: i1.HttpClient }, { token: GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -7236,17 +7253,17 @@ class FoehnInputEmailComponent extends FoehnInputStringComponent {
|
|
|
7236
7253
|
super();
|
|
7237
7254
|
this.ngZone = ngZone;
|
|
7238
7255
|
this.dictionaryService = dictionaryService;
|
|
7239
|
-
}
|
|
7240
|
-
ngOnInit() {
|
|
7241
|
-
super.ngOnInit();
|
|
7242
|
-
this.type = 'email';
|
|
7243
|
-
this.autocomplete = 'email';
|
|
7244
7256
|
this.helpModal = {
|
|
7245
7257
|
title: this.dictionaryService.getKeySync('foehn-input-email.modal.title'),
|
|
7246
7258
|
body: this.dictionaryService.getKeySync('foehn-input-email.modal.content'),
|
|
7247
7259
|
modalSize: 'modal-xs'
|
|
7248
7260
|
};
|
|
7249
7261
|
}
|
|
7262
|
+
ngOnInit() {
|
|
7263
|
+
super.ngOnInit();
|
|
7264
|
+
this.type = 'email';
|
|
7265
|
+
this.autocomplete = 'email';
|
|
7266
|
+
}
|
|
7250
7267
|
onModelChange(value) {
|
|
7251
7268
|
if (value === undefined || !!value) {
|
|
7252
7269
|
this.updateNgModel(value);
|
|
@@ -11138,7 +11155,7 @@ FoehnMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
11138
11155
|
useExisting: forwardRef(() => FoehnMultiUploadComponent),
|
|
11139
11156
|
multi: true
|
|
11140
11157
|
}
|
|
11141
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\"
|
|
11158
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"!reference\">\n <div\n *ngFor=\"let pending of pendingFiles; trackBy: trackByPending\"\n class=\"file file-pending\"\n >\n <span>{{ pending.name }}</span>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(pending.size) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-pending\"\n (click)=\"removeFile(pending)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: pending.name }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary pending-global-info\"\n *ngIf=\"showGlobalInfos(pendingFiles)\"\n [innerHTML]=\"getGlobalInfos(pendingFiles)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"], components: [{ type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { 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: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
|
|
11142
11159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnMultiUploadComponent, decorators: [{
|
|
11143
11160
|
type: Component,
|
|
11144
11161
|
args: [{ selector: 'foehn-multi-upload', providers: [
|
|
@@ -11147,7 +11164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
11147
11164
|
useExisting: forwardRef(() => FoehnMultiUploadComponent),
|
|
11148
11165
|
multi: true
|
|
11149
11166
|
}
|
|
11150
|
-
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\"
|
|
11167
|
+
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"reference\">\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"multiUploadService.getDownloadUrl(url, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"!reference\">\n <div\n *ngFor=\"let pending of pendingFiles; trackBy: trackByPending\"\n class=\"file file-pending\"\n >\n <span>{{ pending.name }}</span>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(pending.size) }}\n <abbr\n [title]=\"\n 'foehn-uploader.abbr-megaoctet-title' | fromDictionary\n \"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-pending\"\n (click)=\"removeFile(pending)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: pending.name }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary pending-global-info\"\n *ngIf=\"showGlobalInfos(pendingFiles)\"\n [innerHTML]=\"getGlobalInfos(pendingFiles)\"\n ></small>\n </ng-container>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"] }]
|
|
11151
11168
|
}], ctorParameters: function () { return [{ type: MultiUploadService }, { type: PendingUploadService }, { type: ApplicationInfoService }, { type: FoehnConfirmModalService }, { type: SdkDictionaryService }]; }, propDecorators: { url: [{
|
|
11152
11169
|
type: Input
|
|
11153
11170
|
}], reference: [{
|
|
@@ -11368,7 +11385,7 @@ FoehnBoMultiUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
|
|
|
11368
11385
|
useExisting: forwardRef(() => FoehnBoMultiUploadComponent),
|
|
11369
11386
|
multi: true
|
|
11370
11387
|
}
|
|
11371
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <a [href]=\"boMultiUploadService.getDownloadUrl(downloadUrl, document)\"
|
|
11388
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"boMultiUploadService.getDownloadUrl(downloadUrl, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"'foehn-uploader.abbr-megaoctet-title' | fromDictionary\"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"], components: [{ type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { 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: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
|
|
11372
11389
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnBoMultiUploadComponent, decorators: [{
|
|
11373
11390
|
type: Component,
|
|
11374
11391
|
args: [{ selector: 'foehn-bo-multi-upload', providers: [
|
|
@@ -11377,7 +11394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
11377
11394
|
useExisting: forwardRef(() => FoehnBoMultiUploadComponent),
|
|
11378
11395
|
multi: true
|
|
11379
11396
|
}
|
|
11380
|
-
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <a [href]=\"boMultiUploadService.getDownloadUrl(downloadUrl, document)\"
|
|
11397
|
+
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [class.drop-zone-highlight]=\"showDropZone\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n (drop)=\"onDrop($event)\"\n (dragenter)=\"onDragenter($event)\"\n (dragleave)=\"onDragleave($event)\"\n (dragover)=\"onDragover($event)\"\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\n [component]=\"this\"\n [shouldErrorsBeLive]=\"hasLiveUploadErrors()\"\n ></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 <!-- PRESTAKIT-309: Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div\n *ngFor=\"let document of model; trackBy: trackByDocument\"\n class=\"file file-uploaded\"\n >\n <!-- prettier-ignore -->\n <a [href]=\"boMultiUploadService.getDownloadUrl(downloadUrl, document)\">{{ document.filename }}</a>\n <span class=\"ml-1 mr-1\">\n ({{ toMegaOctets(document.fileSize) }}\n <abbr\n [title]=\"'foehn-uploader.abbr-megaoctet-title' | fromDictionary\"\n >\n {{ 'foehn-uploader.abbr-megaoctet' | fromDictionary }}\n </abbr>\n )\n </span>\n <button\n *ngIf=\"!readonly\"\n type=\"button\"\n class=\"btn icon-button delete-uploaded\"\n (click)=\"removeFile(document)\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-uploader.delete-icon-title'\n | fromDictionary: { docName: document.filename }\n \"\n ></foehn-icon-times>\n </button>\n </div>\n\n <small\n class=\"form-text text-secondary uploaded-global-info\"\n *ngIf=\"showGlobalInfos(model)\"\n [innerHTML]=\"getGlobalInfos(model)\"\n ></small>\n\n <ng-container *ngIf=\"canAddMoreFiles()\">\n <input\n class=\"form-control-file actual-input\"\n type=\"file\"\n [name]=\"name || label\"\n [multiple]=\"multiple\"\n [attr.accept]=\"\n overrideAcceptedExtensions\n ? overrideAcceptedExtensions\n : uploaderHelper.accept\n ? uploaderHelper.accept\n : null\n \"\n (change)=\"onFileChange($event)\"\n #inputFile\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'sr-only': !showUploadButton }\"\n [attr.id]=\"buildChildId()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n #entryComponent\n >\n {{ multiple ? chooseButtonLabelMultiple : chooseButtonLabel }}\n </button>\n\n <div\n *ngIf=\"dragAndDrop\"\n aria-hidden=\"true\"\n class=\"dropfile\"\n [class.dropfile-border-transparent]=\"showDropZone\"\n (click)=\"inputFile.click()\"\n >\n {{ multiple ? dropZoneLabelMultiple : dropZoneLabel }}\n </div>\n </ng-container>\n</div>\n", styles: [".dropfile{width:300px;border:3px dashed #bbb;text-align:center;margin-top:10px;cursor:pointer;padding:15px 3px}.dropfile-border-transparent{border-color:var(--white)}.actual-input{display:none}.file-list{margin-top:20px}.icon-button{border:0;background-color:transparent}.icon-button:hover{cursor:pointer}:host ::ng-deep .svg-inline--fa{color:#000!important}.drop-zone-highlight{outline:3px dashed #bbb}\n"] }]
|
|
11381
11398
|
}], ctorParameters: function () { return [{ type: BoMultiUploadService }, { type: ApplicationInfoService }, { type: FoehnConfirmModalService }, { type: SdkDictionaryService }]; }, propDecorators: { uploadUrl: [{
|
|
11382
11399
|
type: Input
|
|
11383
11400
|
}], deleteUrl: [{
|