@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';
@@ -705,6 +705,16 @@ const GrowlType = {
705
705
  };
706
706
 
707
707
  const DEFAULT_DICTIONARY = {
708
+ 'draft-container.button.show-drafts': 'Demandes en cours de saisie : {draftsLength}',
709
+ 'draft-container.modal.title': 'Il existe déjà une ou plusieurs demandes en cours de saisie',
710
+ 'draft-container.modal.close.button': 'Fermer',
711
+ 'draft-container.modal.drafts-in-es.button': 'Toutes mes demandes en cours de saisie',
712
+ 'draft-container.list.reference.label': 'Référence',
713
+ 'draft-container.list.reference.link': 'Reprendre la demande {reference}',
714
+ 'draft-container.list.modificationDate.label': 'Date de modification',
715
+ 'draft-container.list.referenceInterne.label': 'Votre référence',
716
+ 'draft-container.list.details-in-es.label': 'Détails',
717
+ 'draft-container.list.details-in-es.link': "Consulter la demande {reference} dans l'espace sécurisé",
708
718
  'foehn-decision-electronique.title': 'Autorisation de notification des décisions par voie électronique',
709
719
  'foehn-decision-electronique.info': 'Votre demande est sur le point d’être envoyée. ' +
710
720
  'Conformément à l’art. 44a LPA-VD, l’autorité peut notifier ses décisions par voie électronique ' +
@@ -4298,6 +4308,549 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
4298
4308
  }]
4299
4309
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: ApplicationInfoService }, { type: FoehnPageService }]; } });
4300
4310
 
