@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.
- package/CHANGELOG.md +12 -0
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +3 -3
- package/components/bar/lib/directives/bar-button.directive.d.ts +2 -1
- package/components/select/lib/directives/index.d.ts +1 -0
- package/components/select/lib/directives/select-all.directive.d.ts +13 -0
- package/components/select/lib/select.component.d.ts +24 -3
- package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +2 -2
- package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +2 -2
- package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +5 -7
- package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +2 -3
- package/esm2022/components/select/lib/directives/index.mjs +2 -1
- package/esm2022/components/select/lib/directives/select-all.directive.mjs +33 -0
- package/esm2022/components/select/lib/select.component.mjs +69 -16
- package/fesm2022/odx-angular-animations.mjs.map +1 -1
- package/fesm2022/odx-angular-breakpoints.mjs +1 -1
- package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-a11y.mjs +1 -1
- package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-active-indicator.mjs +1 -1
- package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +2 -2
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs +1 -1
- package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs +1 -1
- package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs +1 -1
- package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-expandable.mjs +1 -1
- package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-option-control.mjs +1 -1
- package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs +1 -1
- package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
- package/fesm2022/odx-angular-components-accordion.mjs +1 -1
- package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/odx-angular-components-action-group.mjs +1 -1
- package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-area-header.mjs +1 -1
- package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-autocomplete.mjs +2 -2
- package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/odx-angular-components-avatar.mjs +1 -1
- package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-badge.mjs +1 -1
- package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
- package/fesm2022/odx-angular-components-bar.mjs +5 -7
- package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-breadcrumbs.mjs +1 -1
- package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/odx-angular-components-button-group.mjs +1 -1
- package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-button.mjs +1 -1
- package/fesm2022/odx-angular-components-button.mjs.map +1 -1
- package/fesm2022/odx-angular-components-calendar.mjs +2 -2
- package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-card.mjs +2 -2
- package/fesm2022/odx-angular-components-card.mjs.map +1 -1
- package/fesm2022/odx-angular-components-checkbox.mjs +1 -1
- package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-chip.mjs +1 -1
- package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-circular-progress.mjs +1 -1
- package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-content-box.mjs +1 -1
- package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
- package/fesm2022/odx-angular-components-datepicker.mjs +2 -2
- package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-daterangepicker.mjs +3 -3
- package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-dropdown.mjs +1 -1
- package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
- package/fesm2022/odx-angular-components-error-page.mjs +1 -1
- package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
- package/fesm2022/odx-angular-components-footer.mjs +2 -2
- package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
- package/fesm2022/odx-angular-components-form-field.mjs +1 -1
- package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header-navigation.mjs +1 -1
- package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-header.mjs +1 -1
- package/fesm2022/odx-angular-components-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-icon.mjs +1 -1
- package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
- package/fesm2022/odx-angular-components-inline-message.mjs +1 -1
- package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
- package/fesm2022/odx-angular-components-link.mjs.map +1 -1
- package/fesm2022/odx-angular-components-list.mjs +2 -2
- package/fesm2022/odx-angular-components-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-loading-spinner.mjs +1 -1
- package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
- package/fesm2022/odx-angular-components-logo.mjs +1 -1
- package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
- package/fesm2022/odx-angular-components-main-menu.mjs +2 -2
- package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-mainfilter-group.mjs +1 -1
- package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-menu.mjs +1 -1
- package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-modal.mjs +1 -1
- package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2022/odx-angular-components-navigation-back.mjs +1 -1
- package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification-testing.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification.mjs +3 -3
- package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
- package/fesm2022/odx-angular-components-paginator.mjs +1 -1
- package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/odx-angular-components-progress.mjs +1 -1
- package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
- package/fesm2022/odx-angular-components-radio-group.mjs +1 -1
- package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rail-navigation.mjs +1 -1
- package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rich-list.mjs +1 -1
- package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-search-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-select.mjs +101 -19
- package/fesm2022/odx-angular-components-select.mjs.map +1 -1
- package/fesm2022/odx-angular-components-slider.mjs +1 -1
- package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
- package/fesm2022/odx-angular-components-spinbox.mjs +1 -1
- package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
- package/fesm2022/odx-angular-components-switch.mjs +1 -1
- package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tab-bar.mjs +1 -1
- package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-table.mjs +1 -1
- package/fesm2022/odx-angular-components-table.mjs.map +1 -1
- package/fesm2022/odx-angular-components-timepicker.mjs +2 -2
- package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toast.mjs +1 -1
- package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toggle-button-group.mjs +1 -1
- package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
- package/fesm2022/odx-angular-components-tooltip.mjs +1 -1
- package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/odx-angular-components-wizard.mjs +1 -1
- package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
- package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
- package/fesm2022/odx-angular-internal.mjs.map +1 -1
- package/fesm2022/odx-angular-localization.mjs.map +1 -1
- package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2022/odx-angular-sdk.mjs.map +1 -1
- package/fesm2022/odx-angular-theming.mjs.map +1 -1
- package/fesm2022/odx-angular-utils.mjs.map +1 -1
- package/fesm2022/odx-angular.mjs +2 -2
- package/fesm2022/odx-angular.mjs.map +1 -1
- 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 {
|
|
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;
|
|
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,
|
|
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
|
|
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,
|
|
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
|
-
|
|
364
|
+
clickSelectAll(event) {
|
|
318
365
|
if (this.isLoading || this.readonlyController?.readonly || !this.isOpen)
|
|
319
366
|
return;
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
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
|