@odx/angular 1.0.0-rc.21 → 1.0.0-rc.22

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 (82) hide show
  1. package/cdk/custom-form-control/lib/custom-form-control.d.ts +4 -1
  2. package/components/card/README.md +3 -0
  3. package/components/card/index.d.ts +5 -0
  4. package/components/card/lib/card.component.d.ts +20 -0
  5. package/components/card/lib/card.module.d.ts +16 -0
  6. package/components/card/lib/components/card-footer/card-footer.component.d.ts +5 -0
  7. package/components/card/lib/components/index.d.ts +2 -0
  8. package/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.d.ts +5 -0
  9. package/components/card/lib/directives/card-content.directive.d.ts +5 -0
  10. package/components/card/lib/directives/card-title.directive.d.ts +5 -0
  11. package/components/card/lib/directives/index.d.ts +2 -0
  12. package/components/card/lib/models/card-variant.d.ts +6 -0
  13. package/components/card/lib/models/index.d.ts +1 -0
  14. package/components/dropdown/lib/models/dropdown-options.d.ts +1 -1
  15. package/components/modal/index.d.ts +1 -0
  16. package/components/modal/lib/models/modal-options.d.ts +1 -0
  17. package/components/select/lib/components/option/option.component.d.ts +0 -1
  18. package/components/select/lib/select.component.d.ts +3 -1
  19. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +25 -4
  20. package/esm2020/components/card/index.mjs +6 -0
  21. package/esm2020/components/card/lib/card.component.mjs +67 -0
  22. package/esm2020/components/card/lib/card.module.mjs +53 -0
  23. package/esm2020/components/card/lib/components/card-footer/card-footer.component.mjs +13 -0
  24. package/esm2020/components/card/lib/components/index.mjs +3 -0
  25. package/esm2020/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.mjs +13 -0
  26. package/esm2020/components/card/lib/directives/card-content.directive.mjs +17 -0
  27. package/esm2020/components/card/lib/directives/card-title.directive.mjs +17 -0
  28. package/esm2020/components/card/lib/directives/index.mjs +3 -0
  29. package/esm2020/components/card/lib/models/card-variant.mjs +6 -0
  30. package/esm2020/components/card/lib/models/index.mjs +2 -0
  31. package/esm2020/components/card/odx-angular-components-card.mjs +5 -0
  32. package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +2 -1
  33. package/esm2020/components/modal/index.mjs +2 -1
  34. package/esm2020/components/modal/lib/modal.component.mjs +3 -3
  35. package/esm2020/components/modal/lib/modal.config.mjs +2 -1
  36. package/esm2020/components/modal/lib/models/modal-options.mjs +1 -1
  37. package/esm2020/components/select/lib/components/option/option.component.mjs +5 -6
  38. package/esm2020/components/select/lib/select.component.mjs +21 -12
  39. package/esm2020/utils/lib/helpers/provide-config.mjs +2 -2
  40. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +24 -4
  41. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  42. package/fesm2015/odx-angular-components-card.mjs +174 -0
  43. package/fesm2015/odx-angular-components-card.mjs.map +1 -0
  44. package/fesm2015/odx-angular-components-dropdown.mjs +1 -0
  45. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
  46. package/fesm2015/odx-angular-components-modal.mjs +4 -3
  47. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  48. package/fesm2015/odx-angular-components-select.mjs +27 -19
  49. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  50. package/fesm2015/odx-angular-utils.mjs +1 -1
  51. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  52. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +24 -4
  53. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  54. package/fesm2020/odx-angular-components-card.mjs +173 -0
  55. package/fesm2020/odx-angular-components-card.mjs.map +1 -0
  56. package/fesm2020/odx-angular-components-dropdown.mjs +1 -0
  57. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
  58. package/fesm2020/odx-angular-components-modal.mjs +4 -3
  59. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  60. package/fesm2020/odx-angular-components-select.mjs +23 -15
  61. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  62. package/fesm2020/odx-angular-utils.mjs +1 -1
  63. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  64. package/package.json +10 -10
  65. package/components/launch-tile/README.md +0 -3
  66. package/components/launch-tile/index.d.ts +0 -3
  67. package/components/launch-tile/lib/components/index.d.ts +0 -2
  68. package/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.d.ts +0 -5
  69. package/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.d.ts +0 -5
  70. package/components/launch-tile/lib/launch-tile.component.d.ts +0 -17
  71. package/components/launch-tile/lib/launch-tile.module.d.ts +0 -14
  72. package/esm2020/components/launch-tile/index.mjs +0 -4
  73. package/esm2020/components/launch-tile/lib/components/index.mjs +0 -3
  74. package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +0 -13
  75. package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +0 -13
  76. package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +0 -56
  77. package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +0 -23
  78. package/esm2020/components/launch-tile/odx-angular-components-launch-tile.mjs +0 -5
  79. package/fesm2015/odx-angular-components-launch-tile.mjs +0 -100
  80. package/fesm2015/odx-angular-components-launch-tile.mjs.map +0 -1
  81. package/fesm2020/odx-angular-components-launch-tile.mjs +0 -99
  82. package/fesm2020/odx-angular-components-launch-tile.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-modal.mjs","sources":["../../../../libs/angular/components/modal/src/lib/models/modal-hero-variant.ts","../../../../libs/angular/components/modal/src/lib/models/modal-ref.ts","../../../../libs/angular/components/modal/src/lib/models/modal-size.ts","../../../../libs/angular/components/modal/src/lib/models/modal-variant.ts","../../../../libs/angular/components/modal/src/lib/helpers/inject-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/helpers/provide-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-close.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-content.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-dismiss.directive.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.html","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.ts","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.component.ts","../../../../libs/angular/components/modal/src/lib/modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.config.ts","../../../../libs/angular/components/modal/src/lib/modal.service.ts","../../../../libs/angular/components/modal/src/lib/modal.directive.ts","../../../../libs/angular/components/modal/src/lib/modal.module.ts","../../../../libs/angular/components/modal/src/odx-angular-components-modal.ts"],"sourcesContent":["export type ModalHeroVariant = (typeof ModalHeroVariant)[keyof typeof ModalHeroVariant];\n\nexport const ModalHeroVariant = {\n PRIMARY: 'primary',\n SUCCESS: 'success',\n CONFIRMATION: 'confirmation',\n DANGER: 'danger',\n} as const;\n","import { Controller } from '@odx/angular';\nimport { deepmerge } from 'deepmerge-ts';\nimport { merge, share, Subject } from 'rxjs';\nimport { ModalOptions } from './modal-options';\n\nexport class ModalRef<Data = unknown, Result = unknown> extends Controller {\n private readonly onClose$$ = new Subject<Result>();\n private readonly onDismiss$$ = new Subject<void>();\n\n public readonly onClose$ = this.onClose$$.pipe(share({ resetOnRefCountZero: true }));\n public readonly onDismiss$ = this.onDismiss$$.pipe(share({ resetOnRefCountZero: true }));\n public readonly onDestroy$ = merge(this.onClose$, this.onDismiss$);\n public readonly isActive: () => boolean;\n\n public get id(): string {\n return this.options.id;\n }\n\n public get modalTitleId(): string {\n return `${this.options.id}-title`;\n }\n\n public get data(): Data {\n return this.internalOptions.data;\n }\n\n public get options(): ModalOptions<Data> {\n return this.internalOptions;\n }\n\n constructor(private internalOptions: ModalOptions<Data>, isActive: (modalRef: ModalRef<Data, Result>) => boolean) {\n super();\n this.isActive = () => isActive(this);\n }\n\n public update(options: Partial<ModalOptions<Data>>): void {\n this.internalOptions = deepmerge(this.internalOptions, options) as ModalOptions<Data>;\n this.triggerControllerChange();\n }\n\n public dismiss(force = false): void {\n if (!force && !this.isActive()) return;\n this.onDismiss$$.next();\n this.destroy();\n }\n\n public close(result: Result): void {\n if (!this.isActive()) return;\n this.onClose$$.next(result);\n this.destroy();\n }\n\n public destroy(): void {\n this.onClose$$.complete();\n this.onDismiss$$.complete();\n }\n}\n","export type ModalSize = (typeof ModalSize)[keyof typeof ModalSize];\n\nexport const ModalSize = {\n XSMALL: 'xsmall',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","export type ModalVariant = typeof ModalVariant[keyof typeof ModalVariant];\n\nexport const ModalVariant = {\n DEFAULT: 'default',\n SIDESHEET: 'sidesheet',\n} as const;\n","import { inject } from '@angular/core';\nimport { ModalRef } from '../models';\n\nexport function injectModalRef<Data, Result = unknown>(): ModalRef<Data, Result> {\n return inject(ModalRef<Data, Result>);\n}\n","import { ValueProvider } from '@angular/core';\nimport { ModalRef } from '../models';\n\nexport function provideModalRef<D = unknown, R = unknown>(modalRef: ModalRef<D, R>): ValueProvider {\n return { provide: ModalRef, useValue: modalRef };\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n@Directive({\n standalone: true,\n selector: '[odxModalClose]',\n})\nexport class ModalCloseDirective<T = unknown> {\n private readonly modalRef = injectModalRef();\n\n @Input('odxModalClose')\n public result?: T | null = null;\n\n @HostListener('click')\n public onClick(): void {\n const result = this.result === '' ? null : this.result;\n\n if (result === undefined) {\n this.modalRef.dismiss();\n } else {\n this.modalRef.close(result ?? null);\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('modal__content')\n@Directive({\n standalone: true,\n selector: 'odx-modal-content',\n})\nexport class ModalContentDirective {\n public readonly element = injectElement();\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n@Directive({\n standalone: true,\n selector: '[odxModalDismiss]',\n})\nexport class ModalDismissDirective {\n private readonly modalRef = injectModalRef();\n\n @HostListener('click')\n public onClick(): void {\n this.modalRef.dismiss();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('modal__footer')\n@Component({\n standalone: true,\n selector: 'odx-modal-footer',\n templateUrl: './modal-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalFooterComponent {\n public readonly element = injectElement();\n}\n","<ng-content></ng-content>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AreaHeaderComponent, AreaHeaderSize } from '@odx/angular/components/area-header';\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 { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\n\n@CSSComponent('modal__header')\n@Component({\n standalone: true,\n selector: 'odx-modal-header',\n templateUrl: './modal-header.component.html',\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeaderComponent implements AfterContentInit {\n protected readonly modalRef = injectModalRef();\n\n public readonly element = injectElement();\n\n @ContentChild(AreaHeaderComponent)\n public areaHeaderComponent?: AreaHeaderComponent;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n\n public ngAfterContentInit(): void {\n if (this.areaHeaderComponent) {\n this.areaHeaderComponent.size = AreaHeaderSize.MEDIUM;\n }\n }\n}\n","<ng-content select=\"odx-area-header\"></ng-content>\n<odx-action-group class=\"odx-modal__dismiss\" *ngIf=\"modalRef.options.dismissable\">\n <button odxButton odxModalDismiss>\n <odx-icon name=\"close\"></odx-icon>\n </button>\n</odx-action-group>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { ModalHeroVariant } from '../../models';\n\n@CSSComponent('modal-hero')\n@Component({\n selector: 'odx-modal-hero',\n standalone: true,\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n templateUrl: './modal-hero.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeroComponent {\n public readonly element = injectElement();\n public readonly modalRef = injectModalRef();\n\n @Input()\n public icon?: string | null;\n\n @CSSModifier()\n @Input()\n public variant?: ModalHeroVariant | null;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n}\n","<odx-icon class=\"odx-modal-hero__icon\" [name]=\"icon\" size=\"xlarge\" *ngIf=\"icon\"> </odx-icon>\n\n<div class=\"odx-modal-hero__title odx-title-4\">\n <ng-content></ng-content>\n</div>\n\n<odx-action-group class=\"odx-modal-hero__dismiss\" *ngIf=\"modalRef.options.dismissable\">\n <button odxButton odxModalDismiss>\n <odx-icon name=\"close\"></odx-icon>\n </button>\n</odx-action-group>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { AreaHeaderComponent } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { getInjector } from '@odx/angular/utils';\nimport { ModalCloseDirective, ModalContentDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { BasicModalOptions, GetModalActionData, Modal } from '../../models';\nimport { ModalFooterComponent } from '../modal-footer/modal-footer.component';\nimport { ModalHeaderComponent } from '../modal-header/modal-header.component';\nimport { ModalHeroComponent } from '../modal-hero/modal-hero.component';\n\n@Component({\n selector: 'odx-basic-modal',\n standalone: true,\n imports: [\n CoreModule,\n DynamicViewDirective,\n ButtonComponent,\n AreaHeaderComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalContentDirective,\n ModalCloseDirective,\n ],\n templateUrl: './basic-modal.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BasicModalComponent<Result = unknown> implements Modal<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>> {\n protected readonly injector = getInjector();\n\n public readonly modalRef = injectModalRef<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>>();\n\n protected get data(): BasicModalOptions<Result> {\n return this.modalRef.data;\n }\n\n protected trackByIndex(index: number): number {\n return index;\n }\n}\n","<odx-modal-hero [icon]=\"icon\" [variant]=\"data.heroVariant\" *ngIf=\"data.heroIcon as icon; else modalHeader\">\n <ng-template [odxDynamicView]=\"data.title\"></ng-template>\n</odx-modal-hero>\n\n<odx-modal-content>\n <ng-template [odxDynamicView]=\"data.content\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n</odx-modal-content>\n\n<odx-modal-footer>\n <button odxButton [variant]=\"action.variant\" [odxModalClose]=\"action.data\" *ngFor=\"let action of data.actions; let i = index; trackBy: trackByIndex\">\n {{ action.label }}\n </button>\n</odx-modal-footer>\n\n<ng-template #modalHeader>\n <odx-modal-header>\n <odx-area-header>\n <ng-template [odxDynamicView]=\"data.title\"></ng-template>\n </odx-area-header>\n </odx-modal-header>\n</ng-template>\n","import { group, query, transition, trigger, useAnimation } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, HostListener, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { fadeIn, fadeOut, slideInRight, slideInY, slideOutRight, slideOutY } from '@odx/angular/animations';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { DynamicContent, DynamicTextContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { getInjector, hasChanged, injectElement, isTemplateRef, NgChanges } from '@odx/angular/utils';\nimport { injectModalRef } from './helpers';\n\n@CSSComponent('modal')\n@Component({\n standalone: true,\n selector: 'odx-modal',\n templateUrl: './modal.component.html',\n imports: [A11yModule, ActionGroupComponent, ButtonComponent, IconComponent, CoreModule, DynamicViewDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[@hostAnimation]': 'variant',\n '[attr.id]': 'modalRef.options.id',\n },\n animations: [\n trigger('hostAnimation', [\n transition('void => default', group([useAnimation(fadeIn()), query('.odx-modal__container', useAnimation(slideInY('8px')))])),\n transition('default => void', group([useAnimation(fadeOut()), query('.odx-modal__container', useAnimation(slideOutY('8px')))])),\n transition('void => sidesheet', query('.odx-modal__container', useAnimation(slideInRight))),\n transition('sidesheet => void', query('.odx-modal__container', useAnimation(slideOutRight))),\n ]),\n ],\n})\nexport class ModalComponent implements OnChanges {\n protected readonly modalRef = injectModalRef();\n protected readonly injector = getInjector();\n protected readonly context = { $implicit: this.modalRef };\n\n public readonly element = injectElement();\n\n @CSSModifier()\n public size = this.modalRef.options.size;\n\n @CSSModifier()\n public variant = this.modalRef.options.variant;\n\n @CSSModifier()\n public withComponent = false;\n\n @Input()\n public content!: Exclude<DynamicContent, DynamicTextContent>;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe(() => {\n this.size = this.modalRef.options.size;\n });\n }\n\n public ngOnChanges(changes: NgChanges<ModalComponent>): void {\n if (hasChanged(changes, 'content', false)) {\n this.withComponent = !isTemplateRef(this.content);\n }\n }\n\n @HostListener('keyup.esc')\n protected onClose(): void {\n if (this.modalRef.options.dismissable) {\n this.modalRef.dismiss();\n }\n }\n}\n","<div\n [cdkTrapFocus]=\"modalRef.isActive()\"\n [cdkTrapFocusAutoCapture]=\"modalRef.isActive()\"\n [odxClickOutsideActive]=\"modalRef.options.dismissable\"\n [attr.aria-labelledby]=\"modalRef.modalTitleId\"\n class=\"odx-modal__container\"\n role=\"dialog\"\n (odxClickOutside)=\"modalRef.dismiss()\"\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewContext]=\"withComponent ? {} : context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n</div>\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { ModalInstanceOptions, ModalSize } from './models';\nimport { ModalVariant } from './models/modal-variant';\n\nexport type ModalConfig = Omit<ModalInstanceOptions, 'id' | 'host' | 'data'>;\n\nexport const { ModalDefaultConfig, ModalConfig, injectModalConfig, provideModalConfig } = createConfigTokens('Modal', '@odx/angular/components/modal', {\n dismissable: true,\n size: ModalSize.MEDIUM,\n dismissOnNavigation: true,\n variant: ModalVariant.DEFAULT,\n} as ModalConfig);\n","import { Location } from '@angular/common';\nimport { inject, Injectable, Injector, TemplateRef } from '@angular/core';\nimport { DynamicContent, DynamicTextContent, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deferFn, getInjector, Queue } from '@odx/angular/utils';\nimport { deepmerge } from 'deepmerge-ts';\nimport { finalize } from 'rxjs';\nimport { BasicModalComponent } from './components';\nimport { provideModalRef } from './helpers';\nimport { ModalComponent } from './modal.component';\nimport { injectModalConfig } from './modal.config';\nimport { BasicModalOptions, GetModalActionData, ModalOptions, ModalRef, ModalSize, ModalType } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private static ID = 0;\n private readonly config = injectModalConfig();\n private readonly openModals = new Queue<ModalRef>();\n private readonly injector = getInjector();\n private readonly dynamicViewService = inject(DynamicViewService);\n\n public readonly openModals$ = this.openModals.value$;\n\n constructor(location: Location) {\n location.onUrlChange(() => {\n for (const modalRef of this.openModals.toArray()) {\n if (modalRef.options.dismissOnNavigation) {\n modalRef.destroy();\n }\n }\n });\n }\n\n public dismissAll(): void {\n for (const modalRef of this.openModals.toArray()) {\n modalRef.dismiss();\n }\n }\n\n public getModalById<Data = unknown, Result = unknown>(id: ModalOptions['id']): ModalRef<Data, Result> | null {\n return this.openModals.get(id) as ModalRef<Data, Result>;\n }\n\n public create<Data extends BasicModalOptions, Result = GetModalActionData<Data>>(modal: Data, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public create(modal: BasicModalOptions, options?: ModalOptions): ModalRef {\n return this.open(BasicModalComponent, {\n data: modal,\n size: ModalSize.SMALL,\n ...options,\n });\n }\n\n public open<Data, Result, T>(content: TemplateRef<T>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open<Data, Result, T = unknown>(content: ModalType<T, Data, Result>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open(content: ModalType<unknown> | TemplateRef<unknown>, options?: Partial<ModalOptions>): ModalRef {\n const mergedOptions = deepmerge(this.config, { id: `odx-modal-${ModalService.ID++}` }, options ?? {}) as ModalOptions;\n if (this.getModalById(mergedOptions.id)) {\n throw Error(`Modal with ID ${mergedOptions.id} already open`);\n }\n const modalRef = new ModalRef(mergedOptions, (ref) => this.openModals.isFirst(ref));\n this.attachModal(modalRef, content);\n this.openModals.add(modalRef);\n\n return modalRef;\n }\n private attachModal(modalRef: ModalRef, content: Exclude<DynamicContent, DynamicTextContent>): void {\n const viewRef = this.dynamicViewService.createView(ModalComponent, {\n context: { content },\n injector: Injector.create({\n providers: [provideModalRef(modalRef)],\n parent: this.injector,\n }),\n host: modalRef.options.host,\n });\n const onDestroy = () => {\n viewRef.destroy();\n deferFn(() => this.openModals.remove(modalRef));\n };\n\n modalRef.onDestroy$.pipe(finalize(onDestroy)).subscribe();\n }\n}\n","import { Directive, EventEmitter, inject, Input, OnChanges, OnDestroy, Output, TemplateRef } from '@angular/core';\nimport { hasChanged, NgChanges } from '@odx/angular/utils';\nimport { ModalService } from './modal.service';\nimport { ModalOptions, ModalRef } from './models';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[odxModal]',\n exportAs: 'odxModal',\n})\nexport class ModalDirective implements OnChanges, OnDestroy {\n private readonly modalService = inject(ModalService);\n private modalRef: ModalRef | null = null;\n\n protected readonly template = inject(TemplateRef);\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxModal')\n public modalOptions?: Partial<ModalOptions> | '' | null;\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalClose')\n public modalClose = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalDismiss')\n public modalDismiss = new EventEmitter();\n\n public ngOnChanges(changes: NgChanges<ModalDirective>): void {\n if (hasChanged(changes, 'modalOptions') && this.modalOptions) {\n this.modalRef?.update(this.modalOptions);\n }\n }\n\n public ngOnDestroy() {\n this.dismiss();\n }\n\n public open(): void {\n this.modalRef = this.modalService.open(this.template, this.modalOptions || {});\n this.modalRef.onClose$.subscribe((result) => this.modalClose.next(result));\n this.modalRef.onDismiss$.subscribe((result) => this.modalDismiss.next(result));\n }\n\n public dismiss(): void {\n this.modalRef?.dismiss();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { AreaHeaderModule } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { ButtonGroupComponent } from '@odx/angular/components/button-group';\nimport { ModalFooterComponent, ModalHeaderComponent, ModalHeroComponent } from './components';\nimport { ModalCloseDirective, ModalContentDirective, ModalDismissDirective } from './directives';\nimport { ModalComponent } from './modal.component';\nimport { ModalDirective } from './modal.directive';\n\nconst modules = [\n ModalComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalDirective,\n ModalCloseDirective,\n ModalContentDirective,\n ModalDismissDirective,\n];\n\n@NgModule({\n imports: [ButtonComponent, ButtonGroupComponent, ...modules],\n exports: [CoreModule, AreaHeaderModule, ButtonComponent, ButtonGroupComponent, ...modules],\n})\nexport class ModalModule {}\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-modal.mjs","sources":["../../../../libs/angular/components/modal/src/lib/models/modal-hero-variant.ts","../../../../libs/angular/components/modal/src/lib/models/modal-ref.ts","../../../../libs/angular/components/modal/src/lib/models/modal-size.ts","../../../../libs/angular/components/modal/src/lib/models/modal-variant.ts","../../../../libs/angular/components/modal/src/lib/helpers/inject-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/helpers/provide-modal-ref.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-close.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-content.directive.ts","../../../../libs/angular/components/modal/src/lib/directives/modal-dismiss.directive.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-footer/modal-footer.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-header/modal-header.component.html","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.ts","../../../../libs/angular/components/modal/src/lib/components/modal-hero/modal-hero.component.html","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.ts","../../../../libs/angular/components/modal/src/lib/components/basic-modal/basic-modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.component.ts","../../../../libs/angular/components/modal/src/lib/modal.component.html","../../../../libs/angular/components/modal/src/lib/modal.config.ts","../../../../libs/angular/components/modal/src/lib/modal.service.ts","../../../../libs/angular/components/modal/src/lib/modal.directive.ts","../../../../libs/angular/components/modal/src/lib/modal.module.ts","../../../../libs/angular/components/modal/src/odx-angular-components-modal.ts"],"sourcesContent":["export type ModalHeroVariant = (typeof ModalHeroVariant)[keyof typeof ModalHeroVariant];\n\nexport const ModalHeroVariant = {\n PRIMARY: 'primary',\n SUCCESS: 'success',\n CONFIRMATION: 'confirmation',\n DANGER: 'danger',\n} as const;\n","import { Controller } from '@odx/angular';\nimport { deepmerge } from 'deepmerge-ts';\nimport { merge, share, Subject } from 'rxjs';\nimport { ModalOptions } from './modal-options';\n\nexport class ModalRef<Data = unknown, Result = unknown> extends Controller {\n private readonly onClose$$ = new Subject<Result>();\n private readonly onDismiss$$ = new Subject<void>();\n\n public readonly onClose$ = this.onClose$$.pipe(share({ resetOnRefCountZero: true }));\n public readonly onDismiss$ = this.onDismiss$$.pipe(share({ resetOnRefCountZero: true }));\n public readonly onDestroy$ = merge(this.onClose$, this.onDismiss$);\n public readonly isActive: () => boolean;\n\n public get id(): string {\n return this.options.id;\n }\n\n public get modalTitleId(): string {\n return `${this.options.id}-title`;\n }\n\n public get data(): Data {\n return this.internalOptions.data;\n }\n\n public get options(): ModalOptions<Data> {\n return this.internalOptions;\n }\n\n constructor(private internalOptions: ModalOptions<Data>, isActive: (modalRef: ModalRef<Data, Result>) => boolean) {\n super();\n this.isActive = () => isActive(this);\n }\n\n public update(options: Partial<ModalOptions<Data>>): void {\n this.internalOptions = deepmerge(this.internalOptions, options) as ModalOptions<Data>;\n this.triggerControllerChange();\n }\n\n public dismiss(force = false): void {\n if (!force && !this.isActive()) return;\n this.onDismiss$$.next();\n this.destroy();\n }\n\n public close(result: Result): void {\n if (!this.isActive()) return;\n this.onClose$$.next(result);\n this.destroy();\n }\n\n public destroy(): void {\n this.onClose$$.complete();\n this.onDismiss$$.complete();\n }\n}\n","export type ModalSize = (typeof ModalSize)[keyof typeof ModalSize];\n\nexport const ModalSize = {\n XSMALL: 'xsmall',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","export type ModalVariant = typeof ModalVariant[keyof typeof ModalVariant];\n\nexport const ModalVariant = {\n DEFAULT: 'default',\n SIDESHEET: 'sidesheet',\n} as const;\n","import { inject } from '@angular/core';\nimport { ModalRef } from '../models';\n\nexport function injectModalRef<Data, Result = unknown>(): ModalRef<Data, Result> {\n return inject(ModalRef<Data, Result>);\n}\n","import { ValueProvider } from '@angular/core';\nimport { ModalRef } from '../models';\n\nexport function provideModalRef<D = unknown, R = unknown>(modalRef: ModalRef<D, R>): ValueProvider {\n return { provide: ModalRef, useValue: modalRef };\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n@Directive({\n standalone: true,\n selector: '[odxModalClose]',\n})\nexport class ModalCloseDirective<T = unknown> {\n private readonly modalRef = injectModalRef();\n\n @Input('odxModalClose')\n public result?: T | null = null;\n\n @HostListener('click')\n public onClick(): void {\n const result = this.result === '' ? null : this.result;\n\n if (result === undefined) {\n this.modalRef.dismiss();\n } else {\n this.modalRef.close(result ?? null);\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('modal__content')\n@Directive({\n standalone: true,\n selector: 'odx-modal-content',\n})\nexport class ModalContentDirective {\n public readonly element = injectElement();\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectModalRef } from '../helpers';\n\n@Directive({\n standalone: true,\n selector: '[odxModalDismiss]',\n})\nexport class ModalDismissDirective {\n private readonly modalRef = injectModalRef();\n\n @HostListener('click')\n public onClick(): void {\n this.modalRef.dismiss();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('modal__footer')\n@Component({\n standalone: true,\n selector: 'odx-modal-footer',\n templateUrl: './modal-footer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalFooterComponent {\n public readonly element = injectElement();\n}\n","<ng-content></ng-content>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AreaHeaderComponent, AreaHeaderSize } from '@odx/angular/components/area-header';\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 { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\n\n@CSSComponent('modal__header')\n@Component({\n standalone: true,\n selector: 'odx-modal-header',\n templateUrl: './modal-header.component.html',\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeaderComponent implements AfterContentInit {\n protected readonly modalRef = injectModalRef();\n\n public readonly element = injectElement();\n\n @ContentChild(AreaHeaderComponent)\n public areaHeaderComponent?: AreaHeaderComponent;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n\n public ngAfterContentInit(): void {\n if (this.areaHeaderComponent) {\n this.areaHeaderComponent.size = AreaHeaderSize.MEDIUM;\n }\n }\n}\n","<ng-content select=\"odx-area-header\"></ng-content>\n<odx-action-group class=\"odx-modal__dismiss\" *ngIf=\"modalRef.options.dismissable\">\n <button odxButton odxModalDismiss>\n <odx-icon name=\"close\"></odx-icon>\n </button>\n</odx-action-group>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { ModalDismissDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { ModalHeroVariant } from '../../models';\n\n@CSSComponent('modal-hero')\n@Component({\n selector: 'odx-modal-hero',\n standalone: true,\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent, ModalDismissDirective],\n templateUrl: './modal-hero.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalHeroComponent {\n public readonly element = injectElement();\n public readonly modalRef = injectModalRef();\n\n @Input()\n public icon?: string | null;\n\n @CSSModifier()\n @Input()\n public variant?: ModalHeroVariant | null;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe();\n }\n}\n","<odx-icon class=\"odx-modal-hero__icon\" [name]=\"icon\" size=\"xlarge\" *ngIf=\"icon\"> </odx-icon>\n\n<div class=\"odx-modal-hero__title odx-title-4\">\n <ng-content></ng-content>\n</div>\n\n<odx-action-group class=\"odx-modal-hero__dismiss\" *ngIf=\"modalRef.options.dismissable\">\n <button odxButton odxModalDismiss>\n <odx-icon name=\"close\"></odx-icon>\n </button>\n</odx-action-group>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { AreaHeaderComponent } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { getInjector } from '@odx/angular/utils';\nimport { ModalCloseDirective, ModalContentDirective } from '../../directives';\nimport { injectModalRef } from '../../helpers';\nimport { BasicModalOptions, GetModalActionData, Modal } from '../../models';\nimport { ModalFooterComponent } from '../modal-footer/modal-footer.component';\nimport { ModalHeaderComponent } from '../modal-header/modal-header.component';\nimport { ModalHeroComponent } from '../modal-hero/modal-hero.component';\n\n@Component({\n selector: 'odx-basic-modal',\n standalone: true,\n imports: [\n CoreModule,\n DynamicViewDirective,\n ButtonComponent,\n AreaHeaderComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalContentDirective,\n ModalCloseDirective,\n ],\n templateUrl: './basic-modal.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BasicModalComponent<Result = unknown> implements Modal<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>> {\n protected readonly injector = getInjector();\n\n public readonly modalRef = injectModalRef<BasicModalOptions<Result>, GetModalActionData<BasicModalOptions<Result>>>();\n\n protected get data(): BasicModalOptions<Result> {\n return this.modalRef.data;\n }\n\n protected trackByIndex(index: number): number {\n return index;\n }\n}\n","<odx-modal-hero [icon]=\"icon\" [variant]=\"data.heroVariant\" *ngIf=\"data.heroIcon as icon; else modalHeader\">\n <ng-template [odxDynamicView]=\"data.title\"></ng-template>\n</odx-modal-hero>\n\n<odx-modal-content>\n <ng-template [odxDynamicView]=\"data.content\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n</odx-modal-content>\n\n<odx-modal-footer>\n <button odxButton [variant]=\"action.variant\" [odxModalClose]=\"action.data\" *ngFor=\"let action of data.actions; let i = index; trackBy: trackByIndex\">\n {{ action.label }}\n </button>\n</odx-modal-footer>\n\n<ng-template #modalHeader>\n <odx-modal-header>\n <odx-area-header>\n <ng-template [odxDynamicView]=\"data.title\"></ng-template>\n </odx-area-header>\n </odx-modal-header>\n</ng-template>\n","import { group, query, transition, trigger, useAnimation } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, HostListener, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { fadeIn, fadeOut, slideInRight, slideInY, slideOutRight, slideOutY } from '@odx/angular/animations';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { DynamicContent, DynamicTextContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { getInjector, hasChanged, injectElement, isTemplateRef, NgChanges } from '@odx/angular/utils';\nimport { injectModalRef } from './helpers';\n\n@CSSComponent('modal')\n@Component({\n standalone: true,\n selector: 'odx-modal',\n templateUrl: './modal.component.html',\n imports: [A11yModule, ActionGroupComponent, ButtonComponent, IconComponent, CoreModule, DynamicViewDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[@hostAnimation]': 'variant',\n '[attr.id]': 'modalRef.options.id',\n },\n animations: [\n trigger('hostAnimation', [\n transition('void => default', group([useAnimation(fadeIn()), query('.odx-modal__container', useAnimation(slideInY('8px')))])),\n transition('default => void', group([useAnimation(fadeOut()), query('.odx-modal__container', useAnimation(slideOutY('8px')))])),\n transition('void => sidesheet', query('.odx-modal__container', useAnimation(slideInRight))),\n transition('sidesheet => void', query('.odx-modal__container', useAnimation(slideOutRight))),\n ]),\n ],\n})\nexport class ModalComponent implements OnChanges {\n protected readonly modalRef = injectModalRef();\n protected readonly injector = getInjector();\n protected readonly context = { $implicit: this.modalRef };\n\n public readonly element = injectElement();\n\n @CSSModifier()\n public size = this.modalRef.options.size;\n\n @CSSModifier()\n public variant = this.modalRef.options.variant;\n\n @CSSModifier()\n public withComponent = false;\n\n @Input()\n public content!: Exclude<DynamicContent, DynamicTextContent>;\n\n constructor() {\n detectControllerChanges(this.modalRef).subscribe(() => {\n this.size = this.modalRef.options.size;\n });\n }\n\n public ngOnChanges(changes: NgChanges<ModalComponent>): void {\n if (hasChanged(changes, 'content', false)) {\n this.withComponent = !isTemplateRef(this.content);\n }\n }\n\n @HostListener('keyup.esc')\n protected onClose(): void {\n if (this.modalRef.options.dismissable) {\n this.modalRef.dismiss();\n }\n }\n}\n","<div\n [cdkTrapFocus]=\"modalRef.isActive()\"\n [cdkTrapFocusAutoCapture]=\"modalRef.isActive()\"\n [odxClickOutsideActive]=\"modalRef.options.dismissable && modalRef.options.interactiveBackdrop\"\n [attr.aria-labelledby]=\"modalRef.modalTitleId\"\n class=\"odx-modal__container\"\n role=\"dialog\"\n (odxClickOutside)=\"modalRef.dismiss()\"\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewContext]=\"withComponent ? {} : context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n</div>\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { ModalInstanceOptions, ModalSize } from './models';\nimport { ModalVariant } from './models/modal-variant';\n\nexport type ModalConfig = Omit<ModalInstanceOptions, 'id' | 'host' | 'data'>;\n\nexport const { ModalDefaultConfig, ModalConfig, injectModalConfig, provideModalConfig } = createConfigTokens('Modal', '@odx/angular/components/modal', {\n dismissable: true,\n size: ModalSize.MEDIUM,\n dismissOnNavigation: true,\n interactiveBackdrop: true,\n variant: ModalVariant.DEFAULT,\n} as ModalConfig);\n","import { Location } from '@angular/common';\nimport { inject, Injectable, Injector, TemplateRef } from '@angular/core';\nimport { DynamicContent, DynamicTextContent, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deferFn, getInjector, Queue } from '@odx/angular/utils';\nimport { deepmerge } from 'deepmerge-ts';\nimport { finalize } from 'rxjs';\nimport { BasicModalComponent } from './components';\nimport { provideModalRef } from './helpers';\nimport { ModalComponent } from './modal.component';\nimport { injectModalConfig } from './modal.config';\nimport { BasicModalOptions, GetModalActionData, ModalOptions, ModalRef, ModalSize, ModalType } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private static ID = 0;\n private readonly config = injectModalConfig();\n private readonly openModals = new Queue<ModalRef>();\n private readonly injector = getInjector();\n private readonly dynamicViewService = inject(DynamicViewService);\n\n public readonly openModals$ = this.openModals.value$;\n\n constructor(location: Location) {\n location.onUrlChange(() => {\n for (const modalRef of this.openModals.toArray()) {\n if (modalRef.options.dismissOnNavigation) {\n modalRef.destroy();\n }\n }\n });\n }\n\n public dismissAll(): void {\n for (const modalRef of this.openModals.toArray()) {\n modalRef.dismiss();\n }\n }\n\n public getModalById<Data = unknown, Result = unknown>(id: ModalOptions['id']): ModalRef<Data, Result> | null {\n return this.openModals.get(id) as ModalRef<Data, Result>;\n }\n\n public create<Data extends BasicModalOptions, Result = GetModalActionData<Data>>(modal: Data, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public create(modal: BasicModalOptions, options?: ModalOptions): ModalRef {\n return this.open(BasicModalComponent, {\n data: modal,\n size: ModalSize.SMALL,\n ...options,\n });\n }\n\n public open<Data, Result, T>(content: TemplateRef<T>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open<Data, Result, T = unknown>(content: ModalType<T, Data, Result>, options?: Partial<ModalOptions<Data>>): ModalRef<Data, Result>;\n public open(content: ModalType<unknown> | TemplateRef<unknown>, options?: Partial<ModalOptions>): ModalRef {\n const mergedOptions = deepmerge(this.config, { id: `odx-modal-${ModalService.ID++}` }, options ?? {}) as ModalOptions;\n if (this.getModalById(mergedOptions.id)) {\n throw Error(`Modal with ID ${mergedOptions.id} already open`);\n }\n const modalRef = new ModalRef(mergedOptions, (ref) => this.openModals.isFirst(ref));\n this.attachModal(modalRef, content);\n this.openModals.add(modalRef);\n\n return modalRef;\n }\n private attachModal(modalRef: ModalRef, content: Exclude<DynamicContent, DynamicTextContent>): void {\n const viewRef = this.dynamicViewService.createView(ModalComponent, {\n context: { content },\n injector: Injector.create({\n providers: [provideModalRef(modalRef)],\n parent: this.injector,\n }),\n host: modalRef.options.host,\n });\n const onDestroy = () => {\n viewRef.destroy();\n deferFn(() => this.openModals.remove(modalRef));\n };\n\n modalRef.onDestroy$.pipe(finalize(onDestroy)).subscribe();\n }\n}\n","import { Directive, EventEmitter, inject, Input, OnChanges, OnDestroy, Output, TemplateRef } from '@angular/core';\nimport { hasChanged, NgChanges } from '@odx/angular/utils';\nimport { ModalService } from './modal.service';\nimport { ModalOptions, ModalRef } from './models';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[odxModal]',\n exportAs: 'odxModal',\n})\nexport class ModalDirective implements OnChanges, OnDestroy {\n private readonly modalService = inject(ModalService);\n private modalRef: ModalRef | null = null;\n\n protected readonly template = inject(TemplateRef);\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxModal')\n public modalOptions?: Partial<ModalOptions> | '' | null;\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalClose')\n public modalClose = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('odxModalDismiss')\n public modalDismiss = new EventEmitter();\n\n public ngOnChanges(changes: NgChanges<ModalDirective>): void {\n if (hasChanged(changes, 'modalOptions') && this.modalOptions) {\n this.modalRef?.update(this.modalOptions);\n }\n }\n\n public ngOnDestroy() {\n this.dismiss();\n }\n\n public open(): void {\n this.modalRef = this.modalService.open(this.template, this.modalOptions || {});\n this.modalRef.onClose$.subscribe((result) => this.modalClose.next(result));\n this.modalRef.onDismiss$.subscribe((result) => this.modalDismiss.next(result));\n }\n\n public dismiss(): void {\n this.modalRef?.dismiss();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { AreaHeaderModule } from '@odx/angular/components/area-header';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { ButtonGroupComponent } from '@odx/angular/components/button-group';\nimport { ModalFooterComponent, ModalHeaderComponent, ModalHeroComponent } from './components';\nimport { ModalCloseDirective, ModalContentDirective, ModalDismissDirective } from './directives';\nimport { ModalComponent } from './modal.component';\nimport { ModalDirective } from './modal.directive';\n\nconst modules = [\n ModalComponent,\n ModalHeaderComponent,\n ModalHeroComponent,\n ModalFooterComponent,\n ModalDirective,\n ModalCloseDirective,\n ModalContentDirective,\n ModalDismissDirective,\n];\n\n@NgModule({\n imports: [ButtonComponent, ButtonGroupComponent, ...modules],\n exports: [CoreModule, AreaHeaderModule, ButtonComponent, ButtonGroupComponent, ...modules],\n})\nexport class ModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
3
  import * as i0 from '@angular/core';
4
4
  import { InjectionToken, inject, ChangeDetectorRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, HostListener, Directive, Pipe, EventEmitter, forwardRef, ContentChildren, ViewChild, Output, ContentChild, NgModule } from '@angular/core';
5
5
  import * as i2 from '@odx/angular';
6
- import { DisabledController, ReadonlyController, detectControllerChanges, CoreModule, ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, ODX_IDENTITY_MATCHER } from '@odx/angular';
6
+ import { DisabledController, detectControllerChanges, CoreModule, ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, ODX_IDENTITY_MATCHER, ReadonlyController } from '@odx/angular';
7
7
  import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
8
8
  import { CheckboxComponent } from '@odx/angular/components/checkbox';
9
9
  import { CSSComponent, CSSModifier } from '@odx/angular/internal';
@@ -21,11 +21,10 @@ const SELECT_CONTROL = new InjectionToken('@odx/angular/components/select::Selec
21
21
 
22
22
  let OptionComponent = class OptionComponent {
23
23
  get disabled() {
24
- return !!this.disabledController?.disabled || !!this.readonlyController?.readonly;
24
+ return !!this.disabledController?.disabled;
25
25
  }
26
26
  constructor() {
27
27
  this.disabledController = DisabledController.inject();
28
- this.readonlyController = ReadonlyController.inject();
29
28
  this.takeUntilDestroyed = untilDestroyed();
30
29
  this.cdr = inject(ChangeDetectorRef);
31
30
  this.selectControl = inject(SELECT_CONTROL);
@@ -75,7 +74,7 @@ let OptionComponent = class OptionComponent {
75
74
  }
76
75
  };
77
76
  OptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: OptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
78
- OptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: OptionComponent, isStandalone: true, selector: "odx-option", inputs: { value: "value", notFoundMessage: "notFoundMessage" }, host: { attributes: { "role": "option" }, listeners: { "click": "select($event)" }, properties: { "attr.aria-selected": "isSelected", "attr.aria-disabled": "disabled || null", "class.is-disabled": "disabled", "class.is-selected": "isSelected", "class.is-active": "isActive" } }, providers: [DisabledController.connect(), ReadonlyController.connect()], ngImport: i0, template: "<odx-checkbox [checked]=\"isSelected\" *ngIf=\"selectControl.multiple && !notFoundMessage; else single\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</odx-checkbox>\n\n<ng-template #single>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
77
+ OptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: OptionComponent, isStandalone: true, selector: "odx-option", inputs: { value: "value", notFoundMessage: "notFoundMessage" }, host: { attributes: { "role": "option" }, listeners: { "click": "select($event)" }, properties: { "attr.aria-selected": "isSelected", "attr.aria-disabled": "disabled || null", "class.is-disabled": "disabled", "class.is-selected": "isSelected", "class.is-active": "isActive" } }, providers: [DisabledController.connect()], ngImport: i0, template: "<odx-checkbox [checked]=\"isSelected\" *ngIf=\"selectControl.multiple && !notFoundMessage; else single\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</odx-checkbox>\n\n<ng-template #single>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CheckboxComponent, selector: "odx-checkbox", inputs: ["indeterminate"], outputs: ["indeterminateChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
79
78
  __decorate([
80
79
  Transform(coerceBooleanProperty),
81
80
  __metadata("design:type", Object)
@@ -86,7 +85,7 @@ OptionComponent = __decorate([
86
85
  ], OptionComponent);
87
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: OptionComponent, decorators: [{
88
87
  type: Component,
89
- args: [{ standalone: true, selector: 'odx-option', imports: [CoreModule, DynamicViewDirective, CheckboxComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DisabledController.connect(), ReadonlyController.connect()], host: {
88
+ args: [{ standalone: true, selector: 'odx-option', imports: [CoreModule, DynamicViewDirective, CheckboxComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DisabledController.connect()], host: {
90
89
  '[attr.aria-selected]': 'isSelected',
91
90
  '[attr.aria-disabled]': 'disabled || null',
92
91
  '[class.is-disabled]': 'disabled',
@@ -201,6 +200,7 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
201
200
  }
202
201
  constructor() {
203
202
  super(null);
203
+ this.changeDetector = inject(ChangeDetectorRef);
204
204
  this.searchFieldEnabled = false;
205
205
  this.smoothScrollEnabled = false;
206
206
  this.selectedOption = null;
@@ -259,7 +259,7 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
259
259
  element.nativeElement.scrollIntoView({ block: 'center', behavior });
260
260
  }
261
261
  openDropdown(event) {
262
- if (this.isLoading)
262
+ if (this.isLoading || this.readonlyController?.readonly)
263
263
  return;
264
264
  if (this.isOpen && this.hasOptions) {
265
265
  if (event.key === 'Enter' || event.key === 'Tab') {
@@ -271,7 +271,10 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
271
271
  }
272
272
  this.keyManager?.onKeydown(event);
273
273
  }
274
- handleFocusOut() {
274
+ handleFocusOut(event) {
275
+ if (this.isOpen) {
276
+ event.stopImmediatePropagation();
277
+ }
275
278
  this.onTouched();
276
279
  }
277
280
  activateSelectedOption() {
@@ -284,12 +287,12 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
284
287
  onDropdownOpen() {
285
288
  this.activateSelectedOption();
286
289
  if (!this.searchFieldEnabled) {
287
- this.searchFieldEnabled = !!this.searchField;
288
- deferFn(() => this.searchField?.focus());
290
+ deferFn(() => this.focusSelectSearchField());
289
291
  }
290
292
  }
291
293
  onDropdownClose() {
292
294
  this.disableSmoothScroll();
295
+ this.element.nativeElement.blur();
293
296
  if (this.searchFieldEnabled) {
294
297
  this.searchFieldEnabled = false;
295
298
  this.element.nativeElement?.focus();
@@ -313,22 +316,27 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
313
316
  ?.filter(({ isSelected }) => isSelected)
314
317
  .map((option) => this.stringify?.(option.value) ?? option.getLabel())
315
318
  .join(', ') ?? null;
316
- this.triggerControllerChange();
319
+ this.changeDetector.detectChanges();
317
320
  return;
318
321
  }
319
322
  this.selectedOptionText = this.selectedOption ? this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel() : null;
320
- this.triggerControllerChange();
323
+ this.changeDetector.detectChanges();
324
+ }
325
+ focusSelectSearchField() {
326
+ this.searchFieldEnabled = !!this.searchField;
327
+ deferFn(() => this.searchField?.focus());
328
+ this.changeDetector.detectChanges();
321
329
  }
322
330
  };
323
331
  SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
324
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: SelectComponent, isStandalone: true, selector: "odx-select", inputs: { placeholder: "placeholder", isLoading: "isLoading", multiple: "multiple", selectedOptionTemplate: "selectedOptionTemplate", stringify: "stringify", identityMatcher: "identityMatcher" }, outputs: { change: "change" }, host: { listeners: { "click": "openDropdown($event)", "keydown": "openDropdown($event)", "focusout": "handleFocusOut()" }, properties: { "attr.aria-disabled": "isDisabled || null", "class.is-open": "isOpen", "tabindex": "searchFieldEnabled || isDisabled ? -1 : 0", "attr.aria-multiselectable": "multiple" } }, providers: [
332
+ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: SelectComponent, isStandalone: true, selector: "odx-select", inputs: { placeholder: "placeholder", isLoading: "isLoading", multiple: "multiple", selectedOptionTemplate: "selectedOptionTemplate", stringify: "stringify", identityMatcher: "identityMatcher" }, outputs: { change: "change" }, host: { listeners: { "click": "openDropdown($event)", "keydown": "openDropdown($event)", "focusout": "handleFocusOut($event)" }, properties: { "attr.aria-disabled": "isDisabled || null", "class.is-open": "isOpen", "tabindex": "searchFieldEnabled || isDisabled ? -1 : 0", "attr.aria-multiselectable": "multiple" } }, providers: [
325
333
  DisabledController.connect(),
326
334
  ReadonlyController.connect(),
327
335
  {
328
336
  provide: SELECT_CONTROL,
329
337
  useExisting: forwardRef(() => SelectComponent_1),
330
338
  },
331
- ], queries: [{ propertyName: "searchField", first: true, predicate: SelectSearchFieldDirective, descendants: true }, { propertyName: "options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, 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 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: OptionComponent, selector: "odx-option", inputs: ["value", "notFoundMessage"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
339
+ ], queries: [{ propertyName: "searchField", first: true, predicate: SelectSearchFieldDirective, descendants: true }, { propertyName: "options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, 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]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: OptionComponent, selector: "odx-option", inputs: ["value", "notFoundMessage"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
332
340
  __decorate([
333
341
  Transform(coerceBooleanProperty),
334
342
  __metadata("design:type", Object)
@@ -356,7 +364,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
356
364
  '[class.is-open]': 'isOpen',
357
365
  '[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',
358
366
  '[attr.aria-multiselectable]': 'multiple',
359
- }, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n" }]
367
+ }, 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]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n" }]
360
368
  }], ctorParameters: function () { return []; }, propDecorators: { options: [{
361
369
  type: ContentChildren,
362
370
  args: [OptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
@@ -388,7 +396,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
388
396
  args: ['keydown', ['$event']]
389
397
  }], handleFocusOut: [{
390
398
  type: HostListener,
391
- args: ['focusout']
399
+ args: ['focusout', ['$event']]
392
400
  }] } });
393
401
 
394
402
  const modules = [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent];
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-select.mjs","sources":["../../../../libs/angular/components/select/src/lib/select.tokens.ts","../../../../libs/angular/components/select/src/lib/components/option/option.component.ts","../../../../libs/angular/components/select/src/lib/components/option/option.component.html","../../../../libs/angular/components/select/src/lib/directives/select-search-field.directive.ts","../../../../libs/angular/components/select/src/lib/pipes/select-search-filter.pipe.ts","../../../../libs/angular/components/select/src/lib/select.component.ts","../../../../libs/angular/components/select/src/lib/select.component.html","../../../../libs/angular/components/select/src/lib/select.module.ts","../../../../libs/angular/components/select/src/odx-angular-components-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SelectControl } from './abstract';\n\nexport const SELECT_CONTROL = new InjectionToken<SelectControl>('@odx/angular/components/select::SelectControl');\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges, DisabledController, ReadonlyController } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, Transform, untilDestroyed } from '@odx/angular/utils';\nimport { SelectControlOption } from '../../abstract';\nimport { SELECT_CONTROL } from '../../select.tokens';\n\n@CSSComponent('option')\n@Component({\n standalone: true,\n selector: 'odx-option',\n imports: [CoreModule, DynamicViewDirective, CheckboxComponent],\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DisabledController.connect(), ReadonlyController.connect()],\n host: {\n '[attr.aria-selected]': 'isSelected',\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n '[class.is-selected]': 'isSelected',\n '[class.is-active]': 'isActive',\n role: 'option',\n },\n})\nexport class OptionComponent<T = unknown> implements OnInit, SelectControlOption<T> {\n public static ngAcceptInputType_notFoundMessage: BooleanInput;\n\n private readonly disabledController = DisabledController.inject();\n private readonly readonlyController = ReadonlyController.inject();\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly cdr = inject(ChangeDetectorRef);\n\n protected readonly selectControl = inject(SELECT_CONTROL);\n protected isActive = false;\n\n public readonly element = injectElement();\n public isSelected = false;\n\n @Input()\n public value: T | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input()\n public notFoundMessage = false;\n\n public get disabled(): boolean {\n return !!this.disabledController?.disabled || !!this.readonlyController?.readonly;\n }\n\n constructor() {\n if (!this.selectControl.multiple) {\n detectControllerChanges(this.selectControl)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.isSelected = this.selectControl.isOptionSelected(this);\n });\n }\n }\n\n public ngOnInit(): void {\n this.isSelected = this.selectControl.isOptionSelected(this);\n }\n\n public getLabel(): string {\n return this.element.nativeElement.textContent ?? '';\n }\n\n public setActiveStyles(): void {\n if (this.disabled) return;\n this.isActive = true;\n if (this.selectControl.isOpen) {\n this.selectControl.scrollOptionIntoView(this);\n } else {\n this.selectControl.selectOption(this);\n }\n }\n\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n\n public switchCheckbox(): void {\n if (this.selectControl.multiple) {\n this.isSelected = !this.isSelected;\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('click', ['$event'])\n protected select(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n this.selectControl.selectOption(this);\n }\n}\n","<odx-checkbox [checked]=\"isSelected\" *ngIf=\"selectControl.multiple && !notFoundMessage; else single\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</odx-checkbox>\n\n<ng-template #single>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n@CSSComponent('select__search')\n@Directive({\n standalone: true,\n selector: 'input[odxSelectSearchField]',\n host: {\n '[class.odx-form-field-control]': 'true',\n },\n})\nexport class SelectSearchFieldDirective {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxSelectSearchField')\n public notFoundContent: DynamicContent | null = null;\n\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n map(() => this.getValue()),\n distinctUntilChanged(),\n this.takeUntilDestroyed()\n );\n\n @HostListener('keydown.delete')\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n public getValue(): string {\n return this.element.nativeElement.value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringSearchHandler } from '@odx/angular';\nimport { Pure } from '@odx/angular/utils';\nimport { SelectSearchFieldDirective } from '../directives';\nimport { SELECT_CONTROL } from '../select.tokens';\n\n@Pipe({\n pure: false,\n name: 'odxSelectSearchFilter',\n standalone: true,\n})\nexport class SelectSearchFilterPipe implements PipeTransform {\n private readonly searchController = inject(SELECT_CONTROL, { optional: true });\n private readonly stringify = inject(ODX_STRINGIFY);\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n\n private get searchField(): SelectSearchFieldDirective | undefined {\n return this.searchController?.searchField;\n }\n\n public transform<T>(items: T[] | null, searchHandler?: StringSearchHandler): T[] | null {\n if (this.searchField) {\n return this.filter(items, this.searchField.getValue(), searchHandler);\n }\n return items;\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, searchHandler?: StringSearchHandler): T[] | null {\n if (!items) {\n return null;\n }\n query = query.trim();\n if (query === '') {\n return items;\n }\n const search = searchHandler ?? this.stringSearchHandler;\n const stringify = this.searchController?.stringify ?? this.stringify;\n\n return items.filter((item) => search(stringify(item), query));\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CoreModule, detectControllerChanges, DisabledController, IdentityMatcher, ODX_IDENTITY_MATCHER, ReadonlyController, StringifyFn } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromQueryList } from '@odx/angular/rxjs';\nimport { deferFn, injectElement, Transform } from '@odx/angular/utils';\nimport { SelectControl, SelectControlOption } from './abstract';\nimport { OptionComponent } from './components';\nimport { SelectSearchFieldDirective } from './directives';\nimport { SELECT_CONTROL } from './select.tokens';\n\n@CSSComponent('select')\n@Component({\n standalone: true,\n selector: 'odx-select',\n imports: [CoreModule, DropdownDirective, IconComponent, DynamicViewDirective, OptionComponent, LoadingSpinnerModule],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DisabledController.connect(),\n ReadonlyController.connect(),\n {\n provide: SELECT_CONTROL,\n useExisting: forwardRef(() => SelectComponent),\n },\n ],\n host: {\n '[attr.aria-disabled]': 'isDisabled || null',\n '[class.is-open]': 'isOpen',\n '[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',\n '[attr.aria-multiselectable]': 'multiple',\n },\n})\nexport class SelectComponent<T = unknown | unknown[]> extends CustomFormControl<T | null> implements AfterViewInit, SelectControl<T> {\n public static ngAcceptInputType_isLoading: BooleanInput;\n public static ngAcceptInputType_multiple: BooleanInput;\n\n private keyManager?: ActiveDescendantKeyManager<OptionComponent<T>>;\n\n protected searchFieldEnabled = false;\n protected smoothScrollEnabled = false;\n protected selectedOption: OptionComponent<T> | null = null;\n protected selectedOptionText: string | null = null;\n\n @ContentChildren(OptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n protected options?: QueryList<OptionComponent<T>>;\n\n @ViewChild(DropdownDirective)\n protected dropdown?: DropdownDirective;\n\n public get hasOptions(): boolean {\n return !!this.options && this.options.length > 0;\n }\n\n public readonly element = injectElement();\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n public get selectedOptionContent(): TemplateRef<{ $implicit: T | null }> | string | null {\n return this.selectedOption ? this.selectedOptionTemplate ?? this.selectedOptionText : null;\n }\n\n @Input()\n public placeholder = '';\n\n @Transform(coerceBooleanProperty)\n @Input()\n public isLoading = false;\n\n @CSSModifier()\n @Transform(coerceBooleanProperty)\n @Input()\n public multiple = false;\n\n @Input()\n public selectedOptionTemplate?: TemplateRef<{ $implicit: T }> | null = null;\n\n @Input()\n public stringify?: StringifyFn<T | null>;\n\n @Input()\n public identityMatcher: IdentityMatcher<T | null> = inject(ODX_IDENTITY_MATCHER);\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public change = new EventEmitter<void>();\n\n @ContentChild(SelectSearchFieldDirective)\n public searchField?: SelectSearchFieldDirective;\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n this.keyManager = new ActiveDescendantKeyManager(this.options).withHomeAndEnd().skipPredicate((item) => item.disabled);\n fromQueryList(this.options).subscribe(() => {\n this.updateSelectedOption();\n if (this.isOpen) {\n deferFn(() => this.activateSelectedOption());\n }\n });\n this.searchField?.valueChange$.subscribe(() => this.triggerControllerChange());\n }\n\n public override registerOnChange(fn: (value: T | null) => void): void {\n super.registerOnChange((value) => {\n this.updateSelectedOption();\n fn(value);\n });\n }\n\n public selectOption(option?: SelectControlOption<T | T[]> | null): void {\n if (option && !option.disabled) {\n option.switchCheckbox();\n const value = this.multiple\n ? this.options\n ?.toArray()\n .filter(({ isSelected }) => isSelected)\n .map(({ value }) => value)\n : option.value;\n this.updateValue((value as T) ?? null);\n }\n\n !this.multiple && this.dropdown?.close();\n }\n\n public isOptionSelected(option: SelectControlOption<T | T[]>): boolean {\n if (option && !option.disabled) {\n if (this.multiple && Array.isArray(this.value)) {\n return (this.value as T[]).includes(option.value as T);\n }\n return this.identityMatcher(option.value as T, this.value);\n }\n return false;\n }\n\n public scrollOptionIntoView({ element }: SelectControlOption<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown', ['$event'])\n protected openDropdown(event: KeyboardEvent) {\n if (this.isLoading) return;\n if (this.isOpen && this.hasOptions) {\n if (event.key === 'Enter' || event.key === 'Tab') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.selectOption(this.keyManager?.activeItem);\n return;\n }\n }\n this.keyManager?.onKeydown(event);\n }\n\n @HostListener('focusout')\n protected handleFocusOut(): void {\n this.onTouched();\n }\n\n protected activateSelectedOption(): void {\n let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled);\n if (!activeIndex || activeIndex === -1) {\n activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;\n }\n this.keyManager?.setActiveItem(activeIndex);\n }\n\n protected onDropdownOpen(): void {\n this.activateSelectedOption();\n if (!this.searchFieldEnabled) {\n this.searchFieldEnabled = !!this.searchField;\n deferFn(() => this.searchField?.focus());\n }\n }\n\n protected onDropdownClose(): void {\n this.disableSmoothScroll();\n if (this.searchFieldEnabled) {\n this.searchFieldEnabled = false;\n this.element.nativeElement?.focus();\n }\n }\n\n protected onDropdownClosed(): void {\n this.searchField?.reset();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n private updateSelectedOption(): void {\n const options = this.options?.toArray();\n this.selectedOption = options?.find((option) => option.isSelected) ?? null;\n if (this.multiple) {\n this.selectedOptionText =\n options\n ?.filter(({ isSelected }) => isSelected)\n .map((option) => this.stringify?.(option.value) ?? option.getLabel())\n .join(', ') ?? null;\n\n this.triggerControllerChange();\n return;\n }\n this.selectedOptionText = this.selectedOption ? this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel() : null;\n this.triggerControllerChange();\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { OptionComponent } from './components';\nimport { SelectSearchFieldDirective } from './directives';\nimport { SelectSearchFilterPipe } from './pipes';\nimport { SelectComponent } from './select.component';\n\nconst modules = [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;MAGa,cAAc,GAAG,IAAI,cAAc,CAAgB,+CAA+C;;ACyBlG,IAAA,eAAe,GAArB,MAAM,eAAe,CAAA;AAqB1B,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;KACnF;AAED,IAAA,WAAA,GAAA;AAtBiB,QAAA,IAAA,CAAA,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACjD,IAAkB,CAAA,kBAAA,GAAG,cAAc,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE9B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAChD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEX,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;QACnC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAGnB,IAAK,CAAA,KAAA,GAAa,IAAI,CAAC;QAIvB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAO7B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAChC,YAAA,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC;AACxC,iBAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC/B,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC9D,aAAC,CAAC,CAAC;AACN,SAAA;KACF;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC7D;IAEM,QAAQ,GAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC;KACrD;IAEM,eAAe,GAAA;QACpB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACvC,SAAA;KACF;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAGS,IAAA,MAAM,CAAC,KAAY,EAAA;QAC3B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACvC;;4GArEU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,gZAVf,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBzE,4WAWA,EDGY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,UAAU,0SAAwB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;AA+B7D,UAAA,CAAA;IAAC,SAAS,CAAC,qBAAqB,CAAC;;AAEF,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAnBpB,eAAe,GAAA,UAAA,CAAA;IAlB3B,YAAY,CAAC,QAAQ,CAAC;;AAkBV,CAAA,EAAA,eAAe,CAsE3B,CAAA;2FAtEY,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjB3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,YAAY,EACb,OAAA,EAAA,CAAC,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,EAE/C,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC,EACjE,IAAA,EAAA;AACJ,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,sBAAsB,EAAE,kBAAkB;AAC1C,wBAAA,qBAAqB,EAAE,UAAU;AACjC,wBAAA,qBAAqB,EAAE,YAAY;AACnC,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA,EAAA,QAAA,EAAA,4WAAA,EAAA,CAAA;0EAiBM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAKC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBA+CI,MAAM,EAAA,CAAA;sBADf,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AE9EtB,IAAA,0BAA0B,GAAhC,MAAM,0BAA0B,CAAA;AAAhC,IAAA,WAAA,GAAA;QACY,IAAkB,CAAA,kBAAA,GAAG,cAAc,EAAE,CAAC;QAEvC,IAAO,CAAA,OAAA,GAAG,aAAa,EAAoB,CAAC;;QAIrD,IAAe,CAAA,eAAA,GAA0B,IAAI,CAAC;AAE9C,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CACvE,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC1B,oBAAoB,EAAE,EACtB,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAC;AAcH,KAAA;IAXQ,KAAK,GAAA;QACV,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;KACvC;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACpC;IAEM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;KACzC;;uHA1BU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,CAAA,sBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAA1B,0BAA0B,GAAA,UAAA,CAAA;IARtC,YAAY,CAAC,gBAAgB,CAAC;AAQlB,CAAA,EAAA,0BAA0B,CA2BtC,CAAA;2FA3BY,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,gCAAgC,EAAE,MAAM;AACzC,qBAAA;AACF,iBAAA,CAAA;8BAQQ,eAAe,EAAA,CAAA;sBADrB,KAAK;uBAAC,sBAAsB,CAAA;gBAUtB,KAAK,EAAA,CAAA;sBADX,YAAY;uBAAC,gBAAgB,CAAA;;;MClBnB,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;QAMmB,IAAgB,CAAA,gBAAA,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AA2B1E,KAAA;AAzBC,IAAA,IAAY,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC;KAC3C;IAEM,SAAS,CAAI,KAAiB,EAAE,aAAmC,EAAA;QACxE,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;AACvE,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAGO,IAAA,MAAM,CAAI,KAAiB,EAAE,KAAa,EAAE,aAAmC,EAAA;QACrF,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,KAAK,KAAK,EAAE,EAAE;AAChB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,aAAa,IAAI,IAAI,CAAC,mBAAmB,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;AAErE,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;KAC/D;;mHA7BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;iHAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;AAgBjC,UAAA,CAAA;IAAC,IAAI;;;;AAaJ,CAAA,EAAA,sBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;2FA7BU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAkBS,MAAM,EAAA,EAAA,EAAA,EAAA,CAAA;;;AC4BT,IAAM,eAAe,GAAA,iBAAA,GAArB,MAAM,eAAyC,SAAQ,iBAA2B,CAAA;AAiBvF,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KAClD;AAID,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;KAChC;AAED,IAAA,IAAW,qBAAqB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAC5F;AA8BD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,IAAI,CAAC,CAAC;QAtDJ,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAc,CAAA,cAAA,GAA8B,IAAI,CAAC;QACjD,IAAkB,CAAA,kBAAA,GAAkB,IAAI,CAAC;QAYnC,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;QAWnC,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QAIjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAKlB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAGjB,IAAsB,CAAA,sBAAA,GAA0C,IAAI,CAAC;AAMrE,QAAA,IAAA,CAAA,eAAe,GAA8B,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAI1E,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAOvC,QAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;KAC3C;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvH,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;YACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,OAAO,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC9C,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;KAChF;AAEe,IAAA,gBAAgB,CAAC,EAA6B,EAAA;AAC5D,QAAA,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAK,KAAI;YAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,EAAE,CAAC,KAAK,CAAC,CAAC;AACZ,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,YAAY,CAAC,MAA4C,EAAA;AAC9D,QAAA,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9B,MAAM,CAAC,cAAc,EAAE,CAAC;AACxB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;kBACvB,IAAI,CAAC,OAAO;AACV,sBAAE,OAAO,EAAE;qBACV,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC;qBACtC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;AAC9B,kBAAE,MAAM,CAAC,KAAK,CAAC;AACjB,YAAA,IAAI,CAAC,WAAW,CAAE,KAAW,IAAI,IAAI,CAAC,CAAC;AACxC,SAAA;QAED,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC1C;AAEM,IAAA,gBAAgB,CAAC,MAAoC,EAAA;AAC1D,QAAA,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC9C,OAAQ,IAAI,CAAC,KAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAU,CAAC,CAAC;AACxD,aAAA;AACD,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,oBAAoB,CAAC,EAAE,OAAO,EAA0B,EAAA;AAC7D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjE,QAAA,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;KACrE;AAIS,IAAA,YAAY,CAAC,KAAoB,EAAA;QACzC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;AAC3B,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;YAClC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;gBAChD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC/C,OAAO;AACR,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;KACnC;IAGS,cAAc,GAAA;QACtB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAES,sBAAsB,GAAA;QAC9B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvG,QAAA,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;YACtC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;KAC7C;IAES,cAAc,GAAA;QACtB,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,SAAA;KACF;IAES,eAAe,GAAA;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;AACrC,SAAA;KACF;IAES,gBAAgB,GAAA;AACxB,QAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;KAC3B;IAES,mBAAmB,GAAA;AAC3B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;IAES,kBAAkB,GAAA;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;KACjC;IAEO,oBAAoB,GAAA;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;QAC3E,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB;gBACrB,OAAO;sBACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC;qBACvC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;AACpE,qBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YAExB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;QACtI,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;;4GAxLU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAff,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,2CAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA;QACT,kBAAkB,CAAC,OAAO,EAAE;QAC5B,kBAAkB,CAAC,OAAO,EAAE;AAC5B,QAAA;AACE,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAe,CAAC;AAC/C,SAAA;AACF,KAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgEa,0BAA0B,EA7CvB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAe,0FAGrB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtE9B,moDAwCA,EDHY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,UAAU,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,uaAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAE,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,wBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,4FAAE,oBAAoB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;AAqDnH,UAAA,CAAA;IAAC,SAAS,CAAC,qBAAqB,CAAC;;AAER,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEzB,UAAA,CAAA;AAAC,IAAA,WAAW,EAAE;IACb,SAAS,CAAC,qBAAqB,CAAC;;AAET,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAzCb,eAAe,GAAA,iBAAA,GAAA,UAAA,CAAA;IAvB3B,YAAY,CAAC,QAAQ,CAAC;;AAuBV,CAAA,EAAA,eAAe,CAyL3B,CAAA;2FAzLY,eAAe,EAAA,UAAA,EAAA,CAAA;kBAtB3B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,YAAY,EAAA,OAAA,EACb,CAAC,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAA,aAAA,EAErG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACT,kBAAkB,CAAC,OAAO,EAAE;wBAC5B,kBAAkB,CAAC,OAAO,EAAE;AAC5B,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC/C,yBAAA;qBACF,EACK,IAAA,EAAA;AACJ,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,iBAAiB,EAAE,QAAQ;AAC3B,wBAAA,YAAY,EAAE,2CAA2C;AACzD,wBAAA,6BAA6B,EAAE,UAAU;AAC1C,qBAAA,EAAA,QAAA,EAAA,moDAAA,EAAA,CAAA;0EAcS,OAAO,EAAA,CAAA;sBADhB,eAAe;uBAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAA;gBAI5E,QAAQ,EAAA,CAAA;sBADjB,SAAS;uBAAC,iBAAiB,CAAA;gBAkBrB,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAMC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAKC,MAAM,EAAA,CAAA;sBAFZ,MAAM;gBAKA,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,0BAA0B,CAAA;gBA2D9B,YAAY,EAAA,CAAA;sBAFrB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAChC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAezB,cAAc,EAAA,CAAA;sBADvB,YAAY;uBAAC,UAAU,CAAA;;;AEjL1B,MAAM,OAAO,GAAG,CAAC,eAAe,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,eAAe,CAAC,CAAC;MAM1F,YAAY,CAAA;;yGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YANR,eAAe,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,eAAe,CAIzF,EAAA,OAAA,EAAA,CAAA,UAAU,EAJL,eAAe,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAMxF,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EANR,OAAA,EAAA,CAAA,eAAe,EAAsD,eAAe,EAIzF,UAAU,CAAA,EAAA,CAAA,CAAA;2FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC;AAClC,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-components-select.mjs","sources":["../../../../libs/angular/components/select/src/lib/select.tokens.ts","../../../../libs/angular/components/select/src/lib/components/option/option.component.ts","../../../../libs/angular/components/select/src/lib/components/option/option.component.html","../../../../libs/angular/components/select/src/lib/directives/select-search-field.directive.ts","../../../../libs/angular/components/select/src/lib/pipes/select-search-filter.pipe.ts","../../../../libs/angular/components/select/src/lib/select.component.ts","../../../../libs/angular/components/select/src/lib/select.component.html","../../../../libs/angular/components/select/src/lib/select.module.ts","../../../../libs/angular/components/select/src/odx-angular-components-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SelectControl } from './abstract';\n\nexport const SELECT_CONTROL = new InjectionToken<SelectControl>('@odx/angular/components/select::SelectControl');\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges, DisabledController } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, Transform, untilDestroyed } from '@odx/angular/utils';\nimport { SelectControlOption } from '../../abstract';\nimport { SELECT_CONTROL } from '../../select.tokens';\n\n@CSSComponent('option')\n@Component({\n standalone: true,\n selector: 'odx-option',\n imports: [CoreModule, DynamicViewDirective, CheckboxComponent],\n templateUrl: './option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DisabledController.connect()],\n host: {\n '[attr.aria-selected]': 'isSelected',\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n '[class.is-selected]': 'isSelected',\n '[class.is-active]': 'isActive',\n role: 'option',\n },\n})\nexport class OptionComponent<T = unknown> implements OnInit, SelectControlOption<T> {\n public static ngAcceptInputType_notFoundMessage: BooleanInput;\n\n private readonly disabledController = DisabledController.inject();\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly cdr = inject(ChangeDetectorRef);\n\n protected readonly selectControl = inject(SELECT_CONTROL);\n protected isActive = false;\n\n public readonly element = injectElement();\n public isSelected = false;\n\n @Input()\n public value: T | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input()\n public notFoundMessage = false;\n\n public get disabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n constructor() {\n if (!this.selectControl.multiple) {\n detectControllerChanges(this.selectControl)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.isSelected = this.selectControl.isOptionSelected(this);\n });\n }\n }\n\n public ngOnInit(): void {\n this.isSelected = this.selectControl.isOptionSelected(this);\n }\n\n public getLabel(): string {\n return this.element.nativeElement.textContent ?? '';\n }\n\n public setActiveStyles(): void {\n if (this.disabled) return;\n this.isActive = true;\n if (this.selectControl.isOpen) {\n this.selectControl.scrollOptionIntoView(this);\n } else {\n this.selectControl.selectOption(this);\n }\n }\n\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n\n public switchCheckbox(): void {\n if (this.selectControl.multiple) {\n this.isSelected = !this.isSelected;\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('click', ['$event'])\n protected select(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n this.selectControl.selectOption(this);\n }\n}\n","<odx-checkbox [checked]=\"isSelected\" *ngIf=\"selectControl.multiple && !notFoundMessage; else single\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</odx-checkbox>\n\n<ng-template #single>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n@CSSComponent('select__search')\n@Directive({\n standalone: true,\n selector: 'input[odxSelectSearchField]',\n host: {\n '[class.odx-form-field-control]': 'true',\n },\n})\nexport class SelectSearchFieldDirective {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxSelectSearchField')\n public notFoundContent: DynamicContent | null = null;\n\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n map(() => this.getValue()),\n distinctUntilChanged(),\n this.takeUntilDestroyed()\n );\n\n @HostListener('keydown.delete')\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n public getValue(): string {\n return this.element.nativeElement.value;\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringSearchHandler } from '@odx/angular';\nimport { Pure } from '@odx/angular/utils';\nimport { SelectSearchFieldDirective } from '../directives';\nimport { SELECT_CONTROL } from '../select.tokens';\n\n@Pipe({\n pure: false,\n name: 'odxSelectSearchFilter',\n standalone: true,\n})\nexport class SelectSearchFilterPipe implements PipeTransform {\n private readonly searchController = inject(SELECT_CONTROL, { optional: true });\n private readonly stringify = inject(ODX_STRINGIFY);\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n\n private get searchField(): SelectSearchFieldDirective | undefined {\n return this.searchController?.searchField;\n }\n\n public transform<T>(items: T[] | null, searchHandler?: StringSearchHandler): T[] | null {\n if (this.searchField) {\n return this.filter(items, this.searchField.getValue(), searchHandler);\n }\n return items;\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, searchHandler?: StringSearchHandler): T[] | null {\n if (!items) {\n return null;\n }\n query = query.trim();\n if (query === '') {\n return items;\n }\n const search = searchHandler ?? this.stringSearchHandler;\n const stringify = this.searchController?.stringify ?? this.stringify;\n\n return items.filter((item) => search(stringify(item), query));\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CoreModule, detectControllerChanges, DisabledController, IdentityMatcher, ODX_IDENTITY_MATCHER, ReadonlyController, StringifyFn } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromQueryList } from '@odx/angular/rxjs';\nimport { deferFn, injectElement, Transform } from '@odx/angular/utils';\nimport { SelectControl, SelectControlOption } from './abstract';\nimport { OptionComponent } from './components';\nimport { SelectSearchFieldDirective } from './directives';\nimport { SELECT_CONTROL } from './select.tokens';\n\n@CSSComponent('select')\n@Component({\n standalone: true,\n selector: 'odx-select',\n imports: [CoreModule, DropdownDirective, IconComponent, DynamicViewDirective, OptionComponent, LoadingSpinnerModule],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DisabledController.connect(),\n ReadonlyController.connect(),\n {\n provide: SELECT_CONTROL,\n useExisting: forwardRef(() => SelectComponent),\n },\n ],\n host: {\n '[attr.aria-disabled]': 'isDisabled || null',\n '[class.is-open]': 'isOpen',\n '[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',\n '[attr.aria-multiselectable]': 'multiple',\n },\n})\nexport class SelectComponent<T = unknown | unknown[]> extends CustomFormControl<T | null> implements AfterViewInit, SelectControl<T> {\n public static ngAcceptInputType_isLoading: BooleanInput;\n public static ngAcceptInputType_multiple: BooleanInput;\n\n private keyManager?: ActiveDescendantKeyManager<OptionComponent<T>>;\n private readonly changeDetector = inject(ChangeDetectorRef);\n\n protected searchFieldEnabled = false;\n protected smoothScrollEnabled = false;\n protected selectedOption: OptionComponent<T> | null = null;\n protected selectedOptionText: string | null = null;\n\n @ContentChildren(OptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n protected options?: QueryList<OptionComponent<T>>;\n\n @ViewChild(DropdownDirective)\n protected dropdown?: DropdownDirective;\n\n public get hasOptions(): boolean {\n return !!this.options && this.options.length > 0;\n }\n\n public readonly element = injectElement();\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n public get selectedOptionContent(): TemplateRef<{ $implicit: T | null }> | string | null {\n return this.selectedOption ? this.selectedOptionTemplate ?? this.selectedOptionText : null;\n }\n\n @Input()\n public placeholder = '';\n\n @Transform(coerceBooleanProperty)\n @Input()\n public isLoading = false;\n\n @CSSModifier()\n @Transform(coerceBooleanProperty)\n @Input()\n public multiple = false;\n\n @Input()\n public selectedOptionTemplate?: TemplateRef<{ $implicit: T }> | null = null;\n\n @Input()\n public stringify?: StringifyFn<T | null>;\n\n @Input()\n public identityMatcher: IdentityMatcher<T | null> = inject(ODX_IDENTITY_MATCHER);\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public change = new EventEmitter<void>();\n\n @ContentChild(SelectSearchFieldDirective)\n public searchField?: SelectSearchFieldDirective;\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n this.keyManager = new ActiveDescendantKeyManager(this.options).withHomeAndEnd().skipPredicate((item) => item.disabled);\n fromQueryList(this.options).subscribe(() => {\n this.updateSelectedOption();\n if (this.isOpen) {\n deferFn(() => this.activateSelectedOption());\n }\n });\n this.searchField?.valueChange$.subscribe(() => this.triggerControllerChange());\n }\n\n public override registerOnChange(fn: (value: T | null) => void): void {\n super.registerOnChange((value) => {\n this.updateSelectedOption();\n fn(value);\n });\n }\n\n public selectOption(option?: SelectControlOption<T | T[]> | null): void {\n if (option && !option.disabled) {\n option.switchCheckbox();\n const value = this.multiple\n ? this.options\n ?.toArray()\n .filter(({ isSelected }) => isSelected)\n .map(({ value }) => value)\n : option.value;\n this.updateValue((value as T) ?? null);\n }\n\n !this.multiple && this.dropdown?.close();\n }\n\n public isOptionSelected(option: SelectControlOption<T | T[]>): boolean {\n if (option && !option.disabled) {\n if (this.multiple && Array.isArray(this.value)) {\n return (this.value as T[]).includes(option.value as T);\n }\n return this.identityMatcher(option.value as T, this.value);\n }\n return false;\n }\n\n public scrollOptionIntoView({ element }: SelectControlOption<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown', ['$event'])\n protected openDropdown(event: KeyboardEvent) {\n if (this.isLoading || this.readonlyController?.readonly) return;\n if (this.isOpen && this.hasOptions) {\n if (event.key === 'Enter' || event.key === 'Tab') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.selectOption(this.keyManager?.activeItem);\n return;\n }\n }\n this.keyManager?.onKeydown(event);\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n\n protected activateSelectedOption(): void {\n let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled);\n if (!activeIndex || activeIndex === -1) {\n activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;\n }\n this.keyManager?.setActiveItem(activeIndex);\n }\n\n protected onDropdownOpen(): void {\n this.activateSelectedOption();\n if (!this.searchFieldEnabled) {\n deferFn(() => this.focusSelectSearchField());\n }\n }\n\n protected onDropdownClose(): void {\n this.disableSmoothScroll();\n this.element.nativeElement.blur();\n if (this.searchFieldEnabled) {\n this.searchFieldEnabled = false;\n this.element.nativeElement?.focus();\n }\n }\n\n protected onDropdownClosed(): void {\n this.searchField?.reset();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n private updateSelectedOption(): void {\n const options = this.options?.toArray();\n this.selectedOption = options?.find((option) => option.isSelected) ?? null;\n if (this.multiple) {\n this.selectedOptionText =\n options\n ?.filter(({ isSelected }) => isSelected)\n .map((option) => this.stringify?.(option.value) ?? option.getLabel())\n .join(', ') ?? null;\n\n this.changeDetector.detectChanges();\n return;\n }\n this.selectedOptionText = this.selectedOption ? this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel() : null;\n this.changeDetector.detectChanges();\n }\n\n private focusSelectSearchField(): void {\n this.searchFieldEnabled = !!this.searchField;\n deferFn(() => this.searchField?.focus());\n this.changeDetector.detectChanges();\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { OptionComponent } from './components';\nimport { SelectSearchFieldDirective } from './directives';\nimport { SelectSearchFilterPipe } from './pipes';\nimport { SelectComponent } from './select.component';\n\nconst modules = [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -306,7 +306,7 @@ function createConfigTokens(name, prefix, defaultValue) {
306
306
  return {
307
307
  [configName]: token,
308
308
  [defaultConfigName]: defaultValue,
309
- [injectConfigName]: () => deepmerge(defaultValue, inject(token)),
309
+ [injectConfigName]: () => deepmerge(defaultValue, inject(token, { skipSelf: true, optional: true }) ?? {}, inject(token)),
310
310
  [provideConfigName]: (config) => {
311
311
  return provideConfig(token, config);
312
312
  },