4311
+ class DraftsService {
4312
+ constructor(http, sessionInfo, gesdemHandlerService, gesdemEventService) {
4313
+ this.http = http;
4314
+ this.sessionInfo = sessionInfo;
4315
+ this.gesdemHandlerService = gesdemHandlerService;
4316
+ this.gesdemEventService = gesdemEventService;
4317
+ this.draftsUrl = new BehaviorSubject('');
4318
+ const hasReferenceObservable = merge(
4319
+ // To have an initial value. Can be null if there is no form.
4320
+ of(this.gesdemHandlerService.lastResponse),
4321
+ // Read the form from GesDem
4322
+ this.gesdemEventService.formInitializationObservable()).pipe(map(form => !!form &&
4323
+ !!this.gesdemHandlerService.lastResponse?.meta?.reference));
4324
+ this.allDrafts = combineLatest([
4325
+ this.draftsUrl,
4326
+ hasReferenceObservable,
4327
+ this.sessionInfo.data
4328
+ ]).pipe(switchMap(([url, hasReference, sessionInfoData]) => {
4329
+ if (!url || hasReference || !sessionInfoData?.context) {
4330
+ return of(null);
4331
+ }
4332
+ return this.http.get(url).pipe(catchError((e) => {
4333
+ console.error('Unable to get dratfs, returning an empty array', e);
4334
+ return of([]);
4335
+ }));
4336
+ }));
4337
+ }
4338
+ setDraftsUrl(draftsUrl) {
4339
+ this.draftsUrl.next(draftsUrl);
4340
+ }
4341
+ getAllDrafts() {
4342
+ return this.allDrafts;
4343
+ }
4344
+ }
4345
+ 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 });
4346
+ DraftsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsService, providedIn: 'root' });
4347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsService, decorators: [{
4348
+ type: Injectable,
4349
+ args: [{
4350
+ providedIn: 'root'
4351
+ }]
4352
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: SessionInfo }, { type: GesdemHandlerService }, { type: GesdemEventService }]; } });
4353
+
4354
+ dayjs.extend(isToday);
4355
+ class DateHelper {
4356
+ constructor() {
4357
+ this.locale = 'fr-CH';
4358
+ this.dateFormat = 'dd.MM.yyyy';
4359
+ this.dateTimeFormat = 'dd.MM.yyyy HH:mm:ss';
4360
+ registerLocaleData(localeFr, 'fr-CH');
4361
+ this.datePipe = new DatePipe(this.locale);
4362
+ }
4363
+ static isValidArray(value) {
4364
+ return (!!value &&
4365
+ value.length > 2 &&
4366
+ !!value[0] &&
4367
+ !!value[1] &&
4368
+ !!value[2]);
4369
+ }
4370
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4371
+ mapToDateFromNumberArray(object, ...fieldsNames) {
4372
+ if (object) {
4373
+ fieldsNames.forEach(fieldPath => {
4374
+ object[fieldPath] = this.toDateFromNumberArray(object[fieldPath]);
4375
+ });
4376
+ }
4377
+ return object;
4378
+ }
4379
+ mapAllToDateFromNumberArray(
4380
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4381
+ objects, ...fieldsNames) {
4382
+ if (objects) {
4383
+ objects.forEach(object => {
4384
+ this.mapToDateFromNumberArray(object, ...fieldsNames);
4385
+ });
4386
+ }
4387
+ return objects;
4388
+ }
4389
+ toDateFromNumberArray(dateInArray) {
4390
+ if (dateInArray) {
4391
+ if (dateInArray.length === 3) {
4392
+ return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2]);
4393
+ }
4394
+ else if (dateInArray.length === 5) {
4395
+ // because when time is 00:00:00 the array does not contain the seconds.
4396
+ return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4]);
4397
+ }
4398
+ else if (dateInArray.length >= 6) {
4399
+ return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4], dateInArray[5]);
4400
+ }
4401
+ throw new Error(`Date in number[] format has wrong number of numbers : ${dateInArray.length}`);
4402
+ }
4403
+ return null;
4404
+ }
4405
+ arrayToDisplayDateDMY(d, showTime) {
4406
+ if (showTime) {
4407
+ return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateTimeFormat);
4408
+ }
4409
+ else {
4410
+ return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateFormat);
4411
+ }
4412
+ }
4413
+ toDayjsFromNumberArray(value) {
4414
+ if (DateHelper.isValidArray(value)) {
4415
+ const dateAsString = `${value[0]}-${value[1]}-${value[2]}`;
4416
+ return dayjs(dateAsString);
4417
+ }
4418
+ return null;
4419
+ }
4420
+ isValid(value) {
4421
+ // date is incomplete
4422
+ if (!DateHelper.isValidArray(value)) {
4423
+ return false;
4424
+ }
4425
+ // date cannot be parsed
4426
+ if (!this.toDayjsFromNumberArray(value)) {
4427
+ return false;
4428
+ }
4429
+ // date has not been shifted (i.e. 30.02.2021 -> 01.03.2021)
4430
+ const asString = `${value[0]}-${value[1]}-${value[2]}`;
4431
+ const asStringFromDayJS = this.toDayjsFromNumberArray(value).format('YYYY-M-D');
4432
+ return asString === asStringFromDayJS;
4433
+ }
4434
+ isToday(value) {
4435
+ return (DateHelper.isValidArray(value) &&
4436
+ this.toDayjsFromNumberArray(value).isToday());
4437
+ }
4438
+ leftPad(num) {
4439
+ if (num === undefined || num === null) {
4440
+ return '';
4441
+ }
4442
+ if (num.length === 1) {
4443
+ return `0${num}`;
4444
+ }
4445
+ return num;
4446
+ }
4447
+ }
4448
+ DateHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4449
+ DateHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, providedIn: 'root' });
4450
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, decorators: [{
4451
+ type: Injectable,
4452
+ args: [{
4453
+ providedIn: 'root'
4454
+ }]
4455
+ }], ctorParameters: function () { return []; } });
4456
+
4457
+ class FoehnIconExternalLinkAltComponent extends AbstractIconComponent {
4458
+ constructor() {
4459
+ super(...arguments);
4460
+ this.iconName = faExternalLinkAlt;
4461
+ this.defaultTitle = 'Lien externe (nouvel onglet)';
4462
+ }
4463
+ }
4464
+ FoehnIconExternalLinkAltComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4465
+ 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"] }] });
4466
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, decorators: [{
4467
+ type: Component,
4468
+ 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" }]
4469
+ }] });
4470
+
4471
+ class FoehnIconPencilComponent extends AbstractIconComponent {
4472
+ constructor() {
4473
+ super(...arguments);
4474
+ this.iconName = faPencil;
4475
+ this.defaultTitle = 'Edition';
4476
+ }
4477
+ }
4478
+ FoehnIconPencilComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconPencilComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4479
+ 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"] }] });
4480
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconPencilComponent, decorators: [{
4481
+ type: Component,
4482
+ 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" }]
4483
+ }] });
4484
+
4485
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4486
+ class ObjectHelper {
4487
+ /**
4488
+ * Angular uses object identity to select option. It's possible for the identities of items to change while the data does not.
4489
+ * This can happen, for example, if the items are produced from an RPC to the server, and that RPC is re-run.
4490
+ * Even if the data hasn't changed, the second response will produce objects with different identities.
4491
+ * (see: https://angular.io/api/forms/SelectControlValueAccessor#customizing-option-selection)
4492
+ *
4493
+ * @param value1 as first value to compare to
4494
+ * @param value2 as value to be compared to
4495
+ * @returns boolean
4496
+ */
4497
+ static isEqual(value1, value2) {
4498
+ if (value1 &&
4499
+ value2 &&
4500
+ typeof value1 === 'object' &&
4501
+ typeof value2 === 'object') {
4502
+ const matches = (obj, source) => Object.keys(source).length === Object.keys(obj).length &&
4503
+ Object.keys(source).every(key => {
4504
+ if (obj.hasOwnProperty(key)) {
4505
+ if (obj[key] &&
4506
+ source[key] &&
4507
+ typeof obj[key] === 'object' &&
4508
+ typeof source[key] === 'object') {
4509
+ return matches(obj[key], source[key]);
4510
+ }
4511
+ return obj[key] === source[key];
4512
+ }
4513
+ return false;
4514
+ });
4515
+ return matches(value1, value2);
4516
+ }
4517
+ return value1 === value2;
4518
+ }
4519
+ static hasAnyValue(value) {
4520
+ // do not simplify with an inline variable result due to compilation error
4521
+ const result = Object.keys(value).some(key => {
4522
+ if (value[key] && typeof value[key] === 'object') {
4523
+ return ObjectHelper.hasAnyValue(value[key]);
4524
+ }
4525
+ return !!value[key];
4526
+ });
4527
+ return result;
4528
+ }
4529
+ static isEmpty(value) {
4530
+ return !ObjectHelper.hasAnyValue(value);
4531
+ }
4532
+ /**
4533
+ * Deep copy is a true copy for nested objects
4534
+ * Often, shallow copy is good enough and you will not need a deep copy.
4535
+ * A shallow copy means the first level is copied, deeper levels are referenced.
4536
+ *
4537
+ * Examples of shallow copy :
4538
+ * const shallowClone = { ...nestedObject };
4539
+ * const shallowClone = Object.assign({}, nestedObject);
4540
+ *
4541
+ * @param obj is the object to copied
4542
+ * @returns obj
4543
+ */
4544
+ static deepCopy(obj) {
4545
+ if (!obj || typeof obj !== 'object') {
4546
+ return obj;
4547
+ }
4548
+ let copy;
4549
+ if (obj instanceof Date) {
4550
+ copy = new Date();
4551
+ copy.setTime(obj.getTime());
4552
+ return copy;
4553
+ }
4554
+ if (obj instanceof Array) {
4555
+ copy = [];
4556
+ for (let i = 0, len = obj.length; i < len; i++) {
4557
+ copy[i] = ObjectHelper.deepCopy(obj[i]);
4558
+ }
4559
+ return copy;
4560
+ }
4561
+ if (obj instanceof Object) {
4562
+ copy = {};
4563
+ for (const attr in obj) {
4564
+ if (obj.hasOwnProperty(attr)) {
4565
+ copy[attr] = ObjectHelper.deepCopy(obj[attr]);
4566
+ }
4567
+ }
4568
+ return copy;
4569
+ }
4570
+ throw new Error('Unable to copy obj! Type not supported.');
4571
+ }
4572
+ }
4573
+
4574
+ class FoehnIconChevronDownComponent extends AbstractIconComponent {
4575
+ constructor() {
4576
+ super(...arguments);
4577
+ this.iconName = faChevronDown;
4578
+ this.defaultTitle = 'Flèche vers le bas';
4579
+ }
4580
+ }
4581
+ FoehnIconChevronDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4582
+ 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"] }] });
4583
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, decorators: [{
4584
+ type: Component,
4585
+ 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" }]
4586
+ }] });
4587
+
4588
+ class FoehnIconChevronUpComponent extends AbstractIconComponent {
4589
+ constructor() {
4590
+ super(...arguments);
4591
+ this.iconName = faChevronUp;
4592
+ this.defaultTitle = 'Flèche vers le haut';
4593
+ }
4594
+ }
4595
+ FoehnIconChevronUpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4596
+ 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"] }] });
4597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, decorators: [{
4598
+ type: Component,
4599
+ 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" }]
4600
+ }] });
4601
+
4602
+ class FoehnIconChevronLeftComponent extends AbstractIconComponent {
4603
+ constructor() {
4604
+ super(...arguments);
4605
+ this.iconName = faChevronLeft;
4606
+ this.defaultTitle = 'Flèche vers la gauche';
4607
+ }
4608
+ }
4609
+ FoehnIconChevronLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4610
+ 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"] }] });
4611
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, decorators: [{
4612
+ type: Component,
4613
+ 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" }]
4614
+ }] });
4615
+
4616
+ class FoehnIconChevronRightComponent extends AbstractIconComponent {
4617
+ constructor() {
4618
+ super(...arguments);
4619
+ this.iconName = faChevronRight;
4620
+ this.defaultTitle = 'Flèche vers la droite';
4621
+ }
4622
+ }
4623
+ FoehnIconChevronRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4624
+ 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"] }] });
4625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, decorators: [{
4626
+ type: Component,
4627
+ 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" }]
4628
+ }] });
4629
+
4630
+ const hasInputChanged$2 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
4631
+ class FoehnTableComponent {
4632
+ constructor() {
4633
+ this.itemsPerPage = 10;
4634
+ this.id = 'foehn-table';
4635
+ this.previousLabel = 'Précédent';
4636
+ this.nextLabel = 'Suivant';
4637
+ this.pageChange = new EventEmitter();
4638
+ this.sortChange = new EventEmitter();
4639
+ this.currentPage = 1;
4640
+ this.filteredList = [];
4641
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4642
+ this.trackByFn = (index, item) => index;
4643
+ }
4644
+ set list(list) {
4645
+ this._list = list;
4646
+ }
4647
+ ngOnChanges(changes) {
4648
+ const itemsPerPageChange = changes.itemsPerPage;
4649
+ const listChange = changes.list;
4650
+ const fixedPageCountChange = changes.fixedPageCount;
4651
+ const sortInputChange = changes.sort;
4652
+ if (!hasInputChanged$2(itemsPerPageChange) &&
4653
+ !hasInputChanged$2(listChange) &&
4654
+ !hasInputChanged$2(fixedPageCountChange) &&
4655
+ !hasInputChanged$2(sortInputChange)) {
4656
+ return;
4657
+ }
4658
+ this.buildFilteredList();
4659
+ }
4660
+ previousPage() {
4661
+ this.currentPage = this.currentPage - 1;
4662
+ this.buildFilteredList();
4663
+ this.pageChange.next({
4664
+ previousPage: this.currentPage + 1,
4665
+ currentPage: this.currentPage,
4666
+ pageCount: this.pagesCount()
4667
+ });
4668
+ }
4669
+ hasPreviousPage() {
4670
+ return this.currentPage > 1;
4671
+ }
4672
+ nextPage() {
4673
+ this.currentPage = this.currentPage + 1;
4674
+ this.buildFilteredList();
4675
+ this.pageChange.next({
4676
+ previousPage: this.currentPage - 1,
4677
+ currentPage: this.currentPage,
4678
+ pageCount: this.pagesCount()
4679
+ });
4680
+ }
4681
+ hasNextPage() {
4682
+ return this.currentPage < this.pagesCount();
4683
+ }
4684
+ showPage(page, emitPageChangeEvent = false) {
4685
+ if (this.currentPage === page) {
4686
+ return;
4687
+ }
4688
+ const previousPage = this.currentPage;
4689
+ this.currentPage = page;
4690
+ this.buildFilteredList();
4691
+ if (emitPageChangeEvent) {
4692
+ this.pageChange.next({
4693
+ previousPage,
4694
+ currentPage: this.currentPage,
4695
+ pageCount: this.pagesCount()
4696
+ });
4697
+ }
4698
+ }
4699
+ pagesCount() {
4700
+ if (!!this.fixedPageCount) {
4701
+ return this.fixedPageCount;
4702
+ }
4703
+ return this._list
4704
+ ? Math.ceil(this._list.length / this.itemsPerPage)
4705
+ : 0;
4706
+ }
4707
+ triggerSort(sortAttribute) {
4708
+ let sortDirection = 'DESC';
4709
+ if (this.sort.sortAttribute === sortAttribute) {
4710
+ sortDirection = this.sort.sortDirection === 'DESC' ? 'ASC' : 'DESC';
4711
+ }
4712
+ this.sortChange.next({
4713
+ sortDirection,
4714
+ sortAttribute
4715
+ });
4716
+ }
4717
+ buildFilteredList() {
4718
+ if (!this._list) {
4719
+ this.filteredList = [];
4720
+ return;
4721
+ }
4722
+ if (!!this.fixedPageCount) {
4723
+ this.filteredList = this._list;
4724
+ return;
4725
+ }
4726
+ const currentPageExists = (this.currentPage - 1) * this.itemsPerPage <= this._list.length;
4727
+ if (!currentPageExists) {
4728
+ this.currentPage = 1;
4729
+ }
4730
+ const start = (this.currentPage - 1) * this.itemsPerPage;
4731
+ this.filteredList = this._list.slice(start, start + this.itemsPerPage);
4732
+ }
4733
+ }
4734
+ FoehnTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4735
+ 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" }] });
4736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, decorators: [{
4737
+ type: Component,
4738
+ 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"] }]
4739
+ }], propDecorators: { itemsPerPage: [{
4740
+ type: Input
4741
+ }], id: [{
4742
+ type: Input
4743
+ }], previousLabel: [{
4744
+ type: Input
4745
+ }], nextLabel: [{
4746
+ type: Input
4747
+ }], totalElements: [{
4748
+ type: Input
4749
+ }], fixedPageCount: [{
4750
+ type: Input
4751
+ }],
4752
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4753
+ columnsConfiguration: [{
4754
+ type: Input
4755
+ }], pageChange: [{
4756
+ type: Output
4757
+ }], sort: [{
4758
+ type: Input
4759
+ }], sortChange: [{
4760
+ type: Output
4761
+ }], list: [{
4762
+ type: Input
4763
+ }],
4764
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4765
+ trackByFn: [{
4766
+ type: Input
4767
+ }] } });
4768
+
4769
+ const DEFAULT_DRAFTS_URL = 'api/{etapeId}/drafts';
4770
+ class DraftsContainerComponent {
4771
+ constructor(draftsService, dateHelper, router, applicationInfoService) {
4772
+ this.draftsService = draftsService;
4773
+ this.dateHelper = dateHelper;
4774
+ this.router = router;
4775
+ this.applicationInfoService = applicationInfoService;
4776
+ this.draftsHidden = false;
4777
+ this.draftsToDisplay = this.draftsService.getAllDrafts();
4778
+ this.espaceSecuriseUrl = this.applicationInfoService.getSafeEspacesSecuriseUrl();
4779
+ this.etapeTitle = this.applicationInfoService.currentEtapeInfo.pipe(map(etape => etape.titreEtape));
4780
+ }
4781
+ ngAfterViewInit() {
4782
+ this.columnsConfiguration = [
4783
+ {
4784
+ id: 'reference',
4785
+ columnLabelKey: 'draft-container.list.reference.label',
4786
+ template: this.referenceLink
4787
+ },
4788
+ {
4789
+ id: 'modificationDate',
4790
+ columnLabelKey: 'draft-container.list.modificationDate.label',
4791
+ valueGetter: item => this.dateHelper.arrayToDisplayDateDMY(item.modificationDate, true)
4792
+ },
4793
+ {
4794
+ id: 'referenceInterne',
4795
+ columnLabelKey: 'draft-container.list.referenceInterne.label',
4796
+ valueGetter: item => item.referenceInterne || '-'
4797
+ },
4798
+ {
4799
+ id: 'linkToES',
4800
+ columnLabelKey: 'draft-container.list.details-in-es.label',
4801
+ template: this.detailLink
4802
+ }
4803
+ ];
4804
+ }
4805
+ showDrafts() {
4806
+ this.draftsHidden = false;
4807
+ }
4808
+ hideDrafts() {
4809
+ this.draftsHidden = true;
4810
+ }
4811
+ ngOnChanges(changes) {
4812
+ const etapeIdChange = changes.etapeId;
4813
+ if (etapeIdChange && etapeIdChange.currentValue) {
4814
+ // Change the URL of the drafts when the etapeId is set.
4815
+ this.draftsService.setDraftsUrl(this.formatUrl(etapeIdChange.currentValue));
4816
+ return;
4817
+ }
4818
+ // We want to support the use-case wheter the etapeId isn't defined.
4819
+ const draftsUrl = changes.draftsUrl;
4820
+ if (draftsUrl && draftsUrl.currentValue) {
4821
+ // Change the URL of the drafts when the etapeId is set.
4822
+ this.draftsService.setDraftsUrl(draftsUrl.currentValue);
4823
+ return;
4824
+ }
4825
+ }
4826
+ resumeDraft(draft) {
4827
+ this.router.navigate([`/${draft.reference}`]);
4828
+ this.draftsHidden = true;
4829
+ }
4830
+ formatUrl(etapeId) {
4831
+ const url = this.draftsUrl || DEFAULT_DRAFTS_URL;
4832
+ return !!etapeId
4833
+ ? url.replace('{etapeId}', etapeId)
4834
+ : url.replace('{etapeId}/', '');
4835
+ }
4836
+ }
4837
+ 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 });
4838
+ 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" }] });
4839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsContainerComponent, decorators: [{
4840
+ type: Component,
4841
+ 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"] }]
4842
+ }], ctorParameters: function () { return [{ type: DraftsService }, { type: DateHelper }, { type: i1$1.Router }, { type: ApplicationInfoService }]; }, propDecorators: { referenceLink: [{
4843
+ type: ViewChild,
4844
+ args: ['referenceLink']
4845
+ }], detailLink: [{
4846
+ type: ViewChild,
4847
+ args: ['detailLink']
4848
+ }], etapeId: [{
4849
+ type: Input
4850
+ }], draftsUrl: [{
4851
+ type: Input
4852
+ }] } });
4853
+
4301
4854
  class FoehnConfirmModalService {
4302
4855
  constructor() {
4303
4856
  this.content = new BehaviorSubject(null);
@@ -4431,137 +4984,48 @@ class FoehnGrowlComponent {
4431
4984
  this._messages.push(message);
4432
4985
  setTimeout(() => this.hideMessage(message), !!message.timeToDisplayInSeconds
4433
4986
  ? message.timeToDisplayInSeconds * 1000
4434
- : DEFAULT_DISPLAY_TIME);
4435
- }
4436
- });
4437
- }
4438
- get messages() {
4439
- return this._messages;
4440
- }
4441
- ngOnDestroy() {
4442
- this.addMessageObserver.unsubscribe();
4443
- }
4444
- hideMessage(message) {
4445
- message.isVisible = false;
4446
- }
4447
- removeMessage(message) {
4448
- if (this.messages.includes(message)) {
4449
- this.messages.splice(this.messages.indexOf(message), 1);
4450
- }
4451
- }
4452
- cssTransitionEnd(message) {
4453
- this.removeMessage(message);
4454
- }
4455
- }
4456
- FoehnGrowlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, deps: [{ token: GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Component });
4457
- 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"] }] });
4458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, decorators: [{
4459
- type: Component,
4460
- 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"] }]
4461
- }], ctorParameters: function () { return [{ type: GrowlBrokerService }]; } });
4462
-
4463
- class FoehnIconUserComponent extends AbstractIconComponent {
4464
- constructor() {
4465
- super(...arguments);
4466
- this.iconName = faUser;
4467
- this.defaultTitle = 'Utilisateur';
4468
- }
4469
- }
4470
- FoehnIconUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4471
- 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"] }] });
4472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, decorators: [{
4473
- type: Component,
4474
- 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" }]
4475
- }] });
4476
-
4477
- /* eslint-disable @typescript-eslint/no-explicit-any */
4478
- class ObjectHelper {
4479
- /**
4480
- * Angular uses object identity to select option. It's possible for the identities of items to change while the data does not.
4481
- * This can happen, for example, if the items are produced from an RPC to the server, and that RPC is re-run.
4482
- * Even if the data hasn't changed, the second response will produce objects with different identities.
4483
- * (see: https://angular.io/api/forms/SelectControlValueAccessor#customizing-option-selection)
4484
- *
4485
- * @param value1 as first value to compare to
4486
- * @param value2 as value to be compared to
4487
- * @returns boolean
4488
- */
4489
- static isEqual(value1, value2) {
4490
- if (value1 &&
4491
- value2 &&
4492
- typeof value1 === 'object' &&
4493
- typeof value2 === 'object') {
4494
- const matches = (obj, source) => Object.keys(source).length === Object.keys(obj).length &&
4495
- Object.keys(source).every(key => {
4496
- if (obj.hasOwnProperty(key)) {
4497
- if (obj[key] &&
4498
- source[key] &&
4499
- typeof obj[key] === 'object' &&
4500
- typeof source[key] === 'object') {
4501
- return matches(obj[key], source[key]);
4502
- }
4503
- return obj[key] === source[key];
4504
- }
4505
- return false;
4506
- });
4507
- return matches(value1, value2);
4508
- }
4509
- return value1 === value2;
4510
- }
4511
- static hasAnyValue(value) {
4512
- // do not simplify with an inline variable result due to compilation error
4513
- const result = Object.keys(value).some(key => {
4514
- if (value[key] && typeof value[key] === 'object') {
4515
- return ObjectHelper.hasAnyValue(value[key]);
4987
+ : DEFAULT_DISPLAY_TIME);
4516
4988
  }
4517
- return !!value[key];
4518
4989
  });
4519
- return result;
4520
4990
  }
