@odx/angular 12.4.2 → 12.6.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 (152) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +3 -3
  3. package/components/bar/lib/directives/bar-button.directive.d.ts +2 -1
  4. package/components/select/lib/directives/index.d.ts +1 -0
  5. package/components/select/lib/directives/select-all.directive.d.ts +13 -0
  6. package/components/select/lib/select.component.d.ts +24 -3
  7. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +2 -2
  8. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +2 -2
  9. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +5 -7
  10. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +2 -3
  11. package/esm2022/components/select/lib/directives/index.mjs +2 -1
  12. package/esm2022/components/select/lib/directives/select-all.directive.mjs +33 -0
  13. package/esm2022/components/select/lib/select.component.mjs +69 -16
  14. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  15. package/fesm2022/odx-angular-breakpoints.mjs +1 -1
  16. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  17. package/fesm2022/odx-angular-cdk-a11y.mjs +1 -1
  18. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  19. package/fesm2022/odx-angular-cdk-active-indicator.mjs +1 -1
  20. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  21. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +2 -2
  22. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  23. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +1 -1
  24. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  25. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +1 -1
  26. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  27. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +1 -1
  28. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  29. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +1 -1
  30. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  31. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  32. package/fesm2022/odx-angular-cdk-expandable.mjs +1 -1
  33. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  34. package/fesm2022/odx-angular-cdk-option-control.mjs +1 -1
  35. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  36. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +1 -1
  37. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  38. package/fesm2022/odx-angular-components-accordion.mjs +1 -1
  39. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  40. package/fesm2022/odx-angular-components-action-group.mjs +1 -1
  41. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  42. package/fesm2022/odx-angular-components-area-header.mjs +1 -1
  43. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  44. package/fesm2022/odx-angular-components-autocomplete.mjs +2 -2
  45. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  46. package/fesm2022/odx-angular-components-avatar.mjs +1 -1
  47. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  48. package/fesm2022/odx-angular-components-badge.mjs +1 -1
  49. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  50. package/fesm2022/odx-angular-components-bar.mjs +5 -7
  51. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  52. package/fesm2022/odx-angular-components-breadcrumbs.mjs +1 -1
  53. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  54. package/fesm2022/odx-angular-components-button-group.mjs +1 -1
  55. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  56. package/fesm2022/odx-angular-components-button.mjs +1 -1
  57. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  58. package/fesm2022/odx-angular-components-calendar.mjs +2 -2
  59. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  60. package/fesm2022/odx-angular-components-card.mjs +2 -2
  61. package/fesm2022/odx-angular-components-card.mjs.map +1 -1
  62. package/fesm2022/odx-angular-components-checkbox.mjs +1 -1
  63. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  64. package/fesm2022/odx-angular-components-chip.mjs +1 -1
  65. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  66. package/fesm2022/odx-angular-components-circular-progress.mjs +1 -1
  67. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  68. package/fesm2022/odx-angular-components-content-box.mjs +1 -1
  69. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  70. package/fesm2022/odx-angular-components-datepicker.mjs +2 -2
  71. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  72. package/fesm2022/odx-angular-components-daterangepicker.mjs +3 -3
  73. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  74. package/fesm2022/odx-angular-components-dropdown.mjs +1 -1
  75. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  76. package/fesm2022/odx-angular-components-error-page.mjs +1 -1
  77. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  78. package/fesm2022/odx-angular-components-footer.mjs +2 -2
  79. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  80. package/fesm2022/odx-angular-components-form-field.mjs +1 -1
  81. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  82. package/fesm2022/odx-angular-components-header-navigation.mjs +1 -1
  83. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  84. package/fesm2022/odx-angular-components-header.mjs +1 -1
  85. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  86. package/fesm2022/odx-angular-components-icon.mjs +1 -1
  87. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  88. package/fesm2022/odx-angular-components-inline-message.mjs +1 -1
  89. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  90. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  91. package/fesm2022/odx-angular-components-list.mjs +2 -2
  92. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  93. package/fesm2022/odx-angular-components-loading-spinner.mjs +1 -1
  94. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  95. package/fesm2022/odx-angular-components-logo.mjs +1 -1
  96. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  97. package/fesm2022/odx-angular-components-main-menu.mjs +2 -2
  98. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  99. package/fesm2022/odx-angular-components-mainfilter-group.mjs +1 -1
  100. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  101. package/fesm2022/odx-angular-components-menu.mjs +1 -1
  102. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  103. package/fesm2022/odx-angular-components-modal.mjs +1 -1
  104. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  105. package/fesm2022/odx-angular-components-navigation-back.mjs +1 -1
  106. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  107. package/fesm2022/odx-angular-components-notification-testing.mjs.map +1 -1
  108. package/fesm2022/odx-angular-components-notification.mjs +3 -3
  109. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  110. package/fesm2022/odx-angular-components-paginator.mjs +1 -1
  111. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  112. package/fesm2022/odx-angular-components-progress.mjs +1 -1
  113. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  114. package/fesm2022/odx-angular-components-radio-group.mjs +1 -1
  115. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  116. package/fesm2022/odx-angular-components-rail-navigation.mjs +1 -1
  117. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  118. package/fesm2022/odx-angular-components-rich-list.mjs +1 -1
  119. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  120. package/fesm2022/odx-angular-components-search-bar.mjs.map +1 -1
  121. package/fesm2022/odx-angular-components-select.mjs +101 -19
  122. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  123. package/fesm2022/odx-angular-components-slider.mjs +1 -1
  124. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  125. package/fesm2022/odx-angular-components-spinbox.mjs +1 -1
  126. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  127. package/fesm2022/odx-angular-components-switch.mjs +1 -1
  128. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  129. package/fesm2022/odx-angular-components-tab-bar.mjs +1 -1
  130. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  131. package/fesm2022/odx-angular-components-table.mjs +1 -1
  132. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  133. package/fesm2022/odx-angular-components-timepicker.mjs +2 -2
  134. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  135. package/fesm2022/odx-angular-components-toast.mjs +1 -1
  136. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  137. package/fesm2022/odx-angular-components-toggle-button-group.mjs +1 -1
  138. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  139. package/fesm2022/odx-angular-components-tooltip.mjs +1 -1
  140. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  141. package/fesm2022/odx-angular-components-wizard.mjs +1 -1
  142. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  143. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  144. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  145. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  146. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  147. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  148. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  149. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  150. package/fesm2022/odx-angular.mjs +2 -2
  151. package/fesm2022/odx-angular.mjs.map +1 -1
  152. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-rail-navigation.mjs","sources":["../../../../libs/angular/components/rail-navigation/src/lib/components/rail-navigation-item/rail-navigation-item.component.ts","../../../../libs/angular/components/rail-navigation/src/lib/components/rail-navigation-item/rail-navigation-item.component.html","../../../../libs/angular/components/rail-navigation/src/lib/models/rail-navigation-variant.ts","../../../../libs/angular/components/rail-navigation/src/lib/rail-navigation.component.ts","../../../../libs/angular/components/rail-navigation/src/lib/rail-navigation.component.html","../../../../libs/angular/components/rail-navigation/src/lib/rail-navigation.module.ts","../../../../libs/angular/components/rail-navigation/src/odx-angular-components-rail-navigation.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { WithDisabledState, WithTabIndex } from '@odx/angular';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * RailNavigationItemComponent represents an individual navigation item within a rail navigation system.\n * This component can be used as either a link or a button and integrates with Angular's RouterLinkActive to\n * optionally highlight active navigation items.\n * Has host directives for disabled and tabindex states.\n *\n * @see {WithDisabledState}\n * @see {WithTabIndex}\n */\n@CSSComponent('rail-navigation-item')\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[odxRailNavigationItem][iconName], button[odxRailNavigationItem][iconName]',\n templateUrl: './rail-navigation-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n hostDirectives: [WithDisabledState, WithTabIndex],\n host: {\n '[class.is-selected]': 'isSelected || routerLinkActive?.isActive',\n },\n})\nexport class RailNavigationItemComponent {\n protected readonly routerLinkActive = inject(RouterLinkActive, { optional: true });\n\n public readonly element = injectElement();\n\n /**\n * Indicates whether the navigation item is selected. This can be manually set or derived from router state.\n * Uses booleanAttribute transformer for attribute binding.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public isSelected = false;\n\n /**\n * The name of the icon to be displayed. This input is required.\n *\n * @type {string}\n * @required\n */\n @Input({ required: true })\n public iconName!: string;\n\n /**\n * Optional input to specify the icon set from which the icon should be taken.\n *\n * @type {string}\n * @default 'core'\n */\n @Input()\n public iconSet = 'core';\n}\n","<odx-icon [name]=\"iconName\" [iconSet]=\"iconSet\" size=\"large\" />\n<span class=\"odx-rail-navigation-item__container\">\n <ng-content />\n</span>\n","export type RailNavigationVariant = (typeof RailNavigationVariant)[keyof typeof RailNavigationVariant];\n\nexport const RailNavigationVariant = {\n DEFAULT: 'default',\n BAR: 'bar',\n} as const;\n","import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { RailNavigationItemComponent } from './components/rail-navigation-item/rail-navigation-item.component';\nimport { RailNavigationVariant } from './models';\n\n/**\n * RailNavigationComponent provides a navigational sidebar that can toggle between open and closed states.\n * It supports different visual variants and can integrate individual navigation items\n * for complex navigation structures.\n */\n@CSSComponent('rail-navigation')\n@Component({\n standalone: true,\n selector: 'odx-rail-navigation',\n templateUrl: 'rail-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [RailNavigationItemComponent],\n host: {\n '[class.is-open]': 'isOpen',\n },\n})\nexport class RailNavigationComponent {\n public readonly element = injectElement();\n\n /**\n * Indicates whether the rail navigation is open. Uses booleanAttribute transformer for attribute binding.\n *\n * @type {boolean}\n * @default true\n */\n @Input({ transform: booleanAttribute })\n public isOpen = true;\n\n /**\n * Specifies the visual variant of the rail navigation.\n *\n * @type {RailNavigationVariant}\n * @default RailNavigationVariant.DEFAULT\n */\n @CSSModifier()\n @Input()\n public variant: RailNavigationVariant = RailNavigationVariant.DEFAULT;\n\n /**\n * Emits changes to the `isOpen` state, allowing for external reaction to state changes.\n *\n * @emits {boolean} - The new state of the rail navigation.\n */\n @Output()\n public isOpenChange = new EventEmitter<boolean>();\n\n /**\n * Toggles the open state of the rail navigation. Optionally accepts a boolean to force the state to open or closed.\n * Does not perform any action if the variant is set to BAR.\n *\n * @param {boolean | undefined} forceState - Optionally force the toggle to a specific state.\n */\n public toggle(forceState?: boolean): void {\n if (this.variant === RailNavigationVariant.BAR) return;\n this.isOpen = forceState ?? !this.isOpen;\n this.isOpenChange.emit(this.isOpen);\n }\n\n /**\n * Explicitly opens the rail navigation, setting `isOpen` to true.\n */\n public open(): void {\n this.toggle(true);\n }\n\n /**\n * Explicitly closes the rail navigation, setting `isOpen` to false.\n */\n public close(): void {\n this.toggle(false);\n }\n}\n","<nav class=\"odx-rail-navigation__content\">\n <ng-content selector=\"a[odxRailNavigationItem], button[odxRailNavigationItem]\" />\n</nav>\n<button odxRailNavigationItem class=\"odx-rail-navigation__expand\" iconName=\"chevron-right\" (click)=\"toggle()\"></button>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { RailNavigationItemComponent } from './components/rail-navigation-item/rail-navigation-item.component';\nimport { RailNavigationComponent } from './rail-navigation.component';\n\nconst modules = [RailNavigationComponent, RailNavigationItemComponent];\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class RailNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-rail-navigation.mjs","sources":["../../../../libs/angular/components/rail-navigation/src/lib/components/rail-navigation-item/rail-navigation-item.component.ts","../../../../libs/angular/components/rail-navigation/src/lib/components/rail-navigation-item/rail-navigation-item.component.html","../../../../libs/angular/components/rail-navigation/src/lib/models/rail-navigation-variant.ts","../../../../libs/angular/components/rail-navigation/src/lib/rail-navigation.component.ts","../../../../libs/angular/components/rail-navigation/src/lib/rail-navigation.component.html","../../../../libs/angular/components/rail-navigation/src/lib/rail-navigation.module.ts","../../../../libs/angular/components/rail-navigation/src/odx-angular-components-rail-navigation.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { WithDisabledState, WithTabIndex } from '@odx/angular';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * RailNavigationItemComponent represents an individual navigation item within a rail navigation system.\n * This component can be used as either a link or a button and integrates with Angular's RouterLinkActive to\n * optionally highlight active navigation items.\n * Has host directives for disabled and tabindex states.\n *\n * @see {WithDisabledState}\n * @see {WithTabIndex}\n */\n@CSSComponent('rail-navigation-item')\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[odxRailNavigationItem][iconName], button[odxRailNavigationItem][iconName]',\n templateUrl: './rail-navigation-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n hostDirectives: [WithDisabledState, WithTabIndex],\n host: {\n '[class.is-selected]': 'isSelected || routerLinkActive?.isActive',\n },\n})\nexport class RailNavigationItemComponent {\n protected readonly routerLinkActive = inject(RouterLinkActive, { optional: true });\n\n public readonly element = injectElement();\n\n /**\n * Indicates whether the navigation item is selected. This can be manually set or derived from router state.\n * Uses booleanAttribute transformer for attribute binding.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public isSelected = false;\n\n /**\n * The name of the icon to be displayed. This input is required.\n *\n * @type {string}\n * @required\n */\n @Input({ required: true })\n public iconName!: string;\n\n /**\n * Optional input to specify the icon set from which the icon should be taken.\n *\n * @type {string}\n * @default 'core'\n */\n @Input()\n public iconSet = 'core';\n}\n","<odx-icon [name]=\"iconName\" [iconSet]=\"iconSet\" size=\"large\" />\n<span class=\"odx-rail-navigation-item__container\">\n <ng-content />\n</span>\n","export type RailNavigationVariant = (typeof RailNavigationVariant)[keyof typeof RailNavigationVariant];\n\nexport const RailNavigationVariant = {\n DEFAULT: 'default',\n BAR: 'bar',\n} as const;\n","import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { RailNavigationItemComponent } from './components/rail-navigation-item/rail-navigation-item.component';\nimport { RailNavigationVariant } from './models';\n\n/**\n * RailNavigationComponent provides a navigational sidebar that can toggle between open and closed states.\n * It supports different visual variants and can integrate individual navigation items\n * for complex navigation structures.\n */\n@CSSComponent('rail-navigation')\n@Component({\n standalone: true,\n selector: 'odx-rail-navigation',\n templateUrl: 'rail-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [RailNavigationItemComponent],\n host: {\n '[class.is-open]': 'isOpen',\n },\n})\nexport class RailNavigationComponent {\n public readonly element = injectElement();\n\n /**\n * Indicates whether the rail navigation is open. Uses booleanAttribute transformer for attribute binding.\n *\n * @type {boolean}\n * @default true\n */\n @Input({ transform: booleanAttribute })\n public isOpen = true;\n\n /**\n * Specifies the visual variant of the rail navigation.\n *\n * @type {RailNavigationVariant}\n * @default RailNavigationVariant.DEFAULT\n */\n @CSSModifier()\n @Input()\n public variant: RailNavigationVariant = RailNavigationVariant.DEFAULT;\n\n /**\n * Emits changes to the `isOpen` state, allowing for external reaction to state changes.\n *\n * @emits {boolean} - The new state of the rail navigation.\n */\n @Output()\n public isOpenChange = new EventEmitter<boolean>();\n\n /**\n * Toggles the open state of the rail navigation. Optionally accepts a boolean to force the state to open or closed.\n * Does not perform any action if the variant is set to BAR.\n *\n * @param {boolean | undefined} forceState - Optionally force the toggle to a specific state.\n */\n public toggle(forceState?: boolean): void {\n if (this.variant === RailNavigationVariant.BAR) return;\n this.isOpen = forceState ?? !this.isOpen;\n this.isOpenChange.emit(this.isOpen);\n }\n\n /**\n * Explicitly opens the rail navigation, setting `isOpen` to true.\n */\n public open(): void {\n this.toggle(true);\n }\n\n /**\n * Explicitly closes the rail navigation, setting `isOpen` to false.\n */\n public close(): void {\n this.toggle(false);\n }\n}\n","<nav class=\"odx-rail-navigation__content\">\n <ng-content selector=\"a[odxRailNavigationItem], button[odxRailNavigationItem]\" />\n</nav>\n<button odxRailNavigationItem class=\"odx-rail-navigation__expand\" iconName=\"chevron-right\" (click)=\"toggle()\"></button>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { RailNavigationItemComponent } from './components/rail-navigation-item/rail-navigation-item.component';\nimport { RailNavigationComponent } from './rail-navigation.component';\n\nconst modules = [RailNavigationComponent, RailNavigationItemComponent];\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class RailNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { ViewEncapsulation, ChangeDetectionStrategy, Component, inject, EventEmitter, Output, ContentChild, booleanAttribute, Input, NgModule } from '@angular/core';
3
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, inject, EventEmitter, ContentChild, Output, booleanAttribute, Input, NgModule } from '@angular/core';
4
4
  import { CSSComponent, CSSModifier } from '@odx/angular/internal';
