@fundamental-ngx/platform 0.61.2-rc.9 → 0.61.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +17 -17
  2. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +3 -3
  4. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
  6. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-platform-form.mjs +29 -33
  8. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
  10. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  12. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-platform-list.mjs +23 -17
  14. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +4 -4
  16. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-platform-search-field.mjs +6 -6
  18. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +4 -4
  20. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +25 -22
  22. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -3
  24. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-platform-table.mjs +40 -42
  26. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +6 -6
  28. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +6 -6
  30. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +4 -4
  32. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  33. package/package.json +5 -5
  34. package/schematics/ng-add/index.js +1 -1
  35. package/types/fundamental-ngx-platform-form.d.ts +1 -3
  36. package/types/fundamental-ngx-platform-icon-tab-bar.d.ts +1 -3
  37. package/types/fundamental-ngx-platform-list.d.ts +6 -2
  38. package/types/fundamental-ngx-platform-smart-filter-bar.d.ts +3 -4
  39. package/types/fundamental-ngx-platform-table.d.ts +1 -3
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, ContentChild, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, Inject, Injectable, forwardRef, EventEmitter, inject, DestroyRef, TemplateRef, ElementRef, booleanAttribute, ViewChildren, ContentChildren, ViewChild, Output, Optional, Self, SkipSelf, Attribute, NgModule, input, HostListener, NgZone, Injector, Pipe, ChangeDetectorRef, signal, effect, isDevMode, computed, Renderer2, LOCALE_ID } from '@angular/core';
2
+ import { InjectionToken, ContentChild, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, Inject, Injectable, forwardRef, EventEmitter, inject, DestroyRef, TemplateRef, ElementRef, booleanAttribute, ViewChildren, ContentChildren, ViewChild, Output, Optional, Self, SkipSelf, Attribute, NgModule, input, HostListener, NgZone, Injector, Pipe, ChangeDetectorRef, signal, isDevMode, computed, Renderer2, LOCALE_ID } from '@angular/core';
3
3
  import * as i1$4 from '@fundamental-ngx/cdk/forms';
4
4
  import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL, CvaControl, CvaDirective } from '@fundamental-ngx/cdk/forms';
5
5
  import * as i1 from '@fundamental-ngx/platform/shared';
@@ -28,7 +28,7 @@ import { FdCalendarViewEnum } from '@fundamental-ngx/core/calendar';
28
28
  import { DatePickerComponent } from '@fundamental-ngx/core/date-picker';
29
29
  import { DatetimeAdapter, DATE_TIME_FORMATS } from '@fundamental-ngx/core/datetime';
30
30
  import { DELETE, BACKSPACE, ESCAPE, ENTER, CONTROL, TAB, SHIFT, UP_ARROW, RIGHT_ARROW, DOWN_ARROW, LEFT_ARROW, ALT, NUMPAD_ZERO, NUMPAD_ONE, NUMPAD_TWO, NUMPAD_THREE, NUMPAD_FOUR, NUMPAD_FIVE, NUMPAD_SIX, NUMPAD_SEVEN, NUMPAD_EIGHT, NUMPAD_NINE, A, SPACE, PAGE_UP, PAGE_DOWN } from '@angular/cdk/keycodes';
31
- import { FdTranslatePipe, FD_LANGUAGE_SIGNAL, TranslationResolver } from '@fundamental-ngx/i18n';
31
+ import { FdTranslatePipe, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';
32
32
  import * as i1$2 from '@fundamental-ngx/core/dialog';
33
33
  import { DialogConfig, DialogModule } from '@fundamental-ngx/core/dialog';
34
34
  import * as i5 from '@fundamental-ngx/platform/list';
@@ -935,7 +935,7 @@ class FormFieldComponent {
935
935
  });
936
936
  }