4521
- static isEmpty(value) {
4522
- return !ObjectHelper.hasAnyValue(value);
4991
+ get messages() {
4992
+ return this._messages;
4523
4993
  }
4524
- /**
4525
- * Deep copy is a true copy for nested objects
4526
- * Often, shallow copy is good enough and you will not need a deep copy.
4527
- * A shallow copy means the first level is copied, deeper levels are referenced.
4528
- *
4529
- * Examples of shallow copy :
4530
- * const shallowClone = { ...nestedObject };
4531
- * const shallowClone = Object.assign({}, nestedObject);
4532
- *
4533
- * @param obj is the object to copied
4534
- * @returns obj
4535
- */
4536
- static deepCopy(obj) {
4537
- if (!obj || typeof obj !== 'object') {
4538
- return obj;
4539
- }
4540
- let copy;
4541
- if (obj instanceof Date) {
4542
- copy = new Date();
4543
- copy.setTime(obj.getTime());
4544
- return copy;
4545
- }
4546
- if (obj instanceof Array) {
4547
- copy = [];
4548
- for (let i = 0, len = obj.length; i < len; i++) {
4549
- copy[i] = ObjectHelper.deepCopy(obj[i]);
4550
- }
4551
- return copy;
4552
- }
4553
- if (obj instanceof Object) {
4554
- copy = {};
4555
- for (const attr in obj) {
4556
- if (obj.hasOwnProperty(attr)) {
4557
- copy[attr] = ObjectHelper.deepCopy(obj[attr]);
4558
- }
4559
- }
4560
- return copy;
4994
+ ngOnDestroy() {
4995
+ this.addMessageObserver.unsubscribe();
4996
+ }
4997
+ hideMessage(message) {
4998
+ message.isVisible = false;
4999
+ }
5000
+ removeMessage(message) {
5001
+ if (this.messages.includes(message)) {
5002
+ this.messages.splice(this.messages.indexOf(message), 1);
4561
5003
  }
4562
- throw new Error('Unable to copy obj! Type not supported.');
5004
+ }
5005
+ cssTransitionEnd(message) {
5006
+ this.removeMessage(message);
5007
+ }
5008
+ }
5009
+ FoehnGrowlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, deps: [{ token: GrowlBrokerService }], target: i0.ɵɵFactoryTarget.Component });
5010
+ 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"] }] });
5011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnGrowlComponent, decorators: [{
5012
+ type: Component,
5013
+ 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"] }]
5014
+ }], ctorParameters: function () { return [{ type: GrowlBrokerService }]; } });
5015
+
5016
+ class FoehnIconUserComponent extends AbstractIconComponent {
5017
+ constructor() {
5018
+ super(...arguments);
5019
+ this.iconName = faUser;
5020
+ this.defaultTitle = 'Utilisateur';
4563
5021
  }
4564
5022
  }