5
5
  import { injectElement } from '@odx/angular/utils';
6
6
  import { ActionGroupComponent } from '@odx/angular/components/action-group';
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-rich-list.mjs","sources":["../../../../libs/angular/components/rich-list/src/lib/components/rich-list-content/rich-list-content.component.ts","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item-header/rich-list-item-header.component.ts","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item-header/rich-list-item-header.component.html","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item/rich-list-item.component.ts","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item/rich-list-item.component.html","../../../../libs/angular/components/rich-list/src/lib/rich-list.component.ts","../../../../libs/angular/components/rich-list/src/lib/rich-list.component.html","../../../../libs/angular/components/rich-list/src/lib/rich-list.module.ts","../../../../libs/angular/components/rich-list/src/odx-angular-components-rich-list.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * RichListItemContentComponent provides a container for rich content within a `RichListItemComponent`.\n * It is used to wrap content that should be styled according to the rich list design.\n */\n@CSSComponent('rich-list-content')\n@Component({\n standalone: true,\n selector: 'odx-rich-list-content',\n template: ` <ng-content /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class RichListItemContentComponent {\n public readonly element = injectElement();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n// TODO: rename component class name and file names to match the component name\n/**\n * RichListItemHeaderComponent provides a container for header content within a `RichListItemComponent`.\n * It is used to wrap content that should be styled according to the rich list design.\n */\n@CSSComponent('rich-list-item-header')\n@Component({\n standalone: true,\n selector: 'odx-rich-list-header, odx-rich-list-item-header',\n templateUrl: 'rich-list-item-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ActionGroupComponent],\n})\nexport class RichListItemHeaderComponent {\n public readonly element = injectElement();\n}\n","<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","import { transition, trigger, useAnimation } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { CoreModule, DisabledController } from '@odx/angular';\nimport { collapse, expand } from '@odx/angular/animations';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { ExpandableItemDirective } from '@odx/angular/cdk/expandable';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { RichListItemContentComponent } from '../rich-list-content/rich-list-content.component';\n\n/**\n * RichListItemComponent is a list item component that displays rich content and supports expandable functionality.\n * It can be used in conjunction with the `RichListComponent` to create a list of items with rich content.\n * The component can be expanded to show additional content or details, providing a dynamic user experience.\n * It also supports a disabled state, which prevents user interaction with the item.\n * Has host directive ExpandableItemDirective with inputs `expanded` and `id`.\n *\n * @see {ExpandableItemDirective}\n */\n@CSSComponent('rich-list-item')\n@Component({\n selector: 'odx-rich-list-item',\n templateUrl: './rich-list-item.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, CoreModule, ActionGroupComponent, IconComponent, ButtonComponent],\n providers: [DisabledController.connect()],\n hostDirectives: [{ directive: ExpandableItemDirective, inputs: ['expanded', 'id'] }],\n host: {\n '[class.is-disabled]': 'isDisabled',\n '[class.odx-rich-list-item--expanded]': 'expandableItem.expanded',\n '[class.odx-rich-list-item--empty]': 'empty',\n '[attr.id]': 'expandableItem.id',\n },\n animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])],\n})\nexport class RichListItemComponent {\n private readonly disabledController = DisabledController.inject();\n\n @ContentChild(RichListItemContentComponent)\n private readonly content?: RichListItemContentComponent;\n\n public readonly expandableItem = inject(ExpandableItemDirective, { self: true });\n public readonly element = injectElement();\n\n /**\n * Emits an event whenever the expanded state of the `RichListItemComponent` changes.\n *\n * @emits {boolean} The new expanded state of the component.\n */\n @Output()\n public expandedChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * Toggles the expanded state of the component.\n *\n * This method is a key function of the `RichListItemComponent`, enabling dynamic interaction with the component's presentation.\n * When invoked, it switches this item current state. If the item is currently expanded (showing additional content or details),\n * calling `toggle` will collapse it, hiding these elements from view.\n */\n public toggle(): void {\n this.expandableItem.toggle();\n }\n\n protected get titleId(): string {\n return `${this.expandableItem.id}-title`;\n }\n\n protected get slotId(): string {\n return `${this.expandableItem.id}-slot`;\n }\n\n protected get empty(): boolean {\n return !this.content;\n }\n\n protected get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n protected onAnimationEnd(): void {\n this.expandedChange.emit(this.expandableItem.expanded);\n }\n}\n","<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=\"chevron-down\" iconSet=\"core\" /></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","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { ExpandableContainerDirective } from '@odx/angular/cdk/expandable';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * RichListComponent is designed to display a list with rich content in each item,\n * supporting expandable functionality. It can operate in a condensed mode to save space.\n * Has host directive ExpandableContainerDirective with an input `multiple`.\n *\n * @see {ExpandableContainerDirective}\n */\n@CSSComponent('rich-list')\n@Component({\n selector: 'odx-rich-list',\n templateUrl: './rich-list.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [{ directive: ExpandableContainerDirective, inputs: ['multiple'] }],\n})\nexport class RichListComponent {\n public readonly element = injectElement();\n\n /**\n * Determines whether the list is displayed in a condensed format.\n * This makes the list more compact by reducing the padding and margins.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public condensed = false;\n}\n","<ng-content select=\"odx-rich-list-item\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { RichListItemComponent, RichListItemHeaderComponent } from './components';\nimport { RichListItemContentComponent } from './components/rich-list-content/rich-list-content.component';\nimport { RichListComponent } from './rich-list.component';\n\nconst modules = [RichListComponent, RichListItemComponent, RichListItemHeaderComponent, RichListItemContentComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class RichListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-rich-list.mjs","sources":["../../../../libs/angular/components/rich-list/src/lib/components/rich-list-content/rich-list-content.component.ts","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item-header/rich-list-item-header.component.ts","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item-header/rich-list-item-header.component.html","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item/rich-list-item.component.ts","../../../../libs/angular/components/rich-list/src/lib/components/rich-list-item/rich-list-item.component.html","../../../../libs/angular/components/rich-list/src/lib/rich-list.component.ts","../../../../libs/angular/components/rich-list/src/lib/rich-list.component.html","../../../../libs/angular/components/rich-list/src/lib/rich-list.module.ts","../../../../libs/angular/components/rich-list/src/odx-angular-components-rich-list.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * RichListItemContentComponent provides a container for rich content within a `RichListItemComponent`.\n * It is used to wrap content that should be styled according to the rich list design.\n */\n@CSSComponent('rich-list-content')\n@Component({\n standalone: true,\n selector: 'odx-rich-list-content',\n template: ` <ng-content /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class RichListItemContentComponent {\n public readonly element = injectElement();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n// TODO: rename component class name and file names to match the component name\n/**\n * RichListItemHeaderComponent provides a container for header content within a `RichListItemComponent`.\n * It is used to wrap content that should be styled according to the rich list design.\n */\n@CSSComponent('rich-list-item-header')\n@Component({\n standalone: true,\n selector: 'odx-rich-list-header, odx-rich-list-item-header',\n templateUrl: 'rich-list-item-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ActionGroupComponent],\n})\nexport class RichListItemHeaderComponent {\n public readonly element = injectElement();\n}\n","<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","import { transition, trigger, useAnimation } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { CoreModule, DisabledController } from '@odx/angular';\nimport { collapse, expand } from '@odx/angular/animations';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { ExpandableItemDirective } from '@odx/angular/cdk/expandable';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { RichListItemContentComponent } from '../rich-list-content/rich-list-content.component';\n\n/**\n * RichListItemComponent is a list item component that displays rich content and supports expandable functionality.\n * It can be used in conjunction with the `RichListComponent` to create a list of items with rich content.\n * The component can be expanded to show additional content or details, providing a dynamic user experience.\n * It also supports a disabled state, which prevents user interaction with the item.\n * Has host directive ExpandableItemDirective with inputs `expanded` and `id`.\n *\n * @see {ExpandableItemDirective}\n */\n@CSSComponent('rich-list-item')\n@Component({\n selector: 'odx-rich-list-item',\n templateUrl: './rich-list-item.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, CoreModule, ActionGroupComponent, IconComponent, ButtonComponent],\n providers: [DisabledController.connect()],\n hostDirectives: [{ directive: ExpandableItemDirective, inputs: ['expanded', 'id'] }],\n host: {\n '[class.is-disabled]': 'isDisabled',\n '[class.odx-rich-list-item--expanded]': 'expandableItem.expanded',\n '[class.odx-rich-list-item--empty]': 'empty',\n '[attr.id]': 'expandableItem.id',\n },\n animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])],\n})\nexport class RichListItemComponent {\n private readonly disabledController = DisabledController.inject();\n\n @ContentChild(RichListItemContentComponent)\n private readonly content?: RichListItemContentComponent;\n\n public readonly expandableItem = inject(ExpandableItemDirective, { self: true });\n public readonly element = injectElement();\n\n /**\n * Emits an event whenever the expanded state of the `RichListItemComponent` changes.\n *\n * @emits {boolean} The new expanded state of the component.\n */\n @Output()\n public expandedChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * Toggles the expanded state of the component.\n *\n * This method is a key function of the `RichListItemComponent`, enabling dynamic interaction with the component's presentation.\n * When invoked, it switches this item current state. If the item is currently expanded (showing additional content or details),\n * calling `toggle` will collapse it, hiding these elements from view.\n */\n public toggle(): void {\n this.expandableItem.toggle();\n }\n\n protected get titleId(): string {\n return `${this.expandableItem.id}-title`;\n }\n\n protected get slotId(): string {\n return `${this.expandableItem.id}-slot`;\n }\n\n protected get empty(): boolean {\n return !this.content;\n }\n\n protected get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n protected onAnimationEnd(): void {\n this.expandedChange.emit(this.expandableItem.expanded);\n }\n}\n","<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=\"chevron-down\" iconSet=\"core\" /></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","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { ExpandableContainerDirective } from '@odx/angular/cdk/expandable';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * RichListComponent is designed to display a list with rich content in each item,\n * supporting expandable functionality. It can operate in a condensed mode to save space.\n * Has host directive ExpandableContainerDirective with an input `multiple`.\n *\n * @see {ExpandableContainerDirective}\n */\n@CSSComponent('rich-list')\n@Component({\n selector: 'odx-rich-list',\n templateUrl: './rich-list.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [{ directive: ExpandableContainerDirective, inputs: ['multiple'] }],\n})\nexport class RichListComponent {\n public readonly element = injectElement();\n\n /**\n * Determines whether the list is displayed in a condensed format.\n * This makes the list more compact by reducing the padding and margins.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public condensed = false;\n}\n","<ng-content select=\"odx-rich-list-item\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { RichListItemComponent, RichListItemHeaderComponent } from './components';\nimport { RichListItemContentComponent } from './components/rich-list-content/rich-list-content.component';\nimport { RichListComponent } from './rich-list.component';\n\nconst modules = [RichListComponent, RichListItemComponent, RichListItemHeaderComponent, RichListItemContentComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class RichListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-search-bar.mjs","sources":["../../../../libs/angular/components/search-bar/src/lib/search-bar-control.directive.ts","../../../../libs/angular/components/search-bar/src/lib/search-bar.component.ts","../../../../libs/angular/components/search-bar/src/lib/search-bar.component.html","../../../../libs/angular/components/search-bar/src/lib/search-bar.module.ts","../../../../libs/angular/components/search-bar/src/odx-angular-components-search-bar.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive for search bar component input.\n */\n@Directive({\n selector: 'input[odxSearchBarControl]',\n standalone: true,\n host: {\n '[class.odx-search-bar__input]': 'true',\n '[attr.type]': '\"search\"',\n },\n})\nexport class SearchBarControlDirective {}\n","import { Component } from '@angular/core';\nimport { IconComponent } from '@odx/angular/components/icon';\n\n/**\n * Component for displaying the search input.\n */\n@Component({\n selector: 'odx-search-bar',\n templateUrl: './search-bar.component.html',\n standalone: true,\n imports: [IconComponent],\n host: {\n '[class.odx-search-bar]': 'true',\n },\n})\nexport class SearchBarComponent {}\n","<div class=\"odx-search-bar__prefix\"><odx-icon name=\"search\" /></div>\n<ng-content select=\"input[odxSearchBarControl]\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { SearchBarControlDirective } from './search-bar-control.directive';\nimport { SearchBarComponent } from './search-bar.component';\n\nconst modules = [SearchBarControlDirective, SearchBarComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SearchBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAEA;;AAEG;MASU,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,+BAA+B,EAAE,MAAM;AACvC,wBAAA,aAAa,EAAE,UAAU;AAC1B,qBAAA;AACF,iBAAA;;;ACTD;;AAEG;MAUU,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf/B,kIAEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQY,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKZ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAEd,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,CAAC,EAClB,IAAA,EAAA;AACJ,wBAAA,wBAAwB,EAAE,MAAM;AACjC,qBAAA,EAAA,QAAA,EAAA,kIAAA,EAAA;;;AERH,MAAM,OAAO,GAAG,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;MAMlD,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAf,eAAe,EAAA,OAAA,EAAA,CANX,yBAAyB,EAAE,kBAAkB,aAIlD,UAAU,EAJL,yBAAyB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;gHAMjD,eAAe,EAAA,OAAA,EAAA,CANgB,kBAAkB,EAIlD,UAAU,CAAA,EAAA,CAAA,CAAA;;4FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC;AAClC,iBAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-components-search-bar.mjs","sources":["../../../../libs/angular/components/search-bar/src/lib/search-bar-control.directive.ts","../../../../libs/angular/components/search-bar/src/lib/search-bar.component.ts","../../../../libs/angular/components/search-bar/src/lib/search-bar.component.html","../../../../libs/angular/components/search-bar/src/lib/search-bar.module.ts","../../../../libs/angular/components/search-bar/src/odx-angular-components-search-bar.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive for search bar component input.\n */\n@Directive({\n selector: 'input[odxSearchBarControl]',\n standalone: true,\n host: {\n '[class.odx-search-bar__input]': 'true',\n '[attr.type]': '\"search\"',\n },\n})\nexport class SearchBarControlDirective {}\n","import { Component } from '@angular/core';\nimport { IconComponent } from '@odx/angular/components/icon';\n\n/**\n * Component for displaying the search input.\n */\n@Component({\n selector: 'odx-search-bar',\n templateUrl: './search-bar.component.html',\n standalone: true,\n imports: [IconComponent],\n host: {\n '[class.odx-search-bar]': 'true',\n },\n})\nexport class SearchBarComponent {}\n","<div class=\"odx-search-bar__prefix\"><odx-icon name=\"search\" /></div>\n<ng-content select=\"input[odxSearchBarControl]\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { SearchBarControlDirective } from './search-bar-control.directive';\nimport { SearchBarComponent } from './search-bar.component';\n\nconst modules = [SearchBarControlDirective, SearchBarComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SearchBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAEA;;AAEG;MASU,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,+BAA+B,EAAE,MAAM;AACvC,wBAAA,aAAa,EAAE,UAAU;AAC1B,qBAAA;AACF,iBAAA,CAAA;;;ACTD;;AAEG;MAUU,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf/B,kIAEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQY,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKZ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAEd,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,CAAC,EAClB,IAAA,EAAA;AACJ,wBAAA,wBAAwB,EAAE,MAAM;AACjC,qBAAA,EAAA,QAAA,EAAA,kIAAA,EAAA,CAAA;;;AERH,MAAM,OAAO,GAAG,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;MAMnD,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAf,eAAe,EAAA,OAAA,EAAA,CANX,yBAAyB,EAAE,kBAAkB,aAIlD,UAAU,EAJL,yBAAyB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAMjD,eAAe,EAAA,OAAA,EAAA,CANgB,kBAAkB,EAIlD,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC;AAClC,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
@@ -1,17 +1,18 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, inject, booleanAttribute, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, HostListener, Directive, Pipe, input, forwardRef, ContentChild, ContentChildren, NgModule } from '@angular/core';
3
+ import { InjectionToken, inject, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Directive, HostListener, Pipe, signal, input, forwardRef, ContentChildren, ViewChild, ContentChild, NgModule } from '@angular/core';
4
4
  import * as i2 from '@odx/angular';
5
5
  import { detectControllerChanges, CoreModule, ODX_IDENTITY_MATCHER } from '@odx/angular';
6
- import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
7
6
  import { OptionControl } from '@odx/angular/cdk/option-control';
8
- import { CheckboxComponent } from '@odx/angular/components/checkbox';
7
+ import * as i2$1 from '@odx/angular/components/checkbox';
8
+ import { CheckboxComponent, CheckboxModule } from '@odx/angular/components/checkbox';
9
9
  import { CSSComponent, CSSModifier } from '@odx/angular/internal';
10
- import { deferFn } from '@odx/angular/utils';
10
+ import { deferFn, injectElement } from '@odx/angular/utils';
11
11
  import * as i1 from '@angular/common';
12
12
  import { InputControlDirective } from '@odx/angular/cdk/custom-form-control';
13
13
  import { BaseSearchFilterPipe, AutocompleteControl, ODX_SEARCH_FILTER_HOST } from '@odx/angular/cdk/autocomplete-control';
14
14
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
15
+ import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
15
16
  import { DropdownDirective } from '@odx/angular/components/dropdown';
16
17
  import { IconComponent } from '@odx/angular/components/icon';
17
18
  import { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';
@@ -109,7 +110,7 @@ SelectOptionComponent = __decorate([
109
110
  ], SelectOptionComponent);
110
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectOptionComponent, decorators: [{
111
112
  type: Component,
112
- args: [{ standalone: true, selector: 'odx-select-option, odx-option', imports: [CoreModule, DynamicViewDirective, CheckboxComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
113
+ args: [{ standalone: true, selector: 'odx-select-option, odx-option', imports: [CoreModule, CheckboxComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
113
114
  '[attr.aria-disabled]': 'disabled || null',
114
115
  '[class.is-disabled]': 'disabled',
115
116
  }, 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" }]
@@ -121,6 +122,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
121
122
  args: [{ transform: booleanAttribute }]
122
123
  }] } });
123
124
 
125
+ class SelectAllDirective {
126
+ constructor() {
127
+ this.isActive = false;
128
+ this.element = injectElement();
129
+ this.disabled = false;
130
+ }
131
+ setActiveStyles() {
132
+ this.isActive = true;
133
+ }
134
+ setInactiveStyles() {
135
+ this.isActive = false;
136
+ }
137
+ getLabel() {
138
+ return this.element.nativeElement.textContent?.trim() ?? '';
139
+ }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectAllDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
141
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SelectAllDirective, isStandalone: true, selector: "[odxSelectAll]", host: { attributes: { "role": "option" }, properties: { "class.is-active": "isActive" } }, ngImport: i0 }); }
142
+ }
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectAllDirective, decorators: [{
144
+ type: Directive,
145
+ args: [{
146
+ selector: '[odxSelectAll]',
147
+ standalone: true,
148
+ host: {
149
+ role: 'option',
150
+ '[class.is-active]': 'isActive',
151
+ },
152
+ }]
153
+ }] });
154
+
124
155
  /**
125
156
  * SelectInputControlDirective extends InputControlDirective to provide additional behavior
126
157
  * specific to select components with search functionality. This directive manages interactions
@@ -200,6 +231,8 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
200
231
  this.searchFieldEnabled = false;
201
232
  this.selectedOption = null;
202
233
  this.selectedOptionText = null;
234
+ this.isIndeterminateSelection = signal(false);
235
+ this.allOptionSelected = signal(false);
203
236
  /**
204
237
  * Placeholder text for the select input when no option is selected.
205
238
  *
@@ -214,6 +247,20 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
214
247
  * @default false
215
248
  */
