@dsivd/prestations-ng 19.0.0-beta.1 → 19.0.0-beta.11

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, model, input, viewChildren, viewChild, forwardRef, output, computed, linkedSignal, DestroyRef, effect, Directive, ChangeDetectorRef, Pipe, Component, contentChildren, InjectionToken, ElementRef, makeEnvironmentProviders, ErrorHandler, provideAppInitializer, importProvidersFrom, signal, NgZone, untracked, contentChild, TemplateRef } from '@angular/core';
2
+ import { Injectable, inject, model, input, viewChildren, viewChild, forwardRef, output, computed, linkedSignal, DestroyRef, effect, Directive, ChangeDetectorRef, Pipe, Component, contentChildren, InjectionToken, signal, ElementRef, makeEnvironmentProviders, ErrorHandler, provideAppInitializer, importProvidersFrom, NgZone, untracked, contentChild, TemplateRef } from '@angular/core';
3
3
  import { takeUntilDestroyed, toObservable, outputToObservable } from '@angular/core/rxjs-interop';
4
4
  import { Router, ActivatedRoute, RouterLink, NavigationStart, NavigationEnd } from '@angular/router';
5
5
  import { Subject, BehaviorSubject, combineLatest, of, filter as filter$1, tap as tap$1, throwError, switchMap as switchMap$1, forkJoin, from, concatMap, toArray, EMPTY, startWith, merge, interval, withLatestFrom, map as map$1, concat } from 'rxjs';
@@ -707,14 +707,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
707
707
  const GESDEM_MAX_DATA_LENGTH = 10000;