5023
+ FoehnIconUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5024
+ 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"] }] });
5025
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconUserComponent, decorators: [{
5026
+ type: Component,
5027
+ 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" }]
5028
+ }] });
4565
5029
 
4566
5030
  class FormSelectOptionGroup {
4567
5031
  }
@@ -5294,20 +5758,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5294
5758
  type: Input
5295
5759
  }] } });
5296
5760
 
5297
- class FoehnIconChevronUpComponent extends AbstractIconComponent {
5298
- constructor() {
5299
- super(...arguments);
5300
- this.iconName = faChevronUp;
5301
- this.defaultTitle = 'Flèche vers le haut';
5302
- }
5303
- }
5304
- FoehnIconChevronUpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5305
- 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"] }] });
5306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronUpComponent, decorators: [{
5307
- type: Component,
5308
- 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" }]
5309
- }] });
5310
-
5311
5761
  const GUIDE_URL = 'https://www.vd.ch/index.php?id=67827';
5312
5762
  const TERM_OF_USE_URL = 'https://www.vd.ch/index.php?id=2015321';
5313
5763
  const SECURITY_BEST_PRACTICE_URL = 'https://www.vd.ch/index.php?id=2015320';
@@ -5559,20 +6009,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5559
6009
  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" }]
5560
6010
  }], ctorParameters: function () { return [{ type: FoehnConfirmModalService }]; } });
