@libs-ui/components-buttons-button 0.2.159 → 0.2.161
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgStyle } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { signal, inject, input, output, viewChild, effect, untracked,
|
|
3
|
+
import { signal, inject, input, output, viewChild, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';
|
|
5
5
|
import { LibsUiComponentsSpinnerComponent } from '@libs-ui/components-spinner';
|
|
6
6
|
import { LibsUiConfigProjectService } from '@libs-ui/services-config-project';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-buttons-button.mjs","sources":["../../../../../../libs-ui/components/buttons/button/src/button.component.ts","../../../../../../libs-ui/components/buttons/button/src/button.component.html","../../../../../../libs-ui/components/buttons/button/src/libs-ui-components-buttons-button.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, OnDestroy, output, signal, untracked, viewChild } from '@angular/core';\nimport { IFlagMouse, IPopover, IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsSpinnerComponent, TYPE_SPINNER } from '@libs-ui/components-spinner';\nimport { IColorButton, LibsUiConfigProjectService } from '@libs-ui/services-config-project';\nimport { colorContrastFromOrigin, get } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { TYPE_BUTTON, TYPE_SIZE_BUTTON } from './interfaces/button.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n standalone: true,\n imports: [\n NgStyle, TranslateModule,\n LibsUiComponentsSpinnerComponent,\n LibsUiComponentsPopoverComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsButtonsButtonComponent implements OnDestroy {\n\n // #region PROPERTY\n private onDestroy = new Subject<void>();\n\n protected classBinding = signal('');\n protected isClick = signal(false);\n protected typeIconLoading = signal<TYPE_SPINNER>('spin-blue');\n protected typeButton = signal(false);\n\n private configProjectService = inject(LibsUiConfigProjectService);\n\n // #region INPUT\n readonly flagMouse = input<IFlagMouse>({ isMouseEnter: false, isMouseEnterContent: false, isContainerHasScroll: false });\n readonly type = input<TYPE_BUTTON>('button-primary');\n readonly buttonCustom = input<IColorButton>(); // bắt buộc khi type là button-custom hoặc button-link-custom\n readonly sizeButton = input<TYPE_SIZE_BUTTON, TYPE_SIZE_BUTTON | undefined>('medium', { transform: value => value ?? 'medium' });\n readonly label = input<string>(' ');\n readonly disable = input<boolean>(false);\n readonly isPending = input<boolean>();\n readonly imageLeft = input<{ src: string; classInclude?: string }>();\n readonly classInclude = input<string>('');\n readonly classIconLeft = input<string>('');\n readonly classIconRight = input<string>('');\n readonly classLabel = input<string>('');\n readonly iconOnlyType = input<boolean>(false);\n readonly popover = input<IPopover>({});\n readonly ignoreStopPropagationEvent = input<boolean>();\n readonly zIndex = input<number>(10);\n readonly widthLabelPopover = input<number>();\n readonly styleIconLeft = input<Record<string, any>>();\n readonly styleButton = input<Record<string, any>>();\n readonly ignoreFocusWhenInputTab = input<boolean>(); // dùng để bỏ qua focus khi bấm nút TAB từ bán phím\n readonly ignoreSetClickWhenShowPopover = input<boolean>();\n readonly ignorePointerEvent = input<boolean>();\n readonly isActive = input<boolean>();\n\n // #region OUTPUT\n readonly outClick = output<Event>();\n readonly outPopoverEvent = output<TYPE_POPOVER_EVENT>();\n readonly outFunctionsControl = output<IPopoverFunctionControlEvent>();\n\n /* VIEW CHILD */\n private readonly buttonEl = viewChild<ElementRef>('buttonEl');\n\n constructor() {\n effect(() => {\n this.type(); this.buttonCustom();\n untracked(() => this.setClassByType());\n });\n }\n\n /* FUNCTIONS */\n protected handlerClick(e: Event) {\n if (this.ignoreStopPropagationEvent() === false) {\n e.stopPropagation();\n }\n this.buttonEl()?.nativeElement.blur();\n if (this.disable() || this.isPending()) {\n return;\n }\n this.outClick.emit(e);\n this.isClick.set(true);\n timer(100).pipe(takeUntil(this.onDestroy)).subscribe(() => {\n this.isClick.set(false);\n });\n }\n\n protected async handlerPopoverControlEvent(control: IPopoverFunctionControlEvent) {\n this.outFunctionsControl.emit(control);\n }\n\n private async setClassByType() {\n if (this.type().search('button') === 0) {\n this.typeButton.set(true);\n }\n this.setClassAndIconLoadingByType();\n const config = this.type().includes('custom') ? this.buttonCustom() : get(this.configProjectService.ConfigButton(), this.type());\n\n this.setVariableStyles(config.rootColor, config.configStepColor);\n if (!this.sizeButton || !this.typeButton()) {\n return this.classBinding.update(value => `${value} ${this.classInclude()}`);\n }\n\n switch (this.sizeButton()) {\n case 'large':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-large`);\n case 'medium':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-medium`);\n\n case 'small':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-small`);\n\n case 'smaller':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-smaller`);\n }\n }\n\n private async setClassAndIconLoadingByType() {\n if (!this.type) {\n return;\n }\n if (this.type().includes('link')) {\n this.classBinding.set('libs-ui-button libs-ui-button-theme libs-ui-button-link libs-ui-button-link-other-color');\n return this.typeIconLoading.set('spin-blue');\n }\n this.classBinding.set('libs-ui-button libs-ui-button-theme libs-ui-button-other-color');\n if (['button-secondary', 'button-third', 'button-outline', 'button-outline-green'].includes(this.type())) {\n return this.typeIconLoading.set('spin-blue');\n }\n return this.typeIconLoading.set('spin-white');\n }\n\n private async setVariableStyles(color: string, configStep: any) {\n if (!color) {\n return;\n }\n\n const colors = colorContrastFromOrigin(color);\n\n Object.keys(configStep).forEach(key => {\n const valueStep = get(configStep, key);\n const typeLink = this.type().includes('link');\n\n if (typeof valueStep === 'string') {\n this.buttonEl()?.nativeElement.style.setProperty(`--libs-ui-button${typeLink ? '-link' : ''}-other-color-${key.replace('_', '-')}`, valueStep);\n\n return;\n }\n const color = colors.find(item => item.step === Math.abs(valueStep));\n\n this.buttonEl()?.nativeElement.style.setProperty(`--libs-ui-button${typeLink ? '-link' : ''}-other-color-${key.replace('_', '-')}`, get(color || {}, valueStep < 0 ? 'dark' : 'light'));\n });\n }\n\n protected async handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n this.outPopoverEvent.emit(event);\n if (event === 'click') {\n return;\n }\n if (event === 'remove') {\n this.isClick.set(false);\n\n return;\n }\n if (!this.ignoreSetClickWhenShowPopover()) {\n this.isClick.set(true);\n }\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","<libs_ui-components-popover [type]=\"popover().type || 'other'\"\n [mode]=\"popover().mode || 'hover'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"popover().ignoreHiddenPopoverContentWhenMouseLeave || false\"\n [ignoreShowPopover]=\"popover().config ? !popover().ignoreShowPopover ? false: true : true\"\n [elementRefCustom]=\"popover().elementRefCustom\"\n [config]=\"popover().config || {}\"\n [flagMouse]=\"flagMouse()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n (outFunctionsControl)=\"handlerPopoverControlEvent($event)\"\n (outEvent)=\"handlerPopoverEvent($event)\">\n <button #buttonEl\n [class]=\"classBinding()\"\n [class.libs-ui-button-disable]=\"disable()\"\n [class.pointer-events-none]=\"disable() && !ignorePointerEvent()\"\n [attr.isPending]=\"isPending()\"\n [attr.isClick]=\"isClick()\"\n [attr.tabindex]=\"ignoreFocusWhenInputTab()?'-1':'0'\"\n [attr.hasLabel]=\"((label() || ' ') | translate) !== ' '\"\n [attr.hasIconLeft]=\"!!classIconLeft()\"\n [attr.hasIconRight]=\"!!classIconRight()\"\n [attr.active]=\"!!isActive()\"\n [ngStyle]=\"styleButton()\"\n (click)=\"handlerClick($event)\">\n @if (imageLeft(); as imageConfig) {\n <img [src]=\"imageConfig.src\"\n [class]=\"imageConfig.classInclude || 'mr-[8px]'\" />\n }\n @if (classIconLeft() && (!iconOnlyType() || (iconOnlyType() && !isPending()))) {\n <i [attr.iconOnlyType]=\"iconOnlyType()\"\n [class]=\"classIconLeft() + ' libs-ui-button-icon-left'\"\n [ngStyle]=\"styleIconLeft()\">\n </i>\n }\n @if (!iconOnlyType()) {\n <libs_ui-components-popover [type]=\"'text'\"\n [config]=\"{\n zIndex: zIndex(),\n width: widthLabelPopover()\n }\"\n [class]=\"(classLabel() || '') + ' libs-ui-button-label'\"\n [innerHtml]=\"(label() || ' ') | translate\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent() ?? true\" />\n }\n @if (classIconRight() && (!iconOnlyType() || (iconOnlyType() && !isPending()))) {\n <i [attr.iconOnlyType]=\"iconOnlyType()\"\n [class]=\"classIconRight()+' libs-ui-button-icon-right'\"></i>\n }\n @if (isPending()) {\n <div class=\"relative\"\n [class.w-[16px]]=\"!typeButton() && !iconOnlyType()\"\n [class.left-[16px]]=\"!typeButton() && !iconOnlyType()\"\n [class.ml-[8px]]=\"typeButton() && !iconOnlyType()\">\n <libs_ui-components-spinner [type]=\"typeIconLoading()\"\n [size]=\"sizeButton() === 'large'?'medium':sizeButton() === 'smaller'?'smaller':'small'\" />\n </div>\n }\n </button>\n</libs_ui-components-popover>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libs-ui-components-buttons-button.mjs","sources":["../../../../../../libs-ui/components/buttons/button/src/button.component.ts","../../../../../../libs-ui/components/buttons/button/src/button.component.html","../../../../../../libs-ui/components/buttons/button/src/libs-ui-components-buttons-button.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, OnDestroy, output, signal, untracked, viewChild } from '@angular/core';\nimport { IFlagMouse, IPopover, IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsSpinnerComponent, TYPE_SPINNER } from '@libs-ui/components-spinner';\nimport { IColorButton, LibsUiConfigProjectService } from '@libs-ui/services-config-project';\nimport { colorContrastFromOrigin, get } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { TYPE_BUTTON, TYPE_SIZE_BUTTON } from './interfaces/button.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n standalone: true,\n imports: [\n NgStyle, TranslateModule,\n LibsUiComponentsSpinnerComponent,\n LibsUiComponentsPopoverComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsButtonsButtonComponent implements OnDestroy {\n\n // #region PROPERTY\n private onDestroy = new Subject<void>();\n\n protected classBinding = signal('');\n protected isClick = signal(false);\n protected typeIconLoading = signal<TYPE_SPINNER>('spin-blue');\n protected typeButton = signal(false);\n\n private configProjectService = inject(LibsUiConfigProjectService);\n\n // #region INPUT\n readonly flagMouse = input<IFlagMouse>({ isMouseEnter: false, isMouseEnterContent: false, isContainerHasScroll: false });\n readonly type = input<TYPE_BUTTON>('button-primary');\n readonly buttonCustom = input<IColorButton>(); // bắt buộc khi type là button-custom hoặc button-link-custom\n readonly sizeButton = input<TYPE_SIZE_BUTTON, TYPE_SIZE_BUTTON | undefined>('medium', { transform: value => value ?? 'medium' });\n readonly label = input<string>(' ');\n readonly disable = input<boolean>(false);\n readonly isPending = input<boolean>();\n readonly imageLeft = input<{ src: string; classInclude?: string }>();\n readonly classInclude = input<string>('');\n readonly classIconLeft = input<string>('');\n readonly classIconRight = input<string>('');\n readonly classLabel = input<string>('');\n readonly iconOnlyType = input<boolean>(false);\n readonly popover = input<IPopover>({});\n readonly ignoreStopPropagationEvent = input<boolean>();\n readonly zIndex = input<number>(10);\n readonly widthLabelPopover = input<number>();\n readonly styleIconLeft = input<Record<string, any>>();\n readonly styleButton = input<Record<string, any>>();\n readonly ignoreFocusWhenInputTab = input<boolean>(); // dùng để bỏ qua focus khi bấm nút TAB từ bán phím\n readonly ignoreSetClickWhenShowPopover = input<boolean>();\n readonly ignorePointerEvent = input<boolean>();\n readonly isActive = input<boolean>();\n\n // #region OUTPUT\n readonly outClick = output<Event>();\n readonly outPopoverEvent = output<TYPE_POPOVER_EVENT>();\n readonly outFunctionsControl = output<IPopoverFunctionControlEvent>();\n\n /* VIEW CHILD */\n private readonly buttonEl = viewChild<ElementRef>('buttonEl');\n\n constructor() {\n effect(() => {\n this.type(); this.buttonCustom();\n untracked(() => this.setClassByType());\n });\n }\n\n /* FUNCTIONS */\n protected handlerClick(e: Event) {\n if (this.ignoreStopPropagationEvent() === false) {\n e.stopPropagation();\n }\n this.buttonEl()?.nativeElement.blur();\n if (this.disable() || this.isPending()) {\n return;\n }\n this.outClick.emit(e);\n this.isClick.set(true);\n timer(100).pipe(takeUntil(this.onDestroy)).subscribe(() => {\n this.isClick.set(false);\n });\n }\n\n protected async handlerPopoverControlEvent(control: IPopoverFunctionControlEvent) {\n this.outFunctionsControl.emit(control);\n }\n\n private async setClassByType() {\n if (this.type().search('button') === 0) {\n this.typeButton.set(true);\n }\n this.setClassAndIconLoadingByType();\n const config = this.type().includes('custom') ? this.buttonCustom() : get(this.configProjectService.ConfigButton(), this.type());\n\n this.setVariableStyles(config.rootColor, config.configStepColor);\n if (!this.sizeButton || !this.typeButton()) {\n return this.classBinding.update(value => `${value} ${this.classInclude()}`);\n }\n\n switch (this.sizeButton()) {\n case 'large':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-large`);\n case 'medium':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-medium`);\n\n case 'small':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-small`);\n\n case 'smaller':\n return this.classBinding.update(value => `${value} ${this.classInclude()} libs-ui-button-smaller`);\n }\n }\n\n private async setClassAndIconLoadingByType() {\n if (!this.type) {\n return;\n }\n if (this.type().includes('link')) {\n this.classBinding.set('libs-ui-button libs-ui-button-theme libs-ui-button-link libs-ui-button-link-other-color');\n return this.typeIconLoading.set('spin-blue');\n }\n this.classBinding.set('libs-ui-button libs-ui-button-theme libs-ui-button-other-color');\n if (['button-secondary', 'button-third', 'button-outline', 'button-outline-green'].includes(this.type())) {\n return this.typeIconLoading.set('spin-blue');\n }\n return this.typeIconLoading.set('spin-white');\n }\n\n private async setVariableStyles(color: string, configStep: any) {\n if (!color) {\n return;\n }\n\n const colors = colorContrastFromOrigin(color);\n\n Object.keys(configStep).forEach(key => {\n const valueStep = get(configStep, key);\n const typeLink = this.type().includes('link');\n\n if (typeof valueStep === 'string') {\n this.buttonEl()?.nativeElement.style.setProperty(`--libs-ui-button${typeLink ? '-link' : ''}-other-color-${key.replace('_', '-')}`, valueStep);\n\n return;\n }\n const color = colors.find(item => item.step === Math.abs(valueStep));\n\n this.buttonEl()?.nativeElement.style.setProperty(`--libs-ui-button${typeLink ? '-link' : ''}-other-color-${key.replace('_', '-')}`, get(color || {}, valueStep < 0 ? 'dark' : 'light'));\n });\n }\n\n protected async handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n this.outPopoverEvent.emit(event);\n if (event === 'click') {\n return;\n }\n if (event === 'remove') {\n this.isClick.set(false);\n\n return;\n }\n if (!this.ignoreSetClickWhenShowPopover()) {\n this.isClick.set(true);\n }\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","<libs_ui-components-popover [type]=\"popover().type || 'other'\"\n [mode]=\"popover().mode || 'hover'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"popover().ignoreHiddenPopoverContentWhenMouseLeave || false\"\n [ignoreShowPopover]=\"popover().config ? !popover().ignoreShowPopover ? false: true : true\"\n [elementRefCustom]=\"popover().elementRefCustom\"\n [config]=\"popover().config || {}\"\n [flagMouse]=\"flagMouse()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n (outFunctionsControl)=\"handlerPopoverControlEvent($event)\"\n (outEvent)=\"handlerPopoverEvent($event)\">\n <button #buttonEl\n [class]=\"classBinding()\"\n [class.libs-ui-button-disable]=\"disable()\"\n [class.pointer-events-none]=\"disable() && !ignorePointerEvent()\"\n [attr.isPending]=\"isPending()\"\n [attr.isClick]=\"isClick()\"\n [attr.tabindex]=\"ignoreFocusWhenInputTab()?'-1':'0'\"\n [attr.hasLabel]=\"((label() || ' ') | translate) !== ' '\"\n [attr.hasIconLeft]=\"!!classIconLeft()\"\n [attr.hasIconRight]=\"!!classIconRight()\"\n [attr.active]=\"!!isActive()\"\n [ngStyle]=\"styleButton()\"\n (click)=\"handlerClick($event)\">\n @if (imageLeft(); as imageConfig) {\n <img [src]=\"imageConfig.src\"\n [class]=\"imageConfig.classInclude || 'mr-[8px]'\" />\n }\n @if (classIconLeft() && (!iconOnlyType() || (iconOnlyType() && !isPending()))) {\n <i [attr.iconOnlyType]=\"iconOnlyType()\"\n [class]=\"classIconLeft() + ' libs-ui-button-icon-left'\"\n [ngStyle]=\"styleIconLeft()\">\n </i>\n }\n @if (!iconOnlyType()) {\n <libs_ui-components-popover [type]=\"'text'\"\n [config]=\"{\n zIndex: zIndex(),\n width: widthLabelPopover()\n }\"\n [class]=\"(classLabel() || '') + ' libs-ui-button-label'\"\n [innerHtml]=\"(label() || ' ') | translate\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent() ?? true\" />\n }\n @if (classIconRight() && (!iconOnlyType() || (iconOnlyType() && !isPending()))) {\n <i [attr.iconOnlyType]=\"iconOnlyType()\"\n [class]=\"classIconRight()+' libs-ui-button-icon-right'\"></i>\n }\n @if (isPending()) {\n <div class=\"relative\"\n [class.w-[16px]]=\"!typeButton() && !iconOnlyType()\"\n [class.left-[16px]]=\"!typeButton() && !iconOnlyType()\"\n [class.ml-[8px]]=\"typeButton() && !iconOnlyType()\">\n <libs_ui-components-spinner [type]=\"typeIconLoading()\"\n [size]=\"sizeButton() === 'large'?'medium':sizeButton() === 'smaller'?'smaller':'small'\" />\n </div>\n }\n </button>\n</libs_ui-components-popover>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;MAyBa,sCAAsC,CAAA;;AAGzC,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;AAE7B,IAAA,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;AACzB,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AACvB,IAAA,eAAe,GAAG,MAAM,CAAe,WAAW,CAAC;AACnD,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAE5B,IAAA,oBAAoB,GAAG,MAAM,CAAC,0BAA0B,CAAC;;AAGxD,IAAA,SAAS,GAAG,KAAK,CAAa,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;AAC/G,IAAA,IAAI,GAAG,KAAK,CAAc,gBAAgB,CAAC;AAC3C,IAAA,YAAY,GAAG,KAAK,EAAgB,CAAC;AACrC,IAAA,UAAU,GAAG,KAAK,CAAiD,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;AACvH,IAAA,KAAK,GAAG,KAAK,CAAS,GAAG,CAAC;AAC1B,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC;IAC/B,SAAS,GAAG,KAAK,EAAW;IAC5B,SAAS,GAAG,KAAK,EAA0C;AAC3D,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;AAChC,IAAA,aAAa,GAAG,KAAK,CAAS,EAAE,CAAC;AACjC,IAAA,cAAc,GAAG,KAAK,CAAS,EAAE,CAAC;AAClC,IAAA,UAAU,GAAG,KAAK,CAAS,EAAE,CAAC;AAC9B,IAAA,YAAY,GAAG,KAAK,CAAU,KAAK,CAAC;AACpC,IAAA,OAAO,GAAG,KAAK,CAAW,EAAE,CAAC;IAC7B,0BAA0B,GAAG,KAAK,EAAW;AAC7C,IAAA,MAAM,GAAG,KAAK,CAAS,EAAE,CAAC;IAC1B,iBAAiB,GAAG,KAAK,EAAU;IACnC,aAAa,GAAG,KAAK,EAAuB;IAC5C,WAAW,GAAG,KAAK,EAAuB;AAC1C,IAAA,uBAAuB,GAAG,KAAK,EAAW,CAAC;IAC3C,6BAA6B,GAAG,KAAK,EAAW;IAChD,kBAAkB,GAAG,KAAK,EAAW;IACrC,QAAQ,GAAG,KAAK,EAAW;;IAG3B,QAAQ,GAAG,MAAM,EAAS;IAC1B,eAAe,GAAG,MAAM,EAAsB;IAC9C,mBAAmB,GAAG,MAAM,EAAgC;;AAGpD,IAAA,QAAQ,GAAG,SAAS,CAAa,UAAU,CAAC;AAE7D,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,YAAY,EAAE;YAChC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC,SAAC,CAAC;;;AAIM,IAAA,YAAY,CAAC,CAAQ,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE,KAAK,KAAK,EAAE;YAC/C,CAAC,CAAC,eAAe,EAAE;;QAErB,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE;QACrC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACtC;;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACxD,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,SAAC,CAAC;;IAGM,MAAM,0BAA0B,CAAC,OAAqC,EAAA;AAC9E,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGhC,IAAA,MAAM,cAAc,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;QAE3B,IAAI,CAAC,4BAA4B,EAAE;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAEhI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AAC1C,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAG,EAAA,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA,CAAE,CAAC;;AAG7E,QAAA,QAAQ,IAAI,CAAC,UAAU,EAAE;AACvB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAG,EAAA,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA,qBAAA,CAAuB,CAAC;AAClG,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAG,EAAA,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA,sBAAA,CAAwB,CAAC;AAEnG,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAG,EAAA,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA,qBAAA,CAAuB,CAAC;AAElG,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAG,EAAA,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA,uBAAA,CAAyB,CAAC;;;AAIhG,IAAA,MAAM,4BAA4B,GAAA;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd;;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,yFAAyF,CAAC;YAChH,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;;AAE9C,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gEAAgE,CAAC;AACvF,QAAA,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;YACxG,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;;QAE9C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;;AAGvC,IAAA,MAAM,iBAAiB,CAAC,KAAa,EAAE,UAAe,EAAA;QAC5D,IAAI,CAAC,KAAK,EAAE;YACV;;AAGF,QAAA,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC;QAE7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YACpC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AAE7C,YAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,gBAAA,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,gBAAA,EAAmB,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAgB,aAAA,EAAA,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,CAAE,EAAE,SAAS,CAAC;gBAE9I;;YAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEpE,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,gBAAA,EAAmB,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAA,aAAA,EAAgB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,CAAA,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,SAAS,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AACzL,SAAC,CAAC;;IAGM,MAAM,mBAAmB,CAAC,KAAyB,EAAA;AAC3D,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,KAAK,KAAK,OAAO,EAAE;YACrB;;AAEF,QAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAEvB;;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE;AACzC,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;;;IAI1B,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;;wGAxJhB,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtC,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,0BAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,6BAAA,EAAA,EAAA,iBAAA,EAAA,+BAAA,EAAA,UAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBnD,2nFA0DA,EDvCI,MAAA,EAAA,CAAA,4wSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,0EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,gCAAgC,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChC,gCAAgC,EAAA,QAAA,EAAA,+DAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,0CAAA,EAAA,4BAAA,EAAA,kCAAA,EAAA,8BAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIvB,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAblD,SAAS;+BAEE,mCAAmC,EAAA,UAAA,EAGjC,IAAI,EACP,OAAA,EAAA;AACP,wBAAA,OAAO,EAAE,eAAe;wBACxB,gCAAgC;wBAChC;qBACD,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2nFAAA,EAAA,MAAA,EAAA,CAAA,4wSAAA,CAAA,EAAA;;;AEvBjD;;AAEG;;;;"}
|