{"version":3,"file":"koobiq-components-toggle.mjs","sources":["../../../packages/components/toggle/toggle.component.ts","../../../packages/components/toggle/toggle.component.html","../../../packages/components/toggle/toggle.module.ts","../../../packages/components/toggle/koobiq-components-toggle.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    inject,\n    Input,\n    numberAttribute,\n    OnDestroy,\n    Output,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KBQ_CHECKBOX_CLICK_ACTION, KbqCheckboxClickAction, TransitionCheckState } from '@koobiq/components/checkbox';\nimport { KbqAnimationCurves, KbqAnimationDurations, KbqCheckedState, KbqColorDirective } from '@koobiq/components/core';\n\nlet nextUniqueId = 0;\n\ntype ToggleLabelPositionType = 'left' | 'right';\n\nexport class KbqToggleChange {\n    source: KbqToggleComponent;\n    checked: boolean;\n}\n\n@Component({\n    selector: 'kbq-toggle',\n    imports: [\n        CdkObserveContent\n    ],\n    templateUrl: './toggle.component.html',\n    styleUrls: ['./toggle.scss', './toggle-tokens.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: 'kbqToggle',\n    host: {\n        class: 'kbq-toggle',\n        '[class.kbq-toggle_big]': 'big',\n        '[id]': 'id',\n        '[attr.id]': 'id',\n        '[class.kbq-disabled]': 'disabled || loading',\n        '[class.kbq-active]': 'checked',\n        '[class.kbq-indeterminate]': 'indeterminate'\n    },\n    animations: [\n        trigger('switch', [\n            state(TransitionCheckState.Init, style({ left: '3px' })),\n            state(TransitionCheckState.Unchecked, style({ left: '3px' })),\n            state(TransitionCheckState.Indeterminate, style({ left: '10px', visibility: 'hidden' })),\n            state(TransitionCheckState.Checked, style({ left: 'calc(100% - 11px)' })),\n            transition(\n                `${TransitionCheckState.Init} => ${TransitionCheckState.Checked}`,\n                animate(KbqAnimationDurations.Entering)\n            ),\n            transition(\n                `${TransitionCheckState.Checked} <=> ${TransitionCheckState.Unchecked}`,\n                animate(KbqAnimationDurations.Rapid)\n            ),\n            transition(\n                `${TransitionCheckState.Indeterminate} => *`,\n                animate(`${KbqAnimationDurations.Instant} ${KbqAnimationCurves.EaseInOut}`)\n            )\n        ])\n    ],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => KbqToggleComponent),\n            multi: true\n        }\n    ]\n})\nexport class KbqToggleComponent extends KbqColorDirective implements AfterViewInit, ControlValueAccessor, OnDestroy {\n    @Input() big: boolean = false;\n\n    @ViewChild('input', { static: false }) inputElement: ElementRef<HTMLInputElement>;\n\n    @Input() labelPosition: ToggleLabelPositionType = 'right';\n\n    @Input('aria-label') ariaLabel: string = '';\n    @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n    @Input() id: string;\n\n    get inputId(): string {\n        return `${this.id || this.uniqueId}-input`;\n    }\n\n    @Input() name: string | null = null;\n\n    @Input() value: string;\n\n    @Input()\n    get disabled() {\n        return this._disabled;\n    }\n\n    set disabled(value: any) {\n        if (value !== this._disabled) {\n            this._disabled = value;\n            this.changeDetectorRef.markForCheck();\n        }\n    }\n\n    private _disabled: boolean = false;\n\n    @Input({ transform: numberAttribute })\n    get tabIndex(): number {\n        return this.disabled ? -1 : this._tabIndex;\n    }\n\n    set tabIndex(value: number) {\n        this._tabIndex = value;\n    }\n\n    private _tabIndex = 0;\n\n    get checked() {\n        return this._checked;\n    }\n\n    @Input()\n    set checked(value: boolean) {\n        if (value !== this._checked) {\n            this._checked = value;\n            this.setTransitionCheckState();\n            this.changeDetectorRef.markForCheck();\n        }\n    }\n\n    private _checked: boolean = false;\n\n    /**\n     * Whether the toggle is indeterminate. This is also known as \"mixed\" mode and can be used to\n     * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n     * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n     * set to false.\n     */\n    @Input({ transform: booleanAttribute })\n    get indeterminate(): boolean {\n        return this._indeterminate;\n    }\n\n    set indeterminate(value: boolean) {\n        const changed = value !== this._indeterminate;\n\n        this._indeterminate = value;\n\n        if (changed) {\n            this.setTransitionCheckState();\n            this.indeterminateChange.emit(this._indeterminate);\n        }\n    }\n\n    private _indeterminate: boolean = false;\n    /**\n     * Property for manually set loading state.\n     */\n    @Input({ transform: booleanAttribute }) loading: boolean = false;\n\n    @Output() readonly change: EventEmitter<KbqToggleChange> = new EventEmitter<KbqToggleChange>();\n\n    /** Event emitted when the toggle's `indeterminate` value changes. */\n    @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n    /** @docs-private */\n    protected currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n\n    /** Defines the behavior when a user clicks on the toggle. */\n    @Input() clickAction: KbqCheckboxClickAction = inject(KBQ_CHECKBOX_CLICK_ACTION, { optional: true }) || undefined;\n\n    private uniqueId: string = `kbq-toggle-${++nextUniqueId}`;\n\n    constructor(\n        private focusMonitor: FocusMonitor,\n        private changeDetectorRef: ChangeDetectorRef\n    ) {\n        super();\n\n        this.id = this.uniqueId;\n    }\n\n    ngAfterViewInit(): void {\n        this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n    }\n\n    ngOnDestroy() {\n        this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n    }\n\n    focus(): void {\n        this.focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n    }\n\n    getAriaChecked(): KbqCheckedState {\n        return this.checked ? 'true' : this.indeterminate ? 'mixed' : 'false';\n    }\n\n    onChangeEvent(event: Event) {\n        event.stopPropagation();\n    }\n\n    onLabelTextChange() {\n        this.changeDetectorRef.markForCheck();\n    }\n\n    onInputClick(event: MouseEvent) {\n        if (this.loading) return;\n        // We have to stop propagation for click events on the visual hidden input element.\n        // By default, when a user clicks on a label element, a generated click event will be\n        // dispatched on the associated input element. Since we are using a label element as our\n        // root container, the click event on the `toggle` will be executed twice.\n        // The real click event will bubble up, and the generated click event also tries to bubble up.\n        // This will lead to multiple click events.\n        // Preventing bubbling for the second event will solve that issue.\n        event.stopPropagation();\n\n        if (!this.disabled && this.clickAction !== 'noop') {\n            // When user manually click on the toggle, `indeterminate` is set to false.\n            if (this.indeterminate && this.clickAction !== 'check') {\n                Promise.resolve().then(() => {\n                    this._indeterminate = false;\n                    this.indeterminateChange.emit(this._indeterminate);\n                });\n            }\n\n            this._checked = !this.checked;\n            this.onTouchedCallback();\n            this.transitionCheckState(this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n            // Emit our custom change event if the native input emitted one.\n            // It is important to only emit it, if the native input triggered one, because\n            // we don't want to trigger a change event, when the `checked` variable changes for example.\n            this.emitChangeEvent();\n        } else if (!this.disabled && this.clickAction === 'noop') {\n            // Reset native input when clicked with noop. The native checkbox becomes checked after\n            // click, reset it to be align with `checked` value of `kbq-toggle`.\n            this.inputElement.nativeElement.checked = this.checked;\n            this.inputElement.nativeElement.indeterminate = this.indeterminate;\n        }\n    }\n\n    writeValue(value: any) {\n        this.checked = !!value;\n    }\n\n    registerOnChange(fn: any) {\n        this.onChangeCallback = fn;\n    }\n\n    registerOnTouched(fn: any) {\n        this.onTouchedCallback = fn;\n    }\n\n    setDisabledState(isDisabled: boolean) {\n        this.disabled = isDisabled;\n    }\n\n    private setTransitionCheckState() {\n        if (this.indeterminate) {\n            this.transitionCheckState(TransitionCheckState.Indeterminate);\n        } else {\n            this.transitionCheckState(this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n        }\n    }\n\n    private onTouchedCallback = () => {};\n\n    private onChangeCallback = (_: any) => {};\n\n    private transitionCheckState(newState: TransitionCheckState) {\n        const oldState = this.currentCheckState;\n\n        if (oldState === newState) return;\n\n        this.currentCheckState = newState;\n    }\n\n    private emitChangeEvent() {\n        const event = new KbqToggleChange();\n\n        event.source = this;\n        event.checked = this.checked;\n\n        this.onChangeCallback(this.checked);\n        this.change.emit(event);\n    }\n}\n","<label class=\"kbq-toggle-layout\" [attr.for]=\"inputId\" [class.kbq-toggle-layout_left]=\"labelPosition === 'left'\">\n    <input\n        #input\n        role=\"switch\"\n        type=\"checkbox\"\n        class=\"kbq-toggle-input cdk-visually-hidden\"\n        [attr.aria-checked]=\"getAriaChecked()\"\n        [attr.aria-label]=\"ariaLabel || null\"\n        [attr.aria-labelledby]=\"ariaLabelledby\"\n        [attr.name]=\"name\"\n        [attr.value]=\"value\"\n        [checked]=\"checked\"\n        [disabled]=\"disabled\"\n        [id]=\"inputId\"\n        [indeterminate]=\"indeterminate\"\n        [tabIndex]=\"tabIndex\"\n        (change)=\"onChangeEvent($event)\"\n        (click)=\"onInputClick($event)\"\n        (keydown.enter)=\"input.click()\"\n    />\n    <div class=\"kbq-toggle-bar-container\">\n        <div class=\"kbq-toggle-bar\" [class.kbq-progress]=\"loading\">\n            <div class=\"kbq-toggle__circle\" [@switch]=\"currentCheckState\"></div>\n            <div class=\"kbq-toggle__thumb\"></div>\n        </div>\n    </div>\n\n    <div\n        class=\"kbq-toggle__content\"\n        [class.kbq-toggle__content_left]=\"labelPosition === 'left'\"\n        [class.kbq-toggle__content_right]=\"labelPosition === 'right'\"\n    >\n        <span class=\"kbq-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n            <ng-content />\n        </span>\n\n        <ng-content select=\"kbq-hint\" />\n    </div>\n</label>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqToggleComponent } from './toggle.component';\n\n@NgModule({\n    imports: [A11yModule, KbqToggleComponent],\n    exports: [KbqToggleComponent]\n})\nexport class KbqToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAwBA,IAAI,YAAY,GAAG,CAAC;MAIP,eAAe,CAAA;AAG3B;AAiDK,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AAYrD,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,CAAA,EAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAA,MAAA,CAAQ;IAC9C;AAMA,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAI,QAAQ,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACzC;IACJ;AAIA,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS;IAC9C;IAEA,IAAI,QAAQ,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IAC1B;AAIA,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IACI,OAAO,CAAC,KAAc,EAAA;AACtB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACrB,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACzC;IACJ;AAIA;;;;;AAKG;AACH,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAI,aAAa,CAAC,KAAc,EAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,cAAc;AAE7C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAE3B,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QACtD;IACJ;IAqBA,WAAA,CACY,YAA0B,EAC1B,iBAAoC,EAAA;AAE5C,QAAA,KAAK,EAAE;QAHC,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QAtGpB,IAAA,CAAA,GAAG,GAAY,KAAK;QAIpB,IAAA,CAAA,aAAa,GAA4B,OAAO;QAEpC,IAAA,CAAA,SAAS,GAAW,EAAE;QACjB,IAAA,CAAA,cAAc,GAAkB,IAAI;QAQrD,IAAA,CAAA,IAAI,GAAkB,IAAI;QAgB3B,IAAA,CAAA,SAAS,GAAY,KAAK;QAW1B,IAAA,CAAA,SAAS,GAAG,CAAC;QAeb,IAAA,CAAA,QAAQ,GAAY,KAAK;QAwBzB,IAAA,CAAA,cAAc,GAAY,KAAK;AACvC;;AAEG;QACqC,IAAA,CAAA,OAAO,GAAY,KAAK;AAE7C,QAAA,IAAA,CAAA,MAAM,GAAkC,IAAI,YAAY,EAAmB;;AAG3E,QAAA,IAAA,CAAA,mBAAmB,GAA0B,IAAI,YAAY,EAAW;;AAGjF,QAAA,IAAA,CAAA,iBAAiB,GAAyB,oBAAoB,CAAC,IAAI;;AAGpE,QAAA,IAAA,CAAA,WAAW,GAA2B,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS;AAEzG,QAAA,IAAA,CAAA,QAAQ,GAAW,CAAA,WAAA,EAAc,EAAE,YAAY,EAAE;AA8FjD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAK,EAAE,CAAC;AAE5B,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAM,KAAI,EAAE,CAAC;AAxFrC,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ;IAC3B;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC;IAClE;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACnE;IAEA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC;IAC3E;IAEA,cAAc,GAAA;QACV,OAAO,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,GAAG,OAAO;IACzE;AAEA,IAAA,aAAa,CAAC,KAAY,EAAA;QACtB,KAAK,CAAC,eAAe,EAAE;IAC3B;IAEA,iBAAiB,GAAA;AACb,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;IACzC;AAEA,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC1B,IAAI,IAAI,CAAC,OAAO;YAAE;;;;;;;;QAQlB,KAAK,CAAC,eAAe,EAAE;QAEvB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;;YAE/C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;AACpD,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;oBAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AACtD,gBAAA,CAAC,CAAC;YACN;AAEA,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO;YAC7B,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC;;;;YAIxG,IAAI,CAAC,eAAe,EAAE;QAC1B;aAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;;;YAGtD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;YACtD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;QACtE;IACJ;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK;IAC1B;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC9B;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC/B;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;IAC9B;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,aAAa,CAAC;QACjE;aAAO;AACH,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC;QAC3G;IACJ;AAMQ,IAAA,oBAAoB,CAAC,QAA8B,EAAA;AACvD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB;QAEvC,IAAI,QAAQ,KAAK,QAAQ;YAAE;AAE3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ;IACrC;IAEQ,eAAe,GAAA;AACnB,QAAA,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE;AAEnC,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI;AACnB,QAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAE5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;kIArNS,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,oSAkCP,eAAe,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAgCf,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAoBhB,gBAAgB,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EA9FzB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,EAAC,MAAM,kBAAkB,EAAC;AACjD,gBAAA,KAAK,EAAE;AACV;SACJ,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9EL,q7CAuCA,EAAA,MAAA,EAAA,CAAA,gpYAAA,EAAA,mxIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHQ,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAgBT;YACR,OAAO,CAAC,QAAQ,EAAE;AACd,gBAAA,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,gBAAA,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,gBAAA,KAAK,CAAC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxF,gBAAA,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACzE,gBAAA,UAAU,CACN,CAAA,EAAG,oBAAoB,CAAC,IAAI,OAAO,oBAAoB,CAAC,OAAO,CAAA,CAAE,EACjE,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAC1C;AACD,gBAAA,UAAU,CACN,CAAA,EAAG,oBAAoB,CAAC,OAAO,QAAQ,oBAAoB,CAAC,SAAS,CAAA,CAAE,EACvE,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CACvC;AACD,gBAAA,UAAU,CACN,CAAA,EAAG,oBAAoB,CAAC,aAAa,CAAA,KAAA,CAAO,EAC5C,OAAO,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAA,CAAA,EAAI,kBAAkB,CAAC,SAAS,CAAA,CAAE,CAAC;aAElF;AACJ,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FASQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA/C9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EACb;wBACL;qBACH,EAAA,aAAA,EAGc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,WAAW,EAAA,IAAA,EACf;AACF,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,wBAAwB,EAAE,KAAK;AAC/B,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,oBAAoB,EAAE,SAAS;AAC/B,wBAAA,2BAA2B,EAAE;qBAChC,EAAA,UAAA,EACW;wBACR,OAAO,CAAC,QAAQ,EAAE;AACd,4BAAA,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,4BAAA,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,4BAAA,KAAK,CAAC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxF,4BAAA,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACzE,4BAAA,UAAU,CACN,CAAA,EAAG,oBAAoB,CAAC,IAAI,OAAO,oBAAoB,CAAC,OAAO,CAAA,CAAE,EACjE,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAC1C;AACD,4BAAA,UAAU,CACN,CAAA,EAAG,oBAAoB,CAAC,OAAO,QAAQ,oBAAoB,CAAC,SAAS,CAAA,CAAE,EACvE,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CACvC;AACD,4BAAA,UAAU,CACN,CAAA,EAAG,oBAAoB,CAAC,aAAa,CAAA,KAAA,CAAO,EAC5C,OAAO,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAA,CAAA,EAAI,kBAAkB,CAAC,SAAS,CAAA,CAAE,CAAC;yBAElF;qBACJ,EAAA,SAAA,EACU;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,EAAC,wBAAwB,EAAC;AACjD,4BAAA,KAAK,EAAE;AACV;AACJ,qBAAA,EAAA,QAAA,EAAA,q7CAAA,EAAA,MAAA,EAAA,CAAA,gpYAAA,EAAA,mxIAAA,CAAA,EAAA;iHAGQ,GAAG,EAAA,CAAA;sBAAX;gBAEsC,YAAY,EAAA,CAAA;sBAAlD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAE5B,aAAa,EAAA,CAAA;sBAArB;gBAEoB,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY;gBACO,cAAc,EAAA,CAAA;sBAAvC,KAAK;uBAAC,iBAAiB;gBAEf,EAAE,EAAA,CAAA;sBAAV;gBAMQ,IAAI,EAAA,CAAA;sBAAZ;gBAEQ,KAAK,EAAA,CAAA;sBAAb;gBAGG,QAAQ,EAAA,CAAA;sBADX;gBAeG,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAgBjC,OAAO,EAAA,CAAA;sBADV;gBAkBG,aAAa,EAAA,CAAA;sBADhB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAoBE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEnB,MAAM,EAAA,CAAA;sBAAxB;gBAGkB,mBAAmB,EAAA,CAAA;sBAArC;gBAMQ,WAAW,EAAA,CAAA;sBAAnB;;;MEzKQ,eAAe,CAAA;kIAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,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,eAAe,EAAA,OAAA,EAAA,CAHd,UAAU,EAAE,kBAAkB,aAC9B,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEnB,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,eAAe,YAHd,UAAU,CAAA,EAAA,CAAA,CAAA;;4FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;oBACzC,OAAO,EAAE,CAAC,kBAAkB;AAC/B,iBAAA;;;ACPD;;AAEG;;;;"}