@dsivd/prestations-ng 16.2.1-beta.1 → 16.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/UPGRADING_V16.md +8 -56
  4. package/dsivd-prestations-ng-v16.3.0-beta.1.tgz +0 -0
  5. package/esm2020/foehn-icons/foehn-icon-pencil.component.mjs +19 -0
  6. package/esm2020/foehn-icons/foehn-icons.module.mjs +10 -5
  7. package/esm2020/foehn-input/foehn-input-number.component.mjs +8 -3
  8. package/esm2020/foehn-input-date/foehn-input-date.component.mjs +1 -1
  9. package/esm2020/foehn-input-time/foehn-input-time.component.mjs +1 -1
  10. package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +3 -3
  11. package/esm2020/foehn-page/foehn-page.component.mjs +20 -14
  12. package/esm2020/foehn-page/foehn-page.module.mjs +5 -1
  13. package/esm2020/index.mjs +2 -1
  14. package/esm2020/sdk-dictionary/default-dictionary.mjs +11 -1
  15. package/esm2020/sdk-drafts/draft.model.mjs +2 -0
  16. package/esm2020/sdk-drafts/drafts-container.component.mjs +98 -0
  17. package/esm2020/sdk-drafts/drafts.module.mjs +47 -0
  18. package/esm2020/sdk-drafts/drafts.service.mjs +51 -0
  19. package/fesm2015/dsivd-prestations-ng.mjs +710 -502
  20. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
  21. package/fesm2020/dsivd-prestations-ng.mjs +707 -502
  22. package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
  23. package/foehn-icons/foehn-icon-pencil.component.d.ts +8 -0
  24. package/foehn-icons/foehn-icons.module.d.ts +3 -2
  25. package/foehn-input/foehn-input-number.component.d.ts +2 -1
  26. package/foehn-page/foehn-page.component.d.ts +3 -1
  27. package/foehn-page/foehn-page.module.d.ts +13 -12
  28. package/index.d.ts +1 -0
  29. package/package.json +1 -1
  30. package/sdk-drafts/draft.model.d.ts +5 -0
  31. package/sdk-drafts/drafts-container.component.d.ts +33 -0
  32. package/sdk-drafts/drafts.module.d.ts +15 -0
  33. package/sdk-drafts/drafts.service.d.ts +20 -0
  34. package/dsivd-prestations-ng-v16.2.1-beta.1.tgz +0 -0
@@ -9,8 +9,8 @@ import { HttpParams, HttpEventType, HttpResponse, HttpErrorResponse, HTTP_INTERC
9
9
  import * as i3 from '@angular/forms';
10
10
  import { NgModel, NgForm, FormsModule } from '@angular/forms';
11
11
  import * as i2 from '@angular/common';
12
- import { AsyncPipe, CommonModule, registerLocaleData, DatePipe } from '@angular/common';
13
- import { faInfoCircle, faTimes, faUser, faChevronUp, faExternalLinkAlt, faCheck, faCheckSquare, faChevronDown, faChevronLeft, faChevronRight, faCommentDots, faEdit, faLock, faMapMarkerAlt, faMinusCircle, faPlusCircle, faPlusSquare, faSearch, faTrashAlt, faUnlockAlt } from '@fortawesome/free-solid-svg-icons';
12
+ import { AsyncPipe, registerLocaleData, DatePipe, CommonModule } from '@angular/common';
13
+ import { faInfoCircle, faTimes, faExternalLinkAlt, faPencil, faChevronDown, faChevronUp, faChevronLeft, faChevronRight, faUser, faCheck, faCheckSquare, faCommentDots, faEdit, faLock, faMapMarkerAlt, faMinusCircle, faPlusCircle, faPlusSquare, faSearch, faTrashAlt, faUnlockAlt } from '@fortawesome/free-solid-svg-icons';
14
14
  import * as i1$2 from '@fortawesome/angular-fontawesome';
15
15
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
16
16
  import * as i2$1 from '@angular/cdk/a11y';
@@ -707,6 +707,16 @@ const GrowlType = {
707
707
  };
708
708
 
709
709
  const DEFAULT_DICTIONARY = {
710
+ 'draft-container.button.show-drafts': 'Demandes en cours de saisie : {draftsLength}',
711
+ 'draft-container.modal.title': 'Il existe déjà une ou plusieurs demandes en cours de saisie',
712
+ 'draft-container.modal.close.button': 'Fermer',
713
+ 'draft-container.modal.drafts-in-es.button': 'Toutes mes demandes en cours de saisie',
714
+ 'draft-container.list.reference.label': 'Référence',
715
+ 'draft-container.list.reference.link': 'Reprendre la demande {reference}',
716
+ 'draft-container.list.modificationDate.label': 'Date de modification',
717
+ 'draft-container.list.referenceInterne.label': 'Votre référence',
718
+ 'draft-container.list.details-in-es.label': 'Détails',
719
+ 'draft-container.list.details-in-es.link': "Consulter la demande {reference} dans l'espace sécurisé",
710
720
  'foehn-decision-electronique.title': 'Autorisation de notification des décisions par voie électronique',
711
721
  'foehn-decision-electronique.info': 'Votre demande est sur le point d’être envoyée. ' +
712
722
  'Conformément à l’art. 44a LPA-VD, l’autorité peut notifier ses décisions par voie électronique ' +
@@ -4314,6 +4324,552 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
4314
4324
  }]
4315
4325
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: ApplicationInfoService }, { type: FoehnPageService }]; } });
4316
4326
 