5561
6011
 
5562
- class FoehnIconExternalLinkAltComponent extends AbstractIconComponent {
5563
- constructor() {
5564
- super(...arguments);
5565
- this.iconName = faExternalLinkAlt;
5566
- this.defaultTitle = 'Lien externe (nouvel onglet)';
5567
- }
5568
- }
5569
- FoehnIconExternalLinkAltComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5570
- 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"] }] });
5571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconExternalLinkAltComponent, decorators: [{
5572
- type: Component,
5573
- 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" }]
5574
- }] });
5575
-
5576
6012
  class FoehnStatusProgressBarComponent {
5577
6013
  constructor(activatedRoute, navigation, gesdemEventService, gesdemHand) {
5578
6014
  this.activatedRoute = activatedRoute;
@@ -5680,6 +6116,7 @@ class FoehnPageComponent {
5680
6116
  this.sdkDictionaryService = sdkDictionaryService;
5681
6117
  this.statisticsService = statisticsService;
5682
6118
  this.supportAlertEnabled = true;
6119
+ this.draftsEnabled = true;
5683
6120
  this.userConnectedAsDisplayed = true;
5684
6121
  this.confirmLeavingAlert = {
5685
6122
  htmlContent: LEAVING_ALERT_CONTENT,
@@ -5810,18 +6247,22 @@ class FoehnPageComponent {
5810
6247
  }
5811
6248
  }
5812
6249
  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 });
5813
- 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" }] });
6250
+ 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" }] });
5814
6251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnPageComponent, decorators: [{
5815
6252
  type: Component,
5816
- 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"] }]
6253
+ 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"] }]
5817
6254
  }], 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: [{
5818
6255
  type: Input
5819
6256
  }], footerLinks: [{
5820
6257
  type: Input
5821
6258
  }], supportAlertEnabled: [{
5822
6259
  type: Input
6260
+ }], draftsEnabled: [{
6261
+ type: Input
5823
6262
  }], supportAlertUrl: [{
5824
6263
  type: Input
6264
+ }], draftsUrl: [{
6265
+ type: Input
5825
6266
  }], etapeId: [{
5826
6267
  type: Input
5827
6268
  }], userConnectedAsDisplayed: [{
@@ -5903,109 +6344,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
5903
6344
  args: [{ name: 'displayCurrency' }]
5904
6345
  }], ctorParameters: function () { return [{ type: CurrencyHelper }]; } });
5905
6346
 
5906
- dayjs.extend(isToday);
5907
- class DateHelper {
5908
- constructor() {
5909
- this.locale = 'fr-CH';
5910
- this.dateFormat = 'dd.MM.yyyy';
5911
- this.dateTimeFormat = 'dd.MM.yyyy HH:mm:ss';
5912
- registerLocaleData(localeFr, 'fr-CH');
5913
- this.datePipe = new DatePipe(this.locale);
5914
- }
5915
- static isValidArray(value) {
5916
- return (!!value &&
5917
- value.length > 2 &&
5918
- !!value[0] &&
5919
- !!value[1] &&
5920
- !!value[2]);
5921
- }
5922
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5923
- mapToDateFromNumberArray(object, ...fieldsNames) {
5924
- if (object) {
5925
- fieldsNames.forEach(fieldPath => {
5926
- object[fieldPath] = this.toDateFromNumberArray(object[fieldPath]);
5927
- });
5928
- }
5929
- return object;
5930
- }
5931
- mapAllToDateFromNumberArray(
5932
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5933
- objects, ...fieldsNames) {
5934
- if (objects) {
5935
- objects.forEach(object => {
5936
- this.mapToDateFromNumberArray(object, ...fieldsNames);
5937
- });
5938
- }
5939
- return objects;
5940
- }
5941
- toDateFromNumberArray(dateInArray) {
5942
- if (dateInArray) {
5943
- if (dateInArray.length === 3) {
5944
- return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2]);
5945
- }
5946
- else if (dateInArray.length === 5) {
5947
- // because when time is 00:00:00 the array does not contain the seconds.
5948
- return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4]);
5949
- }
5950
- else if (dateInArray.length >= 6) {
5951
- return new Date(dateInArray[0], dateInArray[1] - 1, dateInArray[2], dateInArray[3], dateInArray[4], dateInArray[5]);
5952
- }
5953
- throw new Error(`Date in number[] format has wrong number of numbers : ${dateInArray.length}`);
5954
- }
5955
- return null;
5956
- }
5957
- arrayToDisplayDateDMY(d, showTime) {
5958
- if (showTime) {
5959
- return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateTimeFormat);
5960
- }
5961
- else {
5962
- return this.datePipe.transform(this.toDateFromNumberArray(d), this.dateFormat);
5963
- }
5964
- }
5965
- toDayjsFromNumberArray(value) {
5966
- if (DateHelper.isValidArray(value)) {
5967
- const dateAsString = `${value[0]}-${value[1]}-${value[2]}`;
5968
- return dayjs(dateAsString);
5969
- }
5970
- return null;
5971
- }
5972
- isValid(value) {
5973
- // date is incomplete
5974
- if (!DateHelper.isValidArray(value)) {
5975
- return false;
5976
- }
5977
- // date cannot be parsed
5978
- if (!this.toDayjsFromNumberArray(value)) {
5979
- return false;
5980
- }
5981
- // date has not been shifted (i.e. 30.02.2021 -> 01.03.2021)
5982
- const asString = `${value[0]}-${value[1]}-${value[2]}`;
5983
- const asStringFromDayJS = this.toDayjsFromNumberArray(value).format('YYYY-M-D');
5984
- return asString === asStringFromDayJS;
5985
- }
5986
- isToday(value) {
5987
- return (DateHelper.isValidArray(value) &&
5988
- this.toDayjsFromNumberArray(value).isToday());
5989
- }
5990
- leftPad(num) {
5991
- if (num === undefined || num === null) {
5992
- return '';
5993
- }
5994
- if (num.length === 1) {
5995
- return `0${num}`;
5996
- }
5997
- return num;
5998
- }
5999
- }
6000
- DateHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6001
- DateHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, providedIn: 'root' });
6002
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateHelper, decorators: [{
6003
- type: Injectable,
6004
- args: [{
6005
- providedIn: 'root'
6006
- }]
6007
- }], ctorParameters: function () { return []; } });
6008
-
6009
6347
  const DATE_LOCALE = 'fr-CH';