708
708
  class FoehnInputComponent {
709
709
  constructor() {
710
- this.model = model(...(ngDevMode ? [undefined, { debugName: "model" }] : /* istanbul ignore next */ []));
710
+ this.model = model.required(...(ngDevMode ? [{ debugName: "model" }] : /* istanbul ignore next */ []));
711
711
  this.pattern = model(...(ngDevMode ? [undefined, { debugName: "pattern" }] : /* istanbul ignore next */ []));
712
712
  this.helpModal = model(...(ngDevMode ? [undefined, { debugName: "helpModal" }] : /* istanbul ignore next */ []));
713
713
  this.standardHelpText = model(...(ngDevMode ? [undefined, { debugName: "standardHelpText" }] : /* istanbul ignore next */ []));
714
714
  this.helpText = model(...(ngDevMode ? [undefined, { debugName: "helpText" }] : /* istanbul ignore next */ []));
715
715
  this.disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
716
+ this.hidden = model(false, ...(ngDevMode ? [{ debugName: "hidden" }] : /* istanbul ignore next */ []));
716
717
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
717
- this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
718
+ this.name = input.required(...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
718
719
  this.overrideGesdemMaxlength = input(false, ...(ngDevMode ? [{ debugName: "overrideGesdemMaxlength" }] : /* istanbul ignore next */ []));
719
720
  this.min = input(...(ngDevMode ? [undefined, { debugName: "min" }] : /* istanbul ignore next */ []));
720
721
  this.max = input(...(ngDevMode ? [undefined, { debugName: "max" }] : /* istanbul ignore next */ []));
@@ -740,7 +741,6 @@ class FoehnInputComponent {
740
741
  */
741
742
  this.hideNotRequiredExtraLabel = input(false, ...(ngDevMode ? [{ debugName: "hideNotRequiredExtraLabel" }] : /* istanbul ignore next */ []));
742
743
  this.isErrorInherited = input(false, ...(ngDevMode ? [{ debugName: "isErrorInherited" }] : /* istanbul ignore next */ []));
743
- this.hidden = model(false, ...(ngDevMode ? [{ debugName: "hidden" }] : /* istanbul ignore next */ []));
744
744
  this.maxlength = input(...(ngDevMode ? [undefined, { debugName: "maxlength" }] : /* istanbul ignore next */ []));
745
745
  /**
746
746
  * The attribute must take one of the following values:
@@ -1048,7 +1048,7 @@ class FoehnInputComponent {
1048
1048
  }
1049
1049
  }
1050
1050
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1051
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: FoehnInputComponent, isStandalone: true, inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, helpModal: { classPropertyName: "helpModal", publicName: "helpModal", isSignal: true, isRequired: false, transformFunction: null }, standardHelpText: { classPropertyName: "standardHelpText", publicName: "standardHelpText", isSignal: true, isRequired: false, transformFunction: null }, helpText: { classPropertyName: "helpText", publicName: "helpText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, overrideGesdemMaxlength: { classPropertyName: "overrideGesdemMaxlength", publicName: "overrideGesdemMaxlength", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, preventPaste: { classPropertyName: "preventPaste", publicName: "preventPaste", isSignal: true, isRequired: false, transformFunction: null }, autocapitalize: { classPropertyName: "autocapitalize", publicName: "autocapitalize", isSignal: true, isRequired: false, transformFunction: null }, updateModelWhenDisabled: { classPropertyName: "updateModelWhenDisabled", publicName: "updateModelWhenDisabled", isSignal: true, isRequired: false, transformFunction: null }, showErrorWhenDisabled: { classPropertyName: "showErrorWhenDisabled", publicName: "showErrorWhenDisabled", isSignal: true, isRequired: false, transformFunction: null }, labelStyleModifier: { classPropertyName: "labelStyleModifier", publicName: "labelStyleModifier", isSignal: true, isRequired: false, transformFunction: null }, customErrors: { classPropertyName: "customErrors", publicName: "customErrors", isSignal: true, isRequired: false, transformFunction: null }, hideNotRequiredExtraLabel: { classPropertyName: "hideNotRequiredExtraLabel", publicName: "hideNotRequiredExtraLabel", isSignal: true, isRequired: false, transformFunction: null }, isErrorInherited: { classPropertyName: "isErrorInherited", publicName: "isErrorInherited", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, clearButton: { classPropertyName: "clearButton", publicName: "clearButton", isSignal: true, isRequired: false, transformFunction: null }, excludeFromErrorSummary: { classPropertyName: "excludeFromErrorSummary", publicName: "excludeFromErrorSummary", isSignal: true, isRequired: false, transformFunction: null }, isLabelSrOnly: { classPropertyName: "isLabelSrOnly", publicName: "isLabelSrOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { model: "modelChange", pattern: "patternChange", helpModal: "helpModalChange", standardHelpText: "standardHelpTextChange", helpText: "helpTextChange", disabled: "disabledChange", hidden: "hiddenChange", userInput: "userInput", blurHandler: "blur", focusHandler: "focus" }, host: { properties: { "attr.id": "hostId()", "attr.hidden": "hostHidden()" } }, viewQueries: [{ propertyName: "inputModelList", predicate: NgModel, descendants: true, isSignal: true }, { propertyName: "inputElement", first: true, predicate: ["entryComponent"], descendants: true, isSignal: true }, { propertyName: "subComponents", predicate: i0.forwardRef(() => FoehnInputComponent), descendants: true, isSignal: true }], ngImport: i0 }); }
1051
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: FoehnInputComponent, isStandalone: true, inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, helpModal: { classPropertyName: "helpModal", publicName: "helpModal", isSignal: true, isRequired: false, transformFunction: null }, standardHelpText: { classPropertyName: "standardHelpText", publicName: "standardHelpText", isSignal: true, isRequired: false, transformFunction: null }, helpText: { classPropertyName: "helpText", publicName: "helpText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, overrideGesdemMaxlength: { classPropertyName: "overrideGesdemMaxlength", publicName: "overrideGesdemMaxlength", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, preventPaste: { classPropertyName: "preventPaste", publicName: "preventPaste", isSignal: true, isRequired: false, transformFunction: null }, autocapitalize: { classPropertyName: "autocapitalize", publicName: "autocapitalize", isSignal: true, isRequired: false, transformFunction: null }, updateModelWhenDisabled: { classPropertyName: "updateModelWhenDisabled", publicName: "updateModelWhenDisabled", isSignal: true, isRequired: false, transformFunction: null }, showErrorWhenDisabled: { classPropertyName: "showErrorWhenDisabled", publicName: "showErrorWhenDisabled", isSignal: true, isRequired: false, transformFunction: null }, labelStyleModifier: { classPropertyName: "labelStyleModifier", publicName: "labelStyleModifier", isSignal: true, isRequired: false, transformFunction: null }, customErrors: { classPropertyName: "customErrors", publicName: "customErrors", isSignal: true, isRequired: false, transformFunction: null }, hideNotRequiredExtraLabel: { classPropertyName: "hideNotRequiredExtraLabel", publicName: "hideNotRequiredExtraLabel", isSignal: true, isRequired: false, transformFunction: null }, isErrorInherited: { classPropertyName: "isErrorInherited", publicName: "isErrorInherited", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, clearButton: { classPropertyName: "clearButton", publicName: "clearButton", isSignal: true, isRequired: false, transformFunction: null }, excludeFromErrorSummary: { classPropertyName: "excludeFromErrorSummary", publicName: "excludeFromErrorSummary", isSignal: true, isRequired: false, transformFunction: null }, isLabelSrOnly: { classPropertyName: "isLabelSrOnly", publicName: "isLabelSrOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { model: "modelChange", pattern: "patternChange", helpModal: "helpModalChange", standardHelpText: "standardHelpTextChange", helpText: "helpTextChange", disabled: "disabledChange", hidden: "hiddenChange", userInput: "userInput", blurHandler: "blur", focusHandler: "focus" }, host: { properties: { "attr.id": "hostId()", "attr.hidden": "hostHidden()" } }, viewQueries: [{ propertyName: "inputModelList", predicate: NgModel, descendants: true, isSignal: true }, { propertyName: "inputElement", first: true, predicate: ["entryComponent"], descendants: true, isSignal: true }, { propertyName: "subComponents", predicate: i0.forwardRef(() => FoehnInputComponent), descendants: true, isSignal: true }], ngImport: i0 }); }
1052
1052
  }
1053
1053
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnInputComponent, decorators: [{
1054
1054
  type: Directive,
@@ -1058,7 +1058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
1058
1058
  '[attr.hidden]': 'hostHidden()',
1059
1059
  },
1060
1060
  }]
1061
- }], ctorParameters: () => [], propDecorators: { model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }, { type: i0.Output, args: ["modelChange"] }], pattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "pattern", required: false }] }, { type: i0.Output, args: ["patternChange"] }], helpModal: [{ type: i0.Input, args: [{ isSignal: true, alias: "helpModal", required: false }] }, { type: i0.Output, args: ["helpModalChange"] }], standardHelpText: [{ type: i0.Input, args: [{ isSignal: true, alias: "standardHelpText", required: false }] }, { type: i0.Output, args: ["standardHelpTextChange"] }], helpText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helpText", required: false }] }, { type: i0.Output, args: ["helpTextChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], overrideGesdemMaxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "overrideGesdemMaxlength", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], preventPaste: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventPaste", required: false }] }], autocapitalize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocapitalize", required: false }] }], updateModelWhenDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "updateModelWhenDisabled", required: false }] }], showErrorWhenDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "showErrorWhenDisabled", required: false }] }], labelStyleModifier: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelStyleModifier", required: false }] }], customErrors: [{ type: i0.Input, args: [{ isSignal: true, alias: "customErrors", required: false }] }], hideNotRequiredExtraLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideNotRequiredExtraLabel", required: false }] }], isErrorInherited: [{ type: i0.Input, args: [{ isSignal: true, alias: "isErrorInherited", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], clearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButton", required: false }] }], excludeFromErrorSummary: [{ type: i0.Input, args: [{ isSignal: true, alias: "excludeFromErrorSummary", required: false }] }], isLabelSrOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLabelSrOnly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], inputModelList: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => NgModel), { isSignal: true }] }], inputElement: [{ type: i0.ViewChild, args: ['entryComponent', { isSignal: true }] }], subComponents: [{ type: i0.ViewChildren, args: [forwardRef(() => FoehnInputComponent), { isSignal: true }] }], userInput: [{ type: i0.Output, args: ["userInput"] }], blurHandler: [{ type: i0.Output, args: ["blur"] }], focusHandler: [{ type: i0.Output, args: ["focus"] }] } });
1061
+ }], ctorParameters: () => [], propDecorators: { model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: true }] }, { type: i0.Output, args: ["modelChange"] }], pattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "pattern", required: false }] }, { type: i0.Output, args: ["patternChange"] }], helpModal: [{ type: i0.Input, args: [{ isSignal: true, alias: "helpModal", required: false }] }, { type: i0.Output, args: ["helpModalChange"] }], standardHelpText: [{ type: i0.Input, args: [{ isSignal: true, alias: "standardHelpText", required: false }] }, { type: i0.Output, args: ["standardHelpTextChange"] }], helpText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helpText", required: false }] }, { type: i0.Output, args: ["helpTextChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], overrideGesdemMaxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "overrideGesdemMaxlength", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], preventPaste: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventPaste", required: false }] }], autocapitalize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocapitalize", required: false }] }], updateModelWhenDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "updateModelWhenDisabled", required: false }] }], showErrorWhenDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "showErrorWhenDisabled", required: false }] }], labelStyleModifier: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelStyleModifier", required: false }] }], customErrors: [{ type: i0.Input, args: [{ isSignal: true, alias: "customErrors", required: false }] }], hideNotRequiredExtraLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideNotRequiredExtraLabel", required: false }] }], isErrorInherited: [{ type: i0.Input, args: [{ isSignal: true, alias: "isErrorInherited", required: false }] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], clearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButton", required: false }] }], excludeFromErrorSummary: [{ type: i0.Input, args: [{ isSignal: true, alias: "excludeFromErrorSummary", required: false }] }], isLabelSrOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLabelSrOnly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], inputModelList: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => NgModel), { isSignal: true }] }], inputElement: [{ type: i0.ViewChild, args: ['entryComponent', { isSignal: true }] }], subComponents: [{ type: i0.ViewChildren, args: [forwardRef(() => FoehnInputComponent), { isSignal: true }] }], userInput: [{ type: i0.Output, args: ["userInput"] }], blurHandler: [{ type: i0.Output, args: ["blur"] }], focusHandler: [{ type: i0.Output, args: ["focus"] }] } });
1062
1062
 
1063
1063
  const GrowlType = {
1064
1064
  SUCCESS: 'alert-success',
@@ -3714,6 +3714,7 @@ class FoehnFeedbackNotificationComponent {
3714
3714
  this.goodIconName = faFaceSmile;
3715
3715
  this.mediumIconName = faFaceMeh;
3716
3716
  this.badIconName = faFaceFrown;
3717
+ this.expanded = signal(false, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
3717
3718
  this.applicationInfoService = inject(ApplicationInfoService);
3718
3719
  this.sessionInfo = inject(SessionInfo);
3719
3720
  this.gesdemHandlerService = inject(GesdemHandlerService);
@@ -3739,7 +3740,7 @@ class FoehnFeedbackNotificationComponent {
3739
3740
  }), map(([, etapeInfo, , meta]) => {
3740
3741
  const visible = etapeInfo?.userFeedbackRequested;
3741
3742
  const needFeedback = !localStorage.getItem(`${FEEDBACK_USAGERS_LOCAL_STORAGE_PREFIX}${this.getFullReference(meta)}`);
3742
- this.expanded = visible;
3743
+ this.expanded.set(visible);
3743
3744
  return needFeedback && visible;
3744
3745
  }));
3745
3746
  }
@@ -3795,7 +3796,7 @@ class FoehnFeedbackNotificationComponent {
3795
3796
  return `${meta.reference}-${meta.currentAction}`;
3796
3797
  }
3797
3798
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnFeedbackNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3798
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnFeedbackNotificationComponent, isStandalone: true, selector: "foehn-feedback-notification", host: { listeners: { "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<div\n id=\"feedback-container\"\n [class.expanded]=\"expanded\"\n [class.reduced]=\"!expanded\"\n [class.offset-bottom]=\"isScrollEnded\"\n [class.visible]=\"visible | async\"\n>\n <button\n type=\"button\"\n class=\"feedback-chevron btn btn-link\"\n (click)=\"expanded = !expanded\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"'feedback-form'\"\n >\n @if (expanded) {\n <foehn-icon-chevron-down\n [title]=\"\n 'foehn-feedback-notification.chevron-down' | fromDictionary\n \"\n />\n } @else {\n <foehn-icon-chevron-up\n [title]=\"\n 'foehn-feedback-notification.chevron-up' | fromDictionary\n \"\n />\n }\n </button>\n <div id=\"feedback-title\" class=\"h4\">\n @if (expanded) {\n {{ 'foehn-feedback-notification.title-expanded' | fromDictionary }}\n } @else {\n {{ 'foehn-feedback-notification.title-reduced' | fromDictionary }}\n }\n </div>\n <div id=\"feedback-form\" [class.visible]=\"expanded\">\n <p class=\"mb-0\">\n {{\n 'foehn-feedback-notification.question.Q_NOTIFICATION_FACILE_A_UTILISER'\n | fromDictionary\n }}\n </p>\n <ul class=\"vd-list-icons mb-0 d-flex justify-content-center\">\n <li>\n <a\n [href]=\"goodUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-success\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n \"\n [icon]=\"goodIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li class=\"mx-2\">\n <a\n [href]=\"mediumUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-warning\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n \"\n [icon]=\"mediumIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li>\n <a\n [href]=\"badUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-danger\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n \"\n [icon]=\"badIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n </ul>\n </div>\n</div>\n", styles: ["#feedback-container{display:none;position:fixed;bottom:0;right:0;color:#fff;background-color:var(--vd-neutral-dark);border:1px white solid;border-bottom:0;z-index:99999;transition:all .3s}#feedback-container.visible{display:block;animation:popout 1s}#feedback-container.offset-bottom{bottom:23px}#feedback-container.expanded{padding:15px;width:420px;height:175px;background-color:var(--vd-neutral-dark);border-top-left-radius:20px;border-top-right-radius:20px}#feedback-container.expanded #feedback-title{margin-top:0;text-align:center}#feedback-container.reduced{width:230px;height:35px;text-align:left;padding-left:12px}#feedback-container.reduced #feedback-title{margin-top:5px}#feedback-container .feedback-chevron{position:absolute;top:0;right:0}#feedback-container.expanded .feedback-chevron{border-top-right-radius:50%}#feedback-container #feedback-form{display:none}#feedback-container #feedback-form.visible{display:block;animation:fadeIn .5s}#feedback-container #feedback-form a{border:solid 1px var(--vd-neutral-dark);border-radius:50%;padding-left:11px;padding-right:11px}#feedback-container #feedback-form a:focus{background-color:var(--vd-neutral-dark)}#feedback-container #feedback-form .smiley-link{font-size:60px}:host ::ng-deep #feedback-container #feedback-form svg{transition:all .2s}:host ::ng-deep #feedback-container #feedback-form svg:hover,:host ::ng-deep #feedback-container #feedback-form svg:focus{transform:scale(1.3)}@keyframes fadeIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@media(min-width:577px){@keyframes popout{0%{bottom:-175px}to{bottom:0}}}@media(max-width:576px){#feedback-container{transform:scale(.8)}#feedback-container.expanded{right:-42px;bottom:-20px}#feedback-container.reduced{right:-29px;bottom:-3px}#feedback-container.expanded.offset-bottom{bottom:6px}#feedback-container.reduced.offset-bottom{bottom:20px}@keyframes popout{0%{bottom:-140px}to{bottom:-20px}}}\n"], dependencies: [{ kind: "component", type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { kind: "component", type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
3799
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnFeedbackNotificationComponent, isStandalone: true, selector: "foehn-feedback-notification", host: { listeners: { "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<div\n id=\"feedback-container\"\n [class.expanded]=\"expanded()\"\n [class.reduced]=\"!expanded()\"\n [class.offset-bottom]=\"isScrollEnded\"\n [class.visible]=\"visible | async\"\n>\n <button\n type=\"button\"\n class=\"feedback-chevron btn btn-link\"\n (click)=\"expanded.set(!expanded())\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"'feedback-form'\"\n >\n @if (expanded()) {\n <foehn-icon-chevron-down\n [title]=\"\n 'foehn-feedback-notification.chevron-down' | fromDictionary\n \"\n />\n } @else {\n <foehn-icon-chevron-up\n [title]=\"\n 'foehn-feedback-notification.chevron-up' | fromDictionary\n \"\n />\n }\n </button>\n <div id=\"feedback-title\" class=\"h4\">\n @if (expanded()) {\n {{ 'foehn-feedback-notification.title-expanded' | fromDictionary }}\n } @else {\n {{ 'foehn-feedback-notification.title-reduced' | fromDictionary }}\n }\n </div>\n <div id=\"feedback-form\" [class.visible]=\"expanded()\">\n <p class=\"mb-0\">\n {{\n 'foehn-feedback-notification.question.Q_NOTIFICATION_FACILE_A_UTILISER'\n | fromDictionary\n }}\n </p>\n <ul class=\"vd-list-icons mb-0 d-flex justify-content-center\">\n <li>\n <a\n [href]=\"goodUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-success\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n \"\n [icon]=\"goodIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li class=\"mx-2\">\n <a\n [href]=\"mediumUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-warning\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n \"\n [icon]=\"mediumIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li>\n <a\n [href]=\"badUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-danger\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n \"\n [icon]=\"badIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n </ul>\n </div>\n</div>\n", styles: ["#feedback-container{display:none;position:fixed;bottom:0;right:0;color:#fff;background-color:var(--vd-neutral-dark);border:1px white solid;border-bottom:0;z-index:99999;transition:all .3s}#feedback-container.visible{display:block;animation:popout 1s}#feedback-container.offset-bottom{bottom:23px}#feedback-container.expanded{padding:15px;width:420px;height:175px;background-color:var(--vd-neutral-dark);border-top-left-radius:20px;border-top-right-radius:20px}#feedback-container.expanded #feedback-title{margin-top:0;text-align:center}#feedback-container.reduced{width:230px;height:35px;text-align:left;padding-left:12px}#feedback-container.reduced #feedback-title{margin-top:5px}#feedback-container .feedback-chevron{position:absolute;top:0;right:0}#feedback-container.expanded .feedback-chevron{border-top-right-radius:50%}#feedback-container #feedback-form{display:none}#feedback-container #feedback-form.visible{display:block;animation:fadeIn .5s}#feedback-container #feedback-form a{border:solid 1px var(--vd-neutral-dark);border-radius:50%;padding-left:11px;padding-right:11px}#feedback-container #feedback-form a:focus{background-color:var(--vd-neutral-dark)}#feedback-container #feedback-form .smiley-link{font-size:60px}:host ::ng-deep #feedback-container #feedback-form svg{transition:all .2s}:host ::ng-deep #feedback-container #feedback-form svg:hover,:host ::ng-deep #feedback-container #feedback-form svg:focus{transform:scale(1.3)}@keyframes fadeIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@media(min-width:577px){@keyframes popout{0%{bottom:-175px}to{bottom:0}}}@media(max-width:576px){#feedback-container{transform:scale(.8)}#feedback-container.expanded{right:-42px;bottom:-20px}#feedback-container.reduced{right:-29px;bottom:-3px}#feedback-container.expanded.offset-bottom{bottom:6px}#feedback-container.reduced.offset-bottom{bottom:20px}@keyframes popout{0%{bottom:-140px}to{bottom:-20px}}}\n"], dependencies: [{ kind: "component", type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { kind: "component", type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
3799
3800
  }
3800
3801
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnFeedbackNotificationComponent, decorators: [{
3801
3802
  type: Component,
@@ -3807,7 +3808,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
3807
3808
  SdkDictionaryPipe,
3808
3809
  ], host: {
3809
3810
  '(window:scroll)': 'onWindowScroll()',
3810
- }, template: "<div\n id=\"feedback-container\"\n [class.expanded]=\"expanded\"\n [class.reduced]=\"!expanded\"\n [class.offset-bottom]=\"isScrollEnded\"\n [class.visible]=\"visible | async\"\n>\n <button\n type=\"button\"\n class=\"feedback-chevron btn btn-link\"\n (click)=\"expanded = !expanded\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"'feedback-form'\"\n >\n @if (expanded) {\n <foehn-icon-chevron-down\n [title]=\"\n 'foehn-feedback-notification.chevron-down' | fromDictionary\n \"\n />\n } @else {\n <foehn-icon-chevron-up\n [title]=\"\n 'foehn-feedback-notification.chevron-up' | fromDictionary\n \"\n />\n }\n </button>\n <div id=\"feedback-title\" class=\"h4\">\n @if (expanded) {\n {{ 'foehn-feedback-notification.title-expanded' | fromDictionary }}\n } @else {\n {{ 'foehn-feedback-notification.title-reduced' | fromDictionary }}\n }\n </div>\n <div id=\"feedback-form\" [class.visible]=\"expanded\">\n <p class=\"mb-0\">\n {{\n 'foehn-feedback-notification.question.Q_NOTIFICATION_FACILE_A_UTILISER'\n | fromDictionary\n }}\n </p>\n <ul class=\"vd-list-icons mb-0 d-flex justify-content-center\">\n <li>\n <a\n [href]=\"goodUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-success\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n \"\n [icon]=\"goodIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li class=\"mx-2\">\n <a\n [href]=\"mediumUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-warning\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n \"\n [icon]=\"mediumIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li>\n <a\n [href]=\"badUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-danger\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n \"\n [icon]=\"badIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n </ul>\n </div>\n</div>\n", styles: ["#feedback-container{display:none;position:fixed;bottom:0;right:0;color:#fff;background-color:var(--vd-neutral-dark);border:1px white solid;border-bottom:0;z-index:99999;transition:all .3s}#feedback-container.visible{display:block;animation:popout 1s}#feedback-container.offset-bottom{bottom:23px}#feedback-container.expanded{padding:15px;width:420px;height:175px;background-color:var(--vd-neutral-dark);border-top-left-radius:20px;border-top-right-radius:20px}#feedback-container.expanded #feedback-title{margin-top:0;text-align:center}#feedback-container.reduced{width:230px;height:35px;text-align:left;padding-left:12px}#feedback-container.reduced #feedback-title{margin-top:5px}#feedback-container .feedback-chevron{position:absolute;top:0;right:0}#feedback-container.expanded .feedback-chevron{border-top-right-radius:50%}#feedback-container #feedback-form{display:none}#feedback-container #feedback-form.visible{display:block;animation:fadeIn .5s}#feedback-container #feedback-form a{border:solid 1px var(--vd-neutral-dark);border-radius:50%;padding-left:11px;padding-right:11px}#feedback-container #feedback-form a:focus{background-color:var(--vd-neutral-dark)}#feedback-container #feedback-form .smiley-link{font-size:60px}:host ::ng-deep #feedback-container #feedback-form svg{transition:all .2s}:host ::ng-deep #feedback-container #feedback-form svg:hover,:host ::ng-deep #feedback-container #feedback-form svg:focus{transform:scale(1.3)}@keyframes fadeIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@media(min-width:577px){@keyframes popout{0%{bottom:-175px}to{bottom:0}}}@media(max-width:576px){#feedback-container{transform:scale(.8)}#feedback-container.expanded{right:-42px;bottom:-20px}#feedback-container.reduced{right:-29px;bottom:-3px}#feedback-container.expanded.offset-bottom{bottom:6px}#feedback-container.reduced.offset-bottom{bottom:20px}@keyframes popout{0%{bottom:-140px}to{bottom:-20px}}}\n"] }]
3811
+ }, template: "<div\n id=\"feedback-container\"\n [class.expanded]=\"expanded()\"\n [class.reduced]=\"!expanded()\"\n [class.offset-bottom]=\"isScrollEnded\"\n [class.visible]=\"visible | async\"\n>\n <button\n type=\"button\"\n class=\"feedback-chevron btn btn-link\"\n (click)=\"expanded.set(!expanded())\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"'feedback-form'\"\n >\n @if (expanded()) {\n <foehn-icon-chevron-down\n [title]=\"\n 'foehn-feedback-notification.chevron-down' | fromDictionary\n \"\n />\n } @else {\n <foehn-icon-chevron-up\n [title]=\"\n 'foehn-feedback-notification.chevron-up' | fromDictionary\n \"\n />\n }\n </button>\n <div id=\"feedback-title\" class=\"h4\">\n @if (expanded()) {\n {{ 'foehn-feedback-notification.title-expanded' | fromDictionary }}\n } @else {\n {{ 'foehn-feedback-notification.title-reduced' | fromDictionary }}\n }\n </div>\n <div id=\"feedback-form\" [class.visible]=\"expanded()\">\n <p class=\"mb-0\">\n {{\n 'foehn-feedback-notification.question.Q_NOTIFICATION_FACILE_A_UTILISER'\n | fromDictionary\n }}\n </p>\n <ul class=\"vd-list-icons mb-0 d-flex justify-content-center\">\n <li>\n <a\n [href]=\"goodUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-success\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n \"\n [icon]=\"goodIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.good'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li class=\"mx-2\">\n <a\n [href]=\"mediumUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-warning\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n \"\n [icon]=\"mediumIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.medium'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n <li>\n <a\n [href]=\"badUrl | async\"\n target=\"_blank\"\n rel=\"opener\"\n class=\"smiley-link text-danger\"\n (click)=\"hideNotification()\"\n >\n <fa-icon\n aria-hidden=\"true\"\n [title]=\"\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n \"\n [icon]=\"badIconName\"\n />\n <span class=\"visually-hidden\">\n {{\n 'foehn-feedback-notification.icon.bad'\n | fromDictionary\n }}\n </span>\n </a>\n </li>\n </ul>\n </div>\n</div>\n", styles: ["#feedback-container{display:none;position:fixed;bottom:0;right:0;color:#fff;background-color:var(--vd-neutral-dark);border:1px white solid;border-bottom:0;z-index:99999;transition:all .3s}#feedback-container.visible{display:block;animation:popout 1s}#feedback-container.offset-bottom{bottom:23px}#feedback-container.expanded{padding:15px;width:420px;height:175px;background-color:var(--vd-neutral-dark);border-top-left-radius:20px;border-top-right-radius:20px}#feedback-container.expanded #feedback-title{margin-top:0;text-align:center}#feedback-container.reduced{width:230px;height:35px;text-align:left;padding-left:12px}#feedback-container.reduced #feedback-title{margin-top:5px}#feedback-container .feedback-chevron{position:absolute;top:0;right:0}#feedback-container.expanded .feedback-chevron{border-top-right-radius:50%}#feedback-container #feedback-form{display:none}#feedback-container #feedback-form.visible{display:block;animation:fadeIn .5s}#feedback-container #feedback-form a{border:solid 1px var(--vd-neutral-dark);border-radius:50%;padding-left:11px;padding-right:11px}#feedback-container #feedback-form a:focus{background-color:var(--vd-neutral-dark)}#feedback-container #feedback-form .smiley-link{font-size:60px}:host ::ng-deep #feedback-container #feedback-form svg{transition:all .2s}:host ::ng-deep #feedback-container #feedback-form svg:hover,:host ::ng-deep #feedback-container #feedback-form svg:focus{transform:scale(1.3)}@keyframes fadeIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@media(min-width:577px){@keyframes popout{0%{bottom:-175px}to{bottom:0}}}@media(max-width:576px){#feedback-container{transform:scale(.8)}#feedback-container.expanded{right:-42px;bottom:-20px}#feedback-container.reduced{right:-29px;bottom:-3px}#feedback-container.expanded.offset-bottom{bottom:6px}#feedback-container.reduced.offset-bottom{bottom:20px}@keyframes popout{0%{bottom:-140px}to{bottom:-20px}}}\n"] }]
3811
3812
  }], ctorParameters: () => [] });
3812
3813
 
3813
3814
  class FoehnIconInfoCircleComponent extends AbstractIconComponent {
@@ -5653,7 +5654,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
5653
5654
  args: [{ selector: 'foehn-confirm-modal', imports: [FoehnModalComponent, AsyncPipe], template: "@if (content | async; as modalContent) {\n <foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null &&\n modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n [draggable]=\"\n modalContent.draggable !== null &&\n modalContent.draggable !== undefined\n ? modalContent.draggable\n : false\n \"\n [hideable]=\"\n modalContent.hideable !== null &&\n modalContent.hideable !== undefined\n ? modalContent.hideable\n : true\n \"\n >\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n <div modal-footer>\n <div class=\"d-flex justify-content-end me-2 mb-2 mt-2\">\n @if (modalContent.showCancelButton !== false) {\n <button\n id=\"cancelButton\"\n type=\"button\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n }\n @if (modalContent.showOkButton !== false) {\n <button\n id=\"confirmButton\"\n type=\"button\"\n class=\"btn btn-primary ms-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n }\n </div>\n </div>\n </foehn-modal>\n}\n" }]
5654
5655
  }], ctorParameters: () => [] });
5655
5656
 
5656
- const GUIDE_URL = 'https://www.vd.ch/index.php?id=67827';
5657
+ const GUIDE_URL = 'https://www.vd.ch/guide-espace-securise/';
5657
5658
  const TERM_OF_USE_URL = 'https://www.vd.ch/index.php?id=2015321';
5658
5659
  const SECURITY_BEST_PRACTICE_URL = 'https://www.vd.ch/index.php?id=2015320';
5659
5660
  class FoehnFooterComponent {
@@ -6997,7 +6998,7 @@ class DraftsContainerComponent {
6997
6998
  : url.replace('{etapeId}/', '');
6998
6999
  }
6999
7000
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DraftsContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7000
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: DraftsContainerComponent, isStandalone: true, selector: "sdk-drafts-container", inputs: { draftsUrl: { classPropertyName: "draftsUrl", publicName: "draftsUrl", isSignal: true, isRequired: false, transformFunction: null }, etapeId: { classPropertyName: "etapeId", publicName: "etapeId", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "referenceLink", first: true, predicate: ["referenceLink"], descendants: true, isSignal: true }, { propertyName: "detailLink", first: true, predicate: ["detailLink"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (draftsToDisplay | async; as drafts) {\n @if (!!drafts.length) {\n <div class=\"d-flex flex-column container mt-2\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n type=\"button\"\n class=\"btn btn-link pe-0 ps-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil />\n <span class=\"me-2\"></span>\n <span\n class=\"ps-0 me-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]=\"\n 'draft-container.modal.title' | fromDictionary\n \"\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 <foehn-table\n id=\"draftTable\"\n [model]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\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 >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n </a>\n <button\n id=\"hideDraftsButton\"\n type=\"button\"\n class=\"btn btn-secondary ms-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 }\n}\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 >\n <foehn-icon-search\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n />\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: "component", type: FoehnIconPencilComponent, selector: "foehn-icon-pencil" }, { kind: "component", type: FoehnModalComponent, selector: "foehn-modal", inputs: ["isModalVisible", "id", "modalBodyText", "modalHeaderText", "closeable", "draggable", "hideable", "modalTriggerHtmlElement", "name", "modalSize"], outputs: ["isModalVisibleChange"] }, { kind: "component", type: FoehnTableComponent, selector: "foehn-table", inputs: ["columnsConfiguration", "itemsPerPage", "fixedPageCount", "sort", "title", "totalElements", "titleSrOnly", "previousLabel", "nextLabel", "tableClass", "trackByFn"], outputs: ["columnsConfigurationChange", "sortChange", "pageChange", "rowClick"] }, { kind: "component", type: FoehnIconSearchComponent, selector: "foehn-icon-search" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
7001
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: DraftsContainerComponent, isStandalone: true, selector: "sdk-drafts-container", inputs: { draftsUrl: { classPropertyName: "draftsUrl", publicName: "draftsUrl", isSignal: true, isRequired: false, transformFunction: null }, etapeId: { classPropertyName: "etapeId", publicName: "etapeId", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "referenceLink", first: true, predicate: ["referenceLink"], descendants: true, isSignal: true }, { propertyName: "detailLink", first: true, predicate: ["detailLink"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (draftsToDisplay | async; as drafts) {\n @if (!!drafts.length) {\n <div class=\"d-flex flex-column container mt-2\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n type=\"button\"\n class=\"btn btn-link pe-0 ps-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil />\n <span class=\"me-2\"></span>\n <span\n class=\"ps-0 me-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]=\"\n 'draft-container.modal.title' | fromDictionary\n \"\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 <foehn-table\n [name]=\"'draftTable'\"\n [model]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\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 >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n </a>\n <button\n id=\"hideDraftsButton\"\n type=\"button\"\n class=\"btn btn-secondary ms-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 }\n}\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 >\n <foehn-icon-search\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n />\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: "component", type: FoehnIconPencilComponent, selector: "foehn-icon-pencil" }, { kind: "component", type: FoehnModalComponent, selector: "foehn-modal", inputs: ["isModalVisible", "id", "modalBodyText", "modalHeaderText", "closeable", "draggable", "hideable", "modalTriggerHtmlElement", "name", "modalSize"], outputs: ["isModalVisibleChange"] }, { kind: "component", type: FoehnTableComponent, selector: "foehn-table", inputs: ["columnsConfiguration", "itemsPerPage", "fixedPageCount", "sort", "title", "totalElements", "titleSrOnly", "previousLabel", "nextLabel", "tableClass", "trackByFn"], outputs: ["columnsConfigurationChange", "sortChange", "pageChange", "rowClick"] }, { kind: "component", type: FoehnIconSearchComponent, selector: "foehn-icon-search" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
7001
7002
  }
7002
7003
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DraftsContainerComponent, decorators: [{
7003
7004
  type: Component,
@@ -7008,7 +7009,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
7008
7009
  FoehnIconSearchComponent,
7009
7010
  AsyncPipe,
7010
7011
  SdkDictionaryPipe,
7011
- ], template: "@if (draftsToDisplay | async; as drafts) {\n @if (!!drafts.length) {\n <div class=\"d-flex flex-column container mt-2\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n type=\"button\"\n class=\"btn btn-link pe-0 ps-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil />\n <span class=\"me-2\"></span>\n <span\n class=\"ps-0 me-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]=\"\n 'draft-container.modal.title' | fromDictionary\n \"\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 <foehn-table\n id=\"draftTable\"\n [model]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\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 >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n </a>\n <button\n id=\"hideDraftsButton\"\n type=\"button\"\n class=\"btn btn-secondary ms-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 }\n}\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 >\n <foehn-icon-search\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n />\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"] }]
7012
+ ], template: "@if (draftsToDisplay | async; as drafts) {\n @if (!!drafts.length) {\n <div class=\"d-flex flex-column container mt-2\">\n <div class=\"mb-2 mt-2\">\n <button\n id=\"showDraftsButton\"\n type=\"button\"\n class=\"btn btn-link pe-0 ps-0\"\n (click)=\"showDrafts()\"\n #showDraftsButton\n >\n <foehn-icon-pencil />\n <span class=\"me-2\"></span>\n <span\n class=\"ps-0 me-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]=\"\n 'draft-container.modal.title' | fromDictionary\n \"\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 <foehn-table\n [name]=\"'draftTable'\"\n [model]=\"drafts\"\n [columnsConfiguration]=\"columnsConfiguration\"\n [sort]=\"{ sortDirection: 'DESC' }\"\n [itemsPerPage]=\"5\"\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 >\n {{\n 'draft-container.modal.drafts-in-es.button'\n | fromDictionary\n }}\n </a>\n <button\n id=\"hideDraftsButton\"\n type=\"button\"\n class=\"btn btn-secondary ms-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 }\n}\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 >\n <foehn-icon-search\n [title]=\"\n 'draft-container.list.details-in-es.link'\n | fromDictionary: { reference: draft.reference }\n \"\n />\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"] }]
7012
7013
  }], ctorParameters: () => [], propDecorators: { draftsUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "draftsUrl", required: false }] }], etapeId: [{ type: i0.Input, args: [{ isSignal: true, alias: "etapeId", required: false }] }], referenceLink: [{ type: i0.ViewChild, args: ['referenceLink', { isSignal: true }] }], detailLink: [{ type: i0.ViewChild, args: ['detailLink', { isSignal: true }] }] } });
7013
7014
 
7014
7015
  class SdkStatisticsService {
@@ -7149,7 +7150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
7149
7150
  args: [{ selector: 'sdk-support-alert-container', imports: [SupportAlertComponent, AsyncPipe], template: "@if (hasAlerts | async) {\n <section class=\"d-flex flex-column container mt-2\">\n <h2 class=\"visually-hidden\">Messages de support</h2>\n @if (hasHiddenAlerts | async) {\n <div class=\"mb-2 mt-2\">\n <button\n type=\"button\"\n class=\"btn btn-link pe-0 ps-0\"\n (click)=\"restoreAllAlerts()\"\n >\n Afficher tous les messages\n </button>\n </div>\n }\n @for (alert of alertsToDisplay | async; track alert) {\n <sdk-support-alert [alert]=\"alert\" />\n }\n </section>\n}\n" }]
7150
7151
  }], propDecorators: { supportAlertUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportAlertUrl", required: false }] }], etapeId: [{ type: i0.Input, args: [{ isSignal: true, alias: "etapeId", required: false }] }] } });
7151
7152
 
7152
- const supportedBrowsers = /Edge?\/(14[7-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(14\d|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(26\.([3-9]|\d{2,})|(2[7-9]|[3-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(18[._]([5-9]|\d{2,})|(19|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](149|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15[1-9]|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(149|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(29|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(2\.([5-9]|\d{2,})|([3-9]|\d{2,})\.\d+)(\.\d+|)/;
7153
+ const supportedBrowsers = /Edge?\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(14\d|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(26\.([3-9]|\d{2,})|(2[7-9]|[3-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(18[._]([5-9]|\d{2,})|(19|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](149|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15[2-9]|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(149|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(29|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(2\.([5-9]|\d{2,})|([3-9]|\d{2,})\.\d+)(\.\d+|)/;
7153
7154
 
7154
7155
  class FoehnAppVersionMisMatchModalComponent {
7155
7156
  constructor() {
@@ -7464,11 +7465,11 @@ class FoehnPageModalComponent {
7464
7465
  this.wrongPublicModalVisible = status;
7465
7466
  }
7466
7467
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnPageModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7467
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnPageModalComponent, isStandalone: true, selector: "foehn-page-modal", ngImport: i0, template: "<foehn-modal\n modalHeaderText=\"Acc\u00E8s non autoris\u00E9\"\n modalSize=\"modal-lg\"\n [isModalVisible]=\"wrongPublicModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"false\"\n>\n <div class=\"modal-body\">\n Vous \u00EAtes connect\u00E9 pour le compte d\u2019un usager de type\n {{ getUserCategory() }}, or cette prestation est destin\u00E9e aux usagers de\n type :\n <ul>\n @for (pubCible of formattedPublicsCibles; track $index) {\n <li>\n {{ pubCible }}\n </li>\n }\n </ul>\n </div>\n <div class=\"modal-body\">\n Vous pouvez choisir de vous reconnecter et de continuer, ou bien\n d'abandonner.\n </div>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary w-100\"\n [href]=\"getFullLoginUrl() | async\"\n >\n Se reconnecter\n </a>\n </div>\n <div class=\"ms-md-0 me-md-2 mb-2 mt-2\">\n <a class=\"btn btn-primary w-100\" [href]=\"getAbortUrl() | async\">\n Abandonner\n </a>\n </div>\n </div>\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "component", type: FoehnModalComponent, selector: "foehn-modal", inputs: ["isModalVisible", "id", "modalBodyText", "modalHeaderText", "closeable", "draggable", "hideable", "modalTriggerHtmlElement", "name", "modalSize"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
7468
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnPageModalComponent, isStandalone: true, selector: "foehn-page-modal", ngImport: i0, template: "<foehn-modal\n modalHeaderText=\"Acc\u00E8s non autoris\u00E9\"\n modalSize=\"modal-lg\"\n [isModalVisible]=\"wrongPublicModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"false\"\n>\n <div class=\"modal-body\">\n Vous \u00EAtes connect\u00E9 pour le compte d\u2019un usager de type\n {{ getUserCategory() }}, or cette prestation est destin\u00E9e aux usagers de\n type :\n <ul>\n @for (pubCible of formattedPublicsCibles; track pubCible) {\n <li>\n {{ pubCible }}\n </li>\n }\n </ul>\n </div>\n <div class=\"modal-body\">\n Vous pouvez choisir de vous reconnecter et de continuer, ou bien\n d'abandonner.\n </div>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary w-100\"\n [href]=\"getFullLoginUrl() | async\"\n >\n Se reconnecter\n </a>\n </div>\n <div class=\"ms-md-0 me-md-2 mb-2 mt-2\">\n <a class=\"btn btn-primary w-100\" [href]=\"getAbortUrl() | async\">\n Abandonner\n </a>\n </div>\n </div>\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "component", type: FoehnModalComponent, selector: "foehn-modal", inputs: ["isModalVisible", "id", "modalBodyText", "modalHeaderText", "closeable", "draggable", "hideable", "modalTriggerHtmlElement", "name", "modalSize"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
7468
7469
  }
7469
7470
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnPageModalComponent, decorators: [{
7470
7471
  type: Component,
7471
- args: [{ selector: 'foehn-page-modal', imports: [FoehnModalComponent, AsyncPipe], template: "<foehn-modal\n modalHeaderText=\"Acc\u00E8s non autoris\u00E9\"\n modalSize=\"modal-lg\"\n [isModalVisible]=\"wrongPublicModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"false\"\n>\n <div class=\"modal-body\">\n Vous \u00EAtes connect\u00E9 pour le compte d\u2019un usager de type\n {{ getUserCategory() }}, or cette prestation est destin\u00E9e aux usagers de\n type :\n <ul>\n @for (pubCible of formattedPublicsCibles; track $index) {\n <li>\n {{ pubCible }}\n </li>\n }\n </ul>\n </div>\n <div class=\"modal-body\">\n Vous pouvez choisir de vous reconnecter et de continuer, ou bien\n d'abandonner.\n </div>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary w-100\"\n [href]=\"getFullLoginUrl() | async\"\n >\n Se reconnecter\n </a>\n </div>\n <div class=\"ms-md-0 me-md-2 mb-2 mt-2\">\n <a class=\"btn btn-primary w-100\" [href]=\"getAbortUrl() | async\">\n Abandonner\n </a>\n </div>\n </div>\n </div>\n</foehn-modal>\n" }]
7472
+ args: [{ selector: 'foehn-page-modal', imports: [FoehnModalComponent, AsyncPipe], template: "<foehn-modal\n modalHeaderText=\"Acc\u00E8s non autoris\u00E9\"\n modalSize=\"modal-lg\"\n [isModalVisible]=\"wrongPublicModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"false\"\n>\n <div class=\"modal-body\">\n Vous \u00EAtes connect\u00E9 pour le compte d\u2019un usager de type\n {{ getUserCategory() }}, or cette prestation est destin\u00E9e aux usagers de\n type :\n <ul>\n @for (pubCible of formattedPublicsCibles; track pubCible) {\n <li>\n {{ pubCible }}\n </li>\n }\n </ul>\n </div>\n <div class=\"modal-body\">\n Vous pouvez choisir de vous reconnecter et de continuer, ou bien\n d'abandonner.\n </div>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary w-100\"\n [href]=\"getFullLoginUrl() | async\"\n >\n Se reconnecter\n </a>\n </div>\n <div class=\"ms-md-0 me-md-2 mb-2 mt-2\">\n <a class=\"btn btn-primary w-100\" [href]=\"getAbortUrl() | async\">\n Abandonner\n </a>\n </div>\n </div>\n </div>\n</foehn-modal>\n" }]
7472
7473
  }] });
7473
7474
 
7474
7475
  class FoehnTransmitWaitingModalComponent {
@@ -10486,14 +10487,14 @@ dayjs.extend(isToday);
10486
10487
  class FoehnDatePickerComponent {
10487
10488
  constructor() {
10488
10489
  this.daysButtonsElemRef = viewChildren('dayButtonElemRef', ...(ngDevMode ? [{ debugName: "daysButtonsElemRef" }] : /* istanbul ignore next */ []));
10489
- this.model = model(...(ngDevMode ? [undefined, { debugName: "model" }] : /* istanbul ignore next */ []));
10490
+ this.model = model.required(...(ngDevMode ? [{ debugName: "model" }] : /* istanbul ignore next */ []));
10490
10491
  this.isDatepickerVisible = model(false, ...(ngDevMode ? [{ debugName: "isDatepickerVisible" }] : /* istanbul ignore next */ []));
10491
10492
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
10492
10493
  this.minDate = input(...(ngDevMode ? [undefined, { debugName: "minDate" }] : /* istanbul ignore next */ []));
10493
10494
  this.maxDate = input(...(ngDevMode ? [undefined, { debugName: "maxDate" }] : /* istanbul ignore next */ []));
10494
10495
  this.datepickerTriggerHtmlElement = input(...(ngDevMode ? [undefined, { debugName: "datepickerTriggerHtmlElement" }] : /* istanbul ignore next */ []));
10495
10496
  this.closeable = input(true, ...(ngDevMode ? [{ debugName: "closeable" }] : /* istanbul ignore next */ []));
10496
- this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
10497
+ this.name = input.required(...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
10497
10498
  this.minYear = input(dayjs().year() - 100, ...(ngDevMode ? [{ debugName: "minYear" }] : /* istanbul ignore next */ []));
10498
10499
  this.maxYear = input(dayjs().year() + 10, ...(ngDevMode ? [{ debugName: "maxYear" }] : /* istanbul ignore next */ []));
10499
10500
  this.userInput = output();
@@ -10796,7 +10797,7 @@ class FoehnDatePickerComponent {
10796
10797
  return false;
10797
10798
  }
10798
10799
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10799
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnDatePickerComponent, isStandalone: true, selector: "foehn-date-picker", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, isDatepickerVisible: { classPropertyName: "isDatepickerVisible", publicName: "isDatepickerVisible", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, datepickerTriggerHtmlElement: { classPropertyName: "datepickerTriggerHtmlElement", publicName: "datepickerTriggerHtmlElement", isSignal: true, isRequired: false, transformFunction: null }, closeable: { classPropertyName: "closeable", publicName: "closeable", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { model: "modelChange", isDatepickerVisible: "isDatepickerVisibleChange", userInput: "userInput" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "hostId" } }, viewQueries: [{ propertyName: "daysButtonsElemRef", predicate: ["dayButtonElemRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (isDatepickerVisible()) {\n <div\n [id]=\"buildId('datepicker_wrapper')\"\n class=\"datepicker_wrapper\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement()\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n >\n @if (closeable()) {\n <button\n (click)=\"isDatepickerVisible.set(false)\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n [id]=\"buildId('closeButton')\"\n ></button>\n }\n <div\n [id]=\"buildId('datepicker_header')\"\n class=\"d-flex justify-content-between datepicker_header\"\n >\n @if (currentMonthYear | async; as monthYear) {\n <button\n [id]=\"buildId('previous-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"previousMonth()\"\n [attr.disabled]=\"isPreviousMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n <span\n [id]=\"buildId('month-year-label')\"\n aria-live=\"polite\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }}\n {{ monthYear.year }}\n </span>\n <foehn-select\n [id]=\"buildId('month-input')\"\n class=\"align-self-center month-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"true\"\n (userInput)=\"userInputMonth($event)\"\n />\n <foehn-select\n [id]=\"buildId('year-input')\"\n class=\"align-self-center year-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem()\"\n [model]=\"monthYear.year\"\n [required]=\"true\"\n (userInput)=\"userInputYear($event)\"\n />\n <button\n [id]=\"buildId('next-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"nextMonth()\"\n [attr.disabled]=\"isNextMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n }\n </div>\n <table\n [id]=\"buildId('datepicker_table')\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <caption class=\"visually-hidden\">\n {{\n 'foehn-date-picker.screen-reader.grid.title'\n | fromDictionary\n }}\n </caption>\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n @for (weekday of weekDays; track weekday) {\n <th scope=\"col\" role=\"columnheader\">\n <foehn-abbr\n [text]=\"weekday.substring(0, 2)\"\n [title]=\"weekday\"\n />\n </th>\n }\n </tr>\n </thead>\n <tbody role=\"presentation\">\n @for (week of weeks; track $index; let indexRow = $index) {\n <tr role=\"row\">\n @for (\n dayOfWeek of week;\n track $index;\n let indexColumn = $index\n ) {\n <td role=\"gridcell\">\n <button\n type=\"button\"\n class=\"btn w-100\"\n #dayButtonElemRef\n [hidden]=\"!dayOfWeek.isCurrentMonth\"\n [id]=\"\n buildId(\n 'day_' +\n indexRow +\n '_' +\n indexColumn\n )\n \"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"\n !isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-secondary]=\"\n isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-primary]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"\n isToday(dayOfWeek.date)\n \"\n [attr.data-is-selected]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"\n getDayDisabledAttribute(dayOfWeek)\n \"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n}\n", styles: [":host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}:host ::ng-deep thead th abbr[title]{text-decoration:underline dotted 1px!important}:host ::ng-deep foehn-select select.form-select{padding:0 0 0 3px;margin:0;height:30px;border-color:#aaa;background-image:none;appearance:auto!important;box-shadow:none}:host ::ng-deep foehn-select select.form-select:hover{border-color:#000;cursor:pointer}:host ::ng-deep foehn-select select.form-select:focus,:host ::ng-deep .btn:focus{box-shadow:0 0 0 2px var(--vd-focus)}:host ::ng-deep foehn-select .form-group{margin-bottom:0!important}.datepicker_header{margin:4px 0}.datepicker_wrapper{max-width:250px;min-width:224px;padding:4px;outline:1px solid #dfdfdf;background-color:#fff}.datepicker_wrapper .h4{margin-bottom:0}.datepicker_wrapper table{width:100%}.datepicker_wrapper thead th{text-align:center;font-weight:400}.datepicker_wrapper .btn{padding:2px 4px}:host ::ng-deep .datepicker_wrapper button.btn-close{position:absolute;right:-24px;top:-24px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:31px;height:35px;opacity:1;scale:.7}.datepicker_wrapper .month-input{margin-right:5px}.datepicker_wrapper .year-input{min-width:62px}.btn-info:disabled{cursor:not-allowed}.datepicker-nav-month-btn:disabled{opacity:.2}table tr td>button.btn-info:hover,table tr td>button.btn-secondary:hover,table tr td>button.btn-primary:hover{box-shadow:0 0 0 2px var(--vd-focus)}table tr td>button.btn-info:disabled{box-shadow:none;opacity:.3}table tr td>button.btn-info{background-color:var(--vd-neutral-light);border-color:var(--vd-neutral-light)}table tr td>button.btn-info:hover{background-color:var(--vd-neutral-lighter);border-color:var(--vd-neutral-lighter)}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple", "noSelectionLabel"] }, { kind: "component", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "component", type: FoehnAbbrComponent, selector: "foehn-abbr", inputs: ["title", "text"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
10800
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnDatePickerComponent, isStandalone: true, selector: "foehn-date-picker", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, isDatepickerVisible: { classPropertyName: "isDatepickerVisible", publicName: "isDatepickerVisible", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, datepickerTriggerHtmlElement: { classPropertyName: "datepickerTriggerHtmlElement", publicName: "datepickerTriggerHtmlElement", isSignal: true, isRequired: false, transformFunction: null }, closeable: { classPropertyName: "closeable", publicName: "closeable", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { model: "modelChange", isDatepickerVisible: "isDatepickerVisibleChange", userInput: "userInput" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "hostId" } }, viewQueries: [{ propertyName: "daysButtonsElemRef", predicate: ["dayButtonElemRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (isDatepickerVisible()) {\n <div\n [id]=\"buildId('datepicker_wrapper')\"\n class=\"datepicker_wrapper\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement()\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n >\n @if (closeable()) {\n <button\n (click)=\"isDatepickerVisible.set(false)\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n [id]=\"buildId('closeButton')\"\n ></button>\n }\n <div\n [id]=\"buildId('datepicker_header')\"\n class=\"d-flex justify-content-between datepicker_header\"\n >\n @if (currentMonthYear | async; as monthYear) {\n <button\n [id]=\"buildId('previous-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"previousMonth()\"\n [attr.disabled]=\"isPreviousMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n <span\n [id]=\"buildId('month-year-label')\"\n aria-live=\"polite\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }}\n {{ monthYear.year }}\n </span>\n <foehn-select\n [name]=\"buildId('month-input')\"\n class=\"align-self-center month-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"true\"\n (userInput)=\"userInputMonth($event)\"\n />\n <foehn-select\n [name]=\"buildId('year-input')\"\n class=\"align-self-center year-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem()\"\n [model]=\"monthYear.year\"\n [required]=\"true\"\n (userInput)=\"userInputYear($event)\"\n />\n <button\n [id]=\"buildId('next-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"nextMonth()\"\n [attr.disabled]=\"isNextMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n }\n </div>\n <table\n [id]=\"buildId('datepicker_table')\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <caption class=\"visually-hidden\">\n {{\n 'foehn-date-picker.screen-reader.grid.title'\n | fromDictionary\n }}\n </caption>\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n @for (weekday of weekDays; track weekday) {\n <th scope=\"col\" role=\"columnheader\">\n <foehn-abbr\n [text]=\"weekday.substring(0, 2)\"\n [title]=\"weekday\"\n />\n </th>\n }\n </tr>\n </thead>\n <tbody role=\"presentation\">\n @for (week of weeks; track $index; let indexRow = $index) {\n <tr role=\"row\">\n @for (\n dayOfWeek of week;\n track $index;\n let indexColumn = $index\n ) {\n <td role=\"gridcell\">\n <button\n type=\"button\"\n class=\"btn w-100\"\n #dayButtonElemRef\n [hidden]=\"!dayOfWeek.isCurrentMonth\"\n [id]=\"\n buildId(\n 'day_' +\n indexRow +\n '_' +\n indexColumn\n )\n \"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"\n !isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-secondary]=\"\n isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-primary]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"\n isToday(dayOfWeek.date)\n \"\n [attr.data-is-selected]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"\n getDayDisabledAttribute(dayOfWeek)\n \"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n}\n", styles: [":host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}:host ::ng-deep thead th abbr[title]{text-decoration:underline dotted 1px!important}:host ::ng-deep foehn-select select.form-select{padding:0 0 0 3px;margin:0;height:30px;border-color:#aaa;background-image:none;appearance:auto!important;box-shadow:none}:host ::ng-deep foehn-select select.form-select:hover{border-color:#000;cursor:pointer}:host ::ng-deep foehn-select select.form-select:focus,:host ::ng-deep .btn:focus{box-shadow:0 0 0 2px var(--vd-focus)}:host ::ng-deep foehn-select .form-group{margin-bottom:0!important}.datepicker_header{margin:4px 0}.datepicker_wrapper{max-width:250px;min-width:224px;padding:4px;outline:1px solid #dfdfdf;background-color:#fff}.datepicker_wrapper .h4{margin-bottom:0}.datepicker_wrapper table{width:100%}.datepicker_wrapper thead th{text-align:center;font-weight:400}.datepicker_wrapper .btn{padding:2px 4px}:host ::ng-deep .datepicker_wrapper button.btn-close{position:absolute;right:-24px;top:-24px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:31px;height:35px;opacity:1;scale:.7}.datepicker_wrapper .month-input{margin-right:5px}.datepicker_wrapper .year-input{min-width:62px}.btn-info:disabled{cursor:not-allowed}.datepicker-nav-month-btn:disabled{opacity:.2}table tr td>button.btn-info:hover,table tr td>button.btn-secondary:hover,table tr td>button.btn-primary:hover{box-shadow:0 0 0 2px var(--vd-focus)}table tr td>button.btn-info:disabled{box-shadow:none;opacity:.3}table tr td>button.btn-info{background-color:var(--vd-neutral-light);border-color:var(--vd-neutral-light)}table tr td>button.btn-info:hover{background-color:var(--vd-neutral-lighter);border-color:var(--vd-neutral-lighter)}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple", "noSelectionLabel"] }, { kind: "component", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "component", type: FoehnAbbrComponent, selector: "foehn-abbr", inputs: ["title", "text"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
10800
10801
  }
10801
10802
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnDatePickerComponent, decorators: [{
10802
10803
  type: Component,
@@ -10812,8 +10813,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
10812
10813
  '(keyup)': 'handleKeyboardUpEvent($event)',
10813
10814
  '(keydown)': 'handleKeyboardDownEvent($event)',
10814
10815
  '[attr.id]': 'hostId',
10815
- }, template: "@if (isDatepickerVisible()) {\n <div\n [id]=\"buildId('datepicker_wrapper')\"\n class=\"datepicker_wrapper\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement()\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n >\n @if (closeable()) {\n <button\n (click)=\"isDatepickerVisible.set(false)\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n [id]=\"buildId('closeButton')\"\n ></button>\n }\n <div\n [id]=\"buildId('datepicker_header')\"\n class=\"d-flex justify-content-between datepicker_header\"\n >\n @if (currentMonthYear | async; as monthYear) {\n <button\n [id]=\"buildId('previous-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"previousMonth()\"\n [attr.disabled]=\"isPreviousMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n <span\n [id]=\"buildId('month-year-label')\"\n aria-live=\"polite\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }}\n {{ monthYear.year }}\n </span>\n <foehn-select\n [id]=\"buildId('month-input')\"\n class=\"align-self-center month-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"true\"\n (userInput)=\"userInputMonth($event)\"\n />\n <foehn-select\n [id]=\"buildId('year-input')\"\n class=\"align-self-center year-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem()\"\n [model]=\"monthYear.year\"\n [required]=\"true\"\n (userInput)=\"userInputYear($event)\"\n />\n <button\n [id]=\"buildId('next-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"nextMonth()\"\n [attr.disabled]=\"isNextMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n }\n </div>\n <table\n [id]=\"buildId('datepicker_table')\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <caption class=\"visually-hidden\">\n {{\n 'foehn-date-picker.screen-reader.grid.title'\n | fromDictionary\n }}\n </caption>\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n @for (weekday of weekDays; track weekday) {\n <th scope=\"col\" role=\"columnheader\">\n <foehn-abbr\n [text]=\"weekday.substring(0, 2)\"\n [title]=\"weekday\"\n />\n </th>\n }\n </tr>\n </thead>\n <tbody role=\"presentation\">\n @for (week of weeks; track $index; let indexRow = $index) {\n <tr role=\"row\">\n @for (\n dayOfWeek of week;\n track $index;\n let indexColumn = $index\n ) {\n <td role=\"gridcell\">\n <button\n type=\"button\"\n class=\"btn w-100\"\n #dayButtonElemRef\n [hidden]=\"!dayOfWeek.isCurrentMonth\"\n [id]=\"\n buildId(\n 'day_' +\n indexRow +\n '_' +\n indexColumn\n )\n \"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"\n !isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-secondary]=\"\n isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-primary]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"\n isToday(dayOfWeek.date)\n \"\n [attr.data-is-selected]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"\n getDayDisabledAttribute(dayOfWeek)\n \"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n}\n", styles: [":host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}:host ::ng-deep thead th abbr[title]{text-decoration:underline dotted 1px!important}:host ::ng-deep foehn-select select.form-select{padding:0 0 0 3px;margin:0;height:30px;border-color:#aaa;background-image:none;appearance:auto!important;box-shadow:none}:host ::ng-deep foehn-select select.form-select:hover{border-color:#000;cursor:pointer}:host ::ng-deep foehn-select select.form-select:focus,:host ::ng-deep .btn:focus{box-shadow:0 0 0 2px var(--vd-focus)}:host ::ng-deep foehn-select .form-group{margin-bottom:0!important}.datepicker_header{margin:4px 0}.datepicker_wrapper{max-width:250px;min-width:224px;padding:4px;outline:1px solid #dfdfdf;background-color:#fff}.datepicker_wrapper .h4{margin-bottom:0}.datepicker_wrapper table{width:100%}.datepicker_wrapper thead th{text-align:center;font-weight:400}.datepicker_wrapper .btn{padding:2px 4px}:host ::ng-deep .datepicker_wrapper button.btn-close{position:absolute;right:-24px;top:-24px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:31px;height:35px;opacity:1;scale:.7}.datepicker_wrapper .month-input{margin-right:5px}.datepicker_wrapper .year-input{min-width:62px}.btn-info:disabled{cursor:not-allowed}.datepicker-nav-month-btn:disabled{opacity:.2}table tr td>button.btn-info:hover,table tr td>button.btn-secondary:hover,table tr td>button.btn-primary:hover{box-shadow:0 0 0 2px var(--vd-focus)}table tr td>button.btn-info:disabled{box-shadow:none;opacity:.3}table tr td>button.btn-info{background-color:var(--vd-neutral-light);border-color:var(--vd-neutral-light)}table tr td>button.btn-info:hover{background-color:var(--vd-neutral-lighter);border-color:var(--vd-neutral-lighter)}\n"] }]
10816
- }], ctorParameters: () => [], propDecorators: { daysButtonsElemRef: [{ type: i0.ViewChildren, args: ['dayButtonElemRef', { isSignal: true }] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }, { type: i0.Output, args: ["modelChange"] }], isDatepickerVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDatepickerVisible", required: false }] }, { type: i0.Output, args: ["isDatepickerVisibleChange"] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], datepickerTriggerHtmlElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "datepickerTriggerHtmlElement", required: false }] }], closeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeable", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], minYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "minYear", required: false }] }], maxYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxYear", required: false }] }], userInput: [{ type: i0.Output, args: ["userInput"] }] } });
10816
+ }, template: "@if (isDatepickerVisible()) {\n <div\n [id]=\"buildId('datepicker_wrapper')\"\n class=\"datepicker_wrapper\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement()\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n >\n @if (closeable()) {\n <button\n (click)=\"isDatepickerVisible.set(false)\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n [id]=\"buildId('closeButton')\"\n ></button>\n }\n <div\n [id]=\"buildId('datepicker_header')\"\n class=\"d-flex justify-content-between datepicker_header\"\n >\n @if (currentMonthYear | async; as monthYear) {\n <button\n [id]=\"buildId('previous-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"previousMonth()\"\n [attr.disabled]=\"isPreviousMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n <span\n [id]=\"buildId('month-year-label')\"\n aria-live=\"polite\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }}\n {{ monthYear.year }}\n </span>\n <foehn-select\n [name]=\"buildId('month-input')\"\n class=\"align-self-center month-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"true\"\n (userInput)=\"userInputMonth($event)\"\n />\n <foehn-select\n [name]=\"buildId('year-input')\"\n class=\"align-self-center year-input\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem()\"\n [model]=\"monthYear.year\"\n [required]=\"true\"\n (userInput)=\"userInputYear($event)\"\n />\n <button\n [id]=\"buildId('next-month')\"\n type=\"button\"\n class=\"btn btn-link datepicker-nav-month-btn\"\n (click)=\"nextMonth()\"\n [attr.disabled]=\"isNextMonthDisabled(monthYear)\"\n >\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title'\n | fromDictionary\n \"\n />\n </button>\n }\n </div>\n <table\n [id]=\"buildId('datepicker_table')\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <caption class=\"visually-hidden\">\n {{\n 'foehn-date-picker.screen-reader.grid.title'\n | fromDictionary\n }}\n </caption>\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n @for (weekday of weekDays; track weekday) {\n <th scope=\"col\" role=\"columnheader\">\n <foehn-abbr\n [text]=\"weekday.substring(0, 2)\"\n [title]=\"weekday\"\n />\n </th>\n }\n </tr>\n </thead>\n <tbody role=\"presentation\">\n @for (week of weeks; track $index; let indexRow = $index) {\n <tr role=\"row\">\n @for (\n dayOfWeek of week;\n track $index;\n let indexColumn = $index\n ) {\n <td role=\"gridcell\">\n <button\n type=\"button\"\n class=\"btn w-100\"\n #dayButtonElemRef\n [hidden]=\"!dayOfWeek.isCurrentMonth\"\n [id]=\"\n buildId(\n 'day_' +\n indexRow +\n '_' +\n indexColumn\n )\n \"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"\n !isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-secondary]=\"\n isToday(dayOfWeek.date) &&\n !isSelected(dayOfWeek.date)\n \"\n [class.btn-primary]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"\n isToday(dayOfWeek.date)\n \"\n [attr.data-is-selected]=\"\n isSelected(dayOfWeek.date)\n \"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [attr.disabled]=\"\n getDayDisabledAttribute(dayOfWeek)\n \"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n}\n", styles: [":host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}:host ::ng-deep thead th abbr[title]{text-decoration:underline dotted 1px!important}:host ::ng-deep foehn-select select.form-select{padding:0 0 0 3px;margin:0;height:30px;border-color:#aaa;background-image:none;appearance:auto!important;box-shadow:none}:host ::ng-deep foehn-select select.form-select:hover{border-color:#000;cursor:pointer}:host ::ng-deep foehn-select select.form-select:focus,:host ::ng-deep .btn:focus{box-shadow:0 0 0 2px var(--vd-focus)}:host ::ng-deep foehn-select .form-group{margin-bottom:0!important}.datepicker_header{margin:4px 0}.datepicker_wrapper{max-width:250px;min-width:224px;padding:4px;outline:1px solid #dfdfdf;background-color:#fff}.datepicker_wrapper .h4{margin-bottom:0}.datepicker_wrapper table{width:100%}.datepicker_wrapper thead th{text-align:center;font-weight:400}.datepicker_wrapper .btn{padding:2px 4px}:host ::ng-deep .datepicker_wrapper button.btn-close{position:absolute;right:-24px;top:-24px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:31px;height:35px;opacity:1;scale:.7}.datepicker_wrapper .month-input{margin-right:5px}.datepicker_wrapper .year-input{min-width:62px}.btn-info:disabled{cursor:not-allowed}.datepicker-nav-month-btn:disabled{opacity:.2}table tr td>button.btn-info:hover,table tr td>button.btn-secondary:hover,table tr td>button.btn-primary:hover{box-shadow:0 0 0 2px var(--vd-focus)}table tr td>button.btn-info:disabled{box-shadow:none;opacity:.3}table tr td>button.btn-info{background-color:var(--vd-neutral-light);border-color:var(--vd-neutral-light)}table tr td>button.btn-info:hover{background-color:var(--vd-neutral-lighter);border-color:var(--vd-neutral-lighter)}\n"] }]
10817
+ }], ctorParameters: () => [], propDecorators: { daysButtonsElemRef: [{ type: i0.ViewChildren, args: ['dayButtonElemRef', { isSignal: true }] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: true }] }, { type: i0.Output, args: ["modelChange"] }], isDatepickerVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDatepickerVisible", required: false }] }, { type: i0.Output, args: ["isDatepickerVisibleChange"] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], datepickerTriggerHtmlElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "datepickerTriggerHtmlElement", required: false }] }], closeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeable", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], minYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "minYear", required: false }] }], maxYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxYear", required: false }] }], userInput: [{ type: i0.Output, args: ["userInput"] }] } });
10817
10818
 
