UNPKG

ngx-bootstrap

Version:
1 lines 24.2 kB
{"version":3,"file":"ngx-bootstrap-buttons.mjs","sources":["../../../../src/buttons/button-checkbox.directive.ts","../../../../src/buttons/button-radio.directive.ts","../../../../src/buttons/button-radio-group.directive.ts","../../../../src/buttons/buttons.module.ts","../../../../src/buttons/ngx-bootstrap-buttons.ts"],"sourcesContent":["import {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\ntype AvailableValues = boolean | string | number;\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR],\n standalone: true\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue:AvailableValues = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse:AvailableValues = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value?: AvailableValues;\n protected isDisabled = false;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): AvailableValues {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): AvailableValues {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnChanges,\n Optional,\n Provider,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR],\n standalone: true\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnChanges {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio?: unknown;\n /** If `true` — radio button can be unchecked */\n @Input() uncheckable = false;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: unknown | undefined) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n this._onChange(value);\n }\n /** If `true` — radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value?: unknown;\n private _disabled = false;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n if (this.uncheckable && this.btnRadio === this.value) {\n this.value = undefined;\n } else {\n this.value = this.btnRadio;\n }\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('uncheckable' in changes) {\n this.uncheckable = this.uncheckable !== false && typeof this.uncheckable !== 'undefined';\n }\n }\n\n _onChange(value?: unknown): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: unknown): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR],\n standalone: true\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons?: QueryList<ButtonRadioDirective>;\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n private _value?: unknown;\n\n get value() {\n return this._value;\n }\n\n set value(value: unknown | undefined) {\n this._value = value;\n this.onChange(value);\n }\n\n private _disabled = false;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n writeValue(value?: string): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n return;\n }\n\n if (this.radioButtons) {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio && this.radioButtons) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n if (!this.radioButtons) {\n return void 0;\n }\n\n return this.radioButtons.find(button => button.isActive)\n || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n imports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n // @deprecated method not required anymore, will be deleted in v19.0.0\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return {\n ngModule: ButtonsModule,\n providers: []\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["RADIO_CONTROL_VALUE_ACCESSOR"],"mappings":";;;;AAWA;AACO,MAAM,+BAA+B,GAAa;AACvD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,IAAA,KAAK,EAAE;CACR;AAID;;AAEG;MAMU,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;;QAOW,IAAe,CAAA,eAAA,GAAmB,IAAI;;QAEtC,IAAgB,CAAA,gBAAA,GAAmB,KAAK;QAIjD,IAAK,CAAA,KAAA,GAAG,KAAK;QAGH,IAAU,CAAA,UAAA,GAAG,KAAK;AAElB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,SAAS;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,SAAS;AAoDzC;;IAhDC,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB;;QAGF,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG3B,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC;;AAG5C,IAAA,IAAc,SAAS,GAAA;AACrB,QAAA,OAAO,OAAO,IAAI,CAAC,eAAe,KAAK;cACnC,IAAI,CAAC;cACL,IAAI;;AAGV,IAAA,IAAc,UAAU,GAAA;AACtB,QAAA,OAAO,OAAO,IAAI,CAAC,gBAAgB,KAAK;cACpC,IAAI,CAAC;cACL,KAAK;;AAGX,IAAA,MAAM,CAAC,KAAc,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU;;;;AAK5D,IAAA,UAAU,CAAC,KAA8B,EAAA;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU;;AAGvD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAG9B,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;8GAhEV,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAHrB,CAAC,+BAA+B,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAGnC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;oBACzB,SAAS,EAAE,CAAC,+BAA+B,CAAC;AAC5C,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAGU,eAAe,EAAA,CAAA;sBAAvB;gBAEQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAID,KAAK,EAAA,CAAA;sBAFJ,WAAW;uBAAC,cAAc;;sBAC1B,WAAW;uBAAC,mBAAmB;gBAWhC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO;;;AC3BhB,MAAMA,8BAA4B,GAAa;AACpD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,IAAA,KAAK,EAAE;CACR;AAED;;;AAGG;MAMU,oBAAoB,CAAA;;AAS/B,IAAA,IACI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;;IAGpD,IAAI,KAAK,CAAC,KAA0B,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;YAExB;;AAEF,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;;AAGvB,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAGvB,IAAI,QAAQ,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;;AAGjC,IAAA,IACI,sBAAsB,GAAA;QACxB,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS;;AAGhF,IAAA,IACI,gBAAgB,GAAA;;;QAGlB,OAAO,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,QAAQ;;AAGtD,IAAA,IAEI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK;;AAKrC,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;;AAE/B,YAAA,OAAO,SAAS;;aACX,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;AAC9C,YAAA,OAAO,CAAC;;aACH;YACL,OAAO,CAAC,CAAC;;;AAIb,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAOvB,IAAA,WAAA,CACU,EAAc,EACd,GAAsB,EACtB,QAAmB,EAGnB,KAAgC,EAAA;QALhC,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAG,CAAA,GAAA,GAAH,GAAG;QACH,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAGR,IAAK,CAAA,KAAA,GAAL,KAAK;AA9Ef,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,SAAS;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,SAAS;;QAKrB,IAAW,CAAA,WAAA,GAAG,KAAK;QA4CO,IAAI,CAAA,IAAA,GAAW,OAAO;QAmBjD,IAAS,CAAA,SAAA,GAAG,KAAK;QACjB,IAAS,CAAA,SAAA,GAAG,KAAK;;IAYzB,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB;;AAGF,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;AACpD,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS;;aACjB;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;;;AAK9B,IAAA,cAAc,CAAC,KAAoB,EAAA;QACjC,IAAI,CAAC,eAAe,EAAE;QACtB,KAAK,CAAC,cAAc,EAAE;;IAGxB,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;;IAI/B,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;IAIvB,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,SAAS,EAAE;;IAGlB,SAAS,GAAA;AACP,QAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC;;AAG3F,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,aAAa,IAAI,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW;;;AAI5F,IAAA,SAAS,CAAC,KAAe,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;YAExB;;QAEF,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;;AAKtB,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC;YAEzE;;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;;AA9JvD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,sGA8ErB,UAAU,CAAC,MAAM,yBAAyB,CAAC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGA9E1C,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAHlB,CAACA,8BAA4B,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAGhC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAE,CAACA,8BAA4B,CAAC;AACzC,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BA8EI;;0BACA,MAAM;AAAC,oBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,yBAAyB,CAAC;yCAzE5C,QAAQ,EAAA,CAAA;sBAAhB;gBAEQ,WAAW,EAAA,CAAA;sBAAnB;gBAGG,KAAK,EAAA,CAAA;sBADR;gBAgBG,QAAQ,EAAA,CAAA;sBADX;gBAUG,sBAAsB,EAAA,CAAA;sBADzB,WAAW;uBAAC,oBAAoB;gBAM7B,gBAAgB,EAAA,CAAA;sBADnB,WAAW;uBAAC,gBAAgB;gBASzB,QAAQ,EAAA,CAAA;sBAFX,WAAW;uBAAC,cAAc;;sBAC1B,WAAW;uBAAC,mBAAmB;gBAKG,IAAI,EAAA,CAAA;sBAAtC,WAAW;uBAAC,WAAW;gBAGpB,QAAQ,EAAA,CAAA;sBADX,WAAW;uBAAC,eAAe;gBA8B5B,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,OAAO;gBAcrB,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;gBAWzC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO;gBAMrB,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM;;;AClIf,MAAM,4BAA4B,GAAa;AACpD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,IAAA,KAAK,EAAE;CACR;AAED;;;AAGG;MAMU,yBAAyB,CAAA;AASpC,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;AARvB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,SAAS;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,SAAS;QAEK,IAAI,CAAA,IAAA,GAAW,YAAY;QAmBtD,IAAS,CAAA,SAAA,GAAG,KAAK;;AATzB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;IAGpB,IAAI,KAAK,CAAC,KAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAKtB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,OAAO,IAAI;;aACN;AACL,YAAA,OAAO,CAAC;;;AAIZ,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,IAAG;AAClC,gBAAA,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACpC,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;;IAK3B,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB;;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;QAClD,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,KAAK,EAAE;YACnB;;AAGF,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7D,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,KAAK,EAAE;;;;IAM1B,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,EAAE;;;AAMpB,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC9B,KAAK,CAAC,cAAc,EAAE;;AAKxB,IAAA,cAAc,CAAC,KAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAClC,KAAK,CAAC,cAAc,EAAE;;AAGhB,IAAA,iBAAiB,CAAC,SAA8B,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB;;AAGF,QAAA,SAAS,SAAS,CAAC,YAAoB,EAAE,qBAA6C,EAAA;AACpF,YAAA,MAAM,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,SAAS,GAAG,CAAC,YAAY,GAAG,IAAI,IAAI,qBAAqB,CAAC,MAAM;AACpE,YAAA,IAAI,SAAS,GAAG,CAAC,EAAE;AACjB,gBAAA,SAAS,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC;;AAG9C,YAAA,OAAO,SAAS;;AAGlB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;AAElD,QAAA,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;YACpC,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACzD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC;YACrE,KACE,IAAI,CAAC,GAAG,SAAS,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,EAC5D,CAAC,KAAK,kBAAkB,EACxB,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,EACvC;gBACA,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;AACxC,oBAAA,qBAAqB,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE;AAC1C,oBAAA,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBAChC;;;;;IAMA,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,KAAK,CAAC;;AAGf,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ;AAClD,eAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC;;8GA7I7C,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAHvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,4BAA4B,CAAC,2EAST,oBAAoB,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAN3C,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;oBAC3B,SAAS,EAAE,CAAC,4BAA4B,CAAC;AACzC,oBAAA,UAAU,EAAE;AACf,iBAAA;sFAKoC,IAAI,EAAA,CAAA;sBAAtC,WAAW;uBAAC,WAAW;gBAGxB,YAAY,EAAA,CAAA;sBADX,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,oBAAoB,CAAC;gBAwBnD,QAAQ,EAAA,CAAA;sBADX,WAAW;uBAAC,eAAe;gBAiC5B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO;gBAoBrB,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM;gBASpB,UAAU,EAAA,CAAA;sBAFT,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;sBAC7C,YAAY;uBAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC;gBAQ7C,cAAc,EAAA,CAAA;sBAFb,YAAY;uBAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC;;sBAC5C,YAAY;uBAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;;;MCjHhC,aAAa,CAAA;;AAExB,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE;SACZ;;8GANQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,OAAA,EAAA,CAHZ,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,CAAA,EAAA,OAAA,EAAA,CACxE,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAEzE,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;AACnF,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB;AACrF,iBAAA;;;ACTD;;AAEG;;;;"}