4327
+ class DraftsService {
4328
+ constructor(http, sessionInfo, gesdemHandlerService, gesdemEventService) {
4329
+ this.http = http;
4330
+ this.sessionInfo = sessionInfo;
4331
+ this.gesdemHandlerService = gesdemHandlerService;
4332
+ this.gesdemEventService = gesdemEventService;
4333
+ this.draftsUrl = new BehaviorSubject('');
4334
+ const hasReferenceObservable = merge(
4335
+ // To have an initial value. Can be null if there is no form.
4336
+ of(this.gesdemHandlerService.lastResponse),
4337
+ // Read the form from GesDem
4338
+ this.gesdemEventService.formInitializationObservable()).pipe(map(form => {
4339
+ var _a, _b;
4340
+ return !!form &&
4341
+ !!((_b = (_a = this.gesdemHandlerService.lastResponse) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.reference);
4342
+ }));
4343
+ this.allDrafts = combineLatest([
4344
+ this.draftsUrl,
4345
+ hasReferenceObservable,
4346
+ this.sessionInfo.data
4347
+ ]).pipe(switchMap(([url, hasReference, sessionInfoData]) => {
4348
+ if (!url || hasReference || !(sessionInfoData === null || sessionInfoData === void 0 ? void 0 : sessionInfoData.context)) {
4349
+ return of(null);
4350
+ }
4351
+ return this.http.get(url).pipe(catchError((e) => {
4352
+ console.error('Unable to get dratfs, returning an empty array', e);
4353
+ return of([]);
4354
+ }));
4355
+ }));
4356
+ }
4357
+ setDraftsUrl(draftsUrl) {
4358
+ this.draftsUrl.next(draftsUrl);
4359
+ }
4360
+ getAllDrafts() {
4361
+ return this.allDrafts;
4362
+ }
4363
+ }
4364
+ DraftsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsService, deps: [{ token: i1.HttpClient }, { token: SessionInfo }, { token: GesdemHandlerService }, { token: GesdemEventService }], target: i0.ɵɵFactoryTarget.Injectable });
4365
+ DraftsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsService, providedIn: 'root' });
4366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsService, decorators: [{
4367
+ type: Injectable,
4368
+ args: [{
4369
+ providedIn: 'root'
4370
+ }]
4371
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: SessionInfo }, { type: GesdemHandlerService }, { type: GesdemEventService }]; } });
4372
+
4373
+ dayjs.extend(isToday);
4374
+ class DateHelper {
4375
+ constructor() {
4376
+ this.locale = 'fr-CH';
4377
+ this.dateFormat = 'dd.MM.yyyy';
4378
+ this.dateTimeFormat = 'dd.MM.yyyy HH:mm:ss';
4379
+ registerLocaleData(localeFr, 'fr-CH');
4380
+ this.datePipe = new DatePipe(this.locale);
4381
+ }
4382
+ static isValidArray(value) {
4383
+ return (!!value &&
4384
+ value.length > 2 &&
4385
+ !!value[0] &&
4386
+ !!value[1] &&
4387
+ !!value[2]);
4388
+ }
4389
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4390
+ mapToDateFromNumberArray(object, ...fieldsNames) {
4391
+ if (object) {
4392
+ fieldsNames.forEach(fieldPath => {
4393
+ object[fieldPath] = this.toDateFromNumberArray(object[fieldPath]);
4394
+ });
4395
+ }
4396
+ return object;
4397
+ }
4398
+ mapAllToDateFromNumberArray(
4399
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4400
+ objects, ...fieldsNames) {
4401
+ if (objects) {
4402
+ objects.forEach(object => {
4403
+ this.mapToDateFromNumberArray(object, ...fieldsNames);
4404
+ });
4405
+ }
4406
+ return objects;
4407
+ }
4408
+ toDateFromNumberArray(dateInArray) {
4409
+ if (dateInArray) {
4410
+ if (dateInArray.length === 3) {
4411
+ return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2]);
4412
+ }
4413
+ else if (dateInArray.length === 5) {
4414
+ // because when time is 00:00:00 the array does not contain the seconds.
4415
+ return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4]);
4416
+ }
4417
+ else if (dateInArray.length >= 6) {
4418
+ return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4], dateInArray[5]);
4419
+ }
4420
+ throw new Error(`Date in number[] format has wrong number of numbers : ${dateInArray.length}`);
4421
+ }
4422
+ return null;
4423
+ }
4424
+ arrayToDisplayDateDMY(d, showTime) {
4425
+ if (showTime) {
4426
+ return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateTimeFormat);
4427
+ }
4428
+ else {
4429
+ return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateFormat);
4430
+ }
4431
+ }
4432
+ toDayjsFromNumberArray(value) {
4433
+ if (DateHelper.isValidArray(value)) {
4434
+ const dateAsString = `${value[0]}-${value[1]}-${value[2]}`;
4435
+ return dayjs(dateAsString);
4436
+ }
4437
+ return null;
4438
+ }
4439
+ isValid(value) {
4440
+ // date is incomplete
4441
+ if (!DateHelper.isValidArray(value)) {
4442
+ return false;
4443
+ }
4444
+ // date cannot be parsed
4445
+ if (!this.toDayjsFromNumberArray(value)) {
4446
+ return false;
4447
+ }
4448
+ // date has not been shifted (i.e. 30.02.2021 -> 01.03.2021)
4449
+ const asString = `${value[0]}-${value[1]}-${value[2]}`;
4450
+ const asStringFromDayJS = this.toDayjsFromNumberArray(value).format('YYYY-M-D');
4451
+ return asString === asStringFromDayJS;
4452
+ }
4453
+ isToday(value) {
4454
+ return (DateHelper.isValidArray(value) &&
4455
+ this.toDayjsFromNumberArray(value).isToday());
4456
+ }
4457
+ leftPad(num) {
4458
+ if (num === undefined || num === null) {
4459
+ return '';
4460
+ }
4461
+ if (num.length === 1) {
4462
+ return `0${num}`;
4463
+ }
4464
+ return num;
4465
+ }
4466
+ }
4467
+ DateHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4468
+ DateHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, providedIn: 'root' });
4469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, decorators: [{
4470
+ type: Injectable,
4471
+ args: [{
4472
+ providedIn: 'root'
4473
+ }]
4474
+ }], ctorParameters: function () { return []; } });
4475
+
4476
+ class FoehnIconExternalLinkAltComponent extends AbstractIconComponent {
4477
+ constructor() {
4478
+ super(...arguments);
4479
+ this.iconName = faExternalLinkAlt;
4480
+ this.defaultTitle = 'Lien externe (nouvel onglet)';
4481
+ }
4482
+ }
4483
+ FoehnIconExternalLinkAltComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4484
+ FoehnIconExternalLinkAltComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
4485
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, decorators: [{
4486
+ type: Component,
4487
+ args: [{ selector: 'foehn-icon-external-link-alt', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
4488
+ }] });
4489
+
4490
+ class FoehnIconPencilComponent extends AbstractIconComponent {
4491
+ constructor() {
4492
+ super(...arguments);
4493
+ this.iconName = faPencil;
4494
+ this.defaultTitle = 'Edition';
4495
+ }
4496
+ }
4497
+ FoehnIconPencilComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconPencilComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4498
+ FoehnIconPencilComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconPencilComponent, selector: "foehn-icon-pencil", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
4499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconPencilComponent, decorators: [{
4500
+ type: Component,
4501
+ args: [{ selector: 'foehn-icon-pencil', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
4502
+ }] });
4503
+
4504
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4505
+ class ObjectHelper {
4506
+ /**
4507
+ * Angular uses object identity to select option. It's possible for the identities of items to change while the data does not.
4508
+ * This can happen, for example, if the items are produced from an RPC to the server, and that RPC is re-run.
4509
+ * Even if the data hasn't changed, the second response will produce objects with different identities.
4510
+ * (see: https://angular.io/api/forms/SelectControlValueAccessor#customizing-option-selection)
4511
+ *
4512
+ * @param value1 as first value to compare to
4513
+ * @param value2 as value to be compared to
4514
+ * @returns boolean
4515
+ */
4516
+ static isEqual(value1, value2) {
4517
+ if (value1 &&
4518
+ value2 &&
4519
+ typeof value1 === 'object' &&
4520
+ typeof value2 === 'object') {
4521
+ const matches = (obj, source) => Object.keys(source).length === Object.keys(obj).length &&
4522
+ Object.keys(source).every(key => {
4523
+ if (obj.hasOwnProperty(key)) {
4524
+ if (obj[key] &&
4525
+ source[key] &&
4526
+ typeof obj[key] === 'object' &&
4527
+ typeof source[key] === 'object') {
4528
+ return matches(obj[key], source[key]);
4529
+ }
4530
+ return obj[key] === source[key];
4531
+ }
4532
+ return false;
4533
+ });
4534
+ return matches(value1, value2);
4535
+ }
4536
+ return value1 === value2;
4537
+ }
4538
+ static hasAnyValue(value) {
4539
+ // do not simplify with an inline variable result due to compilation error
4540
+ const result = Object.keys(value).some(key => {
4541
+ if (value[key] && typeof value[key] === 'object') {
4542
+ return ObjectHelper.hasAnyValue(value[key]);
4543
+ }
4544
+ return !!value[key];
4545
+ });
4546
+ return result;
4547
+ }
4548
+ static isEmpty(value) {
4549
+ return !ObjectHelper.hasAnyValue(value);
4550
+ }
4551
+ /**
4552
+ * Deep copy is a true copy for nested objects
4553
+ * Often, shallow copy is good enough and you will not need a deep copy.
4554
+ * A shallow copy means the first level is copied, deeper levels are referenced.
4555
+ *
4556
+ * Examples of shallow copy :
4557
+ * const shallowClone = { ...nestedObject };
4558
+ * const shallowClone = Object.assign({}, nestedObject);
4559
+ *
4560
+ * @param obj is the object to copied
4561
+ * @returns obj
4562
+ */
4563
+ static deepCopy(obj) {
4564
+ if (!obj || typeof obj !== 'object') {
4565
+ return obj;
4566
+ }
4567
+ let copy;
4568
+ if (obj instanceof Date) {
4569
+ copy = new Date();
4570
+ copy.setTime(obj.getTime());
4571
+ return copy;
4572
+ }
4573
+ if (obj instanceof Array) {
4574
+ copy = [];
4575
+ for (let i = 0, len = obj.length; i < len; i++) {
4576
+ copy[i] = ObjectHelper.deepCopy(obj[i]);
4577
+ }
4578
+ return copy;
4579
+ }
4580
+ if (obj instanceof Object) {
4581
+ copy = {};
4582
+ for (const attr in obj) {
4583
+ if (obj.hasOwnProperty(attr)) {
4584
+ copy[attr] = ObjectHelper.deepCopy(obj[attr]);
4585
+ }
4586
+ }
4587
+ return copy;
4588
+ }
4589
+ throw new Error('Unable to copy obj! Type not supported.');
4590
+ }
4591
+ }
4592
+
4593
+ class FoehnIconChevronDownComponent extends AbstractIconComponent {
4594
+ constructor() {
4595
+ super(...arguments);
4596
+ this.iconName = faChevronDown;
4597
+ this.defaultTitle = 'Flèche vers le bas';
4598
+ }
4599
+ }
4600
+ FoehnIconChevronDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4601
+ FoehnIconChevronDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
4602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, decorators: [{
4603
+ type: Component,
4604
+ args: [{ selector: 'foehn-icon-chevron-down', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
4605
+ }] });
4606
+
4607
+ class FoehnIconChevronUpComponent extends AbstractIconComponent {
4608
+ constructor() {
4609
+ super(...arguments);
4610
+ this.iconName = faChevronUp;
4611
+ this.defaultTitle = 'Flèche vers le haut';
4612
+ }
4613
+ }
4614
+ FoehnIconChevronUpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4615
+ FoehnIconChevronUpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
4616
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, decorators: [{
4617
+ type: Component,
4618
+ args: [{ selector: 'foehn-icon-chevron-up', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
4619
+ }] });
4620
+
4621
+ class FoehnIconChevronLeftComponent extends AbstractIconComponent {
4622
+ constructor() {
4623
+ super(...arguments);
4624
+ this.iconName = faChevronLeft;
4625
+ this.defaultTitle = 'Flèche vers la gauche';
4626
+ }
4627
+ }
4628
+ FoehnIconChevronLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4629
+ FoehnIconChevronLeftComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
4630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, decorators: [{
4631
+ type: Component,
4632
+ args: [{ selector: 'foehn-icon-chevron-left', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
4633
+ }] });
4634
+
4635
+ class FoehnIconChevronRightComponent extends AbstractIconComponent {
4636
+ constructor() {
4637
+ super(...arguments);
4638
+ this.iconName = faChevronRight;
4639
+ this.defaultTitle = 'Flèche vers la droite';
4640
+ }
4641
+ }
4642
+ FoehnIconChevronRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4643
+ FoehnIconChevronRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
4644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, decorators: [{
4645
+ type: Component,
4646
+ args: [{ selector: 'foehn-icon-chevron-right', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
4647
+ }] });
4648
+
4649
+ const hasInputChanged$2 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
4650
+ class FoehnTableComponent {
4651
+ constructor() {
4652
+ this.itemsPerPage = 10;
4653
+ this.id = 'foehn-table';
4654
+ this.previousLabel = 'Précédent';
4655
+ this.nextLabel = 'Suivant';
4656
+ this.pageChange = new EventEmitter();
4657
+ this.sortChange = new EventEmitter();
4658
+ this.currentPage = 1;
4659
+ this.filteredList = [];
4660
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4661
+ this.trackByFn = (index, item) => index;
4662
+ }
4663
+ set list(list) {
4664
+ this._list = list;
4665
+ }
4666
+ ngOnChanges(changes) {
4667
+ const itemsPerPageChange = changes.itemsPerPage;
4668
+ const listChange = changes.list;
4669
+ const fixedPageCountChange = changes.fixedPageCount;
4670
+ const sortInputChange = changes.sort;
4671
+ if (!hasInputChanged$2(itemsPerPageChange) &&
4672
+ !hasInputChanged$2(listChange) &&
4673
+ !hasInputChanged$2(fixedPageCountChange) &&
4674
+ !hasInputChanged$2(sortInputChange)) {
4675
+ return;
4676
+ }
4677
+ this.buildFilteredList();
4678
+ }
4679
+ previousPage() {
4680
+ this.currentPage = this.currentPage - 1;
4681
+ this.buildFilteredList();
4682
+ this.pageChange.next({
4683
+ previousPage: this.currentPage + 1,
4684
+ currentPage: this.currentPage,
4685
+ pageCount: this.pagesCount()
4686
+ });
4687
+ }
4688
+ hasPreviousPage() {
4689
+ return this.currentPage > 1;
4690
+ }
4691
+ nextPage() {
4692
+ this.currentPage = this.currentPage + 1;
4693
+ this.buildFilteredList();
4694
+ this.pageChange.next({
4695
+ previousPage: this.currentPage - 1,
4696
+ currentPage: this.currentPage,
4697
+ pageCount: this.pagesCount()
4698
+ });
4699
+ }
4700
+ hasNextPage() {
4701
+ return this.currentPage < this.pagesCount();
4702
+ }
4703
+ showPage(page, emitPageChangeEvent = false) {
4704
+ if (this.currentPage === page) {
4705
+ return;
4706
+ }
4707
+ const previousPage = this.currentPage;
4708
+ this.currentPage = page;
4709
+ this.buildFilteredList();
4710
+ if (emitPageChangeEvent) {
4711
+ this.pageChange.next({
4712
+ previousPage,
4713
+ currentPage: this.currentPage,
4714
+ pageCount: this.pagesCount()
4715
+ });
4716
+ }
4717
+ }
4718
+ pagesCount() {
4719
+ if (!!this.fixedPageCount) {
4720
+ return this.fixedPageCount;
4721
+ }
4722
+ return this._list
4723
+ ? Math.ceil(this._list.length / this.itemsPerPage)
4724
+ : 0;
4725
+ }
4726
+ triggerSort(sortAttribute) {
4727
+ let sortDirection = 'DESC';
4728
+ if (this.sort.sortAttribute === sortAttribute) {
4729
+ sortDirection = this.sort.sortDirection === 'DESC' ? 'ASC' : 'DESC';
4730
+ }
4731
+ this.sortChange.next({
4732
+ sortDirection,
4733
+ sortAttribute
4734
+ });
4735
+ }
4736
+ buildFilteredList() {
4737
+ if (!this._list) {
4738
+ this.filteredList = [];
4739
+ return;
4740
+ }
4741
+ if (!!this.fixedPageCount) {
4742
+ this.filteredList = this._list;
4743
+ return;
4744
+ }
4745
+ const currentPageExists = (this.currentPage - 1) * this.itemsPerPage <= this._list.length;
4746
+ if (!currentPageExists) {
4747
+ this.currentPage = 1;
4748
+ }
4749
+ const start = (this.currentPage - 1) * this.itemsPerPage;
4750
+ this.filteredList = this._list.slice(start, start + this.itemsPerPage);
4751
+ }
4752
+ }
4753
+ FoehnTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4754
+ FoehnTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnTableComponent, selector: "foehn-table", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", totalElements: "totalElements", fixedPageCount: "fixedPageCount", columnsConfiguration: "columnsConfiguration", sort: "sort", list: "list", trackByFn: "trackByFn" }, outputs: { pageChange: "pageChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h4 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'foehn-table.totalElements.1' | fromDictionary }}\n </h4>\n <h4 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'foehn-table.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h4>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container\n *ngIf=\"!filteredList.length || !col.sortAttribute\"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container\n *ngIf=\"!!filteredList.length && !!col.sortAttribute\"\n >\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.iconGetter\">\n <span\n *ngIf=\"col.iconGetter(item) as iconDef\"\n class=\"cell-vertical-align-middle mr-2\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [icon]=\"iconDef.icon\"\n [title]=\"iconDef.label\"\n ></fa-icon>\n <span class=\"sr-only\">{{ iconDef.label }}</span>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.template\">\n <ng-template\n [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{\n item: item,\n index: index\n }\"\n ></ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!col.template\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!!columnsConfiguration && !filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">\n {{ 'foehn-table.totalElements.0' | fromDictionary }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}.cell-vertical-align-middle{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { kind: "component", type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
4755
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, decorators: [{
4756
+ type: Component,
4757
+ args: [{ selector: 'foehn-table', template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h4 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'foehn-table.totalElements.1' | fromDictionary }}\n </h4>\n <h4 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'foehn-table.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h4>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container\n *ngIf=\"!filteredList.length || !col.sortAttribute\"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container\n *ngIf=\"!!filteredList.length && !!col.sortAttribute\"\n >\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.iconGetter\">\n <span\n *ngIf=\"col.iconGetter(item) as iconDef\"\n class=\"cell-vertical-align-middle mr-2\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [icon]=\"iconDef.icon\"\n [title]=\"iconDef.label\"\n ></fa-icon>\n <span class=\"sr-only\">{{ iconDef.label }}</span>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.template\">\n <ng-template\n [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{\n item: item,\n index: index\n }\"\n ></ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!col.template\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!!columnsConfiguration && !filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">\n {{ 'foehn-table.totalElements.0' | fromDictionary }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}.cell-vertical-align-middle{vertical-align:middle}\n"] }]
4758
+ }], propDecorators: { itemsPerPage: [{
4759
+ type: Input
4760
+ }], id: [{
4761
+ type: Input
4762
+ }], previousLabel: [{
4763
+ type: Input
4764
+ }], nextLabel: [{
4765
+ type: Input
4766
+ }], totalElements: [{
4767
+ type: Input
4768
+ }], fixedPageCount: [{
4769
+ type: Input
4770
+ }],
4771
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4772
+ columnsConfiguration: [{
4773
+ type: Input
4774
+ }], pageChange: [{
4775
+ type: Output
4776
+ }], sort: [{
4777
+ type: Input
4778
+ }], sortChange: [{
4779
+ type: Output
4780
+ }], list: [{
4781
+ type: Input
4782
+ }],
4783
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4784
+ trackByFn: [{
4785
+ type: Input
4786
+ }] } });
4787
+
4788
+ const DEFAULT_DRAFTS_URL = 'api/{etapeId}/drafts';
4789
+ class DraftsContainerComponent {
4790
+ constructor(draftsService, dateHelper, router, applicationInfoService) {
4791
+ this.draftsService = draftsService;
4792
+ this.dateHelper = dateHelper;
4793
+ this.router = router;
4794
+ this.applicationInfoService = applicationInfoService;
4795
+ this.draftsHidden = false;
4796
+ this.draftsToDisplay = this.draftsService.getAllDrafts();
4797
+ this.espaceSecuriseUrl = this.applicationInfoService.getSafeEspacesSecuriseUrl();
4798
+ this.etapeTitle = this.applicationInfoService.currentEtapeInfo.pipe(map(etape => etape.titreEtape));
4799
+ }
4800
+ ngAfterViewInit() {
4801
+ this.columnsConfiguration = [
4802
+ {
4803
+ id: 'reference',
4804
+ columnLabelKey: 'draft-container.list.reference.label',
4805
+ template: this.referenceLink
4806
+ },
4807
+ {
4808
+ id: 'modificationDate',
4809
+ columnLabelKey: 'draft-container.list.modificationDate.label',
4810
+ valueGetter: item => this.dateHelper.arrayToDisplayDateDMY(item.modificationDate, true)
4811
+ },
4812
+ {
4813
+ id: 'referenceInterne',
4814
+ columnLabelKey: 'draft-container.list.referenceInterne.label',
4815
+ valueGetter: item => item.referenceInterne || '-'
4816
+ },
4817
+ {
4818
+ id: 'linkToES',
4819
+ columnLabelKey: 'draft-container.list.details-in-es.label',
4820
+ template: this.detailLink
4821
+ }
4822
+ ];
4823
+ }
4824
+ showDrafts() {
4825
+ this.draftsHidden = false;
4826
+ }
4827
+ hideDrafts() {
4828
+ this.draftsHidden = true;
4829
+ }
4830
+ ngOnChanges(changes) {
4831
+ const etapeIdChange = changes.etapeId;
4832
+ if (etapeIdChange && etapeIdChange.currentValue) {
4833
+ // Change the URL of the drafts when the etapeId is set.
4834
+ this.draftsService.setDraftsUrl(this.formatUrl(etapeIdChange.currentValue));
4835
+ return;
4836
+ }
4837
+ // We want to support the use-case wheter the etapeId isn't defined.
4838
+ const draftsUrl = changes.draftsUrl;
4839
+ if (draftsUrl && draftsUrl.currentValue) {
4840
+ // Change the URL of the drafts when the etapeId is set.
4841
+ this.draftsService.setDraftsUrl(draftsUrl.currentValue);
4842
+ return;
4843
+ }
4844
+ }
4845
+ resumeDraft(draft) {
4846
+ this.router.navigate([`/${draft.reference}`]);
4847
+ this.draftsHidden = true;
4848
+ }
4849
+ formatUrl(etapeId) {
4850
+ const url = this.draftsUrl || DEFAULT_DRAFTS_URL;
4851
+ return !!etapeId
4852
+ ? url.replace('{etapeId}', etapeId)
4853
+ : url.replace('{etapeId}/', '');
4854
+ }
4855
+ }
4856
+ DraftsContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsContainerComponent, deps: [{ token: DraftsService }, { token: DateHelper }, { token: i1$1.Router }, { token: ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Component });
4857
+ DraftsContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DraftsContainerComponent, selector: "sdk-drafts-container", inputs: { etapeId: "etapeId", draftsUrl: "draftsUrl" }, viewQueries: [{ propertyName: "referenceLink", first: true, predicate: ["referenceLink"], descendants: true }, { propertyName: "detailLink", first: true, predicate: ["detailLink"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"draftsToDisplay | async as drafts\">\n <div class=\"d-flex flex-column container mt-2\" *ngIf=\"!!drafts.length\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n class=\"btn btn-link pr-0 pl-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil></foehn-icon-pencil>\n <span class=\"mr-2\"></span>\n <span\n class=\"pl-0 mr-0\"\n [innerHTML]=\"\n 'draft-container.button.show-drafts'\n | fromDictionary\n : { draftsLength: drafts.length.toString() }\n \"\n ></span>\n </button>\n </div>\n\n <foehn-modal\n [modalHeaderText]=\"'draft-container.modal.title' | fromDictionary\"\n [isModalVisible]=\"!draftsHidden\"\n (isModalVisibleChange)=\"draftsHidden = !$event\"\n [modalTriggerHtmlElement]=\"showDraftsButton\"\n modalSize=\"modal-lg\"\n >\n <h3 class=\"mt-0 h4\" [innerHTML]=\"etapeTitle | async\"></h3>\n\n <foehn-table\n id=\"draftTable\"\n [list]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\n ></foehn-table>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-flex\">\n <a\n id=\"allDraftsButton\"\n class=\"btn btn-primary\"\n [href]=\"\n (espaceSecuriseUrl | async) +\n 'demandes/search/MINE/INITIAL'\n \"\n target=\"_blank\"\n >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n <foehn-icon-external-link-alt\n [title]=\"\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n \"\n ></foehn-icon-external-link-alt>\n </a>\n\n <button\n id=\"hideDraftsButton\"\n class=\"btn btn-secondary ml-auto\"\n (click)=\"draftsHidden = true\"\n >\n {{\n 'draft-container.modal.close.button'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </foehn-modal>\n </div>\n</ng-container>\n\n<ng-template #referenceLink let-draft=\"item\" let-index=\"index\">\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); resumeDraft(draft)\"\n [title]=\"\n 'draft-container.list.reference.link'\n | fromDictionary: { reference: draft.reference }\n \"\n >\n {{ draft.reference }}\n </a>\n</ng-template>\n\n<ng-template #detailLink let-draft=\"item\" let-index=\"index\">\n <a\n [href]=\"(espaceSecuriseUrl | async) + 'demandes/' + draft.reference\"\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n target=\"_blank\"\n >\n <foehn-icon-external-link-alt\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n ></foehn-icon-external-link-alt>\n </a>\n</ng-template>\n", styles: [":host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:var(--vd-primary-dark)!important}:host ::ng-deep a#allDraftsButton>foehn-icon-external-link-alt .svg-inline--fa{color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt" }, { kind: "component", type: FoehnIconPencilComponent, selector: "foehn-icon-pencil" }, { kind: "component", type: FoehnTableComponent, selector: "foehn-table", inputs: ["itemsPerPage", "id", "previousLabel", "nextLabel", "totalElements", "fixedPageCount", "columnsConfiguration", "sort", "list", "trackByFn"], outputs: ["pageChange", "sortChange"] }, { kind: "component", type: FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
4858
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsContainerComponent, decorators: [{
4859
+ type: Component,
4860
+ args: [{ selector: 'sdk-drafts-container', template: "<ng-container *ngIf=\"draftsToDisplay | async as drafts\">\n <div class=\"d-flex flex-column container mt-2\" *ngIf=\"!!drafts.length\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n class=\"btn btn-link pr-0 pl-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil></foehn-icon-pencil>\n <span class=\"mr-2\"></span>\n <span\n class=\"pl-0 mr-0\"\n [innerHTML]=\"\n 'draft-container.button.show-drafts'\n | fromDictionary\n : { draftsLength: drafts.length.toString() }\n \"\n ></span>\n </button>\n </div>\n\n <foehn-modal\n [modalHeaderText]=\"'draft-container.modal.title' | fromDictionary\"\n [isModalVisible]=\"!draftsHidden\"\n (isModalVisibleChange)=\"draftsHidden = !$event\"\n [modalTriggerHtmlElement]=\"showDraftsButton\"\n modalSize=\"modal-lg\"\n >\n <h3 class=\"mt-0 h4\" [innerHTML]=\"etapeTitle | async\"></h3>\n\n <foehn-table\n id=\"draftTable\"\n [list]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\n ></foehn-table>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-flex\">\n <a\n id=\"allDraftsButton\"\n class=\"btn btn-primary\"\n [href]=\"\n (espaceSecuriseUrl | async) +\n 'demandes/search/MINE/INITIAL'\n \"\n target=\"_blank\"\n >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n <foehn-icon-external-link-alt\n [title]=\"\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n \"\n ></foehn-icon-external-link-alt>\n </a>\n\n <button\n id=\"hideDraftsButton\"\n class=\"btn btn-secondary ml-auto\"\n (click)=\"draftsHidden = true\"\n >\n {{\n 'draft-container.modal.close.button'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </foehn-modal>\n </div>\n</ng-container>\n\n<ng-template #referenceLink let-draft=\"item\" let-index=\"index\">\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); resumeDraft(draft)\"\n [title]=\"\n 'draft-container.list.reference.link'\n | fromDictionary: { reference: draft.reference }\n \"\n >\n {{ draft.reference }}\n </a>\n</ng-template>\n\n<ng-template #detailLink let-draft=\"item\" let-index=\"index\">\n <a\n [href]=\"(espaceSecuriseUrl | async) + 'demandes/' + draft.reference\"\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n target=\"_blank\"\n >\n <foehn-icon-external-link-alt\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n ></foehn-icon-external-link-alt>\n </a>\n</ng-template>\n", styles: [":host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:var(--vd-primary-dark)!important}:host ::ng-deep a#allDraftsButton>foehn-icon-external-link-alt .svg-inline--fa{color:#fff!important}\n"] }]
4861
+ }], ctorParameters: function () { return [{ type: DraftsService }, { type: DateHelper }, { type: i1$1.Router }, { type: ApplicationInfoService }]; }, propDecorators: { referenceLink: [{
4862
+ type: ViewChild,
4863
+ args: ['referenceLink']
4864
+ }], detailLink: [{
4865
+ type: ViewChild,
4866
+ args: ['detailLink']
4867
+ }], etapeId: [{
4868
+ type: Input
4869
+ }], draftsUrl: [{
4870
+ type: Input
4871
+ }] } });
4872
+
4317
4873
  class FoehnConfirmModalService {
4318
4874
  constructor() {
4319
4875
  this.content = new BehaviorSubject(null);
@@ -4448,137 +5004,48 @@ class FoehnGrowlComponent {
4448
5004
  this._messages.push(message);
4449
5005
  setTimeout(() => this.hideMessage(message), !!message.timeToDisplayInSeconds
4450
5006
  ? message.timeToDisplayInSeconds * 1000
4451
- : DEFAULT_DISPLAY_TIME);
4452
- }
4453
- });
4454
- }
4455
- get messages() {
4456
- return this._messages;
4457
- }
4458
- ngOnDestroy() {
4459
- this.addMessageObserver.unsubscribe();
4460
- }
4461
- hideMessage(message) {
4462
- message.isVisible = false;
4463
- }
4464
- removeMessage(message) {
4465
- if (this.messages.includes(message)) {
4466
- this.messages.splice(this.messages.indexOf(message), 1);
4467
- }
4468
- }
4469
- cssTransitionEnd(message) {
4470
- this.removeMessage(message);
4471
- }
4472
- }
4473
- FoehnGrowlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, deps: [{ token: GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Component });
4474
- FoehnGrowlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnGrowlComponent, selector: "foehn-growl", ngImport: i0, template: "<div id=\"foehn_growlContainer\" class=\"container fixed-top\">\n <div\n class=\"alert\"\n role=\"alert\"\n *ngFor=\"let message of messages\"\n [ngClass]=\"message.type\"\n [class.hidden]=\"!message.isVisible\"\n (transitionend)=\"cssTransitionEnd(message)\"\n [innerHTML]=\"message.content\"\n ></div>\n</div>\n", styles: [".hidden{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s linear}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, decorators: [{
4476
- type: Component,
4477
- args: [{ selector: 'foehn-growl', template: "<div id=\"foehn_growlContainer\" class=\"container fixed-top\">\n <div\n class=\"alert\"\n role=\"alert\"\n *ngFor=\"let message of messages\"\n [ngClass]=\"message.type\"\n [class.hidden]=\"!message.isVisible\"\n (transitionend)=\"cssTransitionEnd(message)\"\n [innerHTML]=\"message.content\"\n ></div>\n</div>\n", styles: [".hidden{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s linear}\n"] }]
4478
- }], ctorParameters: function () { return [{ type: GrowlBrokerService }]; } });
4479
-
4480
- class FoehnIconUserComponent extends AbstractIconComponent {
4481
- constructor() {
4482
- super(...arguments);
4483
- this.iconName = faUser;
4484
- this.defaultTitle = 'Utilisateur';
4485
- }
4486
- }
4487
- FoehnIconUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4488
- FoehnIconUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconUserComponent, selector: "foehn-icon-user", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
4489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, decorators: [{
4490
- type: Component,
4491
- args: [{ selector: 'foehn-icon-user', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
4492
- }] });
4493
-
4494
- /* eslint-disable @typescript-eslint/no-explicit-any */
4495
- class ObjectHelper {
4496
- /**
4497
- * Angular uses object identity to select option. It's possible for the identities of items to change while the data does not.
4498
- * This can happen, for example, if the items are produced from an RPC to the server, and that RPC is re-run.
4499
- * Even if the data hasn't changed, the second response will produce objects with different identities.
4500
- * (see: https://angular.io/api/forms/SelectControlValueAccessor#customizing-option-selection)
4501
- *
4502
- * @param value1 as first value to compare to
4503
- * @param value2 as value to be compared to
4504
- * @returns boolean
4505
- */
4506
- static isEqual(value1, value2) {
4507
- if (value1 &&
4508
- value2 &&
4509
- typeof value1 === 'object' &&
4510
- typeof value2 === 'object') {
4511
- const matches = (obj, source) => Object.keys(source).length === Object.keys(obj).length &&
4512
- Object.keys(source).every(key => {
4513
- if (obj.hasOwnProperty(key)) {
4514
- if (obj[key] &&
4515
- source[key] &&
4516
- typeof obj[key] === 'object' &&
4517
- typeof source[key] === 'object') {
4518
- return matches(obj[key], source[key]);
4519
- }
4520
- return obj[key] === source[key];
4521
- }
4522
- return false;
4523
- });
4524
- return matches(value1, value2);
4525
- }
4526
- return value1 === value2;
4527
- }
4528
- static hasAnyValue(value) {
4529
- // do not simplify with an inline variable result due to compilation error
4530
- const result = Object.keys(value).some(key => {
4531
- if (value[key] && typeof value[key] === 'object') {
4532
- return ObjectHelper.hasAnyValue(value[key]);
5007
+ : DEFAULT_DISPLAY_TIME);
4533
5008
  }
4534
- return !!value[key];
4535
5009
  });
4536
- return result;
4537
5010
  }
