@dsivd/prestations-ng 18.0.2 → 18.0.4-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,49 @@
6
6
 
7
7
  ---
8
8
 
9
+ ## [18.0.4]
10
+
11
+ ### Added
12
+
13
+ - [default-dictionary.ts](projects/prestations-ng/src/sdk-dictionary/default-dictionary.ts)
14
+ - added key `foehn-input-email.standard-connected-help-text`
15
+
16
+ ## [18.0.3]
17
+
18
+ ### Added
19
+
20
+ - [default-dictionary.ts](projects/prestations-ng/src/sdk-dictionary/default-dictionary.ts)
21
+ - added key `foehn-uploader.unknown-error-message` (default value: `Impossible de transmettre le fichier`)
22
+
23
+ ### Updated
24
+
25
+ - [uploader.helper.ts](projects/prestations-ng/src/foehn-upload/uploader.helper.ts)
26
+
27
+ - `getDefaultUnknownErrorMessage` now uses new dictionary key `foehn-uploader.unknown-error-message`
28
+
29
+ - [gesdem-confirmation.component.ts](projects/prestations-ng/src/gesdem-confirmation/gesdem-confirmation.component.ts)
30
+ - allow to override connected success label for first step
31
+ - via `@Input() successLabelDicoKeyFirstStep`
32
+ - via route data : `successLabelDicoKeyFirstStep`
33
+ - default value for label is `gesdem-confirmation.success-label` from dictionary
34
+ - allow to override connected success label for additional steps
35
+ - via `@Input() successLabelDicoAdditionalSteps`
36
+ - via route data : `successLabelDicoAdditionalSteps`
37
+ - default value for label is `gesdem-confirmation.next-step.success-label` from dictionary
38
+
39
+ ### Fixed
40
+
41
+ - [foehn-select.component.ts](projects/prestations-ng/src/foehn-checkables/foehn-select.component.ts)
42
+ - [foehn-radio.component.ts](projects/prestations-ng/src/foehn-checkables/foehn-radio.component.ts)
43
+ - [foehn-checkbox.component.ts](projects/prestations-ng/src/foehn-checkables/foehn-checkbox.component.ts)
44
+ - [foehn-input-date.component.ts](projects/prestations-ng/src/foehn-input-date/foehn-input-date.component.ts)
45
+
46
+ - fixed `disabled`: now checks if all elements are disabled
47
+
48
+ - [foehn-form.component.ts](projects/prestations-ng/src/foehn-form/foehn-form.component.ts)
49
+ - fixed `focusFirst()`: now checks if focusable element is not `disabled` or `hidden`
50
+ - fixed `focusFirst()`: now only takes lowest level components (no parents having subComponents)
51
+
9
52
  ## [18.0.2]
10
53
 
11
54
  ### Fixed
package/UPGRADING_V18.md CHANGED
@@ -419,6 +419,17 @@ You can use this openrewrite recipe to simplify the migration (run with java 11)
419
419
  mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-spring:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_4 -Drewrite.exportDatatables=true -Pnof,noft