10818
10819
  class FoehnIconCalendarComponent extends AbstractIconComponent {
10819
10820
  constructor() {
@@ -10871,10 +10872,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
10871
10872
 
10872
10873
  class FoehnDatePickerButtonComponent {
10873
10874
  constructor() {
10874
- this.model = model(...(ngDevMode ? [undefined, { debugName: "model" }] : /* istanbul ignore next */ []));
10875
+ this.model = model.required(...(ngDevMode ? [{ debugName: "model" }] : /* istanbul ignore next */ []));
10875
10876
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
10876
10877
  this.displaySelectedDate = input(true, ...(ngDevMode ? [{ debugName: "displaySelectedDate" }] : /* istanbul ignore next */ []));
10877
- this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
10878
+ this.name = input.required(...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
10878
10879
  this.minYear = input(dayjs().year() - 100, ...(ngDevMode ? [{ debugName: "minYear" }] : /* istanbul ignore next */ []));
10879
10880
  this.maxYear = input(dayjs().year() + 10, ...(ngDevMode ? [{ debugName: "maxYear" }] : /* istanbul ignore next */ []));
10880
10881
  this.minDate = input(...(ngDevMode ? [undefined, { debugName: "minDate" }] : /* istanbul ignore next */ []));
@@ -10925,7 +10926,7 @@ class FoehnDatePickerButtonComponent {
10925
10926
  this.updateVisibilityStatus(false);
10926
10927
  }
10927
10928
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnDatePickerButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10928
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnDatePickerButtonComponent, isStandalone: true, selector: "foehn-date-picker-button", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, displaySelectedDate: { classPropertyName: "displaySelectedDate", publicName: "displaySelectedDate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, selectedDateSrOnlyLabelKey: { classPropertyName: "selectedDateSrOnlyLabelKey", publicName: "selectedDateSrOnlyLabelKey", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { model: "modelChange", userInput: "userInput" }, host: { properties: { "attr.id": "hostId" } }, viewQueries: [{ propertyName: "datepickerTrigger", first: true, predicate: ["datepickerTrigger"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n [id]=\"buildId('datepickerbutton_wrapper')\"\n class=\"datepickerbutton_wrapper\"\n tabindex=\"-1\"\n>\n <button\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"open()\"\n #datepickerTrigger\n >\n <foehn-icon-calendar\n [title]=\"'foehn-date-picker-button.icon-title' | fromDictionary\"\n />\n @if (model() && model().length === 3) {\n <span\n [id]=\"buildId('selected-date-label')\"\n aria-live=\"polite\"\n class=\"m-0 ps-2 fw-normal align-self-center\"\n [class.visually-hidden]=\"!displaySelectedDate()\"\n >\n <span class=\"visually-hidden\">\n {{\n selectedDateSrOnlyLabelKey()\n | fromDictionary\n : { selectedDate: model() | displayDate }\n }}\n </span>\n <span aria-hidden=\"true\">{{ model() | displayDate }}</span>\n </span>\n }\n </button>\n\n <foehn-date-picker\n [id]=\"buildId()\"\n [(model)]=\"model\"\n [isDatepickerVisible]=\"isDatepickerVisible\"\n (isDatepickerVisibleChange)=\"updateVisibilityStatus($event)\"\n (userInput)=\"handleUserInput($event)\"\n [datepickerTriggerHtmlElement]=\"datepickerTrigger\"\n [minYear]=\"minYear()\"\n [maxYear]=\"maxYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n />\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{color:#000!important;font-size:1.5rem}.clear-button.btn.btn-link{color:#000;text-decoration:none}.datepickerbutton_wrapper{position:relative}foehn-date-picker{position:absolute;z-index:9999;top:0;left:0;box-shadow:0 4px 8px #0003,0 6px 20px #00000030}\n"], dependencies: [{ kind: "component", type: FoehnIconCalendarComponent, selector: "foehn-icon-calendar" }, { kind: "component", type: FoehnDatePickerComponent, selector: "foehn-date-picker", inputs: ["model", "isDatepickerVisible", "id", "minDate", "maxDate", "datepickerTriggerHtmlElement", "closeable", "name", "minYear", "maxYear"], outputs: ["modelChange", "isDatepickerVisibleChange", "userInput"] }, { kind: "pipe", type: DisplayDatePipe, name: "displayDate" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
10929
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnDatePickerButtonComponent, isStandalone: true, selector: "foehn-date-picker-button", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, displaySelectedDate: { classPropertyName: "displaySelectedDate", publicName: "displaySelectedDate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, selectedDateSrOnlyLabelKey: { classPropertyName: "selectedDateSrOnlyLabelKey", publicName: "selectedDateSrOnlyLabelKey", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { model: "modelChange", userInput: "userInput" }, host: { properties: { "attr.id": "hostId" } }, viewQueries: [{ propertyName: "datepickerTrigger", first: true, predicate: ["datepickerTrigger"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n [id]=\"buildId('datepickerbutton_wrapper')\"\n class=\"datepickerbutton_wrapper\"\n tabindex=\"-1\"\n>\n <button\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"open()\"\n #datepickerTrigger\n >\n <foehn-icon-calendar\n [title]=\"'foehn-date-picker-button.icon-title' | fromDictionary\"\n />\n @if (model() && model().length === 3) {\n <span\n [id]=\"buildId('selected-date-label')\"\n aria-live=\"polite\"\n class=\"m-0 ps-2 fw-normal align-self-center\"\n [class.visually-hidden]=\"!displaySelectedDate()\"\n >\n <span class=\"visually-hidden\">\n {{\n selectedDateSrOnlyLabelKey()\n | fromDictionary\n : { selectedDate: model() | displayDate }\n }}\n </span>\n <span aria-hidden=\"true\">{{ model() | displayDate }}</span>\n </span>\n }\n </button>\n\n <foehn-date-picker\n [name]=\"buildId()\"\n [(model)]=\"model\"\n [isDatepickerVisible]=\"isDatepickerVisible\"\n (isDatepickerVisibleChange)=\"updateVisibilityStatus($event)\"\n (userInput)=\"handleUserInput($event)\"\n [datepickerTriggerHtmlElement]=\"datepickerTrigger\"\n [minYear]=\"minYear()\"\n [maxYear]=\"maxYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n />\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{color:#000!important;font-size:1.5rem}.clear-button.btn.btn-link{color:#000;text-decoration:none}.datepickerbutton_wrapper{position:relative}foehn-date-picker{position:absolute;z-index:9999;top:0;left:0;box-shadow:0 4px 8px #0003,0 6px 20px #00000030}\n"], dependencies: [{ kind: "component", type: FoehnIconCalendarComponent, selector: "foehn-icon-calendar" }, { kind: "component", type: FoehnDatePickerComponent, selector: "foehn-date-picker", inputs: ["model", "isDatepickerVisible", "id", "minDate", "maxDate", "datepickerTriggerHtmlElement", "closeable", "name", "minYear", "maxYear"], outputs: ["modelChange", "isDatepickerVisibleChange", "userInput"] }, { kind: "pipe", type: DisplayDatePipe, name: "displayDate" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
10929
10930
  }
10930
10931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnDatePickerButtonComponent, decorators: [{
10931
10932
  type: Component,
@@ -10936,8 +10937,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
10936
10937
  SdkDictionaryPipe,
10937
10938
  ], host: {
10938
10939
  '[attr.id]': 'hostId',
10939
- }, template: "<div\n [id]=\"buildId('datepickerbutton_wrapper')\"\n class=\"datepickerbutton_wrapper\"\n tabindex=\"-1\"\n>\n <button\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"open()\"\n #datepickerTrigger\n >\n <foehn-icon-calendar\n [title]=\"'foehn-date-picker-button.icon-title' | fromDictionary\"\n />\n @if (model() && model().length === 3) {\n <span\n [id]=\"buildId('selected-date-label')\"\n aria-live=\"polite\"\n class=\"m-0 ps-2 fw-normal align-self-center\"\n [class.visually-hidden]=\"!displaySelectedDate()\"\n >\n <span class=\"visually-hidden\">\n {{\n selectedDateSrOnlyLabelKey()\n | fromDictionary\n : { selectedDate: model() | displayDate }\n }}\n </span>\n <span aria-hidden=\"true\">{{ model() | displayDate }}</span>\n </span>\n }\n </button>\n\n <foehn-date-picker\n [id]=\"buildId()\"\n [(model)]=\"model\"\n [isDatepickerVisible]=\"isDatepickerVisible\"\n (isDatepickerVisibleChange)=\"updateVisibilityStatus($event)\"\n (userInput)=\"handleUserInput($event)\"\n [datepickerTriggerHtmlElement]=\"datepickerTrigger\"\n [minYear]=\"minYear()\"\n [maxYear]=\"maxYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n />\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{color:#000!important;font-size:1.5rem}.clear-button.btn.btn-link{color:#000;text-decoration:none}.datepickerbutton_wrapper{position:relative}foehn-date-picker{position:absolute;z-index:9999;top:0;left:0;box-shadow:0 4px 8px #0003,0 6px 20px #00000030}\n"] }]
10940
- }], propDecorators: { model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }, { type: i0.Output, args: ["modelChange"] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], displaySelectedDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "displaySelectedDate", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], minYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "minYear", required: false }] }], maxYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxYear", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], selectedDateSrOnlyLabelKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedDateSrOnlyLabelKey", required: false }] }], datepickerTrigger: [{ type: i0.ViewChild, args: ['datepickerTrigger', { isSignal: true }] }], userInput: [{ type: i0.Output, args: ["userInput"] }] } });
10940
+ }, template: "<div\n [id]=\"buildId('datepickerbutton_wrapper')\"\n class=\"datepickerbutton_wrapper\"\n tabindex=\"-1\"\n>\n <button\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"open()\"\n #datepickerTrigger\n >\n <foehn-icon-calendar\n [title]=\"'foehn-date-picker-button.icon-title' | fromDictionary\"\n />\n @if (model() && model().length === 3) {\n <span\n [id]=\"buildId('selected-date-label')\"\n aria-live=\"polite\"\n class=\"m-0 ps-2 fw-normal align-self-center\"\n [class.visually-hidden]=\"!displaySelectedDate()\"\n >\n <span class=\"visually-hidden\">\n {{\n selectedDateSrOnlyLabelKey()\n | fromDictionary\n : { selectedDate: model() | displayDate }\n }}\n </span>\n <span aria-hidden=\"true\">{{ model() | displayDate }}</span>\n </span>\n }\n </button>\n\n <foehn-date-picker\n [name]=\"buildId()\"\n [(model)]=\"model\"\n [isDatepickerVisible]=\"isDatepickerVisible\"\n (isDatepickerVisibleChange)=\"updateVisibilityStatus($event)\"\n (userInput)=\"handleUserInput($event)\"\n [datepickerTriggerHtmlElement]=\"datepickerTrigger\"\n [minYear]=\"minYear()\"\n [maxYear]=\"maxYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n />\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{color:#000!important;font-size:1.5rem}.clear-button.btn.btn-link{color:#000;text-decoration:none}.datepickerbutton_wrapper{position:relative}foehn-date-picker{position:absolute;z-index:9999;top:0;left:0;box-shadow:0 4px 8px #0003,0 6px 20px #00000030}\n"] }]
10941
+ }], propDecorators: { model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: true }] }, { type: i0.Output, args: ["modelChange"] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], displaySelectedDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "displaySelectedDate", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], minYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "minYear", required: false }] }], maxYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxYear", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], selectedDateSrOnlyLabelKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedDateSrOnlyLabelKey", required: false }] }], datepickerTrigger: [{ type: i0.ViewChild, args: ['datepickerTrigger', { isSignal: true }] }], userInput: [{ type: i0.Output, args: ["userInput"] }] } });
10941
10942
 
