@odx/angular 13.1.3 → 13.2.0

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 (79) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cdk/autocomplete-control/index.d.ts +17 -3
  3. package/fesm2022/odx-angular-breakpoints.mjs +10 -10
  4. package/fesm2022/odx-angular-cdk-a11y.mjs +13 -13
  5. package/fesm2022/odx-angular-cdk-active-indicator.mjs +3 -3
  6. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +27 -8
  7. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  8. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -3
  9. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +6 -6
  10. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +9 -9
  11. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +9 -9
  12. package/fesm2022/odx-angular-cdk-event-plugins.mjs +6 -6
  13. package/fesm2022/odx-angular-cdk-expandable.mjs +10 -10
  14. package/fesm2022/odx-angular-cdk-option-control.mjs +3 -3
  15. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +10 -10
  16. package/fesm2022/odx-angular-cdk-scrollable.mjs +3 -3
  17. package/fesm2022/odx-angular-components-accordion.mjs +13 -13
  18. package/fesm2022/odx-angular-components-action-group.mjs +3 -3
  19. package/fesm2022/odx-angular-components-anchor-navigation.mjs +13 -13
  20. package/fesm2022/odx-angular-components-area-header.mjs +13 -13
  21. package/fesm2022/odx-angular-components-autocomplete.mjs +18 -18
  22. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  23. package/fesm2022/odx-angular-components-avatar.mjs +3 -3
  24. package/fesm2022/odx-angular-components-badge.mjs +6 -6
  25. package/fesm2022/odx-angular-components-bar.mjs +13 -13
  26. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -3
  27. package/fesm2022/odx-angular-components-button-group.mjs +3 -3
  28. package/fesm2022/odx-angular-components-button.mjs +6 -6
  29. package/fesm2022/odx-angular-components-calendar.mjs +39 -39
  30. package/fesm2022/odx-angular-components-card.mjs +19 -19
  31. package/fesm2022/odx-angular-components-checkbox.mjs +10 -10
  32. package/fesm2022/odx-angular-components-chip.mjs +9 -9
  33. package/fesm2022/odx-angular-components-circular-progress.mjs +3 -3
  34. package/fesm2022/odx-angular-components-content-box.mjs +13 -13
  35. package/fesm2022/odx-angular-components-data-table.mjs +25 -25
  36. package/fesm2022/odx-angular-components-datepicker.mjs +16 -16
  37. package/fesm2022/odx-angular-components-daterangepicker.mjs +16 -16
  38. package/fesm2022/odx-angular-components-dropdown.mjs +10 -10
  39. package/fesm2022/odx-angular-components-error-page.mjs +3 -3
  40. package/fesm2022/odx-angular-components-footer.mjs +3 -3
  41. package/fesm2022/odx-angular-components-form-field.mjs +34 -34
  42. package/fesm2022/odx-angular-components-header-navigation.mjs +13 -13
  43. package/fesm2022/odx-angular-components-header.mjs +13 -13
  44. package/fesm2022/odx-angular-components-icon.mjs +3 -3
  45. package/fesm2022/odx-angular-components-inline-message.mjs +3 -3
  46. package/fesm2022/odx-angular-components-link.mjs +3 -3
  47. package/fesm2022/odx-angular-components-list.mjs +13 -13
  48. package/fesm2022/odx-angular-components-loading-spinner.mjs +10 -10
  49. package/fesm2022/odx-angular-components-logo.mjs +3 -3
  50. package/fesm2022/odx-angular-components-main-menu.mjs +19 -19
  51. package/fesm2022/odx-angular-components-mainfilter-group.mjs +3 -3
  52. package/fesm2022/odx-angular-components-menu.mjs +13 -13
  53. package/fesm2022/odx-angular-components-modal.mjs +40 -40
  54. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -3
  55. package/fesm2022/odx-angular-components-notification.mjs +15 -15
  56. package/fesm2022/odx-angular-components-paginator.mjs +7 -7
  57. package/fesm2022/odx-angular-components-progress.mjs +3 -3
  58. package/fesm2022/odx-angular-components-radio-group.mjs +10 -10
  59. package/fesm2022/odx-angular-components-rail-navigation.mjs +10 -10
  60. package/fesm2022/odx-angular-components-rich-list.mjs +16 -16
  61. package/fesm2022/odx-angular-components-search-bar.mjs +10 -10
  62. package/fesm2022/odx-angular-components-select.mjs +21 -21
  63. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  64. package/fesm2022/odx-angular-components-slider.mjs +3 -3
  65. package/fesm2022/odx-angular-components-spinbox.mjs +3 -3
  66. package/fesm2022/odx-angular-components-switch.mjs +10 -10
  67. package/fesm2022/odx-angular-components-tab-bar.mjs +10 -10
  68. package/fesm2022/odx-angular-components-table.mjs +19 -19
  69. package/fesm2022/odx-angular-components-timepicker.mjs +16 -16
  70. package/fesm2022/odx-angular-components-toast.mjs +13 -13
  71. package/fesm2022/odx-angular-components-toggle-button-group.mjs +10 -10
  72. package/fesm2022/odx-angular-components-tooltip.mjs +9 -9
  73. package/fesm2022/odx-angular-components-wizard.mjs +10 -10
  74. package/fesm2022/odx-angular-internal-translate.mjs +3 -3
  75. package/fesm2022/odx-angular-localization.mjs +3 -3
  76. package/fesm2022/odx-angular-theming.mjs +3 -3
  77. package/fesm2022/odx-angular-utils.mjs +3 -3
  78. package/fesm2022/odx-angular.mjs +28 -28
  79. package/package.json +1 -1
