{"version":3,"file":"seniorsistemas-angular-components-shared.mjs","sources":["../../projects/angular-components/shared/src/lib/shared/models/severities.ts","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.component.ts","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.component.html","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.module.ts","../../projects/angular-components/shared/src/lib/shared/helpers.ts","../../projects/angular-components/shared/src/lib/accessibility/paginator-accessibility.directive.ts","../../projects/angular-components/shared/src/lib/accessibility/table-checkbox-accessibility.directive.ts","../../projects/angular-components/shared/src/seniorsistemas-angular-components-shared.ts"],"sourcesContent":["export type Severities = 'default' | 'info' | 'warn' | 'error' | 'success';\n\nexport enum EnumSeverity {\n    Default = 'default',\n    Info = 'info',\n    Warn = 'warn',\n    Error = 'error',\n    Success = 'success',\n}\n","import { Component, Input } from '@angular/core';\n\nimport { BorderButtonOptions } from '../models/border-button-options';\nimport { Severities } from '../models/severities';\n\n/**\n * @description Botão com borda que varia de estilo de acordo com a severidade informada.\n * Utilizado internamente por outros componentes da biblioteca.\n *\n * @category Shared\n */\n@Component({\n    selector: 's-border-button',\n    templateUrl: './border-button.component.html',\n    styleUrls: ['./border-button.component.scss'],\n})\nexport class BorderButtonComponent {\n    /** @description Nível de severidade que define a cor e estilo do botão. @default 'default' */\n    @Input()\n    public severity: Severities = 'default';\n\n    /** @description Opções de configuração do botão (rótulo, ação, etc.). */\n    @Input()\n    public options?: BorderButtonOptions;\n}\n\n","<button\n    class=\"border-button\"\n    [ngClass]=\"{\n        'border-button--severity-default': severity === 'default',\n        'border-button--severity-info': severity === 'info',\n        'border-button--severity-warn': severity === 'warn',\n        'border-button--severity-error': severity === 'error',\n        'border-button--severity-success': severity === 'success',\n        'border-button--disabled': options?.disabled ? options?.disabled(severity) : false,\n    }\"\n    (click)=\"options?.onClick ? options?.onClick(severity) : null\"\n    [sTooltip]=\"options?.tooltip?.(severity)\"\n    tooltipPosition=\"left\"\n    [disabled]=\"options?.disabled ? options?.disabled(severity) : false\"\n>\n    <span class=\"border-button__label\">\n        {{ options?.label ? options?.label(severity) : null }}\n    </span>\n    @if (options?.icon ? options?.icon(severity) : false) {\n        <span class=\"border-button__icon {{ options?.icon(severity) }}\"></span>\n    }\n</button>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { BorderButtonComponent } from \"./border-button.component\";\nimport { TooltipModule } from \"@seniorsistemas/angular-components/tooltip\";\n\n@NgModule({\n    imports: [CommonModule, TooltipModule],\n    declarations: [BorderButtonComponent],\n    exports: [BorderButtonComponent]\n})\nexport class BorderButtonModule { }\n","/**\n * A decorator that can be used to disable functions based on a boolean property on the component.\n *\n * @param disabledField The name of the boolean property that will be used to determine if the decorated\n * function should be disabled. Defaults to 'disabled'.\n * @returns A decorator function that can be used to decorate a function.\n *\n * @example\n * class MyComponent {\n *   disabled = true;\n *\n *   @CheckDisabled()\n *   onClick() {\n *     console.log('Button was clicked');\n *   }\n * }\n */\nexport function CheckDisabled(disabledField = 'disabled') {\n    return function (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {\n        const originalMethod = descriptor.value;\n        descriptor.value = function (...args: any[]) {\n            const self = this as Record<string, any>;\n            if (self[disabledField]) {\n                return;\n            }\n            return originalMethod.apply(this, args);\n        };\n\n        return descriptor;\n    };\n}\n","import { Directive, ElementRef, OnInit, Renderer2, OnDestroy, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n/**\n * Diretiva para melhorar a acessibilidade dos botões do paginador PrimeNG\n * Adiciona tabindex=\"0\" aos botões habilitados e tabindex=\"-1\" aos desabilitados\n * Adiciona aria-labels traduzidos para os botões do paginador\n */\n@Directive({\n  selector: '[sPaginatorAccessibility]',\n  standalone: true\n})\nexport class PaginatorAccessibilityDirective implements OnInit, OnDestroy {\n  private readonly el = inject(ElementRef);\n  private readonly renderer = inject(Renderer2);\n  private readonly translateService = inject(TranslateService);\n\n  private observer: MutationObserver | null = null;\n  private readonly equalWebSpanMarker = 'data-equalweb-sr-only';\n  private isObserverPaused = false;\n  private observedPaginatorElement: Element | null = null;\n\n  ngOnInit() {\n    // Aguarda o próximo ciclo para garantir que o paginador foi renderizado\n    setTimeout(() => {\n      this.updatePaginatorButtons();\n      this.observePaginatorChanges();\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.observer) {\n      this.observer.disconnect();\n      }\n    }\n\n  private updatePaginatorButtons() {\n    const paginatorElement = this.el.nativeElement.querySelector('p-paginator');\n    if (!paginatorElement) {\n      return;\n    }\n\n    // Atualiza botões de navegação (first, prev, next, last)\n    const navigationSelectors = {\n      '.p-paginator-first': this.translateService.instant('platform.angular_components.aria_first_page'),\n      '.p-paginator-prev': this.translateService.instant('platform.angular_components.aria_previous_page'),\n      '.p-paginator-next': this.translateService.instant('platform.angular_components.aria_next_page'),\n      '.p-paginator-last': this.translateService.instant('platform.angular_components.aria_last_page'),\n      '.p-select-label': this.translateService.instant('platform.angular_components.aria_page_selection')\n    };\n\n    Object.entries(navigationSelectors).forEach(([selector, label]) => {\n      const button = paginatorElement.querySelector(selector);\n      if (button) {\n        const isDisabled = this.isButtonDisabled(button);\n        this.updateTabIndex(button, isDisabled);\n        if (isDisabled) {\n          this.renderer.removeAttribute(button, 'data-ind-readable');\n        } else {\n          this.renderer.setAttribute(button, 'data-ind-readable', 'true');\n        }\n        this.renderer.setAttribute(button, 'aria-label', label);\n        this.applyEqualWebTextFix(button, label, isDisabled);\n      }\n    });\n\n    // Atualiza botões de página numérica\n    const pageButtons = paginatorElement.querySelectorAll('.p-paginator-page');\n    pageButtons.forEach((button: Element) => {\n      const pageNumber = this.getPaginatorPageNumber(button);\n      if (pageNumber) {\n        const isDisabled = this.isButtonDisabled(button);\n        const isSelected = button.classList.contains('p-paginator-page-selected');\n        const ariaLabel = isSelected \n          ? this.translateService.instant('platform.angular_components.aria_current_page', { page: pageNumber })\n          : this.translateService.instant('platform.angular_components.aria_page_number', { page: pageNumber });\n        this.renderer.setAttribute(button, 'aria-label', ariaLabel);\n        this.updateTabIndex(button, isDisabled);\n        this.applyEqualWebTextFix(button, ariaLabel, isDisabled);\n        \n        if (isSelected) {\n          this.renderer.setAttribute(button, 'aria-current', 'page');\n        } else {\n          this.renderer.removeAttribute(button, 'aria-current');\n        }\n      }\n    });\n  }\n\n  private isButtonDisabled(button: Element): boolean {\n    return button.hasAttribute('disabled') || button.classList.contains('p-disabled');\n  }\n\n  private updateTabIndex(button: Element, isDisabled: boolean) {\n    if (isDisabled) {\n      this.renderer.removeAttribute(button, 'tabindex');\n      return;\n    }\n\n    this.renderer.setAttribute(button, 'tabindex', '0');\n  }\n\n  private getPaginatorPageNumber(button: Element): string {\n    const buttonElement = button as HTMLElement;\n\n    // Evita pegar texto do span sr-only criado pela diretiva.\n    const visualLabel = buttonElement.querySelector(`span:not([${this.equalWebSpanMarker}])`);\n    const visualText = visualLabel?.textContent?.trim();\n    if (visualText) {\n      return visualText;\n    }\n\n    // Fallback para casos em que o PrimeNG renderiza sem span interno.\n    const srOnlyText = buttonElement.querySelector(`span[${this.equalWebSpanMarker}=\"true\"]`)?.textContent?.trim() || '';\n    const fullText = buttonElement.textContent?.trim() || '';\n    return fullText.replace(srOnlyText, '').trim();\n  }\n\n  private applyEqualWebTextFix(button: Element, accessibleText: string, isDisabled: boolean) {\n    const buttonElement = button as HTMLElement;\n\n    // Oculta spans visuais do PrimeNG para o script do EqualWeb.\n    const visualSpans = buttonElement.querySelectorAll(`span:not([${this.equalWebSpanMarker}])`);\n    visualSpans.forEach((span: Element) => {\n      this.renderer.setAttribute(span, 'aria-hidden', 'true');\n    });\n\n    const existingSrOnly = buttonElement.querySelector(`span[${this.equalWebSpanMarker}=\"true\"]`);\n\n    // Não mantém texto extra em botões desabilitados.\n    if (isDisabled) {\n      if (existingSrOnly) {\n        this.renderer.removeChild(buttonElement, existingSrOnly);\n      }\n      return;\n    }\n\n    if (existingSrOnly) {\n      this.renderer.removeAttribute(existingSrOnly, 'tabindex');\n      this.renderer.setProperty(existingSrOnly, 'textContent', accessibleText);\n      return;\n    }\n\n    const srOnlySpan = this.renderer.createElement('span');\n    this.renderer.addClass(srOnlySpan, 'sr-only');\n    this.renderer.setAttribute(srOnlySpan, this.equalWebSpanMarker, 'true');\n    this.renderer.removeAttribute(srOnlySpan, 'tabindex');\n    const srOnlyText = this.renderer.createText(accessibleText);\n    this.renderer.appendChild(srOnlySpan, srOnlyText);\n    this.renderer.appendChild(buttonElement, srOnlySpan);\n  }\n\n  private observePaginatorChanges() {\n    const paginatorElement = this.el.nativeElement.querySelector('p-paginator');\n    if (!paginatorElement) {\n      return;\n    }\n\n    this.observedPaginatorElement = paginatorElement;\n\n    // Observa mudanças no paginador (quando botões são habilitados/desabilitados)\n    this.observer = new MutationObserver(() => {\n      this.updateWithObserverPaused();\n    });\n\n    this.startObserving();\n  }\n\n  private updateWithObserverPaused() {\n    if (!this.observer || this.isObserverPaused) {\n      return;\n    }\n\n    this.isObserverPaused = true;\n    this.observer.disconnect();\n\n    try {\n      this.updatePaginatorButtons();\n    } finally {\n      this.startObserving();\n      this.isObserverPaused = false;\n    }\n  }\n\n  private startObserving() {\n    if (!this.observer || !this.observedPaginatorElement) {\n      return;\n    }\n\n    this.observer.observe(this.observedPaginatorElement, {\n      attributes: true,\n      childList: true,\n      subtree: true,\n      attributeFilter: ['disabled', 'class', 'tabindex']\n    });\n  }\n}\n","import { Directive, ElementRef, OnInit, OnDestroy, inject } from '@angular/core';\n\n/**\n * Diretiva para corrigir a acessibilidade de checkboxes em tabelas PrimeNG.\n *\n * Propaga o `aria-label` dos custom elements wrapper (`p-tablecheckbox` e\n * `p-tableheadercheckbox`) para os `<input type=\"checkbox\">` internos e\n * remove o atributo do wrapper, eliminando as violações WCAG 4.1.2:\n * - `label` (crítica): input sem nome acessível\n * - `aria-prohibited-attr` (séria): aria-label em custom element sem role ARIA\n *\n * Remove também o `aria-label` do `p-checkbox` intermediário e monitora\n * mutations de atributo para re-aplicar o label correto caso o binding\n * interno do PrimeNG sobrescreva o valor no input via change detection.\n *\n * Utiliza MutationObserver para tratar linhas adicionadas dinamicamente\n * (paginação, lazy loading).\n *\n * Uso: `<p-table sTableCheckboxAccessibility ...>`\n */\n@Directive({\n    selector: '[sTableCheckboxAccessibility]',\n    standalone: true,\n})\nexport class TableCheckboxAccessibilityDirective implements OnInit, OnDestroy {\n    private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n    private childListObserver: MutationObserver | null = null;\n    private attributeObserver: MutationObserver | null = null;\n    private isChildListPaused = false;\n    private isAttributePaused = false;\n    private readonly observedElements: Element[] = [];\n    private readonly inputLabelMap = new Map<Element, string>();\n\n    private static readonly CHECKBOX_SELECTOR = 'p-tablecheckbox, p-tableheadercheckbox';\n    private static readonly INNER_CHECKBOX_SELECTOR = 'p-checkbox';\n    private static readonly INPUT_SELECTOR = 'input[type=\"checkbox\"]';\n    private static readonly ARIA_LABEL_ATTR = 'aria-label';\n\n    ngOnInit() {\n        setTimeout(() => {\n            this.updateCheckboxLabels();\n            this.observeTableChanges();\n        });\n    }\n\n    ngOnDestroy() {\n        this.childListObserver?.disconnect();\n        this.attributeObserver?.disconnect();\n        this.inputLabelMap.clear();\n    }\n\n    private updateCheckboxLabels() {\n        const host = this.el.nativeElement;\n        const checkboxWrappers = host.querySelectorAll(TableCheckboxAccessibilityDirective.CHECKBOX_SELECTOR);\n\n        checkboxWrappers.forEach((wrapper) => {\n            const wrapperAriaLabel = wrapper.getAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n            if (!wrapperAriaLabel?.trim()) {\n                return;\n            }\n\n            const input = wrapper.querySelector(TableCheckboxAccessibilityDirective.INPUT_SELECTOR);\n            if (!input) {\n                return;\n            }\n\n            this.applyLabelToInput(input, wrapperAriaLabel);\n            wrapper.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n            this.removeInnerCheckboxAriaLabel(wrapper);\n        });\n    }\n\n    private applyLabelToInput(input: Element, label: string) {\n        this.inputLabelMap.set(input, label);\n        input.setAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR, label);\n    }\n\n    private removeInnerCheckboxAriaLabel(wrapper: Element) {\n        const innerCheckbox = wrapper.querySelector(TableCheckboxAccessibilityDirective.INNER_CHECKBOX_SELECTOR);\n        if (innerCheckbox) {\n            innerCheckbox.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n        }\n    }\n\n    private observeTableChanges() {\n        const host = this.el.nativeElement;\n        const tbody = host.querySelector('tbody');\n        const thead = host.querySelector('thead');\n\n        if (tbody) {\n            this.observedElements.push(tbody);\n        }\n        if (thead) {\n            this.observedElements.push(thead);\n        }\n\n        if (this.observedElements.length === 0) {\n            return;\n        }\n\n        this.childListObserver = new MutationObserver(() => {\n            this.handleChildListMutation();\n        });\n\n        this.attributeObserver = new MutationObserver((mutations) => {\n            this.handleAttributeMutations(mutations);\n        });\n\n        this.startObserving();\n    }\n\n    private handleAttributeMutations(mutations: MutationRecord[]) {\n        if (this.isAttributePaused) {\n            return;\n        }\n\n        this.isAttributePaused = true;\n\n        try {\n            mutations\n                .filter((m) => m.attributeName === TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR)\n                .forEach((mutation) => {\n                    const target = mutation.target as Element;\n                    const tagName = target.tagName?.toLowerCase();\n\n                    if (tagName === 'p-checkbox') {\n                        target.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n                    } else if (tagName === 'input') {\n                        this.enforceInputLabel(target);\n                    } else {\n                        // Outros elementos não precisam de tratamento\n                    }\n                });\n        } finally {\n            this.isAttributePaused = false;\n        }\n    }\n\n    private enforceInputLabel(input: Element) {\n        const correctLabel = this.inputLabelMap.get(input);\n        if (!correctLabel) {\n            return;\n        }\n\n        const currentLabel = input.getAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n        if (currentLabel !== correctLabel) {\n            input.setAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR, correctLabel);\n        }\n    }\n\n    private handleChildListMutation() {\n        if (!this.childListObserver || this.isChildListPaused) {\n            return;\n        }\n\n        this.isChildListPaused = true;\n        this.childListObserver.disconnect();\n\n        try {\n            this.updateCheckboxLabels();\n        } finally {\n            this.startObserving();\n            this.isChildListPaused = false;\n        }\n    }\n\n    private startObserving() {\n        const { childListObserver, attributeObserver, observedElements } = this;\n\n        if (!childListObserver) {\n            return;\n        }\n\n        observedElements.forEach((element) => {\n            childListObserver.observe(element, {\n                childList: true,\n                subtree: true,\n            });\n\n            if (attributeObserver) {\n                attributeObserver.observe(element, {\n                    attributes: true,\n                    subtree: true,\n                    attributeFilter: [TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR],\n                });\n            }\n        });\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;IAEY,aAMX;AAND,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA;;ACHD;;;;;AAKG;MAMU,qBAAqB,CAAA;;IAGvB,QAAQ,GAAe,SAAS,CAAC;;AAIjC,IAAA,OAAO,CAAuB;wGAP5B,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,6GChBlC,m+BAsBA,EAAA,MAAA,EAAA,CAAA,+zDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDNa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACI,iBAAiB,EAAA,QAAA,EAAA,m+BAAA,EAAA,MAAA,EAAA,CAAA,+zDAAA,CAAA,EAAA,CAAA;8BAOpB,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAKC,OAAO,EAAA,CAAA;sBADb,KAAK;;;MEZG,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAHZ,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAD1B,YAAY,EAAE,aAAa,aAE3B,qBAAqB,CAAA,EAAA,CAAA,CAAA;yGAEtB,kBAAkB,EAAA,OAAA,EAAA,CAJjB,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAI5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;;;ACTD;;;;;;;;;;;;;;;;AAgBG;AACa,SAAA,aAAa,CAAC,aAAa,GAAG,UAAU,EAAA;AACpD,IAAA,OAAO,UAAU,OAAY,EAAE,YAAoB,EAAE,UAA8B,EAAA;AAC/E,QAAA,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;YACvC,MAAM,IAAI,GAAG,IAA2B,CAAC;AACzC,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;gBACrB,OAAO;aACV;YACD,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5C,SAAC,CAAC;AAEF,QAAA,OAAO,UAAU,CAAC;AACtB,KAAC,CAAC;AACN;;AC3BA;;;;AAIG;MAKU,+BAA+B,CAAA;AACzB,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACxB,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAErD,QAAQ,GAA4B,IAAI,CAAC;IAChC,kBAAkB,GAAG,uBAAuB,CAAC;IACtD,gBAAgB,GAAG,KAAK,CAAC;IACzB,wBAAwB,GAAmB,IAAI,CAAC;IAExD,QAAQ,GAAA;;QAEN,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACjC,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC1B;KACF;IAEK,sBAAsB,GAAA;AAC5B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO;SACR;;AAGD,QAAA,MAAM,mBAAmB,GAAG;YAC1B,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,6CAA6C,CAAC;YAClG,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gDAAgD,CAAC;YACpG,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;YAChG,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;YAChG,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iDAAiD,CAAC;SACpG,CAAC;AAEF,QAAA,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAI;YAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,MAAM,EAAE;gBACV,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACxC,IAAI,UAAU,EAAE;oBACd,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;iBAC5D;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;iBACjE;gBACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBACxD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;aACtD;AACH,SAAC,CAAC,CAAC;;QAGH,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;AAC3E,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,MAAe,KAAI;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,UAAU,EAAE;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;gBAC1E,MAAM,SAAS,GAAG,UAAU;AAC1B,sBAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,+CAA+C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACtG,sBAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACxG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACxC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAEzD,IAAI,UAAU,EAAE;oBACd,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;iBAC5D;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;iBACvD;aACF;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,gBAAgB,CAAC,MAAe,EAAA;AACtC,QAAA,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KACnF;IAEO,cAAc,CAAC,MAAe,EAAE,UAAmB,EAAA;QACzD,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;KACrD;AAEO,IAAA,sBAAsB,CAAC,MAAe,EAAA;QAC5C,MAAM,aAAa,GAAG,MAAqB,CAAC;;AAG5C,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,CAAa,UAAA,EAAA,IAAI,CAAC,kBAAkB,CAAI,EAAA,CAAA,CAAC,CAAC;QAC1F,MAAM,UAAU,GAAG,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACpD,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,UAAU,CAAC;SACnB;;AAGD,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAU,QAAA,CAAA,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACrH,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;KAChD;AAEO,IAAA,oBAAoB,CAAC,MAAe,EAAE,cAAsB,EAAE,UAAmB,EAAA;QACvF,MAAM,aAAa,GAAG,MAAqB,CAAC;;AAG5C,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAa,UAAA,EAAA,IAAI,CAAC,kBAAkB,CAAI,EAAA,CAAA,CAAC,CAAC;AAC7F,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAa,KAAI;YACpC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,CAAQ,KAAA,EAAA,IAAI,CAAC,kBAAkB,CAAU,QAAA,CAAA,CAAC,CAAC;;QAG9F,IAAI,UAAU,EAAE;YACd,IAAI,cAAc,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;aAC1D;YACD,OAAO;SACR;QAED,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;YACzE,OAAO;SACR;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KACtD;IAEO,uBAAuB,GAAA;AAC7B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO;SACR;AAED,QAAA,IAAI,CAAC,wBAAwB,GAAG,gBAAgB,CAAC;;AAGjD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,MAAK;YACxC,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAClC,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEO,wBAAwB,GAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC3C,OAAO;SACR;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAE3B,QAAA,IAAI;YACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;gBAAS;YACR,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC/B;KACF;IAEO,cAAc,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACpD,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACnD,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC;AACnD,SAAA,CAAC,CAAC;KACJ;wGAvLU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACTD;;;;;;;;;;;;;;;;;AAiBG;MAKU,mCAAmC,CAAA;AAC3B,IAAA,EAAE,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IAE1D,iBAAiB,GAA4B,IAAI,CAAC;IAClD,iBAAiB,GAA4B,IAAI,CAAC;IAClD,iBAAiB,GAAG,KAAK,CAAC;IAC1B,iBAAiB,GAAG,KAAK,CAAC;IACjB,gBAAgB,GAAc,EAAE,CAAC;AACjC,IAAA,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEpD,IAAA,OAAgB,iBAAiB,GAAG,wCAAwC,CAAC;AAC7E,IAAA,OAAgB,uBAAuB,GAAG,YAAY,CAAC;AACvD,IAAA,OAAgB,cAAc,GAAG,wBAAwB,CAAC;AAC1D,IAAA,OAAgB,eAAe,GAAG,YAAY,CAAC;IAEvD,QAAQ,GAAA;QACJ,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC/B,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC9B;IAEO,oBAAoB,GAAA;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAC;AAEtG,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YACjC,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,mCAAmC,CAAC,eAAe,CAAC,CAAC;AACnG,YAAA,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE;gBAC3B,OAAO;aACV;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,mCAAmC,CAAC,cAAc,CAAC,CAAC;YACxF,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO;aACV;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAChD,YAAA,OAAO,CAAC,eAAe,CAAC,mCAAmC,CAAC,eAAe,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;KACN;IAEO,iBAAiB,CAAC,KAAc,EAAE,KAAa,EAAA;QACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,KAAK,CAAC,YAAY,CAAC,mCAAmC,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;KAClF;AAEO,IAAA,4BAA4B,CAAC,OAAgB,EAAA;QACjD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,mCAAmC,CAAC,uBAAuB,CAAC,CAAC;QACzG,IAAI,aAAa,EAAE;AACf,YAAA,aAAa,CAAC,eAAe,CAAC,mCAAmC,CAAC,eAAe,CAAC,CAAC;SACtF;KACJ;IAEO,mBAAmB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,OAAO;SACV;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,MAAK;YAC/C,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACnC,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AACxD,YAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;AAC7C,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAEO,IAAA,wBAAwB,CAAC,SAA2B,EAAA;AACxD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,OAAO;SACV;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAE9B,QAAA,IAAI;YACA,SAAS;AACJ,iBAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,mCAAmC,CAAC,eAAe,CAAC;AACtF,iBAAA,OAAO,CAAC,CAAC,QAAQ,KAAI;AAClB,gBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAiB,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;AAE9C,gBAAA,IAAI,OAAO,KAAK,YAAY,EAAE;AAC1B,oBAAA,MAAM,CAAC,eAAe,CAAC,mCAAmC,CAAC,eAAe,CAAC,CAAC;iBAC/E;AAAM,qBAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AAC5B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;iBAClC;qBAAM;;iBAEN;AACL,aAAC,CAAC,CAAC;SACV;gBAAS;AACN,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAClC;KACJ;AAEO,IAAA,iBAAiB,CAAC,KAAc,EAAA;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,EAAE;YACf,OAAO;SACV;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,mCAAmC,CAAC,eAAe,CAAC,CAAC;AAC7F,QAAA,IAAI,YAAY,KAAK,YAAY,EAAE;YAC/B,KAAK,CAAC,YAAY,CAAC,mCAAmC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;SACzF;KACJ;IAEO,uBAAuB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACnD,OAAO;SACV;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;AAEpC,QAAA,IAAI;YACA,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;gBAAS;YACN,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAClC;KACJ;IAEO,cAAc,GAAA;QAClB,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAExE,IAAI,CAAC,iBAAiB,EAAE;YACpB,OAAO;SACV;AAED,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACjC,YAAA,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE;AAC/B,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA,CAAC,CAAC;YAEH,IAAI,iBAAiB,EAAE;AACnB,gBAAA,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,eAAe,EAAE,CAAC,mCAAmC,CAAC,eAAe,CAAC;AACzE,iBAAA,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;KACN;wGApKQ,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAJ/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACvBD;;AAEG;;;;"}