10942
10943
  class FoehnDateComponent extends FoehnInputComponent {
10943
10944
  constructor() {
@@ -11063,7 +11064,7 @@ class FoehnDateComponent extends FoehnInputComponent {
11063
11064
  provide: FoehnInputComponent,
11064
11065
  useExisting: forwardRef(() => FoehnDateComponent),
11065
11066
  },
11066
- ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableDay()\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableMonth()\"\n [maxlength]=\"2\"\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 />\n </div>\n <div\n class=\"vd-form-flex__item vd-form-flex__item--4-char-width\"\n [class.me-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]=\"disabledComputed() || disableYear()\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n />\n </div>\n <div class=\"d-inline-flex\">\n @if (shouldDisplayDatePicker()) {\n <foehn-date-picker-button\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 />\n }\n\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"], dependencies: [{ 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", "maxlength"] }, { kind: "component", type: FoehnDatePickerButtonComponent, selector: "foehn-date-picker-button", inputs: ["model", "id", "displaySelectedDate", "name", "minYear", "maxYear", "minDate", "maxDate", "selectedDateSrOnlyLabelKey"], outputs: ["modelChange", "userInput"] }, { kind: "component", type: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11067
+ ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableDay()\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableMonth()\"\n [maxlength]=\"2\"\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 />\n </div>\n <div\n class=\"vd-form-flex__item vd-form-flex__item--4-char-width\"\n [class.me-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]=\"disabledComputed() || disableYear()\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n />\n </div>\n <div class=\"d-inline-flex\">\n @if (shouldDisplayDatePicker()) {\n <foehn-date-picker-button\n [name]=\"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 />\n }\n\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link p-0\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}.vd-form-flex{max-width:335px}\n"], dependencies: [{ 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", "maxlength"] }, { kind: "component", type: FoehnDatePickerButtonComponent, selector: "foehn-date-picker-button", inputs: ["model", "id", "displaySelectedDate", "name", "minYear", "maxYear", "minDate", "maxDate", "selectedDateSrOnlyLabelKey"], outputs: ["modelChange", "userInput"] }, { kind: "component", type: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11067
11068
  }
11068
11069
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnDateComponent, decorators: [{
11069
11070
  type: Component,
@@ -11078,7 +11079,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
11078
11079
  FoehnDatePickerButtonComponent,
11079
11080
  FoehnIconTimesComponent,
11080
11081
  SdkDictionaryPipe,
11081
- ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableDay()\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableMonth()\"\n [maxlength]=\"2\"\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 />\n </div>\n <div\n class=\"vd-form-flex__item vd-form-flex__item--4-char-width\"\n [class.me-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]=\"disabledComputed() || disableYear()\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n />\n </div>\n <div class=\"d-inline-flex\">\n @if (shouldDisplayDatePicker()) {\n <foehn-date-picker-button\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 />\n }\n\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"] }]
11082
+ ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableDay()\"\n [maxlength]=\"2\"\n [allowNegative]=\"false\"\n [max]=\"31\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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]=\"disabledComputed() || disableMonth()\"\n [maxlength]=\"2\"\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 />\n </div>\n <div\n class=\"vd-form-flex__item vd-form-flex__item--4-char-width\"\n [class.me-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]=\"disabledComputed() || disableYear()\"\n [allowNegative]=\"false\"\n [maxlength]=\"4\"\n [required]=\"required()\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly()\"\n />\n </div>\n <div class=\"d-inline-flex\">\n @if (shouldDisplayDatePicker()) {\n <foehn-date-picker-button\n [name]=\"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 />\n }\n\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link p-0\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}.vd-form-flex{max-width:335px}\n"] }]
11082
11083
  }], ctorParameters: () => [], propDecorators: { disableDay: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableDay", required: false }] }], disableMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableMonth", required: false }] }], disableYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableYear", required: false }] }], hideDatePickerButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideDatePickerButton", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], childrenLabelSrOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenLabelSrOnly", required: false }] }], clearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButton", required: false }] }] } });
