@fundamental-ngx/platform 0.46.2-rc.6 → 0.46.2-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ContentChild, InjectionToken, Directive, Injectable, Inject, forwardRef, EventEmitter, TemplateRef, ElementRef, Optional, Self, SkipSelf, Output, ViewChild, ContentChildren, ViewChildren, Host, NgModule, Attribute, HostListener, Injector, Pipe, isDevMode, LOCALE_ID } from '@angular/core';
3
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ContentChild, InjectionToken, Directive, Injectable, Inject, forwardRef, EventEmitter, TemplateRef, ElementRef, Optional, Self, SkipSelf, Output, ViewChild, ContentChildren, ViewChildren, Host, NgModule, Attribute, HostListener, Injector, Pipe, inject, isDevMode, LOCALE_ID } from '@angular/core';
4
4
  import * as i1$1 from '@angular/forms';
5
5
  import { Validators, FormControl, FormGroup, FormsModule, ReactiveFormsModule, NgForm, NgControl, FormGroupDirective } from '@angular/forms';
6
6
  import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
@@ -6373,37 +6373,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
6373
6373
  }]
6374
6374
  }] });
6375
6375
 
6376
- /**
6377
- * Default options for Combobox
6378
- */
6379
- class ComboboxConfig {
6380
- /**
6381
- * Create Provider factory function
6382
- */
6383
- static createProviderFactory(obj) {
6384
- const useFactory = (platformConfig) => Object.assign(new ComboboxConfig(platformConfig), obj);
6385
- return useFactory;
6386
- }
6387
- /** @hidden */
6388
- constructor(platformConfig) {
6389
- /**
6390
- * String matching strategy for typeahead list. Default: 'starts with per term'
6391
- */
6392
- this.matchingStrategy = MatchingStrategy.STARTS_WITH_PER_TERM;
6393
- /**
6394
- * Maps data providers
6395
- */
6396
- this.providers = new Map();
6397
- this.contentDensity = platformConfig.contentDensity;
6398
- }
6399
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxConfig, deps: [{ token: i1.PlatformConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
6400
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxConfig, providedIn: 'root' }); }
6401
- }
6402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxConfig, decorators: [{
6403
- type: Injectable,
6404
- args: [{ providedIn: 'root' }]
6405
- }], ctorParameters: function () { return [{ type: i1.PlatformConfig }]; } });
6406
-
6407
6376
  const COMBOBOX_COMPONENT = new InjectionToken('ComboboxInterface');
6408
6377
 
6409
6378
  class ComboboxMobileComponent extends MobileModeBase {
@@ -6499,6 +6468,196 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
6499
6468
  args: ['dialogTemplate']
6500
6469
  }] } });
6501
6470
 