@@ -21,13 +21,13 @@ let RichListItemContentComponent = class RichListItemContentComponent {
21
21
  constructor() {
22
22
  this.element = injectElement();
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: RichListItemContentComponent, isStandalone: true, selector: "odx-rich-list-content", ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: RichListItemContentComponent, isStandalone: true, selector: "odx-rich-list-content", ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
26
26
  };
27
27
  RichListItemContentComponent = __decorate([
28
28
  CSSComponent('rich-list-content')
29
29
  ], RichListItemContentComponent);
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListItemContentComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListItemContentComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{
33
33
  standalone: true,
@@ -47,13 +47,13 @@ let RichListItemHeaderComponent = class RichListItemHeaderComponent {
47
47
  constructor() {
48
48
  this.element = injectElement();
49
49
  }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListItemHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: RichListItemHeaderComponent, isStandalone: true, selector: "odx-rich-list-item-header", ngImport: i0, template: "<ng-content select=\"odx-checkbox\" />\n<ng-content select=\"odx-avatar\" />\n<div class=\"odx-rich-list-item-header__title\">\n <ng-content />\n</div>\n<odx-action-group class=\"odx-rich-list-item-header__action-group\">\n <ng-content select=\"[odxButton]\" ngProjectAs=\"[odxButton]\" />\n</odx-action-group>\n", dependencies: [{ kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListItemHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: RichListItemHeaderComponent, isStandalone: true, selector: "odx-rich-list-item-header", ngImport: i0, template: "<ng-content select=\"odx-checkbox\" />\n<ng-content select=\"odx-avatar\" />\n<div class=\"odx-rich-list-item-header__title\">\n <ng-content />\n</div>\n<odx-action-group class=\"odx-rich-list-item-header__action-group\">\n <ng-content select=\"[odxButton]\" ngProjectAs=\"[odxButton]\" />\n</odx-action-group>\n", dependencies: [{ kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
52
52
  };
53
53
  RichListItemHeaderComponent = __decorate([
54
54
  CSSComponent('rich-list-item-header')
55
55
  ], RichListItemHeaderComponent);
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListItemHeaderComponent, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListItemHeaderComponent, decorators: [{
57
57
  type: Component,
58
58
  args: [{ standalone: true, selector: 'odx-rich-list-item-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ActionGroupComponent], template: "<ng-content select=\"odx-checkbox\" />\n<ng-content select=\"odx-avatar\" />\n<div class=\"odx-rich-list-item-header__title\">\n <ng-content />\n</div>\n<odx-action-group class=\"odx-rich-list-item-header__action-group\">\n <ng-content select=\"[odxButton]\" ngProjectAs=\"[odxButton]\" />\n</odx-action-group>\n" }]
59
59
  }] });
@@ -104,13 +104,13 @@ let RichListItemComponent = class RichListItemComponent {
104
104
  onAnimationEnd() {
105
105
  this.expandedChange.emit(this.expandableItem.expanded);
106
106
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: RichListItemComponent, isStandalone: true, selector: "odx-rich-list-item", outputs: { expandedChange: "expandedChange" }, host: { properties: { "class.is-disabled": "isDisabled", "class.odx-rich-list-item--expanded": "expandableItem.expanded", "class.odx-rich-list-item--empty": "empty", "attr.id": "expandableItem.id" } }, providers: [DisabledController.connect()], queries: [{ propertyName: "content", first: true, predicate: RichListItemContentComponent, descendants: true }], hostDirectives: [{ directive: i1.ExpandableItemDirective, inputs: ["expanded", "expanded", "id", "id"] }], ngImport: i0, template: "<div class=\"odx-rich-list-item__header\" [attr.id]=\"titleId\" [attr.aria-expanded]=\"expandableItem.expanded\" [attr.aria-controls]=\"slotId\">\n <ng-content select=\"odx-rich-list-item-header\" />\n <odx-action-group class=\"odx-rich-list-item__expand-button\">\n <button odxButton (click)=\"toggle()\"><odx-icon class=\"odx-rich-list-item__icon\" name=\"core::chevron-down\" /></button>\n </odx-action-group>\n</div>\n@if (expandableItem.expanded) {\n <div class=\"odx-rich-list-item__slot\" @expandSlotAnimation (@expandSlotAnimation.done)=\"onAnimationEnd()\" [attr.aria-labelledby]=\"titleId\" [attr.id]=\"slotId\">\n <ng-content select=\"odx-rich-list-content\" />\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }], animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: RichListItemComponent, isStandalone: true, selector: "odx-rich-list-item", outputs: { expandedChange: "expandedChange" }, host: { properties: { "class.is-disabled": "isDisabled", "class.odx-rich-list-item--expanded": "expandableItem.expanded", "class.odx-rich-list-item--empty": "empty", "attr.id": "expandableItem.id" } }, providers: [DisabledController.connect()], queries: [{ propertyName: "content", first: true, predicate: RichListItemContentComponent, descendants: true }], hostDirectives: [{ directive: i1.ExpandableItemDirective, inputs: ["expanded", "expanded", "id", "id"] }], ngImport: i0, template: "<div class=\"odx-rich-list-item__header\" [attr.id]=\"titleId\" [attr.aria-expanded]=\"expandableItem.expanded\" [attr.aria-controls]=\"slotId\">\n <ng-content select=\"odx-rich-list-item-header\" />\n <odx-action-group class=\"odx-rich-list-item__expand-button\">\n <button odxButton (click)=\"toggle()\"><odx-icon class=\"odx-rich-list-item__icon\" name=\"core::chevron-down\" /></button>\n </odx-action-group>\n</div>\n@if (expandableItem.expanded) {\n <div class=\"odx-rich-list-item__slot\" @expandSlotAnimation (@expandSlotAnimation.done)=\"onAnimationEnd()\" [attr.aria-labelledby]=\"titleId\" [attr.id]=\"slotId\">\n <ng-content select=\"odx-rich-list-content\" />\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }], animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
109
  };
110
110
  RichListItemComponent = __decorate([
111
111
  CSSComponent('rich-list-item')
112
112
  ], RichListItemComponent);
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListItemComponent, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListItemComponent, decorators: [{
114
114
  type: Component,
115
115
  args: [{ selector: 'odx-rich-list-item', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, CoreModule, ActionGroupComponent, IconComponent, ButtonComponent], providers: [DisabledController.connect()], hostDirectives: [{ directive: ExpandableItemDirective, inputs: ['expanded', 'id'] }], host: {
116
116
  '[class.is-disabled]': 'isDisabled',
@@ -144,8 +144,8 @@ let RichListComponent = class RichListComponent {
144
144
  */
145
145
  this.condensed = false;
146
146
  }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.16", type: RichListComponent, isStandalone: true, selector: "odx-rich-list", inputs: { condensed: ["condensed", "condensed", booleanAttribute] }, hostDirectives: [{ directive: i1.ExpandableContainerDirective, inputs: ["multiple", "multiple"] }], ngImport: i0, template: "<ng-content select=\"odx-rich-list-item\" />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.18", type: RichListComponent, isStandalone: true, selector: "odx-rich-list", inputs: { condensed: ["condensed", "condensed", booleanAttribute] }, hostDirectives: [{ directive: i1.ExpandableContainerDirective, inputs: ["multiple", "multiple"] }], ngImport: i0, template: "<ng-content select=\"odx-rich-list-item\" />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
149
149
  };
150
150
  __decorate([
151
151
  CSSModifier()
@@ -153,7 +153,7 @@ __decorate([
153
153
  RichListComponent = __decorate([
154
154
  CSSComponent('rich-list')
155
155
  ], RichListComponent);
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListComponent, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListComponent, decorators: [{
157
157
  type: Component,
158
158
  args: [{ selector: 'odx-rich-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [{ directive: ExpandableContainerDirective, inputs: ['multiple'] }], template: "<ng-content select=\"odx-rich-list-item\" />\n" }]
159
159
  }], propDecorators: { condensed: [{
@@ -163,11 +163,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
163
163
 
164
164
  const modules = [RichListComponent, RichListItemComponent, RichListItemHeaderComponent, RichListItemContentComponent];
165
165
  class RichListModule {
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
167
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: RichListModule, imports: [RichListComponent, RichListItemComponent, RichListItemHeaderComponent, RichListItemContentComponent], exports: [CoreModule, RichListComponent, RichListItemComponent, RichListItemHeaderComponent, RichListItemContentComponent] }); }
168
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListModule, imports: [RichListItemComponent, RichListItemHeaderComponent, CoreModule] }); }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
167
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: RichListModule, imports: [RichListComponent, RichListItemComponent, RichListItemHeaderComponent, RichListItemContentComponent], exports: [CoreModule, RichListComponent, RichListItemComponent, RichListItemHeaderComponent, RichListItemContentComponent] }); }
168
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListModule, imports: [RichListItemComponent, RichListItemHeaderComponent, CoreModule] }); }
169
169
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RichListModule, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RichListModule, decorators: [{
171
171
  type: NgModule,
172
172
  args: [{
173
173
  imports: modules,
@@ -7,10 +7,10 @@ import { CoreModule } from '@odx/angular';
7
7
  * Directive for search bar component input.
8
8
  */
9
9
  class SearchBarControlDirective {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchBarControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: SearchBarControlDirective, isStandalone: true, selector: "input[odxSearchBarControl]", host: { properties: { "class.odx-search-bar__input": "true", "attr.type": "\"search\"" } }, ngImport: i0 }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchBarControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: SearchBarControlDirective, isStandalone: true, selector: "input[odxSearchBarControl]", host: { properties: { "class.odx-search-bar__input": "true", "attr.type": "\"search\"" } }, ngImport: i0 }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchBarControlDirective, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchBarControlDirective, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
16
  selector: 'input[odxSearchBarControl]',
@@ -26,10 +26,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
26
26
  * Component for displaying the search input.
27
27
  */
28
28
  class SearchBarComponent {
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SearchBarComponent, isStandalone: true, selector: "odx-search-bar", host: { properties: { "class.odx-search-bar": "true" } }, ngImport: i0, template: "<div class=\"odx-search-bar__prefix\"><odx-icon name=\"core::search\" /></div>\n<ng-content select=\"input[odxSearchBarControl]\" />\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }] }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: SearchBarComponent, isStandalone: true, selector: "odx-search-bar", host: { properties: { "class.odx-search-bar": "true" } }, ngImport: i0, template: "<div class=\"odx-search-bar__prefix\"><odx-icon name=\"core::search\" /></div>\n<ng-content select=\"input[odxSearchBarControl]\" />\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }] }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchBarComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchBarComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'odx-search-bar', standalone: true, imports: [IconComponent], host: {
35
35
  '[class.odx-search-bar]': 'true',
@@ -38,11 +38,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
38
38
 
39
39
  const modules = [SearchBarControlDirective, SearchBarComponent];
40
40
  class SearchBarModule {
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
42
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: SearchBarModule, imports: [SearchBarControlDirective, SearchBarComponent], exports: [CoreModule, SearchBarControlDirective, SearchBarComponent] }); }
43
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchBarModule, imports: [SearchBarComponent, CoreModule] }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
42
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: SearchBarModule, imports: [SearchBarControlDirective, SearchBarComponent], exports: [CoreModule, SearchBarControlDirective, SearchBarComponent] }); }
43
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchBarModule, imports: [SearchBarComponent, CoreModule] }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchBarModule, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SearchBarModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  imports: modules,
@@ -102,13 +102,13 @@ let SelectOptionComponent = class SelectOptionComponent extends OptionControl {
102
102
  selectOption() {
103
103
  this.selectControl.selectOption(this);
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectOptionComponent, isStandalone: true, selector: "odx-select-option, odx-option", inputs: { notFoundMessage: ["notFoundMessage", "notFoundMessage", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.aria-disabled": "disabled || null", "class.is-disabled": "disabled" } }, usesInheritance: true, ngImport: i0, template: "@if (selectControl.multiple && !notFoundMessage) {\n <odx-checkbox [checked]=\"isSelected\" [disabled]=\"disabled\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </odx-checkbox>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "component", type: CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: SelectOptionComponent, isStandalone: true, selector: "odx-select-option, odx-option", inputs: { notFoundMessage: ["notFoundMessage", "notFoundMessage", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.aria-disabled": "disabled || null", "class.is-disabled": "disabled" } }, usesInheritance: true, ngImport: i0, template: "@if (selectControl.multiple && !notFoundMessage) {\n <odx-checkbox [checked]=\"isSelected\" [disabled]=\"disabled\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </odx-checkbox>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "component", type: CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
107
107
  };
108
108
  SelectOptionComponent = __decorate([
109
109
  CSSComponent('select-option')
110
110
  ], SelectOptionComponent);
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectOptionComponent, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectOptionComponent, decorators: [{
112
112
  type: Component,
113
113
  args: [{ standalone: true, selector: 'odx-select-option, odx-option', imports: [CoreModule, CheckboxComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
114
114
  '[attr.aria-disabled]': 'disabled || null',
@@ -137,10 +137,10 @@ class SelectAllDirective {
137
137
  getLabel() {
138
138
  return this.element.nativeElement.textContent?.trim() ?? '';
139
139
  }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectAllDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
141
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: SelectAllDirective, isStandalone: true, selector: "[odxSelectAll]", host: { attributes: { "role": "option" }, properties: { "class.is-active": "isActive" } }, ngImport: i0 }); }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectAllDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
141
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: SelectAllDirective, isStandalone: true, selector: "[odxSelectAll]", host: { attributes: { "role": "option" }, properties: { "class.is-active": "isActive" } }, ngImport: i0 }); }
142
142
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectAllDirective, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectAllDirective, decorators: [{
144
144
  type: Directive,
145
145
  args: [{
146
146
  selector: '[odxSelectAll]',
@@ -182,13 +182,13 @@ let SelectInputControlDirective = class SelectInputControlDirective extends Inpu
182
182
  handleDelete() {
183
183
  this.reset();
184
184
  }
185
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectInputControlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
186
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: SelectInputControlDirective, isStandalone: true, selector: "input[odxSelectSearchField]", inputs: { notFoundContent: ["odxSelectSearchField", "notFoundContent"] }, host: { listeners: { "keydown.delete": "handleDelete()" }, properties: { "class.is-visible": "isVisible()", "attr.readonly": "isReadonly()" } }, usesInheritance: true, ngImport: i0 }); }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectInputControlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
186
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: SelectInputControlDirective, isStandalone: true, selector: "input[odxSelectSearchField]", inputs: { notFoundContent: ["odxSelectSearchField", "notFoundContent"] }, host: { listeners: { "keydown.delete": "handleDelete()" }, properties: { "class.is-visible": "isVisible()", "attr.readonly": "isReadonly()" } }, usesInheritance: true, ngImport: i0 }); }
187
187
  };
188
188
  SelectInputControlDirective = __decorate([
189
189
  CSSComponent('select__control')
190
190
  ], SelectInputControlDirective);
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectInputControlDirective, decorators: [{
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectInputControlDirective, decorators: [{
192
192
  type: Directive,
193
193
  args: [{
194
194
  standalone: true,
@@ -217,10 +217,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
217
217
  * @see {BaseSearchFilterPipe}
218
218
  */
219
219
  class SelectSearchFilterPipe extends BaseSearchFilterPipe {
220
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectSearchFilterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
221
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: SelectSearchFilterPipe, isStandalone: true, name: "odxSelectSearchFilter", pure: false }); }
220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectSearchFilterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
221
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: SelectSearchFilterPipe, isStandalone: true, name: "odxSelectSearchFilter", pure: false }); }
222
222
  }
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectSearchFilterPipe, decorators: [{
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectSearchFilterPipe, decorators: [{
224
224
  type: Pipe,
225
225
  args: [{
226
226
  pure: false,
@@ -483,8 +483,8 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
483
483
  this.isIndeterminateSelection.set(!allSelected && options.some((option) => option.isSelected));
484
484
  this.allOptionSelected.set(allSelected);
485
485
  }
486
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
487
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectComponent, isStandalone: true, selector: "odx-select", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, hasSelectAll: { classPropertyName: "hasSelectAll", publicName: "hasSelectAll", isSignal: true, isRequired: false, transformFunction: null }, hasSelectAllText: { classPropertyName: "hasSelectAllText", publicName: "hasSelectAllText", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, selectedOptionTemplate: { classPropertyName: "selectedOptionTemplate", publicName: "selectedOptionTemplate", isSignal: false, isRequired: false, transformFunction: null }, identityMatcher: { classPropertyName: "identityMatcher", publicName: "identityMatcher", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "handleControllerEvent($event)" }, properties: { "tabindex": "isDisabled || searchField ? -1 : 0", "attr.aria-multiselectable": "multiple" } }, providers: [
486
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
487
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: SelectComponent, isStandalone: true, selector: "odx-select", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, hasSelectAll: { classPropertyName: "hasSelectAll", publicName: "hasSelectAll", isSignal: true, isRequired: false, transformFunction: null }, hasSelectAllText: { classPropertyName: "hasSelectAllText", publicName: "hasSelectAllText", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, selectedOptionTemplate: { classPropertyName: "selectedOptionTemplate", publicName: "selectedOptionTemplate", isSignal: false, isRequired: false, transformFunction: null }, identityMatcher: { classPropertyName: "identityMatcher", publicName: "identityMatcher", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "handleControllerEvent($event)" }, properties: { "tabindex": "isDisabled || searchField ? -1 : 0", "attr.aria-multiselectable": "multiple" } }, providers: [
488
488
  {
489
489
  provide: SELECT_CONTROL,
490
490
  useExisting: forwardRef(() => SelectComponent),
@@ -493,7 +493,7 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
493
493
  provide: ODX_SEARCH_FILTER_HOST,
494
494
  useExisting: SELECT_CONTROL,
495
495
  },
496
- ], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "selectAllDirective", first: true, predicate: SelectAllDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n @if (showSelectedValue) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n </div>\n } @else if (showPlaceholder) {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n\n <ng-content select=\"[odxSelectSearchField]\" />\n\n <odx-action-group class=\"odx-no-margin\">\n @if (clearable() && showSelectedValue) {\n <button class=\"odx-select__clear\" odxButton (click)=\"resetValue($event)\" type=\"button\">\n <odx-icon name=\"core::close\" />\n </button>\n }\n <button odxButton type=\"button\">\n <odx-icon class=\"odx-select__indicator\" name=\"core::chevron-down\" />\n </button>\n </odx-action-group>\n</div>\n\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\n @if (hasSelectAll() && multiple) {\n <div odxSelectAll (click)=\"clickSelectAll($event)\" class=\"odx-option odx-option--select-all\">\n <odx-checkbox [indeterminate]=\"isIndeterminateSelection()\" [checked]=\"allOptionSelected()\">{{ hasSelectAllText() }}</odx-checkbox>\n </div>\n }\n <ng-content />\n } @else {\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\" />\n </odx-select-option>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: SelectOptionComponent, selector: "odx-select-option, odx-option", inputs: ["notFoundMessage", "disabled"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2$1.CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }, { kind: "directive", type: SelectAllDirective, selector: "[odxSelectAll]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
496
+ ], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "selectAllDirective", first: true, predicate: SelectAllDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"dropdownOptions()\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n @if (showSelectedValue) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n </div>\n } @else if (showPlaceholder) {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n\n <ng-content select=\"[odxSelectSearchField]\" />\n\n <odx-action-group class=\"odx-no-margin\">\n @if (clearable() && showSelectedValue) {\n <button class=\"odx-select__clear\" odxButton (click)=\"resetValue($event)\" type=\"button\">\n <odx-icon name=\"core::close\" />\n </button>\n }\n <button odxButton type=\"button\">\n <odx-icon class=\"odx-select__indicator\" name=\"core::chevron-down\" />\n </button>\n </odx-action-group>\n</div>\n\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\n @if (hasSelectAll() && multiple) {\n <div odxSelectAll (click)=\"clickSelectAll($event)\" class=\"odx-option odx-option--select-all\">\n <odx-checkbox [indeterminate]=\"isIndeterminateSelection()\" [checked]=\"allOptionSelected()\">{{ hasSelectAllText() }}</odx-checkbox>\n </div>\n }\n <ng-content />\n } @else {\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\" />\n </odx-select-option>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: SelectOptionComponent, selector: "odx-select-option, odx-option", inputs: ["notFoundMessage", "disabled"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2$1.CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }, { kind: "directive", type: SelectAllDirective, selector: "[odxSelectAll]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
497
497
  };
498
498
  __decorate([
499
499
  CSSModifier()
@@ -501,7 +501,7 @@ __decorate([
501
501
  SelectComponent = __decorate([
502
502
  CSSComponent('select')
503
503
  ], SelectComponent);
504
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectComponent, decorators: [{
504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectComponent, decorators: [{
505
505
  type: Component,
506
506
  args: [{ standalone: true, selector: 'odx-select', imports: [
507
507
  DropdownDirective,
@@ -524,7 +524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
524
524
  ], host: {
525
525
  '[tabindex]': 'isDisabled || searchField ? -1 : 0',
526
526
  '[attr.aria-multiselectable]': 'multiple',
527
- }, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n @if (showSelectedValue) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n </div>\n } @else if (showPlaceholder) {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n\n <ng-content select=\"[odxSelectSearchField]\" />\n\n <odx-action-group class=\"odx-no-margin\">\n @if (clearable() && showSelectedValue) {\n <button class=\"odx-select__clear\" odxButton (click)=\"resetValue($event)\" type=\"button\">\n <odx-icon name=\"core::close\" />\n </button>\n }\n <button odxButton type=\"button\">\n <odx-icon class=\"odx-select__indicator\" name=\"core::chevron-down\" />\n </button>\n </odx-action-group>\n</div>\n\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\n @if (hasSelectAll() && multiple) {\n <div odxSelectAll (click)=\"clickSelectAll($event)\" class=\"odx-option odx-option--select-all\">\n <odx-checkbox [indeterminate]=\"isIndeterminateSelection()\" [checked]=\"allOptionSelected()\">{{ hasSelectAllText() }}</odx-checkbox>\n </div>\n }\n <ng-content />\n } @else {\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\" />\n </odx-select-option>\n }\n </div>\n</ng-template>\n" }]
527
+ }, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"dropdownOptions()\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n @if (showSelectedValue) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n </div>\n } @else if (showPlaceholder) {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n\n <ng-content select=\"[odxSelectSearchField]\" />\n\n <odx-action-group class=\"odx-no-margin\">\n @if (clearable() && showSelectedValue) {\n <button class=\"odx-select__clear\" odxButton (click)=\"resetValue($event)\" type=\"button\">\n <odx-icon name=\"core::close\" />\n </button>\n }\n <button odxButton type=\"button\">\n <odx-icon class=\"odx-select__indicator\" name=\"core::chevron-down\" />\n </button>\n </odx-action-group>\n</div>\n\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\n @if (hasSelectAll() && multiple) {\n <div odxSelectAll (click)=\"clickSelectAll($event)\" class=\"odx-option odx-option--select-all\">\n <odx-checkbox [indeterminate]=\"isIndeterminateSelection()\" [checked]=\"allOptionSelected()\">{{ hasSelectAllText() }}</odx-checkbox>\n </div>\n }\n <ng-content />\n } @else {\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\" />\n </odx-select-option>\n }\n </div>\n</ng-template>\n" }]
528
528
  }], propDecorators: { options: [{
529
529
  type: ContentChildren,
530
530
  args: [SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
@@ -550,11 +550,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
550
550
 
551
551
  const modules = [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent];
552
552
  class SelectModule {
553
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
554
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent], exports: [CoreModule, SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent] }); }
555
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectOptionComponent, CoreModule] }); }
553
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
554
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent], exports: [CoreModule, SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent] }); }
555
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectOptionComponent, CoreModule] }); }
556
556
  }