6010
6348
  class DisplayDatePipe {
6011
6349
  constructor(dateHelper) {
@@ -6126,82 +6464,40 @@ class FoehnIconCalendarComponent extends AbstractIconComponent {
6126
6464
  this.iconName = faCalendarAlt;
6127
6465
  this.defaultTitle = 'Calendrier';
6128
6466
  }
6129
- }
6130
- FoehnIconCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6131
- 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"] }] });
6132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, decorators: [{
6133
- type: Component,
6134
- 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" }]
6135
- }] });
6136
-
6137
- class FoehnIconCheckComponent extends AbstractIconComponent {
6138
- constructor() {
6139
- super(...arguments);
6140
- this.iconName = faCheck;
6141
- this.defaultTitle = 'Check ok';
6142
- }
6143
- }
6144
- FoehnIconCheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6145
- 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"] }] });
6146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, decorators: [{
6147
- type: Component,
6148
- 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" }]
6149
- }] });
6150
-
6151
- class FoehnIconCheckSquareOComponent extends AbstractIconComponent {
6152
- constructor() {
6153
- super(...arguments);
6154
- this.iconName = faCheckSquare;
6155
- this.defaultTitle = 'Carré coché';
6156
- }
6157
- }
6158
- FoehnIconCheckSquareOComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6159
- 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"] }] });
6160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, decorators: [{
6161
- type: Component,
6162
- 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" }]
6163
- }] });
6164
-
6165
- class FoehnIconChevronDownComponent extends AbstractIconComponent {
6166
- constructor() {
6167
- super(...arguments);
6168
- this.iconName = faChevronDown;
6169
- this.defaultTitle = 'Flèche vers le bas';
6170
- }
6171
- }
6172
- FoehnIconChevronDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6173
- 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"] }] });
6174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronDownComponent, decorators: [{
6467
+ }
6468
+ FoehnIconCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6469
+ 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"] }] });
6470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCalendarComponent, decorators: [{
6175
6471
  type: Component,
6176
- 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" }]
6472
+ 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" }]
6177
6473
  }] });
6178
6474
 
6179
- class FoehnIconChevronLeftComponent extends AbstractIconComponent {
6475
+ class FoehnIconCheckComponent extends AbstractIconComponent {
6180
6476
  constructor() {
6181
6477
  super(...arguments);
6182
- this.iconName = faChevronLeft;
6183
- this.defaultTitle = 'Flèche vers la gauche';
6478
+ this.iconName = faCheck;
6479
+ this.defaultTitle = 'Check ok';
6184
6480
  }
6185
6481
  }
6186
- FoehnIconChevronLeftComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6187
- 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"] }] });
6188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronLeftComponent, decorators: [{
6482
+ FoehnIconCheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6483
+ 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"] }] });
6484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckComponent, decorators: [{
6189
6485
  type: Component,
6190
- 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" }]
6486
+ 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" }]
6191
6487
  }] });
6192
6488
 
6193
- class FoehnIconChevronRightComponent extends AbstractIconComponent {
6489
+ class FoehnIconCheckSquareOComponent extends AbstractIconComponent {
6194
6490
  constructor() {
6195
6491
  super(...arguments);
6196
- this.iconName = faChevronRight;
6197
- this.defaultTitle = 'Flèche vers la droite';
6492
+ this.iconName = faCheckSquare;
6493
+ this.defaultTitle = 'Carré coché';
6198
6494
  }
6199
6495
  }
6200
- FoehnIconChevronRightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6201
- 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"] }] });
6202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconChevronRightComponent, decorators: [{
6496
+ FoehnIconCheckSquareOComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6497
+ 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"] }] });
6498
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconCheckSquareOComponent, decorators: [{
6203
6499
  type: Component,
6204
- 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" }]
6500
+ 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" }]
6205
6501
  }] });
6206
6502
 
6207
6503
  class FoehnIconClockComponent extends AbstractIconComponent {
@@ -6397,7 +6693,8 @@ FoehnIconsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
6397
6693
  FoehnIconExternalLinkAltComponent,
6398
6694
  FoehnIconClockComponent,
6399
6695
  FoehnIconCalendarComponent,
6400
- FoehnIconUserComponent], imports: [FontAwesomeModule], exports: [FoehnIconCheckSquareOComponent,
6696
+ FoehnIconUserComponent,
6697
+ FoehnIconPencilComponent], imports: [FontAwesomeModule], exports: [FoehnIconCheckSquareOComponent,
6401
6698
  FoehnIconCheckComponent,
6402
6699
  FoehnIconChevronDownComponent,
6403
6700
  FoehnIconInfoCircleComponent,
@@ -6420,7 +6717,8 @@ FoehnIconsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
6420
6717
  FoehnIconExternalLinkAltComponent,
6421
6718
  FoehnIconClockComponent,
6422
6719
  FoehnIconCalendarComponent,
6423
- FoehnIconUserComponent] });
6720
+ FoehnIconUserComponent,
6721
+ FoehnIconPencilComponent] });
6424
6722
  FoehnIconsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconsModule, imports: [FontAwesomeModule, FontAwesomeModule] });
6425
6723
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnIconsModule, decorators: [{
6426
6724
  type: NgModule,
@@ -6449,7 +6747,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
6449
6747
  FoehnIconExternalLinkAltComponent,
6450
6748
  FoehnIconClockComponent,
6451
6749
  FoehnIconCalendarComponent,
6452
- FoehnIconUserComponent
6750
+ FoehnIconUserComponent,
6751
+ FoehnIconPencilComponent
6453
6752
  ],
6454
6753
  exports: [
6455
6754
  FoehnIconCheckSquareOComponent,
@@ -6475,7 +6774,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
6475
6774
  FoehnIconExternalLinkAltComponent,
6476
6775
  FoehnIconClockComponent,
6477
6776
  FoehnIconCalendarComponent,
6478
- FoehnIconUserComponent
6777
+ FoehnIconUserComponent,
6778
+ FoehnIconPencilComponent
6479
6779
  ]
6480
6780
  }]
6481
6781
  }] });
@@ -7428,6 +7728,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
7428
7728
  }]
7429
7729
  }] });
7430
7730
 