6471
+ class PlatformComboboxMobileModule {
6472
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6473
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, imports: [ComboboxMobileComponent], exports: [ComboboxMobileComponent] }); }
6474
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, imports: [ComboboxMobileComponent] }); }
6475
+ }
6476
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, decorators: [{
6477
+ type: NgModule,
6478
+ args: [{
6479
+ imports: [ComboboxMobileComponent],
6480
+ exports: [ComboboxMobileComponent]
6481
+ }]
6482
+ }] });
6483
+
6484
+ /**
6485
+ * Default options for Combobox
6486
+ */
6487
+ class ComboboxConfig {
6488
+ /**
6489
+ * Create Provider factory function
6490
+ */
6491
+ static createProviderFactory(obj) {
6492
+ const useFactory = (platformConfig) => Object.assign(new ComboboxConfig(platformConfig), obj);
6493
+ return useFactory;
6494
+ }
6495
+ /** @hidden */
6496
+ constructor(platformConfig) {
6497
+ /**
6498
+ * String matching strategy for typeahead list. Default: 'starts with per term'
6499
+ */
6500
+ this.matchingStrategy = MatchingStrategy.STARTS_WITH_PER_TERM;
6501
+ /**
6502
+ * Maps data providers
6503
+ */
6504
+ this.providers = new Map();
6505
+ this.contentDensity = platformConfig.contentDensity;
6506
+ }
6507
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxConfig, deps: [{ token: i1.PlatformConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
6508
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxConfig, providedIn: 'root' }); }
6509
+ }
6510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxConfig, decorators: [{
6511
+ type: Injectable,
6512
+ args: [{ providedIn: 'root' }]
6513
+ }], ctorParameters: function () { return [{ type: i1.PlatformConfig }]; } });
6514
+
6515
+ const FDP_COMBOBOX_ITEM_DEF = new InjectionToken('FdpComboboxItemDefinition');
6516
+ class FdpComboboxItemDef {
6517
+ constructor() {
6518
+ /** @hidden */
6519
+ this.templateRef = inject((TemplateRef));
6520
+ }
6521
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FdpComboboxItemDef, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6522
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: FdpComboboxItemDef, ngImport: i0 }); }
6523
+ }
6524
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FdpComboboxItemDef, decorators: [{
6525
+ type: Directive
6526
+ }] });
6527
+ class ComboboxItemDirective extends FdpComboboxItemDef {
6528
+ constructor() {
6529
+ super(...arguments);
6530
+ /** @hidden */
6531
+ this.name = 'optionItemTemplate';
6532
+ }
6533
+ /** @hidden */
6534
+ static ngTemplateContextGuard(dir, ctx) {
6535
+ return true;
6536
+ }
6537
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6538
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: ComboboxItemDirective, isStandalone: true, selector: "[fdpComboboxItem]", inputs: { useModel: ["fdpComboboxItemUse", "useModel"] }, providers: [
6539
+ {
6540
+ provide: FDP_COMBOBOX_ITEM_DEF,
6541
+ useExisting: ComboboxItemDirective
6542
+ }
6543
+ ], usesInheritance: true, ngImport: i0 }); }
6544
+ }
6545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxItemDirective, decorators: [{
6546
+ type: Directive,
6547
+ args: [{
6548
+ selector: '[fdpComboboxItem]',
6549
+ standalone: true,
6550
+ providers: [
6551
+ {
6552
+ provide: FDP_COMBOBOX_ITEM_DEF,
6553
+ useExisting: ComboboxItemDirective
6554
+ }
6555
+ ]
6556
+ }]
6557
+ }], propDecorators: { useModel: [{
6558
+ type: Input,
6559
+ args: ['fdpComboboxItemUse']
6560
+ }] } });
6561
+ class ComboboxSelectedItemDirective extends FdpComboboxItemDef {
6562
+ constructor() {
6563
+ super(...arguments);
6564
+ /** @hidden */
6565
+ this.name = 'selectedItemTemplate';
6566
+ }
6567
+ /** @hidden */
6568
+ static ngTemplateContextGuard(dir, ctx) {
6569
+ return true;
6570
+ }
6571
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxSelectedItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6572
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: ComboboxSelectedItemDirective, isStandalone: true, selector: "[fdpComboboxSelectedItem]", inputs: { useModel: ["fdpComboboxSelectedItemUse", "useModel"] }, providers: [
6573
+ {
6574
+ provide: FDP_COMBOBOX_ITEM_DEF,
6575
+ useExisting: ComboboxSelectedItemDirective
6576
+ }
6577
+ ], usesInheritance: true, ngImport: i0 }); }
6578
+ }
6579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxSelectedItemDirective, decorators: [{
6580
+ type: Directive,
6581
+ args: [{
6582
+ selector: '[fdpComboboxSelectedItem]',
6583
+ standalone: true,
6584
+ providers: [
6585
+ {
6586
+ provide: FDP_COMBOBOX_ITEM_DEF,
6587
+ useExisting: ComboboxSelectedItemDirective
6588
+ }
6589
+ ]
6590
+ }]
6591
+ }], propDecorators: { useModel: [{
6592
+ type: Input,
6593
+ args: ['fdpComboboxSelectedItemUse']
6594
+ }] } });
6595
+ class ComboboxItemGroupDirective extends FdpComboboxItemDef {
6596
+ constructor() {
6597
+ super(...arguments);
6598
+ /** @hidden */
6599
+ this.name = 'groupItemTemplate';
6600
+ }
6601
+ /** @hidden */
6602
+ static ngTemplateContextGuard(dir, ctx) {
6603
+ return true;
6604
+ }
6605
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxItemGroupDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6606
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: ComboboxItemGroupDirective, isStandalone: true, selector: "[fdpComboboxGroup]", providers: [
6607
+ {
6608
+ provide: FDP_COMBOBOX_ITEM_DEF,
6609
+ useExisting: ComboboxItemGroupDirective
6610
+ }
6611
+ ], usesInheritance: true, ngImport: i0 }); }
6612
+ }
6613
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxItemGroupDirective, decorators: [{
6614
+ type: Directive,
6615
+ args: [{
6616
+ selector: '[fdpComboboxGroup]',
6617
+ standalone: true,
6618
+ providers: [
6619
+ {
6620
+ provide: FDP_COMBOBOX_ITEM_DEF,
6621
+ useExisting: ComboboxItemGroupDirective
6622
+ }
6623
+ ]
6624
+ }]
6625
+ }] });
6626
+ class ComboboxSecondaryItemDirective extends FdpComboboxItemDef {
6627
+ constructor() {
6628
+ super(...arguments);
6629
+ /** @hidden */
6630
+ this.name = 'secondaryItemTemplate';
6631
+ }
6632
+ /** @hidden */
6633
+ static ngTemplateContextGuard(dir, ctx) {
6634
+ return true;
6635
+ }
6636
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxSecondaryItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6637
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: ComboboxSecondaryItemDirective, isStandalone: true, selector: "[fdpComboboxSecondaryItem]", inputs: { useModel: ["fdpComboboxSecondaryItemUse", "useModel"] }, providers: [
6638
+ {
6639
+ provide: FDP_COMBOBOX_ITEM_DEF,
6640
+ useExisting: ComboboxSecondaryItemDirective
6641
+ }
6642
+ ], usesInheritance: true, ngImport: i0 }); }
6643
+ }
6644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxSecondaryItemDirective, decorators: [{
6645
+ type: Directive,
6646
+ args: [{
6647
+ selector: '[fdpComboboxSecondaryItem]',
6648
+ standalone: true,
6649
+ providers: [
6650
+ {
6651
+ provide: FDP_COMBOBOX_ITEM_DEF,
6652
+ useExisting: ComboboxSecondaryItemDirective
6653
+ }
6654
+ ]
6655
+ }]
6656
+ }], propDecorators: { useModel: [{
6657
+ type: Input,
6658
+ args: ['fdpComboboxSecondaryItemUse']
6659
+ }] } });
6660
+
6502
6661
  class BaseCombobox extends CollectionBaseInput {
6503
6662
  /** Datasource for suggestion list */
6504
6663
  set dataSource(value) {
@@ -6669,10 +6828,10 @@ class BaseCombobox extends CollectionBaseInput {
6669
6828
  return;
6670
6829
  }
6671
6830
  this.inputText = text;
6672
- const map = new Map();
6673
- map.set('query', text);
6674
- map.set('limit', 12);
6675
- this.ds.match(map);
6831
+ const queryMap = new Map();
6832
+ queryMap.set('query', text);
6833
+ queryMap.set('limit', 12);
6834
+ this.ds.match(queryMap);
6676
6835
  }
6677
6836
  /** @hidden */
6678
6837
  isOpenChangeHandle(isOpen) {
@@ -6875,10 +7034,10 @@ class BaseCombobox extends CollectionBaseInput {
6875
7034
  initDataSource.dataProvider.setMatchingBy(matchingBy);
6876
7035
  initDataSource.dataProvider.setMatchingStrategy(this._matchingStrategy);
6877
7036
  // initial data fetch
6878
- const map = new Map();
6879
- map.set('query', '*');
6880
- map.set('limit', 12);
6881
- initDataSource.match(map);
7037
+ const queryMap = new Map();
7038
+ queryMap.set('query', '*');
7039
+ queryMap.set('limit', 12);
7040
+ initDataSource.match(queryMap);
6882
7041
  return initDataSource;
6883
7042
  }
6884
7043
  /** @hidden */
@@ -7025,25 +7184,29 @@ class BaseCombobox extends CollectionBaseInput {
7025
7184
  }
7026
7185
  /** @hidden Assign custom templates */
7027
7186
  _assignCustomTemplates() {
7028
- this.customTemplates.forEach((template) => {
7029
- switch (template.name) {
7030
- case 'optionItemTemplate':
7031
- this.optionItemTemplate = template.templateRef;
7032
- break;
7033
- case 'groupItemTemplate':
7034
- this.groupItemTemplate = template.templateRef;
7035
- break;
7036
- case 'secondaryItemTemplate':
7037
- this.secondaryItemTemplate = template.templateRef;
7038
- break;
7039
- case 'selectedItemTemplate':
7040
- this.selectedItemTemplate = template.templateRef;
7041
- break;
7042
- }
7187
+ combineLatest([this._customTemplates.changes, this._customItemDef.changes])
7188
+ .pipe(startWith(null), map(() => this._customItemDef.length > 0 ? this._customItemDef.toArray() : this._customTemplates.toArray()), takeUntil(this._destroyed))
7189
+ .subscribe((data) => {
7190
+ data.forEach((template) => {
7191
+ switch (template.name) {
7192
+ case 'optionItemTemplate':
7193
+ this.optionItemTemplate = template.templateRef;
7194
+ break;
7195
+ case 'groupItemTemplate':
7196
+ this.groupItemTemplate = template.templateRef;
7197
+ break;
7198
+ case 'secondaryItemTemplate':
7199
+ this.secondaryItemTemplate = template.templateRef;
7200
+ break;
7201
+ case 'selectedItemTemplate':
7202
+ this.selectedItemTemplate = template.templateRef;
7203
+ break;
7204
+ }
7205
+ });
7043
7206
  });
7044
7207
  }
7045
7208
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseCombobox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$1.NgControl, optional: true, self: true }, { token: i1$1.ControlContainer, optional: true, skipSelf: true }, { token: i1$1.NgForm, optional: true, self: true }, { token: i1$2.DialogConfig, optional: true }, { token: ComboboxConfig }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
7046
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: BaseCombobox, inputs: { maxHeight: "maxHeight", autoComplete: "autoComplete", entityClass: "entityClass", mobile: "mobile", mobileConfig: "mobileConfig", group: "group", groupKey: "groupKey", secondaryKey: "secondaryKey", showSecondaryText: "showSecondaryText", secondaryTextAlignment: "secondaryTextAlignment", autoResize: "autoResize", fillControlMode: "fillControlMode", buttonFocusable: "buttonFocusable", triggers: "triggers", closeOnOutsideClick: "closeOnOutsideClick", byline: "byline", dataSource: "dataSource", value: "value" }, outputs: { onDataRequested: "onDataRequested", onDataReceived: "onDataReceived" }, queries: [{ propertyName: "customTemplates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }], usesInheritance: true, ngImport: i0 }); }
7209
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: BaseCombobox, inputs: { maxHeight: "maxHeight", autoComplete: "autoComplete", entityClass: "entityClass", mobile: "mobile", mobileConfig: "mobileConfig", group: "group", groupKey: "groupKey", secondaryKey: "secondaryKey", showSecondaryText: "showSecondaryText", secondaryTextAlignment: "secondaryTextAlignment", autoResize: "autoResize", fillControlMode: "fillControlMode", buttonFocusable: "buttonFocusable", triggers: "triggers", closeOnOutsideClick: "closeOnOutsideClick", byline: "byline", dataSource: "dataSource", value: "value" }, outputs: { onDataRequested: "onDataRequested", onDataReceived: "onDataReceived" }, queries: [{ propertyName: "_customTemplates", predicate: TemplateDirective }, { propertyName: "_customItemDef", predicate: FDP_COMBOBOX_ITEM_DEF }], viewQueries: [{ propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }], usesInheritance: true, ngImport: i0 }); }
7047
7210
  }
7048
7211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseCombobox, decorators: [{
7049
7212
  type: Directive
@@ -7122,9 +7285,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
7122
7285
  }], listComponent: [{
7123
7286
  type: ViewChild,
7124
7287
  args: [ListComponent]
7125
- }], customTemplates: [{
7288
+ }], _customTemplates: [{
7126
7289
  type: ContentChildren,
7127
7290
  args: [TemplateDirective]
7291
+ }], _customItemDef: [{
7292
+ type: ContentChildren,
7293
+ args: [FDP_COMBOBOX_ITEM_DEF]
7128
7294
  }] } });