557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectModule, decorators: [{
557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectModule, decorators: [{
558
558
  type: NgModule,
559
559
  args: [{
560
560
  imports: modules,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-select.mjs","sources":["../../../../libs/angular/components/select/src/lib/select.tokens.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.html","../../../../libs/angular/components/select/src/lib/directives/select-all.directive.ts","../../../../libs/angular/components/select/src/lib/directives/select-input-control.directive.ts","../../../../libs/angular/components/select/src/lib/pipes/select-search-filter.pipe.ts","../../../../libs/angular/components/select/src/lib/select.component.ts","../../../../libs/angular/components/select/src/lib/select.component.html","../../../../libs/angular/components/select/src/lib/select.module.ts","../../../../libs/angular/components/select/src/odx-angular-components-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SelectComponent } from './select.component';\n\nexport const SELECT_CONTROL = new InjectionToken<SelectComponent>('@odx/angular/components/select::SelectComponent');\n","import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn } from '@odx/angular/utils';\nimport { SELECT_CONTROL } from '../../select.tokens';\n\n/**\n * SelectOptionComponent is a customizable option element for use within a SelectComponent.\n * It supports complex data structures, integration with checkbox components for multi-select,\n * and can be disabled as needed.\n * It extends OptionControl to provide additional behavior specific to select components.\n *\n * @template T - The type of the value selected in the option.\n * @see {OptionControl}\n */\n@CSSComponent('select-option')\n@Component({\n standalone: true,\n selector: 'odx-select-option, odx-option',\n imports: [CoreModule, CheckboxComponent],\n templateUrl: './select-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n },\n})\nexport class SelectOptionComponent<T = unknown> extends OptionControl<T> implements OnInit {\n private _isDisabled = false;\n\n protected readonly selectControl = inject(SELECT_CONTROL);\n\n /**\n * Indicates whether the option is currently selected.\n *\n * @type {boolean}\n */\n public isSelected = false;\n\n /**\n * Indicates whether a not found message should be displayed, used typically for search results.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public notFoundMessage = false;\n\n /**\n * Setter for the disabled state of the select option.\n *\n * @param value - The new value for the disabled state.\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n this._isDisabled = value;\n }\n\n /**\n * Getter for the disabled state of the select option.\n *\n * @returns {boolean} The current disabled state of the option.\n */\n public get disabled(): boolean {\n return this._isDisabled;\n }\n\n constructor() {\n super();\n\n detectControllerChanges(this.selectControl)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.isSelected = this.selectControl.isOptionSelected(this);\n });\n }\n\n public ngOnInit(): void {\n this.isSelected = this.selectControl.isOptionSelected(this);\n }\n\n /**\n * Sets active styles for the option when it becomes the target of keyboard navigation or mouse hover.\n */\n public setActiveStyles(): void {\n if (this.disabled) return;\n\n deferFn(() => {\n this.isActive = true;\n this.cdr.markForCheck();\n });\n\n if (this.selectControl.isOpen) {\n this.selectControl.scrollOptionIntoView(this);\n } else {\n this.selectControl.selectOption(this);\n }\n }\n\n /**\n * Toggles the selection state of the option when it is part of a multi-select control.\n */\n public switchCheckbox(): void {\n if (this.selectControl.multiple) {\n this.isSelected = !this.isSelected;\n this.cdr.markForCheck();\n }\n }\n\n protected selectOption(): void {\n this.selectControl.selectOption(this);\n }\n}\n","@if (selectControl.multiple && !notFoundMessage) {\n <odx-checkbox [checked]=\"isSelected\" [disabled]=\"disabled\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </odx-checkbox>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n selector: '[odxSelectAll]',\n standalone: true,\n host: {\n role: 'option',\n '[class.is-active]': 'isActive',\n },\n})\nexport class SelectAllDirective implements Highlightable {\n protected isActive = false;\n protected readonly element: ElementRef<HTMLElement> = injectElement();\n public disabled = false;\n\n public setActiveStyles(): void {\n this.isActive = true;\n }\n\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n\n public getLabel?(): string {\n return this.element.nativeElement.textContent?.trim() ?? '';\n }\n}\n","import { computed, Directive, HostListener, Input, signal } from '@angular/core';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn } from '@odx/angular/utils';\n\n/**\n * SelectInputControlDirective extends InputControlDirective to provide additional behavior\n * specific to select components with search functionality. This directive manages interactions\n * within the search input field, such as resetting the field content upon specific key events.\n *\n * @see {InputControlDirective}\n */\n@CSSComponent('select__control')\n@Directive({\n standalone: true,\n selector: 'input[odxSelectSearchField]',\n host: {\n '[class.is-visible]': 'isVisible()',\n '[attr.readonly]': 'isReadonly()',\n },\n})\nexport class SelectInputControlDirective extends InputControlDirective {\n /**\n * @internal\n */\n protected isReadonly = computed(() => deferFn(() => (this.isVisible() ? null : true)));\n /**\n * @internal\n */\n public isVisible = signal(false);\n\n /**\n * Dynamic content to be displayed when no matching search results are found.\n * This can be specified as HTML content or a string.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxSelectSearchField')\n public notFoundContent: DynamicContent | null = null;\n\n @HostListener('keydown.delete')\n protected handleDelete(): void {\n this.reset();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BaseSearchFilterPipe } from '@odx/angular/cdk/autocomplete-control';\n/**\n * SelectSearchFilterPipe extends BaseSearchFilterPipe to provide search filtering functionality\n * specifically for select components. It filters options based on the input query, supporting\n * complex filtering logic as defined in the BaseSearchFilterPipe.\n *\n * This pipe is not pure, meaning it updates and reevaluates when inputs change or when\n * impure actions occur in the application.\n *\n * @see {BaseSearchFilterPipe}\n */\n@Pipe({\n pure: false,\n name: 'odxSelectSearchFilter',\n standalone: true,\n})\nexport class SelectSearchFilterPipe extends BaseSearchFilterPipe implements PipeTransform {}\n","import { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n HostListener,\n inject,\n input,\n Input,\n QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IdentityMatcher, ODX_IDENTITY_MATCHER } from '@odx/angular';\nimport { AutocompleteControl, ODX_SEARCH_FILTER_HOST } from '@odx/angular/cdk/autocomplete-control';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { CheckboxModule } from '@odx/angular/components/checkbox';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromQueryList } from '@odx/angular/rxjs';\nimport { deferFn } from '@odx/angular/utils';\nimport { SelectOptionComponent } from './components';\nimport { SelectAllDirective, SelectInputControlDirective } from './directives';\nimport { SELECT_CONTROL } from './select.tokens';\n\n/**\n * SelectComponent provides an advanced dropdown list that supports autocomplete, multiple selection,\n * and accessibility features. It extends AutocompleteControl for seamless integration with Angular forms.\n *\n * @template T - The type of the value selected in the select.\n *\n * @see {AutocompleteControl}\n */\n@CSSComponent('select')\n@Component({\n standalone: true,\n selector: 'odx-select',\n imports: [\n DropdownDirective,\n ActionGroupComponent,\n IconComponent,\n DynamicViewDirective,\n SelectOptionComponent,\n LoadingSpinnerModule,\n CheckboxModule,\n SelectAllDirective,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: SELECT_CONTROL,\n useExisting: forwardRef(() => SelectComponent),\n },\n {\n provide: ODX_SEARCH_FILTER_HOST,\n useExisting: SELECT_CONTROL,\n },\n ],\n host: {\n '[tabindex]': 'isDisabled || searchField ? -1 : 0',\n '[attr.aria-multiselectable]': 'multiple',\n },\n})\nexport class SelectComponent<T = unknown> extends AutocompleteControl<T | null> implements AfterViewInit {\n protected selectedOption: SelectOptionComponent<T> | null = null;\n protected selectedOptionText: string | null = null;\n\n @ContentChildren(SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n protected options?: QueryList<SelectOptionComponent<T>>;\n\n @ViewChild(SelectAllDirective)\n protected selectAllDirective?: SelectAllDirective;\n\n protected isIndeterminateSelection = signal(false);\n\n protected allOptionSelected = signal(false);\n\n /**\n * Directive managing the search input field within the select.\n *\n * @type {SelectInputControlDirective | undefined}\n */\n @ContentChild(SelectInputControlDirective)\n public searchField?: SelectInputControlDirective;\n\n /**\n * Returns the content of the selected option for display. This can be a template or plain text.\n *\n * @type {TemplateRef<{ $implicit: T | null }> | string | null}\n */\n public get selectedOptionContent(): TemplateRef<{ $implicit: T | null }> | string | null {\n return this.selectedOption ? (this.selectedOptionTemplate ?? this.selectedOptionText) : null;\n }\n\n /**\n * Helper flag: show selected value when search field is hidden and there's selected content.\n */\n public get showSelectedValue(): boolean {\n return !this.searchField?.isVisible() && !!this.selectedOptionContent;\n }\n\n /**\n * Helper flag: show placeholder when search field is hidden and there's no selected content.\n */\n public get showPlaceholder(): boolean {\n return !this.searchField?.isVisible() && !this.selectedOptionContent;\n }\n\n /**\n * Placeholder text for the select input when no option is selected.\n *\n * @type {string}\n * @default ''\n */\n @Input()\n public placeholder = '';\n\n /**\n * When set to true, the select will display a reset button.\n *\n * @type {boolean}\n * @default false\n */\n public clearable = input(false, { transform: booleanAttribute });\n\n /**\n * When set to true, the select will display a select all button.\n *\n * @type {boolean}\n * @default false\n */\n public hasSelectAll = input(false, { transform: booleanAttribute });\n\n /**\n * Text to display for the select all button.\n *\n * @type {string}\n * @default 'Select all'\n */\n public hasSelectAllText = input('Select all');\n\n /**\n * Sets whether multiple options can be selected.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public multiple = false;\n\n /**\n * Custom template for displaying the selected option.\n *\n * @type {TemplateRef<{ $implicit: T }> | null}\n * @default null\n */\n @Input()\n public selectedOptionTemplate?: TemplateRef<{ $implicit: T }> | null = null;\n\n /**\n * Function to determine if two options are identical, useful for detecting changes in selection.\n *\n * @type {IdentityMatcher<T | null>}\n * @default ODX_DEFAULT_IDENTITY_MATCHER\n *\n * @example\n * ```ts\n * (item1, item2) => item1.id === item2.id\n * ```\n */\n @Input()\n public identityMatcher: IdentityMatcher<T | null> = inject(ODX_IDENTITY_MATCHER);\n\n public override ngAfterViewInit(): void {\n if (!this.options) return;\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Registers a function to be called when the value of the select changes.\n *\n * @param {Function} fn The function to be called when the value changes.\n * @returns {void}\n */\n public override registerOnChange(fn: (value: T | null) => void): void {\n super.registerOnChange((value) => {\n this.updateSelectedOption();\n fn(value);\n });\n }\n\n /**\n * Selects a given option and updates the component's value accordingly.\n *\n * @param {SelectOptionComponent<T | T[]> | null} option The option to select.\n * @returns {void}\n */\n public selectOption(option?: SelectOptionComponent<T | T[]> | null): void {\n if (!option || option.disabled) return;\n option.switchCheckbox();\n this.selectAllHandler();\n const value = this.multiple ? this.multipleSelectValueResolver(option as SelectOptionComponent<T>) : option.value;\n this.updateValue((value as T) ?? null);\n this.optionSelected.emit(option.value as T);\n !this.multiple && this.closeDropdown();\n }\n\n /**\n * Checks whether a given option is selected.\n *\n * @param {SelectOptionComponent<T | T[]>} option The option to check.\n * @returns {boolean} Whether the option is selected.\n */\n public isOptionSelected(option: SelectOptionComponent<T | T[]>): boolean {\n if (option) {\n if (this.multiple && Array.isArray(this.value)) {\n return (this.value as T[]).some((val) => this.identityMatcher(option.value as T, val));\n }\n return this.identityMatcher(option.value as T, this.value);\n }\n return false;\n }\n\n protected override initKeyManager(options: Highlightable[]): void {\n this.keyManager = new ActiveDescendantKeyManager<Highlightable>(options).withHomeAndEnd().skipPredicate((item) => !!item.disabled);\n }\n\n protected handleQueryListOption(options: QueryList<SelectOptionComponent<T>>): void {\n fromQueryList(options)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.updateSelectedOption();\n if (this.isOpen) {\n deferFn(() => this.activateSelectedOption());\n }\n });\n }\n\n protected handleSearchFieldChanges(): void {\n this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());\n }\n\n protected clickSelectAll(event: Event): void {\n if (this.isLoading || this.readonlyController?.readonly || !this.isOpen) return;\n event.preventDefault();\n event.stopImmediatePropagation();\n const options = this.options?.toArray().filter((option) => !option.disabled);\n if (!options) return;\n const allSelected = options.every((option) => option.isSelected);\n options.forEach((option) => {\n if (allSelected || !option.isSelected) {\n this.selectOption(option);\n }\n });\n this.selectAllHandler();\n }\n\n @HostListener('keydown', ['$event'])\n protected handleControllerEvent(event: KeyboardEvent) {\n if (this.isLoading || this.readonlyController?.readonly || !this.isOpen) return;\n if (this.hasOptions && (event.key === 'Enter' || event.key === 'Tab')) {\n event.preventDefault();\n event.stopImmediatePropagation();\n if (this.keyManager?.activeItem instanceof SelectAllDirective) return this.clickSelectAll(event);\n this.selectOption(this.keyManager?.activeItem as SelectOptionComponent<T> | undefined);\n return;\n }\n this.keyManager?.onKeydown(event);\n }\n\n protected activateSelectedOption(): void {\n let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled) ?? -1;\n if (activeIndex === -1) {\n activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;\n }\n this.keyManager?.setActiveItem(activeIndex);\n }\n\n protected override onDropdownOpen(): void {\n super.onDropdownOpen();\n this.searchField?.isVisible.set(true);\n }\n\n protected override onDropdownClose(): void {\n super.onDropdownClose();\n if (this.searchField?.isVisible()) {\n this.searchField?.isVisible.set(false);\n this.searchField?.reset();\n this.searchField?.blur();\n }\n this.element.nativeElement?.blur();\n }\n\n protected override onDropdownOpened(): void {\n super.onDropdownOpened();\n if (this.options) {\n const highlightableOptions = this.selectAllDirective ? [this.selectAllDirective, ...this.options.toArray()] : this.options.toArray();\n this.initKeyManager(highlightableOptions);\n }\n }\n\n protected override onDropdownClosed(): void {\n super.onDropdownClosed();\n this.searchField?.reset();\n this.keyManager = undefined;\n }\n\n protected resetValue(event: Event): void {\n event.stopPropagation();\n this.updateValue(null);\n }\n\n private updateSelectedOption(): void {\n const options = this.options?.toArray();\n this.selectedOption = options?.find((option) => option.isSelected) ?? null;\n\n if (this.multiple) {\n this.options?.forEach((option) => (option.isSelected = this.isOptionSelected(option)));\n this.selectedOptionText =\n options\n ?.filter(({ isSelected }) => isSelected)\n .map((option) => this.stringify?.(option.value) ?? option.getLabel())\n .join(', ') ?? null;\n\n this.changeDetector.detectChanges();\n return;\n }\n this.selectedOptionText = this.selectedOption ? (this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel()) : null;\n this.changeDetector.detectChanges();\n }\n\n private multipleSelectValueResolver(option: SelectOptionComponent<T>): T {\n let value = Array.isArray(this.value) ? (this.value as T[]) : [];\n if (option.isSelected) {\n (value as T[]) = [...(value as T[]), option.value as T];\n } else {\n value = value.filter((val) => !this.identityMatcher(option.value as T, val));\n }\n return value as T;\n }\n\n private selectAllHandler(): void {\n const options = this.options?.toArray().filter((option) => !option.disabled);\n if (!options) return;\n const allSelected = options.every((option) => option.isSelected);\n this.isIndeterminateSelection.set(!allSelected && options.some((option) => option.isSelected));\n this.allOptionSelected.set(allSelected);\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n @if (showSelectedValue) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n </div>\n } @else if (showPlaceholder) {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n\n <ng-content select=\"[odxSelectSearchField]\" />\n\n <odx-action-group class=\"odx-no-margin\">\n @if (clearable() && showSelectedValue) {\n <button class=\"odx-select__clear\" odxButton (click)=\"resetValue($event)\" type=\"button\">\n <odx-icon name=\"core::close\" />\n </button>\n }\n <button odxButton type=\"button\">\n <odx-icon class=\"odx-select__indicator\" name=\"core::chevron-down\" />\n </button>\n </odx-action-group>\n</div>\n\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\n @if (hasSelectAll() && multiple) {\n <div odxSelectAll (click)=\"clickSelectAll($event)\" class=\"odx-option odx-option--select-all\">\n <odx-checkbox [indeterminate]=\"isIndeterminateSelection()\" [checked]=\"allOptionSelected()\">{{ hasSelectAllText() }}</odx-checkbox>\n </div>\n }\n <ng-content />\n } @else {\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\" />\n </odx-select-option>\n }\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { SelectOptionComponent } from './components';\nimport { SelectInputControlDirective } from './directives';\nimport { SelectSearchFilterPipe } from './pipes';\nimport { SelectComponent } from './select.component';\n\nconst modules = [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-select.mjs","sources":["../../../../libs/angular/components/select/src/lib/select.tokens.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.html","../../../../libs/angular/components/select/src/lib/directives/select-all.directive.ts","../../../../libs/angular/components/select/src/lib/directives/select-input-control.directive.ts","../../../../libs/angular/components/select/src/lib/pipes/select-search-filter.pipe.ts","../../../../libs/angular/components/select/src/lib/select.component.ts","../../../../libs/angular/components/select/src/lib/select.component.html","../../../../libs/angular/components/select/src/lib/select.module.ts","../../../../libs/angular/components/select/src/odx-angular-components-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SelectComponent } from './select.component';\n\nexport const SELECT_CONTROL = new InjectionToken<SelectComponent>('@odx/angular/components/select::SelectComponent');\n","import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn } from '@odx/angular/utils';\nimport { SELECT_CONTROL } from '../../select.tokens';\n\n/**\n * SelectOptionComponent is a customizable option element for use within a SelectComponent.\n * It supports complex data structures, integration with checkbox components for multi-select,\n * and can be disabled as needed.\n * It extends OptionControl to provide additional behavior specific to select components.\n *\n * @template T - The type of the value selected in the option.\n * @see {OptionControl}\n */\n@CSSComponent('select-option')\n@Component({\n standalone: true,\n selector: 'odx-select-option, odx-option',\n imports: [CoreModule, CheckboxComponent],\n templateUrl: './select-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n },\n})\nexport class SelectOptionComponent<T = unknown> extends OptionControl<T> implements OnInit {\n private _isDisabled = false;\n\n protected readonly selectControl = inject(SELECT_CONTROL);\n\n /**\n * Indicates whether the option is currently selected.\n *\n * @type {boolean}\n */\n public isSelected = false;\n\n /**\n * Indicates whether a not found message should be displayed, used typically for search results.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public notFoundMessage = false;\n\n /**\n * Setter for the disabled state of the select option.\n *\n * @param value - The new value for the disabled state.\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n this._isDisabled = value;\n }\n\n /**\n * Getter for the disabled state of the select option.\n *\n * @returns {boolean} The current disabled state of the option.\n */\n public get disabled(): boolean {\n return this._isDisabled;\n }\n\n constructor() {\n super();\n\n detectControllerChanges(this.selectControl)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.isSelected = this.selectControl.isOptionSelected(this);\n });\n }\n\n public ngOnInit(): void {\n this.isSelected = this.selectControl.isOptionSelected(this);\n }\n\n /**\n * Sets active styles for the option when it becomes the target of keyboard navigation or mouse hover.\n */\n public setActiveStyles(): void {\n if (this.disabled) return;\n\n deferFn(() => {\n this.isActive = true;\n this.cdr.markForCheck();\n });\n\n if (this.selectControl.isOpen) {\n this.selectControl.scrollOptionIntoView(this);\n } else {\n this.selectControl.selectOption(this);\n }\n }\n\n /**\n * Toggles the selection state of the option when it is part of a multi-select control.\n */\n public switchCheckbox(): void {\n if (this.selectControl.multiple) {\n this.isSelected = !this.isSelected;\n this.cdr.markForCheck();\n }\n }\n\n protected selectOption(): void {\n this.selectControl.selectOption(this);\n }\n}\n","@if (selectControl.multiple && !notFoundMessage) {\n <odx-checkbox [checked]=\"isSelected\" [disabled]=\"disabled\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </odx-checkbox>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n selector: '[odxSelectAll]',\n standalone: true,\n host: {\n role: 'option',\n '[class.is-active]': 'isActive',\n },\n})\nexport class SelectAllDirective implements Highlightable {\n protected isActive = false;\n protected readonly element: ElementRef<HTMLElement> = injectElement();\n public disabled = false;\n\n public setActiveStyles(): void {\n this.isActive = true;\n }\n\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n\n public getLabel?(): string {\n return this.element.nativeElement.textContent?.trim() ?? '';\n }\n}\n","import { computed, Directive, HostListener, Input, signal } from '@angular/core';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn } from '@odx/angular/utils';\n\n/**\n * SelectInputControlDirective extends InputControlDirective to provide additional behavior\n * specific to select components with search functionality. This directive manages interactions\n * within the search input field, such as resetting the field content upon specific key events.\n *\n * @see {InputControlDirective}\n */\n@CSSComponent('select__control')\n@Directive({\n standalone: true,\n selector: 'input[odxSelectSearchField]',\n host: {\n '[class.is-visible]': 'isVisible()',\n '[attr.readonly]': 'isReadonly()',\n },\n})\nexport class SelectInputControlDirective extends InputControlDirective {\n /**\n * @internal\n */\n protected isReadonly = computed(() => deferFn(() => (this.isVisible() ? null : true)));\n /**\n * @internal\n */\n public isVisible = signal(false);\n\n /**\n * Dynamic content to be displayed when no matching search results are found.\n * This can be specified as HTML content or a string.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxSelectSearchField')\n public notFoundContent: DynamicContent | null = null;\n\n @HostListener('keydown.delete')\n protected handleDelete(): void {\n this.reset();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BaseSearchFilterPipe } from '@odx/angular/cdk/autocomplete-control';\n/**\n * SelectSearchFilterPipe extends BaseSearchFilterPipe to provide search filtering functionality\n * specifically for select components. It filters options based on the input query, supporting\n * complex filtering logic as defined in the BaseSearchFilterPipe.\n *\n * This pipe is not pure, meaning it updates and reevaluates when inputs change or when\n * impure actions occur in the application.\n *\n * @see {BaseSearchFilterPipe}\n */\n@Pipe({\n pure: false,\n name: 'odxSelectSearchFilter',\n standalone: true,\n})\nexport class SelectSearchFilterPipe extends BaseSearchFilterPipe implements PipeTransform {}\n","import { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n HostListener,\n inject,\n input,\n Input,\n QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IdentityMatcher, ODX_IDENTITY_MATCHER } from '@odx/angular';\nimport { AutocompleteControl, ODX_SEARCH_FILTER_HOST } from '@odx/angular/cdk/autocomplete-control';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { CheckboxModule } from '@odx/angular/components/checkbox';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromQueryList } from '@odx/angular/rxjs';\nimport { deferFn } from '@odx/angular/utils';\nimport { SelectOptionComponent } from './components';\nimport { SelectAllDirective, SelectInputControlDirective } from './directives';\nimport { SELECT_CONTROL } from './select.tokens';\n\n/**\n * SelectComponent provides an advanced dropdown list that supports autocomplete, multiple selection,\n * and accessibility features. It extends AutocompleteControl for seamless integration with Angular forms.\n *\n * @template T - The type of the value selected in the select.\n *\n * @see {AutocompleteControl}\n */\n@CSSComponent('select')\n@Component({\n standalone: true,\n selector: 'odx-select',\n imports: [\n DropdownDirective,\n ActionGroupComponent,\n IconComponent,\n DynamicViewDirective,\n SelectOptionComponent,\n LoadingSpinnerModule,\n CheckboxModule,\n SelectAllDirective,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: SELECT_CONTROL,\n useExisting: forwardRef(() => SelectComponent),\n },\n {\n provide: ODX_SEARCH_FILTER_HOST,\n useExisting: SELECT_CONTROL,\n },\n ],\n host: {\n '[tabindex]': 'isDisabled || searchField ? -1 : 0',\n '[attr.aria-multiselectable]': 'multiple',\n },\n})\nexport class SelectComponent<T = unknown> extends AutocompleteControl<T | null> implements AfterViewInit {\n protected selectedOption: SelectOptionComponent<T> | null = null;\n protected selectedOptionText: string | null = null;\n\n @ContentChildren(SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n protected options?: QueryList<SelectOptionComponent<T>>;\n\n @ViewChild(SelectAllDirective)\n protected selectAllDirective?: SelectAllDirective;\n\n protected isIndeterminateSelection = signal(false);\n\n protected allOptionSelected = signal(false);\n\n /**\n * Directive managing the search input field within the select.\n *\n * @type {SelectInputControlDirective | undefined}\n */\n @ContentChild(SelectInputControlDirective)\n public searchField?: SelectInputControlDirective;\n\n /**\n * Returns the content of the selected option for display. This can be a template or plain text.\n *\n * @type {TemplateRef<{ $implicit: T | null }> | string | null}\n */\n public get selectedOptionContent(): TemplateRef<{ $implicit: T | null }> | string | null {\n return this.selectedOption ? (this.selectedOptionTemplate ?? this.selectedOptionText) : null;\n }\n\n /**\n * Helper flag: show selected value when search field is hidden and there's selected content.\n */\n public get showSelectedValue(): boolean {\n return !this.searchField?.isVisible() && !!this.selectedOptionContent;\n }\n\n /**\n * Helper flag: show placeholder when search field is hidden and there's no selected content.\n */\n public get showPlaceholder(): boolean {\n return !this.searchField?.isVisible() && !this.selectedOptionContent;\n }\n\n /**\n * Placeholder text for the select input when no option is selected.\n *\n * @type {string}\n * @default ''\n */\n @Input()\n public placeholder = '';\n\n /**\n * When set to true, the select will display a reset button.\n *\n * @type {boolean}\n * @default false\n */\n public clearable = input(false, { transform: booleanAttribute });\n\n /**\n * When set to true, the select will display a select all button.\n *\n * @type {boolean}\n * @default false\n */\n public hasSelectAll = input(false, { transform: booleanAttribute });\n\n /**\n * Text to display for the select all button.\n *\n * @type {string}\n * @default 'Select all'\n */\n public hasSelectAllText = input('Select all');\n\n /**\n * Sets whether multiple options can be selected.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public multiple = false;\n\n /**\n * Custom template for displaying the selected option.\n *\n * @type {TemplateRef<{ $implicit: T }> | null}\n * @default null\n */\n @Input()\n public selectedOptionTemplate?: TemplateRef<{ $implicit: T }> | null = null;\n\n /**\n * Function to determine if two options are identical, useful for detecting changes in selection.\n *\n * @type {IdentityMatcher<T | null>}\n * @default ODX_DEFAULT_IDENTITY_MATCHER\n *\n * @example\n * ```ts\n * (item1, item2) => item1.id === item2.id\n * ```\n */\n @Input()\n public identityMatcher: IdentityMatcher<T | null> = inject(ODX_IDENTITY_MATCHER);\n\n public override ngAfterViewInit(): void {\n if (!this.options) return;\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Registers a function to be called when the value of the select changes.\n *\n * @param {Function} fn The function to be called when the value changes.\n * @returns {void}\n */\n public override registerOnChange(fn: (value: T | null) => void): void {\n super.registerOnChange((value) => {\n this.updateSelectedOption();\n fn(value);\n });\n }\n\n /**\n * Selects a given option and updates the component's value accordingly.\n *\n * @param {SelectOptionComponent<T | T[]> | null} option The option to select.\n * @returns {void}\n */\n public selectOption(option?: SelectOptionComponent<T | T[]> | null): void {\n if (!option || option.disabled) return;\n option.switchCheckbox();\n this.selectAllHandler();\n const value = this.multiple ? this.multipleSelectValueResolver(option as SelectOptionComponent<T>) : option.value;\n this.updateValue((value as T) ?? null);\n this.optionSelected.emit(option.value as T);\n !this.multiple && this.closeDropdown();\n }\n\n /**\n * Checks whether a given option is selected.\n *\n * @param {SelectOptionComponent<T | T[]>} option The option to check.\n * @returns {boolean} Whether the option is selected.\n */\n public isOptionSelected(option: SelectOptionComponent<T | T[]>): boolean {\n if (option) {\n if (this.multiple && Array.isArray(this.value)) {\n return (this.value as T[]).some((val) => this.identityMatcher(option.value as T, val));\n }\n return this.identityMatcher(option.value as T, this.value);\n }\n return false;\n }\n\n protected override initKeyManager(options: Highlightable[]): void {\n this.keyManager = new ActiveDescendantKeyManager<Highlightable>(options).withHomeAndEnd().skipPredicate((item) => !!item.disabled);\n }\n\n protected handleQueryListOption(options: QueryList<SelectOptionComponent<T>>): void {\n fromQueryList(options)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.updateSelectedOption();\n if (this.isOpen) {\n deferFn(() => this.activateSelectedOption());\n }\n });\n }\n\n protected handleSearchFieldChanges(): void {\n this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());\n }\n\n protected clickSelectAll(event: Event): void {\n if (this.isLoading || this.readonlyController?.readonly || !this.isOpen) return;\n event.preventDefault();\n event.stopImmediatePropagation();\n const options = this.options?.toArray().filter((option) => !option.disabled);\n if (!options) return;\n const allSelected = options.every((option) => option.isSelected);\n options.forEach((option) => {\n if (allSelected || !option.isSelected) {\n this.selectOption(option);\n }\n });\n this.selectAllHandler();\n }\n\n @HostListener('keydown', ['$event'])\n protected handleControllerEvent(event: KeyboardEvent) {\n if (this.isLoading || this.readonlyController?.readonly || !this.isOpen) return;\n if (this.hasOptions && (event.key === 'Enter' || event.key === 'Tab')) {\n event.preventDefault();\n event.stopImmediatePropagation();\n if (this.keyManager?.activeItem instanceof SelectAllDirective) return this.clickSelectAll(event);\n this.selectOption(this.keyManager?.activeItem as SelectOptionComponent<T> | undefined);\n return;\n }\n this.keyManager?.onKeydown(event);\n }\n\n protected activateSelectedOption(): void {\n let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled) ?? -1;\n if (activeIndex === -1) {\n activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;\n }\n this.keyManager?.setActiveItem(activeIndex);\n }\n\n protected override onDropdownOpen(): void {\n super.onDropdownOpen();\n this.searchField?.isVisible.set(true);\n }\n\n protected override onDropdownClose(): void {\n super.onDropdownClose();\n if (this.searchField?.isVisible()) {\n this.searchField?.isVisible.set(false);\n this.searchField?.reset();\n this.searchField?.blur();\n }\n this.element.nativeElement?.blur();\n }\n\n protected override onDropdownOpened(): void {\n super.onDropdownOpened();\n if (this.options) {\n const highlightableOptions = this.selectAllDirective ? [this.selectAllDirective, ...this.options.toArray()] : this.options.toArray();\n this.initKeyManager(highlightableOptions);\n }\n }\n\n protected override onDropdownClosed(): void {\n super.onDropdownClosed();\n this.searchField?.reset();\n this.keyManager = undefined;\n }\n\n protected resetValue(event: Event): void {\n event.stopPropagation();\n this.updateValue(null);\n }\n\n private updateSelectedOption(): void {\n const options = this.options?.toArray();\n this.selectedOption = options?.find((option) => option.isSelected) ?? null;\n\n if (this.multiple) {\n this.options?.forEach((option) => (option.isSelected = this.isOptionSelected(option)));\n this.selectedOptionText =\n options\n ?.filter(({ isSelected }) => isSelected)\n .map((option) => this.stringify?.(option.value) ?? option.getLabel())\n .join(', ') ?? null;\n\n this.changeDetector.detectChanges();\n return;\n }\n this.selectedOptionText = this.selectedOption ? (this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel()) : null;\n this.changeDetector.detectChanges();\n }\n\n private multipleSelectValueResolver(option: SelectOptionComponent<T>): T {\n let value = Array.isArray(this.value) ? (this.value as T[]) : [];\n if (option.isSelected) {\n (value as T[]) = [...(value as T[]), option.value as T];\n } else {\n value = value.filter((val) => !this.identityMatcher(option.value as T, val));\n }\n return value as T;\n }\n\n private selectAllHandler(): void {\n const options = this.options?.toArray().filter((option) => !option.disabled);\n if (!options) return;\n const allSelected = options.every((option) => option.isSelected);\n this.isIndeterminateSelection.set(!allSelected && options.some((option) => option.isSelected));\n this.allOptionSelected.set(allSelected);\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"dropdownOptions()\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n @if (showSelectedValue) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n </div>\n } @else if (showPlaceholder) {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n\n <ng-content select=\"[odxSelectSearchField]\" />\n\n <odx-action-group class=\"odx-no-margin\">\n @if (clearable() && showSelectedValue) {\n <button class=\"odx-select__clear\" odxButton (click)=\"resetValue($event)\" type=\"button\">\n <odx-icon name=\"core::close\" />\n </button>\n }\n <button odxButton type=\"button\">\n <odx-icon class=\"odx-select__indicator\" name=\"core::chevron-down\" />\n </button>\n </odx-action-group>\n</div>\n\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\n @if (hasSelectAll() && multiple) {\n <div odxSelectAll (click)=\"clickSelectAll($event)\" class=\"odx-option odx-option--select-all\">\n <odx-checkbox [indeterminate]=\"isIndeterminateSelection()\" [checked]=\"allOptionSelected()\">{{ hasSelectAllText() }}</odx-checkbox>\n </div>\n }\n <ng-content />\n } @else {\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\" />\n </odx-select-option>\n }\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { SelectOptionComponent } from './components';\nimport { SelectInputControlDirective } from './directives';\nimport { SelectSearchFilterPipe } from './pipes';\nimport { SelectComponent } from './select.component';\n\nconst modules = [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -44,13 +44,13 @@ let SliderDirective = class SliderDirective {
44
44
  get valuePercentage() {
45
45
  return (100 * (this.value - this.min)) / (this.max - this.min) || 0;
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: SliderDirective, isStandalone: true, selector: "input[type=range][odxSlider]", host: { properties: { "style.--odx-slider-filled.%": "this.valuePercentage" } }, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0 }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: SliderDirective, isStandalone: true, selector: "input[type=range][odxSlider]", host: { properties: { "style.--odx-slider-filled.%": "this.valuePercentage" } }, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0 }); }
49
49
  };