937
937
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormGroupContainer, optional: true }, { token: i1.FormFieldGroup, optional: true }, { token: RESPONSIVE_BREAKPOINTS_CONFIG, optional: true }, { token: i1.ResponsiveBreakpointsService }, { token: FDP_FORM_FIELD_HINT_OPTIONS_DEFAULT }, { token: FDP_FORM_FIELD_HINT_LAYOUT_CONFIG }, { token: FormFieldLayoutService, self: true }, { token: FormFieldLayoutService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
938
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FormFieldComponent, isStandalone: true, selector: "fdp-form-field", inputs: { label: "label", id: "id", hint: "hint", noLabelLayout: "noLabelLayout", validators: "validators", rank: ["rank", "rank", rankTransformer], placeholder: "placeholder", column: "column", columnLayout: "columnLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", i18Strings: "i18Strings", required: ["required", "required", booleanAttribute], editable: ["editable", "editable", booleanAttribute], columns: ["columns", "columns", columnTransformer], disabled: "disabled", colon: "colon", formGroupContainer: "formGroupContainer" }, outputs: { onChange: "onChange", onColumnChange: "onColumnChange" }, providers: [formFieldProvider$1, formGroupChildProvider$2, FormFieldLayoutService], queries: [{ propertyName: "formFieldExtras", first: true, predicate: FormFieldControlExtrasComponent, descendants: true, read: ElementRef }, { propertyName: "_errorDirectiveQuery", predicate: FormFieldErrorDirective }], viewQueries: [{ propertyName: "renderer", first: true, predicate: ["renderer"], descendants: true, static: true }, { propertyName: "labelCol", first: true, predicate: ["labelCol"], descendants: true }, { propertyName: "inputMessageGroup", first: true, predicate: InputMessageGroupWithTemplate, descendants: true, read: ElementRef }, { propertyName: "innerErrorRenderers", first: true, predicate: ["innerErrorRenderers"], descendants: true }, { propertyName: "_inputMessageGroupCmp", predicate: InputMessageGroupWithTemplate, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #renderer>\n <div [horizontal]=\"true\" fd-form-item class=\"fd-row\">\n @if (!noLabelLayout) {\n <div\n class=\"fd-col\"\n #labelCol\n [class]=\"_labelColumnLayoutClass\"\n [style.margin-bottom.px]=\"_controlExtrasHeightPx\"\n >\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"withFormMessage\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"gapTemplate\"></ng-template>\n </div>\n <span aria-hidden=\"true\" [style.display]=\"'none'\" [id]=\"'fdp-form-hint-' + id\">\n @if (isStringHint(hintOptions.content)) {\n {{ hintOptions.content }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"$any(hintOptions.content)\"></ng-template>\n }\n </span>\n</ng-template>\n<ng-template #withFormMessage>\n <fdp-input-message-group class=\"fd-col\" [class]=\"_fieldColumnLayoutClass\" [attr.aria-labelledby]=\"_getLabelledBy()\">\n <ng-template #triggerItem>\n <ng-content></ng-content>\n </ng-template>\n\n @if (hasErrors() && groupedErrors.length > 0) {\n @for (error of groupedErrors; track error) {\n <fd-form-message [type]=\"error.directive.type\" [attr.id]=\"'fdp-form-message-grouped-errors-' + id\">\n <div>\n @if (error.directive._headingTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._headingTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n @if (error.directive._headingTemplateRef && error.directive._descriptionTemplateRef) {\n <br />\n }\n @if (error.directive._descriptionTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._descriptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n </div>\n </fd-form-message>\n }\n }\n\n @if (groupedErrors.length === 0 && hasErrors() && i18Strings) {\n <fd-form-message type=\"error\" [attr.id]=\"'fdp-form-message-error-' + id\">\n <ng-template\n [ngTemplateOutlet]=\"i18Strings\"\n [ngTemplateOutletContext]=\"{ $implicit: control?.ngControl?.errors }\"\n >\n </ng-template>\n </fd-form-message>\n }\n </fdp-input-message-group>\n</ng-template>\n\n<ng-template #innerErrorRenderers>\n @if (hasErrors() && groupedErrors.length > 0) {\n @for (error of groupedErrors; track error) {\n <div>\n @if (error.directive._headingTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._headingTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n @if (error.directive._headingTemplateRef && error.directive._descriptionTemplateRef) {\n <br />\n }\n @if (error.directive._descriptionTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._descriptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n </div>\n }\n }\n\n @if (groupedErrors.length === 0 && hasErrors() && i18Strings) {\n <ng-template\n [ngTemplateOutlet]=\"i18Strings\"\n [ngTemplateOutletContext]=\"{ $implicit: control?.ngControl?.errors }\"\n >\n </ng-template>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (hintTarget === 'label') {\n <label\n [id]=\"'fdp-form-label-' + id\"\n [required]=\"editable && required\"\n fd-form-label\n [inlineHelpContent]=\"hintOptions.content\"\n [inlineHelpBodyPlacement]=\"hintOptions.placement || 'top'\"\n [inlineHelpPlacement]=\"hintOptions.position || 'after'\"\n [inlineHelpGlyph]=\"hintOptions.glyph || ''\"\n [inlineHelpTriggers]=\"hintOptions.trigger || []\"\n [alignLabelEnd]=\"!!isHorizontal$()\"\n [colon]=\"colon\"\n >\n <span [id]=\"'fdp-form-label-content-' + id\">{{ label }}</span>\n </label>\n } @else {\n <label\n [id]=\"'fdp-form-label-' + id\"\n [required]=\"editable && required\"\n fd-form-label\n [colon]=\"colon\"\n [alignLabelEnd]=\"!!isHorizontal$()\"\n >\n <span [id]=\"'fdp-form-label-content-' + id\">{{ label }}</span>\n </label>\n }\n</ng-template>\n\n<ng-template #gapTemplate>\n @if (hintTarget === 'input' && hintOptions.content) {\n <div class=\"fd-col fd-form-field-inline-help-container\" [class]=\"_gapColumnLayoutClass\">\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [fd-inline-help]=\"hintOptions.content\"\n [glyph]=\"hintOptions.glyph\"\n [placement]=\"hintOptions.placement ?? null\"\n [triggers]=\"hintOptions.trigger ?? []\"\n tabindex=\"0\"\n >\n </fd-icon>\n </span>\n </div>\n } @else {\n <div class=\"fd-col\" [class]=\"_gapColumnLayoutClass\"></div>\n }\n</ng-template>\n", styles: [".fd-form-label__wrapper{display:flex;width:100%;white-space:nowrap}.fd-form-field-inline-help-container{overflow:visible!important}.fd-form-field-inline-help-container [class*=sap-icon]{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: InputMessageGroupWithTemplate, selector: "fdp-input-message-group", inputs: ["triggers"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "directive", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["fd-inline-help", "placement", "triggers", "closeOnOutsideClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
938
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FormFieldComponent, isStandalone: true, selector: "fdp-form-field", inputs: { label: "label", id: "id", hint: "hint", noLabelLayout: "noLabelLayout", validators: "validators", rank: ["rank", "rank", rankTransformer], placeholder: "placeholder", column: "column", columnLayout: "columnLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", i18Strings: "i18Strings", required: ["required", "required", booleanAttribute], editable: ["editable", "editable", booleanAttribute], columns: ["columns", "columns", columnTransformer], disabled: "disabled", colon: "colon", formGroupContainer: "formGroupContainer" }, outputs: { onChange: "onChange", onColumnChange: "onColumnChange" }, providers: [formFieldProvider$1, formGroupChildProvider$2, FormFieldLayoutService], queries: [{ propertyName: "formFieldExtras", first: true, predicate: FormFieldControlExtrasComponent, descendants: true, read: ElementRef }, { propertyName: "_errorDirectiveQuery", predicate: FormFieldErrorDirective }], viewQueries: [{ propertyName: "renderer", first: true, predicate: ["renderer"], descendants: true, static: true }, { propertyName: "labelCol", first: true, predicate: ["labelCol"], descendants: true }, { propertyName: "inputMessageGroup", first: true, predicate: InputMessageGroupWithTemplate, descendants: true, read: ElementRef }, { propertyName: "innerErrorRenderers", first: true, predicate: ["innerErrorRenderers"], descendants: true }, { propertyName: "_inputMessageGroupCmp", predicate: InputMessageGroupWithTemplate, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #renderer>\n <div [horizontal]=\"true\" fd-form-item class=\"fd-row\">\n @if (!noLabelLayout) {\n <div\n class=\"fd-col\"\n #labelCol\n [class]=\"_labelColumnLayoutClass\"\n [style.margin-bottom.px]=\"_controlExtrasHeightPx\"\n >\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"withFormMessage\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"gapTemplate\"></ng-template>\n </div>\n <span aria-hidden=\"true\" [style.display]=\"'none'\" [id]=\"'fdp-form-hint-' + id\">\n @if (isStringHint(hintOptions.content)) {\n {{ hintOptions.content }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"$any(hintOptions.content)\"></ng-template>\n }\n </span>\n</ng-template>\n<ng-template #withFormMessage>\n <fdp-input-message-group class=\"fd-col\" [class]=\"_fieldColumnLayoutClass\" [attr.aria-labelledby]=\"_getLabelledBy()\">\n <ng-template #triggerItem>\n <ng-content></ng-content>\n </ng-template>\n\n @if (hasErrors() && groupedErrors.length > 0) {\n @for (error of groupedErrors; track error) {\n <fd-form-message [type]=\"error.directive.type\" [attr.id]=\"'fdp-form-message-grouped-errors-' + id\">\n <div>\n @if (error.directive._headingTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._headingTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n @if (error.directive._headingTemplateRef && error.directive._descriptionTemplateRef) {\n <br />\n }\n @if (error.directive._descriptionTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._descriptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n </div>\n </fd-form-message>\n }\n }\n\n @if (groupedErrors.length === 0 && hasErrors() && i18Strings) {\n <fd-form-message type=\"error\" [attr.id]=\"'fdp-form-message-error-' + id\">\n <ng-template\n [ngTemplateOutlet]=\"i18Strings\"\n [ngTemplateOutletContext]=\"{ $implicit: control?.ngControl?.errors }\"\n >\n </ng-template>\n </fd-form-message>\n }\n </fdp-input-message-group>\n</ng-template>\n\n<ng-template #innerErrorRenderers>\n @if (hasErrors() && groupedErrors.length > 0) {\n @for (error of groupedErrors; track error) {\n <div>\n @if (error.directive._headingTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._headingTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n @if (error.directive._headingTemplateRef && error.directive._descriptionTemplateRef) {\n <br />\n }\n @if (error.directive._descriptionTemplateRef) {\n <ng-template\n [ngTemplateOutlet]=\"error.directive._descriptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error, label: label }\"\n >\n </ng-template>\n }\n </div>\n }\n }\n\n @if (groupedErrors.length === 0 && hasErrors() && i18Strings) {\n <ng-template\n [ngTemplateOutlet]=\"i18Strings\"\n [ngTemplateOutletContext]=\"{ $implicit: control?.ngControl?.errors }\"\n >\n </ng-template>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (hintTarget === 'label') {\n <label\n [id]=\"'fdp-form-label-' + id\"\n [required]=\"editable && required\"\n fd-form-label\n [inlineHelpContent]=\"hintOptions.content\"\n [inlineHelpBodyPlacement]=\"hintOptions.placement || 'top'\"\n [inlineHelpPlacement]=\"hintOptions.position || 'after'\"\n [inlineHelpGlyph]=\"hintOptions.glyph || ''\"\n [inlineHelpTriggers]=\"hintOptions.trigger || []\"\n [alignLabelEnd]=\"!!isHorizontal$()\"\n [colon]=\"colon\"\n >\n <span [id]=\"'fdp-form-label-content-' + id\">{{ label }}</span>\n </label>\n } @else {\n <label\n [id]=\"'fdp-form-label-' + id\"\n [required]=\"editable && required\"\n fd-form-label\n [colon]=\"colon\"\n [alignLabelEnd]=\"!!isHorizontal$()\"\n >\n <span [id]=\"'fdp-form-label-content-' + id\">{{ label }}</span>\n </label>\n }\n</ng-template>\n\n<ng-template #gapTemplate>\n @if (hintTarget === 'input' && hintOptions.content) {\n <div class=\"fd-col fd-form-field-inline-help-container\" [class]=\"_gapColumnLayoutClass\">\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [fd-inline-help]=\"hintOptions.content\"\n [glyph]=\"hintOptions.glyph\"\n [placement]=\"hintOptions.placement ?? null\"\n [triggers]=\"hintOptions.trigger ?? []\"\n tabindex=\"0\"\n >\n </fd-icon>\n </span>\n </div>\n } @else {\n <div class=\"fd-col\" [class]=\"_gapColumnLayoutClass\"></div>\n }\n</ng-template>\n", styles: [".fd-form-label__wrapper{display:flex;width:100%;white-space:nowrap}.fd-form-field-inline-help-container{overflow:visible!important}.fd-form-field-inline-help-container [class*=sap-icon]{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: InputMessageGroupWithTemplate, selector: "fdp-input-message-group", inputs: ["triggers"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "directive", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["fd-inline-help", "placement", "triggers", "closeOnOutsideClick", "additionalBodyClass", "disabled", "bodyId", "bodyRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
939
939
  }
940
940
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormFieldComponent, decorators: [{
941
941
  type: Component,
@@ -2052,7 +2052,7 @@ class TextAreaComponent extends BaseInput {
2052
2052
  useExisting: TextAreaComponent,
2053
2053
  multi: true
2054
2054
  }
2055
- ], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n<!-- ICU recommends full text in format -->\n@if (showExceededText) {\n <div class=\"fd-textarea-counter\" aria-live=\"polite\" aria-atomic=\"true\" [attr.id]=\"id + '-counter'\" #counter>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n @if (counterExcessOrRemaining === 'excess') {\n <span\n [innerHtml]=\"\n (\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n )()\n \"\n ></span>\n } @else {\n <span\n [innerHtml]=\"\n (\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n )()\n \"\n ></span>\n }\n </div>\n}\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"], dependencies: [{ kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2055
+ ], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n<!-- ICU recommends full text in format -->\n@if (showExceededText) {\n <div class=\"fd-textarea-counter\" aria-live=\"polite\" aria-atomic=\"true\" [attr.id]=\"id + '-counter'\" #counter>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n @if (counterExcessOrRemaining === 'excess') {\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n } @else {\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n }\n </div>\n}\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"], dependencies: [{ kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2056
2056
  }
2057
2057
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TextAreaComponent, decorators: [{
2058
2058
  type: Component,
@@ -2062,7 +2062,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
2062
2062
  useExisting: TextAreaComponent,
2063
2063
  multi: true
2064
2064
  }
2065
- ], imports: [FormControlComponent, FormsModule, FdTranslatePipe], template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n<!-- ICU recommends full text in format -->\n@if (showExceededText) {\n <div class=\"fd-textarea-counter\" aria-live=\"polite\" aria-atomic=\"true\" [attr.id]=\"id + '-counter'\" #counter>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n @if (counterExcessOrRemaining === 'excess') {\n <span\n [innerHtml]=\"\n (\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n )()\n \"\n ></span>\n } @else {\n <span\n [innerHtml]=\"\n (\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n )()\n \"\n ></span>\n }\n </div>\n}\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"] }]
2065
+ ], imports: [FormControlComponent, FormsModule, FdTranslatePipe], template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n<!-- ICU recommends full text in format -->\n@if (showExceededText) {\n <div class=\"fd-textarea-counter\" aria-live=\"polite\" aria-atomic=\"true\" [attr.id]=\"id + '-counter'\" #counter>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n @if (counterExcessOrRemaining === 'excess') {\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n } @else {\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate: { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n }\n </div>\n}\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"] }]
2066
2066
  }], ctorParameters: () => [{ type: TextAreaConfig }], propDecorators: { height: [{
2067
2067
  type: Input
2068
2068
  }], growingMaxLines: [{
@@ -2673,7 +2673,7 @@ class BaseMultiInput extends CollectionBaseInput {
2673
2673
  * */
2674
2674
  _assignCustomTemplates() {
2675
2675
  this.customTemplates.forEach((template) => {
2676
- switch (template.name()) {
2676
+ switch (template.name) {
2677
2677
  case 'optionItemTemplate':
2678
2678
  this.optionItemTemplate = template.templateRef;
2679
2679
  break;
@@ -2853,8 +2853,6 @@ class AutoCompleteDirective {
2853
2853
  this._isComposing = false;
2854
2854
  /** @hidden */
2855
2855
  this._zone = inject(NgZone);
2856
- /** @hidden */
2857
- this._destroyRef = inject(DestroyRef);
2858
2856
  /**
2859
2857
  * Fixes #10710 / #12983
2860
2858
  * With chinese characters inputText property update was triggered after the keyup event trigger.
@@ -2864,11 +2862,11 @@ class AutoCompleteDirective {
2864
2862
  const keyupEvent = fromEvent(this._elementRef.nativeElement, 'keyup');
2865
2863
  const compositionStartEvent = fromEvent(this._elementRef.nativeElement, 'compositionstart');
2866
2864
  const compositionEndEvent = fromEvent(this._elementRef.nativeElement, 'compositionend');
2867
- keyupEvent.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((evt) => this.handleKeyboardEvent(evt));
2868
- compositionStartEvent.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
2865
+ keyupEvent.pipe(takeUntilDestroyed()).subscribe((evt) => this.handleKeyboardEvent(evt));
2866
+ compositionStartEvent.pipe(takeUntilDestroyed()).subscribe(() => {
2869
2867
  this._isComposing = true;
2870
2868
  });
2871
- compositionEndEvent.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
2869
+ compositionEndEvent.pipe(takeUntilDestroyed()).subscribe(() => {
2872
2870
  this._isComposing = false;
2873
2871
  this.inputText = this._elementRef.nativeElement.value;
2874
2872
  });
@@ -3300,7 +3298,7 @@ class PlatformMultiInputComponent extends BaseMultiInput {
3300
3298
  multi: true
3301
3299
  },
3302
3300
  contentDensityObserverProviders()
3303
- ], viewQueries: [{ propertyName: "listTemplateDD", first: true, predicate: ListComponent, descendants: true }, { propertyName: "tokenizer", first: true, predicate: TokenizerComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_listItems", predicate: BaseListItem, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fd-multi-input\">\n <ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n</div>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fdp-multi-input__list-container\"\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"(!autoResize && minWidth) || 0\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n glyph=\"value-help\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n (keydown)=\"removeSelectedTokens($event)\"\n (addOnButtonClicked)=\"addOnButtonClick($event)\"\n (click)=\"onInputGroupClicked()\"\n [glyphAriaLabel]=\"glyphAriaLabel\"\n [iconTitle]=\"addonIconTitle\"\n >\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n [showOverflowPopover]=\"false\"\n #tokenizer\n class=\"fd-multi-input-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n tabindex=\"-1\"\n role=\"listbox\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"isOpen ? _suggestions : []\"\n >\n @for (token of selected; track token; let i = $index) {\n <fd-token\n [readOnly]=\"disabled\"\n (onCloseClick)=\"removeToken(token)\"\n [attr.aria-posinset]=\"i\"\n [attr.aria-setsize]=\"selected.length\"\n >\n <span>{{ token.label | displayFnPipe: displayFn }}</span>\n </fd-token>\n }\n <input\n #searchInputElement\n type=\"text\"\n class=\"fd-input fd-multi-input-tokenizer-input fd-tokenizer__input fd-input-group__input\"\n fdp-auto-complete\n autocomplete=\"off\"\n (onComplete)=\"_onAutoComplete($event)\"\n (keydown.enter)=\"_onKeydownEnter($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [inputText]=\"inputText\"\n [options]=\"_suggestions\"\n fd-input-group-input\n fd-form-control\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [attr.placeholder]=\"selected.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n aria-haspopup=\"listbox\"\n [attr.aria-readonly]=\"readonly\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)()\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n aria-roledescription=\"Multi Value Input\"\n fdkInitialFocus\n [enabled]=\"autofocus\"\n />\n </fd-tokenizer>\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n @if (_suggestions && _suggestions.length) {\n <fdp-list\n [noBorder]=\"true\"\n #listTemplateDD\n [hasByLine]=\"hasByLine\"\n [selectionMode]=\"selectionMode\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [interceptTabKey]=\"false\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (!isGroup) {\n @for (listItem of _suggestions; track listItem) {\n <fdp-standard-list-item\n [title]=\"listItem.label\"\n [description]=\"listItem.description || ''\"\n [avatar]=\"listItem.avatarSrc\"\n [value]=\"listItem.value\"\n (itemSelected)=\"selectionMode !== 'multi' && addToArray(listItem, true)\"\n (itemCheckboxSelected)=\"_checkboxSelected(listItem, $event)\"\n (buttonClicked)=\"deleteToken(listItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <fdp-list-group-header [groupHeaderTitle]=\"group.label\"></fdp-list-group-header>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <fdp-standard-list-item\n [title]=\"optionItem.label\"\n [value]=\"optionItem.value\"\n (itemSelected)=\"addToArray(optionItem, true)\"\n (itemCheckboxSelected)=\"addToArray(optionItem, false)\"\n (buttonClicked)=\"deleteToken(optionItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n }\n </fdp-list>\n }\n</ng-template>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-input__list-container.fd-popover__body{width:100%;overflow:hidden;position:relative}.fdp-multi-input__invisible-text{display:none!important}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i3$2.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i3$2.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "glyphFont", "moreTerm", "open", "showOverflowPopover"], outputs: ["moreClickedEvent"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "directive", type: InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "ngmodule", type: PlatformListModule }, { kind: "component", type: i5.ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "component", type: i5.ListGroupHeaderComponent, selector: "fdp-list-group-header", inputs: ["groupHeaderTitle"] }, { kind: "component", type: i5.StandardListItemComponent, selector: "fdp-standard-list-item" }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }, { kind: "pipe", type: DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3301
+ ], viewQueries: [{ propertyName: "listTemplateDD", first: true, predicate: ListComponent, descendants: true }, { propertyName: "tokenizer", first: true, predicate: TokenizerComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_listItems", predicate: BaseListItem, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fd-multi-input\">\n <ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n</div>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fdp-multi-input__list-container\"\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"(!autoResize && minWidth) || 0\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n glyph=\"value-help\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n (keydown)=\"removeSelectedTokens($event)\"\n (addOnButtonClicked)=\"addOnButtonClick($event)\"\n (click)=\"onInputGroupClicked()\"\n [glyphAriaLabel]=\"glyphAriaLabel\"\n [iconTitle]=\"addonIconTitle\"\n >\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n [showOverflowPopover]=\"false\"\n #tokenizer\n class=\"fd-multi-input-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n tabindex=\"-1\"\n role=\"listbox\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"isOpen ? _suggestions : []\"\n >\n @for (token of selected; track token; let i = $index) {\n <fd-token\n [readOnly]=\"disabled\"\n (onCloseClick)=\"removeToken(token)\"\n [attr.aria-posinset]=\"i\"\n [attr.aria-setsize]=\"selected.length\"\n >\n <span>{{ token.label | displayFnPipe: displayFn }}</span>\n </fd-token>\n }\n <input\n #searchInputElement\n type=\"text\"\n class=\"fd-input fd-multi-input-tokenizer-input fd-tokenizer__input fd-input-group__input\"\n fdp-auto-complete\n autocomplete=\"off\"\n (onComplete)=\"_onAutoComplete($event)\"\n (keydown.enter)=\"_onKeydownEnter($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [inputText]=\"inputText\"\n [options]=\"_suggestions\"\n fd-input-group-input\n fd-form-control\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [attr.placeholder]=\"selected.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n aria-haspopup=\"listbox\"\n [attr.aria-readonly]=\"readonly\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n aria-roledescription=\"Multi Value Input\"\n fdkInitialFocus\n [enabled]=\"autofocus\"\n />\n </fd-tokenizer>\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n @if (_suggestions && _suggestions.length) {\n <fdp-list\n [noBorder]=\"true\"\n #listTemplateDD\n [hasByLine]=\"hasByLine\"\n [selectionMode]=\"selectionMode\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [interceptTabKey]=\"false\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (!isGroup) {\n @for (listItem of _suggestions; track listItem) {\n <fdp-standard-list-item\n [title]=\"listItem.label\"\n [description]=\"listItem.description || ''\"\n [avatar]=\"listItem.avatarSrc\"\n [value]=\"listItem.value\"\n (itemSelected)=\"selectionMode !== 'multi' && addToArray(listItem, true)\"\n (itemCheckboxSelected)=\"_checkboxSelected(listItem, $event)\"\n (buttonClicked)=\"deleteToken(listItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <fdp-list-group-header [groupHeaderTitle]=\"group.label\"></fdp-list-group-header>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <fdp-standard-list-item\n [title]=\"optionItem.label\"\n [value]=\"optionItem.value\"\n (itemSelected)=\"addToArray(optionItem, true)\"\n (itemCheckboxSelected)=\"addToArray(optionItem, false)\"\n (buttonClicked)=\"deleteToken(optionItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n }\n </fdp-list>\n }\n</ng-template>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-input__list-container.fd-popover__body{width:100%;overflow:hidden;position:relative}.fdp-multi-input__invisible-text{display:none!important}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i3$2.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i3$2.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "glyphFont", "moreTerm", "open", "showOverflowPopover"], outputs: ["moreClickedEvent"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "directive", type: InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "ngmodule", type: PlatformListModule }, { kind: "component", type: i5.ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "component", type: i5.ListGroupHeaderComponent, selector: "fdp-list-group-header", inputs: ["groupHeaderTitle"] }, { kind: "component", type: i5.StandardListItemComponent, selector: "fdp-standard-list-item" }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }, { kind: "pipe", type: DisplayFnPipe, name: "displayFnPipe" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3304
3302
  }
3305
3303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformMultiInputComponent, decorators: [{
3306
3304
  type: Component,
@@ -3329,7 +3327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
3329
3327
  ContentDensityModule,
3330
3328
  FdTranslatePipe,
3331
3329
  MultiAnnouncerDirective
3332
- ], template: "<div class=\"fd-multi-input\">\n <ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n</div>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fdp-multi-input__list-container\"\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"(!autoResize && minWidth) || 0\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n glyph=\"value-help\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n (keydown)=\"removeSelectedTokens($event)\"\n (addOnButtonClicked)=\"addOnButtonClick($event)\"\n (click)=\"onInputGroupClicked()\"\n [glyphAriaLabel]=\"glyphAriaLabel\"\n [iconTitle]=\"addonIconTitle\"\n >\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n [showOverflowPopover]=\"false\"\n #tokenizer\n class=\"fd-multi-input-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n tabindex=\"-1\"\n role=\"listbox\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"isOpen ? _suggestions : []\"\n >\n @for (token of selected; track token; let i = $index) {\n <fd-token\n [readOnly]=\"disabled\"\n (onCloseClick)=\"removeToken(token)\"\n [attr.aria-posinset]=\"i\"\n [attr.aria-setsize]=\"selected.length\"\n >\n <span>{{ token.label | displayFnPipe: displayFn }}</span>\n </fd-token>\n }\n <input\n #searchInputElement\n type=\"text\"\n class=\"fd-input fd-multi-input-tokenizer-input fd-tokenizer__input fd-input-group__input\"\n fdp-auto-complete\n autocomplete=\"off\"\n (onComplete)=\"_onAutoComplete($event)\"\n (keydown.enter)=\"_onKeydownEnter($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [inputText]=\"inputText\"\n [options]=\"_suggestions\"\n fd-input-group-input\n fd-form-control\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [attr.placeholder]=\"selected.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n aria-haspopup=\"listbox\"\n [attr.aria-readonly]=\"readonly\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)()\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n aria-roledescription=\"Multi Value Input\"\n fdkInitialFocus\n [enabled]=\"autofocus\"\n />\n </fd-tokenizer>\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n @if (_suggestions && _suggestions.length) {\n <fdp-list\n [noBorder]=\"true\"\n #listTemplateDD\n [hasByLine]=\"hasByLine\"\n [selectionMode]=\"selectionMode\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [interceptTabKey]=\"false\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (!isGroup) {\n @for (listItem of _suggestions; track listItem) {\n <fdp-standard-list-item\n [title]=\"listItem.label\"\n [description]=\"listItem.description || ''\"\n [avatar]=\"listItem.avatarSrc\"\n [value]=\"listItem.value\"\n (itemSelected)=\"selectionMode !== 'multi' && addToArray(listItem, true)\"\n (itemCheckboxSelected)=\"_checkboxSelected(listItem, $event)\"\n (buttonClicked)=\"deleteToken(listItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <fdp-list-group-header [groupHeaderTitle]=\"group.label\"></fdp-list-group-header>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <fdp-standard-list-item\n [title]=\"optionItem.label\"\n [value]=\"optionItem.value\"\n (itemSelected)=\"addToArray(optionItem, true)\"\n (itemCheckboxSelected)=\"addToArray(optionItem, false)\"\n (buttonClicked)=\"deleteToken(optionItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n }\n </fdp-list>\n }\n</ng-template>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-input__list-container.fd-popover__body{width:100%;overflow:hidden;position:relative}.fdp-multi-input__invisible-text{display:none!important}\n"] }]
3330
+ ], template: "<div class=\"fd-multi-input\">\n <ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n</div>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fdp-multi-input__list-container\"\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"(!autoResize && minWidth) || 0\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n [isControl]=\"true\"\n glyph=\"value-help\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n (keydown)=\"removeSelectedTokens($event)\"\n (addOnButtonClicked)=\"addOnButtonClick($event)\"\n (click)=\"onInputGroupClicked()\"\n [glyphAriaLabel]=\"glyphAriaLabel\"\n [iconTitle]=\"addonIconTitle\"\n >\n <fd-tokenizer\n [tokenizerFocusable]=\"false\"\n [compactCollapse]=\"true\"\n [showOverflowPopover]=\"false\"\n #tokenizer\n class=\"fd-multi-input-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n tabindex=\"-1\"\n role=\"listbox\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"isOpen ? _suggestions : []\"\n >\n @for (token of selected; track token; let i = $index) {\n <fd-token\n [readOnly]=\"disabled\"\n (onCloseClick)=\"removeToken(token)\"\n [attr.aria-posinset]=\"i\"\n [attr.aria-setsize]=\"selected.length\"\n >\n <span>{{ token.label | displayFnPipe: displayFn }}</span>\n </fd-token>\n }\n <input\n #searchInputElement\n type=\"text\"\n class=\"fd-input fd-multi-input-tokenizer-input fd-tokenizer__input fd-input-group__input\"\n fdp-auto-complete\n autocomplete=\"off\"\n (onComplete)=\"_onAutoComplete($event)\"\n (keydown.enter)=\"_onKeydownEnter($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [inputText]=\"inputText\"\n [options]=\"_suggestions\"\n fd-input-group-input\n fd-form-control\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [attr.placeholder]=\"selected.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n aria-haspopup=\"listbox\"\n [attr.aria-readonly]=\"readonly\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n aria-roledescription=\"Multi Value Input\"\n fdkInitialFocus\n [enabled]=\"autofocus\"\n />\n </fd-tokenizer>\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n @if (_suggestions && _suggestions.length) {\n <fdp-list\n [noBorder]=\"true\"\n #listTemplateDD\n [hasByLine]=\"hasByLine\"\n [selectionMode]=\"selectionMode\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n [interceptTabKey]=\"false\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (!isGroup) {\n @for (listItem of _suggestions; track listItem) {\n <fdp-standard-list-item\n [title]=\"listItem.label\"\n [description]=\"listItem.description || ''\"\n [avatar]=\"listItem.avatarSrc\"\n [value]=\"listItem.value\"\n (itemSelected)=\"selectionMode !== 'multi' && addToArray(listItem, true)\"\n (itemCheckboxSelected)=\"_checkboxSelected(listItem, $event)\"\n (buttonClicked)=\"deleteToken(listItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <fdp-list-group-header [groupHeaderTitle]=\"group.label\"></fdp-list-group-header>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <fdp-standard-list-item\n [title]=\"optionItem.label\"\n [value]=\"optionItem.value\"\n (itemSelected)=\"addToArray(optionItem, true)\"\n (itemCheckboxSelected)=\"addToArray(optionItem, false)\"\n (buttonClicked)=\"deleteToken(optionItem)\"\n role=\"option\"\n >\n </fdp-standard-list-item>\n }\n }\n }\n </fdp-list>\n }\n</ng-template>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-input__list-container.fd-popover__body{width:100%;overflow:hidden;position:relative}.fdp-multi-input__invisible-text{display:none!important}\n"] }]
3333
3331
  }], ctorParameters: () => [{ type: i2.DynamicComponentService }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: Map, decorators: [{
3334
3332
  type: Optional
3335
3333
  }, {
@@ -4047,7 +4045,7 @@ class BaseSelect extends CollectionBaseInput {
4047
4045
  * */
4048
4046
  _assignCustomTemplates() {
4049
4047
  this.customTemplates.forEach((template) => {
4050
- switch (template.name()) {
4048
+ switch (template.name) {
4051
4049
  case '_optionItemTemplate':
4052
4050
  this._optionItemTemplate = template.templateRef;
4053
4051
  break;
@@ -4315,11 +4313,11 @@ class SwitchComponent extends BaseInput {
4315
4313
  this.switchChange.emit(event);
4316
4314
  }
4317
4315
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SwitchComponent, deps: [{ token: SwitchConfig }], target: i0.ɵɵFactoryTarget.Component }); }
4318
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: SwitchComponent, isStandalone: true, selector: "fdp-switch", inputs: { semantic: "semantic" }, outputs: { switchChange: "switchChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel || ('platformSwitch.ariaLabel' | fdTranslate)()\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n", dependencies: [{ kind: "component", type: SwitchComponent$1, selector: "fd-switch", inputs: ["activeText", "inactiveText", "id", "required", "checked", "semantic", "ariaLabel", "ariaLabelledBy"], outputs: ["checkedChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4316
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: SwitchComponent, isStandalone: true, selector: "fdp-switch", inputs: { semantic: "semantic" }, outputs: { switchChange: "switchChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel || ('platformSwitch.ariaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n", dependencies: [{ kind: "component", type: SwitchComponent$1, selector: "fd-switch", inputs: ["activeText", "inactiveText", "id", "required", "checked", "semantic", "ariaLabel", "ariaLabelledBy"], outputs: ["checkedChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4319
4317
  }
4320
4318
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SwitchComponent, decorators: [{
4321
4319
  type: Component,
4322
- args: [{ selector: 'fdp-switch', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], imports: [SwitchComponent$1, FdTranslatePipe], template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel || ('platformSwitch.ariaLabel' | fdTranslate)()\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n" }]
4320
+ args: [{ selector: 'fdp-switch', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], imports: [SwitchComponent$1, FdTranslatePipe], template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel || ('platformSwitch.ariaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n" }]
4323
4321
  }], ctorParameters: () => [{ type: SwitchConfig }], propDecorators: { semantic: [{
4324
4322
  type: Input
4325
4323
  }], switchChange: [{
@@ -5159,7 +5157,7 @@ class FormGroupHeaderComponent {
5159
5157
  return;
5160
5158
  }
5161
5159
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormGroupHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FormGroupHeaderComponent, isStandalone: true, selector: "[fdp-form-group-header]", inputs: { fieldGroup: "fieldGroup" }, host: { properties: { "class.fd-form-group__header": "true" } }, ngImport: i0, template: "@if (fieldGroup && hintOptions?.position === 'before') {\n <ng-template [ngTemplateOutlet]=\"inlineHelpRef\"></ng-template>\n}\n<h6 class=\"fd-form-group__header-text\">\n {{ fieldGroup?.label }}\n</h6>\n@if (fieldGroup && hintOptions?.position === 'after') {\n <ng-template [ngTemplateOutlet]=\"inlineHelpRef\"></ng-template>\n}\n<ng-template #inlineHelpRef>\n @if (hintOptions) {\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [style.vertical-align]=\"'middle'\"\n [fd-inline-help]=\"hintOptions.content\"\n [glyph]=\"hintOptions.glyph\"\n [placement]=\"hintOptions.placement ?? null\"\n [triggers]=\"hintOptions.trigger ?? []\"\n tabindex=\"0\"\n ></fd-icon>\n </span>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "directive", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["fd-inline-help", "placement", "triggers", "closeOnOutsideClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FormGroupHeaderComponent, isStandalone: true, selector: "[fdp-form-group-header]", inputs: { fieldGroup: "fieldGroup" }, host: { properties: { "class.fd-form-group__header": "true" } }, ngImport: i0, template: "@if (fieldGroup && hintOptions?.position === 'before') {\n <ng-template [ngTemplateOutlet]=\"inlineHelpRef\"></ng-template>\n}\n<h6 class=\"fd-form-group__header-text\">\n {{ fieldGroup?.label }}\n</h6>\n@if (fieldGroup && hintOptions?.position === 'after') {\n <ng-template [ngTemplateOutlet]=\"inlineHelpRef\"></ng-template>\n}\n<ng-template #inlineHelpRef>\n @if (hintOptions) {\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [style.vertical-align]=\"'middle'\"\n [fd-inline-help]=\"hintOptions.content\"\n [glyph]=\"hintOptions.glyph\"\n [placement]=\"hintOptions.placement ?? null\"\n [triggers]=\"hintOptions.trigger ?? []\"\n tabindex=\"0\"\n ></fd-icon>\n </span>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "directive", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["fd-inline-help", "placement", "triggers", "closeOnOutsideClick", "additionalBodyClass", "disabled", "bodyId", "bodyRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5163
5161
  }
5164
5162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormGroupHeaderComponent, decorators: [{
5165
5163
  type: Component,
@@ -5645,7 +5643,7 @@ class FormGroupComponent {
5645
5643
  .subscribe(() => this._cd.markForCheck()));
5646
5644
  }
5647
5645
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5648
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FormGroupComponent, isStandalone: true, selector: "fdp-form-group", inputs: { id: "id", name: "name", editable: "editable", noLabelLayout: "noLabelLayout", class: "class", hint: "hint", inlineColumnLayout: "inlineColumnLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", formGroup: "formGroup", topTitle: "topTitle", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", object: "object", i18Strings: "i18Strings", useForm: ["useForm", "useForm", booleanAttribute], columnLayout: "columnLayout", unifiedLayout: "unifiedLayout" }, outputs: { onSubmit: "onSubmit" }, providers: [formGroupProvider, FormFieldLayoutService, contentDensityObserverProviders()], queries: [{ propertyName: "i18Template", first: true, predicate: ["i18n"], descendants: true, static: true }, { propertyName: "formGroupChildren", predicate: FORM_GROUP_CHILD_FIELD_TOKEN, descendants: true }, { propertyName: "_errorDirectives", predicate: FormFieldErrorDirective }], viewQueries: [{ propertyName: "nativeForm", first: true, predicate: ["nativeForm"], descendants: true, read: NgForm }], usesOnChanges: true, ngImport: i0, template: "@if (useForm) {\n <form #nativeForm (ngSubmit)=\"onSubmit.emit($event)\" [id]=\"id\" [name]=\"name\">\n <ng-template [ngTemplateOutlet]=\"body\"></ng-template>\n </form>\n} @else {\n <!-- Render fields and field groups with assigned columns -->\n <ng-template [ngTemplateOutlet]=\"fields\"></ng-template>\n}\n<ng-template #body>\n <!-- Render fields and field groups with assigned columns -->\n <ng-template [ngTemplateOutlet]=\"fields\"></ng-template>\n</ng-template>\n<ng-template #fields>\n @if (mainTitle && !hideMainTItle) {\n <div class=\"fd-form-header\">\n <ng-template [ngTemplateOutlet]=\"mainTitleTemplate\"></ng-template>\n </div>\n }\n <div\n class=\"fd-container fd-form-layout-grid-container\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n >\n @for (column of formRows | keyvalue; track $index) {\n <div class=\"fd-row\">\n @for (fields of column | fieldGroupRowValue | keyvalue; track $index) {\n @if ($fieldGroup(column.value); as value) {\n @if (value.label && $index === 0) {\n <div class=\"fd-row fd-form-item\">\n <div class=\"fd-col\" [class]=\"xlCol\">\n <div fdp-form-group-header [fieldGroup]=\"$index === 0 ? value : null\"></div>\n </div>\n </div>\n }\n }\n\n <div class=\"fd-col fd-form-group\" [class]=\"xlCol\">\n @for (field of fields.value; track trackByFieldName($index, field)) {\n <div class=\"fd-row fd-form-item\">\n <div class=\"fd-col\" [class]=\"_inlineColumnLayoutClass\" [style.order]=\"field.rank\">\n <ng-template [ngTemplateOutlet]=\"field?.renderer || null\"></ng-template>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n<!-- For nested form-group -->\n<ng-content select=\"fdp-form-group\"></ng-content>\n<ng-template #mainTitleTemplate>\n @if (_hintOptions && _hintOptions.content && _hintOptions.position === 'before') {\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n }\n <h5 class=\"fd-form-header__text\">\n {{ mainTitle }}\n </h5>\n @if (_hintOptions && _hintOptions.content && _hintOptions.position === 'after') {\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n }\n <ng-template #hintTemplate>\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [fd-inline-help]=\"_hintOptions!.content\"\n [glyph]=\"_hintOptions!.glyph\"\n [placement]=\"_hintOptions!.placement ?? null\"\n [triggers]=\"_hintOptions!.trigger ?? []\"\n tabindex=\"0\"\n ></fd-icon>\n </span>\n </ng-template>\n</ng-template>\n", styles: [".fd-col,.fd-container,.fd-row{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-col:after,.fd-col:before,.fd-container:after,.fd-container:before,.fd-row:after,.fd-row:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;padding-block:0;padding-inline:.25rem;position:relative}.fd-container .fd-row{margin-inline:-.25rem;min-width:calc(100% + .5rem)}.fd-container>.fd-row>.fd-col{padding-block:.25rem}.fd-container.fd-container--no-gap .fd-row,.fd-container.fd-container--no-horizontal-gap .fd-row{margin-inline:0}.fd-container.fd-container--no-gap .fd-row .fd-col,.fd-container.fd-container--no-horizontal-gap .fd-row .fd-col{padding-inline:0}.fd-container.fd-container--no-gap>.fd-row>.fd-col,.fd-container.fd-container--no-vertical-gap>.fd-row>.fd-col{padding-block:0}.fd-container[dir=rtl],[dir=rtl] .fd-container{direction:rtl}.fd-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;min-width:100%;position:relative}.fd-col{max-width:100%;min-width:100%;padding-inline:.25rem}.fd-col--0{max-width:0;min-width:0%}.fd-col--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col--3{max-width:25%;min-width:25%}.fd-col--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col--6{max-width:50%;min-width:50%}.fd-col--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col--9{max-width:75%;min-width:75%}.fd-col--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col--12{max-width:100%;min-width:100%}.fd-col--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}.fd-col--full{max-width:none;min-width:8.3333333333%;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-col--wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}@media(width>=600px){.fd-container{padding-block:0;padding-inline:.5rem}.fd-container .fd-row{margin-inline:-.5rem;min-width:calc(100% + 1rem)}.fd-container>.fd-row>.fd-col{padding-block:.5rem}.fd-col{padding-inline:.5rem}.fd-col-md--0{max-width:0;min-width:0%}.fd-col-md--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col-md--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col-md--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-md--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col-md--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col-md--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-md--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col-md--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col-md--3{max-width:25%;min-width:25%}.fd-col-md--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col-md--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col-md--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-md--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col-md--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col-md--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-md--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col-md--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col-md--6{max-width:50%;min-width:50%}.fd-col-md--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col-md--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col-md--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-md--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col-md--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col-md--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-md--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col-md--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col-md--9{max-width:75%;min-width:75%}.fd-col-md--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col-md--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col-md--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-md--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col-md--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col-md--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-md--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col-md--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col-md--12{max-width:100%;min-width:100%}.fd-col-md--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col-md--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}}@media(width>=1024px){.fd-col-lg--0{max-width:0;min-width:0%}.fd-col-lg--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col-lg--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col-lg--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-lg--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col-lg--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col-lg--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-lg--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col-lg--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col-lg--3{max-width:25%;min-width:25%}.fd-col-lg--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col-lg--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col-lg--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-lg--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col-lg--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col-lg--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-lg--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col-lg--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col-lg--6{max-width:50%;min-width:50%}.fd-col-lg--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col-lg--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col-lg--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-lg--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col-lg--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col-lg--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-lg--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col-lg--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col-lg--9{max-width:75%;min-width:75%}.fd-col-lg--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col-lg--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col-lg--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-lg--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col-lg--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col-lg--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-lg--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col-lg--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col-lg--12{max-width:100%;min-width:100%}.fd-col-lg--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col-lg--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}}@media(width>=1440px){.fd-col-xl--0{max-width:0;min-width:0%}.fd-col-xl--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col-xl--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col-xl--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-xl--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col-xl--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col-xl--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-xl--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col-xl--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col-xl--3{max-width:25%;min-width:25%}.fd-col-xl--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col-xl--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col-xl--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-xl--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col-xl--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col-xl--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-xl--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col-xl--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col-xl--6{max-width:50%;min-width:50%}.fd-col-xl--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col-xl--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col-xl--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-xl--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col-xl--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col-xl--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-xl--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col-xl--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col-xl--9{max-width:75%;min-width:75%}.fd-col-xl--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col-xl--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col-xl--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-xl--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col-xl--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col-xl--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-xl--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col-xl--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col-xl--12{max-width:100%;min-width:100%}.fd-col-xl--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col-xl--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}}.fd-container.fd-form-layout-grid-container .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group{padding-block:1rem!important;padding-inline:1rem!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-group{padding-block:0!important;padding-inline:0!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label{-webkit-margin-end:0;margin-inline-end:0;white-space:normal}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--colon,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--colon{-webkit-padding-end:.25rem;padding-inline-end:.25rem}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required{-webkit-padding-end:.5rem;padding-inline-end:.5rem}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required.fd-form-label--colon,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required.fd-form-label--colon{-webkit-padding-end:.75rem;padding-inline-end:.75rem}.fd-container.fd-form-layout-grid-container .fd-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{overflow:hidden;padding-block:0;text-overflow:ellipsis;white-space:nowrap}.fd-container.fd-form-layout-grid-container .fd-row .fd-col:not(.fd-form-group){-ms-flex-item-align:center;align-self:center}@media(width>=0){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:right}}@media(width>=0)and (width<=599px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media(width>=600px){.fd-container.fd-form-layout-grid-container{padding-block:0;padding-inline:.25rem}.fd-container.fd-form-layout-grid-container .fd-row{margin-block:0;margin-inline:-.25rem;min-width:calc(100% + .5rem)}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{padding-block:0;padding-inline:.25rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:right}}@media(width>=600px)and (width<=1023px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media(width>=1024px){.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:right}}@media(width>=1024px)and (width<=1443px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media(width>=1440px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:right}}.fd-section{background-color:var(--sapToolbar_Background);border:0;border-bottom:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem 1.5rem;padding-inline:0;padding-inline:.5rem}.fd-section:after,.fd-section:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section:after{clear:both;content:\"\";display:table}@media(min-width:600px){.fd-section{padding-inline:2rem}}@media(min-width:1440px){.fd-section{padding-inline:3rem}}.fd-section--no-border,.fd-section:last-child{border-bottom:0}.fd-section--bleed,.fd-section--full-bleed{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-section--bleed:after,.fd-section--bleed:before,.fd-section--full-bleed:after,.fd-section--full-bleed:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-inline:.5rem}@media(min-width:600px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-inline:2rem}}@media(min-width:1440px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-inline:3rem}}.fd-section__header{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;min-height:1.5rem;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-margin-after:1.5rem;margin-block-end:1.5rem}.fd-section__header:after,.fd-section__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapTitleColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader2Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:2rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-margin-after:0;margin-block-end:0}.fd-section__title:after,.fd-section__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section__actions{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-start:auto;margin-inline-start:auto}.fd-section__actions:after,.fd-section__actions:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section__footer{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fd-section__footer:after,.fd-section__footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-form-group:after,.fd-form-group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-group--inline{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.fd-form-group--with-spacing{gap:.625rem}.fd-form-group__header{border:0;-webkit-box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapGroup_TitleBackground);box-sizing:border-box;height:2.75rem;width:100%}.fd-form-group__header:after,.fd-form-group__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-group__header[class*=-compact],.fd-form-group__header[class*=-condensed],[class*=-compact] .fd-form-group__header:not([class*=-cozy]),[class*=-condensed] .fd-form-group__header:not([class*=-cozy]){height:2rem}.fd-form-group__header-text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader6Size);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-group__header-text:after,.fd-form-group__header-text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-header{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapGroup_TitleBackground);-webkit-box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);height:2.75rem;padding-inline:1rem;width:100%}.fd-form-header:after,.fd-form-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-header__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader4Size);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-header__text:after,.fd-form-header__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}fdp-form-group{display:block}fdp-form-group .fd-form-group{display:block}fdp-form-group .fd-form-group.fd-form-group--inline{display:flex;flex-wrap:wrap;justify-content:flex-start}fdp-form-group .fd-form-group__header{padding-inline:1rem}fdp-form-group .fd-row:empty{display:none}fdp-form-group .fd-form-group__header{margin-block-start:1rem}.fd-form-label{overflow:hidden}\n/*! Bundled license information:\n\nfundamental-styles/dist/form-header.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormGroupHeaderComponent, selector: "[fdp-form-group-header]", inputs: ["fieldGroup"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "directive", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["fd-inline-help", "placement", "triggers", "closeOnOutsideClick"] }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: FieldGroupRowValuePipe, name: "fieldGroupRowValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5646
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FormGroupComponent, isStandalone: true, selector: "fdp-form-group", inputs: { id: "id", name: "name", editable: "editable", noLabelLayout: "noLabelLayout", class: "class", hint: "hint", inlineColumnLayout: "inlineColumnLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", formGroup: "formGroup", topTitle: "topTitle", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", object: "object", i18Strings: "i18Strings", useForm: ["useForm", "useForm", booleanAttribute], columnLayout: "columnLayout", unifiedLayout: "unifiedLayout" }, outputs: { onSubmit: "onSubmit" }, providers: [formGroupProvider, FormFieldLayoutService, contentDensityObserverProviders()], queries: [{ propertyName: "i18Template", first: true, predicate: ["i18n"], descendants: true, static: true }, { propertyName: "formGroupChildren", predicate: FORM_GROUP_CHILD_FIELD_TOKEN, descendants: true }, { propertyName: "_errorDirectives", predicate: FormFieldErrorDirective }], viewQueries: [{ propertyName: "nativeForm", first: true, predicate: ["nativeForm"], descendants: true, read: NgForm }], usesOnChanges: true, ngImport: i0, template: "@if (useForm) {\n <form #nativeForm (ngSubmit)=\"onSubmit.emit($event)\" [id]=\"id\" [name]=\"name\">\n <ng-template [ngTemplateOutlet]=\"body\"></ng-template>\n </form>\n} @else {\n <!-- Render fields and field groups with assigned columns -->\n <ng-template [ngTemplateOutlet]=\"fields\"></ng-template>\n}\n<ng-template #body>\n <!-- Render fields and field groups with assigned columns -->\n <ng-template [ngTemplateOutlet]=\"fields\"></ng-template>\n</ng-template>\n<ng-template #fields>\n @if (mainTitle && !hideMainTItle) {\n <div class=\"fd-form-header\">\n <ng-template [ngTemplateOutlet]=\"mainTitleTemplate\"></ng-template>\n </div>\n }\n <div\n class=\"fd-container fd-form-layout-grid-container\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n >\n @for (column of formRows | keyvalue; track $index) {\n <div class=\"fd-row\">\n @for (fields of column | fieldGroupRowValue | keyvalue; track $index) {\n @if ($fieldGroup(column.value); as value) {\n @if (value.label && $index === 0) {\n <div class=\"fd-row fd-form-item\">\n <div class=\"fd-col\" [class]=\"xlCol\">\n <div fdp-form-group-header [fieldGroup]=\"$index === 0 ? value : null\"></div>\n </div>\n </div>\n }\n }\n\n <div class=\"fd-col fd-form-group\" [class]=\"xlCol\">\n @for (field of fields.value; track trackByFieldName($index, field)) {\n <div class=\"fd-row fd-form-item\">\n <div class=\"fd-col\" [class]=\"_inlineColumnLayoutClass\" [style.order]=\"field.rank\">\n <ng-template [ngTemplateOutlet]=\"field?.renderer || null\"></ng-template>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n<!-- For nested form-group -->\n<ng-content select=\"fdp-form-group\"></ng-content>\n<ng-template #mainTitleTemplate>\n @if (_hintOptions && _hintOptions.content && _hintOptions.position === 'before') {\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n }\n <h5 class=\"fd-form-header__text\">\n {{ mainTitle }}\n </h5>\n @if (_hintOptions && _hintOptions.content && _hintOptions.position === 'after') {\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n }\n <ng-template #hintTemplate>\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [fd-inline-help]=\"_hintOptions!.content\"\n [glyph]=\"_hintOptions!.glyph\"\n [placement]=\"_hintOptions!.placement ?? null\"\n [triggers]=\"_hintOptions!.trigger ?? []\"\n tabindex=\"0\"\n ></fd-icon>\n </span>\n </ng-template>\n</ng-template>\n", styles: [".fd-col,.fd-container,.fd-row{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-col:after,.fd-col:before,.fd-container:after,.fd-container:before,.fd-row:after,.fd-row:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;padding-block:0;padding-inline:.25rem;position:relative}.fd-container .fd-row{margin-inline:-.25rem;min-width:calc(100% + .5rem)}.fd-container>.fd-row>.fd-col{padding-block:.25rem}.fd-container.fd-container--no-gap .fd-row,.fd-container.fd-container--no-horizontal-gap .fd-row{margin-inline:0}.fd-container.fd-container--no-gap .fd-row .fd-col,.fd-container.fd-container--no-horizontal-gap .fd-row .fd-col{padding-inline:0}.fd-container.fd-container--no-gap>.fd-row>.fd-col,.fd-container.fd-container--no-vertical-gap>.fd-row>.fd-col{padding-block:0}.fd-container[dir=rtl],[dir=rtl] .fd-container{direction:rtl}.fd-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;min-width:100%;position:relative}.fd-col{max-width:100%;min-width:100%;padding-inline:.25rem}.fd-col--0{max-width:0;min-width:0%}.fd-col--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col--3{max-width:25%;min-width:25%}.fd-col--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col--6{max-width:50%;min-width:50%}.fd-col--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col--9{max-width:75%;min-width:75%}.fd-col--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col--12{max-width:100%;min-width:100%}.fd-col--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}.fd-col--full{max-width:none;min-width:8.3333333333%;-webkit-box-flex:1;-ms-flex:1;flex:1}.fd-col--wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}@media(width>=600px){.fd-container{padding-block:0;padding-inline:.5rem}.fd-container .fd-row{margin-inline:-.5rem;min-width:calc(100% + 1rem)}.fd-container>.fd-row>.fd-col{padding-block:.5rem}.fd-col{padding-inline:.5rem}.fd-col-md--0{max-width:0;min-width:0%}.fd-col-md--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col-md--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col-md--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-md--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col-md--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col-md--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-md--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col-md--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col-md--3{max-width:25%;min-width:25%}.fd-col-md--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col-md--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col-md--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-md--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col-md--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col-md--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-md--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col-md--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col-md--6{max-width:50%;min-width:50%}.fd-col-md--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col-md--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col-md--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-md--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col-md--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col-md--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-md--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col-md--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col-md--9{max-width:75%;min-width:75%}.fd-col-md--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col-md--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col-md--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-md--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col-md--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col-md--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-md--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col-md--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col-md--12{max-width:100%;min-width:100%}.fd-col-md--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col-md--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}}@media(width>=1024px){.fd-col-lg--0{max-width:0;min-width:0%}.fd-col-lg--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col-lg--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col-lg--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-lg--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col-lg--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col-lg--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-lg--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col-lg--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col-lg--3{max-width:25%;min-width:25%}.fd-col-lg--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col-lg--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col-lg--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-lg--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col-lg--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col-lg--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-lg--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col-lg--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col-lg--6{max-width:50%;min-width:50%}.fd-col-lg--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col-lg--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col-lg--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-lg--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col-lg--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col-lg--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-lg--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col-lg--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col-lg--9{max-width:75%;min-width:75%}.fd-col-lg--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col-lg--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col-lg--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-lg--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col-lg--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col-lg--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-lg--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col-lg--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col-lg--12{max-width:100%;min-width:100%}.fd-col-lg--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col-lg--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}}@media(width>=1440px){.fd-col-xl--0{max-width:0;min-width:0%}.fd-col-xl--offset-0{-webkit-margin-start:0;margin-inline-start:0}.fd-col-xl--offset-after-0{-webkit-margin-end:0;margin-inline-end:0}.fd-col-xl--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-xl--offset-1{-webkit-margin-start:8.3333333333%;margin-inline-start:8.3333333333%}.fd-col-xl--offset-after-1{-webkit-margin-end:8.3333333333%;margin-inline-end:8.3333333333%}.fd-col-xl--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-xl--offset-2{-webkit-margin-start:16.6666666667%;margin-inline-start:16.6666666667%}.fd-col-xl--offset-after-2{-webkit-margin-end:16.6666666667%;margin-inline-end:16.6666666667%}.fd-col-xl--3{max-width:25%;min-width:25%}.fd-col-xl--offset-3{-webkit-margin-start:25%;margin-inline-start:25%}.fd-col-xl--offset-after-3{-webkit-margin-end:25%;margin-inline-end:25%}.fd-col-xl--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-xl--offset-4{-webkit-margin-start:33.3333333333%;margin-inline-start:33.3333333333%}.fd-col-xl--offset-after-4{-webkit-margin-end:33.3333333333%;margin-inline-end:33.3333333333%}.fd-col-xl--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-xl--offset-5{-webkit-margin-start:41.6666666667%;margin-inline-start:41.6666666667%}.fd-col-xl--offset-after-5{-webkit-margin-end:41.6666666667%;margin-inline-end:41.6666666667%}.fd-col-xl--6{max-width:50%;min-width:50%}.fd-col-xl--offset-6{-webkit-margin-start:50%;margin-inline-start:50%}.fd-col-xl--offset-after-6{-webkit-margin-end:50%;margin-inline-end:50%}.fd-col-xl--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-xl--offset-7{-webkit-margin-start:58.3333333333%;margin-inline-start:58.3333333333%}.fd-col-xl--offset-after-7{-webkit-margin-end:58.3333333333%;margin-inline-end:58.3333333333%}.fd-col-xl--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-xl--offset-8{-webkit-margin-start:66.6666666667%;margin-inline-start:66.6666666667%}.fd-col-xl--offset-after-8{-webkit-margin-end:66.6666666667%;margin-inline-end:66.6666666667%}.fd-col-xl--9{max-width:75%;min-width:75%}.fd-col-xl--offset-9{-webkit-margin-start:75%;margin-inline-start:75%}.fd-col-xl--offset-after-9{-webkit-margin-end:75%;margin-inline-end:75%}.fd-col-xl--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-xl--offset-10{-webkit-margin-start:83.3333333333%;margin-inline-start:83.3333333333%}.fd-col-xl--offset-after-10{-webkit-margin-end:83.3333333333%;margin-inline-end:83.3333333333%}.fd-col-xl--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-xl--offset-11{-webkit-margin-start:91.6666666667%;margin-inline-start:91.6666666667%}.fd-col-xl--offset-after-11{-webkit-margin-end:91.6666666667%;margin-inline-end:91.6666666667%}.fd-col-xl--12{max-width:100%;min-width:100%}.fd-col-xl--offset-12{-webkit-margin-start:100%;margin-inline-start:100%}.fd-col-xl--offset-after-12{-webkit-margin-end:100%;margin-inline-end:100%}}.fd-container.fd-form-layout-grid-container .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group{padding-block:1rem!important;padding-inline:1rem!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-group{padding-block:0!important;padding-inline:0!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label{-webkit-margin-end:0;margin-inline-end:0;white-space:normal}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--colon,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--colon{-webkit-padding-end:.25rem;padding-inline-end:.25rem}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required{-webkit-padding-end:.5rem;padding-inline-end:.5rem}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required.fd-form-label--colon,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required.fd-form-label--colon{-webkit-padding-end:.75rem;padding-inline-end:.75rem}.fd-container.fd-form-layout-grid-container .fd-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{overflow:hidden;padding-block:0;text-overflow:ellipsis;white-space:nowrap}.fd-container.fd-form-layout-grid-container .fd-row .fd-col:not(.fd-form-group){-ms-flex-item-align:center;align-self:center}@media(width>=0){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:right}}@media(width>=0)and (width<=599px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media(width>=600px){.fd-container.fd-form-layout-grid-container{padding-block:0;padding-inline:.25rem}.fd-container.fd-form-layout-grid-container .fd-row{margin-block:0;margin-inline:-.25rem;min-width:calc(100% + .5rem)}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{padding-block:0;padding-inline:.25rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:right}}@media(width>=600px)and (width<=1023px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media(width>=1024px){.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:right}}@media(width>=1024px)and (width<=1443px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media(width>=1440px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:right;text-align:right;-webkit-padding-after:0;padding-block-end:0;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:left;text-align:start;width:auto;-webkit-padding-after:.125rem;padding-block-end:.125rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:right}}.fd-section{background-color:var(--sapToolbar_Background);border:0;border-bottom:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem 1.5rem;padding-inline:0;padding-inline:.5rem}.fd-section:after,.fd-section:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section:after{clear:both;content:\"\";display:table}@media(min-width:600px){.fd-section{padding-inline:2rem}}@media(min-width:1440px){.fd-section{padding-inline:3rem}}.fd-section--no-border,.fd-section:last-child{border-bottom:0}.fd-section--bleed,.fd-section--full-bleed{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-section--bleed:after,.fd-section--bleed:before,.fd-section--full-bleed:after,.fd-section--full-bleed:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-inline:.5rem}@media(min-width:600px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-inline:2rem}}@media(min-width:1440px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-inline:3rem}}.fd-section__header{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;min-height:1.5rem;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-margin-after:1.5rem;margin-block-end:1.5rem}.fd-section__header:after,.fd-section__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapTitleColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader2Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:2rem;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-margin-after:0;margin-block-end:0}.fd-section__title:after,.fd-section__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section__actions{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-margin-start:auto;margin-inline-start:auto}.fd-section__actions:after,.fd-section__actions:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-section__footer{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fd-section__footer:after,.fd-section__footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-group{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-form-group:after,.fd-form-group:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-group--inline{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.fd-form-group--with-spacing{gap:.625rem}.fd-form-group__header{border:0;-webkit-box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapGroup_TitleBackground);box-sizing:border-box;height:2.75rem;width:100%}.fd-form-group__header:after,.fd-form-group__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-group__header[class*=-compact],.fd-form-group__header[class*=-condensed],[class*=-compact] .fd-form-group__header:not([class*=-cozy]),[class*=-condensed] .fd-form-group__header:not([class*=-cozy]){height:2rem}.fd-form-group__header-text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader6Size);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-group__header-text:after,.fd-form-group__header-text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-header{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--sapGroup_TitleBackground);-webkit-box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);height:2.75rem;padding-inline:1rem;width:100%}.fd-form-header:after,.fd-form-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-form-header__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader4Size);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-header__text:after,.fd-form-header__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}fdp-form-group{display:block}fdp-form-group .fd-form-group{display:block}fdp-form-group .fd-form-group.fd-form-group--inline{display:flex;flex-wrap:wrap;justify-content:flex-start}fdp-form-group .fd-form-group__header{padding-inline:1rem}fdp-form-group .fd-row:empty{display:none}fdp-form-group .fd-form-group__header{margin-block-start:1rem}.fd-form-label{overflow:hidden}\n/*! Bundled license information:\n\nfundamental-styles/dist/form-header.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormGroupHeaderComponent, selector: "[fdp-form-group-header]", inputs: ["fieldGroup"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "directive", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["fd-inline-help", "placement", "triggers", "closeOnOutsideClick", "additionalBodyClass", "disabled", "bodyId", "bodyRole"] }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: FieldGroupRowValuePipe, name: "fieldGroupRowValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5649
5647
  }
5650
5648
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormGroupComponent, decorators: [{
5651
5649
  type: Component,
@@ -6736,8 +6734,7 @@ class BaseCombobox extends CollectionBaseInput {
6736
6734
  .pipe(startWith(null), map(() => this._customItemDef.length > 0 ? this._customItemDef.toArray() : this._customTemplates.toArray()), takeUntilDestroyed(this._destroyed))
6737
6735
  .subscribe((data) => {
6738
6736
  data.forEach((template) => {
6739
- const templateName = template instanceof TemplateDirective ? template.name() : template.name;
6740
- switch (templateName) {
6737
+ switch (template.name) {
6741
6738
  case 'optionItemTemplate':
6742
6739
  this.optionItemTemplate = template.templateRef;
6743
6740
  break;
@@ -6996,7 +6993,7 @@ class ComboboxComponent extends BaseCombobox {
6996
6993
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ComboboxComponent, isStandalone: true, selector: "fdp-combobox", outputs: { selectionChange: "selectionChange" }, providers: [
6997
6994
  { provide: FD_FORM_FIELD_CONTROL, useExisting: ComboboxComponent, multi: true },
6998
6995
  contentDensityObserverProviders()
6999
- ], viewQueries: [{ propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"autoResize ? null : minWidth\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n additionalBodyClass=\"fdp-combobox__popover\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [state]=\"mobile && isOpen ? null : state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [isControl]=\"true\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled\"\n [glyphAriaLabel]=\"ariaLabel\"\n (click)=\"openInMobileMode()\"\n >\n <input\n #searchInputElement\n fdp-auto-complete\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n (onComplete)=\"_onCompleteTerm($event)\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getLabelledBy()\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-required]=\"required\"\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"inputText\"\n (ngModelChange)=\"searchTermChanged($event)\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"_onBlur($event)\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n @if (isOpen) {\n <div class=\"fdp-combobox__count-list-results\" role=\"status\">\n @if (_flatSuggestions.length || '0'; as count) {\n {{\n (\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate: { count: count }\n )()\n }}\n }\n </div>\n }\n @if (mobile || isOpen ? null : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n [hasMessage]=\"!!stateMessage\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-combobox__list\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [byline]=\"byline\"\n [attr.aria-labelledby]=\"id + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [style.maxWidth]=\"autoResize && maxWidth + 'px'\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n [attr.id]=\"'fdp-list-message-combobox-state-message-' + id\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [attr.id]=\"'fdp-list-message-combobox-error-message-' + id\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (isSelectedOptionItem(optionItem) && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(isSelectedOptionItem(optionItem) && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight: inputText\"></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fdp-combobox__count-list-results{position:absolute;opacity:0;z-index:-1}.fdp-combobox__list .fd-list__item{justify-content:space-between}.fdp-combobox__list .fd-list__item span{overflow:hidden;text-overflow:ellipsis;width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen", "preventSpaceKeyScroll"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i3$2.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i3$2.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate"] }, { kind: "directive", type: i6.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6996
+ ], viewQueries: [{ propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["controlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"autoResize ? null : minWidth\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n additionalBodyClass=\"fdp-combobox__popover\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [state]=\"mobile && isOpen ? null : state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [isControl]=\"true\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled\"\n [glyphAriaLabel]=\"ariaLabel\"\n (click)=\"openInMobileMode()\"\n >\n <input\n #searchInputElement\n fdp-auto-complete\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n (onComplete)=\"_onCompleteTerm($event)\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getLabelledBy()\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-required]=\"required\"\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"inputText\"\n (ngModelChange)=\"searchTermChanged($event)\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"_onBlur($event)\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n @if (isOpen) {\n <div class=\"fdp-combobox__count-list-results\" role=\"status\">\n @if (_flatSuggestions.length || '0'; as count) {\n {{\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate: { count: count }\n }}\n }\n </div>\n }\n @if (mobile || isOpen ? null : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n [hasMessage]=\"!!stateMessage\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-combobox__list\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [byline]=\"byline\"\n [attr.aria-labelledby]=\"id + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [style.maxWidth]=\"autoResize && maxWidth + 'px'\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n [attr.id]=\"'fdp-list-message-combobox-state-message-' + id\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [attr.id]=\"'fdp-list-message-combobox-error-message-' + id\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (isSelectedOptionItem(optionItem) && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(isSelectedOptionItem(optionItem) && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight: inputText\"></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fdp-combobox__count-list-results{position:absolute;opacity:0;z-index:-1}.fdp-combobox__list .fd-list__item{justify-content:space-between}.fdp-combobox__list .fd-list__item span{overflow:hidden;text-overflow:ellipsis;width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen", "preventSpaceKeyScroll"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i3$2.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i3$2.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate"] }, { kind: "directive", type: i6.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }, { kind: "ngmodule", type: ContentDensityModule }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7000
6997
  }
7001
6998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ComboboxComponent, decorators: [{
7002
6999
  type: Component,
@@ -7019,7 +7016,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
7019
7016
  SearchHighlightPipe,
7020
7017
  FdTranslatePipe,
7021
7018
  ContentDensityModule
7022
- ], template: "<ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"autoResize ? null : minWidth\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n additionalBodyClass=\"fdp-combobox__popover\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [state]=\"mobile && isOpen ? null : state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [isControl]=\"true\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled\"\n [glyphAriaLabel]=\"ariaLabel\"\n (click)=\"openInMobileMode()\"\n >\n <input\n #searchInputElement\n fdp-auto-complete\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n (onComplete)=\"_onCompleteTerm($event)\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getLabelledBy()\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-required]=\"required\"\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"inputText\"\n (ngModelChange)=\"searchTermChanged($event)\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"_onBlur($event)\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n @if (isOpen) {\n <div class=\"fdp-combobox__count-list-results\" role=\"status\">\n @if (_flatSuggestions.length || '0'; as count) {\n {{\n (\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate: { count: count }\n )()\n }}\n }\n </div>\n }\n @if (mobile || isOpen ? null : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n [hasMessage]=\"!!stateMessage\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-combobox__list\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [byline]=\"byline\"\n [attr.aria-labelledby]=\"id + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [style.maxWidth]=\"autoResize && maxWidth + 'px'\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n [attr.id]=\"'fdp-list-message-combobox-state-message-' + id\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [attr.id]=\"'fdp-list-message-combobox-error-message-' + id\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (isSelectedOptionItem(optionItem) && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(isSelectedOptionItem(optionItem) && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight: inputText\"></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fdp-combobox__count-list-results{position:absolute;opacity:0;z-index:-1}.fdp-combobox__list .fd-list__item{justify-content:space-between}.fdp-combobox__list .fd-list__item span{overflow:hidden;text-overflow:ellipsis;width:100%}\n"] }]
7019
+ ], template: "<ng-template [ngTemplateOutlet]=\"mobile ? controlTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n [isOpen]=\"isOpen && _suggestions.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readonly\"\n [maxWidth]=\"autoResize ? null : minWidth\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n additionalBodyClass=\"fdp-combobox__popover\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [state]=\"mobile && isOpen ? null : state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [isControl]=\"true\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled\"\n [glyphAriaLabel]=\"ariaLabel\"\n (click)=\"openInMobileMode()\"\n >\n <input\n #searchInputElement\n fdp-auto-complete\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n (onComplete)=\"_onCompleteTerm($event)\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getLabelledBy()\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-required]=\"required\"\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"inputText\"\n (ngModelChange)=\"searchTermChanged($event)\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"_onBlur($event)\"\n [attr.aria-expanded]=\"isOpen && _suggestions.length > 0\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n @if (isOpen) {\n <div class=\"fdp-combobox__count-list-results\" role=\"status\">\n @if (_flatSuggestions.length || '0'; as count) {\n {{\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate: { count: count }\n }}\n }\n </div>\n }\n @if (mobile || isOpen ? null : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n [hasMessage]=\"!!stateMessage\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-combobox__list\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [byline]=\"byline\"\n [attr.aria-labelledby]=\"id + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [style.maxWidth]=\"autoResize && maxWidth + 'px'\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n [attr.id]=\"'fdp-list-message-combobox-state-message-' + id\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [attr.id]=\"'fdp-list-message-combobox-error-message-' + id\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem; let i = $index) {\n <li\n (click)=\"handleOptionItem(optionItem)\"\n (mousedown)=\"_itemMousedown = true\"\n (focus)=\"onItemFocused(optionItem)\"\n fd-list-item\n ariaRole=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n [value]=\"optionItem\"\n >\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (isSelectedOptionItem(optionItem) && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(isSelectedOptionItem(optionItem) && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight: inputText\"></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fdp-combobox__count-list-results{position:absolute;opacity:0;z-index:-1}.fdp-combobox__list .fd-list__item{justify-content:space-between}.fdp-combobox__list .fd-list__item span{overflow:hidden;text-overflow:ellipsis;width:100%}\n"] }]
7023
7020
  }], ctorParameters: () => [{ type: i1$2.DialogConfig, decorators: [{
7024
7021
  type: Optional
7025
7022
  }] }, { type: i2.DynamicComponentService }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: Map, decorators: [{
@@ -8678,7 +8675,7 @@ class BaseMultiCombobox extends CollectionBaseInput {
8678
8675
  /** @hidden */
8679
8676
  this._mapLimit = inject(MAP_LIMIT);
8680
8677
  /** @hidden */
8681
- this._langSignal = inject(FD_LANGUAGE_SIGNAL);
8678
+ this._lang$ = inject(FD_LANGUAGE);
8682
8679
  /** @hidden */
8683
8680
  this._translationResolver = new TranslationResolver();
8684
8681
  /** @hidden */
@@ -8697,10 +8694,6 @@ class BaseMultiCombobox extends CollectionBaseInput {
8697
8694
  }
8698
8695
  };
8699
8696
  this._contentDensity = this.multiComboboxConfig.contentDensity;
8700
- effect(() => {
8701
- const lang = this._langSignal();
8702
- this.invalidEntryMessage = this._translationResolver.resolve(lang, 'platformMultiCombobox.invalidEntryError');
8703
- });
8704
8697
  }
8705
8698
  /** @hidden */
8706
8699
  ngOnChanges(changes) {
@@ -8714,6 +8707,9 @@ class BaseMultiCombobox extends CollectionBaseInput {
8714
8707
  this._initWindowResize();
8715
8708
  this._assignCustomTemplates();
8716
8709
  this._previousInputText = this.inputText;
8710
+ this._subscriptions.add(this._lang$.subscribe((lang) => {
8711
+ this.invalidEntryMessage = this._translationResolver.resolve(lang, 'platformMultiCombobox.invalidEntryError');
8712
+ }));
8717
8713
  super.ngAfterViewInit();
8718
8714
  }
8719
8715
  /** @hidden */
@@ -9227,7 +9223,7 @@ class BaseMultiCombobox extends CollectionBaseInput {
9227
9223
  */
9228
9224
  _assignCustomTemplates() {
9229
9225
  this.customTemplates.forEach((template) => {
9230
- switch (template.name()) {
9226
+ switch (template.name) {
9231
9227
  case 'optionItemTemplate':
9232
9228
  this.optionItemTemplate = template.templateRef;
9233
9229
  break;
@@ -9378,7 +9374,7 @@ class MultiComboboxMobileComponent extends MobileModeBase {
9378
9374
  });
9379
9375
  }
9380
9376
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MultiComboboxMobileComponent, deps: [{ token: MULTICOMBOBOX_COMPONENT }], target: i0.ɵɵFactoryTarget.Component }); }
9381
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: MultiComboboxMobileComponent, isStandalone: true, selector: "fdp-multi-combobox-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title fd-dialog-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n @if (selectedShown$()) {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"emphasized\"\n [title]=\"('platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate)()\"\n [attr.aria-label]=\"('platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate)()\"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n } @else {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"transparent\"\n [title]=\"('platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate)()\"\n [attr.aria-label]=\"\n ('platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate)()\n \"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n }\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\"> </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1$2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1$2.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i1$2.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1$2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1$2.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "directive", type: i1$2.DialogTitleDirective, selector: "[fd-dialog-title]", inputs: ["id"] }, { kind: "directive", type: i1$2.DialogTemplateDirective, selector: "[fdDialogTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "directive", type: i2.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i3$1.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3$1.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3$1.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "ngmodule", type: BarModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent$1, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: MultiComboboxMobileComponent, isStandalone: true, selector: "fdp-multi-combobox-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title fd-dialog-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n @if (selectedShown$()) {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"emphasized\"\n [title]=\"'platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate\"\n [attr.aria-label]=\"'platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate\"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n } @else {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"transparent\"\n [title]=\"'platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate\"\n [attr.aria-label]=\"'platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate\"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n }\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\"> </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1$2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1$2.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i1$2.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1$2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1$2.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "directive", type: i1$2.DialogTitleDirective, selector: "[fd-dialog-title]", inputs: ["id"] }, { kind: "directive", type: i1$2.DialogTemplateDirective, selector: "[fdDialogTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "directive", type: i2.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i3$1.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3$1.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3$1.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "ngmodule", type: BarModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent$1, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9382
9378
  }
9383
9379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MultiComboboxMobileComponent, decorators: [{
9384
9380
  type: Component,
@@ -9392,7 +9388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
9392
9388
  CdkScrollable,
9393
9389
  ScrollbarDirective,
9394
9390
  FdTranslatePipe
9395
- ], template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title fd-dialog-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n @if (selectedShown$()) {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"emphasized\"\n [title]=\"('platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate)()\"\n [attr.aria-label]=\"('platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate)()\"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n } @else {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"transparent\"\n [title]=\"('platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate)()\"\n [attr.aria-label]=\"\n ('platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate)()\n \"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n }\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\"> </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n" }]
9391
+ ], template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title fd-dialog-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n @if (selectedShown$()) {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"emphasized\"\n [title]=\"'platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate\"\n [attr.aria-label]=\"'platformMultiCombobox.mobileShowAllItemsButton' | fdTranslate\"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n } @else {\n <button\n fd-button\n glyph=\"multiselect-all\"\n fdType=\"transparent\"\n [title]=\"'platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate\"\n [attr.aria-label]=\"'platformMultiCombobox.mobileShowSelectedItemsButton' | fdTranslate\"\n class=\"fd-margin-begin--tiny\"\n (click)=\"showSelected()\"\n ></button>\n }\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\"> </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n" }]
9396
9392
  }], ctorParameters: () => [{ type: undefined, decorators: [{
9397
9393
  type: Inject,
9398
9394
  args: [MULTICOMBOBOX_COMPONENT]
@@ -9676,7 +9672,7 @@ class MultiComboboxComponent extends BaseMultiCombobox {
9676
9672
  multi: true
9677
9673
  },
9678
9674
  contentDensityObserverProviders()
9679
- ], viewQueries: [{ propertyName: "mobileControlTemplate", first: true, predicate: ["mobileControlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_tokenizer", first: true, predicate: TokenizerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fdp-multi-combobox\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n } @else {\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list fdp-multi-combobox__list-container\"\n (isOpenChange)=\"popoverOpenChangeHandle($event)\"\n [isOpen]=\"isOpen\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [style.width.%]=\"!autoResize && 100\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)()\"\n [iconTitle]=\"addonIconTitle || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)()\"\n (addOnButtonClicked)=\"_addOnClicked($event)\"\n (click)=\"mobile && !isOpen && onPrimaryButtonClick(false)\"\n (keydown)=\"navigateByTokens($event)\"\n >\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"true\"\n [tokenizerFocusable]=\"false\"\n [showOverflowPopover]=\"false\"\n class=\"fdp-multi-combobox-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"_suggestions\"\n >\n @for (token of _selectedSuggestions; track token) {\n <fd-token [readOnly]=\"disabled\" (onCloseClick)=\"removeToken(token, $event)\">\n {{ token.label }}\n </fd-token>\n }\n <input\n #searchInputElement\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [attr.placeholder]=\"_selectedSuggestions.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"!mobile && onBlur($event); tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-required]=\"required\"\n class=\"fd-tokenizer__input fd-input-group__input\"\n />\n </fd-tokenizer>\n </fd-input-group>\n @if (mobile && isOpen ? false : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #mobileControlTemplate>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"false\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel\"\n >\n <input\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"!mobile && onBlur($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-multi-combobox__list fd-list--multi-input\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [style.max-height]=\"!mobile && maxHeight\"\n [style.min-width]=\"!mobile && minWidth + 'px'\"\n [style.max-width]=\"autoResize && maxWidth + 'px'\"\n [attr.aria-labelledby]=\"id + '-search'\"\n aria-multiselectable=\"true\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li fd-list-message tabindex=\"-1\" role=\"presentation\" [type]=\"state || 'default'\">\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <label fd-list-item fd-list-group-header role=\"group\">\n <span fd-list-title>{{ group.label }}</span>\n </label>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keyDown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keydown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (optionItem.selected && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(optionItem.selected && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span\n fd-list-title\n [attr.title]=\"optionItem.label\"\n [innerHTML]=\"optionItem.label | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fd-margin--tiny{margin-block:.5rem;margin-inline:.5rem}.fd-margin--sm{margin-block:1rem;margin-inline:1rem}.fd-margin--md{margin-block:2rem;margin-inline:2rem}.fd-margin--lg{margin-block:3rem;margin-inline:3rem}.fd-margin--none{margin-block:0;margin-inline:0}.fd-margin-top--tiny{-webkit-margin-before:.5rem;margin-block-start:.5rem}.fd-margin-top--sm{-webkit-margin-before:1rem;margin-block-start:1rem}.fd-margin-top--md{-webkit-margin-before:2rem;margin-block-start:2rem}.fd-margin-top--lg{-webkit-margin-before:3rem;margin-block-start:3rem}.fd-margin-top--none{-webkit-margin-before:0;margin-block-start:0}.fd-margin-end--tiny{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-margin-end--sm{-webkit-margin-end:1rem;margin-inline-end:1rem}.fd-margin-end--md{-webkit-margin-end:2rem;margin-inline-end:2rem}.fd-margin-end--lg{-webkit-margin-end:3rem;margin-inline-end:3rem}.fd-margin-end--none{-webkit-margin-end:0;margin-inline-end:0}.fd-margin-bottom--tiny{-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-margin-bottom--sm{-webkit-margin-after:1rem;margin-block-end:1rem}.fd-margin-bottom--md{-webkit-margin-after:2rem;margin-block-end:2rem}.fd-margin-bottom--lg{-webkit-margin-after:3rem;margin-block-end:3rem}.fd-margin-bottom--none{-webkit-margin-after:0;margin-block-end:0}.fd-margin-begin--tiny{-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-margin-begin--sm{-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-margin-begin--md{-webkit-margin-start:2rem;margin-inline-start:2rem}.fd-margin-begin--lg{-webkit-margin-start:3rem;margin-inline-start:3rem}.fd-margin-begin--none{-webkit-margin-start:0;margin-inline-start:0}.fd-margin-top-bottom--tiny{margin-block:.5rem}.fd-margin-top-bottom--sm{margin-block:1rem}.fd-margin-top-bottom--md{margin-block:2rem}.fd-margin-top-bottom--lg{margin-block:3rem}.fd-margin-begin-end--tiny{margin-inline:.5rem}.fd-margin-begin-end--sm{margin-inline:1rem}.fd-margin-begin-end--md{margin-inline:2rem}.fd-margin-begin-end--lg{margin-inline:3rem}.fd-margin-responsive--sm{margin-block:0 1rem;margin-inline:0}.fd-margin-responsive--md{margin-block:1rem;margin-inline:1rem}.fd-margin-responsive--lg{margin-block:1rem;margin-inline:2rem}.fd-margin-responsive--xl{margin-block:1rem;margin-inline:3rem}.fd-margin-negative-begin-end--tiny{margin-block:0;margin-inline:-.5rem}.fd-margin-negative-begin-end--sm{margin-block:0;margin-inline:-1rem}.fd-margin-negative-begin-end--md{margin-block:0;margin-inline:-2rem}.fd-margin-negative-begin-end--lg{margin-block:0;margin-inline:-3rem}.fdp-multi-combobox-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fdp-multi-combobox-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fdp-multi-combobox-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fdp-multi-combobox-tokenizer-custom[class*=--compact],.fdp-multi-combobox-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-combobox__list-container .fd-list .fd-list__item.fd-list__group-header{padding:0 1rem}.fdp-multi-combobox__list-container .fd-list .fd-list__item .fd-list__title{max-width:inherit}.fdp-multi-combobox__list-container .fd-list.fd-list--compact .fd-list__item.fd-list__group-header{padding:0 .5rem}\n/*! Bundled license information:\n\nfundamental-styles/dist/margins.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen", "preventSpaceKeyScroll"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i3$2.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i3$2.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "glyphFont", "moreTerm", "open", "showOverflowPopover"], outputs: ["moreClickedEvent"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate"] }, { kind: "directive", type: i6.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }, { kind: "component", type: CheckboxComponent$1, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9675
+ ], viewQueries: [{ propertyName: "mobileControlTemplate", first: true, predicate: ["mobileControlTemplate"], descendants: true }, { propertyName: "listTemplate", first: true, predicate: ["listTemplate"], descendants: true }, { propertyName: "_tokenizer", first: true, predicate: TokenizerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fdp-multi-combobox\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n } @else {\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list fdp-multi-combobox__list-container\"\n (isOpenChange)=\"popoverOpenChangeHandle($event)\"\n [isOpen]=\"isOpen\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [style.width.%]=\"!autoResize && 100\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"addonIconTitle || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"_addOnClicked($event)\"\n (click)=\"mobile && !isOpen && onPrimaryButtonClick(false)\"\n (keydown)=\"navigateByTokens($event)\"\n >\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"true\"\n [tokenizerFocusable]=\"false\"\n [showOverflowPopover]=\"false\"\n class=\"fdp-multi-combobox-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"_suggestions\"\n >\n @for (token of _selectedSuggestions; track token) {\n <fd-token [readOnly]=\"disabled\" (onCloseClick)=\"removeToken(token, $event)\">\n {{ token.label }}\n </fd-token>\n }\n <input\n #searchInputElement\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [attr.placeholder]=\"_selectedSuggestions.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"!mobile && onBlur($event); tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-required]=\"required\"\n class=\"fd-tokenizer__input fd-input-group__input\"\n />\n </fd-tokenizer>\n </fd-input-group>\n @if (mobile && isOpen ? false : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #mobileControlTemplate>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"false\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel\"\n >\n <input\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"!mobile && onBlur($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-multi-combobox__list fd-list--multi-input\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [style.max-height]=\"!mobile && maxHeight\"\n [style.min-width]=\"!mobile && minWidth + 'px'\"\n [style.max-width]=\"autoResize && maxWidth + 'px'\"\n [attr.aria-labelledby]=\"id + '-search'\"\n aria-multiselectable=\"true\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li fd-list-message tabindex=\"-1\" role=\"presentation\" [type]=\"state || 'default'\">\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <label fd-list-item fd-list-group-header role=\"group\">\n <span fd-list-title>{{ group.label }}</span>\n </label>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keyDown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keydown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (optionItem.selected && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(optionItem.selected && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span\n fd-list-title\n [attr.title]=\"optionItem.label\"\n [innerHTML]=\"optionItem.label | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fd-margin--tiny{margin-block:.5rem;margin-inline:.5rem}.fd-margin--sm{margin-block:1rem;margin-inline:1rem}.fd-margin--md{margin-block:2rem;margin-inline:2rem}.fd-margin--lg{margin-block:3rem;margin-inline:3rem}.fd-margin--none{margin-block:0;margin-inline:0}.fd-margin-top--tiny{-webkit-margin-before:.5rem;margin-block-start:.5rem}.fd-margin-top--sm{-webkit-margin-before:1rem;margin-block-start:1rem}.fd-margin-top--md{-webkit-margin-before:2rem;margin-block-start:2rem}.fd-margin-top--lg{-webkit-margin-before:3rem;margin-block-start:3rem}.fd-margin-top--none{-webkit-margin-before:0;margin-block-start:0}.fd-margin-end--tiny{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-margin-end--sm{-webkit-margin-end:1rem;margin-inline-end:1rem}.fd-margin-end--md{-webkit-margin-end:2rem;margin-inline-end:2rem}.fd-margin-end--lg{-webkit-margin-end:3rem;margin-inline-end:3rem}.fd-margin-end--none{-webkit-margin-end:0;margin-inline-end:0}.fd-margin-bottom--tiny{-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-margin-bottom--sm{-webkit-margin-after:1rem;margin-block-end:1rem}.fd-margin-bottom--md{-webkit-margin-after:2rem;margin-block-end:2rem}.fd-margin-bottom--lg{-webkit-margin-after:3rem;margin-block-end:3rem}.fd-margin-bottom--none{-webkit-margin-after:0;margin-block-end:0}.fd-margin-begin--tiny{-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-margin-begin--sm{-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-margin-begin--md{-webkit-margin-start:2rem;margin-inline-start:2rem}.fd-margin-begin--lg{-webkit-margin-start:3rem;margin-inline-start:3rem}.fd-margin-begin--none{-webkit-margin-start:0;margin-inline-start:0}.fd-margin-top-bottom--tiny{margin-block:.5rem}.fd-margin-top-bottom--sm{margin-block:1rem}.fd-margin-top-bottom--md{margin-block:2rem}.fd-margin-top-bottom--lg{margin-block:3rem}.fd-margin-begin-end--tiny{margin-inline:.5rem}.fd-margin-begin-end--sm{margin-inline:1rem}.fd-margin-begin-end--md{margin-inline:2rem}.fd-margin-begin-end--lg{margin-inline:3rem}.fd-margin-responsive--sm{margin-block:0 1rem;margin-inline:0}.fd-margin-responsive--md{margin-block:1rem;margin-inline:1rem}.fd-margin-responsive--lg{margin-block:1rem;margin-inline:2rem}.fd-margin-responsive--xl{margin-block:1rem;margin-inline:3rem}.fd-margin-negative-begin-end--tiny{margin-block:0;margin-inline:-.5rem}.fd-margin-negative-begin-end--sm{margin-block:0;margin-inline:-1rem}.fd-margin-negative-begin-end--md{margin-block:0;margin-inline:-2rem}.fd-margin-negative-begin-end--lg{margin-block:0;margin-inline:-3rem}.fdp-multi-combobox-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fdp-multi-combobox-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fdp-multi-combobox-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fdp-multi-combobox-tokenizer-custom[class*=--compact],.fdp-multi-combobox-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-combobox__list-container .fd-list .fd-list__item.fd-list__group-header{padding:0 1rem}.fdp-multi-combobox__list-container .fd-list .fd-list__item .fd-list__title{max-width:inherit}.fdp-multi-combobox__list-container .fd-list.fd-list--compact .fd-list__item.fd-list__group-header{padding:0 .5rem}\n/*! Bundled license information:\n\nfundamental-styles/dist/margins.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen", "preventSpaceKeyScroll"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i3$2.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i3$2.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "glyphFont", "moreTerm", "open", "showOverflowPopover"], outputs: ["moreClickedEvent"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdp-auto-complete]", inputs: ["options", "inputText", "mobile"], outputs: ["onComplete"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate"] }, { kind: "directive", type: i6.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }, { kind: "component", type: CheckboxComponent$1, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9680
9676
  }
9681
9677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MultiComboboxComponent, decorators: [{
9682
9678
  type: Component,
@@ -9707,7 +9703,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
9707
9703
  SearchHighlightPipe,
9708
9704
  FdTranslatePipe,
9709
9705
  MultiAnnouncerDirective
9710
- ], template: "<div class=\"fdp-multi-combobox\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n } @else {\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list fdp-multi-combobox__list-container\"\n (isOpenChange)=\"popoverOpenChangeHandle($event)\"\n [isOpen]=\"isOpen\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [style.width.%]=\"!autoResize && 100\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)()\"\n [iconTitle]=\"addonIconTitle || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)()\"\n (addOnButtonClicked)=\"_addOnClicked($event)\"\n (click)=\"mobile && !isOpen && onPrimaryButtonClick(false)\"\n (keydown)=\"navigateByTokens($event)\"\n >\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"true\"\n [tokenizerFocusable]=\"false\"\n [showOverflowPopover]=\"false\"\n class=\"fdp-multi-combobox-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"_suggestions\"\n >\n @for (token of _selectedSuggestions; track token) {\n <fd-token [readOnly]=\"disabled\" (onCloseClick)=\"removeToken(token, $event)\">\n {{ token.label }}\n </fd-token>\n }\n <input\n #searchInputElement\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [attr.placeholder]=\"_selectedSuggestions.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"!mobile && onBlur($event); tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-required]=\"required\"\n class=\"fd-tokenizer__input fd-input-group__input\"\n />\n </fd-tokenizer>\n </fd-input-group>\n @if (mobile && isOpen ? false : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #mobileControlTemplate>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"false\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel\"\n >\n <input\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"!mobile && onBlur($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-multi-combobox__list fd-list--multi-input\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [style.max-height]=\"!mobile && maxHeight\"\n [style.min-width]=\"!mobile && minWidth + 'px'\"\n [style.max-width]=\"autoResize && maxWidth + 'px'\"\n [attr.aria-labelledby]=\"id + '-search'\"\n aria-multiselectable=\"true\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li fd-list-message tabindex=\"-1\" role=\"presentation\" [type]=\"state || 'default'\">\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <label fd-list-item fd-list-group-header role=\"group\">\n <span fd-list-title>{{ group.label }}</span>\n </label>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keyDown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keydown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (optionItem.selected && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(optionItem.selected && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span\n fd-list-title\n [attr.title]=\"optionItem.label\"\n [innerHTML]=\"optionItem.label | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fd-margin--tiny{margin-block:.5rem;margin-inline:.5rem}.fd-margin--sm{margin-block:1rem;margin-inline:1rem}.fd-margin--md{margin-block:2rem;margin-inline:2rem}.fd-margin--lg{margin-block:3rem;margin-inline:3rem}.fd-margin--none{margin-block:0;margin-inline:0}.fd-margin-top--tiny{-webkit-margin-before:.5rem;margin-block-start:.5rem}.fd-margin-top--sm{-webkit-margin-before:1rem;margin-block-start:1rem}.fd-margin-top--md{-webkit-margin-before:2rem;margin-block-start:2rem}.fd-margin-top--lg{-webkit-margin-before:3rem;margin-block-start:3rem}.fd-margin-top--none{-webkit-margin-before:0;margin-block-start:0}.fd-margin-end--tiny{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-margin-end--sm{-webkit-margin-end:1rem;margin-inline-end:1rem}.fd-margin-end--md{-webkit-margin-end:2rem;margin-inline-end:2rem}.fd-margin-end--lg{-webkit-margin-end:3rem;margin-inline-end:3rem}.fd-margin-end--none{-webkit-margin-end:0;margin-inline-end:0}.fd-margin-bottom--tiny{-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-margin-bottom--sm{-webkit-margin-after:1rem;margin-block-end:1rem}.fd-margin-bottom--md{-webkit-margin-after:2rem;margin-block-end:2rem}.fd-margin-bottom--lg{-webkit-margin-after:3rem;margin-block-end:3rem}.fd-margin-bottom--none{-webkit-margin-after:0;margin-block-end:0}.fd-margin-begin--tiny{-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-margin-begin--sm{-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-margin-begin--md{-webkit-margin-start:2rem;margin-inline-start:2rem}.fd-margin-begin--lg{-webkit-margin-start:3rem;margin-inline-start:3rem}.fd-margin-begin--none{-webkit-margin-start:0;margin-inline-start:0}.fd-margin-top-bottom--tiny{margin-block:.5rem}.fd-margin-top-bottom--sm{margin-block:1rem}.fd-margin-top-bottom--md{margin-block:2rem}.fd-margin-top-bottom--lg{margin-block:3rem}.fd-margin-begin-end--tiny{margin-inline:.5rem}.fd-margin-begin-end--sm{margin-inline:1rem}.fd-margin-begin-end--md{margin-inline:2rem}.fd-margin-begin-end--lg{margin-inline:3rem}.fd-margin-responsive--sm{margin-block:0 1rem;margin-inline:0}.fd-margin-responsive--md{margin-block:1rem;margin-inline:1rem}.fd-margin-responsive--lg{margin-block:1rem;margin-inline:2rem}.fd-margin-responsive--xl{margin-block:1rem;margin-inline:3rem}.fd-margin-negative-begin-end--tiny{margin-block:0;margin-inline:-.5rem}.fd-margin-negative-begin-end--sm{margin-block:0;margin-inline:-1rem}.fd-margin-negative-begin-end--md{margin-block:0;margin-inline:-2rem}.fd-margin-negative-begin-end--lg{margin-block:0;margin-inline:-3rem}.fdp-multi-combobox-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fdp-multi-combobox-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fdp-multi-combobox-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fdp-multi-combobox-tokenizer-custom[class*=--compact],.fdp-multi-combobox-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-combobox__list-container .fd-list .fd-list__item.fd-list__group-header{padding:0 1rem}.fdp-multi-combobox__list-container .fd-list .fd-list__item .fd-list__title{max-width:inherit}.fdp-multi-combobox__list-container .fd-list.fd-list--compact .fd-list__item.fd-list__group-header{padding:0 .5rem}\n/*! Bundled license information:\n\nfundamental-styles/dist/margins.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
9706
+ ], template: "<div class=\"fdp-multi-combobox\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n } @else {\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list fdp-multi-combobox__list-container\"\n (isOpenChange)=\"popoverOpenChangeHandle($event)\"\n [isOpen]=\"isOpen\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [style.width.%]=\"!autoResize && 100\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #controlTemplate>\n <fd-form-input-message-group>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"!readonly\"\n [glyph]=\"!readonly ? 'navigation-down-arrow' : ' '\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"addonIconTitle || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"_addOnClicked($event)\"\n (click)=\"mobile && !isOpen && onPrimaryButtonClick(false)\"\n (keydown)=\"navigateByTokens($event)\"\n >\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"true\"\n [tokenizerFocusable]=\"false\"\n [showOverflowPopover]=\"false\"\n class=\"fdp-multi-combobox-tokenizer-custom\"\n (moreClickedEvent)=\"moreClicked()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"_suggestions\"\n >\n @for (token of _selectedSuggestions; track token) {\n <fd-token [readOnly]=\"disabled\" (onCloseClick)=\"removeToken(token, $event)\">\n {{ token.label }}\n </fd-token>\n }\n <input\n #searchInputElement\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [attr.placeholder]=\"_selectedSuggestions.length ? null : placeholder\"\n (focus)=\"onTouched(); tokenizer._showAllTokens()\"\n (blur)=\"!mobile && onBlur($event); tokenizer._hideTokens()\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-required]=\"required\"\n class=\"fd-tokenizer__input fd-input-group__input\"\n />\n </fd-tokenizer>\n </fd-input-group>\n @if (mobile && isOpen ? false : !!stateMessage) {\n <fd-form-message [type]=\"state\" [innerHtml]=\"stateMessage\"></fd-form-message>\n }\n </fd-form-input-message-group>\n</ng-template>\n<ng-template #mobileControlTemplate>\n <fd-input-group\n [id]=\"id + '-input-group-container'\"\n class=\"fdp-multi-combobox-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"false\"\n [isControl]=\"true\"\n [disabled]=\"disabled || readonly\"\n [isExpanded]=\"!mobile && isOpen && _suggestions.length > 0\"\n [attr.aria-disabled]=\"disabled || readonly\"\n [attr.aria-readonly]=\"readonly\"\n [glyphAriaLabel]=\"ariaLabel\"\n >\n <input\n fdp-auto-complete\n (onComplete)=\"onCompleteTerm($event)\"\n [options]=\"_suggestions\"\n [inputText]=\"inputText\"\n [mobile]=\"mobile\"\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [ariaLabel]=\"ariaLabel || ('coreMultiComboBox.multiComboBoxAriaLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? id + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n fd-form-control\n fd-input-group-input\n tabindex=\"0\"\n [id]=\"id\"\n [name]=\"name\"\n (keydown)=\"onInputKeydownHandler($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"searchTermChanged()\"\n [placeholder]=\"placeholder\"\n (focus)=\"onTouched()\"\n (blur)=\"!mobile && onBlur($event)\"\n [attr.aria-expanded]=\"isOpen\"\n [readonly]=\"readonly\"\n [attr.aria-readonly]=\"readonly\"\n />\n </fd-input-group>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [dropdownMode]=\"true\"\n class=\"fdp-multi-combobox__list fd-list--multi-input\"\n [hasMessage]=\"!!stateMessage || (!!advancedStateMessage?.hasErrors && !!advancedStateMessage?.template)\"\n [id]=\"id + '-result'\"\n role=\"listbox\"\n [style.max-height]=\"!mobile && maxHeight\"\n [style.min-width]=\"!mobile && minWidth + 'px'\"\n [style.max-width]=\"autoResize && maxWidth + 'px'\"\n [attr.aria-labelledby]=\"id + '-search'\"\n aria-multiselectable=\"true\"\n (keydown.tab)=\"close()\"\n (keydown.escape)=\"close()\"\n >\n @if (stateMessage) {\n <li\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n }\n @if (advancedStateMessage?.hasErrors && advancedStateMessage?.template) {\n <li fd-list-message tabindex=\"-1\" role=\"presentation\" [type]=\"state || 'default'\">\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n }\n <ng-content></ng-content>\n @if (isGroup) {\n @for (group of _suggestions; track group) {\n @if (!groupItemTemplate) {\n <label fd-list-item fd-list-group-header role=\"group\">\n <span fd-list-title>{{ group.label }}</span>\n </label>\n }\n @if (groupItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n }\n @for (optionItem of group.children; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keyDown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (optionItem of _suggestions; track optionItem) {\n <li\n fd-list-item\n role=\"option\"\n (click)=\"!mobile && onOptionClicked($event, $index)\"\n (keydown)=\"onItemKeyDownHandler($event)\"\n [selected]=\"!!optionItem.selected\"\n >\n <fd-checkbox\n (click)=\"onOptionCheckboxClicked($event, $index)\"\n (ngModelChange)=\"toggleSelection(optionItem)\"\n [ngModel]=\"optionItem.selected\"\n >\n </fd-checkbox>\n <ng-template\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: $index }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n @if (optionItem.selected && !!selectedItemTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n @if (!(optionItem.selected && selectedItemTemplate)) {\n <ng-template\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-template>\n <ng-template\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n @if (!optionItemTemplate) {\n <span\n fd-list-title\n [attr.title]=\"optionItem.label\"\n [innerHTML]=\"optionItem.label | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n @if (showSecondaryText) {\n @if (!secondaryItemTemplate) {\n <span\n [style.text-align]=\"secondaryTextAlignment\"\n fd-list-secondary\n [attr.title]=\"optionItem.secondaryText\"\n [innerHTML]=\"optionItem.secondaryText | highlight: inputText\"\n ></span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n }\n }\n</ng-template>\n", styles: [".fd-margin--tiny{margin-block:.5rem;margin-inline:.5rem}.fd-margin--sm{margin-block:1rem;margin-inline:1rem}.fd-margin--md{margin-block:2rem;margin-inline:2rem}.fd-margin--lg{margin-block:3rem;margin-inline:3rem}.fd-margin--none{margin-block:0;margin-inline:0}.fd-margin-top--tiny{-webkit-margin-before:.5rem;margin-block-start:.5rem}.fd-margin-top--sm{-webkit-margin-before:1rem;margin-block-start:1rem}.fd-margin-top--md{-webkit-margin-before:2rem;margin-block-start:2rem}.fd-margin-top--lg{-webkit-margin-before:3rem;margin-block-start:3rem}.fd-margin-top--none{-webkit-margin-before:0;margin-block-start:0}.fd-margin-end--tiny{-webkit-margin-end:.5rem;margin-inline-end:.5rem}.fd-margin-end--sm{-webkit-margin-end:1rem;margin-inline-end:1rem}.fd-margin-end--md{-webkit-margin-end:2rem;margin-inline-end:2rem}.fd-margin-end--lg{-webkit-margin-end:3rem;margin-inline-end:3rem}.fd-margin-end--none{-webkit-margin-end:0;margin-inline-end:0}.fd-margin-bottom--tiny{-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-margin-bottom--sm{-webkit-margin-after:1rem;margin-block-end:1rem}.fd-margin-bottom--md{-webkit-margin-after:2rem;margin-block-end:2rem}.fd-margin-bottom--lg{-webkit-margin-after:3rem;margin-block-end:3rem}.fd-margin-bottom--none{-webkit-margin-after:0;margin-block-end:0}.fd-margin-begin--tiny{-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-margin-begin--sm{-webkit-margin-start:1rem;margin-inline-start:1rem}.fd-margin-begin--md{-webkit-margin-start:2rem;margin-inline-start:2rem}.fd-margin-begin--lg{-webkit-margin-start:3rem;margin-inline-start:3rem}.fd-margin-begin--none{-webkit-margin-start:0;margin-inline-start:0}.fd-margin-top-bottom--tiny{margin-block:.5rem}.fd-margin-top-bottom--sm{margin-block:1rem}.fd-margin-top-bottom--md{margin-block:2rem}.fd-margin-top-bottom--lg{margin-block:3rem}.fd-margin-begin-end--tiny{margin-inline:.5rem}.fd-margin-begin-end--sm{margin-inline:1rem}.fd-margin-begin-end--md{margin-inline:2rem}.fd-margin-begin-end--lg{margin-inline:3rem}.fd-margin-responsive--sm{margin-block:0 1rem;margin-inline:0}.fd-margin-responsive--md{margin-block:1rem;margin-inline:1rem}.fd-margin-responsive--lg{margin-block:1rem;margin-inline:2rem}.fd-margin-responsive--xl{margin-block:1rem;margin-inline:3rem}.fd-margin-negative-begin-end--tiny{margin-block:0;margin-inline:-.5rem}.fd-margin-negative-begin-end--sm{margin-block:0;margin-inline:-1rem}.fd-margin-negative-begin-end--md{margin-block:0;margin-inline:-2rem}.fd-margin-negative-begin-end--lg{margin-block:0;margin-inline:-3rem}.fdp-multi-combobox-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fdp-multi-combobox-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fdp-multi-combobox-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fdp-multi-combobox-tokenizer-custom[class*=--compact],.fdp-multi-combobox-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fdp-multi-combobox__list-container .fd-list .fd-list__item.fd-list__group-header{padding:0 1rem}.fdp-multi-combobox__list-container .fd-list .fd-list__item .fd-list__title{max-width:inherit}.fdp-multi-combobox__list-container .fd-list.fd-list--compact .fd-list__item.fd-list__group-header{padding:0 .5rem}\n/*! Bundled license information:\n\nfundamental-styles/dist/margins.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
9711
9707
  }], ctorParameters: () => [{ type: i2.DynamicComponentService }, { type: Map, decorators: [{
9712
9708
  type: Optional
9713
9709
  }, {
@@ -10644,7 +10640,7 @@ class PlatformTimePickerComponent extends BaseInput {
10644
10640
  this.onTouched();
10645
10641
  }
10646
10642
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10647
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: PlatformTimePickerComponent, isStandalone: true, selector: "fdp-time-picker", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, time: { classPropertyName: "time", publicName: "time", isSignal: false, isRequired: false, transformFunction: null }, spinnerButtons: { classPropertyName: "spinnerButtons", publicName: "spinnerButtons", isSignal: false, isRequired: false, transformFunction: null }, meridian: { classPropertyName: "meridian", publicName: "meridian", isSignal: false, isRequired: false, transformFunction: null }, displaySeconds: { classPropertyName: "displaySeconds", publicName: "displaySeconds", isSignal: false, isRequired: false, transformFunction: null }, displayMinutes: { classPropertyName: "displayMinutes", publicName: "displayMinutes", isSignal: false, isRequired: false, transformFunction: null }, displayHours: { classPropertyName: "displayHours", publicName: "displayHours", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, timePickerInputLabel: { classPropertyName: "timePickerInputLabel", publicName: "timePickerInputLabel", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: "allowNull", publicName: "allowNull", isSignal: false, isRequired: false, transformFunction: null }, tablet: { classPropertyName: "tablet", publicName: "tablet", isSignal: false, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, buttonFocusable: { classPropertyName: "buttonFocusable", publicName: "buttonFocusable", isSignal: false, isRequired: false, transformFunction: null }, useValidation: { classPropertyName: "useValidation", publicName: "useValidation", isSignal: false, isRequired: false, transformFunction: null }, keepTwoDigitsTime: { classPropertyName: "keepTwoDigitsTime", publicName: "keepTwoDigitsTime", isSignal: false, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: false, isRequired: false, transformFunction: null }, parseFormat: { classPropertyName: "parseFormat", publicName: "parseFormat", isSignal: false, isRequired: false, transformFunction: null }, minuteStep: { classPropertyName: "minuteStep", publicName: "minuteStep", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpenChange: "isOpenChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformTimePickerComponent, multi: true }], viewQueries: [{ propertyName: "timePickerComponent", first: true, predicate: TimePickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-time-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [required]=\"required\"\n [time]=\"time\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displayFormat]=\"displayFormat\"\n [spinnerButtons]=\"spinnerButtons\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [minuteStep]=\"minuteStep()\"\n [placeholder]=\"placeholder\"\n [timePickerInputLabel]=\"timePickerInputLabel\"\n [allowNull]=\"allowNull\"\n [tablet]=\"tablet\"\n [placement]=\"placement\"\n [parseFormat]=\"parseFormat\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [useValidation]=\"useValidation\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (ngModelChange)=\"handleTimeChange($event)\"\n [(ngModel)]=\"value\"\n>\n <ng-content></ng-content>\n</fd-time-picker>\n", dependencies: [{ kind: "component", type: TimePickerComponent, selector: "fd-time-picker", inputs: ["time", "inputId", "disabled", "required", "spinnerButtons", "meridian", "displaySeconds", "displayMinutes", "displayHours", "placeholder", "timePickerInputLabel", "timePickerButtonLabel", "ariaLabelledBy", "allowNull", "tablet", "message", "messageType", "messageTriggers", "placement", "useValidation", "state", "buttonFocusable", "keepTwoDigitsTime", "displayFormat", "parseFormat", "minuteStep"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10643
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: PlatformTimePickerComponent, isStandalone: true, selector: "fdp-time-picker", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, time: { classPropertyName: "time", publicName: "time", isSignal: false, isRequired: false, transformFunction: null }, spinnerButtons: { classPropertyName: "spinnerButtons", publicName: "spinnerButtons", isSignal: false, isRequired: false, transformFunction: null }, meridian: { classPropertyName: "meridian", publicName: "meridian", isSignal: false, isRequired: false, transformFunction: null }, displaySeconds: { classPropertyName: "displaySeconds", publicName: "displaySeconds", isSignal: false, isRequired: false, transformFunction: null }, displayMinutes: { classPropertyName: "displayMinutes", publicName: "displayMinutes", isSignal: false, isRequired: false, transformFunction: null }, displayHours: { classPropertyName: "displayHours", publicName: "displayHours", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, timePickerInputLabel: { classPropertyName: "timePickerInputLabel", publicName: "timePickerInputLabel", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: "allowNull", publicName: "allowNull", isSignal: false, isRequired: false, transformFunction: null }, tablet: { classPropertyName: "tablet", publicName: "tablet", isSignal: false, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, buttonFocusable: { classPropertyName: "buttonFocusable", publicName: "buttonFocusable", isSignal: false, isRequired: false, transformFunction: null }, useValidation: { classPropertyName: "useValidation", publicName: "useValidation", isSignal: false, isRequired: false, transformFunction: null }, keepTwoDigitsTime: { classPropertyName: "keepTwoDigitsTime", publicName: "keepTwoDigitsTime", isSignal: false, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: false, isRequired: false, transformFunction: null }, parseFormat: { classPropertyName: "parseFormat", publicName: "parseFormat", isSignal: false, isRequired: false, transformFunction: null }, minuteStep: { classPropertyName: "minuteStep", publicName: "minuteStep", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpenChange: "isOpenChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: PlatformTimePickerComponent, multi: true }], viewQueries: [{ propertyName: "timePickerComponent", first: true, predicate: TimePickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-time-picker\n [attr.aria-label]=\"ariaLabel\"\n [attr.ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.ariaDescribedBy]=\"ariaDescribedBy\"\n [inputId]=\"id\"\n [required]=\"required\"\n [time]=\"time\"\n [meridian]=\"meridian\"\n [disabled]=\"disabled\"\n [displayFormat]=\"displayFormat\"\n [spinnerButtons]=\"spinnerButtons\"\n [displaySeconds]=\"displaySeconds\"\n [displayMinutes]=\"displayMinutes\"\n [displayHours]=\"displayHours\"\n [minuteStep]=\"minuteStep()\"\n [placeholder]=\"placeholder\"\n [timePickerInputLabel]=\"timePickerInputLabel\"\n [allowNull]=\"allowNull\"\n [tablet]=\"tablet\"\n [placement]=\"placement\"\n [parseFormat]=\"parseFormat\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [useValidation]=\"useValidation\"\n [keepTwoDigitsTime]=\"keepTwoDigitsTime\"\n (isOpenChange)=\"handleOpenChange($event)\"\n (ngModelChange)=\"handleTimeChange($event)\"\n [(ngModel)]=\"value\"\n>\n <ng-content></ng-content>\n</fd-time-picker>\n", dependencies: [{ kind: "component", type: TimePickerComponent, selector: "fd-time-picker", inputs: ["time", "inputId", "disabled", "required", "spinnerButtons", "meridian", "displaySeconds", "displayMinutes", "displayHours", "placeholder", "timePickerInputLabel", "timePickerButtonLabel", "ariaLabelledBy", "allowNull", "tablet", "message", "messageType", "messageTriggers", "placement", "useValidation", "state", "buttonFocusable", "keepTwoDigitsTime", "displayFormat", "parseFormat", "valueStateSuccessMessage", "valueStateInformationMessage", "valueStateWarningMessage", "valueStateErrorMessage", "minuteStep"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10648
10644
  }
10649
10645
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformTimePickerComponent, decorators: [{
10650
10646
  type: Component,