11083
11084
 
11084
11085
  class FoehnTimeComponent extends FoehnInputStringComponent {
@@ -11139,7 +11140,7 @@ class FoehnTimeComponent extends FoehnInputStringComponent {
11139
11140
  provide: FoehnInputComponent,
11140
11141
  useExisting: forwardRef(() => FoehnTimeComponent),
11141
11142
  },
11142
- ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n />\n </div>\n @if (!isEmpty() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"], dependencies: [{ 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", "maxlength"] }, { kind: "component", type: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11143
+ ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n />\n </div>\n @if (!isEmpty() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link p-0\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}.vd-form-flex{max-width:220px}\n"], dependencies: [{ 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", "maxlength"] }, { kind: "component", type: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11143
11144
  }
11144
11145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnTimeComponent, decorators: [{
11145
11146
  type: Component,
@@ -11153,7 +11154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
11153
11154
  FoehnInputNumberComponent,
11154
11155
  FoehnIconTimesComponent,
11155
11156
  SdkDictionaryPipe,
11156
- ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n />\n </div>\n @if (!isEmpty() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"] }]
11157
+ ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div class=\"vd-form-flex\">\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n #entryComponent\n />\n </div>\n <div class=\"vd-form-flex__item vd-form-flex__item--2-char-width\">\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 [allowLeadingZero]=\"true\"\n />\n </div>\n @if (!isEmpty() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link p-0\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}.vd-form-flex{max-width:220px}\n"] }]
11157
11158
  }], ctorParameters: () => [], propDecorators: { childrenLabelSrOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenLabelSrOnly", required: false }] }], clearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButton", required: false }] }] } });