4538
- static isEmpty(value) {
4539
- return !ObjectHelper.hasAnyValue(value);
5011
+ get messages() {
5012
+ return this._messages;
4540
5013
  }
4541
- /**
4542
- * Deep copy is a true copy for nested objects
4543
- * Often, shallow copy is good enough and you will not need a deep copy.
4544
- * A shallow copy means the first level is copied, deeper levels are referenced.
4545
- *
4546
- * Examples of shallow copy :
4547
- * const shallowClone = { ...nestedObject };
4548
- * const shallowClone = Object.assign({}, nestedObject);
4549
- *
4550
- * @param obj is the object to copied
4551
- * @returns obj
4552
- */
4553
- static deepCopy(obj) {
4554
- if (!obj || typeof obj !== 'object') {
4555
- return obj;
4556
- }
4557
- let copy;
4558
- if (obj instanceof Date) {
4559
- copy = new Date();
4560
- copy.setTime(obj.getTime());
4561
- return copy;
4562
- }
4563
- if (obj instanceof Array) {
4564
- copy = [];
4565
- for (let i = 0, len = obj.length; i < len; i++) {
4566
- copy[i] = ObjectHelper.deepCopy(obj[i]);
4567
- }
4568
- return copy;
4569
- }
4570
- if (obj instanceof Object) {
4571
- copy = {};
4572
- for (const attr in obj) {
4573
- if (obj.hasOwnProperty(attr)) {
4574
- copy[attr] = ObjectHelper.deepCopy(obj[attr]);
4575
- }
4576
- }
4577
- return copy;
5014
+ ngOnDestroy() {
5015
+ this.addMessageObserver.unsubscribe();
5016
+ }
5017
+ hideMessage(message) {
5018
+ message.isVisible = false;
5019
+ }
5020
+ removeMessage(message) {
5021
+ if (this.messages.includes(message)) {
5022
+ this.messages.splice(this.messages.indexOf(message), 1);
4578
5023
  }
4579
- throw new Error('Unable to copy obj! Type not supported.');
5024
+ }
5025
+ cssTransitionEnd(message) {
5026
+ this.removeMessage(message);
5027
+ }
5028
+ }
5029
+ FoehnGrowlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, deps: [{ token: GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Component });
5030
+ FoehnGrowlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnGrowlComponent, selector: "foehn-growl", ngImport: i0, template: "<div id=\"foehn_growlContainer\" class=\"container fixed-top\">\n <div\n class=\"alert\"\n role=\"alert\"\n *ngFor=\"let message of messages\"\n [ngClass]=\"message.type\"\n [class.hidden]=\"!message.isVisible\"\n (transitionend)=\"cssTransitionEnd(message)\"\n [innerHTML]=\"message.content\"\n ></div>\n</div>\n", styles: [".hidden{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s linear}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
5031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, decorators: [{
5032
+ type: Component,
5033
+ args: [{ selector: 'foehn-growl', template: "<div id=\"foehn_growlContainer\" class=\"container fixed-top\">\n <div\n class=\"alert\"\n role=\"alert\"\n *ngFor=\"let message of messages\"\n [ngClass]=\"message.type\"\n [class.hidden]=\"!message.isVisible\"\n (transitionend)=\"cssTransitionEnd(message)\"\n [innerHTML]=\"message.content\"\n ></div>\n</div>\n", styles: [".hidden{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s linear}\n"] }]
5034
+ }], ctorParameters: function () { return [{ type: GrowlBrokerService }]; } });
5035
+
5036
+ class FoehnIconUserComponent extends AbstractIconComponent {
5037
+ constructor() {
5038
+ super(...arguments);
5039
+ this.iconName = faUser;
5040
+ this.defaultTitle = 'Utilisateur';
4580
5041
  }
4581
5042
  }
5043
+ FoehnIconUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5044
+ FoehnIconUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconUserComponent, selector: "foehn-icon-user", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
5045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, decorators: [{
5046
+ type: Component,
5047
+ args: [{ selector: 'foehn-icon-user', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
5048
+ }] });
4582
5049
 
4583
5050
  class FormSelectOptionGroup {
4584
5051
  }
@@ -5312,20 +5779,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5312
5779
  type: Input
5313
5780
  }] } });