7731
+ class FoehnTableModule {
7732
+ }
7733
+ FoehnTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7734
+ FoehnTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, declarations: [FoehnTableComponent], imports: [CommonModule,
7735
+ FoehnIconsModule,
7736
+ SdkDictionaryModule,
7737
+ RouterModule], exports: [FoehnTableComponent] });
7738
+ FoehnTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, imports: [CommonModule,
7739
+ FoehnIconsModule,
7740
+ SdkDictionaryModule,
7741
+ RouterModule] });
7742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, decorators: [{
7743
+ type: NgModule,
7744
+ args: [{
7745
+ imports: [
7746
+ CommonModule,
7747
+ FoehnIconsModule,
7748
+ SdkDictionaryModule,
7749
+ RouterModule
7750
+ ],
7751
+ declarations: [FoehnTableComponent],
7752
+ exports: [FoehnTableComponent]
7753
+ }]
7754
+ }] });
7755
+
7756
+ class DraftsModule {
7757
+ }
7758
+ DraftsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7759
+ DraftsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, declarations: [DraftsContainerComponent], imports: [CommonModule,
7760
+ HttpClientModule,
7761
+ FoehnIconsModule,
7762
+ PipeModule,
7763
+ FoehnTableModule,
7764
+ FoehnModalModule,
7765
+ SdkDictionaryModule,
7766
+ RouterLink], exports: [DraftsContainerComponent] });
7767
+ DraftsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, imports: [CommonModule,
7768
+ HttpClientModule,
7769
+ FoehnIconsModule,
7770
+ PipeModule,
7771
+ FoehnTableModule,
7772
+ FoehnModalModule,
7773
+ SdkDictionaryModule] });
7774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraftsModule, decorators: [{
7775
+ type: NgModule,
7776
+ args: [{
7777
+ imports: [
7778
+ CommonModule,
7779
+ HttpClientModule,
7780
+ FoehnIconsModule,
7781
+ PipeModule,
7782
+ FoehnTableModule,
7783
+ FoehnModalModule,
7784
+ SdkDictionaryModule,
7785
+ RouterLink
7786
+ ],
7787
+ declarations: [DraftsContainerComponent],
7788
+ exports: [DraftsContainerComponent]
7789
+ }]
7790
+ }] });
7791
+
7431
7792
  class SupportAlertModule {
7432
7793
  }
7433
7794
  SupportAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -7473,6 +7834,7 @@ FoehnPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
7473
7834
  FoehnPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FoehnPageModule, declarations: [FoehnPageComponent,
7474
7835
  FoehnPageCounterComponent,
7475
7836
  FoehnPageModalComponent], imports: [CommonModule,
7837
+ DraftsModule,
7476
7838
  FoehnBreadcrumbModule,
7477
7839
  FoehnGrowlModule,
7478
7840
  FoehnHeaderModule,
@@ -7487,6 +7849,7 @@ FoehnPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
7487
7849
  FoehnPageCounterComponent,
7488
7850
  FoehnPageModalComponent] });
7489
7851
  FoehnPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnPageModule, imports: [CommonModule,
7852
+ DraftsModule,
7490
7853
  FoehnBreadcrumbModule,
7491
7854
  FoehnGrowlModule,
7492
7855
  FoehnHeaderModule,
@@ -7503,6 +7866,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
7503
7866
  args: [{
7504
7867
  imports: [
7505
7868
  CommonModule,
7869
+ DraftsModule,
7506
7870
  FoehnBreadcrumbModule,
7507
7871
  FoehnGrowlModule,
7508
7872
  FoehnHeaderModule,
@@ -8547,6 +8911,7 @@ class FoehnInputNumberComponent extends FoehnInputStringComponent {
8547
8911
  this.hideStandardHelpText = false;
8548
8912
  this.maxDecimalCount = 2;
8549
8913
  this.allowFreeInput = false;
8914
+ this.allowLeadingZero = false;
8550
8915
  }
8551
8916
  get model() {
8552
8917
  // If the setter is overridden, it's critical to override the getter too.
@@ -8678,7 +9043,9 @@ class FoehnInputNumberComponent extends FoehnInputStringComponent {
8678
9043
  const noCommaString = this.replaceCommaWithDot(value);
8679
9044
  const cleanDecimals = this.cleanDecimals(noCommaString);
8680
9045
  const cleanNonNumericCharacters = this.removeNonNumericCharacters(cleanDecimals);
8681
- const cleanNumber = this.removeLeadingZero(cleanNonNumericCharacters, this.allowDecimal);
9046
+ const cleanNumber = !this.allowLeadingZero
9047
+ ? this.removeLeadingZero(cleanNonNumericCharacters, this.allowDecimal)
9048
+ : cleanNonNumericCharacters;
8682
9049
  if (cleanNumber && cleanNumber.length) {
8683
9050
  return cleanNumber.substring(0, this.getMaxLength());
8684
9051
  }
@@ -8805,7 +9172,7 @@ class FoehnInputNumberComponent extends FoehnInputStringComponent {
8805
9172
  }
8806
9173
  }
8807
9174
  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 });
8808
- 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: [
9175
+ 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: [
8809
9176
  {
8810
9177
  provide: FoehnInputComponent,
8811
9178
  useExisting: forwardRef(() => FoehnInputNumberComponent),
@@ -8831,6 +9198,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
8831
9198
  type: Input
8832
9199
  }], allowFreeInput: [{
8833
9200
  type: Input
9201
+ }], allowLeadingZero: [{
9202
+ type: Input
8834
9203
  }], model: [{
8835
9204
  type: Input
8836
9205
  }] } });
@@ -8921,7 +9290,7 @@ FoehnDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
8921
9290
  useExisting: forwardRef(() => FoehnDateComponent),
8922
9291
  multi: true
8923
9292
  }