50
50
  SliderDirective = __decorate([
51
51
  CSSComponent('slider')
52
52
  ], SliderDirective);
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SliderDirective, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SliderDirective, decorators: [{
54
54
  type: Directive,
55
55
  args: [{
56
56
  standalone: true,
@@ -114,13 +114,13 @@ let SpinboxComponent = class SpinboxComponent extends CustomFormControl {
114
114
  element.removeEventListener('keyup', handleKeyUp);
115
115
  };
116
116
  }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpinboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.16", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: ["max", "max", numberAttribute], min: ["min", "min", numberAttribute], step: ["step", "step", numberAttribute] }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"core::minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"checkAndUpdate()\"\n (blur)=\"checkAndUpdate()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"core::plus\" /></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SpinboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.18", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: ["max", "max", numberAttribute], min: ["min", "min", numberAttribute], step: ["step", "step", numberAttribute] }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"core::minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"checkAndUpdate()\"\n (blur)=\"checkAndUpdate()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"core::plus\" /></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["size", "name", "set", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
119
119
  };
120
120
  SpinboxComponent = __decorate([
121
121
  CSSComponent('spinbox')
122
122
  ], SpinboxComponent);
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpinboxComponent, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SpinboxComponent, decorators: [{
124
124
  type: Component,
125
125
  args: [{ standalone: true, selector: 'odx-spinbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective, IconComponent], providers: [DisabledController.connect(), ReadonlyController.connect()], template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"core::minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"checkAndUpdate()\"\n (blur)=\"checkAndUpdate()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"core::plus\" /></button>\n" }]
126
126
  }], ctorParameters: () => [], propDecorators: { decrementButton: [{