5314
5781
 
5315
- class FoehnIconChevronUpComponent extends AbstractIconComponent {
5316
- constructor() {
5317
- super(...arguments);
5318
- this.iconName = faChevronUp;
5319
- this.defaultTitle = 'Flèche vers le haut';
5320
- }
5321
- }
5322
- FoehnIconChevronUpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5323
- FoehnIconChevronUpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
5324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, decorators: [{
5325
- type: Component,
5326
- args: [{ selector: 'foehn-icon-chevron-up', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
5327
- }] });
5328
-
5329
5782
  const GUIDE_URL = 'https://www.vd.ch/index.php?id=67827';
5330
5783
  const TERM_OF_USE_URL = 'https://www.vd.ch/index.php?id=2015321';
5331
5784
  const SECURITY_BEST_PRACTICE_URL = 'https://www.vd.ch/index.php?id=2015320';
@@ -5577,20 +6030,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5577
6030
  args: [{ selector: 'foehn-confirm-modal', template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n" }]
5578
6031
  }], ctorParameters: function () { return [{ type: FoehnConfirmModalService }]; } });
5579
6032
 
5580
- class FoehnIconExternalLinkAltComponent extends AbstractIconComponent {
5581
- constructor() {
5582
- super(...arguments);
5583
- this.iconName = faExternalLinkAlt;
5584
- this.defaultTitle = 'Lien externe (nouvel onglet)';
5585
- }
5586
- }
5587
- FoehnIconExternalLinkAltComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5588
- FoehnIconExternalLinkAltComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
5589
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, decorators: [{
5590
- type: Component,
5591
- args: [{ selector: 'foehn-icon-external-link-alt', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
5592
- }] });
5593
-
5594
6033
  class FoehnStatusProgressBarComponent {
5595
6034
  constructor(activatedRoute, navigation, gesdemEventService, gesdemHand) {
5596
6035
  this.activatedRoute = activatedRoute;
@@ -5700,6 +6139,7 @@ class FoehnPageComponent {
5700
6139
  this.sdkDictionaryService = sdkDictionaryService;
5701
6140
  this.statisticsService = statisticsService;
5702
6141
  this.supportAlertEnabled = true;
6142
+ this.draftsEnabled = true;
5703
6143
  this.userConnectedAsDisplayed = true;
5704
6144
  this.confirmLeavingAlert = {
5705
6145
  htmlContent: LEAVING_ALERT_CONTENT,
@@ -5830,18 +6270,22 @@ class FoehnPageComponent {
5830
6270
  }
5831
6271
  }
5832
6272
  FoehnPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnPageComponent, deps: [{ token: i1$3.Title }, { token: FoehnPageService }, { token: SupportAlertService }, { token: FoehnNavigationService }, { token: ApplicationInfoService }, { token: GesdemEventService }, { token: BreadcrumbEventService }, { token: i1$1.Router }, { token: SessionInfo }, { token: FoehnPageModalService }, { token: SdkDictionaryService }, { token: SdkStatisticsService }], target: i0.ɵɵFactoryTarget.Component });
5833
- FoehnPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnPageComponent, selector: "foehn-page", inputs: { appTitle: "appTitle", footerLinks: "footerLinks", supportAlertEnabled: "supportAlertEnabled", supportAlertUrl: "supportAlertUrl", etapeId: "etapeId", userConnectedAsDisplayed: "userConnectedAsDisplayed", statusProgressBarHidden: "statusProgressBarHidden", confirmLeavingAlert: "confirmLeavingAlert", showDefaultContactFooterLink: "showDefaultContactFooterLink", showDefaultGuideFooterLink: "showDefaultGuideFooterLink", showDefaultTermOfUseLink: "showDefaultTermOfUseLink", showDefaultSecurityBestPracticeLink: "showDefaultSecurityBestPracticeLink", routerLinkAppTitle: "routerLinkAppTitle" }, usesOnChanges: true, ngImport: i0, template: "<foehn-header\n id=\"foehn_header\"\n [title]=\"appTitle\"\n [routerLinkAppTitle]=\"routerLinkAppTitle\"\n [showSecuredAreaLoginButton]=\"showSecuredAreaLoginButton | async\"\n></foehn-header>\n<foehn-growl id=\"foehn_growl\"></foehn-growl>\n<div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <foehn-breadcrumb\n [confirmLeavingAlert]=\"confirmLeavingAlert\"\n ></foehn-breadcrumb>\n </div>\n</div>\n<main id=\"main\">\n <div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <!-- Fix annoying flickering when the page loads -->\n <div class=\"h1 mt-0\" *ngIf=\"!pageTitle\">&nbsp;</div>\n <h1\n [tabIndex]=\"-1\"\n class=\"mt-0\"\n id=\"page-title\"\n *ngIf=\"!!pageTitle\"\n [innerHTML]=\"pageTitle\"\n ></h1>\n </div>\n </div>\n\n <foehn-status-progress-bar\n [hidden]=\"\n statusProgressBarHidden || !!(hasBlockingSupportAlert | async)\n \"\n ></foehn-status-progress-bar>\n\n <section\n *ngIf=\"!isBrowserSupported\"\n class=\"container alert alert-danger\"\n id=\"browser_not_supported_block\"\n role=\"alert\"\n >\n <p class=\"alert-heading\">\n <strong>\n {{ 'foehn-page.browser-not-supported' | fromDictionary }}\n </strong>\n </p>\n <p class=\"mb-0\">\n {{ 'foehn-page.browser-download-invitation' | fromDictionary }}\n <ng-container *ngIf=\"!isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Edge'\"\n href=\"https://www.microsoft.com/fr-ch/windows/microsoft-edge\"\n target=\"_blank\"\n >\n Edge\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <ng-container *ngIf=\"isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Safari'\"\n href=\"https://support.apple.com/downloads/safari\"\n target=\"_blank\"\n >\n Safari\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <a\n [title]=\"browserLinkTitlePrefix + ' Firefox'\"\n href=\"https://www.mozilla.org/fr/firefox/\"\n target=\"_blank\"\n >\n Firefox\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n {{ 'foehn-page.browser-download-list.ou' | fromDictionary }}\n <a\n [title]=\"browserLinkTitlePrefix + ' Chrome'\"\n href=\"https://www.google.com/intl/fr/chrome/\"\n target=\"_blank\"\n >\n Chrome\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n .\n </p>\n <div class=\"row mt-3\">\n <div class=\"col-md-12\">\n <button\n id=\"browser_not_supported_bypass\"\n class=\"float-right btn btn-danger\"\n *ngIf=\"!browserNotSupportedBypass\"\n (click)=\"browserNotSupportedBypass = true\"\n >\n {{\n 'foehn-page.continue-with-same-browser' | fromDictionary\n }}\n </button>\n </div>\n </div>\n </section>\n\n <sdk-support-alert-container\n *ngIf=\"supportAlertEnabled\"\n [etapeId]=\"etapeId\"\n [supportAlertUrl]=\"supportAlertUrl\"\n ></sdk-support-alert-container>\n <ng-container\n *ngIf=\"\n !(hasBlockingSupportAlert | async) &&\n (isBrowserSupported || browserNotSupportedBypass)\n \"\n >\n <div class=\"container mt-5\" id=\"page_content\">\n <foehn-user-connected-as\n *ngIf=\"displayUserCategory | async\"\n ></foehn-user-connected-as>\n </div>\n <ng-content></ng-content>\n </ng-container>\n</main>\n<foehn-footer\n id=\"foehn_footer\"\n [links]=\"footerLinks\"\n [showDefaultContactLink]=\"showDefaultContactFooterLink\"\n [showDefaultGuideLink]=\"showDefaultGuideFooterLink\"\n [showDefaultTermOfUseLink]=\"showDefaultTermOfUseLink\"\n [showDefaultSecurityBestPracticeLink]=\"showDefaultSecurityBestPracticeLink\"\n></foehn-footer>\n<foehn-page-modal></foehn-page-modal>\n<foehn-confirm-modal></foehn-confirm-modal>\n", styles: ["#loginAndContinueButton{text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnBreadcrumbComponent, selector: "foehn-breadcrumb", inputs: ["breadcrumbItems", "currentNav", "confirmLeavingAlert"] }, { kind: "component", type: FoehnGrowlComponent, selector: "foehn-growl" }, { kind: "component", type: FoehnHeaderComponent, selector: "foehn-header", inputs: ["title", "showSecuredAreaLoginButton", "routerLinkAppTitle", "userInfo"] }, { kind: "component", type: FoehnFooterComponent, selector: "foehn-footer", inputs: ["links", "showDefaultContactLink", "showDefaultGuideLink", "showDefaultTermOfUseLink", "showDefaultSecurityBestPracticeLink"] }, { kind: "component", type: FoehnUserConnectedAsComponent, selector: "foehn-user-connected-as" }, { kind: "component", type: SupportAlertContainerComponent, selector: "sdk-support-alert-container", inputs: ["etapeId", "supportAlertUrl"] }, { kind: "component", type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal" }, { kind: "component", type: FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt" }, { kind: "component", type: FoehnStatusProgressBarComponent, selector: "foehn-status-progress-bar", inputs: ["hidden"] }, { kind: "component", type: FoehnPageModalComponent, selector: "foehn-page-modal" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
6273
+ FoehnPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnPageComponent, selector: "foehn-page", inputs: { appTitle: "appTitle", footerLinks: "footerLinks", supportAlertEnabled: "supportAlertEnabled", draftsEnabled: "draftsEnabled", supportAlertUrl: "supportAlertUrl", draftsUrl: "draftsUrl", etapeId: "etapeId", userConnectedAsDisplayed: "userConnectedAsDisplayed", statusProgressBarHidden: "statusProgressBarHidden", confirmLeavingAlert: "confirmLeavingAlert", showDefaultContactFooterLink: "showDefaultContactFooterLink", showDefaultGuideFooterLink: "showDefaultGuideFooterLink", showDefaultTermOfUseLink: "showDefaultTermOfUseLink", showDefaultSecurityBestPracticeLink: "showDefaultSecurityBestPracticeLink", routerLinkAppTitle: "routerLinkAppTitle" }, usesOnChanges: true, ngImport: i0, template: "<foehn-header\n id=\"foehn_header\"\n [title]=\"appTitle\"\n [routerLinkAppTitle]=\"routerLinkAppTitle\"\n [showSecuredAreaLoginButton]=\"showSecuredAreaLoginButton | async\"\n></foehn-header>\n<foehn-growl id=\"foehn_growl\"></foehn-growl>\n<div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <foehn-breadcrumb\n [confirmLeavingAlert]=\"confirmLeavingAlert\"\n ></foehn-breadcrumb>\n </div>\n</div>\n<main id=\"main\">\n <div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <!-- Fix annoying flickering when the page loads -->\n <div class=\"h1 mt-0\" *ngIf=\"!pageTitle\">&nbsp;</div>\n <h1\n [tabIndex]=\"-1\"\n class=\"mt-0\"\n id=\"page-title\"\n *ngIf=\"!!pageTitle\"\n [innerHTML]=\"pageTitle\"\n ></h1>\n </div>\n </div>\n\n <foehn-status-progress-bar\n [hidden]=\"\n statusProgressBarHidden || !!(hasBlockingSupportAlert | async)\n \"\n ></foehn-status-progress-bar>\n\n <section\n *ngIf=\"!isBrowserSupported\"\n class=\"container alert alert-danger\"\n id=\"browser_not_supported_block\"\n role=\"alert\"\n >\n <p class=\"alert-heading\">\n <strong>\n {{ 'foehn-page.browser-not-supported' | fromDictionary }}\n </strong>\n </p>\n <p class=\"mb-0\">\n {{ 'foehn-page.browser-download-invitation' | fromDictionary }}\n <ng-container *ngIf=\"!isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Edge'\"\n href=\"https://www.microsoft.com/fr-ch/windows/microsoft-edge\"\n target=\"_blank\"\n >\n Edge\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <ng-container *ngIf=\"isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Safari'\"\n href=\"https://support.apple.com/downloads/safari\"\n target=\"_blank\"\n >\n Safari\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <a\n [title]=\"browserLinkTitlePrefix + ' Firefox'\"\n href=\"https://www.mozilla.org/fr/firefox/\"\n target=\"_blank\"\n >\n Firefox\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n {{ 'foehn-page.browser-download-list.ou' | fromDictionary }}\n <a\n [title]=\"browserLinkTitlePrefix + ' Chrome'\"\n href=\"https://www.google.com/intl/fr/chrome/\"\n target=\"_blank\"\n >\n Chrome\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n .\n </p>\n <div class=\"row mt-3\">\n <div class=\"col-md-12\">\n <button\n id=\"browser_not_supported_bypass\"\n class=\"float-right btn btn-danger\"\n *ngIf=\"!browserNotSupportedBypass\"\n (click)=\"browserNotSupportedBypass = true\"\n >\n {{\n 'foehn-page.continue-with-same-browser' | fromDictionary\n }}\n </button>\n </div>\n </div>\n </section>\n\n <sdk-support-alert-container\n *ngIf=\"supportAlertEnabled\"\n [etapeId]=\"etapeId\"\n [supportAlertUrl]=\"supportAlertUrl\"\n ></sdk-support-alert-container>\n <sdk-drafts-container\n *ngIf=\"draftsEnabled\"\n [etapeId]=\"etapeId\"\n [draftsUrl]=\"draftsUrl\"\n ></sdk-drafts-container>\n <ng-container\n *ngIf=\"\n !(hasBlockingSupportAlert | async) &&\n (isBrowserSupported || browserNotSupportedBypass)\n \"\n >\n <div class=\"container mt-5\" id=\"page_content\">\n <foehn-user-connected-as\n *ngIf=\"displayUserCategory | async\"\n ></foehn-user-connected-as>\n </div>\n <ng-content></ng-content>\n </ng-container>\n</main>\n<foehn-footer\n id=\"foehn_footer\"\n [links]=\"footerLinks\"\n [showDefaultContactLink]=\"showDefaultContactFooterLink\"\n [showDefaultGuideLink]=\"showDefaultGuideFooterLink\"\n [showDefaultTermOfUseLink]=\"showDefaultTermOfUseLink\"\n [showDefaultSecurityBestPracticeLink]=\"showDefaultSecurityBestPracticeLink\"\n></foehn-footer>\n<foehn-page-modal></foehn-page-modal>\n<foehn-confirm-modal></foehn-confirm-modal>\n", styles: ["#loginAndContinueButton{text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DraftsContainerComponent, selector: "sdk-drafts-container", inputs: ["etapeId", "draftsUrl"] }, { kind: "component", type: FoehnBreadcrumbComponent, selector: "foehn-breadcrumb", inputs: ["breadcrumbItems", "currentNav", "confirmLeavingAlert"] }, { kind: "component", type: FoehnGrowlComponent, selector: "foehn-growl" }, { kind: "component", type: FoehnHeaderComponent, selector: "foehn-header", inputs: ["title", "showSecuredAreaLoginButton", "routerLinkAppTitle", "userInfo"] }, { kind: "component", type: FoehnFooterComponent, selector: "foehn-footer", inputs: ["links", "showDefaultContactLink", "showDefaultGuideLink", "showDefaultTermOfUseLink", "showDefaultSecurityBestPracticeLink"] }, { kind: "component", type: FoehnUserConnectedAsComponent, selector: "foehn-user-connected-as" }, { kind: "component", type: SupportAlertContainerComponent, selector: "sdk-support-alert-container", inputs: ["etapeId", "supportAlertUrl"] }, { kind: "component", type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal" }, { kind: "component", type: FoehnIconExternalLinkAltComponent, selector: "foehn-icon-external-link-alt" }, { kind: "component", type: FoehnStatusProgressBarComponent, selector: "foehn-status-progress-bar", inputs: ["hidden"] }, { kind: "component", type: FoehnPageModalComponent, selector: "foehn-page-modal" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
5834
6274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnPageComponent, decorators: [{
5835
6275
  type: Component,
5836
- args: [{ selector: 'foehn-page', template: "<foehn-header\n id=\"foehn_header\"\n [title]=\"appTitle\"\n [routerLinkAppTitle]=\"routerLinkAppTitle\"\n [showSecuredAreaLoginButton]=\"showSecuredAreaLoginButton | async\"\n></foehn-header>\n<foehn-growl id=\"foehn_growl\"></foehn-growl>\n<div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <foehn-breadcrumb\n [confirmLeavingAlert]=\"confirmLeavingAlert\"\n ></foehn-breadcrumb>\n </div>\n</div>\n<main id=\"main\">\n <div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <!-- Fix annoying flickering when the page loads -->\n <div class=\"h1 mt-0\" *ngIf=\"!pageTitle\">&nbsp;</div>\n <h1\n [tabIndex]=\"-1\"\n class=\"mt-0\"\n id=\"page-title\"\n *ngIf=\"!!pageTitle\"\n [innerHTML]=\"pageTitle\"\n ></h1>\n </div>\n </div>\n\n <foehn-status-progress-bar\n [hidden]=\"\n statusProgressBarHidden || !!(hasBlockingSupportAlert | async)\n \"\n ></foehn-status-progress-bar>\n\n <section\n *ngIf=\"!isBrowserSupported\"\n class=\"container alert alert-danger\"\n id=\"browser_not_supported_block\"\n role=\"alert\"\n >\n <p class=\"alert-heading\">\n <strong>\n {{ 'foehn-page.browser-not-supported' | fromDictionary }}\n </strong>\n </p>\n <p class=\"mb-0\">\n {{ 'foehn-page.browser-download-invitation' | fromDictionary }}\n <ng-container *ngIf=\"!isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Edge'\"\n href=\"https://www.microsoft.com/fr-ch/windows/microsoft-edge\"\n target=\"_blank\"\n >\n Edge\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <ng-container *ngIf=\"isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Safari'\"\n href=\"https://support.apple.com/downloads/safari\"\n target=\"_blank\"\n >\n Safari\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <a\n [title]=\"browserLinkTitlePrefix + ' Firefox'\"\n href=\"https://www.mozilla.org/fr/firefox/\"\n target=\"_blank\"\n >\n Firefox\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n {{ 'foehn-page.browser-download-list.ou' | fromDictionary }}\n <a\n [title]=\"browserLinkTitlePrefix + ' Chrome'\"\n href=\"https://www.google.com/intl/fr/chrome/\"\n target=\"_blank\"\n >\n Chrome\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n .\n </p>\n <div class=\"row mt-3\">\n <div class=\"col-md-12\">\n <button\n id=\"browser_not_supported_bypass\"\n class=\"float-right btn btn-danger\"\n *ngIf=\"!browserNotSupportedBypass\"\n (click)=\"browserNotSupportedBypass = true\"\n >\n {{\n 'foehn-page.continue-with-same-browser' | fromDictionary\n }}\n </button>\n </div>\n </div>\n </section>\n\n <sdk-support-alert-container\n *ngIf=\"supportAlertEnabled\"\n [etapeId]=\"etapeId\"\n [supportAlertUrl]=\"supportAlertUrl\"\n ></sdk-support-alert-container>\n <ng-container\n *ngIf=\"\n !(hasBlockingSupportAlert | async) &&\n (isBrowserSupported || browserNotSupportedBypass)\n \"\n >\n <div class=\"container mt-5\" id=\"page_content\">\n <foehn-user-connected-as\n *ngIf=\"displayUserCategory | async\"\n ></foehn-user-connected-as>\n </div>\n <ng-content></ng-content>\n </ng-container>\n</main>\n<foehn-footer\n id=\"foehn_footer\"\n [links]=\"footerLinks\"\n [showDefaultContactLink]=\"showDefaultContactFooterLink\"\n [showDefaultGuideLink]=\"showDefaultGuideFooterLink\"\n [showDefaultTermOfUseLink]=\"showDefaultTermOfUseLink\"\n [showDefaultSecurityBestPracticeLink]=\"showDefaultSecurityBestPracticeLink\"\n></foehn-footer>\n<foehn-page-modal></foehn-page-modal>\n<foehn-confirm-modal></foehn-confirm-modal>\n", styles: ["#loginAndContinueButton{text-decoration:underline}\n"] }]
6276
+ args: [{ selector: 'foehn-page', template: "<foehn-header\n id=\"foehn_header\"\n [title]=\"appTitle\"\n [routerLinkAppTitle]=\"routerLinkAppTitle\"\n [showSecuredAreaLoginButton]=\"showSecuredAreaLoginButton | async\"\n></foehn-header>\n<foehn-growl id=\"foehn_growl\"></foehn-growl>\n<div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <foehn-breadcrumb\n [confirmLeavingAlert]=\"confirmLeavingAlert\"\n ></foehn-breadcrumb>\n </div>\n</div>\n<main id=\"main\">\n <div class=\"vd-bg-pattern-gray\">\n <div class=\"container\">\n <!-- Fix annoying flickering when the page loads -->\n <div class=\"h1 mt-0\" *ngIf=\"!pageTitle\">&nbsp;</div>\n <h1\n [tabIndex]=\"-1\"\n class=\"mt-0\"\n id=\"page-title\"\n *ngIf=\"!!pageTitle\"\n [innerHTML]=\"pageTitle\"\n ></h1>\n </div>\n </div>\n\n <foehn-status-progress-bar\n [hidden]=\"\n statusProgressBarHidden || !!(hasBlockingSupportAlert | async)\n \"\n ></foehn-status-progress-bar>\n\n <section\n *ngIf=\"!isBrowserSupported\"\n class=\"container alert alert-danger\"\n id=\"browser_not_supported_block\"\n role=\"alert\"\n >\n <p class=\"alert-heading\">\n <strong>\n {{ 'foehn-page.browser-not-supported' | fromDictionary }}\n </strong>\n </p>\n <p class=\"mb-0\">\n {{ 'foehn-page.browser-download-invitation' | fromDictionary }}\n <ng-container *ngIf=\"!isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Edge'\"\n href=\"https://www.microsoft.com/fr-ch/windows/microsoft-edge\"\n target=\"_blank\"\n >\n Edge\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <ng-container *ngIf=\"isApplePlatform\">\n <a\n [title]=\"browserLinkTitlePrefix + ' Safari'\"\n href=\"https://support.apple.com/downloads/safari\"\n target=\"_blank\"\n >\n Safari\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n ,\n </ng-container>\n <a\n [title]=\"browserLinkTitlePrefix + ' Firefox'\"\n href=\"https://www.mozilla.org/fr/firefox/\"\n target=\"_blank\"\n >\n Firefox\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n {{ 'foehn-page.browser-download-list.ou' | fromDictionary }}\n <a\n [title]=\"browserLinkTitlePrefix + ' Chrome'\"\n href=\"https://www.google.com/intl/fr/chrome/\"\n target=\"_blank\"\n >\n Chrome\n <span class=\"sr-only\">\n {{ 'foehn-page.external-link.srOnly' | fromDictionary }}\n </span>\n <span aria-hidden=\"true\">\n <foehn-icon-external-link-alt></foehn-icon-external-link-alt>\n </span>\n </a>\n .\n </p>\n <div class=\"row mt-3\">\n <div class=\"col-md-12\">\n <button\n id=\"browser_not_supported_bypass\"\n class=\"float-right btn btn-danger\"\n *ngIf=\"!browserNotSupportedBypass\"\n (click)=\"browserNotSupportedBypass = true\"\n >\n {{\n 'foehn-page.continue-with-same-browser' | fromDictionary\n }}\n </button>\n </div>\n </div>\n </section>\n\n <sdk-support-alert-container\n *ngIf=\"supportAlertEnabled\"\n [etapeId]=\"etapeId\"\n [supportAlertUrl]=\"supportAlertUrl\"\n ></sdk-support-alert-container>\n <sdk-drafts-container\n *ngIf=\"draftsEnabled\"\n [etapeId]=\"etapeId\"\n [draftsUrl]=\"draftsUrl\"\n ></sdk-drafts-container>\n <ng-container\n *ngIf=\"\n !(hasBlockingSupportAlert | async) &&\n (isBrowserSupported || browserNotSupportedBypass)\n \"\n >\n <div class=\"container mt-5\" id=\"page_content\">\n <foehn-user-connected-as\n *ngIf=\"displayUserCategory | async\"\n ></foehn-user-connected-as>\n </div>\n <ng-content></ng-content>\n </ng-container>\n</main>\n<foehn-footer\n id=\"foehn_footer\"\n [links]=\"footerLinks\"\n [showDefaultContactLink]=\"showDefaultContactFooterLink\"\n [showDefaultGuideLink]=\"showDefaultGuideFooterLink\"\n [showDefaultTermOfUseLink]=\"showDefaultTermOfUseLink\"\n [showDefaultSecurityBestPracticeLink]=\"showDefaultSecurityBestPracticeLink\"\n></foehn-footer>\n<foehn-page-modal></foehn-page-modal>\n<foehn-confirm-modal></foehn-confirm-modal>\n", styles: ["#loginAndContinueButton{text-decoration:underline}\n"] }]
5837
6277
  }], ctorParameters: function () { return [{ type: i1$3.Title }, { type: FoehnPageService }, { type: SupportAlertService }, { type: FoehnNavigationService }, { type: ApplicationInfoService }, { type: GesdemEventService }, { type: BreadcrumbEventService }, { type: i1$1.Router }, { type: SessionInfo }, { type: FoehnPageModalService }, { type: SdkDictionaryService }, { type: SdkStatisticsService }]; }, propDecorators: { appTitle: [{
5838
6278
  type: Input
5839
6279
  }], footerLinks: [{
5840
6280
  type: Input
5841
6281
  }], supportAlertEnabled: [{
5842
6282
  type: Input
6283
+ }], draftsEnabled: [{
6284
+ type: Input
5843
6285
  }], supportAlertUrl: [{
5844
6286
  type: Input
6287
+ }], draftsUrl: [{
6288
+ type: Input
5845
6289
  }], etapeId: [{
5846
6290
  type: Input
5847
6291
  }], userConnectedAsDisplayed: [{
@@ -5923,109 +6367,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5923
6367
  args: [{ name: 'displayCurrency' }]
5924
6368
  }], ctorParameters: function () { return [{ type: CurrencyHelper }]; } });
5925
6369
 
5926
- dayjs.extend(isToday);
5927
- class DateHelper {
5928
- constructor() {
5929
- this.locale = 'fr-CH';
5930
- this.dateFormat = 'dd.MM.yyyy';
5931
- this.dateTimeFormat = 'dd.MM.yyyy HH:mm:ss';
5932
- registerLocaleData(localeFr, 'fr-CH');
5933
- this.datePipe = new DatePipe(this.locale);
5934
- }
5935
- static isValidArray(value) {
5936
- return (!!value &&
5937
- value.length > 2 &&
5938
- !!value[0] &&
5939
- !!value[1] &&
5940
- !!value[2]);
5941
- }
5942
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5943
- mapToDateFromNumberArray(object, ...fieldsNames) {
5944
- if (object) {
5945
- fieldsNames.forEach(fieldPath => {
5946
- object[fieldPath] = this.toDateFromNumberArray(object[fieldPath]);
5947
- });
5948
- }
5949
- return object;
5950
- }
5951
- mapAllToDateFromNumberArray(
5952
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5953
- objects, ...fieldsNames) {
5954
- if (objects) {
5955
- objects.forEach(object => {
5956
- this.mapToDateFromNumberArray(object, ...fieldsNames);
5957
- });
5958
- }
5959
- return objects;
5960
- }
5961
- toDateFromNumberArray(dateInArray) {
5962
- if (dateInArray) {
5963
- if (dateInArray.length === 3) {
5964
- return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2]);
5965
- }
5966
- else if (dateInArray.length === 5) {
5967
- // because when time is 00:00:00 the array does not contain the seconds.
5968
- return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4]);
5969
- }
5970
- else if (dateInArray.length >= 6) {
5971
- return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4], dateInArray[5]);
5972
- }
5973
- throw new Error(`Date in number[] format has wrong number of numbers : ${dateInArray.length}`);
5974
- }
5975
- return null;
5976
- }
5977
- arrayToDisplayDateDMY(d, showTime) {
5978
- if (showTime) {
5979
- return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateTimeFormat);
5980
- }
5981
- else {
5982
- return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateFormat);
5983
- }
5984
- }
5985
- toDayjsFromNumberArray(value) {
5986
- if (DateHelper.isValidArray(value)) {
5987
- const dateAsString = `${value[0]}-${value[1]}-${value[2]}`;
5988
- return dayjs(dateAsString);
5989
- }
5990
- return null;
5991
- }
5992
- isValid(value) {
5993
- // date is incomplete
5994
- if (!DateHelper.isValidArray(value)) {
5995
- return false;
5996
- }
5997
- // date cannot be parsed
5998
- if (!this.toDayjsFromNumberArray(value)) {
5999
- return false;
6000
- }
6001
- // date has not been shifted (i.e. 30.02.2021 -> 01.03.2021)
6002
- const asString = `${value[0]}-${value[1]}-${value[2]}`;
6003
- const asStringFromDayJS = this.toDayjsFromNumberArray(value).format('YYYY-M-D');
6004
- return asString === asStringFromDayJS;
6005
- }
6006
- isToday(value) {
6007
- return (DateHelper.isValidArray(value) &&
6008
- this.toDayjsFromNumberArray(value).isToday());
6009
- }
6010
- leftPad(num) {
6011
- if (num === undefined || num === null) {
6012
- return '';
6013
- }
6014
- if (num.length === 1) {
6015
- return `0${num}`;
6016
- }
6017
- return num;
6018
- }
6019
- }
6020
- DateHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6021
- DateHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, providedIn: 'root' });
6022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, decorators: [{
6023
- type: Injectable,
6024
- args: [{
6025
- providedIn: 'root'
6026
- }]
6027
- }], ctorParameters: function () { return []; } });
6028
-
6029
6370
  const DATE_LOCALE = 'fr-CH';