11158
11159
 
11159
11160
  class FoehnDateTimeComponent extends FoehnInputComponent {
@@ -11301,7 +11302,7 @@ class FoehnDateTimeComponent extends FoehnInputComponent {
11301
11302
  provide: FoehnInputComponent,
11302
11303
  useExisting: forwardRef(() => FoehnDateTimeComponent),
11303
11304
  },
11304
- ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div [attr.id]=\"buildId() + 'MainColumn'\" class=\"vd-form-flex\">\n <div [attr.id]=\"buildId() + 'DateColumn'\" class=\"pe-0\">\n <foehn-input-date\n [id]=\"buildId() + '_date'\"\n [name]=\"name() + '_date'\"\n [(model)]=\"date\"\n [disableDay]=\"disableDay()\"\n [disableMonth]=\"disableMonth()\"\n [disableYear]=\"disableYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [hideDatePickerButton]=\"hideDatePickerButton()\"\n (userInput)=\"handleUserInputDate()\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n #entryComponent\n />\n </div>\n <div\n [attr.id]=\"buildId() + 'TimeColumn'\"\n class=\"px-md-0 mt-md-0 mt-xs-2 d-flex\"\n >\n <foehn-input-time\n [id]=\"buildId() + '_time'\"\n [name]=\"name() + '_time'\"\n [(model)]=\"time\"\n (modelChange)=\"timeModelChange($event)\"\n (userInput)=\"handleUserInputTime($event)\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n />\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-date>div.form-group,:host ::ng-deep foehn-input-time>div.form-group{margin-bottom:0!important}\n"], dependencies: [{ kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnDateComponent, selector: "foehn-input-date", inputs: ["disableDay", "disableMonth", "disableYear", "hideDatePickerButton", "minDate", "maxDate", "childrenLabelSrOnly", "clearButton"] }, { kind: "component", type: FoehnTimeComponent, selector: "foehn-input-time", inputs: ["childrenLabelSrOnly", "clearButton"] }, { kind: "component", type: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11305
+ ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div [attr.id]=\"buildId() + 'MainColumn'\" class=\"vd-form-flex\">\n <div [attr.id]=\"buildId() + 'DateColumn'\" class=\"pe-0\">\n <foehn-input-date\n [id]=\"buildId() + '_date'\"\n [name]=\"name() + '_date'\"\n [(model)]=\"date\"\n [disableDay]=\"disableDay()\"\n [disableMonth]=\"disableMonth()\"\n [disableYear]=\"disableYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [hideDatePickerButton]=\"hideDatePickerButton()\"\n (userInput)=\"handleUserInputDate()\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n #entryComponent\n />\n </div>\n <div\n [attr.id]=\"buildId() + 'TimeColumn'\"\n class=\"px-md-0 mt-md-0 mt-xs-2 d-flex\"\n >\n <foehn-input-time\n [id]=\"buildId() + '_time'\"\n [name]=\"name() + '_time'\"\n [(model)]=\"time\"\n (modelChange)=\"timeModelChange($event)\"\n (userInput)=\"handleUserInputTime($event)\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n />\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link p-0\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-date>div.form-group,:host ::ng-deep foehn-input-time>div.form-group{margin-bottom:0!important}.vd-form-flex{max-width:590px}\n"], dependencies: [{ kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnDateComponent, selector: "foehn-input-date", inputs: ["disableDay", "disableMonth", "disableYear", "hideDatePickerButton", "minDate", "maxDate", "childrenLabelSrOnly", "clearButton"] }, { kind: "component", type: FoehnTimeComponent, selector: "foehn-input-time", inputs: ["childrenLabelSrOnly", "clearButton"] }, { kind: "component", type: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11305
11306
  }
11306
11307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnDateTimeComponent, decorators: [{
11307
11308
  type: Component,
@@ -11316,7 +11317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
11316
11317
  FoehnTimeComponent,
11317
11318
  FoehnIconTimesComponent,
11318
11319
  SdkDictionaryPipe,
11319
- ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div [attr.id]=\"buildId() + 'MainColumn'\" class=\"vd-form-flex\">\n <div [attr.id]=\"buildId() + 'DateColumn'\" class=\"pe-0\">\n <foehn-input-date\n [id]=\"buildId() + '_date'\"\n [name]=\"name() + '_date'\"\n [(model)]=\"date\"\n [disableDay]=\"disableDay()\"\n [disableMonth]=\"disableMonth()\"\n [disableYear]=\"disableYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [hideDatePickerButton]=\"hideDatePickerButton()\"\n (userInput)=\"handleUserInputDate()\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n #entryComponent\n />\n </div>\n <div\n [attr.id]=\"buildId() + 'TimeColumn'\"\n class=\"px-md-0 mt-md-0 mt-xs-2 d-flex\"\n >\n <foehn-input-time\n [id]=\"buildId() + '_time'\"\n [name]=\"name() + '_time'\"\n [(model)]=\"time\"\n (modelChange)=\"timeModelChange($event)\"\n (userInput)=\"handleUserInputTime($event)\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n />\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-date>div.form-group,:host ::ng-deep foehn-input-time>div.form-group{margin-bottom:0!important}\n"] }]
11320
+ ], 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 [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n @if (!!label()) {\n <legend\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </legend>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText()) {\n <small\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n <ng-content />\n\n <div [attr.id]=\"buildId() + 'MainColumn'\" class=\"vd-form-flex\">\n <div [attr.id]=\"buildId() + 'DateColumn'\" class=\"pe-0\">\n <foehn-input-date\n [id]=\"buildId() + '_date'\"\n [name]=\"name() + '_date'\"\n [(model)]=\"date\"\n [disableDay]=\"disableDay()\"\n [disableMonth]=\"disableMonth()\"\n [disableYear]=\"disableYear()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [hideDatePickerButton]=\"hideDatePickerButton()\"\n (userInput)=\"handleUserInputDate()\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n #entryComponent\n />\n </div>\n <div\n [attr.id]=\"buildId() + 'TimeColumn'\"\n class=\"px-md-0 mt-md-0 mt-xs-2 d-flex\"\n >\n <foehn-input-time\n [id]=\"buildId() + '_time'\"\n [name]=\"name() + '_time'\"\n [(model)]=\"time\"\n (modelChange)=\"timeModelChange($event)\"\n (userInput)=\"handleUserInputTime($event)\"\n [disabled]=\"disabled()\"\n [hideNotRequiredExtraLabel]=\"true\"\n [isLabelSrOnly]=\"isLabelSrOnly()\"\n [childrenLabelSrOnly]=\"childrenLabelSrOnly()\"\n [clearButton]=\"false\"\n />\n @if (!isEmptyDependingOnDisabled() && displayClearButton()) {\n <div class=\"align-self-center position-relative\">\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link p-0\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label'\n | fromDictionary\n \"\n />\n </button>\n </div>\n }\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-date>div.form-group,:host ::ng-deep foehn-input-time>div.form-group{margin-bottom:0!important}.vd-form-flex{max-width:590px}\n"] }]
11320
11321
  }], ctorParameters: () => [], propDecorators: { disableDay: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableDay", required: false }] }], disableMonth: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableMonth", required: false }] }], disableYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableYear", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], hideDatePickerButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideDatePickerButton", required: false }] }], childrenLabelSrOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenLabelSrOnly", required: false }] }], clearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButton", required: false }] }] } });
11321
11322
 
11322
11323
  class FoehnInputNav13Component extends FoehnInputStringComponent {
@@ -14357,12 +14358,11 @@ class FoehnListSummaryComponent extends FoehnInputComponent {
14357
14358
  constructor() {
14358
14359
  super(...arguments);
14359
14360
  this.getListItemTitle = input(...(ngDevMode ? [undefined, { debugName: "getListItemTitle" }] : /* istanbul ignore next */ []));
14360
- this.list = input([], ...(ngDevMode ? [{ debugName: "list" }] : /* istanbul ignore next */ []));
14361
14361
  this.listItemDescriptions = input([], ...(ngDevMode ? [{ debugName: "listItemDescriptions" }] : /* istanbul ignore next */ []));
14362
14362
  this.showAsTable = input(false, ...(ngDevMode ? [{ debugName: "showAsTable" }] : /* istanbul ignore next */ []));
14363
14363
  this.tableActionButtons = viewChild('tableActionButtons', ...(ngDevMode ? [{ debugName: "tableActionButtons" }] : /* istanbul ignore next */ []));
14364
14364
  this.canAddItems = input(true, ...(ngDevMode ? [{ debugName: "canAddItems" }] : /* istanbul ignore next */ []));
14365
- this.internalList = linkedSignal(() => this.list(), ...(ngDevMode ? [{ debugName: "internalList" }] : /* istanbul ignore next */ []));
14365
+ this.internalList = linkedSignal(() => this.model(), ...(ngDevMode ? [{ debugName: "internalList" }] : /* istanbul ignore next */ []));
14366
14366
  this.internalListItemDescriptions = linkedSignal(() => this.listItemDescriptions(), ...(ngDevMode ? [{ debugName: "internalListItemDescriptions" }] : /* istanbul ignore next */ []));
14367
14367
  this.itemRemoved = output();
14368
14368
  this.itemEdit = output();
@@ -14455,12 +14455,12 @@ class FoehnListSummaryComponent extends FoehnInputComponent {
14455
14455
  });
14456
14456
  }
14457
14457
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnListSummaryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14458
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnListSummaryComponent, isStandalone: true, selector: "foehn-list-summary", inputs: { getListItemTitle: { classPropertyName: "getListItemTitle", publicName: "getListItemTitle", isSignal: true, isRequired: false, transformFunction: null }, list: { classPropertyName: "list", publicName: "list", isSignal: true, isRequired: false, transformFunction: null }, listItemDescriptions: { classPropertyName: "listItemDescriptions", publicName: "listItemDescriptions", isSignal: true, isRequired: false, transformFunction: null }, showAsTable: { classPropertyName: "showAsTable", publicName: "showAsTable", isSignal: true, isRequired: false, transformFunction: null }, canAddItems: { classPropertyName: "canAddItems", publicName: "canAddItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemRemoved: "itemRemoved", itemEdit: "itemEdit" }, providers: [
14458
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnListSummaryComponent, isStandalone: true, selector: "foehn-list-summary", inputs: { getListItemTitle: { classPropertyName: "getListItemTitle", publicName: "getListItemTitle", isSignal: true, isRequired: false, transformFunction: null }, listItemDescriptions: { classPropertyName: "listItemDescriptions", publicName: "listItemDescriptions", isSignal: true, isRequired: false, transformFunction: null }, showAsTable: { classPropertyName: "showAsTable", publicName: "showAsTable", isSignal: true, isRequired: false, transformFunction: null }, canAddItems: { classPropertyName: "canAddItems", publicName: "canAddItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemRemoved: "itemRemoved", itemEdit: "itemEdit" }, providers: [
14459
14459
  {
14460
14460
  provide: FoehnInputComponent,
14461
14461
  useExisting: forwardRef(() => FoehnListSummaryComponent),
14462
14462
  },
14463
- ], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <label\n [class]=\"\n 'form-label ' +\n (isLabelSrOnly()\n ? 'visually-hidden'\n : (labelStyleModifier() ?? ''))\n \"\n [attr.for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </label>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!showAsTable()) {\n <section>\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n @for (\n item of internalList();\n track trackFoehnListItem(itemIndex, item);\n let itemIndex = $index\n ) {\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">\n {{ getListItemTitle()(item) }}\n </h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"\n name() + '[' + itemIndex + ']'\n \"\n />\n </span>\n </div>\n <dl class=\"mb-0\">\n @for (\n itemParam of internalListItemDescriptions();\n track trackFoehnListItemDescription(\n $index,\n itemParam\n )\n ) {\n @if (showLine(item, itemParam)) {\n <div class=\"d-flex flex-wrap item-line\">\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{\n itemParam.getFormattedValue(\n item\n )\n }}\n </dd>\n </div>\n }\n }\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n @if (item.disableEdition && item.disableDeletion) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-see-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableEdition) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-edit-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableDeletion) {\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"\n buildChildId(\n '-delete-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </a>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </section>\n }\n\n @if (showAsTable() && !!tableConfiguration?.length) {\n <section>\n @if (!!listCopyForTable?.length) {\n <foehn-table\n [id]=\"buildChildName('table')\"\n [model]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n />\n }\n </section>\n }\n\n @if (canAddItems()) {\n <section [class.mt-5]=\"!showAsTable()\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n }\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n @if (item.disableEdition && item.disableDeletion) {\n <button\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\" />\n </button>\n }\n @if (!item.disableEdition) {\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\" />\n </button>\n }\n @if (!item.disableDeletion) {\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\" />\n </button>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"], dependencies: [{ kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnErrorPillComponent, selector: "foehn-error-pill", inputs: ["errorPrefix", "incompleteIndicatorOnly"] }, { kind: "component", type: FoehnTableComponent, selector: "foehn-table", inputs: ["columnsConfiguration", "itemsPerPage", "fixedPageCount", "sort", "title", "totalElements", "titleSrOnly", "previousLabel", "nextLabel", "tableClass", "trackByFn"], outputs: ["columnsConfigurationChange", "sortChange", "pageChange", "rowClick"] }, { kind: "component", type: FoehnIconSearchComponent, selector: "foehn-icon-search" }, { kind: "component", type: FoehnIconEditComponent, selector: "foehn-icon-edit" }, { kind: "component", type: FoehnIconTrashAltComponent, selector: "foehn-icon-trash-alt" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
14463
+ ], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <label\n [class]=\"\n 'form-label ' +\n (isLabelSrOnly()\n ? 'visually-hidden'\n : (labelStyleModifier() ?? ''))\n \"\n [attr.for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </label>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!showAsTable()) {\n <section>\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n @for (\n item of internalList();\n track trackFoehnListItem(itemIndex, item);\n let itemIndex = $index\n ) {\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">\n {{ getListItemTitle()(item) }}\n </h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"\n name() + '[' + itemIndex + ']'\n \"\n />\n </span>\n </div>\n <dl class=\"mb-0\">\n @for (\n itemParam of internalListItemDescriptions();\n track trackFoehnListItemDescription(\n $index,\n itemParam\n )\n ) {\n @if (showLine(item, itemParam)) {\n <div class=\"d-flex flex-wrap item-line\">\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{\n itemParam.getFormattedValue(\n item\n )\n }}\n </dd>\n </div>\n }\n }\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n @if (item.disableEdition && item.disableDeletion) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-see-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableEdition) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-edit-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableDeletion) {\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"\n buildChildId(\n '-delete-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </a>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </section>\n }\n\n @if (showAsTable() && !!tableConfiguration?.length) {\n <section>\n @if (!!listCopyForTable?.length) {\n <foehn-table\n [name]=\"buildChildName('table')\"\n [model]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n />\n }\n </section>\n }\n\n @if (canAddItems()) {\n <section [class.mt-5]=\"!showAsTable()\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n }\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n @if (item.disableEdition && item.disableDeletion) {\n <button\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\" />\n </button>\n }\n @if (!item.disableEdition) {\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\" />\n </button>\n }\n @if (!item.disableDeletion) {\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\" />\n </button>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"], dependencies: [{ kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnErrorPillComponent, selector: "foehn-error-pill", inputs: ["errorPrefix", "incompleteIndicatorOnly"] }, { kind: "component", type: FoehnTableComponent, selector: "foehn-table", inputs: ["columnsConfiguration", "itemsPerPage", "fixedPageCount", "sort", "title", "totalElements", "titleSrOnly", "previousLabel", "nextLabel", "tableClass", "trackByFn"], outputs: ["columnsConfigurationChange", "sortChange", "pageChange", "rowClick"] }, { kind: "component", type: FoehnIconSearchComponent, selector: "foehn-icon-search" }, { kind: "component", type: FoehnIconEditComponent, selector: "foehn-icon-edit" }, { kind: "component", type: FoehnIconTrashAltComponent, selector: "foehn-icon-trash-alt" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
14464
14464
  }
14465
14465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnListSummaryComponent, decorators: [{
14466
14466
  type: Component,
@@ -14477,8 +14477,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
14477
14477
  FoehnIconEditComponent,
14478
14478
  FoehnIconTrashAltComponent,
14479
14479
  SdkDictionaryPipe,
14480
- ], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <label\n [class]=\"\n 'form-label ' +\n (isLabelSrOnly()\n ? 'visually-hidden'\n : (labelStyleModifier() ?? ''))\n \"\n [attr.for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </label>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!showAsTable()) {\n <section>\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n @for (\n item of internalList();\n track trackFoehnListItem(itemIndex, item);\n let itemIndex = $index\n ) {\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">\n {{ getListItemTitle()(item) }}\n </h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"\n name() + '[' + itemIndex + ']'\n \"\n />\n </span>\n </div>\n <dl class=\"mb-0\">\n @for (\n itemParam of internalListItemDescriptions();\n track trackFoehnListItemDescription(\n $index,\n itemParam\n )\n ) {\n @if (showLine(item, itemParam)) {\n <div class=\"d-flex flex-wrap item-line\">\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{\n itemParam.getFormattedValue(\n item\n )\n }}\n </dd>\n </div>\n }\n }\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n @if (item.disableEdition && item.disableDeletion) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-see-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableEdition) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-edit-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableDeletion) {\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"\n buildChildId(\n '-delete-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </a>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </section>\n }\n\n @if (showAsTable() && !!tableConfiguration?.length) {\n <section>\n @if (!!listCopyForTable?.length) {\n <foehn-table\n [id]=\"buildChildName('table')\"\n [model]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n />\n }\n </section>\n }\n\n @if (canAddItems()) {\n <section [class.mt-5]=\"!showAsTable()\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n }\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n @if (item.disableEdition && item.disableDeletion) {\n <button\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\" />\n </button>\n }\n @if (!item.disableEdition) {\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\" />\n </button>\n }\n @if (!item.disableDeletion) {\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\" />\n </button>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"] }]
14481
- }], propDecorators: { getListItemTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "getListItemTitle", required: false }] }], list: [{ type: i0.Input, args: [{ isSignal: true, alias: "list", required: false }] }], listItemDescriptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "listItemDescriptions", required: false }] }], showAsTable: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAsTable", required: false }] }], tableActionButtons: [{ type: i0.ViewChild, args: ['tableActionButtons', { isSignal: true }] }], canAddItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "canAddItems", required: false }] }], itemRemoved: [{ type: i0.Output, args: ["itemRemoved"] }], itemEdit: [{ type: i0.Output, args: ["itemEdit"] }] } });
14480
+ ], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <label\n [class]=\"\n 'form-label ' +\n (isLabelSrOnly()\n ? 'visually-hidden'\n : (labelStyleModifier() ?? ''))\n \"\n [attr.for]=\"buildChildId()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </label>\n }\n\n <foehn-validation-alerts [component]=\"this\" />\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!showAsTable()) {\n <section>\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n @for (\n item of internalList();\n track trackFoehnListItem(itemIndex, item);\n let itemIndex = $index\n ) {\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">\n {{ getListItemTitle()(item) }}\n </h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"\n name() + '[' + itemIndex + ']'\n \"\n />\n </span>\n </div>\n <dl class=\"mb-0\">\n @for (\n itemParam of internalListItemDescriptions();\n track trackFoehnListItemDescription(\n $index,\n itemParam\n )\n ) {\n @if (showLine(item, itemParam)) {\n <div class=\"d-flex flex-wrap item-line\">\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{\n itemParam.getFormattedValue(\n item\n )\n }}\n </dd>\n </div>\n }\n }\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n @if (item.disableEdition && item.disableDeletion) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-see-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Consulter\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableEdition) {\n <li class=\"list-inline-item\">\n <a\n [id]=\"\n buildChildId(\n '-edit-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </li>\n }\n @if (!item.disableDeletion) {\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"\n buildChildId(\n '-delete-link-' + itemIndex\n )\n \"\n href=\"#\"\n (click)=\"\n $event.preventDefault();\n removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle()(item) }}\n </span>\n </a>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </section>\n }\n\n @if (showAsTable() && !!tableConfiguration?.length) {\n <section>\n @if (!!listCopyForTable?.length) {\n <foehn-table\n [name]=\"buildChildName('table')\"\n [model]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n />\n }\n </section>\n }\n\n @if (canAddItems()) {\n <section [class.mt-5]=\"!showAsTable()\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n }\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\" let-item=\"item\">\n <div class=\"d-inline-flex\">\n @if (item.disableEdition && item.disableDeletion) {\n <button\n [id]=\"buildChildId('-see-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-search [title]=\"'Consulter'\" />\n </button>\n }\n @if (!item.disableEdition) {\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\" />\n </button>\n }\n @if (!item.disableDeletion) {\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\" />\n </button>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"] }]
14481
+ }], propDecorators: { getListItemTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "getListItemTitle", required: false }] }], listItemDescriptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "listItemDescriptions", required: false }] }], showAsTable: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAsTable", required: false }] }], tableActionButtons: [{ type: i0.ViewChild, args: ['tableActionButtons', { isSignal: true }] }], canAddItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "canAddItems", required: false }] }], itemRemoved: [{ type: i0.Output, args: ["itemRemoved"] }], itemEdit: [{ type: i0.Output, args: ["itemEdit"] }] } });
14482
14482
 