7129
7295
 
7130
7296
  class ComboboxSelectionChangeEvent {
@@ -7286,7 +7452,7 @@ class ComboboxComponent extends BaseCombobox {
7286
7452
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ComboboxComponent, isStandalone: true, selector: "fdp-combobox", outputs: { selectionChange: "selectionChange" }, providers: [
7287
7453
  { provide: FD_FORM_FIELD_CONTROL, useExisting: ComboboxComponent, multi: true },
7288
7454
  contentDensityObserverProviders()
7289
- ], 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-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\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-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\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]=\"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 [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 <div class=\"fdp-combobox__count-list-results\" role=\"status\" *ngIf=\"isOpen\">\n <ng-container *ngIf=\"_flatSuggestions?.length || '0' as count\">\n {{\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate : { count: count }\n }}\n </ng-container>\n </div>\n <fd-form-message\n *ngIf=\"mobile || isOpen ? null : !!stateMessage\"\n [type]=\"state\"\n [innerHtml]=\"stateMessage\"\n ></fd-form-message>\n </fd-form-input-message-group>\n</ng-template>\n\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 >\n <li\n *ngIf=\"stateMessage\"\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 <li\n *ngIf=\"advancedStateMessage?.hasErrors && advancedStateMessage?.template\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n\n <ng-content></ng-content>\n <ng-container *ngIf=\"isGroup\">\n <ng-container *ngFor=\"let group of _suggestions\">\n <ng-container *ngIf=\"!groupItemTemplate\">\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"groupItemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-container>\n </ng-container>\n\n <li\n *ngFor=\"let optionItem of group.children; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!isGroup\">\n <li\n *ngFor=\"let optionItem of _suggestions; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n <ng-container\n *ngIf=\"isSelectedOptionItem(optionItem) && !!selectedItemTemplate\"\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-container>\n\n <ng-container *ngIf=\"!(isSelectedOptionItem(optionItem) && selectedItemTemplate)\">\n <ng-container\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-container>\n\n <ng-container\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n <ng-container *ngIf=\"!optionItemTemplate\">\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight : inputText\"></span>\n </ng-container>\n\n <ng-container *ngIf=\"optionItemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n <ng-container *ngIf=\"showSecondaryText\">\n <ng-container *ngIf=\"!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 </ng-container>\n\n <ng-container *ngIf=\"secondaryItemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-container>\n </ng-container>\n </ng-container>\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: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i6.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i6.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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6$1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: i6$1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6$1.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i6$1.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6$1.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "ngmodule", type: ContentDensityModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7455
+ ], 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-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\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-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\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]=\"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 [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 <div class=\"fdp-combobox__count-list-results\" role=\"status\" *ngIf=\"isOpen\">\n <ng-container *ngIf=\"_flatSuggestions?.length || '0' as count\">\n {{\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate : { count: count }\n }}\n </ng-container>\n </div>\n <fd-form-message\n *ngIf=\"mobile || isOpen ? null : !!stateMessage\"\n [type]=\"state\"\n [innerHtml]=\"stateMessage\"\n ></fd-form-message>\n </fd-form-input-message-group>\n</ng-template>\n\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 >\n <li\n *ngIf=\"stateMessage\"\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 <li\n *ngIf=\"advancedStateMessage?.hasErrors && advancedStateMessage?.template\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n\n <ng-content></ng-content>\n <ng-container *ngIf=\"isGroup\">\n <ng-container *ngFor=\"let group of _suggestions\">\n <ng-container *ngIf=\"!groupItemTemplate; else customGroupItemTemplateRenderer\">\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n </ng-container>\n\n <ng-template #customGroupItemTemplateRenderer>\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n </ng-template>\n\n <li\n *ngFor=\"let optionItem of group.children; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!isGroup\">\n <li\n *ngFor=\"let optionItem of _suggestions; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n <ng-container\n *ngIf=\"isSelectedOptionItem(optionItem) && !!selectedItemTemplate\"\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-container>\n\n <ng-container *ngIf=\"!(isSelectedOptionItem(optionItem) && selectedItemTemplate)\">\n <ng-container\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-container>\n\n <ng-container\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n <ng-container *ngIf=\"!optionItemTemplate; else customOptinItemTemplateRenderer\">\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight : inputText\"></span>\n </ng-container>\n\n <ng-template #customOptinItemTemplateRenderer>\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n <ng-container *ngIf=\"showSecondaryText\">\n <ng-container *ngIf=\"!secondaryItemTemplate; else customSecondaryItemTemplateRenderer\">\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 </ng-container>\n\n <ng-template #customSecondaryItemTemplateRenderer>\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n </ng-template>\n </ng-container>\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: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen"], outputs: ["isOpenChange"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i6.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i6.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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6$1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: i6$1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6$1.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i6$1.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6$1.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "ngmodule", type: ContentDensityModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7290
7456
  }