216
249
  this.clearable = input(false, { transform: booleanAttribute });
250
+ /**
251
+ * When set to true, the select will display a select all button.
252
+ *
253
+ * @type {boolean}
254
+ * @default false
255
+ */
256
+ this.hasSelectAll = input(false, { transform: booleanAttribute });
257
+ /**
258
+ * Text to display for the select all button.
259
+ *
260
+ * @type {string}
261
+ * @default 'Select all'
262
+ */
263
+ this.hasSelectAllText = input('Select all');
217
264
  /**
218
265
  * Sets whether multiple options can be selected.
219
266
  *
@@ -252,7 +299,6 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
252
299
  ngAfterViewInit() {
253
300
  if (!this.options)
254
301
  return;
255
- this.initKeyManager(this.options);
256
302
  this.handleQueryListOption(this.options);
257
303
  this.handleSearchFieldChanges();
258
304
  }
@@ -277,6 +323,7 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
277
323
  selectOption(option) {
278
324
  if (option && !option.disabled) {
279
325
  option.switchCheckbox();
326
+ this.selectAllHandler();
280
327
  const value = this.multiple ? this.multipleSelectValueResolver(option) : option.value;
281
328
  this.updateValue(value ?? null);
282
329
  this.optionSelected.emit(option.value);
@@ -299,7 +346,7 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
299
346
  return false;
300
347
  }
301
348
  initKeyManager(options) {
302
- this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd().skipPredicate((item) => item.disabled);
349
+ this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd().skipPredicate((item) => !!item.disabled);
303
350
  }
304
351
  handleQueryListOption(options) {
305
352
  fromQueryList(options)
@@ -314,16 +361,32 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
314
361
  handleSearchFieldChanges() {
315
362
  this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());
316
363
  }
317
- handleControllerEvent(event) {
364
+ clickSelectAll(event) {
318
365
  if (this.isLoading || this.readonlyController?.readonly || !this.isOpen)
319
366
  return;
320
- if (this.hasOptions) {
321
- if (event.key === 'Enter' || event.key === 'Tab') {
322
- event.preventDefault();
323
- event.stopImmediatePropagation();
324
- this.selectOption(this.keyManager?.activeItem);
325
- return;
367
+ event.preventDefault();
368
+ event.stopImmediatePropagation();
369
+ const options = this.options?.toArray().filter((option) => !option.disabled);
370
+ if (!options)
371
+ return;
372
+ const allSelected = options.every((option) => option.isSelected);
373
+ options.forEach((option) => {
374
+ if (allSelected || !option.isSelected) {
375
+ this.selectOption(option);
326
376
  }
377
+ });
378
+ this.selectAllHandler();
379
+ }
380
+ handleControllerEvent(event) {
381
+ if (this.isLoading || this.readonlyController?.readonly || !this.isOpen)
382
+ return;
383
+ if (this.hasOptions && (event.key === 'Enter' || event.key === 'Tab')) {
384
+ event.preventDefault();
385
+ event.stopImmediatePropagation();
386
+ if (this.keyManager?.activeItem instanceof SelectAllDirective)
387
+ return this.clickSelectAll(event);
388
+ this.selectOption(this.keyManager?.activeItem);
389
+ return;
327
390
  }
328
391
  this.keyManager?.onKeydown(event);
329
392
  }
@@ -347,9 +410,17 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
347
410
  this.element.nativeElement?.focus();
348
411
  }
349
412
  }
413
+ onDropdownOpened() {
414
+ super.onDropdownOpened();
415
+ if (this.options) {
416
+ const highlightableOptions = this.selectAllDirective ? [this.selectAllDirective, ...this.options.toArray()] : this.options.toArray();
417
+ this.initKeyManager(highlightableOptions);
418
+ }
419
+ }
350
420
  onDropdownClosed() {
351
421
  super.onDropdownClosed();
352
422
  this.searchField?.reset();
423
+ this.keyManager = undefined;
353
424
  }
354
425
  resetValue(e) {
355
426
  e.stopPropagation();
@@ -386,8 +457,16 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
386
457
  }
387
458
  return value;
388
459
  }
460
+ selectAllHandler() {
461
+ const options = this.options?.toArray().filter((option) => !option.disabled);
462
+ if (!options)
463
+ return;
464
+ const allSelected = options.every((option) => option.isSelected);
465
+ this.isIndeterminateSelection.set(!allSelected && options.some((option) => option.isSelected));
466
+ this.allOptionSelected.set(allSelected);
467
+ }
389
468
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
390
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 }, 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: { "click": "handleControllerEvent($event)", "keydown": "handleControllerEvent($event)" }, properties: { "tabindex": "searchFieldEnabled || isDisabled ? -1 : 0", "attr.aria-multiselectable": "multiple" } }, providers: [
469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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: { "click": "handleControllerEvent($event)", "keydown": "handleControllerEvent($event)" }, properties: { "tabindex": "searchFieldEnabled || isDisabled ? -1 : 0", "attr.aria-multiselectable": "multiple" } }, providers: [
391
470
  {
392
471
  provide: SELECT_CONTROL,
393
472
  useExisting: forwardRef(() => SelectComponent),
@@ -396,7 +475,7 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
396
475
  provide: ODX_SEARCH_FILTER_HOST,
397
476
  useExisting: SELECT_CONTROL,
398
477
  },
399
- ], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, 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 (!searchFieldEnabled) {\n @if (selectedOptionContent) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n @if (clearable()) {\n <odx-icon class=\"odx-select__clear\" name=\"close\" iconSet=\"core\" (click)=\"resetValue($event)\" />\n }\n </div>\n } @else {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n } @else {\n <ng-content select=\"[odxSelectSearchField]\" />\n }\n\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\" />\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\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: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
478
+ ], 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 (!searchFieldEnabled) {\n @if (selectedOptionContent) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n @if (clearable()) {\n <odx-icon class=\"odx-select__clear\" name=\"close\" iconSet=\"core\" (click)=\"resetValue($event)\" />\n }\n </div>\n } @else {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n } @else {\n <ng-content select=\"[odxSelectSearchField]\" />\n }\n\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\" />\n</div>\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: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "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 }); }
400
479
  };
401
480
  __decorate([
402
481
  CSSModifier(),
@@ -407,7 +486,7 @@ SelectComponent = __decorate([
407
486
  ], SelectComponent);
408
487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, decorators: [{
409
488
  type: Component,
410
- args: [{ standalone: true, selector: 'odx-select', imports: [DropdownDirective, IconComponent, DynamicViewDirective, SelectOptionComponent, LoadingSpinnerModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
489
+ args: [{ standalone: true, selector: 'odx-select', imports: [DropdownDirective, IconComponent, DynamicViewDirective, SelectOptionComponent, LoadingSpinnerModule, CheckboxModule, SelectAllDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
411
490
  {
412
491
  provide: SELECT_CONTROL,
413
492
  useExisting: forwardRef(() => SelectComponent),
@@ -419,10 +498,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
419
498
  ], host: {
420
499
  '[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',
421
500
  '[attr.aria-multiselectable]': 'multiple',
422
- }, 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 (!searchFieldEnabled) {\n @if (selectedOptionContent) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n @if (clearable()) {\n <odx-icon class=\"odx-select__clear\" name=\"close\" iconSet=\"core\" (click)=\"resetValue($event)\" />\n }\n </div>\n } @else {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n } @else {\n <ng-content select=\"[odxSelectSearchField]\" />\n }\n\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\" />\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n @if (hasOptions) {\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" }]
501
+ }, 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 (!searchFieldEnabled) {\n @if (selectedOptionContent) {\n <div class=\"odx-select__value\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\" />\n @if (clearable()) {\n <odx-icon class=\"odx-select__clear\" name=\"close\" iconSet=\"core\" (click)=\"resetValue($event)\" />\n }\n </div>\n } @else {\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n }\n } @else {\n <ng-content select=\"[odxSelectSearchField]\" />\n }\n\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\" />\n</div>\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" }]
423
502
  }], propDecorators: { options: [{
424
503
  type: ContentChildren,
425
504
  args: [SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
505
+ }], selectAllDirective: [{
506
+ type: ViewChild,
507
+ args: [SelectAllDirective]
426
508
  }], searchField: [{
427
509
  type: ContentChild,
428
510
  args: [SelectInputControlDirective]
@@ -461,5 +543,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
461
543
  * Generated bundle index. Do not edit.
462
544
  */
463
545
 
464
- export { SELECT_CONTROL, SelectComponent, SelectInputControlDirective, SelectModule, SelectOptionComponent, SelectSearchFilterPipe };
546
+ export { SELECT_CONTROL, SelectAllDirective, SelectComponent, SelectInputControlDirective, SelectModule, SelectOptionComponent, SelectSearchFilterPipe };
465
547
  //# sourceMappingURL=odx-angular-components-select.mjs.map