14483
14483
  class FoehnMenuItemComponent {
14484
14484
  constructor() {
@@ -14667,7 +14667,7 @@ class FoehnAgendaNavigationComponent {
14667
14667
  }
14668
14668
  }
14669
14669
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnAgendaNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14670
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnAgendaNavigationComponent, isStandalone: true, selector: "foehn-agenda-navigation", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, isSrOnly: { classPropertyName: "isSrOnly", publicName: "isSrOnly", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { paginationChange: "paginationChange" }, usesOnChanges: true, ngImport: i0, template: "@if (!!calendar()) {\n <div class=\"row mb-3\">\n <div class=\"col-12\">\n <nav\n class=\"vd-pagination calendar-week-navigation\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"\n 'foehn-agenda-navigation.nav.aria-label' | fromDictionary\n \"\n >\n <ul class=\"vd-pagination__list\">\n @if (!!calendar().previousWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n [id]=\"id() + 'ButtonPreviousWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().previousWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n aria-hidden=\"true\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationPreviousSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.previous-week-sr-only'\n | fromDictionary\n : {\n previousWeek:\n calendar()\n .previousWeek\n .label,\n }\n }}\n </span>\n </span>\n </button>\n </li>\n }\n @if (!calendar().previousWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <div\n [id]=\"id() + 'NavigationPreviousDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n </div>\n </li>\n }\n @if (!isSrOnly()) {\n <li\n class=\"vd-pagination__item d-flex justify-content-center\"\n >\n <foehn-date-picker-button\n [model]=\"currentDay\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [selectedDateSrOnlyLabelKey]=\"'foehn-agenda-navigation.date-picker-button.screen-reader.selected-date'\"\n (userInput)=\"datePickerUserInput($event)\"\n />\n </li>\n }\n @if (!!calendar().nextWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <button\n [id]=\"id() + 'ButtonNextWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().nextWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <span\n aria-hidden=\"true\"\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationNextSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.next-week-sr-only'\n | fromDictionary\n : {\n nextWeek:\n calendar()\n .nextWeek\n .label,\n }\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n </span>\n </button>\n </li>\n }\n @if (!calendar().nextWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <div\n [id]=\"id() + 'NavigationNextDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <span\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n />\n </div>\n </li>\n }\n </ul>\n </nav>\n </div>\n </div>\n}\n", styles: [".calendar-week-navigation{margin-bottom:0}.calendar-week-navigation li.vd-pagination__item{margin-top:0}.calendar-week-navigation span.vd-pagination__title{font-size:1em;line-height:1.2em}:host ::ng-deep .calendar-week-navigation .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .calendar-week-navigation .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-darker)}.calendar-week-navigation .btn.btn-link{text-transform:none}.calendar-week-navigation .link-week-disabled .vd-pagination__title{color:var(--vd-neutral-light);cursor:not-allowed}.calendar-week-navigation .vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.calendar-week-navigation .vd-pagination__link-reset:focus{background-color:var(--vd-focus)}nav ul{margin-bottom:0}\n"], dependencies: [{ kind: "component", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: FoehnDatePickerButtonComponent, selector: "foehn-date-picker-button", inputs: ["model", "id", "displaySelectedDate", "name", "minYear", "maxYear", "minDate", "maxDate", "selectedDateSrOnlyLabelKey"], outputs: ["modelChange", "userInput"] }, { kind: "component", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
14670
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: FoehnAgendaNavigationComponent, isStandalone: true, selector: "foehn-agenda-navigation", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, isSrOnly: { classPropertyName: "isSrOnly", publicName: "isSrOnly", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { paginationChange: "paginationChange" }, usesOnChanges: true, ngImport: i0, template: "@if (!!calendar()) {\n <div class=\"row mb-3\">\n <div class=\"col-12\">\n <nav\n class=\"vd-pagination calendar-week-navigation\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"\n 'foehn-agenda-navigation.nav.aria-label' | fromDictionary\n \"\n >\n <ul class=\"vd-pagination__list\">\n @if (!!calendar().previousWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n [id]=\"id() + 'ButtonPreviousWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().previousWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n aria-hidden=\"true\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationPreviousSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.previous-week-sr-only'\n | fromDictionary\n : {\n previousWeek:\n calendar()\n .previousWeek\n .label,\n }\n }}\n </span>\n </span>\n </button>\n </li>\n }\n @if (!calendar().previousWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <div\n [id]=\"id() + 'NavigationPreviousDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n </div>\n </li>\n }\n @if (!isSrOnly()) {\n <li\n class=\"vd-pagination__item d-flex justify-content-center\"\n >\n <foehn-date-picker-button\n [name]=\"id() + 'DatePickerButton'\"\n [model]=\"currentDay\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [selectedDateSrOnlyLabelKey]=\"'foehn-agenda-navigation.date-picker-button.screen-reader.selected-date'\"\n (userInput)=\"datePickerUserInput($event)\"\n />\n </li>\n }\n @if (!!calendar().nextWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <button\n [id]=\"id() + 'ButtonNextWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().nextWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <span\n aria-hidden=\"true\"\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationNextSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.next-week-sr-only'\n | fromDictionary\n : {\n nextWeek:\n calendar()\n .nextWeek\n .label,\n }\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n </span>\n </button>\n </li>\n }\n @if (!calendar().nextWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <div\n [id]=\"id() + 'NavigationNextDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <span\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n />\n </div>\n </li>\n }\n </ul>\n </nav>\n </div>\n </div>\n}\n", styles: [".calendar-week-navigation{margin-bottom:0}.calendar-week-navigation li.vd-pagination__item{margin-top:0}.calendar-week-navigation span.vd-pagination__title{font-size:1em;line-height:1.2em}:host ::ng-deep .calendar-week-navigation .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .calendar-week-navigation .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-darker)}.calendar-week-navigation .btn.btn-link{text-transform:none}.calendar-week-navigation .link-week-disabled .vd-pagination__title{color:var(--vd-neutral-light);cursor:not-allowed}.calendar-week-navigation .vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.calendar-week-navigation .vd-pagination__link-reset:focus{background-color:var(--vd-focus)}nav ul{margin-bottom:0}\n"], dependencies: [{ kind: "component", type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: FoehnDatePickerButtonComponent, selector: "foehn-date-picker-button", inputs: ["model", "id", "displaySelectedDate", "name", "minYear", "maxYear", "minDate", "maxDate", "selectedDateSrOnlyLabelKey"], outputs: ["modelChange", "userInput"] }, { kind: "component", type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
14671
14671
  }
14672
14672
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnAgendaNavigationComponent, decorators: [{
14673
14673
  type: Component,
@@ -14676,7 +14676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
14676
14676
  FoehnDatePickerButtonComponent,
14677
14677
  FoehnIconChevronRightComponent,
14678
14678
  SdkDictionaryPipe,
14679
- ], template: "@if (!!calendar()) {\n <div class=\"row mb-3\">\n <div class=\"col-12\">\n <nav\n class=\"vd-pagination calendar-week-navigation\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"\n 'foehn-agenda-navigation.nav.aria-label' | fromDictionary\n \"\n >\n <ul class=\"vd-pagination__list\">\n @if (!!calendar().previousWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n [id]=\"id() + 'ButtonPreviousWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().previousWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n aria-hidden=\"true\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationPreviousSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.previous-week-sr-only'\n | fromDictionary\n : {\n previousWeek:\n calendar()\n .previousWeek\n .label,\n }\n }}\n </span>\n </span>\n </button>\n </li>\n }\n @if (!calendar().previousWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <div\n [id]=\"id() + 'NavigationPreviousDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n </div>\n </li>\n }\n @if (!isSrOnly()) {\n <li\n class=\"vd-pagination__item d-flex justify-content-center\"\n >\n <foehn-date-picker-button\n [model]=\"currentDay\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [selectedDateSrOnlyLabelKey]=\"'foehn-agenda-navigation.date-picker-button.screen-reader.selected-date'\"\n (userInput)=\"datePickerUserInput($event)\"\n />\n </li>\n }\n @if (!!calendar().nextWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <button\n [id]=\"id() + 'ButtonNextWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().nextWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <span\n aria-hidden=\"true\"\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationNextSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.next-week-sr-only'\n | fromDictionary\n : {\n nextWeek:\n calendar()\n .nextWeek\n .label,\n }\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n </span>\n </button>\n </li>\n }\n @if (!calendar().nextWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <div\n [id]=\"id() + 'NavigationNextDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <span\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n />\n </div>\n </li>\n }\n </ul>\n </nav>\n </div>\n </div>\n}\n", styles: [".calendar-week-navigation{margin-bottom:0}.calendar-week-navigation li.vd-pagination__item{margin-top:0}.calendar-week-navigation span.vd-pagination__title{font-size:1em;line-height:1.2em}:host ::ng-deep .calendar-week-navigation .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .calendar-week-navigation .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-darker)}.calendar-week-navigation .btn.btn-link{text-transform:none}.calendar-week-navigation .link-week-disabled .vd-pagination__title{color:var(--vd-neutral-light);cursor:not-allowed}.calendar-week-navigation .vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.calendar-week-navigation .vd-pagination__link-reset:focus{background-color:var(--vd-focus)}nav ul{margin-bottom:0}\n"] }]
14679
+ ], template: "@if (!!calendar()) {\n <div class=\"row mb-3\">\n <div class=\"col-12\">\n <nav\n class=\"vd-pagination calendar-week-navigation\"\n [attr.id]=\"id()\"\n [attr.aria-label]=\"\n 'foehn-agenda-navigation.nav.aria-label' | fromDictionary\n \"\n >\n <ul class=\"vd-pagination__list\">\n @if (!!calendar().previousWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n [id]=\"id() + 'ButtonPreviousWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().previousWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n aria-hidden=\"true\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationPreviousSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.previous-week-sr-only'\n | fromDictionary\n : {\n previousWeek:\n calendar()\n .previousWeek\n .label,\n }\n }}\n </span>\n </span>\n </button>\n </li>\n }\n @if (!calendar().previousWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <div\n [id]=\"id() + 'NavigationPreviousDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <foehn-icon-chevron-left\n class=\"vd-pagination__title\"\n [title]=\"\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n \"\n />\n <span\n class=\"vd-pagination__title ms-2 d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.previous-week'\n | fromDictionary\n }}\n </span>\n </div>\n </li>\n }\n @if (!isSrOnly()) {\n <li\n class=\"vd-pagination__item d-flex justify-content-center\"\n >\n <foehn-date-picker-button\n [name]=\"id() + 'DatePickerButton'\"\n [model]=\"currentDay\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [selectedDateSrOnlyLabelKey]=\"'foehn-agenda-navigation.date-picker-button.screen-reader.selected-date'\"\n (userInput)=\"datePickerUserInput($event)\"\n />\n </li>\n }\n @if (!!calendar().nextWeek) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <button\n [id]=\"id() + 'ButtonNextWeek'\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"paginate(calendar().nextWeek)\"\n type=\"button\"\n >\n <span class=\"d-flex align-items-center\">\n <span\n aria-hidden=\"true\"\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <span\n [id]=\"id() + 'NavigationNextSrOnly'\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda-navigation.next-week-sr-only'\n | fromDictionary\n : {\n nextWeek:\n calendar()\n .nextWeek\n .label,\n }\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n aria-hidden=\"true\"\n />\n </span>\n </button>\n </li>\n }\n @if (!calendar().nextWeek && !isSrOnly()) {\n <li\n class=\"vd-pagination__item vd-pagination__item--next col-4 d-flex justify-content-end\"\n >\n <div\n [id]=\"id() + 'NavigationNextDisabled'\"\n class=\"d-flex align-items-center link-week-disabled px-1\"\n >\n <span\n class=\"vd-pagination__title d-xs-none d-sm-block\"\n >\n {{\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n }}\n </span>\n <foehn-icon-chevron-right\n class=\"vd-pagination__title ms-2\"\n [title]=\"\n 'foehn-agenda-navigation.next-week'\n | fromDictionary\n \"\n />\n </div>\n </li>\n }\n </ul>\n </nav>\n </div>\n </div>\n}\n", styles: [".calendar-week-navigation{margin-bottom:0}.calendar-week-navigation li.vd-pagination__item{margin-top:0}.calendar-week-navigation span.vd-pagination__title{font-size:1em;line-height:1.2em}:host ::ng-deep .calendar-week-navigation .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .calendar-week-navigation .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-darker)}.calendar-week-navigation .btn.btn-link{text-transform:none}.calendar-week-navigation .link-week-disabled .vd-pagination__title{color:var(--vd-neutral-light);cursor:not-allowed}.calendar-week-navigation .vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.calendar-week-navigation .vd-pagination__link-reset:focus{background-color:var(--vd-focus)}nav ul{margin-bottom:0}\n"] }]
14680
14680
  }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], isSrOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSrOnly", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], paginationChange: [{ type: i0.Output, args: ["paginationChange"] }] } });