7291
7457
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ComboboxComponent, decorators: [{
7292
7458
  type: Component,
@@ -7311,7 +7477,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
7311
7477
  SearchHighlightPipe,
7312
7478
  FdTranslatePipe,
7313
7479
  ContentDensityModule
7314
- ], template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\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-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\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]=\"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 [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 <div class=\"fdp-combobox__count-list-results\" role=\"status\" *ngIf=\"isOpen\">\n <ng-container *ngIf=\"_flatSuggestions?.length || '0' as count\">\n {{\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate : { count: count }\n }}\n </ng-container>\n </div>\n <fd-form-message\n *ngIf=\"mobile || isOpen ? null : !!stateMessage\"\n [type]=\"state\"\n [innerHtml]=\"stateMessage\"\n ></fd-form-message>\n </fd-form-input-message-group>\n</ng-template>\n\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 >\n <li\n *ngIf=\"stateMessage\"\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 <li\n *ngIf=\"advancedStateMessage?.hasErrors && advancedStateMessage?.template\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n\n <ng-content></ng-content>\n <ng-container *ngIf=\"isGroup\">\n <ng-container *ngFor=\"let group of _suggestions\">\n <ng-container *ngIf=\"!groupItemTemplate\">\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"groupItemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-container>\n </ng-container>\n\n <li\n *ngFor=\"let optionItem of group.children; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!isGroup\">\n <li\n *ngFor=\"let optionItem of _suggestions; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n <ng-container\n *ngIf=\"isSelectedOptionItem(optionItem) && !!selectedItemTemplate\"\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-container>\n\n <ng-container *ngIf=\"!(isSelectedOptionItem(optionItem) && selectedItemTemplate)\">\n <ng-container\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-container>\n\n <ng-container\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n <ng-container *ngIf=\"!optionItemTemplate\">\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight : inputText\"></span>\n </ng-container>\n\n <ng-container *ngIf=\"optionItemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n <ng-container *ngIf=\"showSecondaryText\">\n <ng-container *ngIf=\"!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 </ng-container>\n\n <ng-container *ngIf=\"secondaryItemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-container>\n </ng-container>\n </ng-container>\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"] }]
7480
+ ], template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\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-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"_suggestions.length === 0\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <ng-container [ngTemplateOutlet]=\"controlTemplate\"></ng-container>\n</ng-template>\n\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]=\"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 [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 <div class=\"fdp-combobox__count-list-results\" role=\"status\" *ngIf=\"isOpen\">\n <ng-container *ngIf=\"_flatSuggestions?.length || '0' as count\">\n {{\n (count === 1\n ? 'platformCombobox.countListResultsSingular'\n : 'platformCombobox.countListResultsPlural'\n ) | fdTranslate : { count: count }\n }}\n </ng-container>\n </div>\n <fd-form-message\n *ngIf=\"mobile || isOpen ? null : !!stateMessage\"\n [type]=\"state\"\n [innerHtml]=\"stateMessage\"\n ></fd-form-message>\n </fd-form-input-message-group>\n</ng-template>\n\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 >\n <li\n *ngIf=\"stateMessage\"\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 <li\n *ngIf=\"advancedStateMessage?.hasErrors && advancedStateMessage?.template\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n >\n <ng-template [ngTemplateOutlet]=\"advancedStateMessage!.template!\"></ng-template>\n </li>\n\n <ng-content></ng-content>\n <ng-container *ngIf=\"isGroup\">\n <ng-container *ngFor=\"let group of _suggestions\">\n <ng-container *ngIf=\"!groupItemTemplate; else customGroupItemTemplateRenderer\">\n <li fd-list-group-header role=\"option\">\n <span fd-list-title [attr.title]=\"group.label\">{{ group.label }}</span>\n </li>\n </ng-container>\n\n <ng-template #customGroupItemTemplateRenderer>\n <ng-template\n [ngTemplateOutlet]=\"groupItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: group.label } }\"\n ></ng-template>\n </ng-template>\n\n <li\n *ngFor=\"let optionItem of group.children; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!isGroup\">\n <li\n *ngFor=\"let optionItem of _suggestions; let i = index\"\n (click)=\"handleOptionItem(optionItem)\"\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n (keyDown)=\"handlePressEnter($event, optionItem)\"\n [selected]=\"isSelectedOptionItem(optionItem)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"listItem\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: i }\"\n ></ng-container>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #listItem>\n <ng-container\n *ngIf=\"isSelectedOptionItem(optionItem) && !!selectedItemTemplate\"\n [ngTemplateOutlet]=\"selectedItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-container>\n\n <ng-container *ngIf=\"!(isSelectedOptionItem(optionItem) && selectedItemTemplate)\">\n <ng-container\n [ngTemplateOutlet]=\"optionItemSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem, index: index }\"\n ></ng-container>\n\n <ng-container\n [ngTemplateOutlet]=\"secondaryTextSource\"\n [ngTemplateOutletContext]=\"{ optionItem: optionItem }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" let-index=\"index\" #optionItemSource>\n <ng-container *ngIf=\"!optionItemTemplate; else customOptinItemTemplateRenderer\">\n <span [attr.title]=\"optionItem.label\" [innerHTML]=\"optionItem.label | highlight : inputText\"></span>\n </ng-container>\n\n <ng-template #customOptinItemTemplateRenderer>\n <ng-template\n [ngTemplateOutlet]=\"optionItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value, index: index }\"\n ></ng-template>\n </ng-template>\n</ng-template>\n\n<ng-template let-optionItem=\"optionItem\" #secondaryTextSource>\n <ng-container *ngIf=\"showSecondaryText\">\n <ng-container *ngIf=\"!secondaryItemTemplate; else customSecondaryItemTemplateRenderer\">\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 </ng-container>\n\n <ng-template #customSecondaryItemTemplateRenderer>\n <ng-template\n [ngTemplateOutlet]=\"secondaryItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionItem.value }\"\n ></ng-template>\n </ng-template>\n </ng-container>\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"] }]
7315
7481
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$1.NgControl, decorators: [{
7316
7482
  type: Optional
7317
7483
  }, {
@@ -7362,29 +7528,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
7362
7528
  args: ['listTemplate']
7363
7529
  }] } });
7364
7530
 
7531
+ const EXPORTABLE_COMPONENTS = [
7532
+ ComboboxComponent,
7533
+ ComboboxItemDirective,
7534
+ ComboboxSelectedItemDirective,
7535
+ ComboboxItemGroupDirective,
7536
+ ComboboxSecondaryItemDirective
7537
+ ];
7365
7538
  class PlatformComboboxModule {
7366
7539
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7367
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxModule, imports: [ComboboxComponent], exports: [ComboboxComponent] }); }
7540
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxModule, imports: [ComboboxComponent,
7541
+ ComboboxItemDirective,
7542
+ ComboboxSelectedItemDirective,
7543
+ ComboboxItemGroupDirective,
7544
+ ComboboxSecondaryItemDirective], exports: [ComboboxComponent,
7545
+ ComboboxItemDirective,
7546
+ ComboboxSelectedItemDirective,
7547
+ ComboboxItemGroupDirective,
7548
+ ComboboxSecondaryItemDirective] }); }
7368
7549
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxModule, imports: [ComboboxComponent] }); }
7369
7550
  }
7370
7551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxModule, decorators: [{
7371
7552
  type: NgModule,
7372
7553
  args: [{
7373
- imports: [ComboboxComponent],
7374
- exports: [ComboboxComponent]
7375
- }]
7376
- }] });
7377
-
7378
- class PlatformComboboxMobileModule {
7379
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7380
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, imports: [ComboboxMobileComponent], exports: [ComboboxMobileComponent] }); }
7381
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, imports: [ComboboxMobileComponent] }); }
7382
- }
7383
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformComboboxMobileModule, decorators: [{
7384
- type: NgModule,
7385
- args: [{
7386
- imports: [ComboboxMobileComponent],
7387
- exports: [ComboboxMobileComponent]
7554
+ imports: [...EXPORTABLE_COMPONENTS],
7555
+ exports: [...EXPORTABLE_COMPONENTS]
7388
7556
  }]
7389
7557
  }] });