8924
- ], 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" }] });
9293
+ ], 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" }] });
8925
9294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnDateComponent, decorators: [{
8926
9295
  type: Component,
8927
9296
  args: [{ selector: 'foehn-input-date', providers: [
@@ -8993,7 +9362,7 @@ FoehnTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
8993
9362
  useExisting: forwardRef(() => FoehnTimeComponent),
8994
9363
  multi: true
8995
9364
  }
8996
- ], 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" }] });
9365
+ ], 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" }] });
8997
9366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTimeComponent, decorators: [{
8998
9367
  type: Component,
8999
9368
  args: [{ selector: 'foehn-input-time', providers: [
@@ -9741,7 +10110,7 @@ const SWISS_ISO_ID = 'CH';
9741
10110
  class StreetNumber {
9742
10111
  }
9743
10112
  const isDefined = (value) => value === true || value === false;
9744
- const hasInputChanged$2 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
10113
+ const hasInputChanged$1 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
9745
10114
  class FoehnInputAddressComponent extends FoehnInputComponent {
9746
10115
  constructor(httpClient, ngZone, dictionaryService) {
9747
10116
  super();
@@ -9821,14 +10190,14 @@ class FoehnInputAddressComponent extends FoehnInputComponent {
9821
10190
  ngOnChanges(changes) {
9822
10191
  const modelChange = changes.model;
9823
10192
  const isOnlySwiss = changes.isOnlySwiss;
9824
- if (hasInputChanged$2(modelChange)) {
10193
+ if (hasInputChanged$1(modelChange)) {
9825
10194
  // When model changes, we ensure to not send "undefined" anymore
9826
10195
  const country = !!modelChange.currentValue
9827
10196
  ? modelChange.currentValue.country
9828
10197
  : null;
9829
10198
  this.countryModelChangeSubject.next(country);
9830
10199
  }
9831
- if (hasInputChanged$2(isOnlySwiss)) {
10200
+ if (hasInputChanged$1(isOnlySwiss)) {
9832
10201
  this.isOnlySwissChangeSubject.next(isOnlySwiss.currentValue);
9833
10202
  }
9834
10203
  }
@@ -10618,7 +10987,7 @@ FoehnInputNav13Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0
10618
10987
  useExisting: forwardRef(() => FoehnInputNav13Component),
10619
10988
  multi: true
10620
10989
  }
10621
- ], 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" }] });
10990
+ ], 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" }] });
10622
10991
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnInputNav13Component, decorators: [{
10623
10992
  type: Component,
10624
10993
  args: [{ selector: 'foehn-input-nav13', providers: [
@@ -10627,7 +10996,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10627
10996
  useExisting: forwardRef(() => FoehnInputNav13Component),
10628
10997
  multi: true
10629
10998
  }
10630
- ], 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" }]
10999
+ ], 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" }]
10631
11000
  }] });
10632
11001
 
10633
11002
  class FoehnInputNav13Module {
@@ -11113,7 +11482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
11113
11482
  }]
11114
11483
  }] });
11115
11484
 
11116
- const hasInputChanged$1 = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
11485
+ const hasInputChanged = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
11117
11486
  class FoehnListComponent {
11118
11487
  constructor() {
11119
11488
  this.itemsPerPage = 10;
@@ -11134,9 +11503,9 @@ class FoehnListComponent {
11134
11503
  const itemsPerPageChange = changes.itemsPerPage;
11135
11504
  const listChange = changes.list;
11136
11505
  const fixedPageCountChange = changes.fixedPageCount;
11137
- if (!hasInputChanged$1(itemsPerPageChange) &&
11138
- !hasInputChanged$1(listChange) &&
11139
- !hasInputChanged$1(fixedPageCountChange)) {
11506
+ if (!hasInputChanged(itemsPerPageChange) &&
11507
+ !hasInputChanged(listChange) &&
11508
+ !hasInputChanged(fixedPageCountChange)) {
11140
11509
  return;
11141
11510
  }
11142
11511
  this.buildFilteredList();
@@ -11252,170 +11621,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
11252
11621
  class PageChangeEvent {
11253
11622
  }
11254
11623
 
11255
- const hasInputChanged = (change) => change && !ObjectHelper.isEqual(change.previousValue, change.currentValue);
11256
- class FoehnTableComponent {
11257
- constructor() {
11258
- this.itemsPerPage = 10;
11259
- this.id = 'foehn-table';
11260
- this.previousLabel = 'Précédent';
11261
- this.nextLabel = 'Suivant';
11262
- this.pageChange = new EventEmitter();
11263
- this.sortChange = new EventEmitter();
11264
- this.currentPage = 1;
11265
- this.filteredList = [];
11266
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
11267
- this.trackByFn = (index, item) => index;
11268
- }
11269
- set list(list) {
11270
- this._list = list;
11271
- }
11272
- ngOnChanges(changes) {
11273
- const itemsPerPageChange = changes.itemsPerPage;
11274
- const listChange = changes.list;
11275
- const fixedPageCountChange = changes.fixedPageCount;
11276
- const sortInputChange = changes.sort;
11277
- if (!hasInputChanged(itemsPerPageChange) &&
11278
- !hasInputChanged(listChange) &&
11279
- !hasInputChanged(fixedPageCountChange) &&
11280
- !hasInputChanged(sortInputChange)) {
11281
- return;
11282
- }
11283
- this.buildFilteredList();
11284
- }
11285
- previousPage() {
11286
- this.currentPage = this.currentPage - 1;
11287
- this.buildFilteredList();
11288
- this.pageChange.next({
11289
- previousPage: this.currentPage + 1,
11290
- currentPage: this.currentPage,
11291
- pageCount: this.pagesCount()
11292
- });
11293
- }
11294
- hasPreviousPage() {
11295
- return this.currentPage > 1;
11296
- }
11297
- nextPage() {
11298
- this.currentPage = this.currentPage + 1;
11299
- this.buildFilteredList();
11300
- this.pageChange.next({
11301
- previousPage: this.currentPage - 1,
11302
- currentPage: this.currentPage,
11303
- pageCount: this.pagesCount()
11304
- });
11305
- }
11306
- hasNextPage() {
11307
- return this.currentPage < this.pagesCount();
11308
- }
11309
- showPage(page, emitPageChangeEvent = false) {
11310
- if (this.currentPage === page) {
11311
- return;
11312
- }
11313
- const previousPage = this.currentPage;
11314
- this.currentPage = page;
11315
- this.buildFilteredList();
11316
- if (emitPageChangeEvent) {
11317
- this.pageChange.next({
11318
- previousPage,
11319
- currentPage: this.currentPage,
11320
- pageCount: this.pagesCount()
11321
- });
11322
- }
11323
- }
11324
- pagesCount() {
11325
- if (!!this.fixedPageCount) {
11326
- return this.fixedPageCount;
11327
- }
11328
- return this._list
11329
- ? Math.ceil(this._list.length / this.itemsPerPage)
11330
- : 0;
11331
- }
11332
- triggerSort(sortAttribute) {
11333
- let sortDirection = 'DESC';
11334
- if (this.sort.sortAttribute === sortAttribute) {
11335
- sortDirection = this.sort.sortDirection === 'DESC' ? 'ASC' : 'DESC';
11336
- }
11337
- this.sortChange.next({
11338
- sortDirection,
11339
- sortAttribute
11340
- });
11341
- }
11342
- buildFilteredList() {
11343
- if (!this._list) {
11344
- this.filteredList = [];
11345
- return;
11346
- }
11347
- if (!!this.fixedPageCount) {
11348
- this.filteredList = this._list;
11349
- return;
11350
- }
11351
- const currentPageExists = (this.currentPage - 1) * this.itemsPerPage <= this._list.length;
11352
- if (!currentPageExists) {
11353
- this.currentPage = 1;
11354
- }
11355
- const start = (this.currentPage - 1) * this.itemsPerPage;
11356
- this.filteredList = this._list.slice(start, start + this.itemsPerPage);
11357
- }
11358
- }
11359
- FoehnTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11360
- 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" }] });
11361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableComponent, decorators: [{
11362
- type: Component,
11363
- 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"] }]
11364
- }], propDecorators: { itemsPerPage: [{
11365
- type: Input
11366
- }], id: [{
11367
- type: Input
11368
- }], previousLabel: [{
11369
- type: Input
11370
- }], nextLabel: [{
11371
- type: Input
11372
- }], totalElements: [{
11373
- type: Input
11374
- }], fixedPageCount: [{
11375
- type: Input
11376
- }],
11377
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11378
- columnsConfiguration: [{
11379
- type: Input
11380
- }], pageChange: [{
11381
- type: Output
11382
- }], sort: [{
11383
- type: Input
11384
- }], sortChange: [{
11385
- type: Output
11386
- }], list: [{
11387
- type: Input
11388
- }],
11389
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
11390
- trackByFn: [{
11391
- type: Input
11392
- }] } });
11393
-
11394
- class FoehnTableModule {
11395
- }
11396
- FoehnTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11397
- FoehnTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, declarations: [FoehnTableComponent], imports: [CommonModule,
11398
- FoehnIconsModule,
11399
- SdkDictionaryModule,
11400
- RouterModule], exports: [FoehnTableComponent] });
11401
- FoehnTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, imports: [CommonModule,
11402
- FoehnIconsModule,
11403
- SdkDictionaryModule,
11404
- RouterModule] });
11405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FoehnTableModule, decorators: [{
11406
- type: NgModule,
11407
- args: [{
11408
- imports: [
11409
- CommonModule,
11410
- FoehnIconsModule,
11411
- SdkDictionaryModule,
11412
- RouterModule
11413
- ],
11414
- declarations: [FoehnTableComponent],
11415
- exports: [FoehnTableComponent]
11416
- }]
11417
- }] });
11418
-
11419
11624
  class FoehnTableColumnConfiguration {
11420
11625
  }
11421
11626
 
@@ -14318,5 +14523,5 @@ class DropdownMenuItem {
14318
14523
  * Generated bundle index. Do not edit.
14319
14524
  */
14320
14525
 
14321
- 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 };
14526
+ 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 };
14322
14527
  //# sourceMappingURL=dsivd-prestations-ng.mjs.map