420
420
  ```
421
421
 
422
+ Fix application.properties :
423
+
424
+ ```diff
425
+ logging.config=${ch.vd.configDir}/logback-spring.xml
426
+ + # Restore sleuth traces at the same position as in spring boot 2
427
+ + logging.pattern.level=%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]
428
+ + # remove sleuth traces added by spring boot 3
429
+ + logging.pattern.correlation=
430
+ + logging.include-application-name=false
431
+ ```
432
+
422
433
  After that, you should continue based on your current parent :
423
434
 
424
435
  ### SPRING-BOOT-STARTER-PARENT
@@ -737,6 +737,13 @@ class FoehnInputComponent {
737
737
  set disabled(value) {
738
738
  this._disabled = value;
739
739
  }
740
+ // eslint-disable-next-line @typescript-eslint/member-ordering
741
+ get hidden() {
742
+ return !!this.hostHidden;
743
+ }
744
+ set hidden(value) {
745
+ this.hostHidden = value ? 'hidden' : null;
746
+ }
740
747
  ngOnInit() {
741
748
  // Ensures that the host has an Id for instrumentalization of the DOM by automated tests.
742
749
  this.hostId = this.buildId();
@@ -1000,7 +1007,7 @@ class FoehnInputComponent {
1000
1007
  }
1001
1008
  }
1002
1009
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FoehnInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1003
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: FoehnInputComponent, isStandalone: true, inputs: { id: "id", required: "required", label: "label", isLabelSrOnly: "isLabelSrOnly", standardHelpText: "standardHelpText", helpText: "helpText", name: "name", pattern: "pattern", labelStyleModifier: "labelStyleModifier", customErrors: "customErrors", maxlength: "maxlength", overrideGesdemMaxlength: "overrideGesdemMaxlength", min: "min", max: "max", autocomplete: "autocomplete", preventPaste: "preventPaste", clearButton: "clearButton", excludeFromErrorSummary: "excludeFromErrorSummary", hideNotRequiredExtraLabel: "hideNotRequiredExtraLabel", isErrorInherited: "isErrorInherited", showErrorWhenDisabled: "showErrorWhenDisabled", autocapitalize: "autocapitalize", updateModelWhenDisabled: "updateModelWhenDisabled", helpModal: "helpModal", model: "model", disabled: "disabled" }, outputs: { modelChange: "modelChange", userInput: "userInput", blurHandler: "blur", focusHandler: "focus" }, host: { properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["entryComponent"], descendants: true }, { propertyName: "inputModelList", predicate: NgModel, descendants: true }, { propertyName: "subComponents", predicate: i0.forwardRef(() => FoehnInputComponent), descendants: true }], ngImport: i0 }); }
1010
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: FoehnInputComponent, isStandalone: true, inputs: { id: "id", required: "required", label: "label", isLabelSrOnly: "isLabelSrOnly", standardHelpText: "standardHelpText", helpText: "helpText", name: "name", pattern: "pattern", labelStyleModifier: "labelStyleModifier", customErrors: "customErrors", maxlength: "maxlength", overrideGesdemMaxlength: "overrideGesdemMaxlength", min: "min", max: "max", autocomplete: "autocomplete", preventPaste: "preventPaste", clearButton: "clearButton", excludeFromErrorSummary: "excludeFromErrorSummary", hideNotRequiredExtraLabel: "hideNotRequiredExtraLabel", isErrorInherited: "isErrorInherited", showErrorWhenDisabled: "showErrorWhenDisabled", autocapitalize: "autocapitalize", updateModelWhenDisabled: "updateModelWhenDisabled", helpModal: "helpModal", model: "model", disabled: "disabled", hidden: "hidden" }, outputs: { modelChange: "modelChange", userInput: "userInput", blurHandler: "blur", focusHandler: "focus" }, host: { properties: { "attr.id": "this.hostId", "attr.hidden": "this.hostHidden" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["entryComponent"], descendants: true }, { propertyName: "inputModelList", predicate: NgModel, descendants: true }, { propertyName: "subComponents", predicate: i0.forwardRef(() => FoehnInputComponent), descendants: true }], ngImport: i0 }); }
1004
1011
  }
1005
1012
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FoehnInputComponent, decorators: [{
1006
1013
  type: Directive
@@ -1076,10 +1083,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
1076
1083
  }], hostId: [{
1077
1084
  type: HostBinding,
1078
1085
  args: ['attr.id']
1086
+ }], hostHidden: [{
1087
+ type: HostBinding,
1088
+ args: ['attr.hidden']
1079
1089
  }], model: [{
1080
1090
  type: Input
1081
1091
  }], disabled: [{
1082
1092
  type: Input
1093
+ }], hidden: [{
1094
+ type: Input
1083
1095
  }] } });
1084
1096
 
1085
1097
  const GrowlType = {
@@ -1122,6 +1134,9 @@ const DEFAULT_DICTIONARY = {
1122
1134
  'foehn-input-email.modal.title': 'Aide',
1123
1135
  'foehn-input-email.modal.content': "<p>Vous n'arrivez pas à saisir votre mail ?</p>" +
1124
1136
  '<p>Merci d\'écrire à <a href="mailto:info.cyber@vd.ch">info.cyber@vd.ch</a></p>',
1137
+ 'foehn-input-email.standard-connected-help-text': "Cette adresse est utilisée pour l'envoi des alertes automatiques vous informant " +
1138
+ "d'un nouvel événement vous concernant sur le portail sécurisé.<br/>" +
1139
+ 'Vous pouvez uniquement la modifier dans les <a href="/100002/" target="_blank">préférences de votre espace sécurisé</a>',
1125
1140
  'foehn-input-phone.DEFAULT_INTERNATIONAL_AND_NO_SWISS': "Préfixer avec l'indicatif de votre pays (ex : <ul class='sameLine-list'>" +
1126
1141
  '<li>+33612345678,</li><li>+49 123 456 78 901 ou</li><li>+39 312 345 6789</li></ul>)',
1127
1142
  'foehn-input-phone.DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE': "Préfixer avec l'indicatif de votre pays (ex : <ul class='sameLine-list'>" +
@@ -1296,6 +1311,7 @@ const DEFAULT_DICTIONARY = {
1296
1311
  'foehn-uploader.files-deleted-success-message': 'Suppression du fichier {filename} réussie',
1297
1312
  'foehn-uploader.delete-error-message': 'Une erreur est survenue lors de la suppression de votre document',
1298
1313
  'foehn-uploader.delete-readonly-error-message': 'Un document en lecture seule ne peut pas être supprimé',
1314
+ 'foehn-uploader.unknown-error-message': 'Impossible de transmettre le fichier',
1299
1315
  'foehn-picture-upload.choose-button-label': 'Choisissez une photo',
1300
1316
  'foehn-picture-upload.loading-label': 'Chargement...',
1301
1317
  'foehn-picture-upload.invalid-file-type': 'Le type de votre pièce jointe {filename} ne figure pas parmi ceux qui sont autorisés : "{acceptFormats}"',
@@ -1764,7 +1780,10 @@ class FoehnFormComponent {
1764
1780
  }
1765
1781
  focusFirst() {
1766
1782
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1767
- const allComponents = this.getAllComponents();
1783
+ const allComponents = this.getAllComponents().filter(value => !value.disabled &&
1784
+ value.type !== 'hidden' &&
1785
+ !value.hidden &&
1786
+ !value.subComponents?.length);
1768
1787
  if (allComponents && allComponents.length > 0) {
1769
1788
  allComponents[0].focus();
1770
1789
  }
@@ -2133,7 +2152,7 @@ class GesdemHandlerService {
2133
2152
  /**
2134
2153
  *
2135
2154
  * @param reference de la demande
2136
- * @param reCaptchaByPassUUID
2155
+ * @param reCaptchaByPassUUID unique identifier
2137
2156
  * @param forceRefreshIfNew allows to force the cleaning if reference is null
2138
2157
  * @param byPassEmitResponse boolean used to emit or not gesdem last response (default is false)
2139
2158
  * @returns Observable
@@ -3124,7 +3143,7 @@ class UploaderHelper {
3124
3143
  return formattedErrorMsg;
3125
3144
  }
3126
3145
  getDefaultUnknownErrorMessage(fileName) {
3127
- const msg = 'Impossible de transmettre le fichier';
3146
+ const msg = this.dictionaryService.getKeySync('foehn-uploader.unknown-error-message');
3128
3147
  if (!!fileName && !!fileName.length) {
3129
3148
  return `${msg} ${getSafeFileNameForErrorMessage(fileName)}.`;
3130
3149
  }
@@ -4193,6 +4212,8 @@ class GesdemConfirmationComponent {
4193
4212
  this.baseUrlPdf = 'api/document/pdf/';
4194
4213
  this.hideReference = false;
4195
4214
  this.hideFeedbackNotificationOverride = false;
4215
+ this.successLabelDicoKeyFirstStep = 'gesdem-confirmation.success-label';
4216
+ this.successLabelDicoAdditionalSteps = 'gesdem-confirmation.next-step.success-label';
4196
4217
  this.firstPageLink = '/';
4197
4218
  this.closeLinkNotConnected = new BehaviorSubject(null);
4198
4219
  this.closeLinkConnected = new BehaviorSubject(null);
@@ -4247,6 +4268,12 @@ class GesdemConfirmationComponent {
4247
4268
  this.hideFeedbackNotificationOverride =
4248
4269
  routeData.hideFeedbackNotificationOverride ||
4249
4270
  this.hideFeedbackNotificationOverride;
4271
+ this.successLabelDicoKeyFirstStep =
4272
+ routeData.successLabelDicoKeyFirstStep ||
4273
+ this.successLabelDicoKeyFirstStep;
4274
+ this.successLabelDicoAdditionalSteps =
4275
+ routeData.successLabelDicoAdditionalSteps ||
4276
+ this.successLabelDicoAdditionalSteps;
4250
4277
  // default closeLink if not by @Input and not by route data
4251
4278
  combineLatest([
4252
4279
  this.foehnPageService.onEtapeIdChange().pipe(first()),
@@ -4276,8 +4303,8 @@ class GesdemConfirmationComponent {
4276
4303
  get successLabelDicoKey() {
4277
4304
  const isFirstAction = this.gesdemService.lastResponse?.meta?.currentAction === 1;
4278
4305
  return isFirstAction
4279
- ? 'gesdem-confirmation.success-label'
4280
- : 'gesdem-confirmation.next-step.success-label';
4306
+ ? this.successLabelDicoKeyFirstStep
4307
+ : this.successLabelDicoAdditionalSteps;
4281
4308
  }
4282
4309
  ngOnChanges(changes) {
4283
4310
  const changeNotConnected = changes.closeHref;
@@ -4353,11 +4380,11 @@ class GesdemConfirmationComponent {
4353
4380
  window.scrollTo(0, 0);
4354
4381
  }
4355
4382
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GesdemConfirmationComponent, deps: [{ token: GesdemHandlerService }, { token: FoehnPageService }, { token: i1$1.ActivatedRoute }, { token: SdkDictionaryService }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Component }); }
4356
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: GesdemConfirmationComponent, isStandalone: false, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", closeHrefConnected: "closeHrefConnected", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", closeButtonConnectedText: "closeButtonConnectedText", baseUrlPdf: "baseUrlPdf", hideReference: "hideReference", hideFeedbackNotificationOverride: "hideFeedbackNotificationOverride" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n (isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n ) | fromDictionary\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FoehnFeedbackNotificationComponent, selector: "foehn-feedback-notification" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
4383
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: GesdemConfirmationComponent, isStandalone: false, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", closeHrefConnected: "closeHrefConnected", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", closeButtonConnectedText: "closeButtonConnectedText", baseUrlPdf: "baseUrlPdf", hideReference: "hideReference", hideFeedbackNotificationOverride: "hideFeedbackNotificationOverride", successLabelDicoKeyFirstStep: "successLabelDicoKeyFirstStep", successLabelDicoAdditionalSteps: "successLabelDicoAdditionalSteps" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n [id]=\"'main-summary'\"\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n (isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n ) | fromDictionary\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FoehnFeedbackNotificationComponent, selector: "foehn-feedback-notification" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
4357
4384
  }
4358
4385
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GesdemConfirmationComponent, decorators: [{
4359
4386
  type: Component,
4360
- args: [{ selector: 'gesdem-confirmation', standalone: false, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n (isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n ) | fromDictionary\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n" }]
4387
+ args: [{ selector: 'gesdem-confirmation', standalone: false, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n [id]=\"'main-summary'\"\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n (isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n ) | fromDictionary\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n" }]
4361
4388
  }], ctorParameters: () => [{ type: GesdemHandlerService }, { type: FoehnPageService }, { type: i1$1.ActivatedRoute }, { type: SdkDictionaryService }, { type: i2.Location }], propDecorators: { reference: [{
4362
4389
  type: Input
4363
4390
  }], setPageTitle: [{
@@ -4392,6 +4419,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
4392
4419
  type: Input
4393
4420
  }], hideFeedbackNotificationOverride: [{
4394
4421
  type: Input
4422
+ }], successLabelDicoKeyFirstStep: [{
4423
+ type: Input
4424
+ }], successLabelDicoAdditionalSteps: [{
4425
+ type: Input
4395
4426
  }] } });
4396
4427
 
4397
4428
  // Shared between prestations.
@@ -5499,7 +5530,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
5499
5530
  }]
5500
5531
  }], ctorParameters: () => [{ type: SessionInfo }, { type: GesdemEventService }, { type: GesdemHandlerService }] });
5501
5532
 
5502
- const supportedBrowsers = /Edge?\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(12[89]|1[3-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\/(18\.([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(1{2}[6-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(16[._]([6-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](13[7-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(139|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[7-9]|1[4-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\/(2[7-9]|[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+|)/;
5533
+ const supportedBrowsers = /Edge?\/(13[89]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(12[89]|1[3-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\/(18\.([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(12\d|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[._]([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](139|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(14[2-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(139|1[4-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\/(2[7-9]|[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+|)/;
5503
5534
 
5504
5535
  class FoehnPageModalService {
5505
5536
  constructor(applicationInfoService) {
@@ -6348,6 +6379,10 @@ class FoehnCheckableGroupComponent extends FoehnInputComponent {
6348
6379
  this.updateNgModel(this.model_);
6349
6380
  });
6350
6381
  }
6382
+ // Check if we need to disable component because all it's elements are disabled
6383
+ if (this.elements?.length && !this.disabled) {
6384
+ this.disabled = this.elements.every((elem) => !!this.getDisabled(elem));
6385
+ }
6351
6386
  this.groupedElements = this.getGroupedElements();
6352
6387
  }
6353
6388
  getGroupedElements() {
@@ -6494,7 +6529,7 @@ class FoehnSelectComponent extends FoehnCheckableGroupComponent {
6494
6529
  useExisting: forwardRef(() => FoehnSelectComponent),
6495
6530
  multi: true
6496
6531
  }
6497
- ], 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 <div class=\"d-flex justify-content-between\">\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div *ngIf=\"!elements\">Chargement...</div>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <select\n *ngIf=\"!multiple\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option *ngIf=\"showEmptyOption()\" [ngValue]=\"null\">\n <!-- empty option displayed even if required=true as long as there's no model to fix https://github.com/angular/angular/issues/14505 -->\n </option>\n <option *ngIf=\"!required\" [ngValue]=\"null\">\n {{ noSelectionLabel | fromDictionary }}\n </option>\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n <select\n *ngIf=\"multiple\"\n multiple\n [attr.aria-multiselectable]=\"true\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.aria-selected]=\"isElementSelected(element)\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n</div>\n", styles: [".form-group select{appearance:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnHelpModalComponent, selector: "foehn-help-modal", inputs: ["modalContent"] }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
6532
+ ], 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 <div class=\"d-flex justify-content-between\">\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div *ngIf=\"!elements\">Chargement...</div>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <select\n *ngIf=\"!multiple\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option *ngIf=\"showEmptyOption()\" [ngValue]=\"null\">\n <!-- empty option displayed even if required=true as long as there's no model to fix https://github.com/angular/angular/issues/14505 -->\n </option>\n <option *ngIf=\"!required\" [ngValue]=\"null\">\n {{ noSelectionLabel | fromDictionary }}\n </option>\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n <select\n *ngIf=\"multiple\"\n multiple\n [attr.aria-multiselectable]=\"true\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.aria-selected]=\"isElementSelected(element)\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n</div>\n", styles: [".form-group select{appearance:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnHelpModalComponent, selector: "foehn-help-modal", inputs: ["modalContent"] }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
6498
6533
  }
6499
6534
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FoehnSelectComponent, decorators: [{
6500
6535
  type: Component,
@@ -6504,7 +6539,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
6504
6539
  useExisting: forwardRef(() => FoehnSelectComponent),
6505
6540
  multi: true
6506
6541
  }
6507
- ], standalone: false, 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 <div class=\"d-flex justify-content-between\">\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div *ngIf=\"!elements\">Chargement...</div>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <select\n *ngIf=\"!multiple\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option *ngIf=\"showEmptyOption()\" [ngValue]=\"null\">\n <!-- empty option displayed even if required=true as long as there's no model to fix https://github.com/angular/angular/issues/14505 -->\n </option>\n <option *ngIf=\"!required\" [ngValue]=\"null\">\n {{ noSelectionLabel | fromDictionary }}\n </option>\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n <select\n *ngIf=\"multiple\"\n multiple\n [attr.aria-multiselectable]=\"true\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.aria-selected]=\"isElementSelected(element)\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n</div>\n", styles: [".form-group select{appearance:none}\n"] }]
6542
+ ], standalone: false, 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 <div class=\"d-flex justify-content-between\">\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div *ngIf=\"!elements\">Chargement...</div>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <select\n *ngIf=\"!multiple\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option *ngIf=\"showEmptyOption()\" [ngValue]=\"null\">\n <!-- empty option displayed even if required=true as long as there's no model to fix https://github.com/angular/angular/issues/14505 -->\n </option>\n <option *ngIf=\"!required\" [ngValue]=\"null\">\n {{ noSelectionLabel | fromDictionary }}\n </option>\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n <select\n *ngIf=\"multiple\"\n multiple\n [attr.aria-multiselectable]=\"true\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-select\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.aria-selected]=\"isElementSelected(element)\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n</div>\n", styles: [".form-group select{appearance:none}\n"] }]
6508
6543
  }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { multiple: [{
6509
6544
  type: Input
6510
6545
  }], noSelectionLabel: [{
@@ -10685,6 +10720,13 @@ class FoehnDateComponent extends FoehnInputComponent {
10685
10720
  this.childrenLabelSrOnly = false;
10686
10721
  this.clearButton = true;
10687
10722
  }
10723
+ get disabled() {
10724
+ return (super.disabled ||
10725
+ (this.disableDay && this.disableMonth && this.disableYear));
10726
+ }
10727
+ set disabled(value) {
10728
+ super.disabled = value;
10729
+ }
10688
10730
  updateDate() {
10689
10731
  const validValue = this.getValidValue();
10690
10732
  if (typeof validValue !== 'undefined') {
@@ -10724,7 +10766,7 @@ class FoehnDateComponent extends FoehnInputComponent {
10724
10766
  }
10725
10767
  displayClearButton() {
10726
10768
  // Override the clear button fonction not worry about the model at this stage.
10727
- const visible = this.clearButton && !this.isDisabled();
10769
+ const visible = this.clearButton && !this.disabled;
10728
10770
  return of(visible);
10729
10771
  }
10730
10772
  getValidValue() {
@@ -10742,13 +10784,13 @@ class FoehnDateComponent extends FoehnInputComponent {
10742
10784
  }
10743
10785
  shouldDisplayDatePicker() {
10744
10786
  return (!this.hideDatePickerButton &&
10745
- !this.disabled &&
10787
+ !super.disabled &&
10746
10788
  !this.disableYear &&
10747
10789
  !this.disableMonth &&
10748
10790
  !this.disableDay);
10749
10791
  }
10750
10792
  resetModel() {
10751
- if (this.isDisabled()) {
10793
+ if (this.disabled) {
10752
10794
  return;
10753
10795
  }
10754
10796
  if (!this.disableYear) {
@@ -10784,10 +10826,6 @@ class FoehnDateComponent extends FoehnInputComponent {
10784
10826
  const yearEmptyOrDisabled = this.disableYear || super.isEmpty(this.year);
10785
10827
  return (dayEmptyOrDisabled && monthEmptyOrDisabled && yearEmptyOrDisabled);
10786
10828
  }
10787
- isDisabled() {
10788
- return (this.disabled ||
10789
- (this.disableDay && this.disableMonth && this.disableYear));
10790
- }
10791
10829
  toNumber(str) {
10792
10830
  return str ? Number(str) : null;
10793
10831
  }
@@ -10795,7 +10833,7 @@ class FoehnDateComponent extends FoehnInputComponent {
10795
10833
  return num ? num.toString() : null;
10796
10834
  }
10797
10835
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FoehnDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10798
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: FoehnDateComponent, isStandalone: false, selector: "foehn-input-date", inputs: { disableDay: "disableDay", disableMonth: "disableMonth", disableYear: "disableYear", minDate: "minDate", maxDate: "maxDate", hideDatePickerButton: "hideDatePickerButton", childrenLabelSrOnly: "childrenLabelSrOnly" }, providers: [
10836
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: FoehnDateComponent, isStandalone: false, selector: "foehn-input-date", inputs: { disableDay: "disableDay", disableMonth: "disableMonth", disableYear: "disableYear", minDate: "minDate", maxDate: "maxDate", hideDatePickerButton: "hideDatePickerButton", childrenLabelSrOnly: "childrenLabelSrOnly", disabled: "disabled" }, providers: [
10799
10837
  {
10800
10838
  provide: FoehnInputComponent,
10801
10839
  useExisting: forwardRef(() => FoehnDateComponent),
@@ -10826,6 +10864,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
10826
10864
  type: Input
10827
10865
  }], childrenLabelSrOnly: [{
10828
10866
  type: Input
10867
+ }], disabled: [{
10868
+ type: Input
10829
10869
  }] } });
10830
10870
 
10831
10871
  class FoehnTimeComponent extends FoehnInputStringComponent {
@@ -11068,7 +11108,7 @@ class FoehnDateTimeComponent extends FoehnInputComponent {
11068
11108
  useExisting: forwardRef(() => FoehnDateTimeComponent),
11069
11109
  multi: true
11070
11110
  }
11071
- ], 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 <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"row\">\n <div\n [attr.id]=\"buildId() + 'MainColumn'\"\n [ngClass]=\"\n shouldDisplayDatePicker()\n ? 'col-lg-9 col-md-11'\n : 'col-lg-8 col-md-10'\n \"\n >\n <div class=\"row\">\n <div\n [attr.id]=\"buildId() + 'DateColumn'\"\n class=\"col-md-7 pe-0\"\n >\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 ></foehn-input-date>\n </div>\n <div\n [attr.id]=\"buildId() + 'TimeColumn'\"\n class=\"col-md-5 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 ></foehn-input-time>\n <div\n class=\"align-self-center position-relative w-100\"\n *ngIf=\"\n !isEmptyDependingOnDisabled() &&\n (displayClearButton() | async)\n \"\n >\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 ></foehn-icon-times>\n </button>\n </div>\n </div>\n </div>\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: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnDateComponent, selector: "foehn-input-date", inputs: ["disableDay", "disableMonth", "disableYear", "minDate", "maxDate", "hideDatePickerButton", "childrenLabelSrOnly"] }, { kind: "component", type: FoehnTimeComponent, selector: "foehn-input-time", inputs: ["childrenLabelSrOnly"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11111
+ ], 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 <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"row\">\n <div\n [attr.id]=\"buildId() + 'MainColumn'\"\n [ngClass]=\"\n shouldDisplayDatePicker()\n ? 'col-lg-9 col-md-11'\n : 'col-lg-8 col-md-10'\n \"\n >\n <div class=\"row\">\n <div\n [attr.id]=\"buildId() + 'DateColumn'\"\n class=\"col-md-7 pe-0\"\n >\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 ></foehn-input-date>\n </div>\n <div\n [attr.id]=\"buildId() + 'TimeColumn'\"\n class=\"col-md-5 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 ></foehn-input-time>\n <div\n class=\"align-self-center position-relative w-100\"\n *ngIf=\"\n !isEmptyDependingOnDisabled() &&\n (displayClearButton() | async)\n \"\n >\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 ></foehn-icon-times>\n </button>\n </div>\n </div>\n </div>\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: FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: FoehnDateComponent, selector: "foehn-input-date", inputs: ["disableDay", "disableMonth", "disableYear", "minDate", "maxDate", "hideDatePickerButton", "childrenLabelSrOnly", "disabled"] }, { kind: "component", type: FoehnTimeComponent, selector: "foehn-input-time", inputs: ["childrenLabelSrOnly"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
11072
11112
  }
11073
11113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FoehnDateTimeComponent, decorators: [{
11074
11114
  type: Component,