@koobiq/components 19.8.4 → 19.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-content.directive.d.ts +23 -3
- package/accordion/accordion-trigger.component.d.ts +1 -0
- package/accordion/accordion.component.scss +4 -1
- package/alert/alert-tokens.scss +4 -4
- package/autocomplete/autocomplete-trigger.directive.d.ts +10 -5
- package/breadcrumbs/breadcrumbs.d.ts +2 -0
- package/breadcrumbs/breadcrumbs.scss +4 -0
- package/button/button-group.scss +42 -2
- package/button-toggle/button-toggle-tokens.scss +16 -0
- package/button-toggle/button-toggle.component.d.ts +3 -1
- package/button-toggle/button-toggle.scss +105 -1
- package/checkbox/checkbox.scss +5 -4
- package/clamped-text/clamped-text.d.ts +4 -2
- package/core/form-field/field-sizing-content.d.ts +0 -1
- package/core/form-field/form-field-ref.d.ts +1 -0
- package/core/form-field/index.d.ts +1 -0
- package/core/form-field/text-field-selection.d.ts +18 -0
- package/core/form-field/text-ruler.d.ts +16 -0
- package/core/navbar/rectangle-item.d.ts +8 -0
- package/core/option/_action-container-mixins.scss +28 -0
- package/core/option/_option-theme.scss +8 -0
- package/core/option/action.d.ts +9 -0
- package/core/option/action.scss +7 -0
- package/core/option/option.d.ts +10 -6
- package/core/pop-up/pop-up-trigger.d.ts +6 -0
- package/core/select/constants.d.ts +8 -1
- package/core/services/measure-scrollbar.service.d.ts +1 -0
- package/core/styles/common/_animation.scss +35 -24
- package/core/styles/common/_select.scss +17 -2
- package/core/styles/theming/_scrollbar-theme.scss +4 -0
- package/core/styles/typography/_typography.scss +8 -0
- package/core/utils/dom.d.ts +12 -0
- package/datepicker/datepicker-input.directive.d.ts +20 -5
- package/datepicker/datepicker.component.d.ts +4 -1
- package/dl/dl.component.d.ts +1 -0
- package/dl/dl.scss +10 -0
- package/dropdown/dropdown-item.component.d.ts +10 -2
- package/dropdown/dropdown-item.scss +16 -0
- package/dropdown/dropdown-trigger.directive.d.ts +6 -1
- package/dropdown/dropdown.component.d.ts +6 -1
- package/dropdown/dropdown.module.d.ts +1 -1
- package/dropdown/dropdown.scss +18 -3
- package/ellipsis-center/ellipsis-center.directive.d.ts +35 -2
- package/fesm2022/koobiq-components-accordion.mjs +104 -16
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +2 -2
- package/fesm2022/koobiq-components-app-switcher.mjs +6 -6
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +21 -9
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +10 -5
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +8 -5
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +4 -4
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +9 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +14 -5
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +5 -4
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +234 -64
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +73 -49
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +5 -4
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +65 -22
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +77 -22
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +12 -12
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +295 -46
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +2 -2
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +1 -1
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +26 -5
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +12 -22
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +4 -1
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +53 -12
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +29 -13
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +45 -7
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +4 -0
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +35 -18
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +3 -7
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +23 -4
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +126 -29
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +10 -0
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +34 -10
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +4 -0
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +27 -7
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +4 -2
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -14
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +44 -19
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +10 -4
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +41 -3
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +31 -3
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +2 -2
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +4 -1
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +36 -12
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +41 -37
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +2 -2
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.d.ts +0 -1
- package/file-upload/file-upload.scss +11 -0
- package/file-upload/multiple-file-upload.component.scss +29 -3
- package/file-upload/primitives/file-picker.d.ts +1 -1
- package/file-upload/single-file-upload.component.scss +10 -2
- package/filter-bar/filter-bar.d.ts +1 -1
- package/filter-bar/filter-bar.types.d.ts +2 -0
- package/filter-bar/filters.scss +3 -2
- package/filter-bar/pipes/base-pipe.d.ts +31 -0
- package/filter-bar/pipes/base-pipe.scss +0 -13
- package/filter-bar/pipes/pipe-date.d.ts +1 -1
- package/filter-bar/pipes/pipe-datetime.d.ts +1 -1
- package/filter-bar/pipes/pipe-input.d.ts +42 -0
- package/filter-bar/pipes/pipe-input.scss +10 -0
- package/filter-bar/public-api.d.ts +1 -0
- package/form-field/fieldset.scss +10 -0
- package/inline-edit/inline-edit.d.ts +5 -0
- package/inline-edit/inline-edit.scss +7 -7
- package/link/_link-theme.scss +50 -15
- package/list/_list-theme.scss +12 -0
- package/list/list-selection.component.d.ts +1 -0
- package/list/list.scss +2 -9
- package/modal/modal-tokens.scss +1 -1
- package/modal/modal.component.d.ts +9 -1
- package/modal/modal.directive.d.ts +11 -0
- package/modal/modal.type.d.ts +7 -0
- package/navbar/_navbar-item_horizontal.scss +5 -0
- package/navbar/_navbar-item_vertical.scss +7 -5
- package/navbar/navbar-item.component.d.ts +15 -0
- package/navbar/navbar.component.d.ts +1 -0
- package/navbar/vertical-navbar.scss +6 -0
- package/notification-center/notification-center.d.ts +13 -1
- package/notification-center/notification-center.scss +12 -0
- package/notification-center/notification-item.scss +6 -0
- package/overflow-items/overflow-items.d.ts +1 -0
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/radio/radio.component.d.ts +1 -5
- package/radio/radio.scss +18 -4
- package/resizer/resizer.d.ts +12 -0
- package/schematics/ng-add/index.js +2 -2
- package/select/select-option.directive.d.ts +1 -0
- package/select/select.component.d.ts +29 -4
- package/sidebar/sidebar.component.d.ts +3 -0
- package/sidepanel/sidepanel-directives.d.ts +2 -0
- package/sidepanel/sidepanel.service.d.ts +8 -0
- package/splitter/splitter.component.d.ts +1 -0
- package/tabs/tab-body.component.d.ts +2 -0
- package/tabs/tab-header.component.d.ts +1 -0
- package/tabs/tab-header.scss +1 -0
- package/tabs/tab-nav-bar.d.ts +1 -0
- package/tabs/tabs-tokens.scss +1 -1
- package/textarea/textarea.component.d.ts +0 -1
- package/timepicker/timepicker.directive.d.ts +3 -0
- package/timezone/timezone-option.directive.d.ts +1 -0
- package/title/title.directive.d.ts +21 -0
- package/toast/toast-container.component.d.ts +25 -0
- package/tree/_tree-theme.scss +5 -11
- package/tree/toggle.scss +4 -0
- package/tree/tree-option.component.d.ts +3 -0
- package/tree/tree-option.scss +2 -12
- package/tree/tree-selection.component.d.ts +1 -0
- package/tree-select/tree-select.component.d.ts +9 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, ChangeDetectorRef, HostAttributeToken, EventEmitter, booleanAttribute, Output, Input, forwardRef, ContentChildren, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, afterNextRender, ViewChild, ContentChild, Renderer2, signal, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, ChangeDetectorRef, HostAttributeToken, EventEmitter, booleanAttribute, Output, Input, forwardRef, ContentChildren, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, afterNextRender, ViewChild, ContentChild, Renderer2, Injector, signal, RendererStyleFlags2, NgModule } from '@angular/core';
|
|
3
3
|
import { Platform } from '@angular/cdk/platform';
|
|
4
4
|
import { KBQ_WINDOW, kbqInjectNativeElement } from '@koobiq/components/core';
|
|
5
5
|
import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
|
|
@@ -91,7 +91,8 @@ class KbqAccordion {
|
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
|
-
else {
|
|
94
|
+
else if (this._defaultValue.length) {
|
|
95
|
+
// An empty default would collapse items expanded by their own `[expanded]` input.
|
|
95
96
|
this.selectionDispatcher.notify(this._defaultValue, this.id);
|
|
96
97
|
}
|
|
97
98
|
this.keyManager = new FocusKeyManager(this.items).withHomeAndEnd();
|
|
@@ -170,7 +171,7 @@ class KbqAccordion {
|
|
|
170
171
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqAccordion, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
172
|
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqAccordion, isStandalone: true, selector: "kbq-accordion, [kbq-accordion]", inputs: { variant: "variant", disabled: ["disabled", "disabled", booleanAttribute], orientation: "orientation", defaultValue: "defaultValue", type: "type", collapsible: "collapsible", value: "value" }, outputs: { onValueChange: "onValueChange" }, host: { listeners: { "keydown": "keydownHandler($event)" }, properties: { "attr.data-orientation": "orientation" }, classAttribute: "kbq-accordion" }, providers: [
|
|
172
173
|
{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }
|
|
173
|
-
], queries: [{ propertyName: "items", predicate: i0.forwardRef(() => KbqAccordionItem), descendants: true }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-accordion{display:block}.kbq-accordion-item{box-sizing:border-box;display:block;border-width:2px;border-style:solid;border-color:transparent}.kbq-accordion-header{display:flex;height:var(--kbq-accordion-size-item-header-height)}.kbq-accordion-content{display:block;overflow:hidden}.kbq-accordion-content>p{margin:unset;padding:var(--kbq-accordion-size-item-content-padding)}.kbq-accordion-content[data-state=open]{transition:.3s ease-out;height:var(--radix-accordion-content-height)}.kbq-accordion-content[data-state=closed]{transition:.3s ease-out;height:0}.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:focus-within{border-color:var(--kbq-accordion-item-states-focus-border-color)}.kbq-accordion-item{background:var(--kbq-accordion-item-default-background);color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-item .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-default-icon-color)}.kbq-accordion-trigger{width:100%;background:transparent;border:none;outline:none;color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger[data-disabled=true]{color:var(--kbq-accordion-item-states-disabled-text-color)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)!important}.kbq-accordion-header,.kbq-accordion-trigger{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-accordion-trigger__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-accordion-content{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-accordion{--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
174
|
+
], queries: [{ propertyName: "items", predicate: i0.forwardRef(() => KbqAccordionItem), descendants: true }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-accordion{display:block}.kbq-accordion-item{box-sizing:border-box;display:block;border-width:2px;border-style:solid;border-color:transparent}.kbq-accordion-header{display:flex;height:var(--kbq-accordion-size-item-header-height)}.kbq-accordion-content{display:block;overflow:hidden}.kbq-accordion-content>p{--radix-accordion-content-height: initial;margin:unset;padding:var(--kbq-accordion-size-item-content-padding)}.kbq-accordion-content[data-state=open]{transition:.3s ease-out;height:var(--radix-accordion-content-height, auto)}.kbq-accordion-content[data-state=closed]{transition:.3s ease-out;height:0}.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:focus-within{border-color:var(--kbq-accordion-item-states-focus-border-color)}.kbq-accordion-item{background:var(--kbq-accordion-item-default-background);color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-item .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-default-icon-color)}.kbq-accordion-trigger{width:100%;background:transparent;border:none;outline:none;color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger[data-disabled=true]{color:var(--kbq-accordion-item-states-disabled-text-color)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)!important}.kbq-accordion-header,.kbq-accordion-trigger{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-accordion-trigger__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-accordion-content{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-accordion{--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
174
175
|
}
|
|
175
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqAccordion, decorators: [{
|
|
176
177
|
type: Component,
|
|
@@ -180,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
180
181
|
'(keydown)': 'keydownHandler($event)'
|
|
181
182
|
}, providers: [
|
|
182
183
|
{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }
|
|
183
|
-
], styles: [".kbq-accordion{display:block}.kbq-accordion-item{box-sizing:border-box;display:block;border-width:2px;border-style:solid;border-color:transparent}.kbq-accordion-header{display:flex;height:var(--kbq-accordion-size-item-header-height)}.kbq-accordion-content{display:block;overflow:hidden}.kbq-accordion-content>p{margin:unset;padding:var(--kbq-accordion-size-item-content-padding)}.kbq-accordion-content[data-state=open]{transition:.3s ease-out;height:var(--radix-accordion-content-height)}.kbq-accordion-content[data-state=closed]{transition:.3s ease-out;height:0}.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:focus-within{border-color:var(--kbq-accordion-item-states-focus-border-color)}.kbq-accordion-item{background:var(--kbq-accordion-item-default-background);color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-item .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-default-icon-color)}.kbq-accordion-trigger{width:100%;background:transparent;border:none;outline:none;color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger[data-disabled=true]{color:var(--kbq-accordion-item-states-disabled-text-color)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)!important}.kbq-accordion-header,.kbq-accordion-trigger{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-accordion-trigger__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-accordion-content{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-accordion{--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"] }]
|
|
184
|
+
], styles: [".kbq-accordion{display:block}.kbq-accordion-item{box-sizing:border-box;display:block;border-width:2px;border-style:solid;border-color:transparent}.kbq-accordion-header{display:flex;height:var(--kbq-accordion-size-item-header-height)}.kbq-accordion-content{display:block;overflow:hidden}.kbq-accordion-content>p{--radix-accordion-content-height: initial;margin:unset;padding:var(--kbq-accordion-size-item-content-padding)}.kbq-accordion-content[data-state=open]{transition:.3s ease-out;height:var(--radix-accordion-content-height, auto)}.kbq-accordion-content[data-state=closed]{transition:.3s ease-out;height:0}.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:focus-within{border-color:var(--kbq-accordion-item-states-focus-border-color)}.kbq-accordion-item{background:var(--kbq-accordion-item-default-background);color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-item .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-default-icon-color)}.kbq-accordion-trigger{width:100%;background:transparent;border:none;outline:none;color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger[data-disabled=true]{color:var(--kbq-accordion-item-states-disabled-text-color)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)!important}.kbq-accordion-header,.kbq-accordion-trigger{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-accordion-trigger__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-accordion-content{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-accordion{--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"] }]
|
|
184
185
|
}], ctorParameters: () => [], propDecorators: { items: [{
|
|
185
186
|
type: ContentChildren,
|
|
186
187
|
args: [forwardRef(() => KbqAccordionItem), { descendants: true }]
|
|
@@ -263,6 +264,7 @@ class KbqAccordionTrigger {
|
|
|
263
264
|
return this.accordion.variant === KbqAccordionVariant.hugSpaceBetween;
|
|
264
265
|
}
|
|
265
266
|
constructor() {
|
|
267
|
+
this.platform = inject(Platform);
|
|
266
268
|
/** @docs-private */
|
|
267
269
|
this.nativeElement = kbqInjectNativeElement();
|
|
268
270
|
/** @docs-private */
|
|
@@ -273,6 +275,11 @@ class KbqAccordionTrigger {
|
|
|
273
275
|
});
|
|
274
276
|
}
|
|
275
277
|
ngAfterViewInit() {
|
|
278
|
+
// Skipped on the server: the write would reach the prerendered `style` attribute, and hydration
|
|
279
|
+
// reuses that node, so the client would read `none` back as the transition worth restoring and
|
|
280
|
+
// `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.
|
|
281
|
+
if (!this.platform.isBrowser)
|
|
282
|
+
return;
|
|
276
283
|
this.disableAnimation();
|
|
277
284
|
}
|
|
278
285
|
disableAnimation() {
|
|
@@ -332,6 +339,9 @@ class KbqAccordionItem {
|
|
|
332
339
|
// Only emit events and update the internal value if the value changes.
|
|
333
340
|
if (this._expanded !== expanded) {
|
|
334
341
|
this._expanded = expanded;
|
|
342
|
+
// First: a handler below may run change detection, and the content pins its height before
|
|
343
|
+
// `data-state` flips. Unresolved while an initial input is set; the content syncs itself on init.
|
|
344
|
+
this.content?.toggle();
|
|
335
345
|
this.expandedChange.emit(expanded);
|
|
336
346
|
if (expanded) {
|
|
337
347
|
this.opened.emit();
|
|
@@ -345,7 +355,6 @@ class KbqAccordionItem {
|
|
|
345
355
|
else {
|
|
346
356
|
this.closed.emit();
|
|
347
357
|
}
|
|
348
|
-
this.content.toggle();
|
|
349
358
|
this.accordion.saveItemState(this);
|
|
350
359
|
// Ensures that the animation will run when the value is set outside of an `@Input`.
|
|
351
360
|
// This includes cases like the open, close and toggle methods.
|
|
@@ -499,6 +508,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
499
508
|
type: Output
|
|
500
509
|
}] } });
|
|
501
510
|
|
|
511
|
+
const CONTENT_HEIGHT = '--radix-accordion-content-height';
|
|
502
512
|
class KbqAccordionContentDirective {
|
|
503
513
|
/** @docs-private */
|
|
504
514
|
get contentId() {
|
|
@@ -510,6 +520,7 @@ class KbqAccordionContentDirective {
|
|
|
510
520
|
}
|
|
511
521
|
constructor() {
|
|
512
522
|
this.renderer = inject(Renderer2);
|
|
523
|
+
this.injector = inject(Injector);
|
|
513
524
|
this.platform = inject(Platform);
|
|
514
525
|
/** @docs-private */
|
|
515
526
|
this.nativeElement = kbqInjectNativeElement();
|
|
@@ -517,26 +528,47 @@ class KbqAccordionContentDirective {
|
|
|
517
528
|
this.item = inject(KbqAccordionItem);
|
|
518
529
|
/** @docs-private */
|
|
519
530
|
this.hidden = signal(true);
|
|
520
|
-
|
|
531
|
+
/** Whether the first browser render has happened; until then a toggle only sets the initial state. */
|
|
532
|
+
this.rendered = false;
|
|
533
|
+
afterNextRender(() => {
|
|
534
|
+
this.rendered = true;
|
|
521
535
|
this.enableAnimation();
|
|
522
|
-
this.afterRenderRef?.destroy();
|
|
523
536
|
});
|
|
524
537
|
}
|
|
538
|
+
ngDoCheck() {
|
|
539
|
+
// The item cannot reach content declared in a child component's template to toggle it.
|
|
540
|
+
if (this.hidden() === this.item.expanded) {
|
|
541
|
+
this.toggle();
|
|
542
|
+
}
|
|
543
|
+
}
|
|
525
544
|
ngAfterViewInit() {
|
|
545
|
+
// Skipped on the server: the write would reach the prerendered `style` attribute, and hydration
|
|
546
|
+
// reuses that node, so the client would read `none` back as the transition worth restoring and
|
|
547
|
+
// `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.
|
|
548
|
+
if (!this.platform.isBrowser)
|
|
549
|
+
return;
|
|
526
550
|
this.disableAnimation();
|
|
527
551
|
}
|
|
528
552
|
ngAfterContentInit() {
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
const { height, width } = this.nativeElement.getBoundingClientRect();
|
|
532
|
-
this.renderer.setProperty(this.nativeElement, 'style', `
|
|
533
|
-
--radix-accordion-content-height: ${height}px;
|
|
534
|
-
--radix-accordion-content-width: ${width}px;
|
|
535
|
-
`);
|
|
553
|
+
// The item may have been expanded before it could reach this directive, e.g. by `[expanded]="true"`.
|
|
554
|
+
this.hidden.set(!this.item.expanded);
|
|
536
555
|
}
|
|
537
556
|
toggle() {
|
|
557
|
+
if (this.rendered) {
|
|
558
|
+
this.pinHeight();
|
|
559
|
+
}
|
|
538
560
|
this.hidden.set(!this.item.expanded);
|
|
539
561
|
}
|
|
562
|
+
/** @docs-private */
|
|
563
|
+
onTransitionEnd(event) {
|
|
564
|
+
// Transitions of the projected content and of pseudo-elements bubble up here as well.
|
|
565
|
+
if (event.target !== this.nativeElement || event.propertyName !== 'height' || event.pseudoElement)
|
|
566
|
+
return;
|
|
567
|
+
// The transition that ended or was cancelled may already be replaced by one that still needs the pin.
|
|
568
|
+
if (!this.isHeightTransitionRunning()) {
|
|
569
|
+
this.releaseHeight();
|
|
570
|
+
}
|
|
571
|
+
}
|
|
540
572
|
disableAnimation() {
|
|
541
573
|
this.savedTransition = this.nativeElement.style.transition;
|
|
542
574
|
this.nativeElement.style.transition = 'none';
|
|
@@ -544,8 +576,63 @@ class KbqAccordionContentDirective {
|
|
|
544
576
|
enableAnimation() {
|
|
545
577
|
this.nativeElement.style.transition = this.savedTransition;
|
|
546
578
|
}
|
|
579
|
+
/**
|
|
580
|
+
* Pins the height the transition runs between: the natural height of the content when expanding,
|
|
581
|
+
* the current one when collapsing. The pin is released once the transition ends, so expanded
|
|
582
|
+
* content keeps `height: auto` and follows its own size — its container can be laid out later
|
|
583
|
+
* (a content panel, an overlay) or resized, and nested items can toggle.
|
|
584
|
+
*
|
|
585
|
+
* `scrollHeight` reports the natural height even while the `overflow: hidden` host is collapsed.
|
|
586
|
+
*/
|
|
587
|
+
pinHeight() {
|
|
588
|
+
const element = this.nativeElement;
|
|
589
|
+
// No transition would release the pin.
|
|
590
|
+
if (element.style.transition === 'none') {
|
|
591
|
+
this.releaseHeight();
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
const expanded = this.item.expanded;
|
|
595
|
+
const current = element.offsetHeight;
|
|
596
|
+
const target = expanded ? element.scrollHeight : 0;
|
|
597
|
+
// Nothing to animate: no box yet (e.g. in a closed content panel), or already there.
|
|
598
|
+
if (current === target) {
|
|
599
|
+
this.releaseHeight();
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
this.setHeight(expanded ? target : current);
|
|
603
|
+
// A collapse starts from `auto`, which does not transition: commit the pinned height before
|
|
604
|
+
// `data-state` flips.
|
|
605
|
+
if (!expanded) {
|
|
606
|
+
element.getBoundingClientRect();
|
|
607
|
+
}
|
|
608
|
+
afterNextRender(() => this.settleHeight(), { injector: this.injector });
|
|
609
|
+
}
|
|
610
|
+
/** Checks the pin once `data-state` has flipped. */
|
|
611
|
+
settleHeight() {
|
|
612
|
+
const running = this.isHeightTransitionRunning();
|
|
613
|
+
if (running === false) {
|
|
614
|
+
// Transitions are off (a stylesheet, reduced motion), so no `transitionend` will release the pin.
|
|
615
|
+
this.releaseHeight();
|
|
616
|
+
}
|
|
617
|
+
else if (this.item.expanded) {
|
|
618
|
+
// Content rendered by the flip itself (`@if`, `@defer`) was not there to measure: retarget.
|
|
619
|
+
this.setHeight(this.nativeElement.scrollHeight);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
/** Whether a height transition runs on the host; `undefined` without the Web Animations API. */
|
|
623
|
+
isHeightTransitionRunning() {
|
|
624
|
+
return this.nativeElement
|
|
625
|
+
.getAnimations?.()
|
|
626
|
+
.some((animation) => animation.transitionProperty === 'height');
|
|
627
|
+
}
|
|
628
|
+
setHeight(height) {
|
|
629
|
+
this.renderer.setStyle(this.nativeElement, CONTENT_HEIGHT, `${height}px`, RendererStyleFlags2.DashCase);
|
|
630
|
+
}
|
|
631
|
+
releaseHeight() {
|
|
632
|
+
this.renderer.removeStyle(this.nativeElement, CONTENT_HEIGHT, RendererStyleFlags2.DashCase);
|
|
633
|
+
}
|
|
547
634
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqAccordionContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
548
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqAccordionContentDirective, isStandalone: true, selector: "[kbqAccordionContent]", host: { listeners: { "transitionend": "
|
|
635
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqAccordionContentDirective, isStandalone: true, selector: "[kbqAccordionContent]", host: { listeners: { "transitionend": "onTransitionEnd($event)", "transitioncancel": "onTransitionEnd($event)" }, properties: { "attr.id": "contentId", "attr.role": "\"region\"", "attr.hidden": "hidden() ? \"\" : null", "attr.aria-labelledby": "triggerId", "attr.data-state": "item.dataState", "attr.data-disabled": "item.disabled", "attr.data-orientation": "item.orientation" } }, exportAs: ["kbqAccordionContent"], ngImport: i0 }); }
|
|
549
636
|
}
|
|
550
637
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqAccordionContentDirective, decorators: [{
|
|
551
638
|
type: Directive,
|
|
@@ -560,7 +647,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
560
647
|
'[attr.data-state]': 'item.dataState',
|
|
561
648
|
'[attr.data-disabled]': 'item.disabled',
|
|
562
649
|
'[attr.data-orientation]': 'item.orientation',
|
|
563
|
-
'(transitionend)': '
|
|
650
|
+
'(transitionend)': 'onTransitionEnd($event)',
|
|
651
|
+
'(transitioncancel)': 'onTransitionEnd($event)'
|
|
564
652
|
}
|
|
565
653
|
}]
|
|
566
654
|
}], ctorParameters: () => [] });
|
|
@@ -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 EventEmitter,\n forwardRef,\n HostAttributeToken,\n inject,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\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 encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-accordion',\n '[attr.data-orientation]': 'orientation',\n '(keydown)': 'keydownHandler($event)'\n },\n providers: [\n { provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }\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 @ContentChildren(forwardRef(() => KbqAccordionItem), { descendants: true })\n items: QueryList<KbqAccordionItem>;\n\n /** Specifies whether the accordion saves its states. Default is false */\n useStateSaving: boolean = inject(new HostAttributeToken('useStateSaving'), { optional: true }) !== null;\n\n @Input() variant: KbqAccordionVariant | string = KbqAccordionVariant.fill;\n\n /** Whether the Accordion is disabled. */\n @Input({ transform: booleanAttribute }) disabled: boolean;\n\n /** The orientation of the accordion. */\n @Input() orientation: 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 @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 @Input() type: KbqAccordionType = 'single';\n\n @Input() collapsible = true;\n\n /** The controlled value of the item to expand */\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 @Output() readonly onValueChange: EventEmitter<void> = new EventEmitter<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(...this.items.map((item) => item.expandedChange)).subscribe(() =>\n this.onValueChange.emit()\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.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 hostDirectives: [KbqAccordionTriggerDirective],\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})\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 @ViewChild(KbqIcon) icon: 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\n/** @deprecated Use KbqAccordionItemState instead. */\nexport type RdxAccordionItemState = 'open' | 'closed';\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 @ContentChild(KbqAccordionTriggerDirective, { descendants: true }) trigger: KbqAccordionTriggerDirective;\n /** @docs-private */\n @ContentChild(KbqAccordionTrigger, { descendants: true }) triggerComponent: KbqAccordionTrigger;\n\n /** @docs-private */\n @ContentChild(forwardRef(() => KbqAccordionContentDirective), { descendants: true })\n content: 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 @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 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 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 @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 @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 @Output() readonly closed: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted every time the AccordionItem is opened. */\n @Output() readonly opened: EventEmitter<void> = new EventEmitter<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 @Output() readonly expandedChange: EventEmitter<boolean> = new EventEmitter<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.opened.complete();\n this.closed.complete();\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 exportAs: '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})\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 hostDirectives: [KbqAccordionContentDirective],\n template: `\n <p><ng-content /></p>\n `,\n host: {\n class: 'kbq-accordion-content'\n }\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 hostDirectives: [KbqAccordionHeaderDirective],\n host: {\n class: 'kbq-accordion-header'\n }\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":"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"}
|
|
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 EventEmitter,\n forwardRef,\n HostAttributeToken,\n inject,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\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 encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-accordion',\n '[attr.data-orientation]': 'orientation',\n '(keydown)': 'keydownHandler($event)'\n },\n providers: [\n { provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }\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 @ContentChildren(forwardRef(() => KbqAccordionItem), { descendants: true })\n items: QueryList<KbqAccordionItem>;\n\n /** Specifies whether the accordion saves its states. Default is false */\n useStateSaving: boolean = inject(new HostAttributeToken('useStateSaving'), { optional: true }) !== null;\n\n @Input() variant: KbqAccordionVariant | string = KbqAccordionVariant.fill;\n\n /** Whether the Accordion is disabled. */\n @Input({ transform: booleanAttribute }) disabled: boolean;\n\n /** The orientation of the accordion. */\n @Input() orientation: 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 @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 @Input() type: KbqAccordionType = 'single';\n\n @Input() collapsible = true;\n\n /** The controlled value of the item to expand */\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 @Output() readonly onValueChange: EventEmitter<void> = new EventEmitter<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 if (this._defaultValue.length) {\n // An empty default would collapse items expanded by their own `[expanded]` input.\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(...this.items.map((item) => item.expandedChange)).subscribe(() =>\n this.onValueChange.emit()\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.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 { Platform } from '@angular/cdk/platform';\nimport {\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 hostDirectives: [KbqAccordionTriggerDirective],\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})\nexport class KbqAccordionTrigger implements AfterViewInit {\n private readonly platform = inject(Platform);\n\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly accordion: KbqAccordion = inject(KbqAccordion);\n\n /** @docs-private */\n @ViewChild(KbqIcon) icon: 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 // Skipped on the server: the write would reach the prerendered `style` attribute, and hydration\n // reuses that node, so the client would read `none` back as the transition worth restoring and\n // `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.\n if (!this.platform.isBrowser) return;\n\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\n/** @deprecated Use KbqAccordionItemState instead. */\nexport type RdxAccordionItemState = 'open' | 'closed';\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 @ContentChild(KbqAccordionTriggerDirective, { descendants: true }) trigger: KbqAccordionTriggerDirective;\n /** @docs-private */\n @ContentChild(KbqAccordionTrigger, { descendants: true }) triggerComponent: KbqAccordionTrigger;\n\n /** @docs-private */\n @ContentChild(forwardRef(() => KbqAccordionContentDirective), { descendants: true })\n content: 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 @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\n // First: a handler below may run change detection, and the content pins its height before\n // `data-state` flips. Unresolved while an initial input is set; the content syncs itself on init.\n this.content?.toggle();\n\n this.expandedChange.emit(expanded);\n\n if (expanded) {\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 this.closed.emit();\n }\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 @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 @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 @Output() readonly closed: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted every time the AccordionItem is opened. */\n @Output() readonly opened: EventEmitter<void> = new EventEmitter<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 @Output() readonly expandedChange: EventEmitter<boolean> = new EventEmitter<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.opened.complete();\n this.closed.complete();\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 AfterViewInit,\n Directive,\n DoCheck,\n inject,\n Injector,\n Renderer2,\n RendererStyleFlags2,\n signal\n} from '@angular/core';\nimport { kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqAccordionItem } from './accordion-item';\n\nconst CONTENT_HEIGHT = '--radix-accordion-content-height';\n\n@Directive({\n selector: '[kbqAccordionContent]',\n exportAs: '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)': 'onTransitionEnd($event)',\n '(transitioncancel)': 'onTransitionEnd($event)'\n }\n})\nexport class KbqAccordionContentDirective implements AfterContentInit, DoCheck, AfterViewInit {\n private readonly renderer: Renderer2 = inject(Renderer2);\n private readonly injector = inject(Injector);\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\n /** Whether the first browser render has happened; until then a toggle only sets the initial state. */\n private rendered = false;\n\n constructor() {\n afterNextRender(() => {\n this.rendered = true;\n\n this.enableAnimation();\n });\n }\n\n ngDoCheck(): void {\n // The item cannot reach content declared in a child component's template to toggle it.\n if (this.hidden() === this.item.expanded) {\n this.toggle();\n }\n }\n\n ngAfterViewInit(): void {\n // Skipped on the server: the write would reach the prerendered `style` attribute, and hydration\n // reuses that node, so the client would read `none` back as the transition worth restoring and\n // `enableAnimation()` would make it permanent. There is nothing to suppress without a paint.\n if (!this.platform.isBrowser) return;\n\n this.disableAnimation();\n }\n\n ngAfterContentInit(): void {\n // The item may have been expanded before it could reach this directive, e.g. by `[expanded]=\"true\"`.\n this.hidden.set(!this.item.expanded);\n }\n\n toggle() {\n if (this.rendered) {\n this.pinHeight();\n }\n\n this.hidden.set(!this.item.expanded);\n }\n\n /** @docs-private */\n protected onTransitionEnd(event: TransitionEvent): void {\n // Transitions of the projected content and of pseudo-elements bubble up here as well.\n if (event.target !== this.nativeElement || event.propertyName !== 'height' || event.pseudoElement) return;\n\n // The transition that ended or was cancelled may already be replaced by one that still needs the pin.\n if (!this.isHeightTransitionRunning()) {\n this.releaseHeight();\n }\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 * Pins the height the transition runs between: the natural height of the content when expanding,\n * the current one when collapsing. The pin is released once the transition ends, so expanded\n * content keeps `height: auto` and follows its own size — its container can be laid out later\n * (a content panel, an overlay) or resized, and nested items can toggle.\n *\n * `scrollHeight` reports the natural height even while the `overflow: hidden` host is collapsed.\n */\n private pinHeight(): void {\n const element = this.nativeElement;\n\n // No transition would release the pin.\n if (element.style.transition === 'none') {\n this.releaseHeight();\n\n return;\n }\n\n const expanded = this.item.expanded;\n const current = element.offsetHeight;\n const target = expanded ? element.scrollHeight : 0;\n\n // Nothing to animate: no box yet (e.g. in a closed content panel), or already there.\n if (current === target) {\n this.releaseHeight();\n\n return;\n }\n\n this.setHeight(expanded ? target : current);\n\n // A collapse starts from `auto`, which does not transition: commit the pinned height before\n // `data-state` flips.\n if (!expanded) {\n element.getBoundingClientRect();\n }\n\n afterNextRender(() => this.settleHeight(), { injector: this.injector });\n }\n\n /** Checks the pin once `data-state` has flipped. */\n private settleHeight(): void {\n const running = this.isHeightTransitionRunning();\n\n if (running === false) {\n // Transitions are off (a stylesheet, reduced motion), so no `transitionend` will release the pin.\n this.releaseHeight();\n } else if (this.item.expanded) {\n // Content rendered by the flip itself (`@if`, `@defer`) was not there to measure: retarget.\n this.setHeight(this.nativeElement.scrollHeight);\n }\n }\n\n /** Whether a height transition runs on the host; `undefined` without the Web Animations API. */\n private isHeightTransitionRunning(): boolean | undefined {\n return this.nativeElement\n .getAnimations?.()\n .some((animation) => (animation as CSSTransition).transitionProperty === 'height');\n }\n\n private setHeight(height: number): void {\n this.renderer.setStyle(this.nativeElement, CONTENT_HEIGHT, `${height}px`, RendererStyleFlags2.DashCase);\n }\n\n private releaseHeight(): void {\n this.renderer.removeStyle(this.nativeElement, CONTENT_HEIGHT, RendererStyleFlags2.DashCase);\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 hostDirectives: [KbqAccordionContentDirective],\n template: `\n <p><ng-content /></p>\n `,\n host: {\n class: 'kbq-accordion-content'\n }\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 hostDirectives: [KbqAccordionHeaderDirective],\n host: {\n class: 'kbq-accordion-header'\n }\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;AAiCrB;;AAEG;AACH,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;;AAQA,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,KAAK,UAAU;IACnC;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;AA5FiB,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;;AAOrD,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,GAAiC,mBAAmB,CAAC,IAAI;;QAMhE,IAAA,CAAA,WAAW,GAA4B,UAAU;;QAiBjD,IAAA,CAAA,IAAI,GAAqB,QAAQ;QAEjC,IAAA,CAAA,WAAW,GAAG,IAAI;AAoBR,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAI,YAAY,EAAQ;QAevE,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,aAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;;AAElC,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,CAAC,CAAC,cAAc,EAAE;AAElE,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;AACnC,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,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,MAC/F,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAC5B;IACL;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,CAAC,MAAM,GAAG,CAAC;gBAAE;AAE/D,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;kIAvMS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EA4BD,gBAAgB,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,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,aAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAhCzB;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,MAqBiC,gBAAgB,iDAhCxC,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4iGAAA,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,aAAA,EAEX,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACF,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,yBAAyB,EAAE,aAAa;AACxC,wBAAA,WAAW,EAAE;qBAChB,EAAA,SAAA,EACU;AACP,wBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,yBAAyB;AAC5E,qBAAA,EAAA,MAAA,EAAA,CAAA,4iGAAA,EAAA,83BAAA,CAAA,EAAA;wDAsBD,KAAK,EAAA,CAAA;sBADJ,eAAe;uBAAC,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAMjE,OAAO,EAAA,CAAA;sBAAf;gBAGuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAG7B,WAAW,EAAA,CAAA;sBAAnB;gBAMG,YAAY,EAAA,CAAA;sBADf;gBAYQ,IAAI,EAAA,CAAA;sBAAZ;gBAEQ,WAAW,EAAA,CAAA;sBAAnB;gBAIG,KAAK,EAAA,CAAA;sBADR;gBAiBkB,aAAa,EAAA,CAAA;sBAA/B;;;MChHQ,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;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;AAEvD,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;;;MCkBY,mBAAmB,CAAA;AAc5B,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,mBAAmB,CAAC,IAAI;IAC9D;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,mBAAmB,CAAC,GAAG;IAC7D;AAEA,IAAA,IAAI,iBAAiB,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,mBAAmB,CAAC,eAAe;IACzE;AAEA,IAAA,WAAA,GAAA;AAzBiB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;QAGzB,IAAA,CAAA,aAAa,GAAG,sBAAsB,EAAE;;AAExC,QAAA,IAAA,CAAA,SAAS,GAAiB,MAAM,CAAC,YAAY,CAAC;AAqB7D,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;;;;AAIX,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE;QAE9B,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;QAE1E,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;IACxD;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;IACtE;kIAnDS,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,EASjB,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,4BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3BR;;;;;;;AAOT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yzDAAA,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;;;;;;;AAOT,IAAA,CAAA,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,kBACrB,CAAC,4BAA4B,CAAC,EAAA,IAAA,EACxC;AACF,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,oCAAoC,EAAE,QAAQ;AAC9C,wBAAA,mCAAmC,EAAE,OAAO;AAC5C,wBAAA,iDAAiD,EAAE;AACtD,qBAAA,EAAA,MAAA,EAAA,CAAA,yzDAAA,EAAA,83BAAA,CAAA,EAAA;wDAWmB,IAAI,EAAA,CAAA;sBAAvB,SAAS;uBAAC,OAAO;;;AC1BtB,IAAI,eAAe,GAAW,CAAC;MAgBlB,gBAAgB,CAAA;;AAkBzB,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;IACrC;;AAGA,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;;;AAIzB,YAAA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AAEtB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;YAElC,IAAI,QAAQ,EAAE;AACV,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;AACH,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB;AAEA,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;;;AAIlC,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACzC;IACJ;IAIA,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;;AAKA,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS;IACpD;IAEA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IAC1B;AA4BA,IAAA,WAAA,GAAA;;AArHmB,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;AAgBlE,QAAA,IAAA,CAAA,GAAG,GAAG,CAAA,mBAAA,EAAsB,eAAe,EAAE,EAAE;QAgD/C,IAAA,CAAA,SAAS,GAAG,KAAK;QAuBjB,IAAA,CAAA,SAAS,GAAG,KAAK;;AAGN,QAAA,IAAA,CAAA,MAAM,GAAuB,IAAI,YAAY,EAAQ;;AAErD,QAAA,IAAA,CAAA,MAAM,GAAuB,IAAI,YAAY,EAAQ;AAExE;;;AAGG;AACM,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ;AAEjE;;;;AAIG;AACgB,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW;;AAM9E,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,MAAM,CAAC,QAAQ,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACtB,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,CAAC,KAAK,EAAE;IACxB;;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,CAAC,gBAAgB,EAAE;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;IAC5C;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AAC9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;IAC3C;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;kIArMS,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,EAiCL,gBAAgB,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAmDhB,gBAAgB,+TA3EtB,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE5B,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAGF,4BAA4B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAdlD,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;wDAUsE,OAAO,EAAA,CAAA;sBAAzE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,4BAA4B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAEP,gBAAgB,EAAA,CAAA;sBAAzE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAIxD,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,UAAU,CAAC,MAAM,4BAA4B,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAoB/E,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAwClC,KAAK,EAAA,CAAA;sBADR;gBAaG,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAYnB,MAAM,EAAA,CAAA;sBAAxB;gBAEkB,MAAM,EAAA,CAAA;sBAAxB;gBAakB,cAAc,EAAA,CAAA;sBAAhC;;;AClIL,MAAM,cAAc,GAAG,kCAAkC;MAmB5C,4BAA4B,CAAA;;AAWrC,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;AAUA,IAAA,WAAA,GAAA;AA3BiB,QAAA,IAAA,CAAA,QAAQ,GAAc,MAAM,CAAC,SAAS,CAAC;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,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,CAAC;;QAKzC,IAAA,CAAA,QAAQ,GAAG,KAAK;QAGpB,eAAe,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YAEpB,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAA,CAAC,CAAC;IACN;IAEA,SAAS,GAAA;;QAEL,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,MAAM,EAAE;QACjB;IACJ;IAEA,eAAe,GAAA;;;;AAIX,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE;QAE9B,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEA,kBAAkB,GAAA;;AAEd,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,SAAS,EAAE;QACpB;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC;;AAGU,IAAA,eAAe,CAAC,KAAsB,EAAA;;AAE5C,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa;YAAE;;AAGnG,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;YACnC,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;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;AAEA;;;;;;;AAOG;IACK,SAAS,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;;QAGlC,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE;YACrC,IAAI,CAAC,aAAa,EAAE;YAEpB;QACJ;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AACnC,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY;AACpC,QAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,CAAC;;AAGlD,QAAA,IAAI,OAAO,KAAK,MAAM,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YAEpB;QACJ;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;;;QAI3C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,qBAAqB,EAAE;QACnC;AAEA,QAAA,eAAe,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3E;;IAGQ,YAAY,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,EAAE;AAEhD,QAAA,IAAI,OAAO,KAAK,KAAK,EAAE;;YAEnB,IAAI,CAAC,aAAa,EAAE;QACxB;AAAO,aAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;YAE3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;QACnD;IACJ;;IAGQ,yBAAyB,GAAA;QAC7B,OAAO,IAAI,CAAC;AACP,aAAA,aAAa;AACb,aAAA,IAAI,CAAC,CAAC,SAAS,KAAM,SAA2B,CAAC,kBAAkB,KAAK,QAAQ,CAAC;IAC1F;AAEQ,IAAA,SAAS,CAAC,MAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAC3G;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAC/F;kIAxJS,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,yBAAA,EAAA,kBAAA,EAAA,yBAAA,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;kBAjBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,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,yBAAyB;AAC5C,wBAAA,oBAAoB,EAAE;AACzB;AACJ,iBAAA;;;MCrBY,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,EAPlB;;AAET,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAKQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAV/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gDAAgD;oBAC1D,cAAc,EAAE,CAAC,4BAA4B,CAAC;AAC9C,oBAAA,QAAQ,EAAE;;AAET,IAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV;AACJ,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;oBACxD,cAAc,EAAE,CAAC,2BAA2B,CAAC;AAC7C,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV;AACJ,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;;;;"}
|