7390
7558
 
@@ -7740,6 +7908,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
7740
7908
  }]
7741
7909
  }] });
7742
7910
 
7911
+ const defaultFormGeneratorHintOptions = {
7912
+ placement: 'right',
7913
+ position: 'after',
7914
+ trigger: [
7915
+ { trigger: 'mouseenter', openAction: true, closeAction: false },
7916
+ { trigger: 'mouseleave', openAction: false, closeAction: true },
7917
+ { trigger: 'focusin', openAction: true, closeAction: false },
7918
+ { trigger: 'focusout', openAction: false, closeAction: true }
7919
+ ],
7920
+ glyph: 'hint',
7921
+ target: 'auto'
7922
+ };
7923
+
7743
7924
  /**
7744
7925
  * @description
7745
7926
  * Structural directive, which hides current form item and toggles validation rules for it.
@@ -7818,19 +7999,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
7818
7999
  type: Input
7819
8000
  }] } });
7820
8001
 
7821
- const defaultFormGeneratorHintOptions = {
7822
- placement: 'right',
7823
- position: 'after',
7824
- trigger: [
7825
- { trigger: 'mouseenter', openAction: true, closeAction: false },
7826
- { trigger: 'mouseleave', openAction: false, closeAction: true },
7827
- { trigger: 'focusin', openAction: true, closeAction: false },
7828
- { trigger: 'focusout', openAction: false, closeAction: true }
7829
- ],
7830
- glyph: 'hint',
7831
- target: 'auto'
7832
- };
7833
-
7834
8002
  const FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS = new InjectionToken('Default options for form-generator hint', {
7835
8003
  factory: () => defaultFormGeneratorHintOptions
7836
8004
  });
@@ -8413,6 +8581,57 @@ const CSS_CLASS_NAME = {
8413
8581
  };
8414
8582
  const INPUT_GROUP_CHILD_TOKEN = new InjectionToken('INPUT_GROUP_CHILD_TOKEN');
8415
8583
 
8584
+ /**
8585
+ * Fundamental input group addon body component
8586
+ */
8587
+ class InputGroupAddonBodyComponent {
8588
+ /**
8589
+ * indicates if addon contains a button
8590
+ */
8591
+ set hasButton(hasButton) {
8592
+ if (hasButton) {
8593
+ this._addClassNameToHostElement(CSS_CLASS_NAME.addonButton);
8594
+ }
8595
+ else {
8596
+ this._removeClassNameFromHostElement(CSS_CLASS_NAME.addonButton);
8597
+ }
8598
+ }
8599
+ /** @hidden */
8600
+ constructor(_elementRef, _renderer, contentDensityObserver) {
8601
+ this._elementRef = _elementRef;
8602
+ this._renderer = _renderer;
8603
+ this.contentDensityObserver = contentDensityObserver;
8604
+ contentDensityObserver.subscribe();
8605
+ }
8606
+ /** @hidden */
8607
+ ngOnInit() {
8608
+ this._addClassNameToHostElement(CSS_CLASS_NAME.addon);
8609
+ }
8610
+ /** @hidden */
8611
+ _addClassNameToHostElement(className) {
8612
+ this._renderer.addClass(this._elementRef.nativeElement, className);
8613
+ }
8614
+ /** @hidden */
8615
+ _removeClassNameFromHostElement(className) {
8616
+ this._renderer.removeClass(this._elementRef.nativeElement, className);
8617
+ }
8618
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupAddonBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i5.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }
8619
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: InputGroupAddonBodyComponent, isStandalone: true, selector: "fdp-input-group-addon-body", inputs: { hasButton: "hasButton" }, providers: [contentDensityObserverProviders()], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, dependencies: [{ kind: "ngmodule", type: ContentDensityModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8620
+ }
8621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupAddonBodyComponent, decorators: [{
8622
+ type: Component,
8623
+ args: [{
8624
+ selector: 'fdp-input-group-addon-body',
8625
+ template: '<ng-content></ng-content>',
8626
+ changeDetection: ChangeDetectionStrategy.OnPush,
8627
+ providers: [contentDensityObserverProviders()],
8628
+ imports: [ContentDensityModule],
8629
+ standalone: true
8630
+ }]
8631
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i5.ContentDensityObserver }]; }, propDecorators: { hasButton: [{
8632
+ type: Input
8633
+ }] } });
8634
+
8416
8635
  const inputGroupAddonChildProvider = {
8417
8636
  provide: INPUT_GROUP_CHILD_TOKEN,
8418
8637
  useExisting: forwardRef(() => InputGroupAddonComponent)
@@ -8501,55 +8720,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
8501
8720
  }] } });
8502
8721
 
8503
8722
  /**
8504
- * Fundamental input group addon body component
8723
+ * Default options for platform input group
8505
8724
  */
8506
- class InputGroupAddonBodyComponent {
8725
+ class InputGroupConfig {
8507
8726
  /**
8508
- * indicates if addon contains a button
8727
+ * Create Provider factory function
8509
8728
  */
8510
- set hasButton(hasButton) {
8511
- if (hasButton) {
8512
- this._addClassNameToHostElement(CSS_CLASS_NAME.addonButton);
8513
- }
8514
- else {
8515
- this._removeClassNameFromHostElement(CSS_CLASS_NAME.addonButton);
8516
- }
8517
- }
8518
- /** @hidden */
8519
- constructor(_elementRef, _renderer, contentDensityObserver) {
8520
- this._elementRef = _elementRef;
8521
- this._renderer = _renderer;
8522
- this.contentDensityObserver = contentDensityObserver;
8523
- contentDensityObserver.subscribe();
8524
- }
8525
- /** @hidden */
8526
- ngOnInit() {
8527
- this._addClassNameToHostElement(CSS_CLASS_NAME.addon);
8528
- }
8529
- /** @hidden */
8530
- _addClassNameToHostElement(className) {
8531
- this._renderer.addClass(this._elementRef.nativeElement, className);
8532
- }
8533
- /** @hidden */
8534
- _removeClassNameFromHostElement(className) {
8535
- this._renderer.removeClass(this._elementRef.nativeElement, className);
8536
- }
8537
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupAddonBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i5.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }
8538
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: InputGroupAddonBodyComponent, isStandalone: true, selector: "fdp-input-group-addon-body", inputs: { hasButton: "hasButton" }, providers: [contentDensityObserverProviders()], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, dependencies: [{ kind: "ngmodule", type: ContentDensityModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8539
- }
8540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupAddonBodyComponent, decorators: [{
8541
- type: Component,
8542
- args: [{
8543
- selector: 'fdp-input-group-addon-body',
8544
- template: '<ng-content></ng-content>',
8545
- changeDetection: ChangeDetectionStrategy.OnPush,
8546
- providers: [contentDensityObserverProviders()],
8547
- imports: [ContentDensityModule],
8548
- standalone: true
8549
- }]
8550
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i5.ContentDensityObserver }]; }, propDecorators: { hasButton: [{
8551
- type: Input
8552
- }] } });
8729
+ static createProviderFactory(obj) {
8730
+ const useFactory = (platformConfig) => Object.assign(new InputGroupConfig(platformConfig), obj);
8731
+ return useFactory;
8732
+ }
8733
+ /** @hidden */
8734
+ constructor(platformConfig) {
8735
+ this.contentDensity = platformConfig.contentDensity;
8736
+ }
8737
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupConfig, deps: [{ token: i1.PlatformConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
8738
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupConfig, providedIn: 'root' }); }
8739
+ }
8740
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupConfig, decorators: [{
8741
+ type: Injectable,
8742
+ args: [{ providedIn: 'root' }]
8743
+ }], ctorParameters: function () { return [{ type: i1.PlatformConfig }]; } });
8553
8744
 