14681
14681
 
14682
14682
  class FoehnAgendaTimeslotPanelComponent extends FoehnInputComponent {
@@ -14985,7 +14985,7 @@ class FoehnAgendaComponent extends FoehnInputComponent {
14985
14985
  provide: FoehnInputComponent,
14986
14986
  useExisting: forwardRef(() => FoehnAgendaComponent),
14987
14987
  },
14988
- ], viewQueries: [{ propertyName: "timeSlotPanelsElemRef", predicate: ["timeSlotPanelElemRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <p\n [attr.id]=\"buildChildId() + 'Label'\"\n [attr.for]=\"buildChildId()\"\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </p>\n }\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!(calendar() | async)) {\n <foehn-validation-alerts [component]=\"this\" />\n <p class=\"alert alert-warning\">\n {{ 'foehn-agenda.calendar-indisponible' | fromDictionary }}\n </p>\n }\n\n <!-- Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name() || label()\" [ngModel]=\"model()\" />\n\n <p\n [id]=\"buildChildId('srOnlyAnnouncements')\"\n class=\"visually-hidden\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{ srAnnouncements }}\n </p>\n\n <ng-content />\n\n @if (calendar() | async; as loadedCalendar) {\n <section\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n >\n <h2 class=\"h3 mt-3\">\n <span aria-live=\"polite\" role=\"status\" aria-atomic=\"true\">\n {{ loadedCalendar.currentWeek.label }}\n </span>\n </h2>\n\n <!-- Rappel de l'heure actuellement s\u00E9lectionn\u00E9e -->\n <p\n [id]=\"buildChildId('timeSlotSelectedSrOnly')\"\n class=\"visually-hidden\"\n >\n {{ readableSelectedTimeSlot() }}\n </p>\n\n <!-- Navigation top hidden from screen reader-->\n <foehn-agenda-navigation\n [id]=\"buildChildId() + 'week-pagination-top'\"\n [calendar]=\"loadedCalendar\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n aria-hidden=\"true\"\n />\n\n <!-- Link to navigation bottom only for screen reader -->\n <p\n [id]=\"buildChildId('navigationBottomAnchor')\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda.pagination-anchor.first-part' | fromDictionary\n }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(true)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.top-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n\n <foehn-validation-alerts [component]=\"this\" />\n\n <div\n class=\"row\"\n [tabIndex]=\"hasErrors() ? 0 : -1\"\n [attr.id]=\"buildChildId()\"\n #entryComponent\n >\n @for (\n currentWeek of loadedCalendar.currentWeek.week;\n track currentWeek.day\n ) {\n <foehn-agenda-timeslot-panel\n class=\"col-12\"\n #timeSlotPanelElemRef\n [currentWeek]=\"currentWeek\"\n [calendar]=\"calendar()\"\n [nbVisibleElements]=\"nbVisibleElements()\"\n [(model)]=\"model\"\n (userInput)=\"handleUserInput($event)\"\n />\n }\n </div>\n </section>\n\n <!-- Navigation bottom used for screen reader only -->\n <foehn-agenda-navigation\n class=\"visually-hidden\"\n [id]=\"buildChildId() + 'week-pagination-bottom'\"\n [calendar]=\"loadedCalendar\"\n [isSrOnly]=\"true\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n />\n\n <!-- Link to navigation top hidden from screen reader -->\n <p [id]=\"buildChildId('navigationTopAnchor')\" aria-hidden=\"true\">\n {{ 'foehn-agenda.pagination-anchor.first-part' | fromDictionary }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(false)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.bottom-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n }\n</div>\n", dependencies: [{ kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FoehnAgendaNavigationComponent, selector: "foehn-agenda-navigation", inputs: ["id", "calendar", "isSrOnly", "minDate", "maxDate"], outputs: ["paginationChange"] }, { kind: "component", type: FoehnAgendaTimeslotPanelComponent, selector: "foehn-agenda-timeslot-panel", inputs: ["calendar", "currentWeek", "nbVisibleElements"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
14988
+ ], viewQueries: [{ propertyName: "timeSlotPanelsElemRef", predicate: ["timeSlotPanelElemRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <p\n [attr.id]=\"buildChildId() + 'Label'\"\n [attr.for]=\"buildChildId()\"\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </p>\n }\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!(calendar() | async)) {\n <foehn-validation-alerts [component]=\"this\" />\n <p class=\"alert alert-warning\">\n {{ 'foehn-agenda.calendar-indisponible' | fromDictionary }}\n </p>\n }\n\n <!-- Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name() || label()\" [ngModel]=\"model()\" />\n\n <p\n [id]=\"buildChildId('srOnlyAnnouncements')\"\n class=\"visually-hidden\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{ srAnnouncements }}\n </p>\n\n <ng-content />\n\n @if (calendar() | async; as loadedCalendar) {\n <section\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n >\n <h2 class=\"h3 mt-3\">\n <span aria-live=\"polite\" role=\"status\" aria-atomic=\"true\">\n {{ loadedCalendar.currentWeek.label }}\n </span>\n </h2>\n\n <!-- Rappel de l'heure actuellement s\u00E9lectionn\u00E9e -->\n <p\n [id]=\"buildChildId('timeSlotSelectedSrOnly')\"\n class=\"visually-hidden\"\n >\n {{ readableSelectedTimeSlot() }}\n </p>\n\n <!-- Navigation top hidden from screen reader-->\n <foehn-agenda-navigation\n [id]=\"buildChildId() + 'week-pagination-top'\"\n [calendar]=\"loadedCalendar\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n aria-hidden=\"true\"\n />\n\n <!-- Link to navigation bottom only for screen reader -->\n <p\n [id]=\"buildChildId('navigationBottomAnchor')\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda.pagination-anchor.first-part' | fromDictionary\n }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(true)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.top-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n\n <foehn-validation-alerts [component]=\"this\" />\n\n <div\n class=\"row\"\n [tabIndex]=\"hasErrors() ? 0 : -1\"\n [attr.id]=\"buildChildId()\"\n #entryComponent\n >\n @for (\n currentWeek of loadedCalendar.currentWeek.week;\n track currentWeek.day;\n let i = $index\n ) {\n <foehn-agenda-timeslot-panel\n class=\"col-12\"\n #timeSlotPanelElemRef\n [name]=\"buildChildName('TimeSlot' + (i + 1))\"\n [currentWeek]=\"currentWeek\"\n [calendar]=\"calendar()\"\n [nbVisibleElements]=\"nbVisibleElements()\"\n [(model)]=\"model\"\n (userInput)=\"handleUserInput($event)\"\n />\n }\n </div>\n </section>\n\n <!-- Navigation bottom used for screen reader only -->\n <foehn-agenda-navigation\n class=\"visually-hidden\"\n [id]=\"buildChildId() + 'week-pagination-bottom'\"\n [calendar]=\"loadedCalendar\"\n [isSrOnly]=\"true\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n />\n\n <!-- Link to navigation top hidden from screen reader -->\n <p [id]=\"buildChildId('navigationTopAnchor')\" aria-hidden=\"true\">\n {{ 'foehn-agenda.pagination-anchor.first-part' | fromDictionary }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(false)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.bottom-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n }\n</div>\n", dependencies: [{ kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FoehnAgendaNavigationComponent, selector: "foehn-agenda-navigation", inputs: ["id", "calendar", "isSrOnly", "minDate", "maxDate"], outputs: ["paginationChange"] }, { kind: "component", type: FoehnAgendaTimeslotPanelComponent, selector: "foehn-agenda-timeslot-panel", inputs: ["calendar", "currentWeek", "nbVisibleElements"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
14989
14989
  }
14990
14990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FoehnAgendaComponent, decorators: [{
14991
14991
  type: Component,
@@ -15001,7 +15001,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
15001
15001
  FoehnAgendaTimeslotPanelComponent,
15002
15002
  AsyncPipe,
15003
15003
  SdkDictionaryPipe,
15004
- ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <p\n [attr.id]=\"buildChildId() + 'Label'\"\n [attr.for]=\"buildChildId()\"\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </p>\n }\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!(calendar() | async)) {\n <foehn-validation-alerts [component]=\"this\" />\n <p class=\"alert alert-warning\">\n {{ 'foehn-agenda.calendar-indisponible' | fromDictionary }}\n </p>\n }\n\n <!-- Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name() || label()\" [ngModel]=\"model()\" />\n\n <p\n [id]=\"buildChildId('srOnlyAnnouncements')\"\n class=\"visually-hidden\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{ srAnnouncements }}\n </p>\n\n <ng-content />\n\n @if (calendar() | async; as loadedCalendar) {\n <section\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n >\n <h2 class=\"h3 mt-3\">\n <span aria-live=\"polite\" role=\"status\" aria-atomic=\"true\">\n {{ loadedCalendar.currentWeek.label }}\n </span>\n </h2>\n\n <!-- Rappel de l'heure actuellement s\u00E9lectionn\u00E9e -->\n <p\n [id]=\"buildChildId('timeSlotSelectedSrOnly')\"\n class=\"visually-hidden\"\n >\n {{ readableSelectedTimeSlot() }}\n </p>\n\n <!-- Navigation top hidden from screen reader-->\n <foehn-agenda-navigation\n [id]=\"buildChildId() + 'week-pagination-top'\"\n [calendar]=\"loadedCalendar\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n aria-hidden=\"true\"\n />\n\n <!-- Link to navigation bottom only for screen reader -->\n <p\n [id]=\"buildChildId('navigationBottomAnchor')\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda.pagination-anchor.first-part' | fromDictionary\n }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(true)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.top-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n\n <foehn-validation-alerts [component]=\"this\" />\n\n <div\n class=\"row\"\n [tabIndex]=\"hasErrors() ? 0 : -1\"\n [attr.id]=\"buildChildId()\"\n #entryComponent\n >\n @for (\n currentWeek of loadedCalendar.currentWeek.week;\n track currentWeek.day\n ) {\n <foehn-agenda-timeslot-panel\n class=\"col-12\"\n #timeSlotPanelElemRef\n [currentWeek]=\"currentWeek\"\n [calendar]=\"calendar()\"\n [nbVisibleElements]=\"nbVisibleElements()\"\n [(model)]=\"model\"\n (userInput)=\"handleUserInput($event)\"\n />\n }\n </div>\n </section>\n\n <!-- Navigation bottom used for screen reader only -->\n <foehn-agenda-navigation\n class=\"visually-hidden\"\n [id]=\"buildChildId() + 'week-pagination-bottom'\"\n [calendar]=\"loadedCalendar\"\n [isSrOnly]=\"true\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n />\n\n <!-- Link to navigation top hidden from screen reader -->\n <p [id]=\"buildChildId('navigationTopAnchor')\" aria-hidden=\"true\">\n {{ 'foehn-agenda.pagination-anchor.first-part' | fromDictionary }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(false)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.bottom-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n }\n</div>\n" }]
15004
+ ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n @if (label() && type !== 'hidden') {\n <p\n [attr.id]=\"buildChildId() + 'Label'\"\n [attr.for]=\"buildChildId()\"\n [class.visually-hidden]=\"isLabelSrOnly()\"\n [class.vd-p]=\"!isLabelSrOnly()\"\n >\n <span [innerHTML]=\"label()\"></span>\n @if (!required() && !hideNotRequiredExtraLabel()) {\n <span aria-hidden=\"true\">\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n }\n </p>\n }\n\n @if (helpText() && type !== 'hidden') {\n <small\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText()\"\n ></small>\n }\n\n @if (!(calendar() | async)) {\n <foehn-validation-alerts [component]=\"this\" />\n <p class=\"alert alert-warning\">\n {{ 'foehn-agenda.calendar-indisponible' | fromDictionary }}\n </p>\n }\n\n <!-- Fake input with NgModel to be registered into Form controls -->\n <input type=\"hidden\" [name]=\"name() || label()\" [ngModel]=\"model()\" />\n\n <p\n [id]=\"buildChildId('srOnlyAnnouncements')\"\n class=\"visually-hidden\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {{ srAnnouncements }}\n </p>\n\n <ng-content />\n\n @if (calendar() | async; as loadedCalendar) {\n <section\n class=\"mb-3\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrors() || null\"\n >\n <h2 class=\"h3 mt-3\">\n <span aria-live=\"polite\" role=\"status\" aria-atomic=\"true\">\n {{ loadedCalendar.currentWeek.label }}\n </span>\n </h2>\n\n <!-- Rappel de l'heure actuellement s\u00E9lectionn\u00E9e -->\n <p\n [id]=\"buildChildId('timeSlotSelectedSrOnly')\"\n class=\"visually-hidden\"\n >\n {{ readableSelectedTimeSlot() }}\n </p>\n\n <!-- Navigation top hidden from screen reader-->\n <foehn-agenda-navigation\n [id]=\"buildChildId() + 'week-pagination-top'\"\n [calendar]=\"loadedCalendar\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n aria-hidden=\"true\"\n />\n\n <!-- Link to navigation bottom only for screen reader -->\n <p\n [id]=\"buildChildId('navigationBottomAnchor')\"\n class=\"visually-hidden\"\n >\n {{\n 'foehn-agenda.pagination-anchor.first-part' | fromDictionary\n }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(true)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.top-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n\n <foehn-validation-alerts [component]=\"this\" />\n\n <div\n class=\"row\"\n [tabIndex]=\"hasErrors() ? 0 : -1\"\n [attr.id]=\"buildChildId()\"\n #entryComponent\n >\n @for (\n currentWeek of loadedCalendar.currentWeek.week;\n track currentWeek.day;\n let i = $index\n ) {\n <foehn-agenda-timeslot-panel\n class=\"col-12\"\n #timeSlotPanelElemRef\n [name]=\"buildChildName('TimeSlot' + (i + 1))\"\n [currentWeek]=\"currentWeek\"\n [calendar]=\"calendar()\"\n [nbVisibleElements]=\"nbVisibleElements()\"\n [(model)]=\"model\"\n (userInput)=\"handleUserInput($event)\"\n />\n }\n </div>\n </section>\n\n <!-- Navigation bottom used for screen reader only -->\n <foehn-agenda-navigation\n class=\"visually-hidden\"\n [id]=\"buildChildId() + 'week-pagination-bottom'\"\n [calendar]=\"loadedCalendar\"\n [isSrOnly]=\"true\"\n [minDate]=\"loadedCalendar.minAvailableDate\"\n [maxDate]=\"loadedCalendar.maxAvailableDate\"\n (paginationChange)=\"paginate($event)\"\n />\n\n <!-- Link to navigation top hidden from screen reader -->\n <p [id]=\"buildChildId('navigationTopAnchor')\" aria-hidden=\"true\">\n {{ 'foehn-agenda.pagination-anchor.first-part' | fromDictionary }}\n <a\n href=\"#\"\n (click)=\"$event.preventDefault(); scrollToNavigation(false)\"\n >\n {{\n 'foehn-agenda.pagination-anchor.bottom-next-part'\n | fromDictionary\n }}\n </a>\n </p>\n }\n</div>\n" }]
15005
15005
  }], propDecorators: { calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], nbVisibleElements: [{ type: i0.Input, args: [{ isSignal: true, alias: "nbVisibleElements", required: false }] }], paginationChange: [{ type: i0.Output, args: ["paginationChange"] }], timeSlotPanelsElemRef: [{ type: i0.ViewChildren, args: ['timeSlotPanelElemRef', { isSignal: true }] }] } });
15006
15006
 
15007
15007
  class SelectedSlot {