6030
6371
  class DisplayDatePipe {
6031
6372
  constructor(dateHelper) {
@@ -6146,82 +6487,40 @@ class FoehnIconCalendarComponent extends AbstractIconComponent {
6146
6487
  this.iconName = faCalendarAlt;
6147
6488
  this.defaultTitle = 'Calendrier';
6148
6489
  }
6149
- }
6150
- FoehnIconCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6151
- FoehnIconCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconCalendarComponent, selector: "foehn-icon-calendar", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, decorators: [{
6153
- type: Component,
6154
- args: [{ selector: 'foehn-icon-calendar', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6155
- }] });
6156
-
6157
- class FoehnIconCheckComponent extends AbstractIconComponent {
6158
- constructor() {
6159
- super(...arguments);
6160
- this.iconName = faCheck;
6161
- this.defaultTitle = 'Check ok';
6162
- }
6163
- }
6164
- FoehnIconCheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6165
- FoehnIconCheckComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconCheckComponent, selector: "foehn-icon-check", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, decorators: [{
6167
- type: Component,
6168
- args: [{ selector: 'foehn-icon-check', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6169
- }] });
6170
-
6171
- class FoehnIconCheckSquareOComponent extends AbstractIconComponent {
6172
- constructor() {
6173
- super(...arguments);
6174
- this.iconName = faCheckSquare;
6175
- this.defaultTitle = 'Carré coché';
6176
- }
6177
- }
6178
- FoehnIconCheckSquareOComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6179
- FoehnIconCheckSquareOComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconCheckSquareOComponent, selector: "foehn-icon-check-square-o", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, decorators: [{
6181
- type: Component,
6182
- args: [{ selector: 'foehn-icon-check-square-o', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6183
- }] });
6184
-
6185
- class FoehnIconChevronDownComponent extends AbstractIconComponent {
6186
- constructor() {
6187
- super(...arguments);
6188
- this.iconName = faChevronDown;
6189
- this.defaultTitle = 'Flèche vers le bas';
6190
- }
6191
- }
6192
- FoehnIconChevronDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6193
- FoehnIconChevronDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, decorators: [{
6490
+ }
6491
+ FoehnIconCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6492
+ FoehnIconCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconCalendarComponent, selector: "foehn-icon-calendar", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6493
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, decorators: [{
6195
6494
  type: Component,
6196
- args: [{ selector: 'foehn-icon-chevron-down', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6495
+ args: [{ selector: 'foehn-icon-calendar', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6197
6496
  }] });
6198
6497
 
6199
- class FoehnIconChevronLeftComponent extends AbstractIconComponent {
6498
+ class FoehnIconCheckComponent extends AbstractIconComponent {
6200
6499
  constructor() {
6201
6500
  super(...arguments);
6202
- this.iconName = faChevronLeft;
6203
- this.defaultTitle = 'Flèche vers la gauche';
6501
+ this.iconName = faCheck;
6502
+ this.defaultTitle = 'Check ok';
6204
6503
  }
6205
6504
  }
6206
- FoehnIconChevronLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6207
- FoehnIconChevronLeftComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, decorators: [{
6505
+ FoehnIconCheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6506
+ FoehnIconCheckComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconCheckComponent, selector: "foehn-icon-check", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, decorators: [{
6209
6508
  type: Component,
6210
- args: [{ selector: 'foehn-icon-chevron-left', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6509
+ args: [{ selector: 'foehn-icon-check', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6211
6510
  }] });
6212
6511
 
6213
- class FoehnIconChevronRightComponent extends AbstractIconComponent {
6512
+ class FoehnIconCheckSquareOComponent extends AbstractIconComponent {
6214
6513
  constructor() {
6215
6514
  super(...arguments);
6216
- this.iconName = faChevronRight;
6217
- this.defaultTitle = 'Flèche vers la droite';
6515
+ this.iconName = faCheckSquare;
6516
+ this.defaultTitle = 'Carré coché';
6218
6517
  }
6219
6518
  }
6220
- FoehnIconChevronRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6221
- FoehnIconChevronRightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, decorators: [{
6519
+ FoehnIconCheckSquareOComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6520
+ FoehnIconCheckSquareOComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnIconCheckSquareOComponent, selector: "foehn-icon-check-square-o", usesInheritance: true, ngImport: i0, template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n", dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
6521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, decorators: [{
6223
6522
  type: Component,
6224
- args: [{ selector: 'foehn-icon-chevron-right', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6523
+ args: [{ selector: 'foehn-icon-check-square-o', template: "<fa-icon\n aria-hidden=\"true\"\n [title]=\"title ? title : defaultTitle\"\n [icon]=\"iconName\"\n></fa-icon>\n<span class=\"sr-only\">{{ title ? title : defaultTitle }}</span>\n" }]
6225
6524
  }] });
6226
6525
 
6227
6526
  class FoehnIconClockComponent extends AbstractIconComponent {
@@ -6417,7 +6716,8 @@ FoehnIconsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
6417
6716
  FoehnIconExternalLinkAltComponent,
6418
6717
  FoehnIconClockComponent,
6419
6718
  FoehnIconCalendarComponent,
6420
- FoehnIconUserComponent], imports: [FontAwesomeModule], exports: [FoehnIconCheckSquareOComponent,
6719
+ FoehnIconUserComponent,
6720
+ FoehnIconPencilComponent], imports: [FontAwesomeModule], exports: [FoehnIconCheckSquareOComponent,
6421
6721
  FoehnIconCheckComponent,
6422
6722
  FoehnIconChevronDownComponent,
6423
6723
  FoehnIconInfoCircleComponent,
@@ -6440,7 +6740,8 @@ FoehnIconsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
6440
6740
  FoehnIconExternalLinkAltComponent,
6441
6741
  FoehnIconClockComponent,
6442
6742
  FoehnIconCalendarComponent,
6443
- FoehnIconUserComponent] });
6743
+ FoehnIconUserComponent,
6744
+ FoehnIconPencilComponent] });
6444
6745
  FoehnIconsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconsModule, imports: [FontAwesomeModule, FontAwesomeModule] });
6445
6746
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconsModule, decorators: [{
6446
6747
  type: NgModule,
@@ -6469,7 +6770,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
6469
6770
  FoehnIconExternalLinkAltComponent,
6470
6771
  FoehnIconClockComponent,
6471
6772
  FoehnIconCalendarComponent,
6472
- FoehnIconUserComponent
6773
+ FoehnIconUserComponent,
6774
+ FoehnIconPencilComponent
6473
6775
  ],
6474
6776
  exports: [
6475
6777
  FoehnIconCheckSquareOComponent,
@@ -6495,7 +6797,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
6495
6797
  FoehnIconExternalLinkAltComponent,
6496
6798
  FoehnIconClockComponent,
6497
6799
  FoehnIconCalendarComponent,
6498
- FoehnIconUserComponent
6800
+ FoehnIconUserComponent,
6801
+ FoehnIconPencilComponent
6499
6802
  ]
6500
6803
  }]
6501
6804
  }] });