8554
8745
  /**
8555
8746
  * fdp-input-group needs it's own input component to
@@ -8595,29 +8786,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
8595
8786
  type: Input
8596
8787
  }] } });
8597
8788
 
8598
- /**
8599
- * Default options for platform input group
8600
- */
8601
- class InputGroupConfig {
8602
- /**
8603
- * Create Provider factory function
8604
- */
8605
- static createProviderFactory(obj) {
8606
- const useFactory = (platformConfig) => Object.assign(new InputGroupConfig(platformConfig), obj);
8607
- return useFactory;
8608
- }
8609
- /** @hidden */
8610
- constructor(platformConfig) {
8611
- this.contentDensity = platformConfig.contentDensity;
8612
- }
8613
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupConfig, deps: [{ token: i1.PlatformConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
8614
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupConfig, providedIn: 'root' }); }
8615
- }
8616
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: InputGroupConfig, decorators: [{
8617
- type: Injectable,
8618
- args: [{ providedIn: 'root' }]
8619
- }], ctorParameters: function () { return [{ type: i1.PlatformConfig }]; } });
8620
-
8621
8789
  /**
8622
8790
  * Fundamental input group component
8623
8791
  *
@@ -8845,8 +9013,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
8845
9013
  args: [{ providedIn: 'root' }]
8846
9014
  }], ctorParameters: function () { return [{ type: i1.PlatformConfig }]; } });
8847
9015
 
8848
- const MULTICOMBOBOX_COMPONENT = new InjectionToken('MultiComboboxInterface');
8849
-
8850
9016
  const MAP_LIMIT = new InjectionToken('Map limit≥', { factory: () => 12 });
8851
9017
  class MultiComboboxSelectionChangeEvent {
8852
9018
  /**
@@ -9627,6 +9793,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
9627
9793
  args: [TemplateDirective]
9628
9794
  }] } });
9629
9795
 
9796
+ const MULTICOMBOBOX_COMPONENT = new InjectionToken('MultiComboboxInterface');
9797
+
9630
9798
  class MultiComboboxMobileComponent extends MobileModeBase {
9631
9799
  /** @hidden */
9632
9800
  constructor(elementRef, dialogService, multiComboboxComponent, mobileModes) {
@@ -9726,6 +9894,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
9726
9894
  args: ['dialogTemplate']
9727
9895
  }] } });
9728
9896
 
9897
+ class PlatformMultiComboboxMobileModule {
9898
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9899
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, imports: [MultiComboboxMobileComponent], exports: [MultiComboboxMobileComponent] }); }
9900
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, imports: [MultiComboboxMobileComponent] }); }
9901
+ }
9902
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, decorators: [{
9903
+ type: NgModule,
9904
+ args: [{
9905
+ imports: [MultiComboboxMobileComponent],
9906
+ exports: [MultiComboboxMobileComponent]
9907
+ }]
9908
+ }] });
9909
+
9729
9910
  let deprecationWarningShown = false;
9730
9911
  /**
9731
9912
  * This component can work with both string primitives as well as with complex objects. In order
@@ -10091,19 +10272,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
10091
10272
  }]
10092
10273
  }] });
10093
10274
 
10094
- class PlatformMultiComboboxMobileModule {
10095
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10096
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, imports: [MultiComboboxMobileComponent], exports: [MultiComboboxMobileComponent] }); }
10097
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, imports: [MultiComboboxMobileComponent] }); }
10098
- }
10099
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiComboboxMobileModule, decorators: [{
10100
- type: NgModule,
10101
- args: [{
10102
- imports: [MultiComboboxMobileComponent],
10103
- exports: [MultiComboboxMobileComponent]
10104
- }]
10105
- }] });
10106
-
10107
10275
  class PlatformMultiInputMobileModule {
10108
10276
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiInputMobileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10109
10277
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: PlatformMultiInputMobileModule, imports: [PlatformMultiInputMobileComponent], exports: [PlatformMultiInputMobileComponent] }); }
@@ -10699,101 +10867,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
10699
10867
  type: Output
10700
10868
  }] } });
10701
10869
 
10702
- /**
10703
- * This is a base step input directive to be used for increase/decrease buttons.
10704
- */
10705
- class StepInputActionButton {
10706
- constructor() {
10707
- /** @hidden */
10708
- this._destroyed = new Subject();
10709
- }
10710
- /** @hidden */
10711
- ngOnDestroy() {
10712
- this._destroyed.next();
10713
- this._destroyed.complete();
10714
- }
10715
- /** @hidden */
10716
- click() {
10717
- if (!this.canHandleAction()) {
10718
- return;
10719
- }
10720
- // Run action while button is pressed
10721
- timer(500)
10722
- .pipe(switchMap(() => interval(40)), takeUntil(fromEvent(window, 'mouseup', { capture: true, once: true })))
10723
- .pipe(takeUntil(this._destroyed))
10724
- .subscribe(() => this.runAction());
10725
- this.runAction();
10726
- }
10727
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputActionButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10728
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: StepInputActionButton, host: { listeners: { "mousedown": "click()" } }, ngImport: i0 }); }
10729
- }
10730
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputActionButton, decorators: [{
10731
- type: Directive
10732
- }], propDecorators: { click: [{
10733
- type: HostListener,
10734
- args: ['mousedown']
10735
- }] } });
10736
-
10737
- /**
10738
- * This Directive is used to be assigned to decrement button.
10739
- */
10740
- class StepInputDecrementDirective extends StepInputActionButton {
10741
- /** @hidden */
10742
- constructor(stepInput) {
10743
- super();
10744
- this.stepInput = stepInput;
10745
- }
10746
- /** @hidden */
10747
- canHandleAction() {
10748
- return !!this.stepInput.canChangeValue;
10749
- }
10750
- /** @hidden */
10751
- runAction() {
10752
- this.stepInput.decrease();
10753
- }
10754
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputDecrementDirective, deps: [{ token: StepInputComponent, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
10755
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: StepInputDecrementDirective, isStandalone: true, selector: "[fdpStepInputDecrement]", usesInheritance: true, ngImport: i0 }); }
10756
- }
10757
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputDecrementDirective, decorators: [{
10758
- type: Directive,
10759
- args: [{
10760
- selector: '[fdpStepInputDecrement]',
10761
- standalone: true
10762
- }]
10763
- }], ctorParameters: function () { return [{ type: StepInputComponent, decorators: [{
10764
- type: SkipSelf
10765
- }] }]; } });
10766
-
10767
- /**
10768
- * This Directive is used to be assigned to increment button.
10769
- */
10770
- class StepInputIncrementDirective extends StepInputActionButton {
10771
- /** @hidden */
10772
- constructor(stepInput) {
10773
- super();
10774
- this.stepInput = stepInput;
10775
- }
10776
- /** @hidden */
10777
- canHandleAction() {
10778
- return !!this.stepInput.canChangeValue;
10779
- }
10780
- /** @hidden */
10781
- runAction() {
10782
- this.stepInput.increase();
10783
- }
10784
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputIncrementDirective, deps: [{ token: StepInputComponent, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
10785
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: StepInputIncrementDirective, isStandalone: true, selector: "[fdpStepInputIncrement]", usesInheritance: true, ngImport: i0 }); }
10786
- }
10787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputIncrementDirective, decorators: [{
10788
- type: Directive,
10789
- args: [{
10790
- selector: '[fdpStepInputIncrement]',
10791
- standalone: true
10792
- }]
10793
- }], ctorParameters: function () { return [{ type: StepInputComponent, decorators: [{
10794
- type: SkipSelf
10795
- }] }]; } });
10796
-
10797
10870
  /**
10798
10871
  * This directive is intendant to be a bridge between input control and BaseStepInput Component.
10799
10872
  */
