@koobiq/components 20.1.0 → 20.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/accordion/_accordion-theme.scss +1 -1
  2. package/accordion/accordion-tokens.scss +1 -0
  3. package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -0
  4. package/accordion/{accordion.component.scss → accordion.scss} +3 -3
  5. package/accordion/index.d.ts +215 -119
  6. package/alert/_alert-theme.scss +14 -0
  7. package/alert/alert.component.scss +24 -13
  8. package/alert/index.d.ts +63 -29
  9. package/autocomplete/autocomplete.scss +2 -1
  10. package/autocomplete/index.d.ts +35 -29
  11. package/badge/index.d.ts +2 -3
  12. package/clamped-text/index.d.ts +3 -2
  13. package/core/index.d.ts +116 -11
  14. package/core/styles/_core.scss +2 -0
  15. package/core/styles/common/_animation.scss +31 -24
  16. package/core/styles/common/_connected-overlay.scss +36 -0
  17. package/core/styles/common/_select.scss +7 -2
  18. package/dropdown/dropdown-item.scss +16 -0
  19. package/dropdown/dropdown-tokens.scss +2 -1
  20. package/dropdown/dropdown.scss +9 -0
  21. package/dropdown/index.d.ts +73 -6
  22. package/fesm2022/koobiq-components-accordion.mjs +406 -303
  23. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  24. package/fesm2022/koobiq-components-actions-panel.mjs +1 -1
  25. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  26. package/fesm2022/koobiq-components-alert.mjs +88 -48
  27. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  28. package/fesm2022/koobiq-components-app-switcher.mjs +1 -1
  29. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  30. package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
  31. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  32. package/fesm2022/koobiq-components-badge.mjs +5 -4
  33. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  34. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  35. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  36. package/fesm2022/koobiq-components-clamped-text.mjs +5 -0
  37. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  38. package/fesm2022/koobiq-components-code-block.mjs +1 -1
  39. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-core.mjs +98 -4
  41. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-datepicker.mjs +10 -7
  43. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-dropdown.mjs +99 -20
  45. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-file-upload.mjs +2 -2
  47. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-filter-bar.mjs +203 -32
  49. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-form-field.mjs +4 -4
  51. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-icon.mjs +14 -5
  53. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-inline-edit.mjs +4 -2
  55. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-navbar.mjs +117 -22
  57. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-notification-center.mjs +19 -4
  59. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-popover.mjs +5 -0
  61. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
  63. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-select.mjs +36 -45
  65. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-split-button.mjs +3 -10
  67. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-tabs.mjs +29 -17
  69. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-tags.mjs +1 -1
  71. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-timepicker.mjs +3 -4
  73. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-timezone.mjs +3 -5
  75. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-toast.mjs +1 -1
  77. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-tooltip.mjs +118 -6
  79. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-tree-select.mjs +39 -31
  81. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  82. package/filter-bar/_filter-bar-theme.scss +0 -4
  83. package/filter-bar/filter-bar-tokens.scss +3 -0
  84. package/filter-bar/filters.scss +3 -2
  85. package/filter-bar/index.d.ts +62 -3
  86. package/filter-bar/pipes/base-pipe.scss +0 -11
  87. package/filter-bar/pipes/pipe-input.scss +10 -0
  88. package/icon/icon-button.scss +3 -1
  89. package/icon/index.d.ts +15 -2
  90. package/navbar/_navbar-item_vertical.scss +7 -5
  91. package/navbar/index.d.ts +38 -4
  92. package/navbar/navbar-brand.scss +17 -7
  93. package/notification-center/index.d.ts +2 -1
  94. package/package.json +3 -3
  95. package/prebuilt-themes/dark-theme.css +1 -1
  96. package/prebuilt-themes/light-theme.css +1 -1
  97. package/prebuilt-themes/theme.css +1 -1
  98. package/schematics/collection.json +10 -0
  99. package/schematics/migrations/alert-signals/README.md +64 -0
  100. package/schematics/migrations/alert-signals/data.js +70 -0
  101. package/schematics/migrations/alert-signals/index.js +350 -0
  102. package/schematics/migrations/alert-signals/schema.json +20 -0
  103. package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
  104. package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
  105. package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
  106. package/schematics/migrations/filter-bar-signals/README.md +1 -1
  107. package/schematics/migrations.json +11 -1
  108. package/schematics/ng-add/index.js +1 -1
  109. package/schematics/utils/angular-parsing.js +11 -2
  110. package/search-expandable/index.d.ts +3 -0
  111. package/select/index.d.ts +51 -24
  112. package/tabs/_tabs-common.scss +60 -31
  113. package/tabs/_tabs-theme.scss +12 -0
  114. package/tabs/index.d.ts +2 -2
  115. package/tabs/tab-header.scss +14 -0
  116. package/tabs/tab-nav-bar.scss +4 -0
  117. package/tabs/tabs-tokens.scss +1 -0
  118. package/timezone/index.d.ts +1 -3
  119. package/tooltip/index.d.ts +73 -4
  120. package/tree-select/index.d.ts +46 -22
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-accordion.mjs","sources":["../../../packages/components/accordion/accordion.component.ts","../../../packages/components/accordion/accordion-trigger.directive.ts","../../../packages/components/accordion/accordion-trigger.component.ts","../../../packages/components/accordion/accordion-item.ts","../../../packages/components/accordion/accordion-content.directive.ts","../../../packages/components/accordion/accordion-content.ts","../../../packages/components/accordion/accordion-header.directive.ts","../../../packages/components/accordion/accordion-header.ts","../../../packages/components/accordion/accordion.module.ts","../../../packages/components/accordion/koobiq-components-accordion.ts"],"sourcesContent":["import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { ENTER, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChildren,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n Input,\n input,\n OnDestroy,\n output,\n ViewEncapsulation\n} from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { KBQ_WINDOW } from '@koobiq/components/core';\nimport { merge, Subject, Subscription } from 'rxjs';\nimport { KbqAccordionItem } from './accordion-item';\n\nexport enum KbqAccordionVariant {\n fill = 'fill',\n hug = 'hug',\n hugSpaceBetween = 'hugSpaceBetween'\n}\n\nexport type KbqAccordionType = 'single' | 'multiple';\nexport type KbqAccordionOrientation = 'horizontal' | 'vertical';\n\nlet uniqueIdCounter: number = 0;\n\ninterface KbqAccordionState {\n [itemId: string]: {\n expanded: boolean;\n value: string;\n };\n}\n\n@Component({\n selector: 'kbq-accordion, [kbq-accordion]',\n template: '<ng-content />',\n styleUrls: ['accordion.component.scss', 'accordion-tokens.scss'],\n providers: [\n { provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion',\n '[attr.data-orientation]': 'orientation()',\n '(keydown)': 'keydownHandler($event)'\n }\n})\nexport class KbqAccordion implements OnDestroy, AfterViewInit, AfterContentInit {\n private readonly isBrowser = inject(Platform).isBrowser;\n private readonly localStorage = inject(KBQ_WINDOW)?.localStorage;\n /** @docs-private */\n protected readonly focusMonitor = inject(FocusMonitor);\n /** @docs-private */\n protected readonly elementRef = inject(ElementRef);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n /** @docs-private */\n protected readonly dir = inject(Directionality, { optional: true });\n /** @docs-private */\n protected keyManager: FocusKeyManager<KbqAccordionItem>;\n /** @docs-private */\n readonly openCloseAllActions = new Subject<boolean>();\n\n /** @docs-private */\n readonly items = contentChildren(\n forwardRef(() => KbqAccordionItem),\n { descendants: true }\n );\n\n /** Specifies whether the accordion saves its states. Default is false */\n useStateSaving: boolean = inject(new HostAttributeToken('useStateSaving'), { optional: true }) !== null;\n\n readonly variant = input<KbqAccordionVariant | string>(KbqAccordionVariant.fill);\n\n /** Whether the Accordion is disabled. */\n readonly disabled = input<boolean, unknown>(undefined!, { transform: booleanAttribute });\n\n /** The orientation of the accordion. */\n readonly orientation = input<KbqAccordionOrientation>('vertical');\n\n /**\n * The value of the item to expand when initially rendered and type is \"single\". Use when you do not need to control the state of the items.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get defaultValue(): string[] | string {\n return this.isMultiple ? this._defaultValue : this._defaultValue[0];\n }\n\n set defaultValue(value: string[] | string) {\n if (value !== this._defaultValue) {\n this._defaultValue = Array.isArray(value) ? value : [value];\n }\n }\n\n /** Determines whether one or multiple items can be opened at the same time. */\n readonly type = input<KbqAccordionType>('single');\n\n readonly collapsible = input(true);\n\n /** The controlled value of the item to expand */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get value(): string[] | string {\n if (this._value === undefined) {\n return this.defaultValue;\n }\n\n return this.isMultiple ? this._value : this._value[0];\n }\n\n set value(value: string[] | string) {\n if (value !== this._value) {\n this._value = Array.isArray(value) ? value : [value];\n\n this.selectionDispatcher.notify(this.value as unknown as string, this.id);\n }\n }\n\n readonly onValueChange = output<void>();\n\n get id(): string {\n return this._id;\n }\n\n get isMultiple(): boolean {\n return this.type() === 'multiple';\n }\n\n get hasSavedState(): boolean {\n return typeof this.state === 'object' && this.state !== null;\n }\n\n private _value?: string[];\n private _defaultValue: string[] | string = [];\n\n private onValueChangeSubscription: Subscription;\n\n private _id = `kbq-accordion-${uniqueIdCounter++}`;\n\n private state: KbqAccordionState | null;\n\n constructor() {\n if (this.useStateSaving) {\n this.getSavedState();\n }\n }\n\n ngAfterContentInit(): void {\n if (this._value) {\n this.selectionDispatcher.notify(this._value as unknown as string, this.id);\n } else if (this.useStateSaving && this.hasSavedState) {\n Object.keys(this.state!).forEach((key: string) => {\n if (this.state && this.state[key].expanded) {\n this.selectionDispatcher.notify(this.state[key].value as unknown as string, this.id);\n }\n });\n } else {\n this.selectionDispatcher.notify(this._defaultValue as string, this.id);\n }\n\n this.keyManager = new FocusKeyManager(this.items()).withHomeAndEnd();\n\n if (this.orientation() === 'horizontal') {\n this.keyManager.withHorizontalOrientation(this.dir?.value || 'ltr');\n } else {\n this.keyManager.withVerticalOrientation();\n }\n\n this.onValueChangeSubscription = merge(\n ...this.items().map((item) => outputToObservable(item.expandedChange))\n ).subscribe(() => this.onValueChange.emit());\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n this.openCloseAllActions.complete();\n this.onValueChangeSubscription.unsubscribe();\n }\n\n /** @docs-private */\n keydownHandler(event: KeyboardEvent) {\n if (!this.keyManager.activeItem) {\n this.keyManager.setFirstItemActive();\n }\n\n const activeItem = this.keyManager.activeItem;\n\n if (\n (event.keyCode === ENTER || event.keyCode === SPACE) &&\n !this.keyManager.isTyping() &&\n activeItem &&\n !activeItem.disabled\n ) {\n event.preventDefault();\n activeItem.toggle();\n } else if (event.keyCode === TAB && event.shiftKey) {\n if (this.keyManager.activeItemIndex === 0) return;\n\n this.keyManager.setPreviousItemActive();\n event.preventDefault();\n } else if (event.keyCode === TAB) {\n if (this.keyManager.activeItemIndex === this.items().length - 1) return;\n\n this.keyManager.setNextItemActive();\n event.preventDefault();\n } else {\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n openAll(): void {\n if (this.isMultiple) {\n this.openCloseAllActions.next(true);\n }\n }\n\n /** Closes all enabled accordion items. */\n closeAll(): void {\n this.openCloseAllActions.next(false);\n }\n\n /** @docs-private */\n setActiveItem(item: KbqAccordionItem) {\n this.keyManager.setActiveItem(item);\n }\n\n /** @docs-private */\n saveItemState(item: KbqAccordionItem, force: boolean = true): void {\n if (!this.isBrowser || (!force && !!this.state && !!this.state[item.id])) return;\n\n this.state = this.state || {};\n\n this.state[item.id] = item.getState();\n\n this.localStorage.setItem(this.id, JSON.stringify(this.state));\n }\n\n private getSavedState() {\n if (!this.isBrowser) return;\n\n this.state = JSON.parse(this.localStorage.getItem(this.id) as string);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KbqAccordion } from './accordion.component';\n\n@Directive({\n selector: '[kbqAccordionTrigger]',\n host: {\n '[attr.id]': 'triggerId',\n '[attr.role]': '\"button\"',\n '[attr.aria-expanded]': 'item.expanded',\n '[attr.aria-controls]': 'contentId',\n '[attr.aria-disabled]': 'item.disabled',\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n '(click)': 'onClick()'\n }\n})\nexport class KbqAccordionTriggerDirective {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** Fires when trigger clicked */\n onClick(): void {\n if (!this.accordion.collapsible() && this.item.expanded) return;\n\n this.item.toggle();\n\n this.accordion.setActiveItem(this.item);\n }\n\n /** @docs-private */\n focus() {\n this.nativeElement.focus();\n }\n}\n","import {\n afterNextRender,\n AfterRenderRef,\n AfterViewInit,\n Component,\n inject,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\nimport { KbqAccordion, KbqAccordionVariant } from './accordion.component';\n\n@Component({\n selector: 'kbq-accordion-trigger, [kbq-accordion-trigger]',\n imports: [KbqIcon],\n template: `\n <i\n kbq-icon=\"{{ isHugSpaceBetween ? 'kbq-chevron-down-s_16' : 'kbq-chevron-right-s_16' }}\"\n class=\"kbq-accordion-trigger__icon\"\n ></i>\n\n <ng-content />\n `,\n styleUrls: ['accordion-trigger.component.scss', 'accordion-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion-trigger',\n '[class.kbq-accordion-trigger_fill]': 'isFill',\n '[class.kbq-accordion-trigger_hug]': 'isHug',\n '[class.kbq-accordion-trigger_hug-space-between]': 'isHugSpaceBetween'\n },\n hostDirectives: [KbqAccordionTriggerDirective]\n})\nexport class KbqAccordionTrigger implements AfterViewInit {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion: KbqAccordion = inject(KbqAccordion);\n\n /** @docs-private */\n readonly icon = viewChild.required(KbqIcon);\n\n private savedTransition: string;\n private readonly afterRenderRef?: AfterRenderRef;\n\n get isFill(): boolean {\n return this.accordion.variant() === KbqAccordionVariant.fill;\n }\n\n get isHug(): boolean {\n return this.accordion.variant() === KbqAccordionVariant.hug;\n }\n\n get isHugSpaceBetween(): boolean {\n return this.accordion.variant() === KbqAccordionVariant.hugSpaceBetween;\n }\n\n constructor() {\n this.afterRenderRef = afterNextRender(() => {\n setTimeout(() => this.enableAnimation());\n\n this.afterRenderRef?.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n this.disableAnimation();\n }\n\n disableAnimation() {\n this.savedTransition = this.icon().elementRef.nativeElement.style.transition;\n\n this.icon().getHostElement().style.transition = 'none';\n }\n\n enableAnimation() {\n this.icon().getHostElement().style.transition = this.savedTransition;\n }\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n contentChild,\n Directive,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n output\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\nimport { KbqAccordionTrigger } from './accordion-trigger.component';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\nimport { KbqAccordion, KbqAccordionOrientation } from './accordion.component';\n\nlet uniqueIdCounter: number = 0;\n\nexport type KbqAccordionItemState = 'open' | 'closed';\n\n@Directive({\n selector: 'kbq-accordion-item, [kbq-accordion-item]',\n host: {\n class: 'kbq-accordion-item',\n '[attr.data-state]': 'dataState',\n '[attr.data-disabled]': 'disabled',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class KbqAccordionItem implements OnDestroy {\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly expansionDispatcher = inject(UniqueSelectionDispatcher);\n\n /** @docs-private */\n readonly trigger = contentChild(KbqAccordionTriggerDirective);\n /** @docs-private */\n readonly triggerComponent = contentChild(KbqAccordionTrigger);\n\n /** @docs-private */\n readonly content = contentChild(forwardRef(() => KbqAccordionContentDirective));\n\n /** The unique AccordionItem id. */\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-accordion-item-${uniqueIdCounter++}`;\n\n get dataState(): KbqAccordionItemState {\n return this.expanded ? 'open' : 'closed';\n }\n\n get orientation(): KbqAccordionOrientation {\n return this.accordion.orientation();\n }\n\n /** Whether the AccordionItem is expanded. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get expanded(): boolean {\n return this._expanded;\n }\n\n set expanded(expanded: boolean) {\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n\n if (expanded) {\n // TODO: The 'emit' function requires a mandatory void argument\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the KbqAccordionItem,\n * the name value is the id of the accordion.\n */\n const accordionId = this.accordion ? this.accordion.id : this.value;\n\n this.expansionDispatcher.notify(this.value, accordionId);\n } else {\n // TODO: The 'emit' function requires a mandatory void argument\n this.closed.emit();\n }\n\n this.content().toggle();\n\n this.accordion.saveItemState(this);\n\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _expanded = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n set value(value: string) {\n this._value = value;\n }\n\n get value(): string {\n return this._value || this.id;\n }\n\n private _value?: string;\n\n /** Whether the AccordionItem is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this.accordion.disabled() ?? this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n private _disabled = false;\n\n /** Event emitted every time the AccordionItem is closed. */\n readonly closed = output<void>();\n /** Event emitted every time the AccordionItem is opened. */\n readonly opened = output<void>();\n\n /**\n * Event emitted when the AccordionItem is destroyed.\n * @docs-private\n */\n readonly destroyed: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n readonly expandedChange = output<boolean>();\n\n /** Unregister function for expansionDispatcher. */\n private removeUniqueSelectionListener: () => void;\n\n /** Subscription to openAll/closeAll events. */\n private openCloseAllSubscription = Subscription.EMPTY;\n\n constructor() {\n this.removeUniqueSelectionListener = this.expansionDispatcher.listen((id: string, accordionId: string) => {\n if (this.accordion.isMultiple) {\n if (this.accordion.id === accordionId && id.includes(this.value)) {\n this.expanded = true;\n }\n } else {\n this.expanded = this.accordion.id === accordionId && id.includes(this.value);\n }\n });\n\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this.openCloseAllSubscription = this.subscribeToOpenCloseAllActions();\n }\n\n this.accordion.saveItemState(this, false);\n }\n\n /** Emits an event for the accordion item being destroyed. */\n ngOnDestroy() {\n this.destroyed.emit();\n this.destroyed.complete();\n this.removeUniqueSelectionListener();\n this.openCloseAllSubscription.unsubscribe();\n }\n\n focus(): void {\n this.trigger()?.focus();\n }\n\n /** Toggles the expanded state of the accordion item. */\n toggle(): void {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n\n /** Sets the expanded state of the accordion item to false. */\n close(): void {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n\n /** Sets the expanded state of the accordion item to true. */\n open(): void {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n\n getState(): any {\n return {\n expanded: this.expanded,\n value: this.value\n };\n }\n\n disableAnimation() {\n this.content()?.disableAnimation();\n this.triggerComponent()?.disableAnimation();\n }\n\n enableAnimation() {\n this.content()?.enableAnimation();\n this.triggerComponent()?.enableAnimation();\n }\n\n private subscribeToOpenCloseAllActions(): Subscription {\n return this.accordion.openCloseAllActions.subscribe((expanded) => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n AfterContentInit,\n afterNextRender,\n AfterRenderRef,\n AfterViewInit,\n Directive,\n inject,\n Renderer2,\n signal\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: '[kbqAccordionContent]',\n host: {\n '[attr.id]': 'contentId',\n '[attr.role]': '\"region\"',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n '[attr.aria-labelledby]': 'triggerId',\n\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n\n '(transitionend)': 'toggle()'\n },\n exportAs: 'kbqAccordionContent'\n})\nexport class KbqAccordionContentDirective implements AfterContentInit, AfterViewInit {\n private readonly renderer: Renderer2 = inject(Renderer2);\n private readonly platform = inject(Platform);\n\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n protected readonly hidden = signal<boolean>(true);\n\n private savedTransition: string;\n private readonly afterRenderRef?: AfterRenderRef;\n\n constructor() {\n this.afterRenderRef = afterNextRender(() => {\n this.enableAnimation();\n\n this.afterRenderRef?.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n this.disableAnimation();\n }\n\n ngAfterContentInit(): void {\n if (!this.platform.isBrowser) return;\n\n const { height, width } = this.nativeElement.getBoundingClientRect();\n\n this.renderer.setProperty(\n this.nativeElement,\n 'style',\n `\n --radix-accordion-content-height: ${height}px;\n --radix-accordion-content-width: ${width}px;\n `\n );\n }\n\n toggle() {\n this.hidden.set(!this.item.expanded);\n }\n\n disableAnimation() {\n this.savedTransition = this.nativeElement.style.transition;\n\n this.nativeElement.style.transition = 'none';\n }\n\n enableAnimation() {\n this.nativeElement.style.transition = this.savedTransition;\n }\n}\n","import { Component } from '@angular/core';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\n\n@Component({\n selector: 'kbq-accordion-content, [kbq-accordion-content]',\n template: `\n <p><ng-content /></p>\n `,\n host: {\n class: 'kbq-accordion-content'\n },\n hostDirectives: [KbqAccordionContentDirective]\n})\nexport class KbqAccordionContent {}\n","import { Directive, inject } from '@angular/core';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: '[kbqAccordionHeader]',\n host: {\n '[attr.role]': '\"heading\"',\n '[attr.aria-level]': '2',\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation'\n }\n})\nexport class KbqAccordionHeaderDirective {\n protected readonly item = inject(KbqAccordionItem);\n}\n","import { Directive } from '@angular/core';\nimport { KbqAccordionHeaderDirective } from './accordion-header.directive';\n\n@Directive({\n selector: 'kbq-accordion-header, [kbq-accordion-header]',\n host: {\n class: 'kbq-accordion-header'\n },\n hostDirectives: [KbqAccordionHeaderDirective]\n})\nexport class KbqAccordionHeader {}\n","import { NgModule } from '@angular/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordionContent } from './accordion-content';\nimport { KbqAccordionHeader } from './accordion-header';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KbqAccordionTrigger } from './accordion-trigger.component';\nimport { KbqAccordion } from './accordion.component';\n\n@NgModule({\n imports: [\n KbqIcon,\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ],\n exports: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ]\n})\nexport class KbqAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uniqueIdCounter","i1.KbqAccordionTriggerDirective","i1.KbqAccordionContentDirective","i1.KbqAccordionHeaderDirective"],"mappings":";;;;;;;;;;;;IA4BY;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC3B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACvC,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;AAS/B,IAAIA,iBAAe,GAAW,CAAC;MAwBlB,YAAY,CAAA;AAmCrB;;AAEG;;;AAGH,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE;IAEA,IAAI,YAAY,CAAC,KAAwB,EAAA;AACrC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;QAC/D;IACJ;;;;AAUA,IAAA,IACI,KAAK,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY;QAC5B;AAEA,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD;IAEA,IAAI,KAAK,CAAC,KAAwB,EAAA;AAC9B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AAEpD,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAA0B,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7E;IACJ;AAIA,IAAA,IAAI,EAAE,GAAA;QACF,OAAO,IAAI,CAAC,GAAG;IACnB;AAEA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU;IACrC;AAEA,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;IAChE;AAWA,IAAA,WAAA,GAAA;AAlGiB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS;AACtC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,YAAY;;AAE7C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;;AAE/B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAE7C,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,yBAAyB,CAAC;;QAEvD,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AAI1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAW;;QAG5C,IAAA,CAAA,KAAK,GAAG,eAAe,CAC5B,UAAU,CAAC,MAAM,gBAAgB,CAAC,yCAChC,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAnB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA,CAAA,CACxB;;AAGD,QAAA,IAAA,CAAA,cAAc,GAAY,MAAM,CAAC,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI;AAE9F,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA+B,mBAAmB,CAAC,IAAI,mDAAC;;AAGvE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,SAAU,4CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA7B,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAC;;AAG/E,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA0B,UAAU,uDAAC;;AAmBxD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,QAAQ,gDAAC;AAExC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,uDAAC;QAsBzB,IAAA,CAAA,aAAa,GAAG,MAAM,EAAQ;QAe/B,IAAA,CAAA,aAAa,GAAsB,EAAE;AAIrC,QAAA,IAAA,CAAA,GAAG,GAAG,CAAA,cAAA,EAAiBA,iBAAe,EAAE,EAAE;AAK9C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,MAA2B,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9E;aAAO,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE;AAClD,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC7C,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;AACxC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAA0B,EAAE,IAAI,CAAC,EAAE,CAAC;gBACxF;AACJ,YAAA,CAAC,CAAC;QACN;aAAO;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,aAAuB,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1E;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE;AAEpE,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;AACrC,YAAA,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,KAAK,CAAC;QACvE;aAAO;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE;QAC7C;AAEA,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAClC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CACzE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAChD;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;IACpD;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACnC,QAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE;IAChD;;AAGA,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;QACxC;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU;AAE7C,QAAA,IACI,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;AACnD,YAAA,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC3B,UAAU;AACV,YAAA,CAAC,UAAU,CAAC,QAAQ,EACtB;YACE,KAAK,CAAC,cAAc,EAAE;YACtB,UAAU,CAAC,MAAM,EAAE;QACvB;aAAO,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;AAChD,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,KAAK,CAAC;gBAAE;AAE3C,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE;YACvC,KAAK,CAAC,cAAc,EAAE;QAC1B;AAAO,aAAA,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC;gBAAE;AAEjE,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;YACnC,KAAK,CAAC,cAAc,EAAE;QAC1B;aAAO;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;QACpC;IACJ;;IAGA,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC;IACJ;;IAGA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;IACxC;;AAGA,IAAA,aAAa,CAAC,IAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;IACvC;;AAGA,IAAA,aAAa,CAAC,IAAsB,EAAE,KAAA,GAAiB,IAAI,EAAA;QACvD,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAE;QAE1E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAE7B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AAErC,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE;IAEQ,aAAa,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AAErB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAW,CAAC;IACzE;kIA5MS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAXV;AACP,YAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,yBAAyB;SAC5E,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MA6BoB,gBAAgB,iEAjC3B,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mpGAAA,EAAA,83BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAajB,YAAY,EAAA,UAAA,EAAA,CAAA;kBAfxB,SAAS;+BACI,gCAAgC,EAAA,QAAA,EAChC,gBAAgB,EAAA,SAAA,EAEf;AACP,wBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,yBAAyB;AAC5E,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACF,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,WAAW,EAAE;AAChB,qBAAA,EAAA,MAAA,EAAA,CAAA,mpGAAA,EAAA,83BAAA,CAAA,EAAA;mGAsBG,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAA,EAAA,GAClC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA;sBAmBxB;;sBAmBA;;;MCrGQ,4BAA4B,CAAA;AAdzC,IAAA,WAAA,GAAA;;QAgBuB,IAAA,CAAA,aAAa,GAAG,sBAAsB,EAAE;;AAExC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;;AAEhC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAyBrD,IAAA;;AAtBG,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU;IACpC;;AAGA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU;IACpC;;IAGA,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;AAEzD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAElB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3C;;IAGA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;IAC9B;kIA9BS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAdxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,WAAW;AACxB,wBAAA,aAAa,EAAE,UAAU;AACzB,wBAAA,sBAAsB,EAAE,eAAe;AACvC,wBAAA,sBAAsB,EAAE,WAAW;AACnC,wBAAA,sBAAsB,EAAE,eAAe;AACvC,wBAAA,mBAAmB,EAAE,gBAAgB;AACrC,wBAAA,sBAAsB,EAAE,eAAe;AACvC,wBAAA,yBAAyB,EAAE,kBAAkB;AAC7C,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;;MCiBY,mBAAmB,CAAA;AAY5B,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,mBAAmB,CAAC,IAAI;IAChE;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,mBAAmB,CAAC,GAAG;IAC/D;AAEA,IAAA,IAAI,iBAAiB,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,mBAAmB,CAAC,eAAe;IAC3E;AAEA,IAAA,WAAA,GAAA;;QAtBmB,IAAA,CAAA,aAAa,GAAG,sBAAsB,EAAE;;AAExC,QAAA,IAAA,CAAA,SAAS,GAAiB,MAAM,CAAC,YAAY,CAAC;;AAGxD,QAAA,IAAA,CAAA,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAkBvC,QAAA,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,MAAK;YACvC,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAExC,YAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE;AAClC,QAAA,CAAC,CAAC;IACN;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;AAE5E,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;IAC1D;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;IACxE;kIA5CS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,OAAA,EAAA,+CAAA,EAAA,mBAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOO,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,4BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBhC;;;;;;;AAOT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,06CAAA,EAAA,83BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EARS,OAAO,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAmBR,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBArB/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gDAAgD,EAAA,OAAA,EACjD,CAAC,OAAO,CAAC,EAAA,QAAA,EACR;;;;;;;KAOT,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACF,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,oCAAoC,EAAE,QAAQ;AAC9C,wBAAA,mCAAmC,EAAE,OAAO;AAC5C,wBAAA,iDAAiD,EAAE;qBACtD,EAAA,cAAA,EACe,CAAC,4BAA4B,CAAC,EAAA,MAAA,EAAA,CAAA,06CAAA,EAAA,83BAAA,CAAA,EAAA;gHASX,OAAO,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACvB9C,IAAI,eAAe,GAAW,CAAC;MAalB,gBAAgB,CAAA;;AAiBzB,IAAA,IAAI,EAAE,GAAA;QACF,OAAO,IAAI,CAAC,GAAG;IACnB;AAIA,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,QAAQ;IAC5C;AAEA,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IACvC;;;;AAKA,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAI,QAAQ,CAAC,QAAiB,EAAA;;AAE1B,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;YAElC,IAAI,QAAQ,EAAE;;AAEV,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAClB;;;AAGG;AACH,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK;gBAEnE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;YAC5D;iBAAO;;AAEH,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB;AAEA,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;AAEvB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;;;AAIlC,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACzC;IACJ;;;IAMA,IACI,KAAK,CAAC,KAAa,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACvB;AAEA,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE;IACjC;;;;AAOA,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS;IACtD;IAEA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IAC1B;AA4BA,IAAA,WAAA,GAAA;;AAzHmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;;AAEhC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAE7C,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,yBAAyB,CAAC;;AAGjE,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,4BAA4B,mDAAC;;AAEpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAC,mBAAmB,4DAAC;;QAGpD,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,4BAA4B,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAOvE,QAAA,IAAA,CAAA,GAAG,GAAG,CAAA,mBAAA,EAAsB,eAAe,EAAE,EAAE;QAiD/C,IAAA,CAAA,SAAS,GAAG,KAAK;QA2BjB,IAAA,CAAA,SAAS,GAAG,KAAK;;QAGhB,IAAA,CAAA,MAAM,GAAG,MAAM,EAAQ;;QAEvB,IAAA,CAAA,MAAM,GAAG,MAAM,EAAQ;AAEhC;;;AAGG;AACM,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ;AAEjE;;;;AAIG;QACM,IAAA,CAAA,cAAc,GAAG,MAAM,EAAW;;AAMnC,QAAA,IAAA,CAAA,wBAAwB,GAAG,YAAY,CAAC,KAAK;AAGjD,QAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAU,EAAE,WAAmB,KAAI;AACrG,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AAC3B,gBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9D,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;gBACxB;YACJ;iBAAO;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAChF;AACJ,QAAA,CAAC,CAAC;;AAGF,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,8BAA8B,EAAE;QACzE;QAEA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;IAC7C;;IAGA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;QACzB,IAAI,CAAC,6BAA6B,EAAE;AACpC,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;IAC/C;IAEA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE;IAC3B;;IAGA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;QAClC;IACJ;;IAGA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACzB;IACJ;;IAGA,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACxB;IACJ;IAEA,QAAQ,GAAA;QACJ,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC;SACf;IACL;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE;AAClC,QAAA,IAAI,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,EAAE;IAC/C;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE;AACjC,QAAA,IAAI,CAAC,gBAAgB,EAAE,EAAE,eAAe,EAAE;IAC9C;IAEQ,8BAA8B,GAAA;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;;AAE7D,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;YAC5B;AACJ,QAAA,CAAC,CAAC;IACN;kIAvMS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAkCL,gBAAgB,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAsDhB,gBAAgB,+TA/EJ,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEnB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAGX,4BAA4B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAdpE,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0CAA0C;AACpD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,oBAAoB;AAC3B,wBAAA,mBAAmB,EAAE,WAAW;AAChC,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,yBAAyB,EAAE;AAC9B;AACJ,iBAAA;sHAUmC,4BAA4B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAEnB,mBAAmB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAG5B,UAAU,CAAC,MAAM,4BAA4B,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA;sBAoB7E,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAwCrC;;sBAcA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;;MC1F7B,4BAA4B,CAAA;;AAUrC,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU;IACpC;;AAGA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU;IACpC;AAQA,IAAA,WAAA,GAAA;AAxBiB,QAAA,IAAA,CAAA,QAAQ,GAAc,MAAM,CAAC,SAAS,CAAC;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;QAGzB,IAAA,CAAA,aAAa,GAAG,sBAAsB,EAAE;;AAExC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAa/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAU,IAAI,kDAAC;AAM7C,QAAA,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,MAAK;YACvC,IAAI,CAAC,eAAe,EAAE;AAEtB,YAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE;AAClC,QAAA,CAAC,CAAC;IACN;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE;AAE9B,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;QAEpE,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,aAAa,EAClB,OAAO,EACP;gDACoC,MAAM,CAAA;+CACP,KAAK,CAAA;AAC3C,QAAA,CAAA,CACA;IACL;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC;IAEA,gBAAgB,GAAA;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;QAE1D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;IAChD;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;IAC9D;kIAhES,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,WAAW;AACxB,wBAAA,aAAa,EAAE,UAAU;AACzB,wBAAA,eAAe,EAAE,sBAAsB;AACvC,wBAAA,wBAAwB,EAAE,WAAW;AAErC,wBAAA,mBAAmB,EAAE,gBAAgB;AACrC,wBAAA,sBAAsB,EAAE,eAAe;AACvC,wBAAA,yBAAyB,EAAE,kBAAkB;AAE7C,wBAAA,iBAAiB,EAAE;AACtB,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;MChBY,mBAAmB,CAAA;kIAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,4BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARlB;;AAET,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAMQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAV/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gDAAgD;AAC1D,oBAAA,QAAQ,EAAE;;AAET,IAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA;oBACD,cAAc,EAAE,CAAC,4BAA4B;AAChD,iBAAA;;;MCCY,2BAA2B,CAAA;AAVxC,IAAA,WAAA,GAAA;AAWuB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACrD,IAAA;kIAFY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,GAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAVvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,WAAW;AAC1B,wBAAA,mBAAmB,EAAE,GAAG;AACxB,wBAAA,mBAAmB,EAAE,gBAAgB;AACrC,wBAAA,sBAAsB,EAAE,eAAe;AACvC,wBAAA,yBAAyB,EAAE;AAC9B;AACJ,iBAAA;;;MCFY,kBAAkB,CAAA;kIAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,2BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8CAA8C;AACxD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA;oBACD,cAAc,EAAE,CAAC,2BAA2B;AAC/C,iBAAA;;;MCgBY,kBAAkB,CAAA;kIAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAfvB,OAAO;YACP,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,gBAAgB;AAChB,YAAA,mBAAmB,aAGnB,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,gBAAgB;YAChB,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAGd,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAfvB,OAAO;YAKP,mBAAmB,CAAA,EAAA,CAAA,CAAA;;4FAUd,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,OAAO;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,gBAAgB;wBAChB;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,gBAAgB;wBAChB;AACH;AACJ,iBAAA;;;ACxBD;;AAEG;;;;"}
1
+ {"version":3,"file":"koobiq-components-accordion.mjs","sources":["../../../packages/components/accordion/accordion-content.directive.ts","../../../packages/components/accordion/accordion-trigger.directive.ts","../../../packages/components/accordion/accordion-trigger.ts","../../../packages/components/accordion/accordion-item.ts","../../../packages/components/accordion/accordion-state-store.ts","../../../packages/components/accordion/accordion.ts","../../../packages/components/accordion/accordion-content.ts","../../../packages/components/accordion/accordion-header.ts","../../../packages/components/accordion/accordion.module.ts","../../../packages/components/accordion/koobiq-components-accordion.ts"],"sourcesContent":["import {\n afterNextRender,\n AfterRenderRef,\n AfterViewInit,\n Directive,\n inject,\n Renderer2,\n RendererStyleFlags2,\n signal\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: '[kbqAccordionContent]',\n host: {\n '[attr.id]': 'contentId',\n '[attr.role]': '\"region\"',\n '[attr.hidden]': 'hidden() ? \"\" : null',\n '[attr.aria-labelledby]': 'triggerId',\n\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n\n '(transitionend)': 'toggle()'\n },\n exportAs: 'kbqAccordionContent'\n})\nexport class KbqAccordionContentDirective implements AfterViewInit {\n private readonly renderer: Renderer2 = inject(Renderer2);\n\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n protected readonly hidden = signal<boolean>(true);\n\n private savedTransition: string;\n private readonly afterRenderRef?: AfterRenderRef;\n\n /** Whether the first browser render has happened, i.e. whether the content can be measured. */\n private rendered = false;\n\n constructor() {\n // `afterNextRender` never runs on the server, so no platform check is needed here.\n this.afterRenderRef = afterNextRender(() => {\n this.rendered = true;\n\n this.updateHeight();\n this.enableAnimation();\n\n this.afterRenderRef?.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n this.disableAnimation();\n }\n\n toggle() {\n // Re-measure while the content is still collapsed. Its natural height depends on the width\n // it is finally laid out at, and that width is not known at first render when the accordion\n // lives in a container sized afterwards (sidepanel, overlay, responsive layout).\n if (this.rendered && this.item.expanded && this.hidden()) {\n this.updateHeight();\n }\n\n this.hidden.set(!this.item.expanded);\n }\n\n disableAnimation() {\n this.savedTransition = this.nativeElement.style.transition;\n\n this.nativeElement.style.transition = 'none';\n }\n\n enableAnimation() {\n this.nativeElement.style.transition = this.savedTransition;\n }\n\n /**\n * Publishes the natural height of the projected content as `--kbq-accordion-content-height`,\n * which the open state animates towards.\n *\n * `scrollHeight` is used rather than `getBoundingClientRect()`: the host is `overflow: hidden`\n * and collapsed to `height: 0` while closed, so its box reports `0`, whereas `scrollHeight`\n * still reports the height of the content it clips.\n */\n private updateHeight(): void {\n this.renderer.setStyle(\n this.nativeElement,\n '--kbq-accordion-content-height',\n `${this.nativeElement.scrollHeight}px`,\n RendererStyleFlags2.DashCase\n );\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: '[kbqAccordionTrigger]',\n host: {\n '[attr.id]': 'triggerId',\n '[attr.role]': '\"button\"',\n '[attr.aria-expanded]': 'item.expanded',\n '[attr.aria-controls]': 'contentId',\n '[attr.aria-disabled]': 'item.disabled',\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation',\n '(click)': 'onClick()',\n '(focus)': 'onFocus()'\n }\n})\nexport class KbqAccordionTriggerDirective {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n\n /** @docs-private */\n get triggerId(): string {\n return `${this.item.id}-trigger`;\n }\n\n /** @docs-private */\n get contentId(): string {\n return `${this.item.id}-content`;\n }\n\n /** Fires when trigger clicked */\n onClick(): void {\n if (!this.accordion.collapsible() && this.item.expanded) return;\n\n this.item.toggle();\n\n this.accordion.setActiveItem(this.item);\n }\n\n /**\n * Keeps the accordion's key manager in sync with native focus so that arrow-key navigation\n * continues from the header the user has just tabbed/focused into.\n * @docs-private\n */\n onFocus(): void {\n this.accordion.setActiveItem(this.item);\n }\n\n /** @docs-private */\n focus() {\n this.nativeElement.focus();\n }\n}\n","import {\n afterNextRender,\n AfterRenderRef,\n AfterViewInit,\n Component,\n inject,\n OnDestroy,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\n\n@Component({\n selector: 'kbq-accordion-trigger, [kbq-accordion-trigger]',\n imports: [KbqIcon],\n template: `\n <i\n kbq-icon=\"{{ isHugSpaceBetween ? 'kbq-chevron-down-s_16' : 'kbq-chevron-right-s_16' }}\"\n class=\"kbq-accordion-trigger__icon\"\n ></i>\n\n <ng-content />\n `,\n styleUrls: ['accordion-trigger.scss', 'accordion-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion-trigger',\n '[class.kbq-accordion-trigger_fill]': 'isFill',\n '[class.kbq-accordion-trigger_hug]': 'isHug',\n '[class.kbq-accordion-trigger_hug-space-between]': 'isHugSpaceBetween'\n },\n hostDirectives: [KbqAccordionTriggerDirective]\n})\nexport class KbqAccordionTrigger implements AfterViewInit, OnDestroy {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion: KbqAccordion = inject(KbqAccordion);\n\n /** @docs-private */\n readonly icon = viewChild.required(KbqIcon);\n\n private savedTransition: string;\n private readonly afterRenderRef?: AfterRenderRef;\n private animationTimerId?: ReturnType<typeof setTimeout>;\n\n get isFill(): boolean {\n return this.accordion.variant() === 'fill';\n }\n\n get isHug(): boolean {\n return this.accordion.variant() === 'hug';\n }\n\n get isHugSpaceBetween(): boolean {\n return this.accordion.variant() === 'hugSpaceBetween';\n }\n\n constructor() {\n this.afterRenderRef = afterNextRender(() => {\n this.animationTimerId = setTimeout(() => this.enableAnimation());\n\n this.afterRenderRef?.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n this.disableAnimation();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.animationTimerId);\n }\n\n disableAnimation() {\n this.savedTransition = this.icon().elementRef.nativeElement.style.transition;\n\n this.icon().getHostElement().style.transition = 'none';\n }\n\n enableAnimation() {\n this.icon().getHostElement().style.transition = this.savedTransition;\n }\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n computed,\n contentChild,\n Directive,\n forwardRef,\n inject,\n input,\n Input,\n OnDestroy,\n output\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { KbqAccordion, KbqAccordionOrientation } from './accordion';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\nimport type { KbqAccordionItemSnapshot } from './accordion-state-store';\nimport { KbqAccordionTrigger } from './accordion-trigger';\nimport { KbqAccordionTriggerDirective } from './accordion-trigger.directive';\n\nlet uniqueIdCounter: number = 0;\n\nexport type KbqAccordionItemState = 'open' | 'closed';\n\n@Directive({\n selector: 'kbq-accordion-item, [kbq-accordion-item]',\n host: {\n class: 'kbq-accordion-item',\n '[attr.data-state]': 'dataState',\n '[attr.data-disabled]': 'disabled',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class KbqAccordionItem implements OnDestroy {\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly expansionDispatcher = inject(UniqueSelectionDispatcher);\n\n /** @docs-private */\n readonly trigger = contentChild(KbqAccordionTriggerDirective);\n /** @docs-private */\n readonly triggerComponent = contentChild(KbqAccordionTrigger);\n\n /** @docs-private */\n readonly content = contentChild(forwardRef(() => KbqAccordionContentDirective));\n\n /** The unique AccordionItem id. */\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-accordion-item-${uniqueIdCounter++}`;\n\n /** The current open/closed state of the item. @docs-private */\n get dataState(): KbqAccordionItemState {\n return this.expanded ? 'open' : 'closed';\n }\n\n /** The layout orientation inherited from the parent accordion. @docs-private */\n get orientation(): KbqAccordionOrientation {\n return this.accordion.orientation();\n }\n\n /** Whether the AccordionItem is expanded. */\n // Kept as an `@Input` accessor (not `model()`): the setter runs a synchronous side-effect\n // cascade (emits opened/closed/expandedChange, notifies the selection dispatcher, toggles the\n // content and persists state) that sibling items rely on within the same change-detection tick.\n @Input({ transform: booleanAttribute })\n get expanded(): boolean {\n return this._expanded;\n }\n\n set expanded(expanded: boolean) {\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n\n if (expanded) {\n // TODO: The 'emit' function requires a mandatory void argument\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the KbqAccordionItem,\n * the name value is the id of the accordion.\n */\n this.expansionDispatcher.notify(this.value(), this.accordion.id);\n } else {\n // TODO: The 'emit' function requires a mandatory void argument\n this.closed.emit();\n }\n\n this.content()?.toggle();\n\n this.accordion.saveItemState(this);\n\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _expanded = false;\n\n /**\n * The item's own `value` input. Must stay `public`: a `protected` input cannot be bound from a\n * consumer template (TS2445 under full AOT template type-checking).\n * @docs-private\n */\n readonly valueInput = input<string>('', { alias: 'value' });\n\n /** The item's effective value — its own value, or the item id when none is provided. */\n readonly value = computed(() => this.valueInput() || this.id);\n\n /** Whether the AccordionItem is disabled. */\n // Kept as an `@Input` accessor (not a signal): `KbqAccordionItem` is a `FocusKeyManager` option,\n // and `ListKeyManagerOption.disabled` (core/a11y/key-manager) is read as a plain `boolean` — a\n // signal function is always truthy, which makes the key manager treat every item as disabled.\n // The getter also merges the item's own state with the parent accordion's (an effective value).\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this.accordion.disabled() || this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n private _disabled = false;\n\n /** Event emitted every time the AccordionItem is closed. */\n readonly closed = output<void>();\n /** Event emitted every time the AccordionItem is opened. */\n readonly opened = output<void>();\n\n /**\n * Emits whenever the expanded state of the accordion item changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n readonly expandedChange = output<boolean>();\n\n /** Unregister function for expansionDispatcher. */\n private removeUniqueSelectionListener: () => void;\n\n /** Subscription to openAll/closeAll events. */\n private openCloseAllSubscription = Subscription.EMPTY;\n\n constructor() {\n this.removeUniqueSelectionListener = this.expansionDispatcher.listen((id: string, accordionId: string) => {\n if (this.accordion.id !== accordionId) return;\n\n // The dispatcher payload is a single value (individual toggle / single-mode value) or an\n // array (controlled `[value]`, default value and restored state). Match exactly to avoid\n // substring collisions (e.g. `item-10` must not open `item-1`).\n const value = id as unknown as string | string[];\n\n const ownValue = this.value();\n\n if (Array.isArray(value)) {\n // Sync to array membership: opens members, closes non-members.\n this.expanded = value.includes(ownValue);\n } else if (this.accordion.isMultiple) {\n // Individual toggle in multiple mode: only the matching item opens; others stay independent.\n if (value === ownValue) {\n this.expanded = true;\n }\n } else {\n // Individual toggle / controlled value in single mode: exactly one item stays open.\n this.expanded = value === ownValue;\n }\n });\n\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n this.openCloseAllSubscription = this.subscribeToOpenCloseAllActions();\n }\n\n ngOnDestroy() {\n this.removeUniqueSelectionListener();\n this.openCloseAllSubscription.unsubscribe();\n }\n\n /** Moves focus to the item's trigger. */\n focus(): void {\n this.trigger()?.focus();\n }\n\n /** Toggles the expanded state of the accordion item. */\n toggle(): void {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n\n /** Sets the expanded state of the accordion item to false. */\n close(): void {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n\n /** Sets the expanded state of the accordion item to true. */\n open(): void {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n\n /** Returns a snapshot of the item's current persisted state. @docs-private */\n getState(): KbqAccordionItemSnapshot {\n return {\n expanded: this.expanded,\n value: this.value()\n };\n }\n\n /** Disables the open/close animation of the item's content and chevron. @docs-private */\n disableAnimation() {\n this.content()?.disableAnimation();\n this.triggerComponent()?.disableAnimation();\n }\n\n /** Restores the open/close animation of the item's content and chevron. @docs-private */\n enableAnimation() {\n this.content()?.enableAnimation();\n this.triggerComponent()?.enableAnimation();\n }\n\n private subscribeToOpenCloseAllActions(): Subscription {\n return this.accordion.openCloseAllActions.subscribe((expanded) => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { KBQ_WINDOW } from '@koobiq/components/core';\n\n/** A snapshot of a single accordion item's persisted state. */\nexport interface KbqAccordionItemSnapshot {\n /** Whether the item is expanded. */\n expanded: boolean;\n /** The item's value. */\n value: string;\n}\n\n/** The persisted state of an accordion, keyed by accordion item id. */\nexport interface KbqAccordionState {\n [itemId: string]: KbqAccordionItemSnapshot;\n}\n\n/**\n * Strategy used by `KbqAccordion` to persist and restore the expanded state of its items\n * while `useStateSaving` is enabled.\n *\n * Provide a custom implementation through the `KBQ_ACCORDION_STATE_STORE` token to change\n * where the state is stored (e.g. `sessionStorage`, a backend, or an in-memory map).\n */\nexport interface KbqAccordionStateStore {\n /** Returns the previously saved state for the given key, or `null` when nothing is stored/available. */\n getState(key: string): KbqAccordionState | null;\n /** Persists the state for the given key. */\n setState(key: string, state: KbqAccordionState): void;\n}\n\n/**\n * Default `KbqAccordionStateStore` implementation backed by `localStorage`.\n *\n * All access is guarded so it is safe on the server (SSR) and in environments where storage\n * throws on access (private mode, sandboxed iframes) or contains corrupt JSON.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqAccordionLocalStorageStateStore implements KbqAccordionStateStore {\n private readonly isBrowser = inject(Platform).isBrowser;\n private readonly window = inject(KBQ_WINDOW);\n\n getState(key: string): KbqAccordionState | null {\n if (!this.isBrowser) return null;\n\n try {\n const raw = this.window.localStorage.getItem(key);\n\n return raw ? (JSON.parse(raw) as KbqAccordionState) : null;\n } catch {\n return null;\n }\n }\n\n setState(key: string, state: KbqAccordionState): void {\n if (!this.isBrowser) return;\n\n try {\n this.window.localStorage.setItem(key, JSON.stringify(state));\n } catch {\n // Ignore storage write failures (quota exceeded, disabled/blocked storage, etc.).\n }\n }\n}\n\n/**\n * Injection token for the store used to persist accordion state while `useStateSaving` is enabled.\n * Defaults to a `localStorage`-backed implementation (`KbqAccordionLocalStorageStateStore`).\n */\nexport const KBQ_ACCORDION_STATE_STORE = new InjectionToken<KbqAccordionStateStore>('KBQ_ACCORDION_STATE_STORE', {\n providedIn: 'root',\n factory: () => inject(KbqAccordionLocalStorageStateStore)\n});\n","import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChildren,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n isDevMode,\n numberAttribute,\n OnDestroy,\n output,\n untracked,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KBQ_ACCORDION_STATE_STORE, KbqAccordionState } from './accordion-state-store';\n\n/** Available visual variants of the accordion. */\nexport type KbqAccordionVariant = 'fill' | 'hug' | 'hugSpaceBetween';\n\n/** Determines whether one or multiple items can be expanded at the same time. */\nexport type KbqAccordionType = 'single' | 'multiple';\n\n/** The layout orientation of the accordion. */\nexport type KbqAccordionOrientation = 'horizontal' | 'vertical';\n\nlet uniqueIdCounter: number = 0;\n\n@Component({\n selector: 'kbq-accordion, [kbq-accordion]',\n template: '<ng-content />',\n styleUrls: ['accordion.scss', 'accordion-tokens.scss'],\n providers: [\n { provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion',\n '[attr.data-orientation]': 'orientation()',\n '(keydown)': 'keydownHandler($event)'\n }\n})\nexport class KbqAccordion implements OnDestroy, AfterViewInit, AfterContentInit {\n /** @docs-private */\n protected readonly focusMonitor = inject(FocusMonitor);\n /** @docs-private */\n protected readonly elementRef = inject(ElementRef);\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n /** @docs-private */\n protected readonly dir = inject(Directionality, { optional: true });\n\n private readonly injector = inject(Injector);\n private readonly stateStore = inject(KBQ_ACCORDION_STATE_STORE);\n\n /** @docs-private */\n protected keyManager: FocusKeyManager<KbqAccordionItem>;\n\n /** Emits every time `openAll()` or `closeAll()` is called. @docs-private */\n readonly openCloseAllActions = new Subject<boolean>();\n\n /** The accordion items projected into this accordion. @docs-private */\n readonly items = contentChildren(\n forwardRef(() => KbqAccordionItem),\n { descendants: true }\n );\n\n /** Whether the accordion persists the expanded state of its items across reloads. Defaults to `false`. */\n readonly useStateSaving = input(false, { transform: booleanAttribute });\n\n /**\n * A stable, consumer-provided key used to persist state when `useStateSaving` is enabled.\n * Strongly recommended: without it the accordion falls back to an auto-generated,\n * instantiation-order-dependent id that is unreliable under lazy/conditional/reordered rendering.\n */\n readonly stateSavingKey = input<string>('');\n\n /** The visual variant of the accordion. Defaults to `fill`. */\n readonly variant = input<KbqAccordionVariant>('fill');\n\n /** Whether the whole accordion is disabled. */\n readonly disabled = input<boolean, unknown>(undefined!, { transform: booleanAttribute });\n\n /** The layout orientation of the accordion. Defaults to `vertical`. */\n readonly orientation = input<KbqAccordionOrientation>('vertical');\n\n /**\n * The `aria-level` applied to the item headings. Defaults to `2`.\n * Set it to match the surrounding document outline (e.g. `3` when nested under an `<h2>` section).\n */\n readonly level = input(2, { transform: numberAttribute });\n\n /**\n * The value of the item(s) to expand when initially rendered.\n * Use when you do not need to control the state of the items.\n */\n readonly defaultValue = input<string[] | string>([]);\n\n /** Determines whether one or multiple items can be expanded at the same time. */\n readonly type = input<KbqAccordionType>('single');\n\n /** Whether an expanded item can be collapsed by the user. Defaults to `true`. */\n readonly collapsible = input(true);\n\n /**\n * The raw controlled `value` input. Must stay `public`: a `protected` input cannot be bound from\n * a consumer template (TS2445 under full AOT template type-checking).\n * @docs-private\n */\n // `input()` (not `model()`): a `model()` would auto-create a colliding `valueChange` output.\n readonly valueInput = input<string[] | string | undefined>(undefined, { alias: 'value' });\n\n /**\n * The controlled value of the item(s) to expand, reshaped by mode. Supports `[(value)]`.\n * Falls back to `defaultValue` while `value` is unbound.\n *\n * Always an array in `multiple` mode and always a string in `single` mode — an empty string\n * when nothing is expanded, matching what `valueChange` emits.\n */\n readonly value = computed<string[] | string>(() => {\n const value = this.valueInput() ?? this.defaultValue();\n\n const array = Array.isArray(value) ? value : [value];\n\n return this.isMultiple ? array : (array[0] ?? '');\n });\n\n /** Emits the current value whenever the expanded state of the accordion changes. */\n readonly valueChange = output<string[] | string>();\n\n /** The unique id of this accordion. */\n get id(): string {\n return this._id;\n }\n\n /** Whether multiple items can be expanded at the same time. */\n get isMultiple(): boolean {\n return this.type() === 'multiple';\n }\n\n /** Whether a persisted state exists for this accordion. */\n get hasSavedState(): boolean {\n return typeof this.state === 'object' && this.state !== null;\n }\n\n /** `defaultValue` normalized to an array for internal coordination. */\n private readonly defaultValueArray = computed(() => {\n const value = this.defaultValue();\n\n return Array.isArray(value) ? value : [value];\n });\n\n private _id = `kbq-accordion-${uniqueIdCounter++}`;\n\n private state: KbqAccordionState | null = null;\n\n constructor() {\n // Re-emit `valueChange` whenever any (current or future) item toggles its expanded state.\n // Reading `items()` inside the effect keeps the subscriptions in sync with dynamically\n // added/removed items.\n effect((onCleanup) => {\n const subscriptions = this.items().map((item) =>\n item.expandedChange.subscribe(() => this.valueChange.emit(this.getCurrentValue()))\n );\n\n onCleanup(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));\n });\n\n // Notify the selection dispatcher when the controlled `[value]` changes (the old setter's\n // side-effect). The `undefined` sentinel keeps the mandatory first run a no-op when unbound;\n // when bound it re-notifies the value `ngAfterContentInit` already sent (idempotent).\n effect(() => {\n const value = this.valueInput();\n\n if (value === undefined) return;\n\n untracked(() => this.selectionDispatcher.notify(this.value() as unknown as string, this.id));\n });\n }\n\n ngAfterContentInit(): void {\n if (this.useStateSaving()) {\n if (isDevMode() && !this.stateSavingKey()) {\n // eslint-disable-next-line no-console\n console.warn(\n 'KbqAccordion: `useStateSaving` is enabled without a `stateSavingKey`. Falling back to an ' +\n 'auto-generated id, which is unreliable across lazy/conditional/reordered rendering. ' +\n 'Provide a stable `stateSavingKey`.'\n );\n }\n\n this.state = this.stateStore.getState(this.stateStorageKey);\n }\n\n if (this.valueInput() !== undefined) {\n this.selectionDispatcher.notify(this.value() as unknown as string, this.id);\n } else if (this.useStateSaving() && this.hasSavedState) {\n const expandedValues = Object.keys(this.state!)\n .filter((key) => this.state![key].expanded)\n .map((key) => this.state![key].value);\n\n if (expandedValues.length) {\n this.selectionDispatcher.notify(\n (this.isMultiple ? expandedValues : expandedValues[0]) as unknown as string,\n this.id\n );\n }\n } else {\n this.selectionDispatcher.notify(this.defaultValueArray() as unknown as string, this.id);\n }\n\n // Seed initial state for any items missing from the store (without overwriting existing entries).\n if (this.useStateSaving()) {\n this.items().forEach((item) => this.saveItemState(item, false));\n }\n\n this.keyManager = new FocusKeyManager(this.items, this.injector).withHomeAndEnd();\n\n if (this.orientation() === 'horizontal') {\n this.keyManager.withHorizontalOrientation(this.dir?.value || 'ltr');\n } else {\n this.keyManager.withVerticalOrientation();\n }\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n this.openCloseAllActions.complete();\n this.keyManager?.destroy();\n }\n\n /** @docs-private */\n keydownHandler(event: KeyboardEvent) {\n if (!this.keyManager) return;\n\n if (!this.keyManager.activeItem) {\n this.keyManager.setFirstItemActive();\n }\n\n const activeItem = this.keyManager.activeItem;\n\n if (\n (event.keyCode === ENTER || event.keyCode === SPACE) &&\n !this.keyManager.isTyping() &&\n activeItem &&\n !activeItem.disabled\n ) {\n event.preventDefault();\n activeItem.toggle();\n } else {\n // Arrow/Home/End move between headers; Tab falls through natively (WAI-ARIA APG pattern).\n this.keyManager.onKeydown(event);\n }\n }\n\n /** Opens all enabled accordion items in an accordion where `type` is `multiple`. */\n openAll(): void {\n if (this.isMultiple) {\n this.openCloseAllActions.next(true);\n }\n }\n\n /** Closes all enabled accordion items. */\n closeAll(): void {\n this.openCloseAllActions.next(false);\n }\n\n /** @docs-private */\n setActiveItem(item: KbqAccordionItem) {\n this.keyManager?.setActiveItem(item);\n }\n\n /**\n * Persists the current state of the given item when `useStateSaving` is enabled.\n * @docs-private\n */\n saveItemState(item: KbqAccordionItem, force: boolean = true): void {\n if (!this.useStateSaving()) return;\n if (!force && this.state?.[item.id]) return;\n\n this.state = this.state ?? {};\n this.state[item.id] = item.getState();\n\n this.stateStore.setState(this.stateStorageKey, this.state);\n }\n\n /** The current expanded value(s) derived from the live item state. */\n private getCurrentValue(): string[] | string {\n const expandedValues = this.items()\n .filter((item) => item.expanded)\n .map((item) => item.value());\n\n return this.isMultiple ? expandedValues : (expandedValues[0] ?? '');\n }\n\n /** The key used to persist/restore state. */\n private get stateStorageKey(): string {\n return this.stateSavingKey() || this.id;\n }\n}\n","import { Component } from '@angular/core';\nimport { KbqAccordionContentDirective } from './accordion-content.directive';\n\n@Component({\n selector: 'kbq-accordion-content, [kbq-accordion-content]',\n // A `<div>` wrapper (not `<p>`) carries the content padding: `<p>` is invalid for projected\n // block content (a `<div>` would auto-close it), and keeping padding off the animated\n // `.kbq-accordion-content` host lets it collapse cleanly to `height: 0`.\n template: '<div class=\"kbq-accordion-content__body\"><ng-content /></div>',\n host: {\n class: 'kbq-accordion-content'\n },\n hostDirectives: [KbqAccordionContentDirective]\n})\nexport class KbqAccordionContent {}\n","import { Directive, inject } from '@angular/core';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionItem } from './accordion-item';\n\n@Directive({\n selector: 'kbq-accordion-header, [kbq-accordion-header]',\n host: {\n class: 'kbq-accordion-header',\n '[attr.role]': '\"heading\"',\n '[attr.aria-level]': 'accordion.level()',\n '[attr.data-state]': 'item.dataState',\n '[attr.data-disabled]': 'item.disabled',\n '[attr.data-orientation]': 'item.orientation'\n }\n})\nexport class KbqAccordionHeader {\n /** @docs-private */\n protected readonly item = inject(KbqAccordionItem);\n /** @docs-private */\n protected readonly accordion = inject(KbqAccordion);\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordion } from './accordion';\nimport { KbqAccordionContent } from './accordion-content';\nimport { KbqAccordionHeader } from './accordion-header';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KbqAccordionTrigger } from './accordion-trigger';\n\n@NgModule({\n imports: [\n KbqIcon,\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ],\n exports: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ]\n})\nexport class KbqAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqAccordionTriggerDirective","uniqueIdCounter"],"mappings":"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"}
@@ -234,7 +234,7 @@ class KbqActionsPanelContainer extends CdkDialogContainer {
234
234
  <i kbq-icon="kbq-circle-xmark_16"></i>
235
235
  </button>
236
236
  }
237
- `, isInline: true, styles: [".kbq-actions-panel-container,.kbq-actions-panel-overlay{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var( --kbq-line-on-contrast-less, var(--kbq-line-contrast-fade) );--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", ".kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);border-radius:var(--kbq-actions-panel-border-radius);display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-container .kbq-button,.kbq-actions-panel-container .kbq-button-icon{--kbq-button-filled-contrast-fade-off-background: transparent;--kbq-button-filled-contrast-fade-on-background: transparent}.kbq-actions-panel-overlay{margin:var(--kbq-actions-panel-margin)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i1.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "paddings"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i4.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
237
+ `, isInline: true, styles: [".kbq-actions-panel-container,.kbq-actions-panel-overlay{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var( --kbq-line-on-contrast-less, var(--kbq-line-contrast-fade) );--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", ".kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);border-radius:var(--kbq-actions-panel-border-radius);display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-container .kbq-button,.kbq-actions-panel-container .kbq-button-icon{--kbq-button-filled-contrast-fade-off-background: transparent;--kbq-button-filled-contrast-fade-on-background: transparent}.kbq-actions-panel-overlay{margin:var(--kbq-actions-panel-margin)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i1.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "paddings"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i4.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["forDisabledComponent", "ignoreTooltipPointerEvents", "kbqTooltipSingleInstance", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
238
238
  }
239
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqActionsPanelContainer, decorators: [{
240
240
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-actions-panel.mjs","sources":["../../../packages/components/actions-panel/actions-panel-config.ts","../../../packages/components/actions-panel/actions-panel-container.ts","../../../packages/components/actions-panel/actions-panel-ref.ts","../../../packages/components/actions-panel/actions-panel.ts","../../../packages/components/actions-panel/module.ts","../../../packages/components/actions-panel/koobiq-components-actions-panel.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, Injector, Provider } from '@angular/core';\n\n/** Injection token that can be used to specify default actions panel config. */\nexport const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken<KbqActionsPanelConfig>(\n 'KBQ_ACTIONS_PANEL_DEFAULT_CONFIG',\n { factory: () => new KbqActionsPanelConfig() }\n);\n\n/**\n * Utility for providing default actions panel config.\n *\n * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`\n */\nexport const kbqActionsPanelDefaultConfigProvider = <D>(config: KbqActionsPanelConfig<D>): Provider => ({\n provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,\n useValue: config\n});\n\n/**\n * Configuration for opened actions panel.\n * Based on cdk `DialogConfig`.\n *\n * @see `DialogConfig`\n *\n */\nexport class KbqActionsPanelConfig<D = unknown> {\n /**\n * Injector used for the instantiation of the component to be attached.\n */\n injector?: Injector;\n\n /**\n * Data being injected into the child component.\n *\n * @see `KBQ_ACTIONS_PANEL_DATA`\n */\n data?: D | null = null;\n\n /** Extra CSS classes to be added to the actions panel container. */\n containerClass?: string | string[];\n\n /**\n * Whether the actions panel should be closed of when the user goes backwards/forwards in history.\n * NOTE! This does not apply to router navigation.\n *\n * @default true\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Element in which the actions panel overlay will be connected to.\n */\n overlayContainer?: ElementRef<HTMLElement>;\n\n /**\n * Extra CSS classes to be added to the overlay panel.\n */\n overlayPanelClass?: string | string[];\n\n /**\n * Width of the actions panel.\n */\n width?: string;\n\n /**\n * Min-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n minWidth?: number | string;\n\n /**\n * Max-width of the actions panel.\n * If a number is provided, assumes pixel units.\n *\n * NOTE: this property is ignored if the `overlayContainer` property is provided, and will be calculated based on\n * the width of the `overlayContainer`.\n */\n maxWidth?: number | string;\n\n /**\n * Direction of the text in the actions panel.\n *\n * @default 'ltr'\n */\n direction?: Direction = 'ltr';\n\n /**\n * Scroll strategy to be used for the actions panel.\n *\n * @default `RepositionScrollStrategy`\n */\n scrollStrategy?: (overlay: Overlay) => ScrollStrategy = (overlay) => overlay.scrollStrategies.reposition();\n\n /**\n * Whether the user can use ESC or click on close button to close the actions panel.\n *\n * @default false\n */\n disableClose?: boolean = false;\n}\n","import {\n animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n InjectionToken,\n OnDestroy,\n Provider,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqActionsPanelLocaleConfiguration,\n KbqAnimationCurves,\n KbqAnimationDurations,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { map, of } from 'rxjs';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelConfig } from './actions-panel-config';\n\n/** Localization configuration provider. */\nexport const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken<KbqActionsPanelLocaleConfiguration>(\n 'KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION',\n { factory: () => ruRULocaleData.actionsPanel }\n);\n\n/** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */\nexport const kbqActionsPanelLocaleConfigurationProvider = (\n configuration: KbqActionsPanelLocaleConfiguration\n): Provider => ({\n provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\n/**\n * Animation that shows and hides the actions panel.\n */\nconst KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [\n state('void, hidden', style({ transform: 'translateY(100%)' })),\n state('visible', style({ transform: 'translateY(0%)' })),\n transition(\n 'visible => void, visible => hidden',\n group([\n animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n ),\n transition(\n 'void => visible',\n group([\n animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n )\n]);\n\n/**\n * Internal component that wraps user-provided actions panel content.\n *\n * @docs-private\n */\n@Component({\n selector: 'kbq-actions-panel-container',\n imports: [\n CdkPortalOutlet,\n KbqDividerModule,\n KbqButtonModule,\n KbqIconModule,\n KbqToolTipModule\n ],\n template: `\n <div class=\"kbq-actions-panel-container__content\">\n <ng-template cdkPortalOutlet />\n </div>\n @if (!config.disableClose) {\n <kbq-divider class=\"kbq-actions-panel-container__vertical-divider\" [vertical]=\"true\" />\n <button\n class=\"kbq-actions-panel-container__close-button\"\n color=\"contrast\"\n kbq-button\n [kbqTooltip]=\"localeConfiguration()!.closeTooltip\"\n [kbqTooltipOffset]=\"16\"\n (click)=\"close()\"\n >\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n </button>\n }\n `,\n styleUrls: [\n './actions-panel-tokens.scss',\n './actions-panel-container.scss'\n ],\n // Uses the `Default` change detection strategy as parent `CdkDialogContainer`:\n // https://github.com/angular/components/blob/18.2.14/src/cdk/dialog/dialog-container.ts#L60\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-actions-panel-container',\n '[class.kbq-actions-panel-container_rtl]': 'config.direction === \"rtl\"',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimationStart($event)',\n '(@state.done)': 'onAnimationDone($event)',\n '(keydown.escape)': 'handleEscape($event)'\n },\n animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION]\n})\nexport class KbqActionsPanelContainer extends CdkDialogContainer implements OnDestroy {\n /**\n * The state of the actions panel animations.\n *\n * @docs-private\n */\n protected animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /**\n * Emits whenever the state of the animation changes.\n *\n * @docs-private\n */\n readonly animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the actions panel container has been destroyed. */\n private destroyed: boolean;\n\n /**\n * Actions panel configuration.\n *\n * @docs-private\n */\n protected readonly config = inject(KbqActionsPanelConfig);\n\n private readonly actionsPanel = inject(KbqActionsPanel);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Actions panel locale configuration.\n *\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqActionsPanelLocaleConfiguration>(\n this.localeService\n ? this.localeService.changes.pipe(map(() => this.localeService!.getParams('actionsPanel')))\n : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION))\n );\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed = true;\n }\n\n /**\n * Close the actions panel.\n *\n * @docs-private\n */\n protected close(): void {\n this.actionsPanel.close();\n }\n\n /**\n * Start animation of the actions panel entrance into view.\n *\n * @docs-private\n */\n startOpenAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'visible';\n // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to\n // call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Start animation of the actions panel exiting from view.\n *\n * @docs-private\n */\n startCloseAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Handles animation done events.\n *\n * @docs-private\n */\n protected onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'visible') {\n this._trapFocus();\n }\n\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles animation start events.\n *\n * @docs-private\n */\n protected onAnimationStart(event: AnimationEvent): void {\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles escape key events.\n *\n * @docs-private\n */\n protected handleEscape(event: KeyboardEvent): void {\n if (!this.config.disableClose) {\n event.preventDefault();\n this.close();\n }\n }\n\n /**\n * @docs-private\n */\n protected override _contentAttached(): void {\n this.applyContainerClass();\n }\n\n private applyContainerClass(): void {\n const { containerClass } = this.config;\n\n if (containerClass) {\n if (Array.isArray(containerClass)) {\n containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));\n } else {\n this.renderer.addClass(this._elementRef.nativeElement, containerClass);\n }\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { filter, Observable, Subject, take } from 'rxjs';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\n/**\n * Reference to actions panel opened by `KbqActionsPanel` service.\n */\nexport class KbqActionsPanelRef<I = unknown, R = unknown> {\n /**\n * Instance of the component into which the actions panel content is projected.\n *\n * @docs-private\n */\n containerInstance: KbqActionsPanelContainer;\n\n /** Gets an observable that is notified when the actions panel is finished closing. */\n get afterClosed(): Observable<R | undefined> {\n return this.dialogRef.closed;\n }\n\n /** Gets an observable that emits when keydown events are targeted on the overlay. */\n get keydownEvents(): Observable<KeyboardEvent> {\n return this.dialogRef.keydownEvents;\n }\n\n /** Gets an observable that is notified when the actions panel has opened and appeared. */\n get afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n /**\n * Gets the overlay reference for the actions panel.\n *\n * @docs-private\n */\n get overlayRef(): OverlayRef {\n return this.dialogRef.overlayRef;\n }\n\n /**\n * Gets the ID of the actions panel.\n *\n * @docs-private\n */\n get id(): string {\n return this.dialogRef.id;\n }\n\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterClosed` stream. */\n private result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the close animation doesn't fire. */\n private closeAnimationFallbackTimeout: ReturnType<typeof setTimeout>;\n\n constructor(\n private readonly dialogRef: DialogRef<R, I>,\n containerInstance: KbqActionsPanelContainer\n ) {\n this.containerInstance = containerInstance;\n this.handleAnimation();\n this.handleOverlayDetachments();\n }\n\n /** Closes the actions panel. */\n close(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(({ totalTime }) => {\n this.closeAnimationFallbackTimeout = setTimeout(\n () => this.dialogRef.close(this.result),\n totalTime + 100\n );\n });\n\n this.result = result;\n this.containerInstance.startCloseAnimation();\n this.containerInstance = null!;\n }\n\n private handleAnimation(): void {\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this.closeAnimationFallbackTimeout);\n this.dialogRef.close(this.result);\n });\n }\n\n private handleOverlayDetachments(): void {\n this.dialogRef.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.dialogRef.close(this.result);\n });\n }\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { ComponentType, Overlay } from '@angular/cdk/overlay';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KbqActionsPanelConfig } from './actions-panel-config';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\nimport { KbqActionsPanelRef } from './actions-panel-ref';\n\n/** Injection token that can be used to access the data that was passed in to actions panel. */\nexport const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');\n\n/**\n * Context for actions panel template.\n */\nexport type KbqActionsPanelTemplateContext<T = unknown, D = unknown, R = unknown> = {\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data>{{ data.KEY }}</ng-template>\n * ````\n */\n $implicit?: D | null;\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data=\"data\">{{ data.KEY }}</ng-template>\n * ````\n */\n data?: D | null;\n /**\n * Opened actions panel reference.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-actionsPanelRef=\"actionsPanelRef\">\n * <button (click)=\"actionsPanelRef.close()\">close</button>\n * </ng-template>\n * ````\n */\n actionsPanelRef: KbqActionsPanelRef<T, R>;\n};\n\n/**\n * Selector for actions panel overlay.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';\n\n/**\n * Service for opening actions panel.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanel implements OnDestroy {\n private readonly injector = inject(Injector);\n private readonly overlay = inject(Overlay);\n private readonly dialog = inject(Dialog);\n private readonly defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);\n private readonly resizeObserver = inject(SharedResizeObserver);\n\n /** The reference to the currently opened actions panel. */\n private openedActionsPanelRef: KbqActionsPanelRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n /**\n * Opens actions panel.\n *\n * @param componentOrTemplateRef Component to be opened into the actions panel.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n component: ComponentType<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n /**\n * Opens actions panel.\n *\n * @param template TemplateRef to be used as the content.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n template: TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R> {\n const _config: KbqActionsPanelConfig<D> = {\n ...(this.defaultConfig as KbqActionsPanelConfig<D>),\n ...config\n };\n const actionsPanelRef = this.openDialog<T, D, R>(componentOrTemplateRef, _config);\n\n actionsPanelRef.afterClosed.subscribe(() => {\n if (this.openedActionsPanelRef === actionsPanelRef) {\n this.openedActionsPanelRef = null;\n }\n });\n\n if (this.openedActionsPanelRef) {\n this.openedActionsPanelRef.afterClosed.subscribe(() => {\n actionsPanelRef.containerInstance?.startOpenAnimation();\n });\n this.openedActionsPanelRef.close();\n } else {\n actionsPanelRef.containerInstance.startOpenAnimation();\n }\n\n this.openedActionsPanelRef = actionsPanelRef as KbqActionsPanelRef;\n\n return actionsPanelRef;\n }\n\n /** Closes the currently opened actions panel. */\n close<R>(result?: R): void {\n this.openedActionsPanelRef?.close(result);\n }\n\n private openDialog<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: KbqActionsPanelConfig<D> = {}\n ): KbqActionsPanelRef<T, R> {\n let actionsPanelRef!: KbqActionsPanelRef<T, R>;\n const { overlayContainer, overlayPanelClass } = config;\n\n this.dialog.open<R, D, T>(componentOrTemplateRef, {\n ...config,\n container: KbqActionsPanelContainer,\n restoreFocus: false,\n autoFocus: null!,\n hasBackdrop: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnOverlayDetachments: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnDestroy: false,\n // Disable closing since we need to sync it up to the animation ourselves\n disableClose: true,\n scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),\n positionStrategy: overlayContainer\n ? this.overlay\n .position()\n .flexibleConnectedTo(overlayContainer)\n .withPositions([{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'bottom' }])\n .withFlexibleDimensions()\n .withPush(false)\n .withLockedPosition()\n .withGrowAfterOpen()\n : this.overlay.position().global().centerHorizontally().bottom(),\n templateContext: () => {\n return {\n $implicit: config.data,\n data: config.data,\n actionsPanelRef\n } satisfies KbqActionsPanelTemplateContext<T, D, R>;\n },\n injector: Injector.create({\n parent: config.injector || this.injector,\n providers: [{ provide: KbqActionsPanelConfig, useValue: config }]\n }),\n providers: (dialogRef, _dialogConfig, container) => {\n actionsPanelRef = new KbqActionsPanelRef<T, R>(dialogRef, container as KbqActionsPanelContainer);\n\n return [\n { provide: KbqActionsPanelRef, useValue: actionsPanelRef },\n { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }\n ];\n }\n });\n\n const { overlayRef } = actionsPanelRef;\n\n overlayRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);\n\n if (overlayPanelClass) overlayRef.addPanelClass(overlayPanelClass);\n\n if (overlayContainer) {\n const { afterClosed } = actionsPanelRef;\n\n this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement);\n\n this.resizeObserver\n .observe(overlayContainer.nativeElement)\n .pipe(takeUntil(afterClosed))\n .subscribe(() => {\n if (this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement)) {\n overlayRef.updatePosition();\n }\n });\n }\n\n return actionsPanelRef;\n }\n\n private syncOverlayMaxWidth(container: HTMLElement, overlayElement: HTMLElement): boolean {\n const { width } = container.getBoundingClientRect();\n\n if (!width) return false;\n\n const maxWidth = coerceCssPixelValue(width);\n\n if (overlayElement.style.maxWidth === maxWidth) return false;\n\n overlayElement.style.maxWidth = maxWidth;\n\n return true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\nconst COMPONENTS = [\n KbqActionsPanelContainer\n];\n\n@NgModule({\n imports: COMPONENTS,\n providers: [KbqActionsPanel],\n exports: COMPONENTS\n})\nexport class KbqActionsPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-actions-panel.mjs","sources":["../../../packages/components/actions-panel/actions-panel-config.ts","../../../packages/components/actions-panel/actions-panel-container.ts","../../../packages/components/actions-panel/actions-panel-ref.ts","../../../packages/components/actions-panel/actions-panel.ts","../../../packages/components/actions-panel/module.ts","../../../packages/components/actions-panel/koobiq-components-actions-panel.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, Injector, Provider } from '@angular/core';\n\n/** Injection token that can be used to specify default actions panel config. */\nexport const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken<KbqActionsPanelConfig>(\n 'KBQ_ACTIONS_PANEL_DEFAULT_CONFIG',\n { factory: () => new KbqActionsPanelConfig() }\n);\n\n/**\n * Utility for providing default actions panel config.\n *\n * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`\n */\nexport const kbqActionsPanelDefaultConfigProvider = <D>(config: KbqActionsPanelConfig<D>): Provider => ({\n provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,\n useValue: config\n});\n\n/**\n * Configuration for opened actions panel.\n * Based on cdk `DialogConfig`.\n *\n * @see `DialogConfig`\n *\n */\nexport class KbqActionsPanelConfig<D = unknown> {\n /**\n * Injector used for the instantiation of the component to be attached.\n */\n injector?: Injector;\n\n /**\n * Data being injected into the child component.\n *\n * @see `KBQ_ACTIONS_PANEL_DATA`\n */\n data?: D | null = null;\n\n /** Extra CSS classes to be added to the actions panel container. */\n containerClass?: string | string[];\n\n /**\n * Whether the actions panel should be closed of when the user goes backwards/forwards in history.\n * NOTE! This does not apply to router navigation.\n *\n * @default true\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Element in which the actions panel overlay will be connected to.\n */\n overlayContainer?: ElementRef<HTMLElement>;\n\n /**\n * Extra CSS classes to be added to the overlay panel.\n */\n overlayPanelClass?: string | string[];\n\n /**\n * Width of the actions panel.\n */\n width?: string;\n\n /**\n * Min-width of the actions panel.\n * If a number is provided, assumes pixel units.\n */\n minWidth?: number | string;\n\n /**\n * Max-width of the actions panel.\n * If a number is provided, assumes pixel units.\n *\n * NOTE: this property is ignored if the `overlayContainer` property is provided, and will be calculated based on\n * the width of the `overlayContainer`.\n */\n maxWidth?: number | string;\n\n /**\n * Direction of the text in the actions panel.\n *\n * @default 'ltr'\n */\n direction?: Direction = 'ltr';\n\n /**\n * Scroll strategy to be used for the actions panel.\n *\n * @default `RepositionScrollStrategy`\n */\n scrollStrategy?: (overlay: Overlay) => ScrollStrategy = (overlay) => overlay.scrollStrategies.reposition();\n\n /**\n * Whether the user can use ESC or click on close button to close the actions panel.\n *\n * @default false\n */\n disableClose?: boolean = false;\n}\n","import {\n animate,\n animateChild,\n AnimationEvent,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n InjectionToken,\n OnDestroy,\n Provider,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqActionsPanelLocaleConfiguration,\n KbqAnimationCurves,\n KbqAnimationDurations,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { map, of } from 'rxjs';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelConfig } from './actions-panel-config';\n\n/** Localization configuration provider. */\nexport const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken<KbqActionsPanelLocaleConfiguration>(\n 'KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION',\n { factory: () => ruRULocaleData.actionsPanel }\n);\n\n/** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */\nexport const kbqActionsPanelLocaleConfigurationProvider = (\n configuration: KbqActionsPanelLocaleConfiguration\n): Provider => ({\n provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\n/**\n * Animation that shows and hides the actions panel.\n */\nconst KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [\n state('void, hidden', style({ transform: 'translateY(100%)' })),\n state('visible', style({ transform: 'translateY(0%)' })),\n transition(\n 'visible => void, visible => hidden',\n group([\n animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n ),\n transition(\n 'void => visible',\n group([\n animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),\n query('@*', animateChild(), { optional: true })\n ])\n )\n]);\n\n/**\n * Internal component that wraps user-provided actions panel content.\n *\n * @docs-private\n */\n@Component({\n selector: 'kbq-actions-panel-container',\n imports: [\n CdkPortalOutlet,\n KbqDividerModule,\n KbqButtonModule,\n KbqIconModule,\n KbqToolTipModule\n ],\n template: `\n <div class=\"kbq-actions-panel-container__content\">\n <ng-template cdkPortalOutlet />\n </div>\n @if (!config.disableClose) {\n <kbq-divider class=\"kbq-actions-panel-container__vertical-divider\" [vertical]=\"true\" />\n <button\n class=\"kbq-actions-panel-container__close-button\"\n color=\"contrast\"\n kbq-button\n [kbqTooltip]=\"localeConfiguration()!.closeTooltip\"\n [kbqTooltipOffset]=\"16\"\n (click)=\"close()\"\n >\n <i kbq-icon=\"kbq-circle-xmark_16\"></i>\n </button>\n }\n `,\n styleUrls: [\n './actions-panel-tokens.scss',\n './actions-panel-container.scss'\n ],\n // Uses the `Default` change detection strategy as parent `CdkDialogContainer`:\n // https://github.com/angular/components/blob/18.2.14/src/cdk/dialog/dialog-container.ts#L60\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-actions-panel-container',\n '[class.kbq-actions-panel-container_rtl]': 'config.direction === \"rtl\"',\n '[@state]': 'animationState',\n '(@state.start)': 'onAnimationStart($event)',\n '(@state.done)': 'onAnimationDone($event)',\n '(keydown.escape)': 'handleEscape($event)'\n },\n animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION]\n})\nexport class KbqActionsPanelContainer extends CdkDialogContainer implements OnDestroy {\n /**\n * The state of the actions panel animations.\n *\n * @docs-private\n */\n protected animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /**\n * Emits whenever the state of the animation changes.\n *\n * @docs-private\n */\n readonly animationStateChanged = new EventEmitter<AnimationEvent>();\n\n /** Whether the actions panel container has been destroyed. */\n private destroyed: boolean;\n\n /**\n * Actions panel configuration.\n *\n * @docs-private\n */\n protected readonly config = inject(KbqActionsPanelConfig);\n\n private readonly actionsPanel = inject(KbqActionsPanel);\n private readonly renderer = inject(Renderer2);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Actions panel locale configuration.\n *\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqActionsPanelLocaleConfiguration>(\n this.localeService\n ? this.localeService.changes.pipe(map(() => this.localeService!.getParams('actionsPanel')))\n : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION))\n );\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed = true;\n }\n\n /**\n * Close the actions panel.\n *\n * @docs-private\n */\n protected close(): void {\n this.actionsPanel.close();\n }\n\n /**\n * Start animation of the actions panel entrance into view.\n *\n * @docs-private\n */\n startOpenAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'visible';\n // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to\n // call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Start animation of the actions panel exiting from view.\n *\n * @docs-private\n */\n startCloseAnimation(): void {\n if (!this.destroyed) {\n this.animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Handles animation done events.\n *\n * @docs-private\n */\n protected onAnimationDone(event: AnimationEvent): void {\n if (event.toState === 'visible') {\n this._trapFocus();\n }\n\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles animation start events.\n *\n * @docs-private\n */\n protected onAnimationStart(event: AnimationEvent): void {\n this.animationStateChanged.emit(event);\n }\n\n /**\n * Handles escape key events.\n *\n * @docs-private\n */\n protected handleEscape(event: KeyboardEvent): void {\n if (!this.config.disableClose) {\n event.preventDefault();\n this.close();\n }\n }\n\n /**\n * @docs-private\n */\n protected override _contentAttached(): void {\n this.applyContainerClass();\n }\n\n private applyContainerClass(): void {\n const { containerClass } = this.config;\n\n if (containerClass) {\n if (Array.isArray(containerClass)) {\n containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));\n } else {\n this.renderer.addClass(this._elementRef.nativeElement, containerClass);\n }\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { filter, Observable, Subject, take } from 'rxjs';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\n/**\n * Reference to actions panel opened by `KbqActionsPanel` service.\n */\nexport class KbqActionsPanelRef<I = unknown, R = unknown> {\n /**\n * Instance of the component into which the actions panel content is projected.\n *\n * @docs-private\n */\n containerInstance: KbqActionsPanelContainer;\n\n /** Gets an observable that is notified when the actions panel is finished closing. */\n get afterClosed(): Observable<R | undefined> {\n return this.dialogRef.closed;\n }\n\n /** Gets an observable that emits when keydown events are targeted on the overlay. */\n get keydownEvents(): Observable<KeyboardEvent> {\n return this.dialogRef.keydownEvents;\n }\n\n /** Gets an observable that is notified when the actions panel has opened and appeared. */\n get afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n /**\n * Gets the overlay reference for the actions panel.\n *\n * @docs-private\n */\n get overlayRef(): OverlayRef {\n return this.dialogRef.overlayRef;\n }\n\n /**\n * Gets the ID of the actions panel.\n *\n * @docs-private\n */\n get id(): string {\n return this.dialogRef.id;\n }\n\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterClosed` stream. */\n private result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the close animation doesn't fire. */\n private closeAnimationFallbackTimeout: ReturnType<typeof setTimeout>;\n\n constructor(\n private readonly dialogRef: DialogRef<R, I>,\n containerInstance: KbqActionsPanelContainer\n ) {\n this.containerInstance = containerInstance;\n this.handleAnimation();\n this.handleOverlayDetachments();\n }\n\n /** Closes the actions panel. */\n close(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'start'),\n take(1)\n )\n .subscribe(({ totalTime }) => {\n this.closeAnimationFallbackTimeout = setTimeout(\n () => this.dialogRef.close(this.result),\n totalTime + 100\n );\n });\n\n this.result = result;\n this.containerInstance.startCloseAnimation();\n this.containerInstance = null!;\n }\n\n private handleAnimation(): void {\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === 'hidden'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this.closeAnimationFallbackTimeout);\n this.dialogRef.close(this.result);\n });\n }\n\n private handleOverlayDetachments(): void {\n this.dialogRef.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.dialogRef.close(this.result);\n });\n }\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { ComponentType, Overlay } from '@angular/cdk/overlay';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KbqActionsPanelConfig } from './actions-panel-config';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\nimport { KbqActionsPanelRef } from './actions-panel-ref';\n\n/** Injection token that can be used to access the data that was passed in to actions panel. */\nexport const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');\n\n/**\n * Context for actions panel template.\n */\nexport type KbqActionsPanelTemplateContext<T = unknown, D = unknown, R = unknown> = {\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data>{{ data.KEY }}</ng-template>\n * ````\n */\n $implicit?: D | null;\n /**\n * Data passed to actions panel.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-data=\"data\">{{ data.KEY }}</ng-template>\n * ````\n */\n data?: D | null;\n /**\n * Opened actions panel reference.\n *\n * Example:\n *\n * ```html\n * <ng-template #actionsPanel let-actionsPanelRef=\"actionsPanelRef\">\n * <button (click)=\"actionsPanelRef.close()\">close</button>\n * </ng-template>\n * ````\n */\n actionsPanelRef: KbqActionsPanelRef<T, R>;\n};\n\n/**\n * Selector for actions panel overlay.\n *\n * @docs-private\n */\nexport const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';\n\n/**\n * Service for opening actions panel.\n */\n@Injectable({ providedIn: 'root' })\nexport class KbqActionsPanel implements OnDestroy {\n private readonly injector = inject(Injector);\n private readonly overlay = inject(Overlay);\n private readonly dialog = inject(Dialog);\n private readonly defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);\n private readonly resizeObserver = inject(SharedResizeObserver);\n\n /** The reference to the currently opened actions panel. */\n private openedActionsPanelRef: KbqActionsPanelRef | null = null;\n\n ngOnDestroy() {\n this.close();\n }\n\n /**\n * Opens actions panel.\n *\n * @param componentOrTemplateRef Component to be opened into the actions panel.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n component: ComponentType<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n /**\n * Opens actions panel.\n *\n * @param template TemplateRef to be used as the content.\n * @param config Additional configuration options for the actions panel.\n * @returns A reference to the opened actions panel.\n */\n open<T, D = unknown, R = unknown>(\n template: TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R>;\n\n open<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqActionsPanelConfig<D>\n ): KbqActionsPanelRef<T, R> {\n const _config: KbqActionsPanelConfig<D> = {\n ...(this.defaultConfig as KbqActionsPanelConfig<D>),\n ...config\n };\n const actionsPanelRef = this.openDialog<T, D, R>(componentOrTemplateRef, _config);\n\n actionsPanelRef.afterClosed.subscribe(() => {\n if (this.openedActionsPanelRef === actionsPanelRef) {\n this.openedActionsPanelRef = null;\n }\n });\n\n if (this.openedActionsPanelRef) {\n this.openedActionsPanelRef.afterClosed.subscribe(() => {\n actionsPanelRef.containerInstance?.startOpenAnimation();\n });\n this.openedActionsPanelRef.close();\n } else {\n actionsPanelRef.containerInstance.startOpenAnimation();\n }\n\n this.openedActionsPanelRef = actionsPanelRef as KbqActionsPanelRef;\n\n return actionsPanelRef;\n }\n\n /** Closes the currently opened actions panel. */\n close<R>(result?: R): void {\n this.openedActionsPanelRef?.close(result);\n }\n\n private openDialog<T, D = unknown, R = unknown>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: KbqActionsPanelConfig<D> = {}\n ): KbqActionsPanelRef<T, R> {\n let actionsPanelRef!: KbqActionsPanelRef<T, R>;\n const { overlayContainer, overlayPanelClass } = config;\n\n this.dialog.open<R, D, T>(componentOrTemplateRef, {\n ...config,\n container: KbqActionsPanelContainer,\n restoreFocus: false,\n autoFocus: null!,\n hasBackdrop: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnOverlayDetachments: false,\n // Disable closing since we need to sync it up to the animation ourselves\n closeOnDestroy: false,\n // Disable closing since we need to sync it up to the animation ourselves\n disableClose: true,\n scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),\n positionStrategy: overlayContainer\n ? this.overlay\n .position()\n .flexibleConnectedTo(overlayContainer)\n .withPositions([{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'bottom' }])\n .withFlexibleDimensions()\n .withPush(false)\n .withLockedPosition()\n .withGrowAfterOpen()\n : this.overlay.position().global().centerHorizontally().bottom(),\n templateContext: () => {\n return {\n $implicit: config.data,\n data: config.data,\n actionsPanelRef\n } satisfies KbqActionsPanelTemplateContext<T, D, R>;\n },\n injector: Injector.create({\n parent: config.injector || this.injector,\n providers: [{ provide: KbqActionsPanelConfig, useValue: config }]\n }),\n providers: (dialogRef, _dialogConfig, container) => {\n actionsPanelRef = new KbqActionsPanelRef<T, R>(dialogRef, container as KbqActionsPanelContainer);\n\n return [\n { provide: KbqActionsPanelRef, useValue: actionsPanelRef },\n { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }\n ];\n }\n });\n\n const { overlayRef } = actionsPanelRef;\n\n overlayRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);\n\n if (overlayPanelClass) overlayRef.addPanelClass(overlayPanelClass);\n\n if (overlayContainer) {\n const { afterClosed } = actionsPanelRef;\n\n this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement);\n\n this.resizeObserver\n .observe(overlayContainer.nativeElement)\n .pipe(takeUntil(afterClosed))\n .subscribe(() => {\n if (this.syncOverlayMaxWidth(overlayContainer.nativeElement, overlayRef.overlayElement)) {\n overlayRef.updatePosition();\n }\n });\n }\n\n return actionsPanelRef;\n }\n\n private syncOverlayMaxWidth(container: HTMLElement, overlayElement: HTMLElement): boolean {\n const { width } = container.getBoundingClientRect();\n\n if (!width) return false;\n\n const maxWidth = coerceCssPixelValue(width);\n\n if (overlayElement.style.maxWidth === maxWidth) return false;\n\n overlayElement.style.maxWidth = maxWidth;\n\n return true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqActionsPanel } from './actions-panel';\nimport { KbqActionsPanelContainer } from './actions-panel-container';\n\nconst COMPONENTS = [\n KbqActionsPanelContainer\n];\n\n@NgModule({\n imports: COMPONENTS,\n providers: [KbqActionsPanel],\n exports: COMPONENTS\n})\nexport class KbqActionsPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}