@@ -7449,6 +7752,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
7449
7752
  }]
7450
7753
  }] });
7451
7754
 
7755
+ class FoehnTableModule {
7756
+ }
7757
+ FoehnTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7758
+ FoehnTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, declarations: [FoehnTableComponent], imports: [CommonModule,
7759
+ FoehnIconsModule,
7760
+ SdkDictionaryModule,
7761
+ RouterModule], exports: [FoehnTableComponent] });
7762
+ FoehnTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, imports: [CommonModule,
7763
+ FoehnIconsModule,
7764
+ SdkDictionaryModule,
7765
+ RouterModule] });
7766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, decorators: [{
7767
+ type: NgModule,
7768
+ args: [{
7769
+ imports: [
7770
+ CommonModule,
7771
+ FoehnIconsModule,
7772
+ SdkDictionaryModule,
7773
+ RouterModule
7774
+ ],
7775
+ declarations: [FoehnTableComponent],
7776
+ exports: [FoehnTableComponent]
7777
+ }]
7778
+ }] });
7779
+
7780
+ class DraftsModule {
7781
+ }
7782
+ DraftsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7783
+ DraftsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, declarations: [DraftsContainerComponent], imports: [CommonModule,
7784
+ HttpClientModule,
7785
+ FoehnIconsModule,
7786
+ PipeModule,
7787
+ FoehnTableModule,
7788
+ FoehnModalModule,
7789
+ SdkDictionaryModule,
7790
+ RouterLink], exports: [DraftsContainerComponent] });
7791
+ DraftsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, imports: [CommonModule,
7792
+ HttpClientModule,
7793
+ FoehnIconsModule,
7794
+ PipeModule,
7795
+ FoehnTableModule,
7796
+ FoehnModalModule,
7797
+ SdkDictionaryModule] });
7798
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, decorators: [{
7799
+ type: NgModule,
7800
+ args: [{
7801
+ imports: [
7802
+ CommonModule,
7803
+ HttpClientModule,
7804
+ FoehnIconsModule,
7805
+ PipeModule,
7806
+ FoehnTableModule,
7807
+ FoehnModalModule,
7808
+ SdkDictionaryModule,
7809
+ RouterLink
7810
+ ],
7811
+ declarations: [DraftsContainerComponent],
7812
+ exports: [DraftsContainerComponent]
7813
+ }]
7814
+ }] });
7815
+
7452
7816
  class SupportAlertModule {
7453
7817
  }
7454
7818
  SupportAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -7494,6 +7858,7 @@ FoehnPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
7494
7858
  FoehnPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FoehnPageModule, declarations: [FoehnPageComponent,
7495
7859
  FoehnPageCounterComponent,
7496
7860
  FoehnPageModalComponent], imports: [CommonModule,
7861
+ DraftsModule,
7497
7862
  FoehnBreadcrumbModule,
7498
7863
  FoehnGrowlModule,
7499
7864
  FoehnHeaderModule,
@@ -7508,6 +7873,7 @@ FoehnPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
7508
7873
  FoehnPageCounterComponent,
7509
7874
  FoehnPageModalComponent] });