@@ -10917,6 +10990,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
10917
10990
  args: ['wheel', ['$event']]
10918
10991
  }] } });
10919
10992
 
10993
+ /**
10994
+ * This is a base step input directive to be used for increase/decrease buttons.
10995
+ */
10996
+ class StepInputActionButton {
10997
+ constructor() {
10998
+ /** @hidden */
10999
+ this._destroyed = new Subject();
11000
+ }
11001
+ /** @hidden */
11002
+ ngOnDestroy() {
11003
+ this._destroyed.next();
11004
+ this._destroyed.complete();
11005
+ }
11006
+ /** @hidden */
11007
+ click() {
11008
+ if (!this.canHandleAction()) {
11009
+ return;
11010
+ }
11011
+ // Run action while button is pressed
11012
+ timer(500)
11013
+ .pipe(switchMap(() => interval(40)), takeUntil(fromEvent(window, 'mouseup', { capture: true, once: true })))
11014
+ .pipe(takeUntil(this._destroyed))
11015
+ .subscribe(() => this.runAction());
11016
+ this.runAction();
11017
+ }
11018
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputActionButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11019
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: StepInputActionButton, host: { listeners: { "mousedown": "click()" } }, ngImport: i0 }); }
11020
+ }
11021
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputActionButton, decorators: [{
11022
+ type: Directive
11023
+ }], propDecorators: { click: [{
11024
+ type: HostListener,
11025
+ args: ['mousedown']
11026
+ }] } });
11027
+
11028
+ /**
11029
+ * This Directive is used to be assigned to decrement button.
11030
+ */
11031
+ class StepInputDecrementDirective extends StepInputActionButton {
11032
+ /** @hidden */
11033
+ constructor(stepInput) {
11034
+ super();
11035
+ this.stepInput = stepInput;
11036
+ }
11037
+ /** @hidden */
11038
+ canHandleAction() {
11039
+ return !!this.stepInput.canChangeValue;
11040
+ }
11041
+ /** @hidden */
11042
+ runAction() {
11043
+ this.stepInput.decrease();
11044
+ }
11045
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputDecrementDirective, deps: [{ token: StepInputComponent, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
11046
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: StepInputDecrementDirective, isStandalone: true, selector: "[fdpStepInputDecrement]", usesInheritance: true, ngImport: i0 }); }
11047
+ }
11048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputDecrementDirective, decorators: [{
11049
+ type: Directive,
11050
+ args: [{
11051
+ selector: '[fdpStepInputDecrement]',
11052
+ standalone: true
11053
+ }]
11054
+ }], ctorParameters: function () { return [{ type: StepInputComponent, decorators: [{
11055
+ type: SkipSelf
11056
+ }] }]; } });
11057
+
11058
+ /**
11059
+ * This Directive is used to be assigned to increment button.
11060
+ */
11061
+ class StepInputIncrementDirective extends StepInputActionButton {
11062
+ /** @hidden */
11063
+ constructor(stepInput) {
11064
+ super();
11065
+ this.stepInput = stepInput;
11066
+ }
11067
+ /** @hidden */
11068
+ canHandleAction() {
11069
+ return !!this.stepInput.canChangeValue;
11070
+ }
11071
+ /** @hidden */
11072
+ runAction() {
11073
+ this.stepInput.increase();
11074
+ }
11075
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputIncrementDirective, deps: [{ token: StepInputComponent, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
11076
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: StepInputIncrementDirective, isStandalone: true, selector: "[fdpStepInputIncrement]", usesInheritance: true, ngImport: i0 }); }
11077
+ }
11078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: StepInputIncrementDirective, decorators: [{
11079
+ type: Directive,
11080
+ args: [{
11081
+ selector: '[fdpStepInputIncrement]',
11082
+ standalone: true
11083
+ }]
11084
+ }], ctorParameters: function () { return [{ type: StepInputComponent, decorators: [{
11085
+ type: SkipSelf
11086
+ }] }]; } });
11087
+
10920
11088
  /**
10921
11089
  * Fundamental number-step-input component
10922
11090
  *
@@ -11258,5 +11426,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
11258
11426
  * Generated bundle index. Do not edit.
11259
11427
  */
11260
11428
 
11261
- export { AutoCompleteDirective, BaseCombobox, BaseDynamicFormGeneratorControl, BaseMultiCombobox, BaseMultiInput, BaseSelect, COMBOBOX_COMPONENT, CSS_CLASS_NAME, CheckboxComponent, CheckboxGroupComponent, ComboboxComponent, ComboboxConfig, ComboboxMobileComponent, ComboboxSelectionChangeEvent, DEFAULT_COMPONENTS_LIST, DEFAULT_VALIDATION_ERRORS, DefaultGapLayout, DefaultHorizontalFieldLayout, DefaultHorizontalLabelLayout, DefaultVerticalFieldLayout, DefaultVerticalLabelLayout, DynamicFormControl, DynamicFormControlDirective, DynamicFormControlFieldDirective, DynamicFormControlGroup, DynamicFormGeneratorCheckboxComponent, DynamicFormGeneratorDatepickerComponent, DynamicFormGeneratorEditorComponent, DynamicFormGeneratorInputComponent, DynamicFormGeneratorMultiInputComponent, DynamicFormGeneratorObjectStatusComponent, DynamicFormGeneratorRadioComponent, DynamicFormGeneratorSelectComponent, DynamicFormGeneratorSwitchComponent, FDP_FORM_ERROR_DIRECTIVE, FDP_FORM_FIELD_HINT_LAYOUT_CONFIG, FDP_FORM_FIELD_HINT_OPTIONS_DEFAULT, FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS, FDP_FORM_IGNORED_STATUSES, FORM_GENERATOR_CONFIG, FORM_GENERATOR_ITEM_CONFIG, FORM_GROUP_CHILD_FIELD_TOKEN, FdpFormGroupModule, FdpSelectionChangeEvent, Field, FieldGroup, FieldGroupRowValuePipe, FileUploaderInvalidChangeEvent, FileUploaderSelectionChangeEvent, FormFieldComponent, FormFieldControlExtrasComponent, FormFieldErrorDescriptionDirective, FormFieldErrorDirective, FormFieldErrorHeadingDirective, FormFieldGroupComponent, FormGeneratorComponent, FormGeneratorComponentsAccessorService, FormGeneratorFieldComponent, FormGeneratorService, FormGroupComponent, FormGroupHeaderComponent, GetHintOptionsPipe, INPUT_GROUP_CHILD_TOKEN, InputComponent, InputGroupAddonBodyComponent, InputGroupAddonComponent, InputGroupComponent, InputGroupConfig, InputGroupInputComponent, InputMessageGroupWithTemplate, MAP_LIMIT, MULTICOMBOBOX_COMPONENT, MULTIINPUT_COMPONENT, MultiComboboxComponent, MultiComboboxConfig, MultiComboboxMobileComponent, MultiComboboxSelectionChangeEvent, MultiInputConfig, MultiInputSelectionChangeEvent, NumberStepInputComponent, OptionComponent, PlatformAutoCompleteModule, PlatformCheckboxChange, PlatformCheckboxGroupModule, PlatformCheckboxModule, PlatformComboboxMobileModule, PlatformComboboxModule, PlatformDatePickerComponent, PlatformDatePickerModule, PlatformDatetimePickerComponent, PlatformDatetimePickerModule, PlatformFileUploaderComponent, PlatformFileUploaderModule, PlatformFormGeneratorModule, PlatformInputGroupModule, PlatformInputModule, PlatformMultiComboboxMobileModule, PlatformMultiComboboxModule, PlatformMultiInputComponent, PlatformMultiInputMobileComponent, PlatformMultiInputMobileModule, PlatformMultiInputModule, PlatformRadioGroupModule, PlatformSelectModule, PlatformStepInputModule, PlatformSwitchModule, PlatformTextAreaModule, PlatformTimePickerComponent, PlatformTimePickerModule, RadioButtonComponent, RadioGroupComponent, SelectComponent, SelectConfig, StepInputActionButton, StepInputAlign, StepInputChangeEvent, StepInputComponent, StepInputConfig, StepInputControlDirective, StepInputDecrementDirective, StepInputIncrementDirective, SwitchChangeEvent, SwitchComponent, SwitchConfig, TextAreaComponent, TextAreaConfig, addAndCutFloatingNumberDistortion, createMissingDateImplementationError$1 as createMissingDateImplementationError, defaultFormFieldHintOptions, defaultFormGeneratorConfig, defaultFormGeneratorConfigProvider, defaultFormGeneratorHintOptions, defaultFormGeneratorItemConfig, defaultFormGeneratorItemConfigProvider, dynamicFormFieldProvider, dynamicFormGroupChildProvider, formGroupProvider, getField, getFormField, getFormState, getNumberDecimalLength, inputGroupAddonChildProvider, inputGroupInputChildProvider, isFieldChild, isFieldGroupChild, isFieldGroupWrapperChild };
11429
+ export { AutoCompleteDirective, BaseCombobox, BaseDynamicFormGeneratorControl, BaseMultiCombobox, BaseMultiInput, BaseSelect, COMBOBOX_COMPONENT, CSS_CLASS_NAME, CheckboxComponent, CheckboxGroupComponent, ComboboxComponent, ComboboxConfig, ComboboxItemDirective, ComboboxItemGroupDirective, ComboboxMobileComponent, ComboboxSecondaryItemDirective, ComboboxSelectedItemDirective, ComboboxSelectionChangeEvent, DEFAULT_COMPONENTS_LIST, DEFAULT_VALIDATION_ERRORS, DefaultGapLayout, DefaultHorizontalFieldLayout, DefaultHorizontalLabelLayout, DefaultVerticalFieldLayout, DefaultVerticalLabelLayout, DynamicFormControl, DynamicFormControlDirective, DynamicFormControlFieldDirective, DynamicFormControlGroup, DynamicFormGeneratorCheckboxComponent, DynamicFormGeneratorDatepickerComponent, DynamicFormGeneratorEditorComponent, DynamicFormGeneratorInputComponent, DynamicFormGeneratorMultiInputComponent, DynamicFormGeneratorObjectStatusComponent, DynamicFormGeneratorRadioComponent, DynamicFormGeneratorSelectComponent, DynamicFormGeneratorSwitchComponent, FDP_COMBOBOX_ITEM_DEF, FDP_FORM_ERROR_DIRECTIVE, FDP_FORM_FIELD_HINT_LAYOUT_CONFIG, FDP_FORM_FIELD_HINT_OPTIONS_DEFAULT, FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS, FDP_FORM_IGNORED_STATUSES, FORM_GENERATOR_CONFIG, FORM_GENERATOR_ITEM_CONFIG, FORM_GROUP_CHILD_FIELD_TOKEN, FdpComboboxItemDef, FdpFormGroupModule, FdpSelectionChangeEvent, Field, FieldGroup, FieldGroupRowValuePipe, FileUploaderInvalidChangeEvent, FileUploaderSelectionChangeEvent, FormFieldComponent, FormFieldControlExtrasComponent, FormFieldErrorDescriptionDirective, FormFieldErrorDirective, FormFieldErrorHeadingDirective, FormFieldGroupComponent, FormGeneratorComponent, FormGeneratorComponentsAccessorService, FormGeneratorFieldComponent, FormGeneratorService, FormGroupComponent, FormGroupHeaderComponent, GetHintOptionsPipe, INPUT_GROUP_CHILD_TOKEN, InputComponent, InputGroupAddonBodyComponent, InputGroupAddonComponent, InputGroupComponent, InputGroupConfig, InputGroupInputComponent, InputMessageGroupWithTemplate, MAP_LIMIT, MULTICOMBOBOX_COMPONENT, MULTIINPUT_COMPONENT, MultiComboboxComponent, MultiComboboxConfig, MultiComboboxMobileComponent, MultiComboboxSelectionChangeEvent, MultiInputConfig, MultiInputSelectionChangeEvent, NumberStepInputComponent, OptionComponent, PlatformAutoCompleteModule, PlatformCheckboxChange, PlatformCheckboxGroupModule, PlatformCheckboxModule, PlatformComboboxMobileModule, PlatformComboboxModule, PlatformDatePickerComponent, PlatformDatePickerModule, PlatformDatetimePickerComponent, PlatformDatetimePickerModule, PlatformFileUploaderComponent, PlatformFileUploaderModule, PlatformFormGeneratorModule, PlatformInputGroupModule, PlatformInputModule, PlatformMultiComboboxMobileModule, PlatformMultiComboboxModule, PlatformMultiInputComponent, PlatformMultiInputMobileComponent, PlatformMultiInputMobileModule, PlatformMultiInputModule, PlatformRadioGroupModule, PlatformSelectModule, PlatformStepInputModule, PlatformSwitchModule, PlatformTextAreaModule, PlatformTimePickerComponent, PlatformTimePickerModule, RadioButtonComponent, RadioGroupComponent, SelectComponent, SelectConfig, StepInputActionButton, StepInputAlign, StepInputChangeEvent, StepInputComponent, StepInputConfig, StepInputControlDirective, StepInputDecrementDirective, StepInputIncrementDirective, SwitchChangeEvent, SwitchComponent, SwitchConfig, TextAreaComponent, TextAreaConfig, addAndCutFloatingNumberDistortion, createMissingDateImplementationError$1 as createMissingDateImplementationError, defaultFormFieldHintOptions, defaultFormGeneratorConfig, defaultFormGeneratorConfigProvider, defaultFormGeneratorHintOptions, defaultFormGeneratorItemConfig, defaultFormGeneratorItemConfigProvider, dynamicFormFieldProvider, dynamicFormGroupChildProvider, formGroupProvider, getField, getFormField, getFormState, getNumberDecimalLength, inputGroupAddonChildProvider, inputGroupInputChildProvider, isFieldChild, isFieldGroupChild, isFieldGroupWrapperChild };
11262
11430
  //# sourceMappingURL=fundamental-ngx-platform-form.mjs.map