7510
7875
  FoehnPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnPageModule, imports: [CommonModule,
7876
+ DraftsModule,
7511
7877
  FoehnBreadcrumbModule,
7512
7878
  FoehnGrowlModule,
7513
7879
  FoehnHeaderModule,
@@ -7524,6 +7890,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
7524
7890
  args: [{
7525
7891
  imports: [
7526
7892
  CommonModule,
7893
+ DraftsModule,
7527
7894
  FoehnBreadcrumbModule,
7528
7895
  FoehnGrowlModule,
7529
7896
  FoehnHeaderModule,
@@ -8569,6 +8936,7 @@ class FoehnInputNumberComponent extends FoehnInputStringComponent {
8569
8936
  this.hideStandardHelpText = false;
8570
8937
  this.maxDecimalCount = 2;
8571
8938
  this.allowFreeInput = false;
8939
+ this.allowLeadingZero = false;
8572
8940
  }
8573
8941
  get model() {
8574
8942
  // If the setter is overridden, it's critical to override the getter too.
@@ -8702,7 +9070,9 @@ class FoehnInputNumberComponent extends FoehnInputStringComponent {
8702
9070
  const noCommaString = this.replaceCommaWithDot(value);
8703
9071
  const cleanDecimals = this.cleanDecimals(noCommaString);
8704
9072
  const cleanNonNumericCharacters = this.removeNonNumericCharacters(cleanDecimals);
8705
- const cleanNumber = this.removeLeadingZero(cleanNonNumericCharacters, this.allowDecimal);
9073
+ const cleanNumber = !this.allowLeadingZero
9074
+ ? this.removeLeadingZero(cleanNonNumericCharacters, this.allowDecimal)
9075
+ : cleanNonNumericCharacters;
8706
9076
  if (cleanNumber && cleanNumber.length) {
8707
9077
  return cleanNumber.substring(0, this.getMaxLength());
8708
9078
  }
@@ -8830,7 +9200,7 @@ class FoehnInputNumberComponent extends FoehnInputStringComponent {
8830
9200
  }
8831
9201
  }
8832
9202
  FoehnInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnInputNumberComponent, deps: [{ token: CurrencyHelper }, { token: SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
8833
- FoehnInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: { hideStandardHelpText: "hideStandardHelpText", allowDecimal: "allowDecimal", allowNegative: "allowNegative", maxDecimalCount: "maxDecimalCount", allowFreeInput: "allowFreeInput", model: "model" }, providers: [
9203
+ FoehnInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: { hideStandardHelpText: "hideStandardHelpText", allowDecimal: "allowDecimal", allowNegative: "allowNegative", maxDecimalCount: "maxDecimalCount", allowFreeInput: "allowFreeInput", allowLeadingZero: "allowLeadingZero", model: "model" }, providers: [
8834
9204
  {
8835
9205
  provide: FoehnInputComponent,
8836
9206
  useExisting: forwardRef(() => FoehnInputNumberComponent),
@@ -8856,6 +9226,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
8856
9226
  type: Input
8857
9227
  }], allowFreeInput: [{
8858
9228
  type: Input
9229
+ }], allowLeadingZero: [{
9230
+ type: Input
8859
9231
  }], model: [{
8860
9232
  type: Input
8861
9233
  }] } });
@@ -8946,7 +9318,7 @@ FoehnDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
8946
9318
  useExisting: forwardRef(() => FoehnDateComponent),
8947
9319
  multi: true
8948
9320
  }
8949
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_day'\"\n [name]=\"name + '_day'\"\n [label]=\"'foehn-input-date.day.label' | fromDictionary\"\n [(model)]=\"day\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableDay\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_month'\"\n [name]=\"name + '_month'\"\n [label]=\"'foehn-input-date.month.label' | fromDictionary\"\n [(model)]=\"month\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableMonth\"\n [maxlength]=\"2\"\n [clearButton]=\"displayClearButton() | async\"\n [allowNegative]=\"false\"\n [max]=\"12\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <div\n class=\"vd-form-flex__item vd-form-flex__item--4-char-width\"\n [class.mr-0]=\"shouldDisplayDatePicker()\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_year'\"\n [name]=\"name + '_year'\"\n [label]=\"'foehn-input-date.year.label' | fromDictionary\"\n [(model)]=\"year\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableYear\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <foehn-date-picker-button\n *ngIf=\"shouldDisplayDatePicker()\"\n [id]=\"buildId() + '_datePickerButton'\"\n [(model)]=\"datePickerModel\"\n (modelChange)=\"updateDateFromDatePicker($event)\"\n (userInput)=\"handleDatePickerUserInput($event)\"\n [displaySelectedDate]=\"false\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n class=\"align-self-center\"\n ></foehn-date-picker-button>\n </div>\n </fieldset>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnDatePickerButtonComponent, selector: "foehn-date-picker-button", inputs: ["id", "name", "minYear", "maxYear", "minDate", "maxDate", "displaySelectedDate", "selectedDateSrOnlyLabelKey", "model"], outputs: ["modelChange", "userInput"] }, { kind: "component", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
9321
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_day'\"\n [name]=\"name + '_day'\"\n [label]=\"'foehn-input-date.day.label' | fromDictionary\"\n [(model)]=\"day\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableDay\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_month'\"\n [name]=\"name + '_month'\"\n [label]=\"'foehn-input-date.month.label' | fromDictionary\"\n [(model)]=\"month\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableMonth\"\n [maxlength]=\"2\"\n [clearButton]=\"displayClearButton() | async\"\n [allowNegative]=\"false\"\n [max]=\"12\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <div\n class=\"vd-form-flex__item vd-form-flex__item--4-char-width\"\n [class.mr-0]=\"shouldDisplayDatePicker()\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_year'\"\n [name]=\"name + '_year'\"\n [label]=\"'foehn-input-date.year.label' | fromDictionary\"\n [(model)]=\"year\"\n (modelChange)=\"updateDate()\"\n [disabled]=\"disabled || disableYear\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [clearButton]=\"displayClearButton() | async\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <foehn-date-picker-button\n *ngIf=\"shouldDisplayDatePicker()\"\n [id]=\"buildId() + '_datePickerButton'\"\n [(model)]=\"datePickerModel\"\n (modelChange)=\"updateDateFromDatePicker($event)\"\n (userInput)=\"handleDatePickerUserInput($event)\"\n [displaySelectedDate]=\"false\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n class=\"align-self-center\"\n ></foehn-date-picker-button>\n </div>\n </fieldset>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnDatePickerButtonComponent, selector: "foehn-date-picker-button", inputs: ["id", "name", "minYear", "maxYear", "minDate", "maxDate", "displaySelectedDate", "selectedDateSrOnlyLabelKey", "model"], outputs: ["modelChange", "userInput"] }, { kind: "component", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "allowLeadingZero", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
8950
9322
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnDateComponent, decorators: [{
8951
9323
  type: Component,
8952
9324
  args: [{ selector: 'foehn-input-date', providers: [
@@ -9018,7 +9390,7 @@ FoehnTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
9018
9390
  useExisting: forwardRef(() => FoehnTimeComponent),
9019
9391
  multi: true
9020
9392
  }
9021
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n </div>\n </fieldset>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
9393
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend *ngIf=\"!!label\" [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\">\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n </div>\n </fieldset>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "allowLeadingZero", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
9022
9394
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTimeComponent, decorators: [{
9023
9395
  type: Component,
9024
9396
  args: [{ selector: 'foehn-input-time', providers: [
@@ -9767,7 +10139,7 @@ const SWISS_ISO_ID = 'CH';
9767
10139
  class StreetNumber {
9768
10140
  }
9769
10141
  const isDefined = (value) => value === true || value === false;
9770
- const hasInputChanged$2 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
10142
+ const hasInputChanged$1 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
9771
10143
  class FoehnInputAddressComponent extends FoehnInputComponent {
9772
10144
  constructor(httpClient, ngZone, dictionaryService) {
9773
10145
  super();
@@ -9848,14 +10220,14 @@ class FoehnInputAddressComponent extends FoehnInputComponent {
9848
10220
  ngOnChanges(changes) {
9849
10221
  const modelChange = changes.model;
9850
10222
  const isOnlySwiss = changes.isOnlySwiss;
9851
- if (hasInputChanged$2(modelChange)) {
10223
+ if (hasInputChanged$1(modelChange)) {
9852
10224
  // When model changes, we ensure to not send "undefined" anymore
9853
10225
  const country = !!modelChange.currentValue
9854
10226
  ? modelChange.currentValue.country
9855
10227
  : null;
9856
10228
  this.countryModelChangeSubject.next(country);
9857
10229
  }
9858
- if (hasInputChanged$2(isOnlySwiss)) {
10230
+ if (hasInputChanged$1(isOnlySwiss)) {
9859
10231
  this.isOnlySwissChangeSubject.next(isOnlySwiss.currentValue);
9860
10232
  }
9861
10233
  }
@@ -10646,7 +11018,7 @@ FoehnInputNav13Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0
10646
11018
  useExisting: forwardRef(() => FoehnInputNav13Component),
10647
11019
  multi: true
10648
11020
  }
10649
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n [attr.for]=\"buildChildId()\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\"\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 </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--4-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--3-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part1Child'\"\n class=\"sr-only\"\n >\n Code du pays\n </label>\n <small\n [id]=\"buildId() + '_part1ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Etant obligatoirement un num\u00E9ro AVS suisse, ce\n champs est pr\u00E9rempli\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part1'\"\n [id]=\"buildId() + '_part1'\"\n [model]=\"PREFIX_NAVS\"\n [maxlength]=\"3\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n [disabled]=\"true\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part2Child'\"\n class=\"sr-only\"\n >\n Premiers chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part2ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 1234\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part2'\"\n [id]=\"buildId() + '_part2'\"\n [(model)]=\"part2\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n (paste)=\"onPaste($event)\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part3Child'\"\n class=\"sr-only\"\n >\n Deuxi\u00E8mes chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part3ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 5678\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part3'\"\n [id]=\"buildId() + '_part3'\"\n [(model)]=\"part3\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item vd-form-flex__item--3-char-width\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part4Child'\"\n class=\"sr-only\"\n >\n Chiffre al\u00E9atoire et anonyme et num\u00E9ro de contr\u00F4le\n </label>\n <small\n [id]=\"buildId() + '_part4ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir deux chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 97\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part4'\"\n [id]=\"buildId() + '_part4'\"\n [(model)]=\"part4\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"2\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n </div>\n </fieldset>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
11021
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n [attr.for]=\"buildChildId()\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\"\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 </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--4-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--3-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part1Child'\"\n class=\"sr-only\"\n >\n Code du pays\n </label>\n <small\n [id]=\"buildId() + '_part1ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Etant obligatoirement un num\u00E9ro AVS suisse, ce\n champs est pr\u00E9rempli\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part1'\"\n [id]=\"buildId() + '_part1'\"\n [model]=\"PREFIX_NAVS\"\n [maxlength]=\"3\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n [disabled]=\"true\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part2Child'\"\n class=\"sr-only\"\n >\n Premiers chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part2ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 1234\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part2'\"\n [id]=\"buildId() + '_part2'\"\n [(model)]=\"part2\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n (paste)=\"onPaste($event)\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part3Child'\"\n class=\"sr-only\"\n >\n Deuxi\u00E8mes chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part3ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 5678\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part3'\"\n [id]=\"buildId() + '_part3'\"\n [(model)]=\"part3\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item vd-form-flex__item--3-char-width\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part4Child'\"\n class=\"sr-only\"\n >\n Chiffre al\u00E9atoire et anonyme et num\u00E9ro de contr\u00F4le\n </label>\n <small\n [id]=\"buildId() + '_part4ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir deux chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 97\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part4'\"\n [id]=\"buildId() + '_part4'\"\n [(model)]=\"part4\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"2\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n </div>\n </fieldset>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "allowLeadingZero", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
10650
11022
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnInputNav13Component, decorators: [{
10651
11023
  type: Component,
10652
11024
  args: [{ selector: 'foehn-input-nav13', providers: [
@@ -10655,7 +11027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10655
11027
  useExisting: forwardRef(() => FoehnInputNav13Component),
10656
11028
  multi: true
10657
11029
  }
10658
- ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n [attr.for]=\"buildChildId()\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\"\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 </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--4-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--3-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part1Child'\"\n class=\"sr-only\"\n >\n Code du pays\n </label>\n <small\n [id]=\"buildId() + '_part1ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Etant obligatoirement un num\u00E9ro AVS suisse, ce\n champs est pr\u00E9rempli\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part1'\"\n [id]=\"buildId() + '_part1'\"\n [model]=\"PREFIX_NAVS\"\n [maxlength]=\"3\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n [disabled]=\"true\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part2Child'\"\n class=\"sr-only\"\n >\n Premiers chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part2ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 1234\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part2'\"\n [id]=\"buildId() + '_part2'\"\n [(model)]=\"part2\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n (paste)=\"onPaste($event)\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part3Child'\"\n class=\"sr-only\"\n >\n Deuxi\u00E8mes chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part3ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 5678\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part3'\"\n [id]=\"buildId() + '_part3'\"\n [(model)]=\"part3\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item vd-form-flex__item--3-char-width\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part4Child'\"\n class=\"sr-only\"\n >\n Chiffre al\u00E9atoire et anonyme et num\u00E9ro de contr\u00F4le\n </label>\n <small\n [id]=\"buildId() + '_part4ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir deux chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 97\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part4'\"\n [id]=\"buildId() + '_part4'\"\n [(model)]=\"part4\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"2\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n </div>\n </fieldset>\n</div>\n" }]
11030
+ ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n [attr.for]=\"buildChildId()\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : 'vd-p'\"\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 </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--4-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--3-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part1Child'\"\n class=\"sr-only\"\n >\n Code du pays\n </label>\n <small\n [id]=\"buildId() + '_part1ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Etant obligatoirement un num\u00E9ro AVS suisse, ce\n champs est pr\u00E9rempli\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part1'\"\n [id]=\"buildId() + '_part1'\"\n [model]=\"PREFIX_NAVS\"\n [maxlength]=\"3\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n [disabled]=\"true\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part2Child'\"\n class=\"sr-only\"\n >\n Premiers chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part2ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 1234\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part2'\"\n [id]=\"buildId() + '_part2'\"\n [(model)]=\"part2\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n (paste)=\"onPaste($event)\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div class=\"vd-form-flex__item vd-form-flex__item--4-char-width\">\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part3Child'\"\n class=\"sr-only\"\n >\n Deuxi\u00E8mes chiffres al\u00E9atoires et anonymes\n </label>\n <small\n [id]=\"buildId() + '_part3ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir quatres chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 5678\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part3'\"\n [id]=\"buildId() + '_part3'\"\n [(model)]=\"part3\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"4\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item vd-form-flex__item--3-char-width\"\n >\n <div class=\"form-group\">\n <label\n [attr.for]=\"buildId() + '_part4Child'\"\n class=\"sr-only\"\n >\n Chiffre al\u00E9atoire et anonyme et num\u00E9ro de contr\u00F4le\n </label>\n <small\n [id]=\"buildId() + '_part4ChildHelp'\"\n class=\"form-text text-secondary\"\n >\n <span class=\"sr-only\">\n Saisir deux chiffres :\n <abbr title=\"Exemple\">Ex.</abbr>\n : 97\n </span>\n </small>\n\n <foehn-input-number\n [name]=\"name + '_part4'\"\n [id]=\"buildId() + '_part4'\"\n [(model)]=\"part4\"\n (modelChange)=\"updateNavs()\"\n [maxlength]=\"2\"\n [autocomplete]=\"'off'\"\n [clearButton]=\"displayClearButton() | async\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n </div>\n </div>\n </fieldset>\n</div>\n" }]
10659
11031
  }] });
10660
11032
 
10661
11033
  class FoehnInputNav13Module {
@@ -11142,7 +11514,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
11142
11514
  }]
11143
11515
  }] });
11144
11516
 
11145
- const hasInputChanged$1 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
11517
+ const hasInputChanged = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
11146
11518
  class FoehnListComponent {
11147
11519
  constructor() {
11148
11520
  this.itemsPerPage = 10;
@@ -11163,9 +11535,9 @@ class FoehnListComponent {
11163
11535
  const itemsPerPageChange = changes.itemsPerPage;
11164
11536
  const listChange = changes.list;
11165
11537
  const fixedPageCountChange = changes.fixedPageCount;
11166
- if (!hasInputChanged$1(itemsPerPageChange) &&
11167
- !hasInputChanged$1(listChange) &&
11168
- !hasInputChanged$1(fixedPageCountChange)) {
11538
+ if (!hasInputChanged(itemsPerPageChange) &&
11539
+ !hasInputChanged(listChange) &&
11540
+ !hasInputChanged(fixedPageCountChange)) {
11169
11541
  return;
11170
11542
  }
11171
11543
  this.buildFilteredList();
@@ -11282,170 +11654,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
11282
11654
  class PageChangeEvent {
11283
11655
  }
11284
11656
 
11285
- const hasInputChanged = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
11286
- class FoehnTableComponent {
11287
- constructor() {
11288
- this.itemsPerPage = 10;
11289
- this.id = 'foehn-table';
11290
- this.previousLabel = 'Précédent';
11291
- this.nextLabel = 'Suivant';
11292
- this.pageChange = new EventEmitter();
11293
- this.sortChange = new EventEmitter();
11294
- this.currentPage = 1;
11295
- this.filteredList = [];
11296
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
11297
- this.trackByFn = (index, item) => index;
11298
- }
11299
- set list(list) {
11300
- this._list = list;
11301
- }
11302
- ngOnChanges(changes) {
11303
- const itemsPerPageChange = changes.itemsPerPage;
11304
- const listChange = changes.list;
11305
- const fixedPageCountChange = changes.fixedPageCount;
11306
- const sortInputChange = changes.sort;
11307
- if (!hasInputChanged(itemsPerPageChange) &&
11308
- !hasInputChanged(listChange) &&
11309
- !hasInputChanged(fixedPageCountChange) &&
11310
- !hasInputChanged(sortInputChange)) {
11311
- return;
11312
- }
11313
- this.buildFilteredList();
11314
- }
11315
- previousPage() {
11316
- this.currentPage = this.currentPage - 1;
11317
- this.buildFilteredList();
11318
- this.pageChange.next({
11319
- previousPage: this.currentPage + 1,
11320
- currentPage: this.currentPage,
11321
- pageCount: this.pagesCount()
11322
- });
11323
- }
11324
- hasPreviousPage() {
11325
- return this.currentPage > 1;
11326
- }
11327
- nextPage() {
11328
- this.currentPage = this.currentPage + 1;
11329
- this.buildFilteredList();
11330
- this.pageChange.next({
11331
- previousPage: this.currentPage - 1,
11332
- currentPage: this.currentPage,
11333
- pageCount: this.pagesCount()
11334
- });
11335
- }
11336
- hasNextPage() {
11337
- return this.currentPage < this.pagesCount();
11338
- }
11339
- showPage(page, emitPageChangeEvent = false) {
11340
- if (this.currentPage === page) {
11341
- return;
11342
- }
11343
- const previousPage = this.currentPage;
11344
- this.currentPage = page;
11345
- this.buildFilteredList();
11346
- if (emitPageChangeEvent) {
11347
- this.pageChange.next({
11348
- previousPage,
11349
- currentPage: this.currentPage,
11350
- pageCount: this.pagesCount()
11351
- });
11352
- }
11353
- }
11354
- pagesCount() {
11355
- if (!!this.fixedPageCount) {
11356
- return this.fixedPageCount;
11357
- }
11358
- return this._list
11359
- ? Math.ceil(this._list.length / this.itemsPerPage)
11360
- : 0;
11361
- }
11362
- triggerSort(sortAttribute) {
11363
- let sortDirection = 'DESC';
11364
- if (this.sort.sortAttribute === sortAttribute) {
11365
- sortDirection = this.sort.sortDirection === 'DESC' ? 'ASC' : 'DESC';
11366
- }
11367
- this.sortChange.next({
11368
- sortDirection,
11369
- sortAttribute
11370
- });
11371
- }
11372
- buildFilteredList() {
11373
- if (!this._list) {
11374
- this.filteredList = [];
11375
- return;
11376
- }
11377
- if (!!this.fixedPageCount) {
11378
- this.filteredList = this._list;
11379
- return;
11380
- }
11381
- const currentPageExists = (this.currentPage - 1) * this.itemsPerPage <= this._list.length;
11382
- if (!currentPageExists) {
11383
- this.currentPage = 1;
11384
- }
11385
- const start = (this.currentPage - 1) * this.itemsPerPage;
11386
- this.filteredList = this._list.slice(start, start + this.itemsPerPage);
11387
- }
11388
- }
11389
- FoehnTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11390
- FoehnTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FoehnTableComponent, selector: "foehn-table", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", totalElements: "totalElements", fixedPageCount: "fixedPageCount", columnsConfiguration: "columnsConfiguration", sort: "sort", list: "list", trackByFn: "trackByFn" }, outputs: { pageChange: "pageChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h4 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'foehn-table.totalElements.1' | fromDictionary }}\n </h4>\n <h4 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'foehn-table.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h4>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container\n *ngIf=\"!filteredList.length || !col.sortAttribute\"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container\n *ngIf=\"!!filteredList.length && !!col.sortAttribute\"\n >\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.iconGetter\">\n <span\n *ngIf=\"col.iconGetter(item) as iconDef\"\n class=\"cell-vertical-align-middle mr-2\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [icon]=\"iconDef.icon\"\n [title]=\"iconDef.label\"\n ></fa-icon>\n <span class=\"sr-only\">{{ iconDef.label }}</span>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.template\">\n <ng-template\n [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{\n item: item,\n index: index\n }\"\n ></ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!col.template\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!!columnsConfiguration && !filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">\n {{ 'foehn-table.totalElements.0' | fromDictionary }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}.cell-vertical-align-middle{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { kind: "component", type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] });
11391
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, decorators: [{
11392
- type: Component,
11393
- args: [{ selector: 'foehn-table', template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h4 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'foehn-table.totalElements.1' | fromDictionary }}\n </h4>\n <h4 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'foehn-table.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h4>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container\n *ngIf=\"!filteredList.length || !col.sortAttribute\"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container\n *ngIf=\"!!filteredList.length && !!col.sortAttribute\"\n >\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.iconGetter\">\n <span\n *ngIf=\"col.iconGetter(item) as iconDef\"\n class=\"cell-vertical-align-middle mr-2\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [icon]=\"iconDef.icon\"\n [title]=\"iconDef.label\"\n ></fa-icon>\n <span class=\"sr-only\">{{ iconDef.label }}</span>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.template\">\n <ng-template\n [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{\n item: item,\n index: index\n }\"\n ></ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!col.template\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!!columnsConfiguration && !filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">\n {{ 'foehn-table.totalElements.0' | fromDictionary }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}.cell-vertical-align-middle{vertical-align:middle}\n"] }]
11394
- }], propDecorators: { itemsPerPage: [{
11395
- type: Input
11396
- }], id: [{
11397
- type: Input
11398
- }], previousLabel: [{
11399
- type: Input
11400
- }], nextLabel: [{
11401
- type: Input
11402
- }], totalElements: [{
11403
- type: Input
11404
- }], fixedPageCount: [{
11405
- type: Input
11406
- }],
11407
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11408
- columnsConfiguration: [{
11409
- type: Input
11410
- }], pageChange: [{
11411
- type: Output
11412
- }], sort: [{
11413
- type: Input
11414
- }], sortChange: [{
11415
- type: Output
11416
- }], list: [{
11417
- type: Input
11418
- }],
11419
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
11420
- trackByFn: [{
11421
- type: Input
11422
- }] } });
11423
-
11424
- class FoehnTableModule {
11425
- }
11426
- FoehnTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11427
- FoehnTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, declarations: [FoehnTableComponent], imports: [CommonModule,
11428
- FoehnIconsModule,
11429
- SdkDictionaryModule,
11430
- RouterModule], exports: [FoehnTableComponent] });
11431
- FoehnTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, imports: [CommonModule,
11432
- FoehnIconsModule,
11433
- SdkDictionaryModule,
11434
- RouterModule] });
11435
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, decorators: [{
11436
- type: NgModule,
11437
- args: [{
11438
- imports: [
11439
- CommonModule,
11440
- FoehnIconsModule,
11441
- SdkDictionaryModule,
11442
- RouterModule
11443
- ],
11444
- declarations: [FoehnTableComponent],
11445
- exports: [FoehnTableComponent]
11446
- }]
11447
- }] });
11448
-
11449
11657
  class FoehnTableColumnConfiguration {
11450
11658
  }
11451
11659
 
@@ -14351,5 +14559,5 @@ class DropdownMenuItem {
14351
14559
  * Generated bundle index. Do not edit.
14352
14560
  */
14353
14561
 
14354
- export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Calendar, Canton, Captcha, ComponentError, Configuration, Country, CurrencyHelper, CurrentWeek, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_AND_NO_SWISS, DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE, DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE, DEFAULT_INTERNATIONAL_HELP_TEXT, DEFAULT_PREFIX, DEFAULT_SWISS_HELP_TEXT, DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT, DEFAULT_SWISS_PHONE_HELP_TEXT, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DaySlots, DisplayCurrencyPipe, DisplayDatePipe, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, DropdownMenuGroup, DropdownMenuItem, EPaymentService, EtapeInfo, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAddressModule, FoehnAgendaComponent, FoehnAgendaModule, FoehnAgendaNavigationComponent, FoehnAgendaTimeslotPanelComponent, FoehnAutocompleteComponent, FoehnAutocompleteModule, FoehnBoMultiUploadComponent, FoehnBoMultiUploadModule, FoehnBooleanCheckboxComponent, FoehnBooleanModule, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnBreadcrumbModule, FoehnCheckableGroupComponent, FoehnCheckablesModule, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalModule, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerButtonModule, FoehnDatePickerComponent, FoehnDatePickerModule, FoehnDateTimeComponent, FoehnDecisionElectroniqueComponent, FoehnDecisionElectroniqueModule, FoehnDisplayAddressComponent, FoehnDropdownMenuComponent, FoehnDropdownMenuModule, 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, FoehnIconUserComponent, FoehnIconsModule, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputModule, FoehnInputNav13Component, FoehnInputNav13Module, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputPrefixedTextComponent, 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, FoehnSimpleNavigationComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnStatusProgressBarModule, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTableModule, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnUploadProgressBarComponent, FoehnUploadProgressBarModule, 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, GesdemStatutUtils, GrowlBrokerService, GrowlMessage, GrowlType, HTTP_LOADER_FILTERED_URL, I18nForm, IbanFormatterDirective, IdeFormatterDirective, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, ObjectHelper, PORTAIL_BASE_URL_INT, PageChangeEvent, PaginationWeek, PendingFiles, PendingUploadService, PipeModule, PlaceOfOrigin, Portail, PostalLocality, Preferences, PrestationsNgCoreModule, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, RegisterNgModelService, SESSION_INFO_API_URL, SWISS_ISO_ID, SdkDictionaryModule, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEpaymentModule, SdkRecaptchaComponent, SdkRecaptchaModule, SdkRedirectModule, SdkStatisticsService, SelectedSlot, ServiceLocator, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, THOUSANDS_SEPARATOR, TableSort, UploadProgress, UploadProgressService, UploaderHelper, ValidationHandlerService, formatDecimalCurrency, formatNonDecimalCurrency, formatNumberAsGiven, gesdemLoaderGuard, getSafeReference, replaceAll };
14562
+ export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Calendar, Canton, Captcha, ComponentError, Configuration, Country, CurrencyHelper, CurrentWeek, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_AND_NO_SWISS, DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE, DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE, DEFAULT_INTERNATIONAL_HELP_TEXT, DEFAULT_PREFIX, DEFAULT_SWISS_HELP_TEXT, DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT, DEFAULT_SWISS_PHONE_HELP_TEXT, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DaySlots, DisplayCurrencyPipe, DisplayDatePipe, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, DropdownMenuGroup, DropdownMenuItem, EPaymentService, EtapeInfo, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAddressModule, FoehnAgendaComponent, FoehnAgendaModule, FoehnAgendaNavigationComponent, FoehnAgendaTimeslotPanelComponent, FoehnAutocompleteComponent, FoehnAutocompleteModule, FoehnBoMultiUploadComponent, FoehnBoMultiUploadModule, FoehnBooleanCheckboxComponent, FoehnBooleanModule, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnBreadcrumbModule, FoehnCheckableGroupComponent, FoehnCheckablesModule, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalModule, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerButtonModule, FoehnDatePickerComponent, FoehnDatePickerModule, FoehnDateTimeComponent, FoehnDecisionElectroniqueComponent, FoehnDecisionElectroniqueModule, FoehnDisplayAddressComponent, FoehnDropdownMenuComponent, FoehnDropdownMenuModule, FoehnErrorPillComponent, FoehnFormComponent, FoehnFormModule, FoehnHeaderComponent, FoehnHeaderModule, FoehnHelpModalComponent, FoehnHelpModalModule, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPencilComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconUserComponent, FoehnIconsModule, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputModule, FoehnInputNav13Component, FoehnInputNav13Module, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputPrefixedTextComponent, 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, FoehnSimpleNavigationComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnStatusProgressBarModule, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTableModule, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnUploadProgressBarComponent, FoehnUploadProgressBarModule, 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, GesdemStatutUtils, GrowlBrokerService, GrowlMessage, GrowlType, HTTP_LOADER_FILTERED_URL, I18nForm, IbanFormatterDirective, IdeFormatterDirective, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, ObjectHelper, PORTAIL_BASE_URL_INT, PageChangeEvent, PaginationWeek, PendingFiles, PendingUploadService, PipeModule, PlaceOfOrigin, Portail, PostalLocality, Preferences, PrestationsNgCoreModule, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, RegisterNgModelService, SESSION_INFO_API_URL, SWISS_ISO_ID, SdkDictionaryModule, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEpaymentModule, SdkRecaptchaComponent, SdkRecaptchaModule, SdkRedirectModule, SdkStatisticsService, SelectedSlot, ServiceLocator, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, THOUSANDS_SEPARATOR, TableSort, UploadProgress, UploadProgressService, UploaderHelper, ValidationHandlerService, formatDecimalCurrency, formatNonDecimalCurrency, formatNumberAsGiven, gesdemLoaderGuard, getSafeReference, replaceAll };
14355
14563
  //# sourceMappingURL=dsivd-prestations-ng.mjs.map