@dev-tcloud/tcloud-ui 6.5.2 → 6.5.4
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-tcloud-tcloud-ui.mjs","sources":["../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/services/tcloud-ui-accordion.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/services/data-list.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.html","../../../projects/tcloud-ui/src/lib/tcloud-ui.tokens.ts","../../../projects/tcloud-ui/src/lib/_services/tcloud-ui-layout.services.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-form/tcloud-form.directive.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.html","../../../projects/tcloud-ui/src/lib/_pipes/monthname.ts","../../../projects/tcloud-ui/src/lib/_pipes/statusinfo.ts","../../../projects/tcloud-ui/src/lib/_pipes/respective.ts","../../../projects/tcloud-ui/src/lib/_pipes/cnpj.ts","../../../projects/tcloud-ui/src/lib/_pipes/cpf.ts","../../../projects/tcloud-ui/src/lib/_pipes/bytes.ts","../../../projects/tcloud-ui/src/lib/_pipes/datebr.ts","../../../projects/tcloud-ui/src/lib/_pipes/array-to-text.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.html","../../../projects/tcloud-ui/src/lib/_services/search-in-object.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.html","../../../projects/tcloud-ui/src/lib/_directives/tcloud-button/tcloud-button.directive.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/services/tab-menu.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.html","../../../projects/tcloud-ui/src/lib/_directives/align/align.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/currency/currency.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/el-copy/el-copy.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/hover-parent/hover-parent.directive.ts","../../../projects/tcloud-ui/src/lib/_services/tcloud-ui-check-access.service.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-access/tcloud-ui-check-access.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-access/tcloud-ui-ng-check-access.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tooltip/tooltip.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-ui-digit-only.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-ui-highlight.diretive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-ui-ip-mask.directive.ts","../../../projects/tcloud-ui/src/lib/tcloud-ui.module.ts","../../../projects/tcloud-ui/src/lib/tcloud-ui.providers.ts","../../../projects/tcloud-ui/src/lib/_services/loading-transitions.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/tcloud-ui-sub-navbar.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/tcloud-ui-sub-navbar.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/services/container.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/tcloud-ui-container.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/tcloud-ui-container.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-content/tcloud-ui-container-content.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-content/tcloud-ui-container-content.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-col/tcloud-ui-container-col.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-col/tcloud-ui-container-col.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-button/tc-rev-button.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-calendar/tc-rev-calendar.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-calendar/tc-rev-calendar.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-title/tc-rev-card-title.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-title/tc-rev-card-title.component.html","../../../projects/tcloud-ui/src/lib/_services/tcloud-ui-device-utils.service.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-accordion/tc-rev-card-accordion.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-accordion/tc-rev-card-accordion.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card/tc-rev-card.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card/tc-rev-card.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-checkbox/tc-rev-checkbox.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-search-input/tc-rev-search-input.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-search-input/tc-rev-search-input.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-icon-button/tc-rev-icon-button.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-sub-menu/tc-rev-dropdown-sub-menu.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-sub-menu/tc-rev-dropdown-sub-menu.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi/tc-rev-dropdown-multi.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi/tc-rev-dropdown-multi.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/util/ellipsed-text.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tooltip/tc-rev-tooltip.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown/tc-rev-dropdown.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown/tc-rev-dropdown.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/charts/echarts.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-empty-content/tc-rev-empty-content.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-empty-content/tc-rev-empty-content.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-faq/tc-rev-faq.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-faq/tc-rev-faq.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-input-container/tc-rev-input-container.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-input-container/tc-rev-input-container.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-input/tc-rev-input.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-loading/tc-rev-loading.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-loading/tc-rev-loading.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-message/tc-rev-message.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-message/tc-rev-message.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-multi-input/tc-rev-multi-input.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-multi-input/tc-rev-multi-input.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-pagination/tc-rev-pagination.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-pagination/tc-rev-pagination.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-progress-status-bar/tc-rev-progress-status-bar.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-progress-status-bar/tc-rev-progress-status-bar.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-radio/tc-rev-radio.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-side-drawer/tc-rev-side-drawer.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-side-drawer/tc-rev-side-drawer.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-skeleton-loading/tc-rev-skeleton-loading.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-skeleton-loading/tc-rev-skeleton-loading.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-slide-toggle/tc-rev-slide-toggle.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-small-loading/tc-rev-small-loading.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-small-loading/tc-rev-small-loading.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-group.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-group.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tag/tag-colors.enum.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tag/tc-rev-tag.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tag/tc-rev-tag.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-toast/tc-rev-toast.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-toast/tc-rev-toast.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/tc-sub-navbar.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/tc-sub-navbar.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-wizard-steps/tc-rev-wizard-steps.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-wizard-steps/tc-rev-wizard-steps.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-breadcrumb/tc-rev-breadcrumb.service.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-breadcrumb/tc-rev-breadcrumb.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-breadcrumb/tc-rev-breadcrumb.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-components.module.ts","../../../projects/tcloud-ui/src/public-api.ts","../../../projects/tcloud-ui/src/dev-tcloud-tcloud-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class TCloudUiAccordionService {\n\n private disabled: boolean | undefined;\n private loading: boolean | undefined;\n private show: boolean | undefined;\n\n private _stateToggle = new Subject<boolean>();\n public stateToggle$ = this._stateToggle.asObservable();\n\n private _stateLoading = new Subject<boolean>();\n public stateLoading$ = this._stateLoading.asObservable();\n\n private _stateDisabled = new Subject<boolean>();\n public stateDisabled$ = this._stateDisabled.asObservable();\n\n\n toggle(action: boolean): void{\n this._stateToggle.next( action );\n }\n\n getLoading(){\n return this.loading;\n }\n\n setLoading(loading: boolean){\n this.loading = loading;\n this._stateLoading.next(loading);\n }\n\n getShow(){\n return this.show;\n }\n\n setDisabled(disabled: boolean): void{\n this._stateDisabled.next( disabled );\n }\n\n getDisabled(){\n return this.disabled;\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiAccordionService } from '../../services/tcloud-ui-accordion.service';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\n\n@Component({\n selector: 'tcloud-ui-accordion-body',\n templateUrl: './tcloud-ui-accordion-body.component.html',\n styleUrls: ['./tcloud-ui-accordion-body.component.scss'],\n animations: [\n trigger('expandAccordion', [\n state('close', style({ height: '0' })),\n state('open', style({ height: '*' })),\n transition('close <=> open', animate('0.35s ease-in-out')),\n ]),\n ],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiAccordionBodyComponent implements OnInit {\n\n show: boolean = false;\n \n constructor(\n private _tCloudUiAccordionService: TCloudUiAccordionService\n ) { }\n\n ngOnInit(): void {\n\n this.show = this._tCloudUiAccordionService.getShow() || false;\n this._tCloudUiAccordionService.stateToggle$.subscribe((show: boolean) => {\n this.show = show;\n })\n\n }\n\n}\n","<div class=\"tcloud-ui-accordion-body tc-accordion-content\" [class.show]=\"show\" [@expandAccordion]=\"(show) ? 'open' : 'close' \">\n <ng-content></ng-content>\n</div>","import { Component, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TCloudUiAccordionService } from '../../services/tcloud-ui-accordion.service';\n\n@Component({\n selector: 'tcloud-ui-accordion-title',\n templateUrl: './tcloud-ui-accordion-title.component.html',\n styleUrls: ['./tcloud-ui-accordion-title.component.css'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiAccordionTitleComponent implements OnInit, OnDestroy {\n\n subscription_01: Subscription | undefined;\n subscription_02: Subscription | undefined;\n subscription_03: Subscription | undefined;\n\n show: boolean = false;\n loading: boolean = false;\n disabled: boolean = false;\n \n\n constructor(\n private _tCloudUiAccordionService: TCloudUiAccordionService\n ) { }\n\n ngOnInit(): void {\n\n this.loading = this._tCloudUiAccordionService.getLoading() || false;\n this.subscription_01 = this._tCloudUiAccordionService.stateLoading$.subscribe((loading: boolean) => {\n this.loading = loading;\n });\n\n this.show = this._tCloudUiAccordionService.getShow() || false;\n this.subscription_02 = this._tCloudUiAccordionService.stateToggle$.subscribe((show: boolean) => {\n this.show = show;\n });\n\n this.disabled = this._tCloudUiAccordionService.getDisabled() || false;\n this.subscription_03 = this._tCloudUiAccordionService.stateDisabled$.subscribe((disabled: boolean) => {\n this.disabled = disabled;\n });\n\n }\n\n toggle(){\n if( this.disabled ){ return; }\n\n this.show = !this.show;\n this._tCloudUiAccordionService.toggle(this.show); \n \n }\n\n toggle_title(){\n this.toggle();\n }\n\n ngOnDestroy(): void {\n if( this.subscription_01 ){ this.subscription_01.unsubscribe(); }\n if( this.subscription_02 ){ this.subscription_02.unsubscribe(); }\n if( this.subscription_03 ){ this.subscription_03.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-accordion-title tc-accordion-title\">\n <table class=\"tc-accordion-table\">\n <tr>\n <td class=\"area-title\" (click)=\"toggle_title()\" >\n <ng-content></ng-content>\n </td>\n <td class=\"tc-accordion-actions\">\n <button type=\"button\" class=\"tc-btn-accordion-toggle\" [disabled]=\"disabled\" (click)=\"toggle()\" >\n\n <i class=\"fas fa-chevron-right icon-toggle\" *ngIf=\"!show\"></i>\n <i class=\"fas fa-chevron-down icon-toggle\" *ngIf=\"show\"></i>\n\n </button>\n </td>\n </tr>\n </table>\n</div>","import { Subscription } from 'rxjs';\nimport { Component, EventEmitter, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiAccordionService } from './services/tcloud-ui-accordion.service';\nimport { TCloudUiAccordionBodyComponent } from './components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component';\nimport { TCloudUiAccordionTitleComponent } from './components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component';\n\n@Component({\n selector: 'tcloud-ui-accordion',\n templateUrl: './tcloud-ui-accordion.component.html',\n styleUrls: ['./tcloud-ui-accordion.component.css'],\n providers: [\n TCloudUiAccordionService\n ],\n standalone: true,\n imports: [CommonModule, TCloudUiAccordionBodyComponent, TCloudUiAccordionTitleComponent]\n})\nexport class TCloudUiAccordionComponent implements OnInit, OnDestroy {\n\n theme: string | undefined;\n\n subscription_01: Subscription | undefined;\n subscription_02: Subscription | undefined;\n \n private _disabled: boolean = false;\n @Input() set disabled(v: boolean){ \n this._disabled = v;\n if( this._disabled ){ \n setTimeout(() => { \n this._tCloudUiAccordionService.setDisabled(this._disabled);\n this._tCloudUiAccordionService.toggle(false); \n });\n }\n }\n get disabled(){ return this._disabled; }\n\n\n private _show: boolean = false;\n @Input() set show(v: boolean){ \n if( this._show !== v ){\n this._show = v;\n if( !this.disabled ){\n setTimeout(() => { this._tCloudUiAccordionService.toggle(this._show); }); \n } \n }\n }\n\n get show(){ return this._show; }\n\n\n @Output() onAction = new EventEmitter<'open'|'close'>();\n\n private _loading: boolean = false;\n /**\n * loading - boolean - Coloca o modal em modo de carregamento - default false\n */\n @Input() set loading(loading: boolean){ \n this._loading = loading;\n this._tCloudUiAccordionService.setLoading(loading);\n }\n get loading(): boolean { return this._loading; }\n\n constructor(\n private _tCloudUiAccordionService: TCloudUiAccordionService\n ) { }\n\n ngOnInit(): void {\n\n this.subscription_01 = this._tCloudUiAccordionService.stateLoading$.subscribe((loading: boolean) => {\n this.loading = loading; \n });\n \n this.subscription_02 = this._tCloudUiAccordionService.stateToggle$.subscribe((show: boolean) => {\n this.onAction.emit( (show === true) ? 'open' : 'close' );\n })\n \n }\n\n ngOnDestroy(): void {\n if( this.subscription_01 ){ this.subscription_01.unsubscribe(); }\n if( this.subscription_02 ){ this.subscription_02.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-accordion tc-accordion\" [class.tc-accordion-disabled]=\"disabled\">\n <ng-content></ng-content>\n</div>","import { Subscription } from 'rxjs';\nimport { Component, EventEmitter, Input, forwardRef, ViewChild, ElementRef, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiChoiceIssuesComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-choice-issues',\n templateUrl: './tcloud-ui-choice-issues.component.html',\n styleUrls: ['./tcloud-ui-choice-issues.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [CommonModule, FormsModule]\n})\nexport class TCloudUiChoiceIssuesComponent {\n\n \n @Input() view: boolean = false;\n @Input() titulo: string = '';\n @Input() subTitulo: string = '';\n\n @Input() disabled: boolean = false;\n @Output() onChange = new EventEmitter<any>();\n\n subscription: Subscription | undefined;\n // Referencia o campo (input,select,textarea)\n @ViewChild('campo',{ read: true, static: false }) inputRef: ElementRef | undefined;\n\n innerValue: boolean = false;\n\n ID: string;\n\n constructor(){\n this.ID = 'tc-issue-' + Math.random().toString(36).substr(2, 9);\n }\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): boolean {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: boolean) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n setV(v: any){\n this.value = v;\n this.onChange.emit(v);\n }\n\n createID() {\n // Math.random should be unique because of its seeding algorithm.\n // Convert it to base 36 (numbers + letters), and grab the first 9 characters\n // after the decimal.\n return '_' + Math.random().toString(36).substr(2, 9);\n }\n\n\n}\n","<div class=\"tcloud-ui-choice-issues box p-2 mt-3 mb-2\">\n <input #campo [(ngModel)]=\"value\" type=\"hidden\" [value]=\"false\">\n\n <table class=\"choice-area\">\n <tr>\n <td class=\"choice-description\">\n\n <div>\n <p class=\"titulo\">{{ titulo }}</p>\n </div>\n <div class=\"mt-1\">\n <p class=\"sub-titulo\">{{ subTitulo }}</p>\n </div>\n <div class=\"mt-2 mb-1\">\n <ng-content></ng-content>\n </div>\n\n </td>\n <td class=\"choice-action\">\n <table class=\"mt-3 mr-2\" *ngIf=\"!view\">\n <tr>\n <td>\n <div class=\"form-fieldset\">\n <label [class.v-true]=\"value\" class=\"mr-1\"><input #campo name=\"{{ ID }}\" [value]=\"true\" type=\"radio\"\n [(ngModel)]=\"value\" (click)=\"setV(true)\">Sim</label>\n </div>\n </td>\n <td>\n <div class=\"form-fieldset\">\n <label [class.v-true]=\"!value\" class=\"ml-2\"><input #campo name=\"{{ ID }}\" [value]=\"false\" type=\"radio\"\n [(ngModel)]=\"value\" (click)=\"setV(false)\">Não</label>\n </div>\n </td>\n </tr>\n </table>\n\n <table class=\"mt-2 mr-2\" *ngIf=\"view\">\n <tr>\n <td>\n <div class=\"form-fieldset view\">\n <label *ngIf=\"value\" class=\"v-true disabled\">Sim</label>\n <label *ngIf=\"!value\">Não</label>\n </div>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n\n\n</div>","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class DataListService {\n private _stateSourceValue: Subject<any> = new Subject<any>();\n public stateValue$: Observable<Subject<any>> = this._stateSourceValue.asObservable();\n\n private _stateSourceDescription: Subject<any> = new Subject<any>();\n public stateDescription$: Observable<Subject<any>> = this._stateSourceDescription.asObservable();\n\n private _stateSourceOptions: Subject<any> = new Subject<any>();\n public stateOptions$: Observable<Subject<any>> = this._stateSourceOptions.asObservable();\n\n private _stateSourceActive: Subject<any> = new Subject<any>();\n public stateActive$: Observable<Subject<any>> = this._stateSourceActive.asObservable();\n\n private actived_value: any | undefined;\n\n public setItemValue(v: any): void {\n this.actived_value = v;\n this._stateSourceValue.next(v);\n }\n\n public setItemDescription(v: any): void {\n this._stateSourceDescription.next(v);\n }\n\n public registerSelectionOptionsDescription(v: any): void {\n this._stateSourceOptions.next(v);\n }\n\n public setActiveItem(v: any): void {\n this._stateSourceActive.next(v); \n }\n\n public getActiveItem(): any {\n // console.log('getActiveItem', this.actived_value);\n return this.actived_value;\n }\n \n}","export class ISelectOptions{\n description: any;\n value: any;\n disabled?: boolean;\n}","import { OnDestroy } from '@angular/core';\nimport { ISelectOptions } from './../tcloud-ui-data-list';\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataListService } from '../services/data-list.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'tcloud-ui-data-list-option',\n templateUrl: './tcloud-ui-data-list-option.component.html',\n styleUrls: ['./tcloud-ui-data-list-option.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiDataListOptionComponent implements OnInit, OnDestroy {\n\n id: string = ''; \n actived_value: any;\n select_options = new ISelectOptions();\n private subscription_active: Subscription | undefined;\n\n @Input() disabled: boolean | undefined = false;\n @Input() value: any | undefined;\n\n @Output() selected = new EventEmitter<any>(); \n\n constructor( private dataListService: DataListService ) { \n }\n\n ngOnInit(): void {\n this.actived_value = this.dataListService.getActiveItem();\n this.subscription_active = this.dataListService.stateActive$.subscribe(v => { \n this.actived_value = v; \n });\n this.id = this.generateID();\n this.setSelectOptions();\n }\n\n generateID(): string{\n return `data-list-option-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n setSelectedItem(value: any){\n if( this.disabled ){ return; }\n if( value === '' ){ this.value = ''; } \n\n this.dataListService.setItemValue(this.value);\n const description = <any> document.getElementById(this.id)?.innerText || '';\n this.dataListService.setItemDescription(description);\n this.setSelectOptions(); \n }\n\n setSelectOptions(){\n setTimeout(() => {\n try {\n const description = <any> document.getElementById(this.id)?.innerText;\n this.select_options.value = this.value;\n this.select_options.description = description; \n this.dataListService.registerSelectionOptionsDescription(this.select_options);\n } catch (error) { }\n }); \n }\n\n ngOnDestroy() {\n if( this.subscription_active ){ this.subscription_active.unsubscribe(); } \n }\n\n}\n","<button \n [disabled]=\"disabled\"\n [title]=\"select_options.description\"\n id=\"{{id}}\"\n [attr.data-description]=\"select_options.description\"\n [attr.data-actived-value]=\"actived_value\"\n class=\"tcloud-ui-data-list-option dropdown-item\" \n [class.null-value]=\"value === undefined || value === null || value === ''\"\n [class.active]=\"value === actived_value\" \n [class.option-disabled]=\"disabled\"\n type=\"button\" \n [value]=\"value\"\n (click)=\"setSelectedItem(value)\" >\n <ng-content></ng-content>\n</button>\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Token de injeção para a configuração do TCloud UI\n */\nexport const TCLOUD_UI_CONFIG = new InjectionToken<any>('TCLOUD_UI_CONFIG');\n\n/**\n * Token de injeção para o serviço de usuário customizado\n */\nexport const TCLOUD_UI_USER_SERVICE = new InjectionToken<any>('TCLOUD_UI_USER_SERVICE');\n\n/**\n * Token de injeção para o serviço de tema customizado\n */\nexport const TCLOUD_UI_LAYOUT_SERVICE = new InjectionToken<any>('TCLOUD_UI_LAYOUT_SERVICE');\n\n/**\n * Token de injeção para o serviço de viewport customizado\n */\nexport const TCLOUD_UI_VIEWPORT_SERVICE = new InjectionToken<any>('TCLOUD_UI_VIEWPORT_SERVICE');\n","import { Inject, Injectable, Optional, signal } from '@angular/core';\nimport { LayoutServiceInterface } from '../_interfaces/layout.service.interface';\nimport { TCLOUD_UI_LAYOUT_SERVICE } from '../tcloud-ui.tokens';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiLayoutService {\n\n private layoutService = {} as LayoutServiceInterface;\n\n constructor(\n @Optional() @Inject(TCLOUD_UI_LAYOUT_SERVICE) private _LayoutService: LayoutServiceInterface, \n ) {\n this.layoutService = this._LayoutService;\n }\n\n getCurrentLayout(): string{\n // return 'modern';\n try {\n return this.layoutService?.getCurrentLayout();\n } catch (error) {\n // console.warn('getCurrentLayout', error);\n }\n return 'classic';\n }\n}","import { Directive, effect, ElementRef, input } from '@angular/core';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n@Directive({\n selector: '[tcloudForm]',\n standalone: true\n})\nexport class TCloudUiFormDirective {\npublic fullWidth = input<boolean>(false);\n\nconstructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private _el: ElementRef<HTMLButtonElement>\n) {\n effect(() => {\n this.setClasses();\n });\n}\n\nprivate layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n}\n\n private setClasses(): void {\n const layout = this.layout();\n if( layout === 'classic' ){ return; }\n\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c === 'form-control'));\n tokenList.remove(...Array.from(tokenList).filter((c) => c === 'tc-form-control'));\n\n if( layout === 'modern' ){\n this._el.nativeElement.classList.add('tc-rev-input-control');\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-input-control--full-width') : null;\n }\n }\n}\n","import { DataListService } from './services/data-list.service';\nimport { Component, forwardRef, OnInit, Output, EventEmitter, ViewChild, Input, OnDestroy, AfterViewChecked } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, NgForm, FormGroup, FormBuilder, FormControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ISelectOptions } from './tcloud-ui-data-list';\nimport { TCloudUiDataListOptionComponent } from './tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\nimport { TCloudUiFormDirective } from '../../_directives/tcloud-form/tcloud-form.directive';\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiDataListComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n\n@Component({\n selector: 'tcloud-ui-data-list',\n templateUrl: './tcloud-ui-data-list.component.html',\n styleUrls: ['./tcloud-ui-data-list.component.scss'],\n providers: [\n DataListService,\n CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR\n ],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TCloudUiDataListOptionComponent, TCloudUiFormDirective]\n})\n\nexport class TCloudUiDataListComponent implements OnInit, OnDestroy, AfterViewChecked {\n\n viewport_width: number = 0;\n viewport_height: number = 0;\n box_height: number = 0;\n box_style: string = '';\n menu_on_top: string = '';\n\n @Input() placeholder: string = '';\n\n private _disabled: boolean = false;\n @Input() set disabled(v){\n if( typeof v === 'boolean' && v !== this._disabled ){\n this._disabled = v; \n //this.selected_description = '';\n //this.selected_item ='';\n this.toChange();\n }\n }\n get disabled():boolean { return this._disabled; }\n\n private _loading: boolean = false;\n @Input() set loading(v: boolean){\n if( typeof v === 'boolean' && v !== this._loading ){\n this._loading = v; \n //this.selected_description = '';\n //this.selected_item = '';\n this.toChange();\n }\n }\n get loading():boolean { return this._loading; }\n\n\n @Input() showInput: boolean = true;\n @Input() search: boolean = true;\n \n private _listItems: ISelectOptions[] = [];\n @Input() set listItems(v: ISelectOptions[]){\n if( v && (v).length > 0 ){\n this._listItems = v;\n }\n }\n get listItems():ISelectOptions[] { return this._listItems; }\n\n private _open: boolean = false;\n @Input() set open(v: boolean){\n if( v !== this._open ){\n this._open = v;\n if( v ){\n this.menu_show = false;\n setTimeout(()=>{ this.toOpen(); }); \n }\n }\n }\n get open():boolean { return this._open; }\n\n \n \n @Input() border: boolean = true;\n\n @Output() onInputChange = new EventEmitter<ISelectOptions>();\n @Output() onChange = new EventEmitter<ISelectOptions>();\n\n @Output() onOpened = new EventEmitter<any>();\n @Output() onClosed = new EventEmitter<any>();\n\n private _ngModel: any | undefined;\n @Input() set ngModel(v: any){\n this.selected_item = v; \n this.selectDescription(); \n }\n @Output() ngModelChange = new EventEmitter<any>();\n\n list_selected_options = new Array<ISelectOptions>();\n\n selected_item: any | undefined;\n selected_description: any | undefined;\n\n private subscription_value: Subscription | undefined;\n private subscription_description: Subscription | undefined;\n private subscription_options: Subscription | undefined;\n\n menu_show: boolean = false;\n search_text: string = '';\n id: string = '';\n\n formulario: FormGroup | undefined;\n\n constructor(\n private dataListService: DataListService,\n private formBuilder: FormBuilder\n ){\n\n this.subscription_value = this.dataListService.stateValue$.subscribe(v => {\n this.selected_item = v; \n this.selectDescription();\n this.ngModelChange.emit(this.selected_item);\n })\n\n this.subscription_description = this.dataListService.stateDescription$.subscribe(v => {\n this.selected_description = v; \n })\n\n\n this.subscription_options = this.dataListService.stateOptions$.subscribe((v:any) => {\n if( v && v.value ){\n (this.list_selected_options).push(v);\n }\n })\n\n }\n\n ngOnInit(){\n\n \n\n this.id = this.generateID();\n\n this.formulario = this.formBuilder.group({\n \"selected_item\": new FormControl('',[]),\n })\n\n \n\n this.toResize();\n this.toClick();\n }\n\n t_fc: any | undefined;\n ngAfterViewChecked(): void {\n this.t_fc = undefined;\n this.t_fc = this.get_selected_description();\n }\n\n get_selected_description(): void{\n if( this.list_selected_options && (this.list_selected_options).length > 0 ){\n for( let i = 0; i < (this.list_selected_options).length; i++ ){\n const item = this.list_selected_options[i];\n if( item.value === this.selected_item ){ \n if( this.selected_description !== item.description ){\n if( item.description && item.description !== this.selected_description ){\n setTimeout(() => {\n this.selected_description = item.description; \n this.dataListService.setActiveItem(this.selected_item);\n });\n }\n } \n break;\n }\n }\n } \n }\n\n generateID(): string{\n return `data-list-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n ngOnDestroy() {\n if( this.subscription_value ){ this.subscription_value.unsubscribe(); } \n if( this.subscription_description ){ this.subscription_description.unsubscribe(); } \n if( this.subscription_options ){ this.subscription_options.unsubscribe(); } \n }\n\n toSearch(e: any) {\n let input = (e && e.target && e.target.value) ? e.target.value : '';\n \n let filter = ( ( (input).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n let ul = <any> document.getElementById(`${this.id}-options`);\n if( ul ){\n let li = ul.getElementsByTagName(\"button\");\n for (let i = 0; i < li.length; i++) {\n const a = li[i];\n const txtValue = ( ( ( a.textContent || a.innerText ).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n if (txtValue.indexOf(filter) > -1) {\n li[i].style.display = \"\";\n } else {\n li[i].style.display = \"none\";\n }\n }\n }\n }\n\n selectDescription(){\n if( this.list_selected_options && (this.list_selected_options).length > 0 ){\n for( let i = 0; i < (this.list_selected_options).length; i++ ){\n const item = this.list_selected_options[i];\n if( item.value === this.selected_item ){\n this.selected_description = item.description;\n this.toChange();\n return;\n }\n }\n }\n\n if( this.selected_item === undefined || this.selected_item === null || this.selected_item === '' ){\n this.selected_description = '';\n this.toChange();\n }\n \n }\n\n \n toInput(e: any){\n this.onInputChange.emit(this.selected_description);\n this.onChange.emit(e);\n }\n\n toChange(){\n setTimeout(() => {\n if( this.selected_item === undefined || this.selected_item === null ){\n this.selected_item = '';\n }\n this.toSearch('');\n this.search_text = '';\n this.dataListService.setActiveItem(this.selected_item);\n\n this.onInputChange.emit(this.selected_description);\n\n if( this.formulario ){\n this.formulario?.get('selected_item')?.setValue(this.selected_item);\n // const input_hidden = document.getElementById(`${this.id}-hidden`);\n this.toInput(this.formulario.get('selected_item'));\n } \n });\n }\n\n\n clearTextSearch(){\n this.search_text = '';\n this.toSearch('');\n }\n\n toOpen(){\n this.menu_show = !this.menu_show; \n this.resolve_position_dropdown(this.menu_show);\n this.onOpened.emit();\n }\n\n resolve_position_dropdown(open: boolean){\n if( open ){\n this.box_style = '';\n this.menu_on_top = ''; \n const id = `${this.id}`; \n const box = `box-${this.id}`;\n if( this.viewport_height === 0 ){\n this.viewport_height = window.innerWidth;\n }\n const rect = document.getElementById(id)?.getBoundingClientRect();\n const box_position = rect?.bottom || 0; \n setTimeout(() => {\n this.box_height = document.getElementById(box)?.clientHeight || 0;\n if( ( this.viewport_height - box_position) < this.box_height ){\n this.menu_on_top = 'menu-on-top';\n this.box_style = `top: -${ (this.box_height) }px; height: ${this.box_height}px;`;\n }\n }); \n }\n }\n\n toClose(){\n this.menu_show = false;\n this.onClosed.emit();\n }\n\n\n toResize(){\n window.addEventListener('resize', () => {\n this.viewport_width = window.innerWidth;\n this.viewport_height = window.innerHeight;\n this.resolve_position_dropdown(this.menu_show);\n });\n }\n\n toClick(){\n const box = `area-${this.id}`;\n window.addEventListener('click',(e: any) => { \n if( this.menu_show ){\n if( !(document.getElementById(box)?.contains(e.target)) ){ \n this.toClose();\n }\n }\n });\n }\n\n\n \n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.selected_item;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.selected_item) {\n this.selected_item = v;\n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.selected_item) {\n this.selected_item = value;\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n}\n\n","<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tcloud-ui-data-list tc-dropdown\" [class.disabled]=\"disabled || loading\">\n <div *ngIf=\"loading\" class=\"loading-area\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\n <button \n tcloudForm\n #_option\n [class.input-hidden]=\"!showInput\"\n [class.in-border]=\"border\"\n [class.loading-box]=\"loading\"\n [disabled]=\"disabled || loading\"\n class=\"dropdown-toggle button-select no-margin-bottom area-text\" \n type=\"button\" \n id=\"{{ id }}\" \n \n [attr.aria-haspopup]=\"'true'\" \n [attr.aria-expanded]=\"'false'\" \n (click)=\"toOpen();toInput(_option)\" >\n\n <i class=\"tc-placeholder area-text\" *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\n {{ selected_description }}\n <span><i class=\"fas fa-angle-down\"></i></span>\n </button>\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\n\n <div class=\"line-search\" *ngIf=\"search\">\n <table class=\"box-search\">\n <tr>\n\n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n\n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n \n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\n <ng-content></ng-content> \n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <ng-container *ngFor=\"let item of listItems\">\n <tcloud-ui-data-list-option [value]=\"item.value\" [disabled]=\"item?.disabled\" >{{ item?.description }}</tcloud-ui-data-list-option>\n </ng-container>\n </ng-container> \n </div>\n </div>\n</div>\n\n<div *ngIf=\"formulario\">\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\n </form>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monthname',\n standalone: true\n})\nexport class MonthNamePipe implements PipeTransform {\n\n meses: string[] = ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];\n \n\n transform(yyyy_mm: string): string{\n\n if( yyyy_mm !== '' ){\n\n let part = (yyyy_mm).split('-');\n if( (part).length === 2 ){\n let yyyy = +part[0];\n let mm = +part[1];\n\n return this.meses[(mm-1)];\n }\n }\n return '';\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'statusinfo',\n standalone: true\n})\nexport class StatusInfoPipe implements PipeTransform {\n\n status_default = [\n { key: 'SUCCEEDED', value: 'Finalizado' },\n { key: 'PENDING', value: 'Pendente' },\n { key: 'FAILED', value: 'Erro' },\n { key: 'RUNNING', value: 'Em andamento' },\n { key: 'REGISTRATION', value: 'Cadastro Pendente' },\n { key: 'SUCCEED', value: 'Finalizado' },\n { key: 'WAITING', value: 'Aguardando' },\n { key: 'REJECTED', value: 'Rejeitado' },\n ];\n\n status_proposal = [\n { key: 'SUCCEEDED', value: 'Finalizado' },\n { key: 'PENDING', value: 'Aguardando Aprovação' },\n { key: 'FAILED', value: 'Erro' },\n { key: 'RUNNING', value: 'Provisionando Ambientes' },\n { key: 'REGISTRATION', value: 'Cadastro Pendente' },\n { key: 'SUCCEED', value: 'Finalizado' },\n { key: 'WAITING', value: 'Provisionando Ambientes' },\n { key: 'REJECTED', value: 'Rejeitada' },\n ]; \n\n transform(status_name: any, tema?: string): string{\n\n let map_tema = this.status_default;\n\n if( tema && tema !== undefined){\n switch (tema) {\n case 'proposal': map_tema = this.status_proposal; break;\n }\n }\n\n let status_name_in_search = ''; \n if( tema && tema === 'ALL'){\n\n map_tema = this.status_default;\n if( status_name !== undefined && status_name !== null && `${status_name}` !== '' ){\n for( let i = 0; i < (map_tema).length; i++ ){\n if( (`${status_name}`).toLowerCase() === (`${map_tema[i].key}`).toLowerCase() ){\n status_name_in_search += ' ' + map_tema[i].value;\n break;\n }\n }\n }\n\n map_tema = this.status_proposal;\n if( status_name !== undefined && status_name !== null && `${status_name}` !== '' ){\n for( let i = 0; i < (map_tema).length; i++ ){\n if( (`${status_name}`).toLowerCase() === (`${map_tema[i].key}`).toLowerCase() ){\n status_name_in_search += ' ' + map_tema[i].value;\n break\n }\n }\n }\n\n }else{\n if( status_name !== undefined && status_name !== null && `${status_name}` !== '' ){\n for( let i = 0; i < (map_tema).length; i++ ){\n if( (`${status_name}`).toLowerCase() === (`${map_tema[i].key}`).toLowerCase() ){\n status_name_in_search += ' ' + map_tema[i].value;\n break;\n }\n }\n }\n }\n\n\n if( status_name_in_search !== '' ){\n return status_name_in_search;\n }\n\n return status_name;\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'respective',\n standalone: true\n})\nexport class RespectivePipe implements PipeTransform {\n\n map = [\n // Tipos de Ambientes\n { key: 'production', value: 'Produção' },\n { key: 'development', value: 'Desenvolvimento' },\n { key: 'qa', value: 'Qualidade' },\n\n // Implantação / Migração\n { key: 'golive', value: 'Pré GoLive' },\n { key: 'kickoff', value: 'Kickoff' },\n\n // Tipos de Clientes\n { key: 'prime', value: 'Prime' },\n { key: 'p', value: 'Pequeno' },\n { key: 'm', value: 'Médio' },\n { key: 'g', value: 'Grande' },\n\n // Produtos\n { key: '2c', value: 'Carol' },\n { key: 'carol', value: 'carol' },\n { key: 'consinco', value: 'Consinco' },\n { key: 'datasul', value: 'Datasul' },\n { key: 'fluig', value: 'Fluig' },\n { key: 'license-server', value: 'License Server' },\n { key: 'pep', value: 'PEP' },\n { key: 'protheus', value: 'Protheus' },\n { key: 'pvi', value: 'PVI' },\n { key: 'rm', value: 'RM' },\n { key: 'sfa', value: 'SFA' },\n { key: 'smartrm', value: 'Smart RM' },\n { key: 'smartrmcluster', value: 'Smart RM Cluster' },\n { key: 'smartrmcontrol', value: 'Smart RM Control' },\n { key: 'taf', value: 'TAF' },\n { key: 'treports', value: 'Treports' },\n { key: 'tss', value: 'TSS' },\n { key: 'winthor', value: 'Winthor' },\n\n // Tipos de SO\n { key: 'windows', value: 'Windows' },\n { key: 'linux', value: 'Linux' },\n\n // Tipos responsaveis\n { key: 'prime_customer_success', value: 'Customer Success' },\n { key: 'project_manager', value: 'Gerente de Projetos' },\n { key: 'prime_engineer', value: 'Engenheiro Prime' }\n\n ];\n \n\n transform(v: any): string{\n\n if( v !== undefined && v !== null && v !== '' ){\n\n if( typeof v === 'string' ){\n for( let i = 0; i < (this.map).length; i++ ){\n let custom_v = v;\n custom_v = (custom_v).toLowerCase();\n custom_v = (custom_v).trim();\n custom_v = (custom_v).replace(/\\_/g, \"-\");\n const current_key = (this.map[i].key).replace(/\\_/g, \"-\");\n if( (custom_v).toLowerCase() === current_key ){\n return `${this.map[i].value}`;\n }\n }\n }else{\n return '';\n }\n \n \n }\n return `${v}`;\n }\n\n \n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'cnpj',\n standalone: true\n})\nexport class CNPJPipe implements PipeTransform {\n mascara: string = \"##.###.###/####-##\";\n createMask(v: any){\n const mask = this.mascara;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length == 14 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n transform(cnpj: string): string{ \n return this.createMask(cnpj);\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'cpf',\n standalone: true\n})\nexport class CPFPipe implements PipeTransform {\n mascara: string = \"###.###.###-##\";\n createMask(v: any){\n const mask = this.mascara;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length == 11 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n transform(cpf: string): string{ \n return this.createMask(cpf);\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bytes',\n standalone: true\n})\nexport class BytesPipe implements PipeTransform {\n\n formatBytes(a: number, b = 2): string {\n if (!a) return '---';\n if (0 === a) return '0 Bytes';\n const c = 0 > b ? 0 : b, d = Math.floor(Math.log(a) / Math.log(1024));\n return parseFloat((a / Math.pow(1024, d)).toFixed(c)) + ' ' + [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"][d];\n }\n \n transform(value: any, typeValue?: string): string{ \n \n if( typeValue !== undefined && typeValue !== null && typeValue !== '' ){\n \n if( (typeValue).toLowerCase() === 'kb' ){\n value = value * 1024\n }\n\n if( (typeValue).toLowerCase() === 'mb' ){\n value = (value * 1024) * 1024\n }\n }\n \n const b: number = +value; \n return this.formatBytes(b);\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'datebr',\n standalone: true\n})\nexport class DateBRPipe implements PipeTransform {\n mascara: string = \"##/##/####\";\n createMask(v: any){\n const mask = this.mascara;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length <= 10 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n\n createMask4(v: any){\n const mask = \"##/##\";\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length <= 10 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n\n create_mask(v: string, _mask: string){\n const mask = _mask;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length <= 10 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n\n transform(v: string): string{ \n \n if( v ){\n\n v = (v).replace(/\\//g, \"\");\n\n if( (v).length == 1 ){ return this.create_mask(v,'#'); }\n if( (v).length == 2 ){ return this.create_mask(v,'##/'); }\n if( (v).length == 3 ){ return this.create_mask(v,'##/#'); }\n if( (v).length == 4 ){ return this.create_mask(v,'##/##'); }\n if( (v).length == 5 ){ return this.create_mask(v,'##/##/#'); }\n if( (v).length == 6 ){ return this.create_mask(v,'##/##/##'); }\n if( (v).length == 7 ){ return this.create_mask(v,'##/##/###'); }\n return this.create_mask(v,'##/##/####');\n }\n return '';\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'toText',\n standalone: true\n})\nexport class ToTextPipe implements PipeTransform {\n\n formatBytes(value: any): string {\n let v = '';\n let t = '';\n for( let i = 0; i < (value).length; i++ ){\n t += v + `${value[i]}`;\n\n v = ', ';\n if( (i+1) === ((value).length) - 1 ){\n v = ' e ';\n }\n }\n return t\n }\n \n transform(value: any): any{ \n if( value && (value).length > 0 ){\n return this.formatBytes(value);\n }\n return value; \n }\n}","import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter, forwardRef, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateBRPipe } from '../../_pipes';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n// https://mymth.github.io/vanillajs-datepicker/#/\ndeclare var Datepicker: any;\n\nvar translation = {\n ptBR: {\n days: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"],\n daysShort: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n daysMin: [\"Do\", \"Se\", \"Te\", \"Qu\", \"Qu\", \"Se\", \"Sa\"],\n months: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n monthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"],\n today: \"Hoje\",\n clear: \"Limpar\",\n titleFormat: \"MM y\",\n format: \"dd/mm/yyyy\",\n weekStart: 0\n }\n};\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiDatepickerComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-datepicker',\n templateUrl: './tcloud-ui-datepicker.component.html',\n styleUrls: [\n './tcloud-ui-datepicker.component.scss',\n './datepicker/css/datepicker.min.css',\n './datepicker/css/style.css',\n ],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, DateBRPipe],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, FormsModule, DateBRPipe]\n})\nexport class TCloudUiDatepickerComponent implements OnInit {\n\n // multiple permite selecionar multiplas datas\n @Input() multiple: boolean = false;\n\n // maxNumberOfDates - Maximum number of dates users can select. No limit is applied if 0 is set.\n // Depende de: multiple como true\n @Input() maxNumberOfDates: number = 0;\n\n // daysOfWeekDisabled - Dias da semana desabilidatos = 0 para sabado até 6 para domingo\n @Input() daysOfWeekDisabled: number[] = [];\n\n // minDate - Data minima para exibicao do calendario - ex: 01/01/2020\n @Input() minDate: string = '';\n\n // maxDate - Data maxima para exibicao do calendario - ex: 31/12/2020\n @Input() maxDate: string = '';\n\n // datesDisabled - Datas desabilitadas - Ex: ['12/10/2020','25/12/2020']\n @Input() datesDisabled: string[] = [];\n\n // modeInput - Exibe um input para quando clicar abrir o calendario\n @Input() modeInput: boolean = false;\n\n @Input() useBorder: boolean = true;\n\n @Input() childInputDateTime: boolean = false;\n\n @Input() startViewInMinDate: boolean = false;\n\n @Input() startViewInMaxDate: boolean = false;\n\n @Input() disabled: boolean = false;\n\n // onChange - Dispara a data selecionada\n @Output() onChange = new EventEmitter<any|undefined>();\n\n default_innerValue: any | undefined;\n default_innerValue_convertida: any | undefined;\n default_qtd_innerValue: number = 0;\n date_changed: any | undefined;\n\n @Input() set ngModel(v: any){\n\n if( v && v !== this.innerValue ){\n this.innerValue = v; //this.toSetMask(v); \n this.default_innerValue = v;\n this.default_innerValue_convertida = this.convertDates(v);\n if( this.multiple ){\n this.default_qtd_innerValue = (v).length;\n } \n this.onChange.emit(v);\n } \n }\n\n @Output() ngModelChange = new EventEmitter<any|undefined>();\n\n @Output() onCheckDate = new EventEmitter<any>();\n\n @ViewChild('input_datepicker', {static: false}) input_datepicker: ElementRef<HTMLElement> | undefined;\n private datepicker: any | undefined;\n @Input() code: string = 'tcloud-ui-datepicker';\n\n constructor(\n private _DateBRPipe: DateBRPipe,\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n ) { }\n \n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n\n ID: string = '';\n\n ngOnInit(): void {\n this.ID = this.generateID();\n Datepicker.locales.ptBR = translation.ptBR; \n this.start_datepicker();\n }\n\n generateID(): string{\n return `tcloud-ui-datepicker-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n toSetMask(v: string){\n return this._DateBRPipe.transform(v);\n }\n\n parseDateLocal(dateString: any, _split?: string){\n if( !_split ){ _split = '-'; }\n const [day , month, year] = dateString.split(_split);\n return new Date(year, month - 1, day); // Subtrai 1 porque os meses são indexados a partir de 0\n }\n\n formatDateLocal(date: any){\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0\n const day = String(date.getDate()).padStart(2, '0');\n return `${day}/${month}/${ year}`;\n }\n\n get_options(){\n // Função para formatar uma data no fuso horário local\n const formatDateLocal = (date: any) => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n\n // Função para analisar uma data no fuso horário local\n const parseDateLocal = (dateString: any) => {\n const [year, month, day] = dateString.split('-');\n return new Date(year, month - 1, day);\n }\n\n let options = {\n nextArrow: `<i class=\"fas fa-caret-right\"></i>`,\n prevArrow: `<i class=\"fas fa-caret-left\"></i>`,\n format: 'dd/mm/yyyy', \n daysOfWeekHighlighted: [0,6],\n language: 'ptBR',\n formatter: {\n date: formatDateLocal,\n },\n parser: {\n date: parseDateLocal,\n } \n } as any;\n\n if( (this.daysOfWeekDisabled).length > 0 ){\n options['daysOfWeekDisabled'] = this.daysOfWeekDisabled;\n }\n\n if( (this.datesDisabled).length > 0 ){\n options['datesDisabled'] = this.datesDisabled;\n }\n\n if( this.minDate !== '' ){\n options['minDate'] = this.minDate;\n }\n\n if( this.maxDate !== '' ){\n options['maxDate'] = this.maxDate;\n }\n\n if( this.multiple ){ \n options['multiple'] = true; \n options['autohide'] = false; \n options['maxNumberOfDates'] = this.maxNumberOfDates;\n }\n \n return options;\n }\n\n clearDate(){\n if( this.datepicker ){ this.datepicker.setDate({clear: true}); }\n }\n\n start_datepicker(){\n setTimeout(() => { \n const input_datepicker = <any> this.input_datepicker?.nativeElement;\n if( input_datepicker ){\n input_datepicker.setAttribute('placeholder','DD/MM/YYYY');\n\n if( !this.useBorder ){\n input_datepicker.setAttribute('style','border:none; text-align: center; max-width: 105px; padding: 0;');\n }\n \n this.datepicker = new Datepicker( input_datepicker, this.get_options() ); \n if( this.innerValue && this.innerValue !== '' ){\n this.toSetDefaultDate(this.innerValue);\n }\n\n input_datepicker.addEventListener('keyup', (event: any) => {\n const v = (input_datepicker['value']) ? input_datepicker['value'] : '';\n input_datepicker['value'] = this.toSetMask(v);\n if( (input_datepicker['value']).length >= 10 ){\n const v = (input_datepicker['value']).substring(0, 10);\n const part_date = (v).split('/');\n if( (part_date).length === 3 ){\n\n let dia = part_date[0];\n let mes = part_date[1];\n let ano = part_date[2];\n\n mes = (+(mes) < 10 ) ? `0${+mes}` : mes; \n dia = (+(dia) < 10 ) ? `0${+dia}` : dia;\n\n const dt = new Date(ano+'-'+mes+'-'+dia);\n if( dt ){\n input_datepicker?.changeDate;\n document.getElementById(this.ID)?.blur();\n this.onChange.emit(this.innerValue);\n this.ngModelChange.emit(this.innerValue);\n }\n }\n }else{\n this.innerValue = undefined;\n this.onChange.emit(this.innerValue);\n this.ngModelChange.emit(this.innerValue);\n }\n })\n\n \n input_datepicker.addEventListener('changeDate', (event: any) => {\n\n if( event?.detail?.date ){\n\n let qtd = (event.detail.date).length; \n\n if( this.disabled ){\n\n if( !this.multiple ){\n let dt = this.formatDateLocal(event.detail?.date);\n if( this.default_innerValue && this.default_innerValue[0] && ( `${this.default_innerValue[0]}` !== `${dt}` ) ){\n qtd = 1\n }\n }\n \n this.datepicker.setDate( this.default_innerValue_convertida, {clear: true, render: true});\n \n if( qtd > this.default_qtd_innerValue ){\n this.date_changed = event?.detail.viewDate;\n this.datepicker.setFocusedDate( this.date_changed, {resetView: false} );\n\n this.onCheckDate.emit({\n value: this.formatDateLocal(this.date_changed), \n date: this.date_changed, \n checked: true,\n disabled: this.disabled\n });\n }else{\n\n if( this.multiple ){\n const so = this.findDifferences( this.default_innerValue, this.formatArrayDates(event.detail.date) );\n if( so && (so).length > 0 ){\n\n this.date_changed = this.parseDateLocal(so[0], '/');\n this.onCheckDate.emit({\n value :so[0], \n date: this.date_changed,\n checked: false,\n disabled: this.disabled\n });\n }\n }\n\n this.datepicker.setFocusedDate( this.date_changed, {resetView: false} );\n }\n }else{\n\n\n this.toSelectedDate( event.detail );\n }\n }else{\n this.innerValue = '';\n this.ngModelChange.emit(this.innerValue);\n }\n })\n } \n });\n }\n\n\n toSetDefaultDate(date: string | string[]){\n \n if( date === undefined || date === null || date === '' ){\n this.clearDate();\n return;\n }\n\n let dates = [] as string[];\n\n if( date && typeof date === 'string' ){\n if( (date).includes(',') ){\n const dates = (date).split(',');\n date = dates;\n if( !this.multiple ){\n this.innerValue = date = dates[0];\n this.ngModelChange.emit(this.innerValue); \n }\n }\n }\n \n if( date && typeof date === 'string' ){\n (dates).push( date ); \n }else{\n dates = <Array<string>> date;\n }\n if( this.datepicker ){\n\n if( dates && dates.length > 0 && this.multiple ){\n if( this.startViewInMinDate ){ \n dates = this.sortDatesDescending(dates); \n }else if(this.startViewInMaxDate){\n dates = this.sortDatesAscending(dates); \n }\n }\n this.datepicker.setDate(dates); \n } \n }\n\n convertDates(arrayDeDatas: any[]) {\n const formatDate = (dateString: any) => {\n const [day, month, year] = dateString.split('/');\n return new Date(year, month - 1, day); \n }\n if( arrayDeDatas && Array.isArray(arrayDeDatas) ){\n const datasOrdenadas = arrayDeDatas.map((data: any) => ({ original: data, convertida: formatDate(data) }));\n return datasOrdenadas.map(item => item.convertida); \n }else{\n return [arrayDeDatas];\n }\n }\n\n sortDatesDescending(arrayDeDatas: any[]) {\n const formatDate = (dateString: any) => {\n const [day, month, year] = dateString.split('/');\n return new Date(year, month - 1, day); \n }\n const datasOrdenadas = arrayDeDatas.map((data: any) => ({ original: data, convertida: formatDate(data) })).sort((a:any, b: any) => b.convertida - a.convertida);\n const datasOrdenadasFormatadas = datasOrdenadas.map(item => item.original); \n return datasOrdenadasFormatadas;\n }\n \n sortDatesAscending(arrayDeDatas: any[]) {\n const formatDate = (dateString: any) => {\n const [day, month, year] = dateString.split('/');\n return new Date(year, month - 1, day); \n }\n const datasOrdenadas = arrayDeDatas.map((data: any) => ({ original: data, convertida: formatDate(data) })).sort((a:any, b: any) => a.convertida - b.convertida);\n const datasOrdenadasFormatadas = datasOrdenadas.map(item => item.original);\n return datasOrdenadasFormatadas;\n }\n\n toSelectedDate(detail: any){ \n if( detail.datepicker.dates && (detail.datepicker.dates).length > 0 ){\n if( this.multiple ){\n let dates = [];\n for( let i = 0; i < (detail.datepicker.dates).length; i++ ){\n const timeStamp = <number> detail.datepicker.dates[i];\n (dates).push( this.format_date( timeStamp ) );\n }\n this.innerValue = dates;\n this.onChange.emit(this.innerValue); \n }else{\n const timeStamp = <number> detail.datepicker.dates[0];\n const date = this.format_date( timeStamp );\n this.onChange.emit(date);\n this.innerValue = date;\n } \n }else{\n this.clearDate();\n this.innerValue = null;\n this.onChange.emit(this.innerValue);\n } \n this.value = this.innerValue;\n this.ngModelChange.emit(this.innerValue); \n }\n\n format_date(timeStamp: number){\n var date = new Date(timeStamp);\n\n let dia = `${date.getDate()}`;\n let mes = `${date.getMonth()+1}`;\n let ano = `${date.getFullYear()}`;\n\n dia = (+(dia) < 10 ) ? `0${+dia}` : dia;\n mes = (+(mes) < 10 ) ? `0${+mes}` : mes; \n\n const dateFormat = `${dia}/${mes}/${ano}`;\n return dateFormat;\n }\n\n toClickIn(id: string){\n const element = document.getElementById(id) as any;\n setTimeout(() => { \n element?.datepicker?.show();\n });\n }\n\n\n\n findDifferences(array1: any, array2: any) {\n const conjuntoComum = new Set([...array1, ...array2]);\n return Array.from(conjuntoComum).filter(item => !(array1.includes(item) && array2.includes(item)));\n }\n\n\n\n formatArrayDates(array_dates: any){\n let formateds = [];\n if( array_dates && (array_dates).length > 0 ){\n const formatDateLocal = (date: any) => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0\n const day = String(date.getDate()).padStart(2, '0');\n return `${day}/${month}/${year}`;\n }\n for( let i = 0; i < (array_dates).length; i++ ){\n const dt = array_dates[i];\n (formateds).push( formatDateLocal(dt) )\n }\n }\n return formateds;\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n\n if (v !== this.innerValue) {\n this.innerValue = v; // this.toSetMask(v); \n this.onChangeCallback(v);\n }else{\n // this.innerValue = '';\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefaultDate(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n}\n","<!-- Input mode -->\n<ng-container *ngIf=\"modeInput\">\n\n <div class=\"tcloud-ui-datepicker input-tc-datepicker {{layout}}\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\n <table class=\"table-box-input\">\n <tr>\n @if (layout === 'classic') {\n <td class=\"td-icon\">\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\n </td>\n }\n <td class=\"td-date\">\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\" >\n </td>\n @if (layout === 'modern') {\n <td class=\"td-icon\">\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fa-light fa-calendar c-neutral-900\"></i></div>\n </td>\n }\n </tr>\n </table>\n </div>\n</ng-container>\n\n<!-- Inline mode -->\n<ng-container *ngIf=\"!modeInput\">\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\n</ng-container>\n\n<!-- EX de uso \n <tc-datepicker \n [multiple]=\"false\"\n [daysOfWeekDisabled]=\"[0,6]\"\n [minDate]=\"'18/11/2021'\"\n [maxDate]=\"'18/12/2023'\"\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\n [modeInput]=\"false\"\n (onChange)=\"($event)\"\n (onCheckDate)=\"onCheckDate($event)\"\n [(ngModel)]=\"dateValue\" >\n </tc-datepicker>\n \n // multiple = false\n // dateValue - string - pode ser: 12/12/2022 \n\n // multiple = true\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \n\n <pre>data: {{ dateValue }}</pre>\n-->","import { Component, forwardRef, OnInit, EventEmitter, Output, Input, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ISelectOptions } from '../tcloud-ui-data-list/tcloud-ui-data-list';\nimport { TCloudUiDatepickerComponent } from '../tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiDataListComponent } from '../tcloud-ui-data-list/tcloud-ui-data-list.component';\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiDatepickerTimeComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-datepicker-time',\n templateUrl: './tcloud-ui-datepicker-time.component.html',\n styleUrls: ['./tcloud-ui-datepicker-time.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [CommonModule, FormsModule, TCloudUiDatepickerComponent, TCloudUiDataListComponent]\n})\nexport class TCloudUiDatepickerTimeComponent implements OnInit {\n\n show_date_picker: boolean = true;\n\n private _ngModel: any | undefined;\n @Input() set ngModel(v: any){\n if( v && v !== this.innerValue ){\n this.innerValue = v; \n } \n }\n @Output() ngModelChange = new EventEmitter<Date>();\n\n @Output() onChange = new EventEmitter<Date>();\n @Output() eventChange = new EventEmitter<any>();\n\n // minDate - Data minima para exibicao do calendario - ex: 01/01/2020\n @Input() minDate: string = '';\n\n // maxDate - Data maxima para exibicao do calendario - ex: 31/12/2020\n @Input() maxDate: string = '';\n\n @Input() useOptionsDateTime = false;\n\n DD_MM_YYYY: string = '';\n HH: string = '00';\n MM: string = '00';\n\n ID: string = '';\n\n option_HH: string[] | undefined;\n option_MM: string[] | undefined;\n\n @ViewChild('_datepickertime', {static: false}) datepickertime: ElementRef<HTMLElement> | undefined;\n\n options_date_time : ISelectOptions[] = [];\n open_options_date_time: boolean = false;\n\n last_options_date_time: any;\n description_options_date_time: any = '';\n value_options_date_time: any = '';\n\n ngOnInit(): void {\n\n\n this.setOptionsDateTime();\n\n this.ID = this.generateID();\n this.option_HH = this.getListTIME(23);\n this.option_MM = this.getListTIME(59);\n }\n\n setOptionsDateTime(){\n this.options_date_time = [\n {value:'7-days', description: '7 dias'},\n {value:'15-days', description: '15 dias'},\n {value:'30-days', description: '30 dias'},\n {value:'current-month', description: 'Mês atual até agora'},\n {value:'current-year', description: 'Ano atual até agora'}\n ]\n }\n\n generateID(): string{\n return `tcloud-ui-datepicker-time-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n getListTIME(v: number){\n let mm = [];\n for(let i = 0; i <= v; i++ ){\n if( i < 10 ){\n (mm).push(`0${i}`);\n }else{\n (mm).push(`${i}`);\n }\n }\n return mm;\n }\n\n toSetDate(date: string){ \n this.set_date_by_datepicker(date);\n }\n\n toSetTime(){\n if( this.DD_MM_YYYY && ((this.DD_MM_YYYY).trim()).length === 10){\n const date = (this.DD_MM_YYYY).replace(/-/g, '/');\n let date_part = (date).split('/');\n let dd = date_part[0];\n let mm = date_part[1];\n let yy = date_part[2];\n const datetime = new Date(`${yy}-${mm}-${dd}`);\n if( this.checkIsDate(datetime) ){\n this.set_date_by_datepicker(date);\n }\n }\n }\n\n set_date_by_datepicker(date: string){\n\n if( date ){\n date = (date).replace(/-/g, '/');\n let date_part = (date).split('/');\n let dia = date_part[0];\n let mes = date_part[1];\n let ano = date_part[2];\n\n let hh = this.HH;\n if( !hh ){\n hh = '00';\n }else{\n if( ( +(hh) >= 0 && +(hh) < 24 ) ){\n hh = (+(hh) < 10 ) ? `0${+(hh)}` : `${+(hh)}`;\n }else{\n hh = '00';\n }\n }\n\n let mm = this.MM;\n if( !mm ){\n mm = '00';\n }else{\n if( ( +(mm) >= 0 && +(mm) < 60 ) ){\n mm = (+(mm) < 10 ) ? `0${+(mm)}` : `${+(mm)}`;\n }else{\n mm = '00';\n }\n }\n\n if( hh === '00' ){ this.HH = hh; }\n if( mm === '00' ){ this.MM = mm; }\n\n const notation = '00';\n\n const str_date = `${ano}-${mes}-${dia}T${hh}:${mm}:${notation}`;\n const datetime = new Date( str_date );\n \n if( this.checkIsDate(datetime) ){\n this.innerValue = datetime;\n }else{\n this.innerValue = undefined;\n }\n\n // console.log('this.datepickertime?.nativeElement', this.datepickertime?.nativeElement);\n\n // if(this.datepickertime && this.datepickertime.nativeElement){\n // const elem = <any> this.datepickertime.nativeElement;\n // elem.value = this.innerValue;\n // }\n\n this.ngModelChange.emit( this.innerValue );\n this.onChange.emit( this.innerValue );\n this.eventChange.emit( this.datepickertime?.nativeElement );\n\n }else{\n\n this.description_options_date_time = '';\n this.value_options_date_time = '';\n\n this.innerValue = undefined;\n this.ngModelChange.emit( this.innerValue );\n this.onChange.emit( this.innerValue );\n this.eventChange.emit( this.datepickertime?.nativeElement );\n }\n\n if( `${this.last_options_date_time}` !== `${this.innerValue}` ){\n // this.description_options_date_time = '';\n // this.value_options_date_time = '';\n }\n\n }\n\n // Distribuir os valores da data por pedaços: data - hora - min\n to_date_hh_mm(d: Date){\n let dia = `${(d).getDate()}`;\n dia = (+(dia) < 10 ) ? `0${+dia}` : dia;\n let mes = `${(d).getMonth()+1}`;\n mes = (+(mes) < 10 ) ? `0${+mes}` : mes; \n\n let ano = `${(d).getFullYear()}`;\n let hh = `${(d).getHours()}`;\n let mm = `${(d).getMinutes()}`;\n\n if( hh && ( +(hh) < 0 || +(hh) > 23 ) ){ hh = '00'; }\n hh = (hh) ? ( (+(hh) < 10 ) ? `0${hh}` : hh ) : '00';\n\n if( mm && ( +(mm) < 0 || +(mm) > 59 ) ){ mm = '00'; }\n mm = (mm) ? ( (+(mm) < 10 ) ? `0${mm}` : mm ) : '00';\n\n this.MM = mm;\n this.HH = hh;\n\n this.DD_MM_YYYY = `${dia}/${mes}/${ano}`;\n }\n\n checkIsDate(d: any): boolean{\n\n if(Object.prototype.toString.call(d) === \"[object Date]\") {\n if(isNaN(d)) { return false; } else { return true; }\n } \n return false;\n }\n\n\n clean(){\n this.DD_MM_YYYY = '';\n this.HH = '00';\n this.MM = '00';\n this.description_options_date_time = '';\n this.value_options_date_time = '';\n }\n\n toClickIn(id: string){\n document.getElementById(id)?.focus();\n }\n\n onClosedOptionsDateTime(){\n this.open_options_date_time = false\n }\n\n \n onChangeOptionsDateTime(event: any){\n // this.description_options_date_time = '';\n // this.value_options_date_time = '';\n this.show_date_picker = false;\n\n let now = new Date();\n let filter_date: any = undefined;\n if( event === '7-days' ){\n filter_date = new Date( (new Date(now)).setDate( now.getDate() - 7 ) ); \n filter_date = new Date( (filter_date).setSeconds(0) ); \n }\n\n if( event === '15-days' ){\n filter_date = new Date( (new Date(now)).setDate( now.getDate() - 15 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === '30-days' ){\n filter_date = new Date( (new Date(now)).setDate( now.getDate() - 30 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === 'current-month' ){\n filter_date = new Date(now.getFullYear(), now.getMonth(), 1);\n }\n\n if( event === 'current-year' ){\n filter_date = new Date(now.getFullYear(), 0, 1);\n }\n\n if(filter_date){ \n this.innerValue = filter_date;\n if( this.checkIsDate(filter_date) ){ \n setTimeout(() => {\n this.to_date_hh_mm(filter_date);\n this.toSetDate(this.DD_MM_YYYY); \n this.show_date_picker = true;\n this.value_options_date_time = event;\n this.last_options_date_time = filter_date as any;\n this.description_options_date_time = this.get_description_options_date_time(event);\n }); \n }\n }\n\n }\n\n\n get_description_options_date_time(value: string){\n if( this.options_date_time && (this.options_date_time).length > 0 ){\n for( let i = 0; i < (this.options_date_time).length; i++ ){\n const item = this.options_date_time[i];\n if( item.value === value ){\n return item.description;\n }\n }\n }\n return '';\n }\n\n\n closedTimeDescription(){\n this.value_options_date_time = '';\n this.description_options_date_time = ''; \n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n\n try {\n value = new Date( `${value}` );\n } catch (error) {}\n\n this.innerValue = value;\n if( this.checkIsDate(value) ){\n this.to_date_hh_mm(value);\n }else{\n this.clean()\n }\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n}\n","<div class=\"tcloud-ui-datepicker-time\">\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\n <form #_formulario=\"ngForm\">\n <div class=\"input-control-time\">\n <div class=\"form-control-time\">\n\n <table style=\"width: 100%;\">\n <tr>\n <td>\n\n <div class=\"input-options-date\">\n <table class=\"form-time\">\n <tr>\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\n <td class=\"area-input-date\">\n <ng-container *ngIf=\"show_date_picker\">\n <tcloud-ui-datepicker [minDate]=\"minDate\" [maxDate]=\"maxDate\" #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\n </ng-container>\n </td>\n \n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\n <td class=\"area-input-hour\">\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\n <ng-container *ngFor=\"let hh of option_HH\">\n <option [ngValue]=\"hh\">{{ hh }}</option>\n </ng-container>\n </select>\n </td>\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\n <td class=\"area-input-minute\">\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\n <ng-container *ngFor=\"let mm of option_MM\">\n <option [value]=\"mm\">{{ mm }}</option>\n </ng-container>\n </select>\n </td>\n <td class=\"area-clean\"></td>\n </tr>\n </table>\n\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\n <strong>{{ description_options_date_time }}</strong>\n\n <!-- <div class=\"area-action-date-time-selected\">\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\n <i class=\"fas fa-times\"></i>\n </button> \n </div> -->\n </div>\n\n\n </div>\n\n </td>\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\n </button>\n\n <ng-container *ngIf=\"value_options_date_time !== ''\">\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\n <i class=\"fas fa-times\"></i>\n </button> \n </ng-container>\n\n </td>\n </tr>\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\n <td colspan=\"2\">\n <tcloud-ui-data-list \n name=\"value_options_date_time\"\n [showInput]=\"false\" \n [search]=\"false\" \n [open]=\"true\" \n [listItems]=\"options_date_time\" \n (onClosed)=\"onClosedOptionsDateTime()\"\n [ngModel]=\"value_options_date_time\"\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\n >\n </tcloud-ui-data-list>\n\n \n\n\n \n </td>\n </tr>\n </table>\n\n \n </div>\n </div>\n </form>\n</div>","export interface TCDataFilters{\n description: string; \n searchIn: string;\n notIn?: boolean;\n type?: TCFiltersType;\n name?: string;\n id?: string;\n\n searchText?: any;\n accept?: boolean;\n placeholder?: string;\n width?: string;\n data?: TCDataOtions[];\n condition?: TCCondition;\n value?: any;\n selectFirstOptionHidden?: boolean;\n\n // For datepicker\n defaultValuePeriodStartStop?: any;\n UTC?: boolean;\n useOptionsDateTime?: boolean;\n}\n\nexport interface TCDataOtions {\n description: string;\n value: any;\n notValues?: string[];\n}\n\nexport enum TCFiltersType{\n text = \"text\",\n number = \"number\",\n select = \"select\", \n boolean = \"boolean\",\n hidden = \"hidden\",\n\n date = \"date-local\",\n datetime = \"datetime-local\",\n\n browserdate = \"date\",\n browserdatetime = \"datetime\"\n}\n\nexport enum TCCondition{\n equal = \"equal\",\n gte = \"gte\",\n lte = \"lte\",\n lt = \"lt\",\n gt = \"gt\",\n notEqual = \"notEqual\"\n}","import { Component, Input, OnInit, Output, EventEmitter, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TCloudUiDatepickerComponent } from '../../../tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiDatepickerTimeComponent } from '../../../tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiRangeDateComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiRangeDateComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n\ninterface IResultDateTime{\n start: any;\n stop: any;\n}\n\n@Component({\n selector: 'tcloud-ui-range-date',\n templateUrl: './range-date.component.html',\n styleUrls: ['./range-date.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TCloudUiDatepickerComponent, TCloudUiDatepickerTimeComponent]\n})\nexport class TCloudUiRangeDateComponent implements OnInit {\n\n result = {} as IResultDateTime;\n\n options_date_time: any = [];\n use_validation_required: boolean = false;\n\n @Output() onChange = new EventEmitter<IResultDateTime>();\n\n @Input() defaultValuePeriodStartStop: string = '';\n @Input() required: string | undefined;\n\n @Input() descriptionStart: string = '';\n @Input() descriptionStop: string = '';\n\n mode: string = 'select';\n\n isValid = false;\n\n constructor() { }\n\n ngOnInit(): void {\n this.setOptionsDateTime();\n }\n\n setOptionsDateTime(){\n this.options_date_time = [\n {value:'1-last-time', description: 'Última 1 hora'},\n {value:'3-last-time', description: 'Últimas 3 horas'},\n {value:'6-last-time', description: 'Últimas 6 horas'},\n {value:'24-last-time', description: 'Últimas 24 horas'},\n\n {value:'7-days', description: 'Últimos 7 dias'},\n {value:'15-days', description: 'Últimos 15 dias'},\n {value:'30-days', description: 'Últimos 30 dias'},\n {value:'current-month', description: 'Mês atual'},\n {value:'current-year', description: 'Ano atual'}\n ]\n setTimeout(() => {\n if( this.defaultValuePeriodStartStop !== '' ){\n this.onChangeOptionsDateTime( this.defaultValuePeriodStartStop );\n }\n });\n \n }\n\n onChangeOptionsDateTime(event?: any){\n this.isValid = false;\n // this.description_options_date_time = '';\n // this.value_options_date_time = '';\n event = (event && event.value) ? `${event.value}` : `${event}`;\n\n let now = new Date();\n let current_date = new Date();\n let filter_date: any = undefined;\n\n\n if( event === '1-last-time' ){\n filter_date = new Date(current_date.getTime() - 1 * 60 * 60 * 1000);\n }\n\n if( event === '3-last-time' ){\n filter_date = new Date(current_date.getTime() - 3 * 60 * 60 * 1000);\n }\n\n if( event === '6-last-time' ){\n filter_date = new Date(current_date.getTime() - 6 * 60 * 60 * 1000);\n }\n\n if( event === '24-last-time' ){\n filter_date = new Date(current_date.getTime() - 24 * 60 * 60 * 1000);\n }\n\n if( event === '7-days' ){\n filter_date = new Date( (new Date(current_date)).setDate( now.getDate() - 7 ) ); \n filter_date = new Date( (filter_date).setSeconds(0) ); \n }\n\n if( event === '15-days' ){\n filter_date = new Date( (new Date(current_date)).setDate( now.getDate() - 15 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === '30-days' ){\n filter_date = new Date( (new Date(current_date)).setDate( now.getDate() - 30 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === 'current-month' ){\n filter_date = new Date(now.getFullYear(), now.getMonth(), 1);\n }\n\n if( event === 'current-year' ){\n filter_date = new Date(now.getFullYear(), 0, 1);\n }\n\n if(filter_date){ \n this.result = {\n start: this.getTransformDate(filter_date),\n stop: this.getTransformDate(now)\n } as IResultDateTime;\n\n this.onChange.emit(this.result);\n this.isValid = true;\n }else{\n \n this.result = {} as IResultDateTime;\n this.onChange.emit(this.result);\n this.isValid = false;\n \n }\n\n }\n\n getTransformDate(dt: any){\n //return (dt).toLocaleString('pt-BR');\n return dt;\n /*\n const ano = dt.getFullYear();\n const mes = dt.getMonth();\n const dia = dt.getDate();\n const horas = dt.getHours();\n const minutos = dt.getMinutes();\n return new Date(Date.UTC(ano, mes, dia, horas, minutos));\n */\n }\n\n onChangeStartDateTime(event: any){\n this.isValid = false;\n if( this.result && this.result.start){\n this.result.start = event.value = this.getTransformDate(event.value);\n this.onChange.emit(this.result);\n this.isValid = true;\n }else{\n this.result = {} as IResultDateTime;\n this.onChange.emit(this.result);\n }\n }\n\n onChangeStopDateTime(event: any){\n this.isValid = false;\n if( this.result && this.result.stop ){\n this.result.stop = event.value = this.getTransformDate(event.value);\n this.onChange.emit(this.result);\n this.isValid = true;\n }else{\n this.result = {} as IResultDateTime;\n this.onChange.emit(this.result);\n }\n }\n\n toggle(){\n const mode = ( `${this.mode}` === 'select' ) ? 'datepickers' : 'select';\n this.defaultValuePeriodStartStop = '';\n this.isValid = false;\n this.result = {} as IResultDateTime;\n this.mode = mode;\n this.onChange.emit(this.result);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n //this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n check_is_valid(): boolean{\n if( this.result && this.result.start && this.result.stop ){\n return true;\n }\n return false;\n }\n\n}\n","<table class=\"tcloud-ui-filters-range-date area-range-date\">\n <tr>\n\n <td>\n <div *ngIf=\"mode === 'select'\">\n <div class=\"description-period\">Período</div>\n <select name=\"periodo\" class=\"tc-form-control\" (change)=\"onChangeOptionsDateTime($event.target)\" [(ngModel)]=\"defaultValuePeriodStartStop\" >\n <option value=\"\"></option> \n <ng-container *ngFor=\"let item of options_date_time\">\n <option [value]=\"item.value\">{{ item.description }}</option>\n </ng-container>\n </select>\n </div>\n <div *ngIf=\"mode === 'datepickers'\">\n\n <table class=\"area-range-datepickers\">\n <tr>\n <td>\n <div class=\"description-start\">{{ descriptionStart }}</div>\n <tcloud-ui-datepicker-time \n #_input_start \n [(ngModel)]=\"result.start\" \n name=\"input_start\" \n (eventChange)=\"onChangeStartDateTime(_input_start)\">\n </tcloud-ui-datepicker-time>\n </td>\n <td>\n <div class=\"description-stop\">{{ descriptionStop }}</div>\n <tcloud-ui-datepicker-time \n #_input_stop\n [(ngModel)]=\"result.stop\" \n name=\"input_stop\" \n (eventChange)=\"onChangeStopDateTime(_input_stop)\">\n </tcloud-ui-datepicker-time>\n </td>\n </tr>\n </table>\n\n </div>\n </td>\n\n <td>\n <button class=\"btn-mode-range-date\" [class.active]=\"mode === 'select'\" (click)=\"toggle()\" type=\"button\">\n\n <i *ngIf=\"mode === 'select'\" class=\"far fa-calendar-alt\" title=\"Alterar para calendário\"></i>\n <i *ngIf=\"mode !== 'select'\" class=\"fas fa-calendar-week\" title=\"Selecionar período\"></i>\n\n <!-- <div *ngIf=\"mode === 'select'\">Exibir<br>Calendário</div> -->\n <!-- <div *ngIf=\"mode !== 'select'\">Exibir<br>Período</div> -->\n </button>\n </td>\n\n </tr>\n</table>","import { DatePipe, CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnInit, Output, SimpleChanges, EventEmitter, ViewChild } from '@angular/core';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { TCCondition, TCDataFilters, TCFiltersType } from './tcloud-ui-filters';\nimport { TCloudUiRangeDateComponent } from './components/range-date/range-date.component';\nimport { TCloudUiDatepickerComponent } from '../tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiDatepickerTimeComponent } from '../tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\nimport { TCloudUiFormDirective } from '../../_directives/tcloud-form/tcloud-form.directive';\n\n@Component({\n selector: 'tcloud-ui-filters',\n templateUrl: './tcloud-ui-filters.component.html',\n styleUrls: ['./tcloud-ui-filters.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule, TCloudUiRangeDateComponent, TCloudUiDatepickerComponent, TCloudUiDatepickerTimeComponent, TCloudUiFormDirective],\n providers: [DatePipe]\n})\nexport class TCloudUiFiltersComponent implements OnInit, OnChanges {\n\n datepickers = [] as any;\n\n @ViewChild('_formulario') _formulario: NgForm | undefined;\n\n inputs: string[] = [];\n\n show_filters: boolean = false;\n\n search_data: any | undefined;\n\n @Input() border: boolean = true;\n\n private _data: any | undefined;\n @Input() set data(data: any){\n // this._data = JSON.parse(JSON.stringify(data));\n }\n get data(): any{ return this._data; }\n\n private _filters: TCDataFilters | undefined;\n @Input() set filters(filters: any){\n //this._filters = filters;\n }\n get filters(): any{ return this._filters; }\n\n private _submitText: string = 'Filtrar';\n @Input() set submitText(v: string){ \n if( v && v !== this._submitText ){\n this._submitText = v;\n }\n }\n get submitText():string{ return this._submitText; }\n\n @Input() btnSubmitClass: string = 'tc-btn-primary';\n @Input() useOnChangeSubmit: boolean = true; // useOnChangeSubmit - Submit automatico quando for alterado quanquer input\n @Input() useButtonSubmit: boolean = false; // useButtonSubmit - Exibe um botão de submit e não executa a busca automaticamente\n @Input() useNormalizeCaseSensitive: boolean = true; // useNormalizeCaseSensitive - Não valida caixa alta ou baixa e caracteres especiais\n @Input() useRangeDate: boolean = true;\n @Input() useFilterAccept: boolean = false;\n\n @Output() result = new EventEmitter<any>();\n @Output() onFilter = new EventEmitter<any>();\n @Output() onChange = new EventEmitter<any>();\n @Output() onSubmit = new EventEmitter<any>();\n\n descriptionStart: string = '';\n descriptionStop: string = '';\n\n private first_active_filter: boolean = false;\n\n start_stop: boolean = false;\n start_stop_width: number = 0;\n start_stop_und: string = ''; // px ou %\n\n constructor(\n private datepipe: DatePipe,\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n ) { }\n \n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n \n\n ngOnInit(): void {\n setTimeout(() => {\n if( this.filters && (this.filters).length > 0 ){\n for(let i = 0; i < (this.filters).length; i++){\n if( this.filters[i].value ){\n if( this.filters[i].type === 'datetime-local' ){\n try {\n this.filters[i].searchText = new Date( `${this.filters[i].value}` );\n } catch (error) {}\n }else{\n this.filters[i].searchText = this.filters[i].value;\n }\n this.first_active_filter = true;\n }\n } \n }\n this.start_stop = (this.useRangeDate) ? this.is_start_stop_datetime() : false;\n this.toSubmit();\n });\n }\n\n is_start_stop_datetime(){\n let start = false;\n let stop = false;\n if( this.filters && (this.filters).length > 0 ){\n this.start_stop_width = 0;\n for(let i = 0; i < (this.filters).length; i++){\n if( this.filters[i].id === 'start' ){\n start = true;\n this.start_stop_width += this.getValueWidth(this.filters[i].width);\n this.start_stop_und = this.getUnidade(this.filters[i].width);\n this.descriptionStart = this.filters[i].description;\n }\n if( this.filters[i].id === 'stop' ){\n stop = true;\n this.start_stop_width += this.getValueWidth(this.filters[i].width);\n this.descriptionStop = this.filters[i].description;\n }\n }\n }\n return ( start && stop ) ? true : false;\n }\n\n getValueWidth(v: string):number {\n let und = this.getUnidade(v);\n v = (v).replace(und, '');\n return +(v);\n }\n\n getUnidade(v: string):string {\n let und = '%';\n if( v && (v).includes('px') ){\n und = 'px';\n }\n return und;\n }\n \n\n ngOnChanges(changes: SimpleChanges) { \n \n if( changes && changes['data'] ){\n const data = changes['data'].currentValue;\n if( this._data !== data ){\n this._data = JSON.parse(JSON.stringify(data));\n this.search_data = JSON.parse(JSON.stringify(data));\n this.init();\n }\n }\n\n if( changes && changes['filters'] ){\n const filters = changes['filters'].currentValue;\n if( this._filters !== filters ){\n this._filters = JSON.parse(JSON.stringify(filters));\n this.init();\n }\n }\n }\n\n private init(){\n if( this.data && this.filters ){\n this.show_filters = true;\n if( this.filters && (this.filters).length > 0 ){\n (this.filters).forEach((filter: TCDataFilters) => { \n this.searchIn(filter, 'sync');\n });\n } \n if( !this.useOnChangeSubmit ){\n this.result_accept(this.data);\n }\n\n if( this.useOnChangeSubmit || this.useButtonSubmit ){\n this.start_filter();\n }\n }\n }\n\n private normalize(text: any): string{\n if( this.useNormalizeCaseSensitive ){\n const v = ( ( (`${text}`).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n return v;\n }\n return text;\n }\n\n toSubmit(){\n if( this.filters && (this.filters).length > 0 ){\n this.init();\n }\n this.emitSubmitFilters();\n }\n\n private emitSubmitFilters(){\n let filters = JSON.parse(JSON.stringify(this.filters));\n if( filters && (filters).length > 0 ){\n (filters).forEach((filter: TCDataFilters, i: number) => {\n\n if( filter.width ){ delete(filters[i].width); }\n if( filter.placeholder ){ delete(filters[i].placeholder); }\n if( filter.description ){ delete(filters[i].description); }\n\n if( (!filter.searchText || filter.searchText && filter.searchText === '') && filter.type !== \"boolean\" ){\n delete(filters[i]);\n }\n if( filter.type === \"boolean\" ){\n if( !filter.searchText ){\n filter.searchText = false;\n }\n }\n \n });\n } \n \n this.onSubmit.emit(this.filters);\n }\n\n\n private collectionFind(obj: any, path: any): any {\n const pathArray = path.split(\".\");\n let current = obj;\n for (let i = 0; i < pathArray.length; i++) {\n const key = pathArray[i];\n\n if (key.includes('[') && key.includes(']')) {\n const nextKeys = pathArray.slice(i + 1);\n const index = key.substring(key.indexOf('[') + 1, key.indexOf(']'));\n const arrayKey = key.substring(0, key.indexOf('['));\n if( current && current[arrayKey] && current[arrayKey][index] ){\n return this.collectionFind(current[arrayKey][index], nextKeys.join(\".\"));\n }\n }\n\n\n if (key.includes(\"[]\")) {\n const arrayKey = key.replace(\"[]\", \"\");\n current = current[arrayKey] || [];\n const nextKeys = pathArray.slice(i + 1);\n const results = [];\n for (let j = 0; j < current.length; j++) {\n let result = this.collectionFind(current[j], nextKeys.join(\".\"));\n if (result !== undefined) {\n results.push(result); \n }\n }\n if (results.length === 0) {\n return undefined;\n }\n return results;\n } else {\n if( !current || (current && !current[key]) ){\n return undefined;\n }\n current = current[key];\n if (current === undefined) {\n return undefined;\n }\n }\n }\n return current;\n }\n \n first: boolean = true;\n start_filter_fc: any = undefined;\n\n start_value: any | undefined;\n stop_value: any | undefined;\n\n searchInRange( range_date: any){\n \n if( this.filters && (this.filters).length > 0 ){\n\n let event = {} as any; \n event.datepickertime = true;\n\n for( let i = 0; i < (this.filters).length; i++ ){\n\n if( this.filters[i] && this.filters[i].id && this.filters[i].id === 'start' ){\n this.filters[i].value = range_date?.result?.start!;\n this.filters[i].searchText = range_date?.result?.start!;\n event.innerValue = this.start_value = range_date?.result?.start!;\n this.searchIn(this.filters[i], event);\n }\n\n if( this.filters[i] && this.filters[i].id && this.filters[i].id === 'stop' ){\n this.filters[i].value = range_date?.result?.stop!;\n this.filters[i].searchText = range_date?.result?.stop!;\n event.innerValue = this.stop_value = range_date?.result?.stop!;\n this.searchIn(this.filters[i], event);\n }\n }\n if( this.first || this.useOnChangeSubmit ){\n this.toSubmit();\n }\n \n }\n this.first = false;\n\n }\n\n convertDateNativeToNumber(dataString: string, withTime?: boolean): number {\n try {\n if (withTime) {\n const [date, time] = dataString.split('T');\n const [ano, mes, dia] = date.split('-');\n const [hora, minuto] = time.split(':');\n return +(`${ano}${mes}${dia}${hora}${minuto}`);\n } else {\n const [ano, mes, dia] = dataString.split('-');\n return +(`${ano}${mes}${dia}`);\n }\n } catch (error) {}\n return 0;\n }\n\n convertDataToNumber(dataString: string): number {\n try {\n const [dia, mes, ano] = dataString.split('/');\n return +(`${ano}${mes}${dia}`);\n } catch (error) {}\n return 0;\n }\n\n searchIn(item: TCDataFilters, event?: any){\n\n console.log('event', event);\n // 2025-12-09\n\n this.start_filter_fc = undefined;\n\n let isValid = true;\n\n if( event === 'sync' && isValid ){\n isValid = false;\n this.onChange.emit(true);\n }\n\n if( typeof event === 'boolean' && isValid ){\n isValid = false;\n item.searchText = event;\n this.onChange.emit(true);\n }\n\n if( (event === undefined || event === null || event === '') && isValid ){\n isValid = false;\n item.searchText = '';\n this.onChange.emit(true);\n }\n\n if( event?.datepickertime && isValid ){\n isValid = false;\n item.searchText = event?.innerValue; \n this.onChange.emit(true);\n }\n\n if(event?.target?.value && isValid ){\n isValid = false;\n item.searchText = this.normalize(event.target.value);\n this.onChange.emit(true);\n }\n\n if(event?.target?.value === '' && isValid ){\n isValid = false;\n item.searchText = '';\n this.onChange.emit(true);\n }\n\n if( item.type === 'date-local' && item.value ){\n isValid = false;\n item.searchText = `${this.convertDataToNumber( item.value )}`;\n this.onChange.emit(true);\n }\n\n if( item.type === TCFiltersType.browserdate && item.value ){\n isValid = false;\n console.log('item', item);\n const onlyNumbers = (item.value).replace(/\\D/g, '');\n if( (onlyNumbers && (onlyNumbers).length === 8 ) ){\n item.searchText = `${this.convertDateNativeToNumber( item.value )}`;\n this.onChange.emit(true);\n }\n }\n\n if( item.type === TCFiltersType.browserdatetime && item.value ){\n isValid = false;\n console.log('item', item);\n const onlyNumbers = (item.value).replace(/\\D/g, '');\n if( (onlyNumbers && (onlyNumbers).length === 12 ) ){\n item.searchText = `${this.convertDateNativeToNumber( item.value, true )}`;\n this.onChange.emit(true);\n }\n }\n\n if( event && event.result && ( event.result.start || event.result.stop ) ){\n isValid = false;\n this.onChange.emit(true);\n }\n\n \n \n if( this.useOnChangeSubmit || this.first_active_filter ){ \n this.start_filter_fc = this.start_filter();\n this.first_active_filter = false;\n }\n\n if( !this.useButtonSubmit ){\n this.emitSubmitFilters();\n } \n }\n\n getDateUTC(dt: any){\n const ano = dt.getFullYear();\n const mes = dt.getMonth();\n const dia = dt.getDate();\n const horas = dt.getHours();\n const minutos = dt.getMinutes();\n const segundos = dt.getSeconds();\n return new Date(Date.UTC(ano, mes, dia, horas, minutos, segundos));\n }\n\n \n start_filter(){\n for( let i = 0; i < (this.data).length; i++ ){\n\n this.setDataIndex(i, true);\n\n for( let j = 0; j < (this.filters).length; j++ ){ \n const filter_item = this.filters[j]; \n\n if( filter_item.searchText && typeof (filter_item.searchText) === 'string' && filter_item.searchText !== '' && filter_item.type !== TCFiltersType.number && filter_item.type !== TCFiltersType.date ){\n \n filter_item.searchText = this.normalize(filter_item.searchText); \n let item_value = this.collectionFind(this.data[i], filter_item.searchIn);\n if( item_value ){\n item_value = this.normalize(item_value); \n\n if( typeof filter_item.notIn === 'boolean' && filter_item.notIn ){\n if( ( item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n }else{\n\n if( filter_item.type === TCFiltersType.select ){\n // Exclusivo para select\n if( filter_item.data && (filter_item.data).length > 0 ){\n\n // uso do select com o notValues: string[]\n let current_option = [];\n for( let k = 0; k < (filter_item.data).length; k++ ){\n const k_item = filter_item.data[k];\n if( `${k_item?.value}` === `${filter_item.searchText}` ){\n current_option = k_item?.notValues!;\n break;\n }\n }\n if( current_option && (current_option).length > 0 ){\n for( let v = 0; v < (current_option).length; v++ ){\n const v_item = current_option[v]; \n if( ( item_value === v_item ) ){\n this.setDataIndex(i, false);\n }\n }\n }else{\n\n // uso normal do select\n if( !( item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n } \n\n } \n\n \n }else{\n if( !( item_value.includes(filter_item.searchText) || item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n }\n }\n\n }else{\n this.setDataIndex(i, false);\n }\n } \n \n\n if( filter_item.searchText && filter_item.searchText instanceof Date && !isNaN( filter_item.searchText.valueOf()) && filter_item.type === TCFiltersType.datetime ){\n \n let item_value: any = this.collectionFind(this.data[i], filter_item.searchIn);\n\n try { item_value = new Date(item_value); } catch (error) {}\n if( item_value && item_value instanceof Date && !isNaN( item_value.valueOf()) ){\n let is_accept = false;\n\n const dt_target = ( (filter_item.searchText).getTime() ).toString().substring(0, 10); /* + (3 * 60 * 60 * 1000); */\n const dt_current = ( (item_value).getTime() ).toString().substring(0, 10);\n if( filter_item.condition ){\n switch (filter_item.condition) {\n case TCCondition.gt: is_accept = ( Number(dt_target) > Number(dt_current) ); break;\n case TCCondition.lt: is_accept = ( Number(dt_target) < Number(dt_current) ); break;\n case TCCondition.gte: is_accept = ( Number(dt_target) <= Number(dt_current) ); break;\n case TCCondition.lte: is_accept = ( Number(dt_target) >= Number(dt_current) ); break;\n case TCCondition.equal: is_accept = ( Number(dt_target) === Number(dt_current) ); break;\n case TCCondition.notEqual: is_accept = ( Number(dt_target) != Number(dt_current) ); break;\n default: is_accept = ( Number(dt_target) == Number(dt_current) );\n }\n }else{\n is_accept = ( Number(filter_item.searchText) === Number(item_value) );\n }\n if( !is_accept ){\n this.setDataIndex(i, false);\n }\n }\n }\n\n \n\n if( filter_item.searchText && typeof Number(filter_item.searchText) === 'number' && ( filter_item.type === TCFiltersType.number || filter_item.type === TCFiltersType.date ) ){\n \n filter_item.searchText = Number(filter_item.searchText);\n let item_value = this.collectionFind(this.data[i], filter_item.searchIn);\n\n if( typeof Number(item_value) === 'number' ){ \n item_value = Number(item_value); \n let is_accept = false;\n if( filter_item.condition ){\n\n switch (filter_item.condition) {\n case TCCondition.gt: is_accept = ( Number(filter_item.searchText) > Number(item_value) ); break;\n case TCCondition.lt: is_accept = ( Number(filter_item.searchText) < Number(item_value) ); break;\n case TCCondition.gte: is_accept = ( Number(filter_item.searchText) <= Number(item_value) ); break;\n case TCCondition.lte: is_accept = ( Number(filter_item.searchText) >= Number(item_value) ); break;\n case TCCondition.equal: is_accept = ( Number(filter_item.searchText) === Number(item_value) ); break; \n case TCCondition.notEqual: is_accept = ( Number(filter_item.searchText) != Number(item_value) ); break;\n default: is_accept = ( Number(filter_item.searchText) == Number(item_value) );\n }\n }else{\n is_accept = ( Number(filter_item.searchText) === Number(item_value) );\n }\n if( !is_accept ){\n this.setDataIndex(i, false);\n }\n }\n }\n \n \n if( typeof (filter_item.searchText) === 'boolean' && filter_item.searchText === true ){\n\n let item_value: any = this.collectionFind(this.data[i], filter_item.searchIn);\n \n if( item_value && (item_value).length > 0 ){ \n let qtd_is_true = 0; \n for( let i = 0; i < ((item_value).length); i++ ){\n const item = item_value[i];\n if( item === filter_item.searchText ){\n qtd_is_true++;\n }\n }\n if( qtd_is_true === 0 ){\n this.setDataIndex(i, false);\n }\n }else{\n if( !( item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n } \n }\n \n }\n\n } // end for\n \n this.toResult();\n \n }\n\n private toResult(){\n\n\n const search_data = [];\n\n let is_filter = false;\n for( let i = 0; i < (this.filters).length; i++ ){\n if( this.filters[i].searchText && this.filters[i].searchText !== '' ){\n is_filter = true; break;\n }\n }\n\n if( is_filter ){\n for( let i = 0; i < (this.data).length; i++ ){\n if( this.data && this.data[i] && this.data[i]['tc_filter_accept'] ){\n (search_data).push(this.data[i]);\n }\n }\n\n this.result_accept(search_data);\n this.onFilter.emit({...this.filters});\n return;\n }\n\n this.result_accept(this.data);\n this.onFilter.emit({...this.filters});\n }\n\n setDataIndex(index: number, value: boolean ){\n if( this.data && this.data[index] ){\n this.data[index]['tc_filter_accept'] = value;\n }\n }\n\n result_accept(data: any){\n if( !this.useFilterAccept && data && (data).length > 0 ){\n for( let i = 0; i < (data).length; i++ ){\n delete data[i]['tc_filter_accept'];\n }\n }\n this.result.emit(data);\n }\n\n}\n","<div *ngIf=\"show_filters\" class=\"area-filter {{layout}}\" [class.tc-rev-filters]=\"layout === 'modern'\" [class.tcloud-ui-filters]=\"layout === 'classic'\" [class.no-border]=\"!border\">\n <ng-container *ngFor=\"let item of filters; let i = index\">\n\n <ng-container *ngIf=\"!item.type || (item.type && item.type !== 'boolean')\">\n\n <ng-container *ngIf=\"item.type === 'date'\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }} \n </div>\n <div class=\"box-type-{{item.type}}\">\n <input\n tcloudForm\n #_input\n type=\"date\"\n name=\"input_{{i+1}}\"\n class=\"tc-form-control\"\n [(ngModel)]=\"item.value\"\n (ngModelChange)=\"searchIn(item, _input)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'datetime'\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }}\n </div>\n <div class=\"box-type-{{item.type}}\">\n <input\n tcloudForm\n #_input\n type=\"datetime-local\"\n name=\"input_{{i+1}}\"\n class=\"tc-form-control\"\n [(ngModel)]=\"item.value\"\n (ngModelChange)=\"searchIn(item, _input)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'date-local'\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }}\n </div>\n <div class=\"box-type-{{item.type}}\">\n <tcloud-ui-datepicker\n #_input\n name=\"input_{{i+1}}\"\n [modeInput]=\"true\"\n [(ngModel)]=\"item.value\"\n (ngModelChange)=\"searchIn(item, _input)\">\n </tcloud-ui-datepicker>\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'datetime-local'\">\n\n <ng-container *ngIf=\"(item.id === 'start' || item.id === 'stop') && useRangeDate\">\n <!-- PERIOD RANGE DATE -->\n <ng-container *ngIf=\"item.id === 'start'\">\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+start_stop_width+''+start_stop_und : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(_range_date && _range_date.result && _range_date.result.start && _range_date.result.stop )\" class=\"fas fa-filter icon-filter\"></i> </div>\n <tcloud-ui-range-date\n #_range_date ngModel name=\"input_{{i+1}}\"\n [defaultValuePeriodStartStop]=\"item.defaultValuePeriodStartStop\"\n [descriptionStart]=\"descriptionStart\"\n [descriptionStop]=\"descriptionStop\"\n required\n (onChange)=\"searchInRange(_range_date); searchIn(item, _range_date)\">\n </tcloud-ui-range-date>\n </div>\n </ng-container>\n <input *ngIf=\"item.id === 'start'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"start_value\">\n <input *ngIf=\"item.id === 'stop'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"stop_value\">\n </ng-container>\n\n <ng-container *ngIf=\"!item.id || !useRangeDate\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\n <div class=\"box-type-{{item.type}}\">\n <tcloud-ui-datepicker-time\n #_input\n [(ngModel)]=\"item.value\"\n name=\"input_{{i+1}}\"\n [useOptionsDateTime]=\"(item && item.useOptionsDateTime) ? true : false\"\n (eventChange)=\"searchIn(item, _input)\" >\n </tcloud-ui-datepicker-time>\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type !== 'select' && item.type !== 'datetime-local' && item.type !== 'date-local' && item.type !== 'datetime' && item.type !== 'date'\">\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\n <div class=\"box-type-{{item.type}}\">\n <input\n tcloudForm\n #_input\n [(ngModel)]=\"item.value\"\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\"\n type=\"{{ (item.type === 'number') ? 'number' : (item.type) ? item.type : 'text' }}\"\n class=\"tc-form-control\"\n (keyup)=\"searchIn(item, $event)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"_input.value === ''\" (click)=\"searchIn(item, null); _input.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'select' && item.data && (item.data).length > 0\" >\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }}\n </div>\n <div class=\"box-type-{{item.type}}\">\n <select\n tcloudForm\n #_input\n [(ngModel)]=\"item.value\"\n name=\"input_{{i+1}}\"\n class=\"tc-form-control\"\n (change)=\"searchIn(item, $event)\">\n <ng-container *ngIf=\"typeof item?.selectFirstOptionHidden === 'undefined' || !item?.selectFirstOptionHidden\">\n <option [ngValue]=\"\"></option>\n </ng-container> \n <ng-container *ngFor=\"let v of item.data\">\n <option [value]=\"v.value\">{{ v.description }}</option>\n </ng-container>\n </select>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n\n\n <ng-container *ngIf=\"item.type && item.type === 'boolean'\">\n\n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis\" title=\"{{ item.description }}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.checked === true\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\n <div class=\"area-input-checkbox\">\n <div class=\"tc-form-control\" tcloudForm>\n <label>\n <span>{{ item.placeholder }}</span>\n <input\n tcloudForm\n #_input\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\"\n type=\"checkbox\"\n (change)=\"searchIn(item, _input.checked)\">\n </label>\n </div>\n </div>\n </div>\n\n </ng-container>\n\n\n </ng-container>\n\n <div class=\"text-right mb-1 mr-1\" *ngIf=\"useButtonSubmit\">\n <button type=\"button\" class=\"tc-btn {{ btnSubmitClass }}\" (click)=\"toSubmit()\" >{{ submitText }}</button>\n </div>\n\n</div>\n\n<!-- <pre>{{ inputs | json }}</pre> -->\n<!-- <pre> {{ data | json }} </pre> -->\n\n<!-- <p>FILTERS</p><pre> {{ filters | json }}</pre> -->\n\n<!--\n <pre>start_stop: {{ start_stop }}</pre>\n <pre>start_stop_width: {{ start_stop_width }}</pre>\n <pre>start_stop_und: {{ start_stop_und }}</pre>\n-->","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { StatusInfoPipe } from '../_pipes';\n\n@Injectable({\n providedIn: 'root', \n})\nexport class TCloudUiSearchInObjectService {\n\n constructor(\n private datepipe: DatePipe,\n private statusinfo: StatusInfoPipe\n ) { }\n\n private isADate(d: any){\n if( d && d instanceof Date && !isNaN( d.valueOf()) ){\n if (Object.prototype.toString.call(d) === \"[object Date]\") {;\n if (isNaN(d.getTime())) {\n return false;\n } else {\n return true;\n }\n }\n }\n return false;\n }\n\n private normalize(text: any): string{\n const v = ( ( (`${text}`).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n return v;\n }\n\n /**\n * meet - Procura em object - filtro utilizado para busca em tabelas\n * @param valor texto a ser procurado\n * @param emObject object alvo de onde procurar\n * @param camposDebusca (Opcional) informa em quais são as keys que deverá procurar \n */\n meet(valor: string, emObject: any, camposDebusca?: any): any{\n if (valor != \"\"){\n\n if( emObject.length < 1 ){\n return emObject;\n }\n if( camposDebusca === undefined || camposDebusca === null ){\n camposDebusca = [];\n for (const key in emObject[0]) {\n camposDebusca.push( key );\n }\n }\n\n if( camposDebusca.length < 1 ){\n return emObject;\n }\n \n let isObject = false;\n\n valor = this.normalize(valor);\n var result=[]; \n for (const key in emObject) {\n var oObject = emObject[key];\n if (oObject && (typeof oObject === 'object') ){\n isObject = true;\n for( const objectvalue of camposDebusca ){\n const dt = new Date(oObject[objectvalue])\n if( this.isADate(dt) && typeof ((dt).getMonth) === 'function' ){\n const data1 = this.datepipe.transform(dt, 'dd/MM/yyyy hh:mm');\n const data2 = this.datepipe.transform(dt, 'medium');\n const strToTest = this.normalize(data1+\" \"+data2+\" \"+oObject[objectvalue]);\n if( (strToTest.indexOf(valor)>=0) && (result).indexOf(oObject) == -1 ){\n result.push(oObject); break;\n }\n } else {\n const strToTest = this.normalize(this.statusinfo.transform(oObject[objectvalue], 'ALL')+\"\"); \n if( (strToTest.indexOf(valor)>=0) && (result).indexOf(oObject) == -1 ){\n result.push(oObject); break;\n }\n }\n } \n }\n }\n\n if( emObject && typeof emObject === 'object' && Array.isArray(emObject) && !isObject ){\n // is array \n const v = this.normalize(`${valor}`);\n for( let i = 0; i < (emObject).length; i++ ){\n const item = this.normalize(`${emObject[i]}`);\n if( item.includes(v) || item === v ){\n result.push(emObject[i]);\n }\n }\n }\n\n\n return result;\n }\n return emObject;\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TCloudUiSearchInObjectService } from '../../_services/search-in-object.service';\nimport { StatusInfoPipe } from '../../_pipes/statusinfo';\n\n@Component({\n selector: 'tcloud-ui-input-search',\n templateUrl: './tcloud-ui-input-search.component.html',\n styleUrls: ['./tcloud-ui-input-search.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule],\n providers: [StatusInfoPipe]\n})\nexport class TCloudUiInputSearchComponent {\n\n /**\n * tcloud-ui-input-search - Procura pelo valor informado no objeto indicado\n * @param placeholder string - placeholder no input\n * @param mirror boolean - Exibir os valores espelhados ou somente os valores encontrados\n * @param base_object object - Objeto onde ser procurado \n * @param found - Emite o valor encontrado\n */\n\n @Input() placeholder: string = 'Procurar...';\n\n @Input() mirror: boolean = true;\n\n search_text: string = '';\n\n private _base_object: any;\n @Input() set base_object(base_object: any){\n if( base_object ){\n this._base_object = base_object;\n\n if( this.mirror ){\n this.result_object = base_object;\n this.toFound();\n }\n } \n }\n get base_object(){ return this._base_object; }\n\n result_object: any | undefined;\n\n @Output() found = new EventEmitter<any>();\n\n constructor(\n private searchInObjectService: TCloudUiSearchInObjectService\n ) { }\n\n buscar(value: string){\n const result = this.searchInObjectService.meet(`${value}`, this.base_object);\n this.result_object = JSON.parse(JSON.stringify(result));\n this.toFound();\n }\n\n clean(){\n if( this.mirror ){\n this.buscar('');\n }else{\n this.result_object = []; \n this.toFound();\n }\n this.search_text = '';\n }\n\n toFound(){\n this.found.emit( this.result_object );\n }\n\n}\n","<table class=\"tcloud-ui-input-search tc-group-input-table\" cellspacing=\"0\" cellpadding=\"0\">\n <tr>\n <td><input class=\"tc-form-control box-ui-input-group\" [(ngModel)]=\"search_text\" type=\"text\" (keyup)=\"buscar(search_text)\" placeholder=\"{{ placeholder }}\" ></td>\n <td> \n <ng-container *ngIf=\"search_text === ''\"> \n <button type=\"button\" (click)=\"buscar(search_text)\"><i class=\"fas fa-search\"></i></button>\n </ng-container> \n\n <ng-container *ngIf=\"search_text !== ''\"> \n <button type=\"button\" (click)=\"clean()\"><i class=\"fas fa-times\"></i></button>\n </ng-container>\n </td>\n </tr>\n</table>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nclass Step {\n\n constructor(){\n this.status = '';\n this.index = 0;\n this.class = '';\n this.second_class = '';\n }\n\n status: string;\n index: number;\n class: string;\n second_class: string;\n}\n\n@Component({\n selector: 'tcloud-ui-line-step-circle',\n templateUrl: './tcloud-ui-line-step-circle.component.html',\n styleUrls: ['./tcloud-ui-line-step-circle.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLineStepCircleComponent implements OnInit {\n\n @Input() step: number = 7;\n \n private _active: number = 0;\n @Input() set active( active: number ){\n if( active && active !== this._active ){\n this._active = active;\n this.build_steps();\n } \n }\n get active(): number{ return this._active; }\n\n private _inactives = [] as number[] | undefined;\n @Input() set inactives( inactives: number[] | undefined){\n if( inactives && inactives !== this._inactives ){\n this._inactives = inactives;\n this.build_steps();\n }\n }\n get inactives(): number[] | undefined { return this._inactives; }\n\n\n private _complete: boolean = false;\n @Input() set complete( complete: boolean ){\n if( complete && complete !== this._complete ){\n this._complete = complete;\n this.build_steps();\n } \n }\n get complete(): boolean{ return this._complete; }\n\n trilha = new Array<Step>();\n\n constructor() { }\n\n ngOnInit(): void {\n setTimeout(() => { this.build_steps(); }); \n }\n\n build_steps(){\n let trilha = new Array<Step>();\n if( this.step && this.step > 0 ){\n for( let i = 0; i < this.step; i++ ){\n (trilha).push({\n status: '',\n index: i+1,\n class: 'step-default',\n second_class: '',\n })\n }\n }\n\n if( this.active > this.step ){\n this.active = this.step;\n this.complete = true;\n }\n\n if( this.active && this.active > 0 ){\n for( let i = 0; i < this.active; i++ ){ \n trilha[i].class = \"step-progress\"; \n if( (i+1) === this.active && !this.complete ){\n trilha[i].class = \"step-active\";\n }\n }\n }\n \n if( this.inactives && (this.inactives).length > 0 ){\n for( let i = 0; i < (this.inactives).length; i++ ){\n const icon = this.inactives[i];\n if( icon && icon > 0 ){\n trilha[(icon-1)].second_class = \"step-inactive\"; \n } \n }\n }\n\n this.trilha = trilha;\n }\n\n}\n","<table class=\"tcloud-ui-line-step-circle table-trilha\" cellspacing=\"0\" cellpadding=\"0\">\n <tr>\n <ng-container *ngFor=\"let fase of trilha; let i = index\" >\n <td class=\"area-circle\">\n <!-- <i class=\"fas fa-circle icon-{{ fase.class }} {{ fase.second_class }} \"></i> -->\n\n <div class=\"tc-circle icon-{{ fase.class }} {{ fase.second_class }}\"></div>\n \n </td>\n <td class=\"area-line\" *ngIf=\"(i+1) < (trilha).length\">\n <div class=\"step-line {{ fase.class }}\"></div>\n </td>\n </ng-container>\n </tr>\n</table>","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-linha-logo',\n templateUrl: './tcloud-ui-linha-logo.component.html',\n styleUrls: ['./tcloud-ui-linha-logo.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLinhaLogoComponent implements OnInit {\n\n @Input() url: any = `h`+`t`+`t`+`p`+`s`+`:`+`/`+`/`+`ateleia`+`-`+`email`+`.s3`+`-`+`sa`+`-`+`east`+`-`+`1`+`.`+`amazonaws`+`.`+`com`+`/`; \n @Input() product: string = '';\n\n logo_name: string = '';\n product_name: string = '';\n alt_product_name: string = '';\n font_size: string = '';\n\n constructor() { }\n\n ngOnInit(): void {\n\n this.logo_name = this.getLogoName();\n this.product_name = this.getProductName();\n \n this.alt_product_name = (this.product_name).toUpperCase();\n\n this.font_size = this.getWidthFontSize();\n }\n\n getProductName(){\n if( this.product !== '' ){\n let name = this.product;\n name = (name).replace('_',' ');\n name = (name).toLowerCase();\n return name;\n }\n return '';\n }\n\n getLogoName(){\n if( this.product !== '' ){\n let name = this.product;\n name = (name).replace('_','-');\n name = (name).toLowerCase();\n return 'logo-linha-'+name;\n }\n return '';\n }\n\n getWidthFontSize(){\n let size = 28;\n let new_size = size;\n const count = (this.product_name).length; \n\n if( count > 8 ){\n new_size = 28;\n }\n\n if( count > 12 ){\n const p = (size * (5+(count*2)) ) / 100;\n new_size = (size - p);\n }\n\n if( count > 15 ){\n const p = (size * (10+(count*2)) ) / 100;\n new_size = (size - p);\n }\n\n\n\n return `${new_size}px`;\n }\n\n}\n","<!-- <div class=\"logo-product\" *ngIf=\"product !== ''\">\n <img class=\"img-logo\" src=\"/assets/img/logo-totvs.svg\" alt=\"{{ alt_product_name }}\">\n <p class=\"text-small\">Linha</p>\n <p class=\"text-product\" [style]=\"'font-size:'+font_size+';'\" >{{ product_name }}</p>\n</div> -->\n\n<div class=\"tcloud-ui-linha-logo logo-product\" *ngIf=\"product !== ''\">\n <img class=\"img-logo\" [attr.data-name-image]=\"logo_name\" [attr.src]=\"url+logo_name+'.svg'\" alt=\"{{ alt_product_name }}\">\n</div>","import { IConfirm } from './../tcloud-ui-modal';\nimport { Injectable, signal } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class TcloudModalService {\n\n private loading: boolean | undefined;\n\n private param_mode: string = '';\n private param_confirm: IConfirm = {} as IConfirm;\n private sticky: boolean = false;\n\n private _stateClose = new Subject<boolean>();\n public stateClose$ = this._stateClose.asObservable();\n\n private _stateConfirm = new Subject<IConfirm>();\n public stateConfirm$ = this._stateConfirm.asObservable();\n\n private _stateRespConfirm = new Subject<boolean>();\n public stateRespConfirm$ = this._stateRespConfirm.asObservable();\n\n private _stateLoading = new Subject<boolean>();\n public stateLoading$ = this._stateLoading.asObservable();\n\n private _stateMode = new Subject<string>();\n public stateMode$ = this._stateMode.asObservable();\n\n private _stateSticky = new Subject<boolean>();\n public stateSticky$ = this._stateSticky.asObservable();\n\n\n toModal(action: 'open'|'close'): void{\n if(action === 'close'){\n this.fixed_body('off');\n }\n this._stateClose.next( (action === 'open') );\n }\n\n toRespConfirm(resp: boolean){ \n this._stateRespConfirm.next(resp);\n }\n\n getParamConfirm(): IConfirm{\n return this.param_confirm;\n }\n\n toConfirm(confirm: IConfirm){\n this.param_confirm = confirm;\n this._stateConfirm.next(confirm);\n }\n\n toMode(mode: string){\n this.param_mode = mode;\n this._stateMode.next(mode);\n }\n\n setSticky(sticky: boolean){\n this.sticky = sticky\n this._stateSticky.next(sticky);\n }\n getSticky(){\n return this.sticky;\n }\n\n getLoading(){\n return this.loading;\n }\n\n setLoading(loading: boolean){\n this.loading = loading;\n this._stateLoading.next(loading);\n }\n\n private _is_footer_signal = signal<boolean>(undefined);\n readonly is_footer_signal:any=this._is_footer_signal.asReadonly();\n\n set_is_footer_signal(v:boolean){\n this._is_footer_signal.set(v);\n }\n\n fixed_body(fixed: 'on'|'off'){ \n let body = <any> document.getElementsByTagName(\"BODY\")[0];\n if( body && body.style ){\n if( fixed === 'on' ){\n body.classList.add('tcloud-ui-modal-is-open');\n }\n if( fixed === 'off' ){\n body.classList.remove('tcloud-ui-modal-is-open');\n }\n }\n }\n\n}","import { Subscription } from 'rxjs';\nimport { Component, OnInit, Input, EventEmitter, Output, OnDestroy, Optional, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TcloudModalService } from './services/tcloud-modal.service';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { IConfirm } from './tcloud-ui-modal';\nimport { LayoutServiceInterface } from '../../_interfaces/layout.service.interface';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n@Component({\n selector: 'tcloud-ui-modal',\n templateUrl: './tcloud-ui-modal.component.html',\n styleUrls: ['./tcloud-ui-modal.component.scss'],\n providers: [\n TcloudModalService,\n TCloudUiLayoutService\n ],\n animations: [\n trigger('fade', [\n transition('void => *', [\n style({ opacity: 0, transform: '{{enterTransform}}' }),\n animate('0.3s ease-out', style({ opacity: 1, transform: 'translate(0, 0)' }))\n ], { params: { enterTransform: 'translateY(-38%)' } }),\n transition('* => void', [\n animate('0.3s ease-out', style({ opacity: 0, transform: '{{leaveTransform}}' }))\n ], { params: { leaveTransform: 'translateY(-38%)' } })\n ])\n ],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiModalComponent implements OnInit, OnDestroy {\n \n\n /**\n * tcloud-ui-modal - Cria e exibe um modal\n * \n * toAction - (toAction) - Resultado do evento - 'confirmed'|'cancel'|'close'\n * toConfirm - (toConfirm) - Indica que a ação foi confirmada - resultado true\n * toCancel - (toCancel() - Indica que a ação foi cancelada - resultado false\n */\n\n param_confirm: IConfirm = {} as IConfirm;\n /* BEGIN - Parametros para modo confirmacao */\n private _confirm: boolean = false;\n private _confirmText: string = 'Confirmo';\n\n /**\n * confirm boolean - Indica se será um modal do tipo confirmação - default false\n */\n @Input() set confirm(v: boolean){\n this._confirm = v;\n this.param_confirm.confirm = this._confirm;\n this.param_confirm.confirmText = this._confirmText;\n }\n\n /**\n * confirmText string - Texto que deverá ser digitado - defualt Confirmo\n */\n @Input() set confirmText(v: string){\n this._confirmText = v;\n this.param_confirm.confirmText = this._confirmText;\n this.param_confirm.confirm = this._confirm; \n }\n\n /* END --- Parametros para modo confirmacao */\n\n subscription = new Subscription();\n\n /**\n * autoClose boolean - Indica se deverá ser fechado quando confirmar uma ação - default true\n */\n @Input() autoClose: boolean = true;\n\n /**\n * title - string - Título a ser exibido no topo do modal\n */\n @Input() title: any | undefined;\n\n /**\n * maxWidth - number - Largura máxima do modal - default 500px\n */\n @Input() maxWidth: number = 500;\n\n @Input() position: 'top'|'right'|'left'|'bottom' = 'top'; \n\n get animationParams() {\n if (this.position === 'left') {\n return { value: this.position, params: { enterTransform: 'translateX(-30%)', leaveTransform: 'translateX(-30%)' } };\n }\n\n if (this.position === 'right') {\n return { value: this.position, params: { enterTransform: 'translateX(30%)', leaveTransform: 'translateX(30%)' } };\n }\n\n if (this.position === 'bottom') {\n return { value: this.position, params: { enterTransform: 'translateY(30%)', leaveTransform: 'translateY(30%)' } };\n }\n\n return { value: this.position, params: { enterTransform: 'translateY(-38%)', leaveTransform: 'translateY(-38%)' } };\n }\n\n\n private _sticky: boolean = false;\n @Input() set sticky(v: boolean){\n this._sticky = v;\n this.tcloudModalService.setSticky(this._sticky);\n }\n get sticky(): boolean {\n return this._sticky;\n }\n\n /**\n * window - string - nome referente ao tamanho do modal - não utilizar maxWidth se for utilizar window - default 500 (medium)\n */\n @Input() set window( size: 'small' | 'medium' | 'large' | 'big' | 'full' ){\n switch (size) {\n case 'small': this.maxWidth = 300; break;\n case 'medium': this.maxWidth = 500; break;\n case 'large': this.maxWidth = 900; break;\n case 'big': this.maxWidth = 1100; break;\n case 'full': this.maxWidth = 1400; break;\n }\n }\n\n \n mode: string = '';\n control_open: boolean = false;\n private _open: boolean = false;\n /**\n * open - boolean - Variável de controle para exibição do modal - obrigatório\n */\n @Input() set open(open: boolean){\n this.control_open = open;\n this.checkIsOpen();\n\n this._open = open;\n this.tcloudModalService.fixed_body((open) ? 'on' : 'off');\n }\n get open(): boolean { return this._open; }\n\n private _loading: boolean = false;\n /**\n * loading - boolean - Coloca o modal em modo de carregamento - default false\n */\n @Input() set loading(loading: boolean){ \n this._loading = loading;\n this.tcloudModalService.setLoading(loading);\n }\n get loading(): boolean { return this._loading; }\n \n @Output() openChange = new EventEmitter<boolean>();\n\n @Output() toConfirm = new EventEmitter<boolean>();\n @Output() toCancel = new EventEmitter<boolean>();\n @Output() toAction = new EventEmitter<'confirmed'|'cancel'|'close'>();\n\n constructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private tcloudModalService: TcloudModalService\n ) { \n }\n\n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n\n ngOnInit(): void {\n\n this.subscription.add(this.tcloudModalService.stateClose$.subscribe(\n (open: boolean)=>{\n if( open ){\n /* OPEN */\n }\n\n if( !open ){\n /* CLOSE */\n this.toClose();\n }\n })\n );\n\n this.subscription.add(\n this.tcloudModalService.stateRespConfirm$.subscribe(\n (resp: boolean)=>{\n if( resp ){\n /* CONFIRMADO */\n this.toConfirm.emit(resp);\n this.toClose('confirmed');\n\n }\n\n if( !resp ){\n /* CANCELADO */\n this.toCancel.emit(resp);\n this.toClose('cancel');\n }\n }\n )\n )\n\n this.subscription.add(\n this.tcloudModalService.stateMode$.subscribe(\n (resp: string)=>{\n this.mode = resp;\n }\n )\n )\n \n this.tcloudModalService.toConfirm( this.param_confirm );\n }\n\n toClose(action?: any | undefined){\n if( this.autoClose ){\n this.control_open = false;\n this.open = false;\n this.openChange.emit(false);\n }\n \n action = (action) ? action : 'close';\n this.toAction.emit(action);\n this.tcloudModalService.fixed_body('off');\n }\n\n checkIsOpen(){\n if( this.control_open ){\n this.tcloudModalService.fixed_body('on');\n }else{\n this.tcloudModalService.fixed_body('off');\n }\n }\n\n ngOnDestroy(){\n this.checkIsOpen();\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n\n}\n\n\n","<div class=\"tc-background-modal\" *ngIf=\"control_open\" >{{ checkIsOpen() }}</div>\n\n<div class=\"tcloud-ui-modal base-modal tcloud-ui-modal-layout-{{ layout }} tcloud-ui-modal-postition-{{ position }}\" [attr.data-layout]=\"layout\" *ngIf=\"open\">\n <div class=\"sub-modal\" [ngClass]=\"['position-' + position, sticky ? 'is-sticky' : '']\" [@fade]=\"animationParams\">\n <div class=\"tc-modal tc-modal-shadow\" [attr.style]=\"'max-width: ' + maxWidth + 'px;'\" [class.tcloud-ui-modal-sticky]=\"sticky\">\n <div class=\"area-top-actions tc-ui-modal-{{mode}}\">\n\n @if( layout === 'classic'){\n <button type=\"button\" class=\"tc-btn-action-close-ui-modal\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\n </button>\n }@else{\n <button type=\"button\" class=\"tc-rev-btn tc-rev-btn--sm tc-rev-btn--dark-filled tc-btn-x\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\n </button>\n }\n\n </div>\n\n <h4 *ngIf=\"title\" [innerHTML]=\"title\"></h4>\n\n <ng-content></ng-content>\n\n </div>\n </div>\n</div>\n\n<!-- Ex: Modal -->\n<!-- \n <tcloud-ui-modal [(open)]=\"open\">\n\n <tcloud-ui-modal-header title=\"Título do Modal\" ></tcloud-ui-modal-header>\n\n <tcloud-ui-modal-body>\n Conteúdo do modal aqui\n </tcloud-ui-modal-body>\n\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\n\n </tcloud-ui-modal>\n\n <button type=\"button\" (click)=\"open = !open\">open modal {{ open }}</button>\n-->\n\n<!-- ****** -->\n<!-- ****** -->\n<!-- ****** -->\n<!-- ****** -->\n\n<!-- Ex: Confirm Modal -->\n<!-- \n <tcloud-ui-modal [(open)]=\"open_confirm\" [title]=\"'Atenção'\" [confirmText]=\"'Aceito'\" [confirm]=\"true\" (toAction)=\"$event\" >\n\n <tcloud-ui-modal-body>Deseja realmente executar esta ação?</tcloud-ui-modal-body>\n\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\n\n </tcloud-ui-modal>\n\n <button type=\"button\" (click)=\"open_confirm = !open_confirm\">open_confirm modal {{ open_confirm }}</button>\n-->","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TcloudModalService } from '../../services/tcloud-modal.service';\n\n@Component({\n selector: 'tcloud-ui-modal-body',\n templateUrl: './tcloud-ui-modal-body.component.html',\n styleUrls: ['./tcloud-ui-modal-body.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiModalBodyComponent implements OnInit {\n\n sticky: boolean = false;\n\n constructor(\n private tcloudModalService: TcloudModalService\n ) { }\n\n get isFooter(){\n return this.tcloudModalService.is_footer_signal();\n }\n\n ngOnInit(): void {\n this.sticky = this.tcloudModalService.getSticky();\n this.tcloudModalService.stateSticky$.subscribe((v:boolean)=>{this.sticky=v;});\n }\n\n}\n","<div class=\"tcloud-ui-modal-body tc-modal-body\" [class.body-sticky]=\"sticky\" [class.body-with-footer]=\"isFooter\" >\n <ng-content></ng-content>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TcloudModalService } from '../../services/tcloud-modal.service';\n\n@Component({\n selector: 'tcloud-ui-modal-header',\n templateUrl: './tcloud-ui-modal-header.component.html',\n styleUrls: ['./tcloud-ui-modal-header.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiModalHeaderComponent implements OnInit {\n\n @Input() mode: 'colorless' | 'info' | 'success' | 'danger' | 'warning' = 'info';\n @Input() title: any | undefined;\n \n constructor(\n private _tcloudModalService: TcloudModalService\n ) { }\n\n ngOnInit(): void {\n this._tcloudModalService.toMode( this.mode );\n }\n\n}\n","<div class=\"tcloud-ui-modal-header tc-modal-header tc-mode-{{ mode }}\" >\n <h4 class=\"text-neutral-700\" *ngIf=\"title\" [innerHTML]=\"title\"></h4>\n <ng-content></ng-content>\n <hr>\n</div>\n","import { Directive, effect, ElementRef, input } from '@angular/core';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n@Directive({\n selector: '[tcloudButton]',\n standalone: true\n})\nexport class TCloudUiButtonDirective {\npublic color = input<'primary' | 'light' | 'danger' | 'dark'>('primary');\npublic size = input<'lg' | 'md' | 'sm'>('sm');\npublic fullWidth = input<boolean>(false);\npublic tcloudButton = input<'filled' | 'outline' | 'link'>('filled');\n\nconstructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private _el: ElementRef<HTMLButtonElement>\n) {\n effect(() => {\n this.setClasses();\n });\n}\n\nprivate layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n}\n\n private setClasses(): void {\n const layout = this.layout();\n if( layout === 'classic' ){ return; }\n\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-btn')));\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-rev-btn--')));\n\n let tcloudButton = this.tcloudButton();\n\n if (!tcloudButton) {\n tcloudButton = 'filled';\n }\n\n if( layout === 'modern' ){\n this._el.nativeElement.classList.add('tc-rev-btn');\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-btn--full-width') : null;\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.color()}-${tcloudButton}`);\n }\n }\n}\n","import { Subscription } from 'rxjs';\nimport { TcloudModalService } from './../../services/tcloud-modal.service';\nimport { Component, OnInit, ViewChild, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { IConfirm } from '../../tcloud-ui-modal';\nimport { TCloudUiLayoutService } from '../../../../_services/tcloud-ui-layout.services';\nimport { TCloudUiButtonDirective } from '../../../../_directives/tcloud-button/tcloud-button.directive';\nimport { TCloudUiFormDirective } from '../../../../_directives/tcloud-form/tcloud-form.directive';\n\n@Component({\n selector: 'tcloud-ui-modal-footer',\n templateUrl: './tcloud-ui-modal-footer.component.html',\n styleUrls: ['./tcloud-ui-modal-footer.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule, TCloudUiButtonDirective, TCloudUiFormDirective]\n})\nexport class TCloudUiModalFooterComponent implements OnInit, OnDestroy {\n\n @Input() actions: boolean = true;\n\n @Input() btnCloseText: string = 'Fechar';\n @Input() btnCancelText: string = 'Cancelar';\n @Input() btnConfirmText: string = 'Confirmar';\n\n @ViewChild('_formulario') _formulario: NgForm | undefined; \n txt_value: string = '';\n\n param_confirm: IConfirm = {} as IConfirm;\n\n loading: boolean = false;\n\n subscription: Subscription |undefined;\n\n constructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private tcloudModalService: TcloudModalService\n ) { }\n\n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n\n ngOnInit(): void {\n this.txt_value = '';\n this.param_confirm = this.tcloudModalService.getParamConfirm();\n\n this.toStateLoading();\n\n this.tcloudModalService.set_is_footer_signal(true);\n }\n\n toClose(){\n this.tcloudModalService.toModal('close');\n }\n\n toConfirm(valid: boolean | any){\n if( typeof valid === 'boolean' ){\n if( valid && (this.txt_value).toLowerCase() === (this.param_confirm.confirmText).toLowerCase() ){\n this.tcloudModalService.toRespConfirm(true);\n this.txt_value = ''; \n }\n }\n }\n\n toCancel(){\n this.tcloudModalService.toRespConfirm(false);\n }\n\n toStateLoading(){\n this.loading = <any> this.tcloudModalService.getLoading();\n this.subscription = this.tcloudModalService.stateLoading$.subscribe((loading: boolean) => { this.loading = loading; } )\n }\n\n\n ngOnDestroy(): void {\n this.tcloudModalService.fixed_body('off');\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-modal-footer tc-modal-footer\">\n\n <div class=\"input-confirm\" *ngIf=\"param_confirm && param_confirm.confirmText\">\n <p>Digite a palavra <strong>"{{ param_confirm.confirmText }}"</strong> para confirmar.</p>\n \n <form #_formulario=\"ngForm\" (ngSubmit)=\"toConfirm(_formulario.valid)\">\n <input \n tcloudForm\n [disabled]=\"loading\"\n placeholder=\"{{ param_confirm.confirmText }}\"\n name=\"txt_value\" \n [(ngModel)]=\"txt_value\" \n type=\"text\" \n class=\"tc-form-confirm tc-form-control\" \n required \n [class.different-text]=\"(txt_value).length >= (param_confirm.confirmText).length && (txt_value).toLowerCase() !== (param_confirm.confirmText).toLowerCase()\" >\n </form>\n\n </div>\n\n <hr>\n\n <div class=\"actions-footer {{ (loading) ? 'state-loading' : '' }}\">\n <ng-container *ngIf=\"actions\">\n <!-- {{ param_confirm | json }} -->\n <button [disabled]=\"loading\" *ngIf=\"param_confirm && !param_confirm.confirm\" type=\"button\" class=\"tc-btn margin-l-5\" tcloudButton=\"filled\" color=\"light\" (click)=\"toClose()\">{{ btnCloseText }}</button>\n\n <button [disabled]=\"loading\" *ngIf=\"param_confirm && param_confirm.confirm\" type=\"button\" class=\"tc-btn margin-l-5\" tcloudButton=\"filled\" color=\"light\" (click)=\"toCancel()\">{{ btnCancelText }}</button>\n <button [disabled]=\"(txt_value).toLowerCase() !== (param_confirm.confirmText).toLowerCase() || loading\" *ngIf=\"param_confirm && param_confirm.confirm\" type=\"button\" class=\"tc-btn tc-btn-primary margin-l-5\" tcloudButton=\"filled\" (click)=\"toConfirm(_formulario?.valid)\">{{ btnConfirmText }}</button>\n </ng-container>\n </div>\n</div>\n","import { Component, OnInit, Input, EventEmitter, Output, OnDestroy, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiMultiInputComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiMultiInputComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-multi-input',\n templateUrl: './tcloud-ui-multi-input.component.html',\n styleUrls: ['./tcloud-ui-multi-input.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule]\n})\nexport class TCloudUiMultiInputComponent implements OnInit, OnDestroy, Validator {\n\n input_value: any;\n\n @Input() tcList: any[] | undefined;\n\n @Input() placeholder: string = '';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() required: string | undefined;\n @Input() maxWidthLabel: string | undefined;\n @Input() showInput: boolean = false;\n\n values: any[] | undefined;\n count_actives: number = 0;\n\n use_validation_required: boolean = false;\n item_value: any | undefined;\n\n @Output() tcChange = new EventEmitter<any[]>();\n\n constructor() { }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.toChange();\n });\n }\n\n addItem(item: any): void{\n if( this.disabled ){ return; }\n if( !this.tcList ){\n this.tcList = [];\n }\n (this.tcList).push({value: item}); \n this.toChange(); \n this.input_value = '';\n }\n\n\n removeItem(item: any, index: number): void{\n if( this.disabled ){ return; }\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( item === row.value && i === index ){\n (this.tcList).splice(index,1);\n break;\n }\n }\n this.toChange();\n }\n }\n\n private toChange(): void{\n let count_actives = 0;\n let itens: any[] = [];\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n (itens).push(row);\n }\n }\n this.item_value = null;\n this.count_actives = count_actives;\n this.tcChange.emit(itens);\n this.onChangeCallback(this.tcList);\n }\n\n check_is_valid(): boolean{\n if( this.tcList ){\n return ((this.tcList).length > 0) ? true : false;\n }\n return false;\n }\n\n onChangeTouched(){ \n this.onTouchedCallback(); \n }\n\n\n\n\n\n\n\n @Output() onChange = new EventEmitter<any>();\n // @Output() ngModelChange = new EventEmitter<any>();\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n toSetDefault(value: any){\n this.tcList = value;\n }\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n ngOnDestroy(): void {\n \n }\n}\n","<div class=\"tcloud-ui-multi-input\">\n\n <table *ngIf=\"!showInput\">\n <tr>\n <td>\n <input\n class=\"tc-form-control\"\n (blur)=\"onChangeTouched()\"\n [(ngModel)]=\"item_value\"\n [class.tc-parent-validation]=\"use_validation_required\"\n type=\"text\"\n [(ngModel)]=\"input_value\"\n [disabled]=\"disabled || loading\"\n name=\"input_value\"\n [placeholder]=\"placeholder\">\n </td>\n\n <td>\n <button\n [disabled]=\"!item_value || disabled || loading\"\n title=\"Adicionar\"\n class=\"btn-plus-select\"\n (click)=\"addItem(input_value);onChangeTouched()\"\n type=\"button\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n\n <div class=\"box-itens-selected\" *ngIf=\"(tcList && tcList.length > 0)\">\n <ng-container *ngFor=\"let item of tcList; let i = index\">\n\n <div class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\n <div class=\"box-value\" [title]=\"item.value\" >\n {{ item.value }}\n </div>\n <div class=\"box-action\">\n <button\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item.value, i);onChangeTouched()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n\n</div>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiMultiSelectComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiMultiSelectComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-multi-select',\n templateUrl: './tcloud-ui-multi-select.component.html',\n styleUrls: ['./tcloud-ui-multi-select.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule]\n})\nexport class TCloudUiMultiSelectComponent implements OnInit, OnDestroy, Validator {\n\n \n\n @Input() tcList: any[] | undefined;\n @Input() placeholder: string = 'Selecione um item';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() required: string | undefined;\n\n @Input() maxWidthLabel: string | undefined;\n @Input() showDescriptionInValue: boolean = false;\n @Input() showInput: boolean = false;\n\n @Output() tcChange = new EventEmitter<any[]>();\n\n use_validation_required: boolean = false;\n values: any[] | undefined;\n count_actives: number = 0;\n item_value: any | undefined;\n\n constructor() {}\n\n ngOnInit(): void {\n setTimeout(() => { this.toChange(); });\n }\n\n addItem(item: any): void{\n if( this.disabled ){ return; }\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( item === row.value ){\n this.tcList[i].active = true;\n break;\n }\n }\n this.toChange();\n } \n }\n\n removeItem(item: any): void{\n if( this.disabled ){ return; }\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( item === row.value ){\n this.tcList[i].active = false;\n break;\n }\n }\n this.toChange();\n }\n }\n\n private toChange(): void{\n let count_actives = 0;\n let itens: any[] = [];\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( row.active ){\n count_actives++;\n (itens).push(row);\n }\n }\n }\n this.item_value = null;\n this.count_actives = count_actives;\n this.tcChange.emit(itens);\n this.onChangeCallback(this.tcList);\n }\n\n\n check_is_valid(): boolean{\n let active = 0;\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const item = this.tcList[i];\n if( item && item.active && item.active === true){\n active++;\n break;\n }\n }\n }\n return (active > 0) ? true : false;\n }\n\n onChangeTouched(){ \n this.onTouchedCallback(); \n }\n\n\n\n\n\n\n\n @Output() onChange = new EventEmitter<any>();\n // @Output() ngModelChange = new EventEmitter<any>();\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n toSetDefault(value: any){\n this.tcList = value;\n }\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n ngOnDestroy(): void {\n \n }\n}\n","\n <div class=\"tcloud-ui-multi-select\">\n <table *ngIf=\"!showInput\">\n <tr *ngIf=\"tcList\">\n <td>\n <select\n class=\"tc-form-control\"\n [(ngModel)]=\"item_value\"\n [class.tc-parent-validation]=\"use_validation_required\"\n #_select\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n [title]=\"tcList.length === 0 ? 'Nenhum item disponível' : placeholder\">\n\n <option value=\"null\" disabled selected>{{ placeholder }}</option>\n\n <ng-container *ngFor=\"let item of tcList; let i = index\">\n <option [title]=\"item.description\" *ngIf=\"!item.active\" [value]=\"item.value\">{{ item.description }}</option>\n </ng-container>\n </select>\n </td>\n <td>\n <button\n [disabled]=\"!item_value || tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Adicionar\"\n class=\"btn-plus-select\"\n (click)=\"addItem(_select.value);onChangeTouched()\"\n type=\"button\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n\n <div class=\"box-itens-selected\" *ngIf=\"count_actives > 0 && (tcList && tcList.length > 0)\">\n <ng-container *ngFor=\"let item of tcList\">\n\n <ng-container *ngIf=\"item.active\">\n <div class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\" >\n <div class=\"box-value\" [title]=\"item.value\" *ngIf=\"!showDescriptionInValue\">\n {{ item.value }}\n </div>\n <div class=\"box-value\" [title]=\"item.description\" *ngIf=\"showDescriptionInValue\">\n {{ item.description }}\n </div>\n <div class=\"box-action\">\n <button\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item.value);onChangeTouched()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-not-found',\n templateUrl: './tcloud-ui-not-found.component.html',\n styleUrls: ['./tcloud-ui-not-found.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiNotFoundComponent \n{\n\n @Input() message: string = 'Nenhum registro encontrado.';\n\n public styleIcon: any = {};\n\n ngOnInit(): void\n {\n }\n}\n\n","<div class=\"tcloud-ui-not-found tc-container-empty\">\n <div class=\"tc-message-empty-icon\">\n <i class=\"fas fa-exclamation-triangle\"></i>\n </div>\n <div *ngIf=\"message !== ''\" class=\"tc-message-empty\" [innerHTML]=\"message\" ></div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-number-step',\n templateUrl: './tcloud-ui-number-step.component.html',\n styleUrls: ['./tcloud-ui-number-step.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiNumberStepComponent\n{\n @Input({ required: true }) step: number;\n @Input() active: number;\n @Input() complete: boolean;\n @Input() useIconCheck: boolean; // Usado por enquanto para não querar o TCloud\n @Input() inactives: number[] = [];\n @Output() clickStep = new EventEmitter<number>();\n\n public isInactive(_stepNumber: number): boolean\n {\n const isInactive = this.inactives.find(x => x == _stepNumber);\n return isInactive ? true : false;\n }\n}\n","<ng-container *ngFor=\"let item of [].constructor(step); let i = index\">\n\n <!-- Item circle -->\n @let numberStep = i + 1;\n @let inactive = isInactive(numberStep);\n @let last = (numberStep === step);\n <div\n class=\"container-circle\"\n [class.active]=\"(numberStep <= active) && !inactive\"\n [class.completed]=\"complete\"\n [class.disable]=\"inactive\"\n (click)=\"clickStep.emit(numberStep)\">\n\n <!-- Number -->\n <span *ngIf=\"(!complete) && (!inactive) && (numberStep >= active)\">{{ numberStep }}</span>\n\n <!-- Icon check -->\n <i *ngIf=\"(complete) || (!inactive) && (numberStep < active)\" class=\"fas fa-check\"></i>\n\n <!-- Icon disabled -->\n <i *ngIf=\"(!complete) && (inactive)\" class=\"far fa-circle\"></i>\n </div>\n\n <!-- Line progress -->\n <div *ngIf=\"!last\" class=\"container-line-progress\">\n <div\n class=\"line-progress\"\n [class.completed]=\"(complete) || (numberStep < active)\">\n </div>\n </div>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-scroll-box',\n templateUrl: './tcloud-ui-scroll-box.component.html',\n styleUrls: ['./tcloud-ui-scroll-box.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiScrollBoxComponent implements OnInit {\n\n @Input() border: boolean = true;\n @Input() maxHeight: number | string = '400';\n\n unidade: string = 'px';\n style_height: any | undefined;\n\n constructor() { }\n\n ngOnInit(): void {\n let und = '';\n if( `${this.maxHeight}` ){\n und = this.retirarNumeros(`${this.maxHeight}`);\n }\n // console.log(\"und\",und);\n\n if( ((und) && (und).trim() === '') || !und ){\n this.unidade = 'px';\n }else{\n this.unidade = (und).toLowerCase(); \n }\n\n this.maxHeight = (`${this.maxHeight}`).replace(this.unidade, '');\n if( this.unidade === 'vh' ){ \n this.style_height = {'height': this.maxHeight+this.unidade};\n }else{\n this.style_height = {'max-height': this.maxHeight+this.unidade};\n }\n }\n\n retirarNumeros(str: string) {\n // Utiliza regex para substituir todos os dígitos por uma string vazia\n const resultado = str.replace(/\\d/g, '');\n return resultado;\n}\n\n}\n","<div class=\"tcloud-ui-scroll-box tc-box-scroll\" [class.tc-box-scroll-border]=\"border\" >\n <div class=\"box-content\" [ngStyle]=\"style_height\" >\n <ng-content></ng-content>\n </div> \n</div>","import { ITab } from './../tcloud-ui-tab-menu';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n\n\n@Injectable()\nexport class TabMenuService {\n\n private info_tab: ITab[] = [];\n\n private _scroll: boolean | undefined;\n private scrollSubject = new Subject<boolean>(); \n public scrollState$ = this.scrollSubject.asObservable();\n\n private _bottom_line: boolean | undefined;\n private bottom_lineSubject = new Subject<boolean>(); \n public bottom_lineState$ = this.bottom_lineSubject.asObservable();\n\n private _tab: string | undefined;\n private tabSubject = new Subject<string>(); \n public tabState$ = this.tabSubject.asObservable();\n\n private _loading: boolean | undefined;\n private loadingSubject = new Subject<boolean>(); \n public loadingState$ = this.loadingSubject.asObservable();\n\n private _full: boolean | undefined;\n private fullSubject = new Subject<boolean>(); \n public fullState$ = this.fullSubject.asObservable();\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router\n ){\n\n }\n\n setTabScroll(scroll: boolean){\n this._scroll = scroll;\n this.scrollSubject.next(scroll);\n }\n\n getTabScroll(){\n return this._scroll;\n }\n\n setTabBottomLine(bottom_line: boolean){\n this._bottom_line = bottom_line;\n this.bottom_lineSubject.next(bottom_line);\n }\n\n getTabBottomLine(){\n return this._bottom_line;\n } \n\n setTabLoading(loading: boolean){\n this._loading = loading;\n this.loadingSubject.next(loading);\n }\n\n getTabLoading(){\n return this._loading;\n }\n\n setTabfull(full: boolean){\n this._full = full;\n this.fullSubject.next(full);\n }\n\n getTabFull(){\n return this._full;\n }\n\n setTabState(tab: string, registerInUrl?:boolean | undefined){\n this._tab = tab;\n if( registerInUrl ){ this.set_to_param_url(tab); } \n this.tabSubject.next(tab);\n }\n\n getTabState(){\n return this._tab;\n }\n\n setTabDisabled(id: string, disabled: boolean ){\n let create = true;\n if( this.info_tab && (this.info_tab).length > 0 ){\n for( let i = 0; i < (this.info_tab).length; i++ ){\n if( this.info_tab[i].id === id ){\n this.info_tab[i].disabled = disabled;\n create = false;\n break;\n }\n }\n }\n if( create ){\n (this.info_tab).push({ id:id, disabled: disabled });\n } \n }\n\n getIsDisabled(id: string){\n if( this.info_tab && (this.info_tab).length > 0 ){\n for( let i = 0; i < (this.info_tab).length; i++ ){\n if( this.info_tab[i].id === id ){\n return this.info_tab[i].disabled;\n }\n }\n }\n return false;\n }\n\n set_to_param_url(tab: string){\n // changes the route without moving from the current view or\n // triggering a navigation event,\n this._router.navigate([], {\n relativeTo: this._route,\n queryParams: {\n tab: `${tab}`\n },\n queryParamsHandling: 'merge',\n // preserve the existing query params in the route\n skipLocationChange: false\n // do not trigger navigation\n });\n }\n\n}","import { Subscription } from 'rxjs';\nimport { TabMenuService } from './services/tab-menu.service';\nimport { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-tab-menu',\n templateUrl: './tcloud-ui-tab-menu.component.html',\n styleUrls: ['./tcloud-ui-tab-menu.component.scss'],\n providers: [TabMenuService],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabMenuComponent implements OnInit, OnDestroy {\n\n @Input() registerInUrl: boolean = false;\n\n private _loading: boolean = false;\n @Input() set loading(loading: boolean){\n this._loading = loading;\n this.tabMenuService.setTabLoading(this.loading);\n }\n get loading(): boolean{ return this._loading; }\n\n private _active: string = '';\n @Input() set active(active: string){\n this._active = active;\n if( this.active !== '' ){\n setTimeout(() => {\n this.tabMenuService.setTabState(this.active, this.registerInUrl);\n });\n \n }\n }\n get active(): string{ return this._active; }\n\n private _full: boolean = false;\n @Input() set full(full: boolean){\n this._full = full;\n this.tabMenuService.setTabfull(this.full);\n }\n get full(): boolean{ return this._full; }\n\n\n @Output() onChange = new EventEmitter<string>();\n\n private subscription: Subscription | undefined;\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n const tab = this.tabMenuService.getTabState();\n if( tab === this._active ){\n this.onChange.emit(tab);\n }\n\n this.subscription = this.tabMenuService.tabState$.subscribe((tab: string)=>{\n this.onChange.emit(tab);\n })\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-tab-menu tc-tab-menu\" [class.loading]=\"loading\" [class.tcloud-ui-tab-block-full]=\"full\" >\n <ng-content></ng-content>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-head',\n templateUrl: './tcloud-ui-tab-head.component.html',\n styleUrls: ['./tcloud-ui-tab-head.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabHeadComponent implements OnInit {\n\n private _scroll: boolean = true;\n @Input() set scroll(scroll: boolean){\n if( typeof scroll === 'boolean' ){\n this._scroll = scroll;\n this.tabMenuService.setTabScroll(scroll);\n }\n }\n get scroll(): boolean { return this._scroll; }\n\n ID: string = '';\n @Input() background: boolean = true;\n\n @Input() backgroundColor: '#FFFFFF'|'#F1F1F1'|'white'|'transparent' = 'transparent'; // var(--cinza4)\n\n private _bottom_line: boolean = false;\n @Input() set bottom_line(bottom_line: boolean){\n if( typeof bottom_line === 'boolean' ){\n this._bottom_line = bottom_line;\n this.tabMenuService.setTabBottomLine(bottom_line);\n }\n }\n get bottom_line(): boolean { return this._bottom_line; }\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n if( this.background ){\n if( this.backgroundColor === 'white' ){\n this.backgroundColor = '#FFFFFF';\n }else{\n this.backgroundColor = '#F1F1F1';\n }\n }\n\n this.ID = this.generateID();\n }\n\n generateID(): string{\n return `tc-head-scroll-box-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n to_scroll(action: 'prev'|'next'){\n this.moveScroll(action, this.width_scroll());\n }\n\n private width_scroll(): number{\n var ele = <any> document.querySelectorAll(`.${this.ID}`);\n return ele[0].querySelector(\"button\").offsetWidth;\n }\n\n private scrollSuave(old:any, des:any, atu:any, ele:any){\n const _this = this;\n var easeOutCubic = (t:any) => { return (--t)*t*t+1 };\n atu += 5; // move de 5 em 5 pixel. Aumentando o valor da velocidade\n var ease = easeOutCubic(atu/100);\n var del = des-old;\n del *= ease;\n del += old;\n ele.scrollTo(del, 0);\n if(atu < 100){\n window.requestAnimationFrame(() => {\n _this.scrollSuave(old, des, atu, ele);\n });\n }\n }\n\n private moveScroll(action: any, wid: number){\n var ele = document.querySelectorAll(`.${this.ID}`);\n var ccs = ele[0];\n var ccs_s = ccs.scrollLeft;\n this.scrollSuave(ccs_s, action == 'next' ? wid+ccs_s : ccs_s-wid, 0, ccs);\n }\n\n}","\n\n<table class=\"tcloud-ui-tab-head area-navigation\">\n <tr>\n <td *ngIf=\"scroll\">\n <button (click)=\"to_scroll('prev')\"> <i class=\"fas fa-chevron-left\"></i> </button>\n </td>\n\n <td>\n\n </td>\n\n <td *ngIf=\"scroll\">\n <button (click)=\"to_scroll('next')\"> <i class=\"fas fa-chevron-right\"></i> </button>\n </td>\n </tr>\n</table>\n\n<div class=\"tc-menu {{ ID }}\" [attr.style]=\"'background: ' + backgroundColor + ';'\" [class.tab-full]=\"!scroll\" [class.tab-subtitle-line-bottom]=\"bottom_line\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"hr-border-bottom\" *ngIf=\"bottom_line\"></div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-content',\n templateUrl: './tcloud-ui-tab-content.component.html',\n styleUrls: ['./tcloud-ui-tab-content.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabContentComponent implements OnInit {\n\n @Input() hideContent: boolean = false;\n @Input() tab: string = '';\n\n active: boolean = false;\n \n private subscription: Subscription | undefined;\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n const disabled = this.tabMenuService.getIsDisabled(this.tab);\n const tab = this.tabMenuService.getTabState();\n\n this.active = ( tab === this.tab && !disabled );\n\n this.subscription = this.tabMenuService.tabState$.subscribe((tab: string)=>{\n this.active = ( tab === this.tab );\n });\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-tab-content tc-tabmenu-content\" *ngIf=\"active || hideContent\" [class.tc-table-hide]=\"!active\">\n <ng-content></ng-content>\n</div>\n\n","import { OnDestroy } from '@angular/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-title',\n templateUrl: './tcloud-ui-tab-title.component.html',\n styleUrls: ['./tcloud-ui-tab-title.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabTitleComponent implements OnInit, OnDestroy {\n\n @Input() tab: string = '';\n @Input() title: string | undefined;\n @Input() active: boolean = false;\n\n loading: boolean = false;\n bottom_line: boolean = false;\n\n private _disabled: boolean = false;\n @Input() set disabled(disabled){\n this._disabled = disabled;\n this.tabMenuService.setTabDisabled( this.tab, this._disabled );\n }\n get disabled(): boolean { return this._disabled; }\n\n \n\n private subscription = new Subscription();\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n if( !this.disabled ){\n const tab = this.tabMenuService.getTabState();\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n\n const bottom_line = this.tabMenuService.getTabBottomLine();\n if( typeof bottom_line === 'boolean' ){\n this.bottom_line = bottom_line;\n }\n }\n \n this.subscription?.add(\n this.tabMenuService.tabState$.subscribe((tab: string)=>{\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n })\n )\n\n this.loading = <any> this.tabMenuService.getTabLoading();\n this.subscription?.add(\n this.tabMenuService.loadingState$.subscribe((loading: boolean)=>{\n this.loading = loading;\n })\n )\n\n this.subscription?.add(\n this.tabMenuService.bottom_lineState$.subscribe((bottom_line: boolean)=>{\n this.bottom_line = bottom_line;\n })\n )\n }\n\n toTab(){\n if( !this.disabled ){\n if( this.tab && this.tab !== '' ){\n this.tabMenuService.setTabState(this.tab);\n }\n }\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-title-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-title tab-title\" >\n <ng-content></ng-content>\n</button>\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\" ></div>","import { OnDestroy } from '@angular/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-subtitle',\n templateUrl: './tcloud-ui-tab-subtitle.component.html',\n styleUrls: ['./tcloud-ui-tab-subtitle.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabSubtitleComponent implements OnInit, OnDestroy {\n\n @Input() tab: string = '';\n @Input() active: boolean = false;\n\n private _disabled: boolean = false;\n @Input() set disabled(disabled){\n this._disabled = disabled;\n this.tabMenuService.setTabDisabled( this.tab, this._disabled );\n }\n get disabled(): boolean { return this._disabled; }\n\n loading: boolean = false;\n bottom_line: boolean = false;\n private subscription = new Subscription();\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n if( !this.disabled ){\n const tab = this.tabMenuService.getTabState();\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n\n const bottom_line = this.tabMenuService.getTabBottomLine();\n if( typeof bottom_line === 'boolean' ){\n this.bottom_line = bottom_line;\n }\n\n }\n\n this.subscription?.add(\n this.tabMenuService.tabState$.subscribe((tab: string)=>{\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n })\n )\n\n this.loading = <any> this.tabMenuService.getTabLoading();\n this.subscription?.add(\n this.tabMenuService.loadingState$.subscribe((loading: boolean)=>{\n this.loading = loading;\n })\n )\n\n this.subscription?.add(\n this.tabMenuService.bottom_lineState$.subscribe((bottom_line: boolean)=>{\n this.bottom_line = bottom_line;\n })\n )\n }\n\n toTab(){\n if( !this.disabled ){\n if( this.tab && this.tab !== '' ){\n this.tabMenuService.setTabState(this.tab);\n }\n }\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-subtitle-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-subtitle tab-subtitle\" >\n <ng-content></ng-content>\n</button>\n\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\"></div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-table',\n templateUrl: './tcloud-ui-table.component.html',\n styleUrls: ['./tcloud-ui-table.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTableComponent implements OnInit {\n\n @Input() responsive: boolean = true;\n @Input() striped: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<table class=\"tc-table\" [class.tc-table-striped]=\"striped\" [class.tc-table-responsive]=\"responsive\" cellspacing=\"0\">\n <ng-content select=\"[tc-thead]\"></ng-content>\n <ng-content select=\"[tc-tbody]\"></ng-content>\n</table>\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiInputPasswordComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-input-password',\n templateUrl: './tcloud-ui-input-password.component.html',\n styleUrls: ['./tcloud-ui-input-password.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [CommonModule, FormsModule]\n})\nexport class TCloudUiInputPasswordComponent implements OnInit {\n\n @Input() actionView: boolean = true;\n @Input() actionCopy: boolean = true;\n @Input() actionGeneratePassword: boolean = true;\n\n @Input() numberOfCharacter: number = 14;\n\n @Input() atLeastOneUppercaseLetter: boolean = true;\n @Input() atLeastOneLowercaseLetter: boolean = true;\n @Input() atLeastOneSpecialCharacter: boolean = true;\n\n \n innerValue: string = '';\n\n private _ngModel: any | undefined;\n @Input() set ngModel(v: any){\n this.innerValue = v; \n }\n @Output() ngModelChange = new EventEmitter<any>();\n\n mode: string = 'password';\n isCopy: boolean = false;\n passwordRegex: any | undefined;\n\n constructor() { }\n\n ngOnInit(): void {\n this.passwordRegex = this.getRegexValidation();\n }\n\n toggleMode(){\n if( this.mode === 'password' ){\n this.mode = 'text';\n }else{\n this.mode = 'password';\n }\n }\n\n copyText(): void {\n this.isCopy = true;\n navigator.clipboard.writeText(this.innerValue);\n setTimeout(() => { this.isCopy = false; }, 3000);\n }\n\n generatePassword(){\n this.innerValue = this.createNewPass();\n }\n\n private createNewPass() {\n const uppercaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz';\n const numbers = '0123456789';\n const specialCharacters = '!@#$%^&*()_+{}[]:;<>,.?/~';\n \n const allCharacters = uppercaseLetters + lowercaseLetters + numbers + specialCharacters;\n \n const getRandomCharacter = (characters: string) => {\n const randomIndex = Math.floor(Math.random() * characters.length);\n return characters[randomIndex];\n };\n \n let password = '';\n password += getRandomCharacter(uppercaseLetters);\n password += getRandomCharacter(numbers);\n password += getRandomCharacter(specialCharacters);\n \n const remainingLength = this.numberOfCharacter - password.length; \n for (let i = 0; i < remainingLength; i++) {\n password += getRandomCharacter(allCharacters);\n } \n password = password.split('').sort(() => Math.random() - 0.5).join(''); \n return password;\n }\n \n\n getRegexValidation() {\n /*\n (?=.*[A-Z]): Pelo menos uma letra maiúscula.\n (?=.*[0-9]): Pelo menos um número.\n (?=.*[!@#$%^&*()_+{}[\\]:;<>,.?\\/~]): Pelo menos um caractere especial.\n (?!.*\\s): Não contém espaços em branco.\n .{14,}: Pelo menos 14 caracteres no total.\n */\n\n const maiusculas = (this.atLeastOneUppercaseLetter) ? `(?=.*[A-Z])` : '';\n const minusculas = (this.atLeastOneLowercaseLetter) ? `(?=.*[a-z])` : '';\n const especiais = (this.atLeastOneSpecialCharacter) ? `(?=.*[!@#$%^&*\\\\(\\\\)_+\\\\{\\\\}\\\\[\\\\]:;<>,.?\\\\/~])(?!.*\\\\s)`: '';\n\n return `^${maiusculas}${minusculas}${especiais}.{${this.numberOfCharacter},}$`;\n }\n\n\n\n\n\n\n\n\n \n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n}\n","<div class=\"tcloud-ui-input-password\">\n <table>\n <tr>\n <!-- input password -->\n <td>\n <form #_form=\"ngForm\">\n <ng-container *ngIf=\"passwordRegex\">\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\n </ng-container>\n </form>\n </td>\n\n <!-- action show hide -->\n <td *ngIf=\"actionView\">\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \n </button>\n </td>\n\n <!-- action generate pass -->\n <td *ngIf=\"actionGeneratePassword\">\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\n <i class=\"fa-solid fa-key\"></i>\n </button>\n </td>\n\n <!-- action copy pass -->\n <td *ngIf=\"actionCopy\">\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\n </button>\n </td>\n </tr>\n </table>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-label-token',\n templateUrl: './tcloud-ui-label-token.component.html',\n styleUrls: ['./tcloud-ui-label-token.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLabelTokenComponent implements OnInit {\n\n @Input() copy: boolean = false;\n @Input() value: any = '';\n @Output() onClick = new EventEmitter<any>();\n\n show: boolean = false;\n isCopy: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public copyText(): void {\n this.isCopy = true;\n // Copy the text inside the text field\n navigator.clipboard.writeText(this.value);\n this.onClick.emit(this.value);\n\n setTimeout(() => {\n this.isCopy = false;\n }, 3000);\n\n }\n\n}","<div>\n\n <div class=\"mb-2 box-area\">\n <table>\n <tr>\n\n <td class=\"area-value\">\n <div *ngIf=\"show\">{{ value }}</div>\n <div class=\"no-show\" *ngIf=\"!show\">#*#*#*#*#*#*#*#*#</div>\n </td>\n\n <td class=\"area-action\">\n <div class=\"options-area-actions\">\n <button type=\"button\" *ngIf=\"show\" class=\"btn-icon-smart\" (click)=\"show = !show\" ><i class=\"fas fa-eye\"></i></button>\n <button type=\"button\" *ngIf=\"!show\" class=\"btn-icon-smart\" (click)=\"show = !show\"><i class=\"fas fa-eye-slash\"></i></button>\n\n <ng-container *ngIf=\"copy\">\n <button type=\"button\" [title]=\"'Copiar texto'\" *ngIf=\"!isCopy\" class=\"btn-icon-smart\" (click)=\"copyText()\" ><i class=\"fas fa-copy\"></i></button>\n <button type=\"button\" [title]=\"'Texto copiado'\" *ngIf=\"isCopy\" class=\"btn-icon-smart\"><i class=\"fas fa-check\"></i></button>\n </ng-container>\n </div>\n </td>\n\n </tr>\n </table>\n </div>\n\n </div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { LineStepTitleData } from './tcloud-ui-line-step-title';\n\n@Component({\n selector: 'tcloud-ui-line-step-title',\n templateUrl: './tcloud-ui-line-step-title.component.html',\n styleUrls: ['./tcloud-ui-line-step-title.component.scss'],\n animations: [\n trigger('progressBarEntering', [\n state('in', style({ width: '*' })),\n transition('void => *', [\n style({ width: 0 }),\n animate('1.5s 0s ease')\n ])\n ])\n ],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLineStepTitleComponent implements OnInit {\n @Input() showStepCounter: boolean = true;\n @Input() steps!: LineStepTitleData[];\n @Input() currentStep?: number;\n\n ngOnInit(): void {\n\n }\n\n public get completedSteps(): number {\n return this.steps.filter(x => x.completed).length;\n }\n}\n","<div class=\"tcloud-ui-line-step\">\n <div class=\"steps-title-wrapper\">\n <ng-container *ngFor=\"let step of steps; let i = index\">\n <span\n class=\"step-title\"\n [ngStyle]=\"{ 'flex-basis' : 100 / steps.length + '%' }\"\n [ngClass]=\"{ 'completed' : currentStep ? i < currentStep : step.completed }\">\n <ng-container *ngIf=\"showStepCounter\">{{i + 1}}.</ng-container> {{step.title}}\n </span>\n </ng-container>\n </div>\n\n <div class=\"line-wrapper\">\n <div class=\"background-line\"></div>\n <div\n @progressBarEntering\n class=\"progress-line\"\n [ngStyle]=\"{ 'width.%' : currentStep ? ((currentStep / steps.length) * 100) : ((completedSteps / steps.length) * 100) }\">\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-cubes',\n templateUrl: './tcloud-ui-cubes.component.html',\n styleUrls: ['./tcloud-ui-cubes.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiCubesComponent {\n\n}\n","<div class=\"loadingio-spinner-cube\"><div class=\"tc-cube-loading\">\n <div></div><div></div><div></div><div></div></div>\n</div>","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiCubesComponent } from './components/tcloud-ui-cubes/tcloud-ui-cubes.component';\n\n@Component({\n selector: 'tcloud-ui-loading',\n templateUrl: './tcloud-ui-loading.component.html',\n styleUrls: ['./tcloud-ui-loading.component.css'],\n standalone: true,\n imports: [CommonModule, TCloudUiCubesComponent]\n})\nexport class TCloudUiLoadingComponent {\n\n @Input() full: boolean = false;\n\n private _loading: boolean = false;\n @Input() set loading(loading: boolean){\n if( this._loading !== loading ){\n this._loading = loading;\n } \n }\n get loading(): boolean{ return this._loading; } \n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}","<div *ngIf=\"full && loading\" class=\"tc-loading-full\">\n <div class=\"tc-state-loading-backdrop\"></div>\n <div class=\"tc-state-loading-main\">\n <div class=\"tc-state-loading-artifact\">\n \n <tcloud-ui-cubes></tcloud-ui-cubes>\n \n </div>\n </div>\n </div>\n \n <ng-container *ngIf=\"!full && loading\">\n <div class=\"tc-state-loading-backdrop\"></div>\n <div class=\"tc-state-loading-main\">\n <div class=\"tc-state-loading-artifact\">\n \n <tcloud-ui-cubes></tcloud-ui-cubes>\n \n </div>\n </div>\n </ng-container>\n ","import { Component, Input, OnDestroy, OnInit, forwardRef, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormControl, Validator } from '@angular/forms';\nimport { TCloudUiDataListComponent } from '../tcloud-ui-data-list/tcloud-ui-data-list.component';\nimport { TCloudUiDataListOptionComponent } from '../tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiMultiplesValuesComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiMultiplesValuesComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-multiples-values',\n templateUrl: './tcloud-ui-multiples-values.component.html',\n styleUrls: ['./tcloud-ui-multiples-values.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TCloudUiDataListComponent, TCloudUiDataListOptionComponent]\n})\nexport class TCloudUiMultiplesValuesComponent implements OnInit, OnDestroy, Validator {\n\n viewport_width: number = 0;\n viewport_height: number = 0;\n box_height: number = 0;\n box_style: string = '';\n menu_on_top: string = '';\n search_text: string = '';\n\n id: string = '';\n show_itens: boolean = false;\n show_component: boolean = false;\n \n\n input_items: string = '';\n\n items = [] as string[];\n\n private _listItems: any | undefined;\n @Input() set listItems(v: any | undefined){\n if( v !== this._listItems ){\n this._listItems = v;\n }\n }\n get listItems():any | undefined { return this._listItems; }\n \n @Input() openValuesInChange: boolean = true;\n @Input() useBtnAdd: boolean = true;\n\n @Input() pattern: RegExp | any = null;\n @Input() delimiter: string = ',';\n @Input() placeholder: string = '';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() required: string | undefined;\n @Input() search: boolean = true;\n @Input() uppercase: boolean = false;\n @Input() lowercase: boolean = false;\n\n @Input() maxWidthLabel: string | undefined;\n\n @Output() tcChange = new EventEmitter<any>();\n\n use_validation_required: boolean = false;\n\n placeholder_list: string = '';\n\n constructor() { }\n\n ngOnInit(): void {\n this.id = this.generateID();\n setTimeout(() => { \n this.show_component = true;\n this.toResize();\n this.toClick();\n this.set_placeholder_list(); \n }); \n }\n\n check_is_valid(): boolean{\n if( this.items ){\n return ((this.items).length > 0) ? true : false;\n }\n return false;\n }\n\n generateID(): string{\n return `multiple-values-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n remove_duplicates(items: string[]): string[] {\n return [...new Set(items)];\n }\n\n \n add_items_by_data_list(e: any){\n this.input_items = e;\n this.add_items();\n }\n\n add_items(){\n\n if( this.disabled ){ return; }\n\n const input_items = this.input_items;\n\n this.input_items = '';\n \n let items = [];\n if( input_items && input_items !== '' ){\n\n items = <any> (input_items).split(this.delimiter);\n\n }\n\n if( (items).length === 0 ){\n if( input_items && input_items !== '' ){\n let txt = `${(input_items).trim()}`;\n items = [txt];\n }\n }\n\n //items = [...new Set(items)];\n\n for( let i = 0; i < (items).length; i++){\n let txt = `${(items[i]).trim()}`;\n\n if( this.uppercase ){\n if( txt && txt !== '' ){\n txt = (txt).toLocaleUpperCase();\n } \n }\n\n if( this.lowercase ){\n if( txt && txt !== '' ){\n txt = (txt).toLocaleLowerCase();\n }\n }\n\n if( txt && txt !== '' ){\n (this.items).push(txt);\n }\n \n }\n\n this.items = this.remove_duplicates(this.items);\n this.set_placeholder_list();\n }\n\n set_placeholder_list(){\n let placeholder_list = '';\n let delimiter = '';\n const items = this.items;\n if( items && (items).length > 0 ){\n for( let i = 0; i < (items).length; i++){\n placeholder_list += delimiter + `${(items[i]).trim()}`;\n delimiter = `${this.delimiter} `;\n }\n }\n this.placeholder_list = (placeholder_list !== '') ? placeholder_list : this.placeholder;\n this.onChangeTouched();\n this.onChangeCallback(this.items);\n this.onChange();\n }\n\n\n removeItem(item: any, index: number): void{\n if( this.disabled ){ return; }\n if( this.items ){\n for( let i = 0; i < (this.items).length; i++ ){\n const row = this.items[i];\n if( item === row && i === index ){\n (this.items).splice(index,1);\n break;\n }\n }\n }\n\n if( (this.items).length === 0 ){\n this.show_itens = false\n }\n\n this.set_placeholder_list();\n }\n\n remove_all(){\n if( this.disabled ){ return; }\n this.items = [];\n this.set_placeholder_list();\n }\n\n toClick(){\n const box = `area-${this.id}`;\n window.addEventListener('click',(e: any) => { \n\n if( this.show_itens ){ \n try {\n if( !(document.getElementById(box)?.contains(e.target)) ){ \n if( 'box-action' !== e.target.parentElement.className ){\n this.show_itens = false;\n } \n \n }\n } catch (error) {\n \n }\n \n }\n });\n\n const boxsub = `${this.id}-options`;\n }\n\n toResize(){\n window.addEventListener('resize', () => {\n this.viewport_width = window.innerWidth;\n this.viewport_height = window.innerHeight;\n this.resolve_position_dropdown(this.show_itens);\n });\n }\n\n toOpen(){\n if( this.items.length === 0 ){\n this.show_itens = false;\n return;\n }\n\n this.show_itens = !this.show_itens; \n this.resolve_position_dropdown(this.show_itens);\n }\n\n toClose(){\n this.show_itens = false;\n }\n\n resolve_position_dropdown(open: boolean){\n if( open ){\n this.box_style = '';\n this.menu_on_top = ''; \n const id = `${this.id}`; \n const box = `box-${this.id}`;\n if( this.viewport_height === 0 ){\n this.viewport_height = window.innerWidth;\n }\n const rect = document.getElementById(id)?.getBoundingClientRect();\n const box_position = rect?.bottom || 0; \n setTimeout(() => {\n this.box_height = document.getElementById(box)?.clientHeight || 0;\n if( ( this.viewport_height - box_position) < this.box_height ){\n this.menu_on_top = 'menu-on-top';\n this.box_style = `top: -${ (this.box_height) }px; height: ${this.box_height}px;`;\n }\n }); \n }\n }\n\n\n\n clearTextSearch(){\n this.search_text = '';\n this.toSearch('');\n }\n\n toSearch(e: any) {\n let input = (e && e.target && e.target.value) ? e.target.value : '';\n \n let filter = ( ( (input).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n let ul = <any> document.getElementById(`${this.id}-options`);\n let li = ul.getElementsByTagName(\"label\");\n for (let i = 0; i < li.length; i++) {\n const a = li[i];\n const txtValue = ( ( ( a.textContent || a.innerText ).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n if (txtValue.indexOf(filter) > -1) {\n li[i].style.display = \"\";\n } else {\n li[i].style.display = \"none\";\n }\n }\n }\n\n\n toEnterKey(input_items: string | string[] ){\n\n if( !input_items ){ return; }\n\n let valid = true;\n if( this.pattern ){\n valid = (this.pattern).test(this.input_items);\n\n }\n\n if( valid ){\n this.add_items();\n if( this.openValuesInChange ){\n this.toOpen();\n } \n }\n \n\n }\n\n checkIsDisabled(item: any){\n if( item?.disabled ){\n return true;\n }\n const value = `${item.value}`;\n if( (this.items).length > 0 ){\n for( let i = 0; i < (this.items).length; i++ ){\n if( `${this.items[i]}` === value ){\n return true;\n }\n }\n }\n return false;\n }\n\n\n onChange(){\n this.tcChange.emit(this.items);\n }\n\n\n\n\n\n\n\n\n\n\n\n onChangeTouched(){ \n this.onTouchedCallback(); \n }\n\n\n toSetDefault(v:any){\n this.items = v;\n this.add_items();\n }\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.toSetDefault(v); \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n\n ngOnDestroy(): void {\n \n }\n\n}\n","<div *ngIf=\"show_component\" class=\"tcloud-ui-multiples-values tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\n\n\n <form #_formulario=\"ngForm\">\n\n <!-- {{ input_items }} -->\n\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\n\n <table style=\"width: 100%;\">\n <tr>\n <td>\n <table class=\"group-input-action\">\n <tr>\n <td class=\"box-input{{ (listItems && (listItems).length > 0) ? '-data-list' : '' }} bc-l\">\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <div class=\"input\" (click)=\"show_itens = false\">\n <tcloud-ui-data-list [placeholder]=\"placeholder_list\" [search]=\"search\" [border]=\"false\" [loading]=\"loading\" [disabled]=\"disabled\" name=\"items\" [(ngModel)]=\"input_items\" (onChange)=\"toEnterKey(input_items)\">\n <ng-container *ngFor=\"let item of listItems\"> \n <tcloud-ui-data-list-option [value]=\"'' + item.value\" [disabled]=\"checkIsDisabled(item)\">{{ item?.description }}</tcloud-ui-data-list-option>\n </ng-container>\n </tcloud-ui-data-list>\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\n <div class=\"input\">\n <input \n required\n [pattern]=\"pattern\"\n (keydown.enter)=\"toEnterKey(input_items)\"\n [disabled]=\"disabled\"\n [class.text-lowercase]=\"lowercase\"\n [class.text-uppercase]=\"uppercase\" \n type=\"text\" name=\"items\" class=\"tc-form-control area-text\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\n \n </div>\n </ng-container>\n </td>\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\n <div class=\"input\">\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly> \n </div>\n </td>\n <td class=\"count-list\" *ngIf=\"!items || (items && items.length === 0)\">\n <div class=\"input\"><input type=\"text\" class=\"info-no-value\" value=\"Vazio\" disabled readonly></div> \n </td>\n <td class=\"action-input-arrow bc-r\">\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\n </button>\n </td>\n \n </tr>\n </table> \n </td>\n <td style=\"width: 45px;\" *ngIf=\"useBtnAdd\">\n <table>\n <tr>\n <td class=\"action-input\" *ngIf=\"!disabled\">\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items()\" title=\"Adicionar item\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </ng-container>\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items_by_data_list(input_items)\" title=\"Adicionar item\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </ng-container>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n </div>\n \n <!-- <pre>\n {{ items | json }}\n </pre> -->\n\n </form> \n\n <!-- box-itens-selected -->\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\n \n\n <div class=\"line-search\">\n <table class=\"box-search\" *ngIf=\"items && (items).length > 5\">\n <tr>\n \n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n \n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n\n <div class=\"area-options\" id=\"{{ id }}-options\">\n <ng-container *ngFor=\"let item of items; let i = index\">\n \n <label class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\n <div class=\"box-value\" [title]=\"item\" >\n {{ item }} \n </div>\n <div class=\"box-action\">\n <button\n class=\"box-action\"\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item, i)\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </label>\n\n </ng-container>\n </div>\n\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\n <div class=\"btn-remove-all\">\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\n Limpar toda a lista\n </button>\n </div>\n </div>\n\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-progress-bar',\n templateUrl: './tcloud-ui-progress-bar.component.html',\n styleUrls: ['./tcloud-ui-progress-bar.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiProgressBarComponent implements OnInit {\n\n value_100: number = 100;\n\n private _limit: any = undefined;\n @Input() set limit(limit: any){\n this._limit = (limit) ? `${limit}` : undefined\n }\n get limit(){ return this._limit; }\n\n /*\n status\n */\n private _status: any = '0';\n @Input() set status(status: any){\n let value = `${status}`;\n if( value ){\n setTimeout(() => {\n this._status = value;\n this.toCalcLimit();\n }); \n }\n }\n get status():string { return this._status } \n\n /*\n mode\n */\n private _mode: string = 'primary';\n @Input() set mode(mode: string){\n if( mode ){\n this._mode = mode; \n this.setMode();\n } \n }\n get mode():string { return this._mode } \n\n /*\n height\n */\n private _height: string = 'normal';\n @Input() set height(height: string){\n if( height ){\n this._height = height; \n this.setheight(); \n } \n }\n get height():string { return this._height }\n\n progress_class: string = '';\n height_class: string = '';\n\n @Input() useDefaultBackground: boolean = true;\n @Input() showValue: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n this.setMode();\n this.setheight();\n }\n\n setMode(): void{\n const mode = this.mode;\n let progress_class = 'progress-primary';\n switch (mode) {\n case 'primary': progress_class = 'progress-primary'; break;\n case 'danger': progress_class = 'progress-danger'; break;\n case 'warning': progress_class = 'progress-warning'; break;\n case 'info': progress_class = 'progress-info'; break;\n case 'success': progress_class = 'progress-success'; break;\n case 'gray': progress_class = 'progress-gray'; break;\n\n case 'gradient-success': progress_class = 'progress-gradient-success'; break;\n case 'gradient-danger': progress_class = 'progress-gradient-danger'; break;\n case 'gradient-warning': progress_class = 'progress-gradient-warning'; break;\n case 'gradient-info': progress_class = 'progress-gradient-info'; break;\n }\n this.progress_class = progress_class;\n }\n\n setheight(): void{\n const height = this.height;\n let height_class = 'height-normal';\n switch (height) {\n case 'normal': height_class = 'height-normal'; break;\n case 'slim': height_class = 'height-slim'; break;\n case 'fat': height_class = 'height-fat'; break;\n case 'very-fat': height_class = 'height-very-fat'; break;\n }\n this.height_class = height_class;\n }\n\n toCalcLimit_exceeded(){\n let vp: number = 100;\n let percentual: number = +(this.status);\n\n if( percentual > 100 ){\n let v100 = vp / (percentual / 100);\n this.value_100 = +((v100).toFixed(2));\n }\n this.new_status = 100;\n }\n\n toCalcLimit(){\n\n if( this.limit ){\n\n if( +(this.status) > +(this.limit) ){\n this.toCalcLimit_exceeded();\n return;\n }\n\n let vp: number = 100;\n let percentual: number = +(this.limit);\n\n if( percentual > 100 ){\n let v100 = vp / (percentual / 100);\n this.value_100 = +((v100).toFixed(2));\n }\n\n this.toCalcStatus();\n }\n }\n\n new_status: number = 0;\n toCalcStatus(){\n \n let valorBase: number = +(this.status);\n let percentual: number = +(this.limit);\n\n // Calcula o valor correspondente ao percentual do valor base\n let resultado = valorBase / (percentual / 100);\n this.new_status = resultado;\n // console.log('new_status', this.new_status);\n \n }\n\n}\n","<div class=\"tc-ui-progress-bar tc-background-{{ progress_class }}\"> \n <div class=\"tc-progress-bar {{ height_class }}\" [class.use-background]=\"useDefaultBackground\" >\n\n <div *ngIf=\"!limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + status + '%'\"></div>\n <div *ngIf=\"limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + new_status + '%'\"></div>\n\n <label *ngIf=\"( height_class === 'height-normal' || height_class === 'height-fat' || height_class === 'height-very-fat' ) && showValue\" \n [class.fixed-left]=\"(+status >= 12)\" \n [style]=\"'left: '+ (70) +'px'\" \n class=\"indicative-value info-{{ progress_class }}\">{{ status }}%\n </label>\n </div>\n</div>\n<div *ngIf=\"limit && (+limit > 100)\" >\n <div [class.indicative-limit]=\"limit\" [style]=\"{'width': value_100+'%'}\">\n <label>100%</label>\n </div> \n</div>","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-reorder-items',\n templateUrl: './tcloud-ui-reorder-items.component.html',\n styleUrls: ['./tcloud-ui-reorder-items.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiReorderItemsComponent implements OnInit {\n sort_items = [] as any[];\n\n // psg\n private _items = [] as any[];\n @Input() set items(v: any){\n if( v ){\n this._items = v;\n this.set_sort_items();\n }\n }\n get items(){ return this._items; }\n\n @Output() itemsChange = new EventEmitter<any>();\n\n\n ngOnInit(): void {\n }\n\n set_sort_items(){\n this.sort_items = [];\n if( this.items && (this.items).length > 0 ){\n\n for( let i = 0; i < (this.items).length; i++ ){\n const item = this.items[i];\n if( item.name ){\n (this.sort_items).push( item.name );\n }else{\n (this.sort_items).push( `${item}` );\n }\n }\n\n }\n\n }\n \n get_description(name: string){\n if( name ){\n if( this.items && (this.items).length > 0 ){\n for( let i = 0; i < (this.items).length; i++ ){\n const item = this.items[i];\n if( name === item.name && item.description ){\n return item.description;\n }\n } \n }\n }\n return undefined;\n }\n\n get_item(name: string){\n if( name ){\n if( this.items && (this.items).length > 0 ){\n for( let i = 0; i < (this.items).length; i++ ){\n const item = this.items[i];\n if( name === item.name && item.description ){\n return item;\n }\n } \n }\n }\n return undefined;\n }\n\n move(item: any, index: number, toIndex: number){\n if( toIndex < 0 ){ return; }\n if( toIndex > ((this.sort_items).length - 1) ){ return; }\n if( (this.sort_items).length > 0 ){\n for(let i = 0; i < (this.sort_items).length; i++){\n if( i === index){\n \n let aux = this.sort_items[index];\n this.sort_items[index] = this.sort_items[toIndex];\n this.sort_items[toIndex] = aux;\n break;\n\n \n }\n }\n }\n\n if( this.items && (this.items).length > 0 && this.items[0] && this.items[0].name ){\n this.items = this.result_items();\n }else{\n this.items = this.sort_items;\n }\n this.itemsChange.emit( this.items );\n \n }\n\n result_items(){\n let items = [];\n if( this.sort_items && (this.sort_items).length > 0 ){\n for( let i = 0; i < (this.sort_items).length; i++ ){\n (items).push( this.get_item( `${this.sort_items[i]}` ) );\n }\n }\n return items;\n }\n}\n","<ng-container *ngIf=\"sort_items\">\n\n\n\n <table class=\"table-sort-items\">\n\n \n\n\n <ng-container *ngFor=\"let item of sort_items; let i = index\">\n\n <tr>\n\n <td class=\"area-name-description-item\">\n {{ item }}\n <div *ngIf=\"get_description(item)\" class=\"item-description\">\n {{ get_description(item) }}\n </div>\n </td>\n\n <td class=\"area-action-item\">\n \n <ng-container>\n <div class=\"order-control\">\n <button class=\"btn-item-action-arrow\" (click)=\"move(item, i, (i-1))\" title=\"Alterar para cima\" [disabled]=\"i===0\">\n <i class=\"fas fa-caret-up p-up\" ></i>\n </button>\n </div>\n \n <div class=\"order-control\">\n <button class=\"btn-item-action-arrow\" (click)=\"move(item, i, (i+1))\" title=\"Alterar para baixo\" [disabled]=\"(i+1) === (sort_items).length\">\n <i class=\"fas fa-caret-down p-down\"></i>\n </button>\n \n </div>\n </ng-container>\n </td>\n\n </tr>\n </ng-container> \n\n </table>\n \n </ng-container>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-welcome',\n templateUrl: './tcloud-ui-welcome.component.html',\n styleUrls: ['./tcloud-ui-welcome.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiWelcomeComponent implements OnInit {\n\n col4: string = 'col-md-4';\n\n col8: string = 'col-md-8';\n col12: string = 'col-md-12';\n\n @Input() imgSrc: string = '';\n @Input() title: string = ''; \n @Input() description: string = ''; \n @Input() size: 'small'|'normal'|'big' = 'small';\n @Input() font: 'small'|'normal'|'big' = 'normal';\n\n @Input() mirrored: boolean = false;\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"tcloud-ui-welcome\">\n <div class=\"row\">\n\n <ng-container>\n <div class=\"{{ col4 }} text-center\" *ngIf=\"imgSrc !== ''\" >\n <img class=\"containt-img-{{ size }}\" src=\"{{ imgSrc }}\">\n </div>\n <div class=\"{{ (imgSrc === '') ? col12 : col8 }} text-center\">\n <div>\n\n <div class=\"w-info-text\" *ngIf=\"title !== ''\" [innerHTML]=\"title\" ></div>\n \n <div class=\"info-{{ font }}\" *ngIf=\"description !== ''\" [innerHTML]=\"description\"></div>\n \n <div class=\"mt-5 text-center\">\n <ng-content></ng-content>\n </div>\n \n </div>\n </div>\n </ng-container>\n\n </div>\n</div>","import { Directive, ElementRef, OnInit, Renderer2, Input} from '@angular/core';\n\n\n@Directive({\n selector: '[TCalign]',\n standalone: true\n})\nexport class TCloudUiAlignDirective implements OnInit{\n\n private _direction: 'start' | 'center' | 'end' | 'justify' = 'start';\n\n @Input() set TCalign (direction: any){\n if (direction){\n this._direction = direction;\n this.setStyle(this.el.nativeElement);\n }\n }\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n\n }\n\n setStyle(el: any){\n if( this._direction === 'start' ){\n this.renderer.setStyle(el, 'text-align', 'left');\n }\n\n if( this._direction === 'center' ){\n this.renderer.setStyle(el, 'text-align', 'center');\n }\n\n if( this._direction === 'end' ){\n this.renderer.setStyle(el, 'text-align', 'right');\n }\n\n if( this._direction === 'justify' ){\n this.renderer.setStyle(el, 'text-align', 'justify');\n }\n }\n\n\n}","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Directive({\n selector: '[TCcurrency]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TCloudUiCurrencyDirective,\n multi: true\n }],\n standalone: true\n})\nexport class TCloudUiCurrencyDirective implements ControlValueAccessor {\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n onChange: any = () => {};\n onTouch: any = () => {};\n\n // ngAfterViewInit() {\n // setTimeout(() => {\n // let unmaskedValue = this.unmask( this.el.nativeElement.value );\n // console.log('Valor do input:', unmaskedValue);\n // this.onChange(Number(unmaskedValue));\n // this.writeValue(unmaskedValue);\n // }); \n // }\n\n writeValue(value: any): void {\n this.renderer.setProperty(this.el.nativeElement, 'type', 'text');\n this.renderer.setStyle(this.el.nativeElement, 'text-align', 'right');\n if (value !== undefined && value !== null) {\n this.renderer.setProperty(this.el.nativeElement, 'value', this.formatCurrency(value));\n } else {\n this.renderer.setProperty(this.el.nativeElement, 'value', '');\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n @HostListener('focus')\n onFocus(): void {\n this.setCursorToEnd();\n }\n\n private setCursorToEnd(): void {\n const nativeInput = this.el.nativeElement as HTMLInputElement;\n const length = nativeInput.value.length;\n nativeInput.setSelectionRange(length, length);\n }\n\n private setInInput(){\n\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: string): void {\n const unmaskedValue = this.unmask(value);\n this.onChange(Number(unmaskedValue));\n this.writeValue(unmaskedValue);\n }\n\n private formatCurrency(value: any): string { \n \n const posicaoPonto = `${value}`.indexOf('.');\n if (posicaoPonto !== -1) {\n let part = `${value}`.split('.');\n let decimalPart = (part && part[1]) ? part[1] : '';\n if( (decimalPart).length < 2 ){\n value = value + '0';\n } \n }else{\n value = value + '.00';\n }\n\n return 'R$ '+ this.formatReal(value);\n }\n\n private unmask(value: string): any {\n if( value === undefined || value === null || value === \"\" ){\n return \"\";\n }\n value = value.replace(/[^\\d]/g, '');\n value = value.replace(/^0+/, '');\n if( value && value[0] ){\n if( (value[0] === ',' || value[0] === '.') ){\n value = '0'+value;\n } \n }\n value = this.toDecimal(value); \n return value;\n }\n\n private formatarNumero(numero: any): string {\n return numero.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.') as string;\n }\n\n private formatReal(value: any): string {\n var delimiter = ',';\n \n if( !value! ){ return `0${delimiter}00`; }\n if( value === `0${delimiter}00` ){ value = ''; }\n value = `${value}`;\n value = value.replace(/^0+/, '');\n const cleanValue = value.replace(/[^\\d]/g, '');\n if (cleanValue.length <= 2) { \n let _value = `${delimiter}${cleanValue.padStart(2, '0')}`;\n if( _value && _value[0] ){\n if( (_value[0] === ',' || _value[0] === '.') ){\n _value = '0'+_value;\n } \n }\n return _value;\n }\n\n let integerPart = cleanValue.slice(0, -2) || '0';\n const decimalPart = cleanValue.slice(-2).padStart(2, '0');\n if( (integerPart).length > 3 ){\n integerPart = this.formatarNumero(integerPart);\n }\n let _value = `${integerPart}${delimiter}${decimalPart}`;\n if( _value && _value[0] ){\n if( (_value[0] === ',' || _value[0] === '.') ){\n _value = '0'+_value;\n } \n }\n\n return _value;\n }\n\n private toDecimal(numero: any) { \n const numeroStr = numero.toString();\n let parteInteira = numeroStr.slice(0, -2) || '0';\n let parteDecimal = numeroStr.slice(-2);\n if(Number(parteDecimal) > 0 && Number(parteDecimal) < 10 ){\n parteDecimal = `0${Number(parteDecimal)}`;\n }\n let _value = `${parteInteira}.${parteDecimal}`; \n if( _value === ',' || _value === ',0' || _value === '0,' || _value === '0,0' || _value === '0,00' ){ return '0'; }\n if( _value === '.' || _value === '.0' || _value === '0.' || _value === '0.0' || _value === '0.00' ){ return '0'; }\n _value = _value.replace(/^0+/, '');\n if( _value && _value[0] ){\n if( (_value[0] === ',' || _value[0] === '.') ){\n _value = '0'+_value;\n } \n }\n \n return _value;\n }\n}\n","import { Directive, ElementRef, OnInit, Renderer2, Input} from '@angular/core';\n\n\n@Directive({\n selector: '[TCCopy]',\n standalone: true\n})\nexport class TCloudUiElCopyDirective implements OnInit{\n\n private _isCopy: boolean = false;\n \n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setItemFuncCopy();\n }\n\n setItemFuncCopy(){\n\n const btn_copy = this.renderer.createElement('i');\n\n var copyText = ()=>{ \n const elementWithCopyAttribute = document.querySelector(`[data-el-copy=\"${id}\"]`) as any;\n let copyText = ''\n if( elementWithCopyAttribute && elementWithCopyAttribute.tagName && (elementWithCopyAttribute.tagName).toUpperCase() === 'INPUT' ){\n copyText = elementWithCopyAttribute?.value!;\n }else{\n copyText = elementWithCopyAttribute?.textContent!;\n } \n navigator.clipboard.writeText(copyText);\n this.renderer.removeClass(btn_copy, 'fa-copy');\n this.renderer.addClass(btn_copy, 'fa-check');\n setTimeout(() => {\n this.renderer.removeClass(btn_copy, 'fa-check');\n this.renderer.addClass(btn_copy, 'fa-copy');\n }, 3000);\n \n }\n\n const id = this.generateID();\n this.renderer.setAttribute(this.el.nativeElement, 'data-el-copy', `${id}`);\n\n \n this.renderer.setStyle(btn_copy, 'cursor', 'pointer');\n this.renderer.setStyle(btn_copy, 'margin-left', '3px');\n this.renderer.addClass(btn_copy, 'fas');\n this.renderer.addClass(btn_copy, 'fa-copy');\n\n this.renderer.addClass(btn_copy, 'tcloud-ui-el-copy');\n this.renderer.setAttribute(btn_copy, 'id', id);\n this.renderer.setAttribute(btn_copy, 'title', 'Copy');\n this.renderer.listen(btn_copy, 'click', () => { copyText(); });\n\n if( ((this.el.nativeElement).tagName).toUpperCase() === 'INPUT' ){\n let classList = this.el.nativeElement?.classList!\n if( classList && (classList).length > 0 && ('tc-form-control').indexOf(classList) > -1 ){\n this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy-tc-form-control');\n }else{\n this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy');\n } \n this.renderer.appendChild(this.el.nativeElement.parentNode, btn_copy);\n }else{\n this.renderer.appendChild(this.el.nativeElement, btn_copy);\n }\n\n \n\n \n }\n\n generateID(target?: string): string{\n const ref = (target) ? `-${target}` : '';\n return `tc-el-copy-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}${ref}`;\n }\n\n}","\nimport { Directive, Input, Renderer2, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[TCHoverParent]',\n standalone: true\n})\nexport class TCloudUiHoverParentDirective {\n\n private CLASS: string | undefined;\n private ID: string | undefined;\n\n constructor(\n private renderer: Renderer2\n ) {}\n\n @HostListener('mouseover') onMouseOver() {\n if( this.getElement() ){\n const el = <any> this.getElement();\n if( el ){\n this.renderer.addClass(el, (this.CLASS) ? this.CLASS : 'tcloud-hover-parent');\n }\n } \n }\n\n @HostListener('mouseout') onMouseOut() {\n if( this.getElement() ){\n const el = <any> this.getElement();\n if( el ){\n this.renderer.removeClass(el, (this.CLASS) ? this.CLASS : 'tcloud-hover-parent');\n }\n \n } \n }\n\n @Input() set TCHoverParent (id: string){\n if (id){ this.ID = id; }\n }\n\n @Input() set TCHoverParentClass (clss: any){\n if (clss){\n this.CLASS = clss;\n }\n }\n\n getElement(): HTMLElement | undefined{\n if( this.ID ){\n return document.getElementById(this.ID) || undefined;\n }\n return undefined;\n }\n\n}","import { Inject, Injectable, Optional } from '@angular/core';\nimport { UserServiceInterface } from '../_interfaces/user.service.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiCheckAccessService {\n\n private userService = {} as UserServiceInterface;\n\n constructor(\n @Optional() @Inject('UserService') private _UserService: any\n ) {\n this.userService = this._UserService;\n }\n\n check(checkAccess: any){\n const temp_user = this.getImpersonalizeUserInfo();\n if( temp_user ){\n // Para uso com impersonalização - Visualização do T-Cloud por outro usuário\n return this.checkImpersonalizeMode(checkAccess, temp_user);\n } \n // Utilização para usuário logado\n return this.checkDefaultMode(checkAccess);\n }\n\n checkDefaultMode(checkAccess: any){\n let hasAccess = false;\n if ( Array.isArray(checkAccess[0]) ){\n if (checkAccess[1]){\n let features = checkAccess[1].ui_topology;\n if (features){\n checkAccess[0].forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n }\n }else{\n let features = this.userService?.getCurrentEnv()?.ui;\n console.log('features ui', features);\n checkAccess.forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features && features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n return hasAccess;\n }\n\n checkImpersonalizeMode(checkAccess: any, temp_user: any){\n let hasAccess = false;\n if ( Array.isArray(checkAccess[0]) ){\n if (checkAccess[1]){\n let features = checkAccess[1].ui_topology;\n if (features){\n checkAccess[0].forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n }\n }else{\n let features = temp_user.ui;\n checkAccess.forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features && features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n return hasAccess;\n }\n\n checkFeatureFlags(_feature: string | string[] | any): boolean{\n let enable = false;\n let isEnabled = [];\n\n // tcloud_features - features do componente tcloud\n let tcloud_features = [];\n if( _feature ){\n if( typeof _feature === 'string' ){\n (tcloud_features).push(_feature);\n }else if( _feature && (_feature).length > 0 ) {\n tcloud_features = _feature;\n }\n\n let feature_flags_topology = undefined;\n if ( Array.isArray(_feature[0]) ){\n if (_feature[1]){\n tcloud_features = _feature[0];\n if( _feature[1] && _feature[1].feature_flags_topology && (_feature[1]?.feature_flags_topology).length >= 0 ){\n feature_flags_topology = _feature[1].feature_flags_topology;\n }\n }\n } \n\n let feature_flags = [];\n if( feature_flags_topology && (feature_flags_topology).length >= 0 ){\n // feature_flags - obtendo de topology (infProduto) -> feature_flags_topology\n feature_flags = feature_flags_topology;\n }else{\n // feature_flags - obtendo de user info\n feature_flags = this.userService?.getCurrentEnv()?.feature_flags || [];\n }\n console.log('feature_flags', feature_flags);\n\n for( let i = 0; i < (tcloud_features).length; i++ ){\n const tcloud_feature = tcloud_features[i];\n if( tcloud_feature[0] === '!' ){\n let qtd_exist = 0;\n for( let j = 0; j < (feature_flags).length; j++ ){\n const feature_flag = feature_flags[j]; \n if( tcloud_feature === '!'+feature_flag ){\n (isEnabled).push(false); \n qtd_exist++;\n }\n }\n if( qtd_exist === 0 ){\n (isEnabled).push(true);\n } \n }else{\n let qtd_exist = 0;\n for( let j = 0; j < (feature_flags).length; j++ ){\n const feature_flag = feature_flags[j]; \n if( tcloud_feature === feature_flag ){\n (isEnabled).push(true); \n qtd_exist++;\n } \n }\n if( qtd_exist === 0 ){\n (isEnabled).push(false);\n }\n }\n }\n\n if( isEnabled && (isEnabled).length > 0 ){\n enable = true;\n for( let i = 0; i < (isEnabled).length; i++ ){\n if( isEnabled[i] === false ){\n enable = false; break;\n } \n }\n }\n }\n return enable; \n }\n\n\n\n /* */\n private getImpersonalizeUserInfo(){\n // return this.getLocalStorage();\n \n // remover do localstorage se não existir cCode ????\n const cCode = this.userService?.getCurrentEnv()?.currentCloudID?.cloud_id || '';\n if( cCode && cCode !== '' ){\n return this.getLocalStorage();\n }\n this.removeLocalStorage();\n return undefined; \n }\n\n private getLocalStorage(){\n let info: any = localStorage.getItem('temp_user_info');\n let user_info = {} as any;\n try {\n user_info = JSON.parse(info);\n } catch (error) {\n user_info = undefined; \n }\n return user_info;\n }\n \n private removeLocalStorage(){\n localStorage.removeItem('temp_user_info');\n }\n\n}","import { Directive, ElementRef, OnInit, Renderer2, Input} from '@angular/core';\nimport { TCloudUiCheckAccessService } from '../../_services/tcloud-ui-check-access.service';\n\n@Directive({\n selector: '[TCCheckAccess]',\n standalone: true\n})\nexport class TCloudUiCheckAccessDirective implements OnInit{\n @Input() set TCCheckAccess (checkAccess: any){\n if (checkAccess){\n this.check(checkAccess);\n }\n };\n \n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private checkAccessService: TCloudUiCheckAccessService\n ) {}\n\n ngOnInit(): void {}\n\n check(checkAccess: any){\n let hasAccess = false;\n hasAccess = this.checkAccessService.check(checkAccess);\n\n let elemento = this.el.nativeElement;\n if (elemento){\n if (!hasAccess){\n this.setStyle(elemento);\n }else{\n this.normalStyle(elemento);\n }\n }else{\n // console.log(\"TCL: checkAccessDirective -> elemento\", this.el.nativeElement)\n }\n }\n\n setStyle(el: any){\n this.renderer.setStyle(el, 'background-color', 'rgb(255, 219, 94)');\n // this.renderer.setStyle(el, 'display', 'none');\n this.renderer.setAttribute(el, 'style', 'display:none !important');\n this.removeElement(el);\n }\n normalStyle(el: any){\n // this.renderer.setStyle(el, 'color', '');\n // this.renderer.setStyle(el, 'border', '1px solid darkorange');\n // this.renderer.setStyle(el, 'padding', '');\n this.renderer.setStyle(el, 'background-color', '');\n this.renderer.setStyle(el, 'display', '');\n // el.innerHTML = \"Sem acesso\";\n }\n\n removeElement(el: any) {\n if( el ){\n try {\n this.renderer.removeChild(el.parentNode, el);\n } catch (error) {} \n }\n }\n\n}","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TCloudUiCheckAccessService } from '../../_services/tcloud-ui-check-access.service';\n\n\n\n/*\n// Verificação checkAccess\n<ng-container *ngTCCheckAccess=\"[[features.backup], topologie?.infProduto]\" >\n Conteudo protegido\n</ng-container>\n\n// Verificação checkAccess com condição adicional\n<ng-container *ngTCCheckAccess=\"[[features.backup], topologie?.infProduto]; ngIf: topologie?.product == 'winthor'\" >\n Conteudo protegido\n</ng-container>\n*/\n\n@Directive({\n selector: '[ngTCCheckAccess]',\n standalone: true\n})\nexport class TCloudUiNgCheckAccessDirective {\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private checkAccessService: TCloudUiCheckAccessService\n ) { }\n\n private isCondition: boolean = true;\n\n @Input() set ngTCCheckAccess(checkAccess: any | boolean) {\n const isCheckAccess = ( typeof checkAccess === 'boolean' ) ? checkAccess : this.checkAccessService.check(checkAccess);\n setTimeout(() => { this.check_view( isCheckAccess ); }); \n }\n\n @Input() set ngTCCheckAccessNgIf(check: boolean){ \n this.isCondition = check;\n }\n\n private check_view(isView: boolean){\n if ( isView && this.isCondition ) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TCloudUiCheckAccessService } from '../../_services/tcloud-ui-check-access.service';\n\n/*\n <div *ngTCFeatureFlags=\"['pipeline_flow_pusher']\">\n\t\tTem pipeline_flow_pusher\n\t</div>\n*/\n\n@Directive({\n selector: '[ngTCFeatureFlags]',\n standalone: true\n})\nexport class TCloudUiNgFeatureFlagsDirective {\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private checkAccessService: TCloudUiCheckAccessService\n ) { }\n\n private isCondition: boolean = true;\n\n @Input() set ngTCFeatureFlags(FeatureFlags: any | boolean) {\n const isFeatureFlags = ( typeof FeatureFlags === 'boolean' ) ? FeatureFlags : this.checkAccessService.checkFeatureFlags(FeatureFlags);\n setTimeout(() => { this.check_view( isFeatureFlags ); }); \n }\n\n \n\n @Input() set TCNgFeatureFlagsNgIf(check: boolean){ \n this.isCondition = check;\n }\n\n private check_view(isView: boolean){\n if ( isView && this.isCondition ) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[TCtooltip]',\n standalone: true\n})\nexport class TCloudUiTooltipDirective {\n\n @Input() tooltipMode: 'click' | 'hover' = 'hover';\n remove: boolean = false;\n info_text: string = '';\n tooltipVisible: boolean = false;\n private tooltipElement: HTMLElement | null = null;\n\n private _direction: 'top' | 'bottom' | 'left' | 'right' = 'top';\n\n @Input() set TCtooltip(tooltip: any) {\n\n if (tooltip) {\n this.info_text = typeof tooltip === 'object' ? '' : tooltip;\n if (this.tooltipVisible && this.tooltipElement) {\n // Atualiza o conteúdo do tooltip diretamente\n this.tooltipElement.innerHTML = this.info_text;\n\n // Reaplica a posição calculada anteriormente para manter a centralização\n this.repositionTooltip();\n }\n }\n }\n\n @Input() set TCdirection(direction: any) {\n if (direction) {\n this._direction = direction;\n }\n }\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n @HostListener('document:click', ['$event']) onDocumentClick(event: MouseEvent) {\n if (this.tooltipMode === 'click' && this.tooltipVisible && this.info_text) {\n const clickedInside = this.el.nativeElement.contains(event.target) || (this.tooltipElement?.contains(event.target as Node));\n if (!clickedInside) {\n this.removeTooltip();\n }\n }\n }\n\n @HostListener('mouseover', ['$event']) onMouseOver(event: MouseEvent) {\n if (this.tooltipMode === 'hover' && !this.tooltipVisible && this.info_text) {\n this.createTooltip(event);\n this.tooltipVisible = true;\n }\n }\n\n @HostListener('mouseout', ['$event']) onMouseOut(event: MouseEvent) {\n if (this.tooltipVisible) {\n const relatedTarget = event.relatedTarget as Node;\n if (!this.el.nativeElement.contains(relatedTarget) && !this.tooltipElement?.contains(relatedTarget)) {\n this.removeTooltip();\n }\n }\n }\n\n @HostListener('click', ['$event']) onClick(event: MouseEvent) {\n if (this.tooltipMode === 'click') {\n if (this.tooltipVisible) {\n this.removeTooltip();\n } else {\n this.createTooltip(event);\n }\n this.tooltipVisible = !this.tooltipVisible;\n }\n }\n\n private createTooltip(event: MouseEvent) {\n const scrollTop = window?.scrollY || window?.pageYOffset;\n const tooltip = this.renderer.createElement('div');\n const rect = this.el.nativeElement?.getBoundingClientRect();\n const direction = this._direction || 'top';\n const el_position_x = rect?.left || 0;\n const el_position_y = rect?.top + scrollTop || 0;\n\n let width = 0;\n let height = 0;\n if (event && event.target) {\n const _event = event.target as any;\n height = _event.offsetHeight;\n width = _event.offsetWidth;\n }\n\n this.renderer.setStyle(tooltip, 'top', '0px');\n this.renderer.setStyle(tooltip, 'left', '0px');\n this.renderer.setStyle(tooltip, 'opacity', '0');\n this.renderer.addClass(tooltip, 'tc-directive-tooltip');\n this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);\n const id = this.generateID();\n this.renderer.setAttribute(tooltip, 'id', id);\n tooltip.innerHTML = this.info_text;\n this.renderer.appendChild(document.body, tooltip);\n this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);\n this.tooltipElement = tooltip;\n\n tooltip.addEventListener('mouseenter', () => this.tooltipVisible = true);\n tooltip.addEventListener('mouseleave', () => this.removeTooltip());\n }\n\n private removeTooltip() {\n const customDivAll = <any>document.querySelectorAll('.tc-directive-tooltip');\n if (customDivAll && customDivAll.length > 0) {\n setTimeout(() => {\n customDivAll.forEach((_customDiv: any) => {\n if (_customDiv) { _customDiv.remove(); }\n });\n }, 25);\n }\n this.tooltipVisible = false;\n this.tooltipElement = null;\n }\n\n private repositionTooltip() {\n if (!this.tooltipElement) return;\n\n const rect = this.el.nativeElement?.getBoundingClientRect();\n const height = this.el.nativeElement.offsetHeight;\n const width = this.el.nativeElement.offsetWidth;\n const tooltipHeight = this.tooltipElement.clientHeight;\n const tooltipWidth = this.tooltipElement.clientWidth;\n\n let p_y = 0;\n let p_x = 0;\n const scrollTop = window?.scrollY || window?.pageYOffset;\n const center_position = (rect.left + (width / 2)) - (tooltipWidth / 2);\n\n if (this._direction === 'top') {\n p_y = (rect.top + scrollTop - tooltipHeight) - 15;\n p_x = center_position;\n } else if (this._direction === 'bottom') {\n p_y = (rect.top + scrollTop + height) + 15;\n p_x = center_position;\n } else if (this._direction === 'left') {\n p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));\n p_x = rect.left - tooltipWidth - 15;\n } else if (this._direction === 'right') {\n p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));\n p_x = rect.left + width + 15;\n }\n\n this.renderer.setStyle(this.tooltipElement, 'top', `${p_y}px`);\n this.renderer.setStyle(this.tooltipElement, 'left', `${p_x}px`);\n }\n\n private generateID(target?: string): string {\n const ref = target ? `-${target}` : '';\n return `tc-tooltip-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}${ref}`;\n }\n\n private start_tooltip(id: string, height: number, width: number, el_position_x: number, el_position_y: number, direction: string) {\n setTimeout(() => {\n const tooltip: any = document.getElementById(id);\n const tooltip_height = tooltip.clientHeight;\n const tooltip_width = tooltip.clientWidth;\n\n let p_y = 0;\n let p_x = 0;\n const center_position = (el_position_x + (width / 2)) - (tooltip_width / 2);\n\n if (direction === 'top') {\n p_y = (el_position_y - tooltip_height) - 15;\n p_x = center_position;\n }\n\n if (direction === 'bottom') {\n p_y = (el_position_y + height) + 15;\n p_x = center_position;\n }\n\n if (direction === 'left') {\n p_y = el_position_y - (tooltip_height / 2) + (height / 2);\n p_x = center_position - tooltip_width / 2 - width / 2 - 15;\n }\n\n if (direction === 'right') {\n p_y = el_position_y - (tooltip_height / 2) + (height / 2);\n p_x = center_position + tooltip_width / 2 + width / 2 + 15;\n }\n\n this.renderer.setStyle(tooltip, 'top', `${p_y}px`);\n this.renderer.setStyle(tooltip, 'left', `${p_x}px`);\n this.renderer.addClass(tooltip, 'tc-tooltip-fade-in');\n });\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[TCDigitOnly]',\n standalone: true\n})\nexport class TCloudUiDigitOnlyDirective {\n inputElement: HTMLElement;\n constructor(public el: ElementRef) {\n this.inputElement = el.nativeElement;\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent) {\n if (\n [46, 8, 9, 27, 13].indexOf(e.keyCode) !== -1 || // Allow: Delete, Backspace, Tab, Escape, Enter\n (e.keyCode === 65 && e.ctrlKey === true) || // Allow: Ctrl+A\n (e.keyCode === 67 && e.ctrlKey === true) || // Allow: Ctrl+C\n (e.keyCode === 86 && e.ctrlKey === true) || // Allow: Ctrl+V\n (e.keyCode === 88 && e.ctrlKey === true) || // Allow: Ctrl+X\n (e.keyCode === 65 && e.metaKey === true) || // Allow: Cmd+A (Mac)\n (e.keyCode === 67 && e.metaKey === true) || // Allow: Cmd+C (Mac)\n (e.keyCode === 86 && e.metaKey === true) || // Allow: Cmd+V (Mac)\n (e.keyCode === 88 && e.metaKey === true) || // Allow: Cmd+X (Mac)\n (e.keyCode >= 35 && e.keyCode <= 39) // Allow: Home, End, Left, Right\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if (\n (e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) &&\n (e.keyCode < 96 || e.keyCode > 105)\n ) {\n e.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n event.preventDefault();\n if( event && event.clipboardData){\n const pastedInput: string = event.clipboardData\n .getData('text/plain')\n .replace(/\\D/g, ''); // get a digit-only string\n document?.execCommand('insertText', false, pastedInput);\n }\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n if( event && event.dataTransfer){\n const textData = event.dataTransfer.getData('text').replace(/\\D/g, '');\n this.inputElement.focus();\n document?.execCommand('insertText', false, textData);\n }\n }\n}","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[TCHighlight]',\n standalone: true\n})\nexport class TCloudUiHighLightDirective implements OnInit{\n\n @Input() TCHighlight: string | undefined;\n inputElement: HTMLElement;\n\n constructor(public el: ElementRef) {\n this.inputElement = el.nativeElement;\n }\n\n ngOnInit(): void {\n let block = document.createElement('div');\n if (!this.TCHighlight){\n block.appendChild(document.createTextNode('PRECISA FINALIZAR IMPLEMENTAÇÃO!!'));\n }else{\n block.appendChild(document.createTextNode(this.TCHighlight));\n }\n\n if( block && block.style ){\n block.style.backgroundColor = '#F00';\n block.style.color = '#FFF';\n block.style.padding = '15px';\n block.style.textAlign = 'center';\n block.style.fontWeight = '600';\n }\n\n this.inputElement.insertBefore(block, this.inputElement.firstChild);\n }\n\n\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[TCIpMask]',\n standalone: true\n})\nexport class TCloudUiIpMaskDirective{\n constructor(public el: ElementRef) {\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: any) {\n // console.log(\"IpMaskDirective -> onKeyDown -> e.keyCode\", e.keyCode);\n if (\n [190, 108, 191, 110, 111].indexOf(e.keyCode) !== -1 || // Allow: ponto(.), ponto(.) Teclado numérico, barra(/) , barra(/) Teclado numérico\n [46, 8, 9, 27, 13].indexOf(e.keyCode) !== -1 || // Allow: Delete, Backspace, Tab, Escape, Enter\n (e.keyCode === 65 && e.ctrlKey === true) || // Allow: Ctrl+A\n (e.keyCode === 67 && e.ctrlKey === true) || // Allow: Ctrl+C\n (e.keyCode === 86 && e.ctrlKey === true) || // Allow: Ctrl+V\n (e.keyCode === 88 && e.ctrlKey === true) || // Allow: Ctrl+X\n (e.keyCode === 65 && e.metaKey === true) || // Allow: Cmd+A (Mac)\n (e.keyCode === 67 && e.metaKey === true) || // Allow: Cmd+C (Mac)\n (e.keyCode === 86 && e.metaKey === true) || // Allow: Cmd+V (Mac)\n (e.keyCode === 88 && e.metaKey === true) || // Allow: Cmd+X (Mac)\n (e.keyCode >= 35 && e.keyCode <= 39) // Allow: Home, End, Left, Right\n ) {\n // let it happen, don't do anything\n return;\n }\n\n // Ensure that it is a number and stop the keypress\n if (\n (e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) &&\n (e.keyCode < 96 || e.keyCode > 105)\n ) {\n e.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n event.preventDefault();\n if( event && event.clipboardData ){\n const pastedInput: string = event.clipboardData\n .getData('text/plain')\n .replace(/\\D/g, ''); // get a digit-only string\n document?.execCommand('insertText', false, pastedInput);\n }\n }\n}","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n// Componentes standalone\nimport { TCloudUiAccordionComponent } from './_modules/tcloud-ui-accordion/tcloud-ui-accordion.component';\nimport { TCloudUiAccordionBodyComponent } from './_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component';\nimport { TCloudUiAccordionTitleComponent } from './_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component';\nimport { TCloudUiChoiceIssuesComponent } from './_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component';\nimport { TCloudUiDataListComponent } from './_modules/tcloud-ui-data-list/tcloud-ui-data-list.component';\nimport { TCloudUiDataListOptionComponent } from './_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\nimport { TCloudUiDatepickerTimeComponent } from './_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\nimport { TCloudUiDatepickerComponent } from './_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiFiltersComponent } from './_modules/tcloud-ui-filters/tcloud-ui-filters.component';\nimport { TCloudUiRangeDateComponent } from './_modules/tcloud-ui-filters/components/range-date/range-date.component';\nimport { TCloudUiInputSearchComponent } from './_modules/tcloud-ui-input-search/tcloud-ui-input-search.component';\nimport { TCloudUiLineStepCircleComponent } from './_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component';\nimport { TCloudUiLinhaLogoComponent } from './_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component';\nimport { TCloudUiModalComponent } from './_modules/tcloud-ui-modal/tcloud-ui-modal.component';\nimport { TCloudUiModalBodyComponent } from './_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component';\nimport { TCloudUiModalHeaderComponent } from './_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component';\nimport { TCloudUiModalFooterComponent } from './_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component';\nimport { TCloudUiMultiInputComponent } from './_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component';\nimport { TCloudUiMultiSelectComponent } from './_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component';\nimport { TCloudUiNotFoundComponent } from './_modules/tcloud-ui-not-found/tcloud-ui-not-found.component';\nimport { TCloudUiNumberStepComponent } from './_modules/tcloud-ui-number-step/tcloud-ui-number-step.component';\nimport { TCloudUiScrollBoxComponent } from './_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component';\nimport { TCloudUiTabMenuComponent } from './_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component';\nimport { TCloudUiTabHeadComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component';\nimport { TCloudUiTabContentComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component';\nimport { TCloudUiTabTitleComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component';\nimport { TCloudUiTabSubtitleComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component';\nimport { TCloudUiTableComponent } from './_modules/tcloud-ui-table/tcloud-ui-table.component';\nimport { TCloudUiInputPasswordComponent } from './_modules/tcloud-ui-input-password/tcloud-ui-input-password.component';\nimport { TCloudUiLabelTokenComponent } from './_modules/tcloud-ui-label-token/tcloud-ui-label-token.component';\nimport { TCloudUiLineStepTitleComponent } from './_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component';\nimport { TCloudUiLoadingComponent } from './_modules/tcloud-ui-loading/tcloud-ui-loading.component';\nimport { TCloudUiCubesComponent } from './_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component';\nimport { TCloudUiMultiplesValuesComponent } from './_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component';\nimport { TCloudUiProgressBarComponent } from './_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component';\nimport { TCloudUiReorderItemsComponent } from './_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component';\nimport { TCloudUiWelcomeComponent } from './_modules/tcloud-ui-welcome/tcloud-ui-welcome.component';\n\n// Diretivas standalone\nimport { TCloudUiAlignDirective } from './_directives/align/align.directive';\nimport { TCloudUiCurrencyDirective } from './_directives/currency/currency.directive';\nimport { TCloudUiElCopyDirective } from './_directives/el-copy/el-copy.directive';\nimport { TCloudUiHoverParentDirective } from './_directives/hover-parent/hover-parent.directive';\nimport { TCloudUiCheckAccessDirective } from './_directives/tcloud-access/tcloud-ui-check-access.directive';\nimport { TCloudUiNgCheckAccessDirective } from './_directives/tcloud-access/tcloud-ui-ng-check-access.directive';\nimport { TCloudUiNgFeatureFlagsDirective } from './_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive';\nimport { TCloudUiTooltipDirective } from './_directives/tooltip/tooltip.directive';\nimport { TCloudUiDigitOnlyDirective } from './_directives/tcloud-ui-digit-only.directive';\nimport { TCloudUiHighLightDirective } from './_directives/tcloud-ui-highlight.diretive';\nimport { TCloudUiIpMaskDirective } from './_directives/tcloud-ui-ip-mask.directive';\nimport { TCloudUiButtonDirective } from './_directives/tcloud-button/tcloud-button.directive';\n\n// Pipes standalone\nimport { ToTextPipe } from './_pipes/array-to-text';\nimport { BytesPipe } from './_pipes/bytes';\nimport { CNPJPipe } from './_pipes/cnpj';\nimport { CPFPipe } from './_pipes/cpf';\nimport { DateBRPipe } from './_pipes/datebr';\nimport { MonthNamePipe } from './_pipes/monthname';\nimport { RespectivePipe } from './_pipes/respective';\nimport { StatusInfoPipe } from './_pipes/statusinfo';\n\n// Serviços\nimport { TCloudUiLoadingTransitionsService } from './_services/loading-transitions.service';\nimport { TCloudUiSearchInObjectService } from './_services/search-in-object.service';\nimport { TCloudUiCheckAccessService } from './_services/tcloud-ui-check-access.service';\nimport { TCloudUiLayoutService } from './_services/tcloud-ui-layout.services';\nimport { TCloudUiDeviceUtilsService } from './_services/tcloud-ui-device-utils.service';\nimport { TCloudUiConfig } from './tcloud-ui.config';\nimport { \n TCLOUD_UI_CONFIG, \n TCLOUD_UI_USER_SERVICE, \n TCLOUD_UI_LAYOUT_SERVICE, \n TCLOUD_UI_VIEWPORT_SERVICE \n} from './tcloud-ui.tokens';\nimport { TCloudUiFormDirective } from './_directives/tcloud-form/tcloud-form.directive';\n\n\nconst COMPONENTS = [\n TCloudUiAccordionComponent,\n TCloudUiAccordionBodyComponent,\n TCloudUiAccordionTitleComponent,\n TCloudUiChoiceIssuesComponent,\n TCloudUiDataListComponent,\n TCloudUiDataListOptionComponent,\n TCloudUiDatepickerTimeComponent,\n TCloudUiDatepickerComponent,\n TCloudUiFiltersComponent,\n TCloudUiRangeDateComponent,\n TCloudUiInputSearchComponent,\n TCloudUiLineStepCircleComponent,\n TCloudUiLinhaLogoComponent,\n TCloudUiModalComponent,\n TCloudUiModalBodyComponent,\n TCloudUiModalHeaderComponent,\n TCloudUiModalFooterComponent,\n TCloudUiMultiInputComponent,\n TCloudUiMultiSelectComponent,\n TCloudUiNotFoundComponent,\n TCloudUiNumberStepComponent,\n TCloudUiScrollBoxComponent,\n TCloudUiTabMenuComponent,\n TCloudUiTabHeadComponent,\n TCloudUiTabContentComponent,\n TCloudUiTabTitleComponent,\n TCloudUiTabSubtitleComponent,\n TCloudUiTableComponent,\n TCloudUiInputPasswordComponent,\n TCloudUiLabelTokenComponent,\n TCloudUiLineStepTitleComponent,\n TCloudUiLoadingComponent,\n TCloudUiCubesComponent,\n TCloudUiMultiplesValuesComponent,\n TCloudUiProgressBarComponent,\n TCloudUiReorderItemsComponent,\n TCloudUiWelcomeComponent\n];\n\nconst DIRECTIVES = [\n TCloudUiAlignDirective,\n TCloudUiCurrencyDirective,\n TCloudUiElCopyDirective,\n TCloudUiHoverParentDirective,\n TCloudUiCheckAccessDirective,\n TCloudUiNgCheckAccessDirective,\n TCloudUiNgFeatureFlagsDirective,\n TCloudUiTooltipDirective,\n TCloudUiDigitOnlyDirective,\n TCloudUiHighLightDirective,\n TCloudUiIpMaskDirective,\n TCloudUiButtonDirective,\n TCloudUiFormDirective\n];\n\nconst PIPES = [\n ToTextPipe,\n BytesPipe,\n CNPJPipe,\n CPFPipe,\n DateBRPipe,\n MonthNamePipe,\n RespectivePipe,\n StatusInfoPipe\n];\n\n@NgModule({\n imports: [\n ...COMPONENTS,\n ...DIRECTIVES,\n ...PIPES\n ],\n exports: [\n ...COMPONENTS,\n ...DIRECTIVES,\n ...PIPES\n ],\n providers: [\n DatePipe,\n StatusInfoPipe\n ]\n})\nexport class TCloudUiModule {\n\n static forRoot(config?: TCloudUiConfig): ModuleWithProviders<TCloudUiModule> {\n const providers: Provider[] = [\n // Configuração principal\n { provide: TCLOUD_UI_CONFIG, useValue: config?.data ?? {} },\n DatePipe,\n StatusInfoPipe\n ];\n\n // Adiciona serviços customizados se fornecidos\n if (config?.services?.userService) {\n providers.push({ provide: TCLOUD_UI_USER_SERVICE, useClass: config.services.userService });\n }\n \n if (config?.services?.layoutService) {\n providers.push({ provide: TCLOUD_UI_LAYOUT_SERVICE, useClass: config.services.layoutService });\n }\n \n if (config?.services?.viewportService) {\n providers.push({ provide: TCLOUD_UI_VIEWPORT_SERVICE, useClass: config.services.viewportService });\n }\n\n return {\n ngModule: TCloudUiModule,\n providers\n };\n }\n}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { TCloudUiConfig } from './tcloud-ui.config';\nimport { StatusInfoPipe } from './_pipes';\nimport { \n TCLOUD_UI_CONFIG, \n TCLOUD_UI_USER_SERVICE, \n TCLOUD_UI_LAYOUT_SERVICE, \n TCLOUD_UI_VIEWPORT_SERVICE \n} from './tcloud-ui.tokens';\n\n/**\n * Função provider para configurar o TCloud UI em aplicações standalone do Angular.\n * Use esta função no `main.ts` ou em `app.config.ts` com `bootstrapApplication`.\n * \n * @param config - Configuração opcional do TCloud UI\n * @returns EnvironmentProviders para uso em aplicações standalone\n * \n * @example\n * ```typescript\n * // main.ts\n * import { provideTCloudUi } from 'tcloud-ui';\n * \n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideTCloudUi({\n * data: { apiUrl: 'https://api.example.com' },\n * services: {\n * userService: CustomUserService,\n * themeService: CustomThemeService,\n * viewportService: CustomViewportService\n * }\n * })\n * ]\n * });\n * ```\n */\nexport function provideTCloudUi(config?: TCloudUiConfig): EnvironmentProviders {\n const providers: Provider[] = [\n // Configuração principal\n { provide: TCLOUD_UI_CONFIG, useValue: config?.data ?? {} },\n \n // Pipes necessários para os serviços\n DatePipe,\n StatusInfoPipe\n ];\n\n // Adiciona serviços customizados se fornecidos\n if (config?.services?.userService) {\n providers.push({ provide: TCLOUD_UI_USER_SERVICE, useClass: config.services.userService });\n }\n \n if (config?.services?.layoutService) {\n providers.push({ provide: TCLOUD_UI_LAYOUT_SERVICE, useClass: config.services.layoutService });\n }\n \n if (config?.services?.viewportService) {\n providers.push({ provide: TCLOUD_UI_VIEWPORT_SERVICE, useClass: config.services.viewportService });\n }\n\n return makeEnvironmentProviders(providers);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiLoadingTransitionsService {\n\n \n\n private ID: string = 'tcloud-ui-loading-transitions';\n\n constructor(\n ) {}\n\n /**\n * Inicia a tela de bloqueio para carregamento de tarefa\n */\n start(){\n this.create_loading_transition();\n if( document.getElementById(this.ID) ){\n const box = document.getElementById(this.ID);\n box?.classList.add('tcloud-ui-start-loading');\n }\n }\n\n /**\n * Encerra a tela de bloqueio\n */\n stop(){\n if( document.getElementById(this.ID) ){\n const box = document.getElementById(this.ID);\n box?.classList.remove('tcloud-ui-start-loading');\n\n const body = document.getElementsByTagName('body')[0];\n body.classList.remove('tcloud-ui-body-loading-transitions');\n }\n }\n\n private create_loading_transition(){\n let box = null as any;\n if( document.getElementById(this.ID) ){\n box = document.getElementById(this.ID);\n }else{\n box = document.createElement(\"div\");\n box.setAttribute('id', this.ID);\n \n } \n\n box.style.display = 'none';\n box.innerHTML = `<div class=\"tc-loading-icon\"><i class=\"fas fa-spinner fa-spin\"></i></div>`;\n\n const body = document.getElementsByTagName('body')[0];\n body.appendChild(box);\n body.classList.add('tcloud-ui-body-loading-transitions');\n }\n\n\n\n}","import { CommonModule } from '@angular/common';\nimport { Component, Input, input, output } from '@angular/core';\nimport { Params, RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tcloud-ui-sub-navbar-item',\n imports: [\n CommonModule,\n RouterModule,\n ],\n templateUrl: './tcloud-ui-sub-navbar-item.component.html',\n styleUrl: './tcloud-ui-sub-navbar-item.component.scss'\n})\nexport class TCloudUiSubNavbarItemComponent\n{\n @Input() isMenuExpanded: boolean;\n public label = input.required<string>();\n public onClick = output<MouseEvent>()\n public active = input<boolean>(false);\n public routerLink = input<string | null>(null);\n public queryParams = input<Params | null>(null);\n\n public handleClick(_ev: MouseEvent): void\n {\n this.onClick.emit(_ev);\n }\n}\n","<li\n class=\"tc-sub-navbar-item\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded\">\n <a\n class=\"tc-sub-navbar-item-link\"\n [class.selected]=\"active()\"\n [routerLink]=\"routerLink()\"\n routerLinkActive=\"active\"\n [queryParams]=\"queryParams()\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"label()\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n\n @if (isMenuExpanded)\n {\n <div class=\"navbar-item-label\">\n {{label()}}\n </div>\n }\n </a>\n</li>\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChildren, output, signal } from '@angular/core';\nimport { TCloudUiSubNavbarItemComponent } from './component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component';\n\n@Component({\n selector: 'tc-rev-sub-navbar',\n imports: [\n CommonModule,\n TCloudUiSubNavbarItemComponent,\n ],\n templateUrl: './tcloud-ui-sub-navbar.component.html',\n styleUrl: './tcloud-ui-sub-navbar.component.scss'\n})\nexport class TCloudUiSubNavbarComponent\n{\n @ContentChildren(TCloudUiSubNavbarItemComponent) subNavbarItems!: TCloudUiSubNavbarItemComponent[];\n public isMenuExpanded = signal<boolean>(true);\n public onSubMenuExpandChange = output<boolean>();\n\n\n ngAfterContentInit(): void\n {\n setTimeout(() => this.setExpandedMenuValueToChildrend(), 0);\n }\n\n public handleExpandMenu(): void\n {\n this.isMenuExpanded.update((value) => !value);\n this.setExpandedMenuValueToChildrend();\n }\n\n private setExpandedMenuValueToChildrend(): void\n {\n if (!this.subNavbarItems?.length) return;\n this.subNavbarItems.forEach((x) =>\n {\n x.isMenuExpanded = this.isMenuExpanded();\n });\n\n this.onSubMenuExpandChange.emit(this.isMenuExpanded());\n }\n}\n","<nav class=\"tc-sub-navbar\">\n <ul\n class=\"tc-sub-navbar-list\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded()\"\n >\n <tcloud-ui-sub-navbar-item\n [isMenuExpanded]=\"isMenuExpanded()\"\n (click)=\"handleExpandMenu()\"\n label=\"Minimizar\"\n >\n <i\n class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded()\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded()\"\n icon\n ></i>\n </tcloud-ui-sub-navbar-item>\n <ng-content></ng-content>\n </ul>\n</nav>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class ContainerService {\n\n\n private _expanded_signal = signal<boolean>(undefined);\n readonly expanded_signal:any=this._expanded_signal.asReadonly();\n\n set_expanded_signal(v:boolean){\n this._expanded_signal.set(v);\n }\n\n}","import { ContainerService } from './services/container.service';\nimport { Component, inject, Input } from '@angular/core';\n@Component({\n selector: 'tcloud-ui-container',\n imports: [\n ],\n providers: [ContainerService],\n templateUrl: './tcloud-ui-container.component.html',\n styleUrl: './tcloud-ui-container.component.scss'\n})\nexport class TCloudUiContainerComponent {\n\n private _containerService = inject(ContainerService);\n private _expanded: boolean = false;\n\n @Input()\n set expanded(v: boolean) {\n // coerce to boolean and only propagate when changed\n const newVal = !!v;\n if (this._expanded !== newVal) {\n this._expanded = newVal;\n this.to_expanded();\n }\n }\n\n get expanded(): boolean { return this._expanded; }\n\n // optional manual trigger kept for backward-compatibility\n to_expanded(){\n this._containerService.set_expanded_signal( this._expanded );\n }\n\n}\n","<div class=\"tc-rev-container f-family c-neutral-900 mar-b-24\" [class.container-expanded]=\"expanded\">\n <ng-content></ng-content> \n</div>","import { Component, inject } from '@angular/core';\nimport { ContainerService } from '../../services/container.service';\n\n@Component({\n selector: 'tcloud-ui-container-content',\n imports: [],\n templateUrl: './tcloud-ui-container-content.component.html',\n styleUrls: ['./tcloud-ui-container-content.component.scss','../../tcloud-ui-container.component.scss']\n})\nexport class TCloudUiContainerContentComponent {\n\n private _containerService = inject(ContainerService);\n\n get expanded(){\n return this._containerService.expanded_signal();\n }\n}\n","\n<div class=\"tc-rev-container-content\" [class.content-expanded]=\"expanded\">\n <ng-content></ng-content>\n</div>","import { Component, inject } from '@angular/core';\nimport { ContainerService } from '../../services/container.service';\n\n@Component({\n selector: 'tcloud-ui-container-col',\n imports: [],\n templateUrl: './tcloud-ui-container-col.component.html',\n styleUrls: ['./tcloud-ui-container-col.component.scss','../../tcloud-ui-container.component.scss']\n})\nexport class TCloudUiContainerColComponent {\n\n private _containerService = inject(ContainerService);\n\n get expanded(){\n return this._containerService.expanded_signal();\n }\n}\n","\n<div class=\"tc-rev-container-col\" [class.col-expanded]=\"expanded\">\n <ng-content></ng-content>\n</div>","import { Directive, effect, ElementRef, input } from '@angular/core';\n\n@Directive({\n selector: 'button[tcRevButton]',\n host: {\n class: 'tc-rev-btn'\n }\n})\nexport class TcRevButtonDirective {\n public color = input<'primary' | 'light' | 'danger' | 'dark'>('primary');\n public size = input<'lg' | 'md' | 'sm'>('sm');\n public fullWidth = input<boolean>(false);\n public tcRevButton = input<'filled' | 'outline' | 'link'>('filled');\n\n constructor(private _el: ElementRef<HTMLButtonElement>) {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses(): void {\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-rev-btn--')));\n\n let tcRevButton = this.tcRevButton();\n\n if (!tcRevButton) {\n tcRevButton = 'filled';\n }\n\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-btn--full-width') : null;\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.color()}-${tcRevButton}`);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, Input, input, output } from '@angular/core';\n\nexport interface CalendarAppointment\n{\n appointmentDate: string;\n type: 'info' | 'alert' | 'danger' | 'success';\n description: string;\n}\n\n@Component({\n selector: 'tc-rev-calendar',\n imports: [\n CommonModule,\n ],\n templateUrl: './tc-rev-calendar.component.html',\n styleUrls: ['./tc-rev-calendar.component.scss']\n})\nexport class TcRevCalendarComponent {\n @Input() appointments: CalendarAppointment[] = []; // Updated to use the new type\n /** Active date format\n * @format YYYY-MM-DD\n * @example 2023-10-01\n */\n public activeDate = input<string>();\n public innerActiveDate = computed(() =>\n {\n if (!this.activeDate()) return '';\n \n const date = new Date(`${this.activeDate()!} 00:00:00`);\n return date;\n });\n public onSelectDate = output<Date>();\n currentDate: Date = new Date();\n viewMode: 'days' | 'months' | 'years' = 'days';\n yearOffset: number = 0; // Offset for year navigation\n\n // Fixed properties\n public month: string;\n public year: number;\n public daysOfWeek: string[];\n public calendarDays: { date: Date; isCurrentMonth: boolean }[];\n public calendarMonths: string[];\n public calendarYears: number[];\n\n ngOnInit(): void\n {\n this.updateMonth();\n this.updateYear();\n this.updateDaysOfWeek();\n this.updateCalendarDays();\n this.updateCalendarMonths();\n this.updateCalendarYears();\n }\n\n // Methods to update fixed properties\n updateMonth(): void\n {\n this.month = this.currentDate.toLocaleString('default', { month: 'long' });\n }\n\n updateYear(): void\n {\n this.year = this.currentDate.getFullYear();\n }\n\n updateDaysOfWeek(): void\n {\n this.daysOfWeek = ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'];\n }\n\n updateCalendarDays(): void\n {\n const year = this.currentDate.getFullYear();\n const month = this.currentDate.getMonth();\n\n const firstDayOfMonth = new Date(year, month, 1);\n const lastDayOfMonth = new Date(year, month + 1, 0);\n\n const daysInLastMonth = firstDayOfMonth.getDay();\n const daysInCurrentMonth = lastDayOfMonth.getDate();\n\n const calendarDays: { date: Date; isCurrentMonth: boolean }[] = [];\n\n // Add last days of the previous month\n for (let i = daysInLastMonth - 1; i >= 0; i--)\n {\n const date = new Date(year, month, -i);\n calendarDays.push({ date, isCurrentMonth: false });\n }\n\n // Add all days of the current month\n for (let i = 1; i <= daysInCurrentMonth; i++)\n {\n const date = new Date(year, month, i);\n calendarDays.push({ date, isCurrentMonth: true });\n }\n\n // Add first days of the next month\n const remainingDays = 35 - calendarDays.length;\n for (let i = 1; i <= remainingDays; i++)\n {\n const date = new Date(year, month + 1, i);\n calendarDays.push({ date, isCurrentMonth: false });\n }\n\n this.calendarDays = calendarDays;\n console.log('calendarDays', this.calendarDays[16].date);\n }\n\n updateCalendarMonths(): void\n {\n this.calendarMonths = Array.from({ length: 12 }, (_, i) =>\n new Date(this.year, i).toLocaleString('default', { month: 'long' })\n );\n }\n\n updateCalendarYears(): void\n {\n const startYear = this.year - 5 + this.yearOffset * 12;\n this.calendarYears = Array.from({ length: 12 }, (_, i) => startYear + i);\n }\n\n // Existing methods updated to call the update methods\n changeMonth(offset: number): void\n {\n this.currentDate = new Date(\n this.currentDate.getFullYear(),\n this.currentDate.getMonth() + offset,\n 1\n );\n this.updateMonth();\n this.updateYear();\n this.updateCalendarDays();\n }\n\n selectMonth(monthIndex: number): void\n {\n this.currentDate = new Date(this.year, monthIndex, 1);\n this.viewMode = 'days';\n this.updateMonth();\n this.updateCalendarDays();\n }\n\n changeYearOffset(offset: number): void\n {\n if (this.viewMode === 'months')\n {\n // Adjust the current date by adding or subtracting a year\n this.currentDate = new Date(this.currentDate.getFullYear() + offset, this.currentDate.getMonth(), 1);\n this.updateYear();\n this.updateCalendarMonths();\n }\n else if (this.viewMode === 'years')\n {\n // Adjust the year offset for the year view\n this.yearOffset += offset;\n this.updateCalendarYears();\n }\n }\n\n selectYear(year: number): void\n {\n this.currentDate = new Date(year, this.currentDate.getMonth(), 1);\n this.viewMode = 'months';\n this.updateYear();\n this.updateCalendarMonths();\n }\n\n toggleViewMode(mode: 'months' | 'years'): void\n {\n this.viewMode = mode;\n if (mode === 'years') {\n this.yearOffset = 0; // Reset year offset when entering year view\n this.updateCalendarYears();\n }\n }\n\n isAppointment(date: Date): CalendarAppointment | undefined\n {\n const dateString = date.toISOString().split('T')[0];\n return this.appointments.find(appointment => appointment.appointmentDate === dateString);\n }\n}","<div class=\"tc-rev-calendar\">\n <div class=\"calendar-header\">\n <button class=\"prev-btn mar-r-a\" (click)=\"changeMonth(-1)\" *ngIf=\"viewMode === 'days'\"><i class=\"fa-light fa-chevron-left\"></i></button>\n <button class=\"prev-btn mar-r-a\" (click)=\"changeYearOffset(-1)\" *ngIf=\"viewMode === 'months' || viewMode === 'years'\"><i class=\"fa-light fa-chevron-left\"></i></button>\n @if (viewMode === 'days')\n {\n <span class=\"calendar-title date\" (click)=\"toggleViewMode('months')\">{{ month }} - </span>\n <span class=\"calendar-title date\" (click)=\"toggleViewMode('years')\">{{ year }}</span>\n }\n @else if (viewMode === 'months')\n {\n <span class=\"calendar-title\">Selecione o mês</span>\n }\n @else if (viewMode === 'years')\n {\n <span class=\"calendar-title\">Selecione o ano</span>\n } \n <button class=\"next-btn mar-l-a\" (click)=\"changeYearOffset(1)\" *ngIf=\"viewMode === 'months' || viewMode === 'years'\"><i class=\"fa-light fa-chevron-right\"></i></button>\n <button class=\"next-btn mar-l-a\" (click)=\"changeMonth(1)\" *ngIf=\"viewMode === 'days'\"><i class=\"fa-light fa-chevron-right\"></i></button>\n </div>\n\n <div class=\"calendar-grid\" *ngIf=\"viewMode === 'days'\">\n <div class=\"day-header\" *ngFor=\"let day of daysOfWeek\">{{ day }}</div>\n <button\n *ngFor=\"let day of calendarDays\"\n class=\"day\"\n [class.selected]=\"day.date.valueOf() === innerActiveDate().valueOf()\"\n [class.current-month]=\"day.isCurrentMonth\"\n [title]=\"isAppointment(day.date)?.description ? isAppointment(day.date)?.description : ''\"\n (click)=\"onSelectDate.emit(day.date)\"\n >\n <span\n *ngIf=\"isAppointment(day.date)\"\n class=\"appointment-dot\"\n [ngClass]=\"'appointment-'+ isAppointment(day.date)?.type\"\n ></span>\n {{ day.date.getDate() }}\n </button>\n </div>\n\n <div class=\"calendar-grid months\" *ngIf=\"viewMode === 'months'\">\n <div\n class=\"month\"\n *ngFor=\"let month of calendarMonths; let i = index\"\n (click)=\"selectMonth(i)\"\n >\n {{ month }}\n </div>\n </div>\n\n <div class=\"calendar-grid years\" *ngIf=\"viewMode === 'years'\">\n <div\n class=\"year\"\n *ngFor=\"let year of calendarYears\"\n (click)=\"selectYear(year)\"\n >\n {{ year }}\n </div>\n </div>\n</div>","import { Component, inject, input } from '@angular/core';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-card-title',\n imports: [],\n templateUrl: './tc-rev-card-title.component.html',\n styleUrl: './tc-rev-card-title.component.scss'\n})\nexport class TcRevCardTitleComponent\n{\n public title = input.required<string>();\n}\n","<div class=\"tc-rev-card-title c-neutral-700\">\n <span class=\"tc-rev-card-title__icon w-40 h-40 f-size-18 bg-c-neutral-200 bor-rad-rounded\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n\n <h2 class=\"tc-rev-card-title__text f-h2 f-weight-700 mar-none\">{{title()}}</h2>\n\n <ng-content></ng-content>\n</div>\n","import {\n animate,\n AnimationBuilder,\n AnimationPlayer,\n style,\n} from '@angular/animations';\nimport {\n Injectable,\n signal,\n computed,\n EmbeddedViewRef,\n inject,\n Renderer2,\n ApplicationRef,\n TemplateRef,\n RendererFactory2,\n} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiDeviceUtilsService {\n /*** Viewport mobile ***/\n\n private readonly DESKTOP_MIN = 480;\n private widthScreen = signal(window.innerWidth);\n\n // largura atual da viewport\n width = computed(() => this.widthScreen());\n\n isDesktop = computed(() => this.width() > this.DESKTOP_MIN);\n isMobile = computed(() => this.width() <= this.DESKTOP_MIN);\n\n \n /*** Utils ***/\n\n /* Dropdown */\n\n private renderer: Renderer2;\n private menuHost: HTMLElement | null = null;\n private embeddedView: EmbeddedViewRef<any> | null = null;\n\n private appRef = inject(ApplicationRef);\n private animationBuilder = inject(AnimationBuilder);\n private player: AnimationPlayer | null = null;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n window.addEventListener('resize', () => {\n this.widthScreen.set(window.innerWidth);\n });\n }\n\n public openDropdownDevice(menuTemplate: TemplateRef<any>): void {\n this.menuHost = this.renderer.createElement('div');\n\n this.renderer.setStyle(this.menuHost, 'position', 'fixed');\n this.renderer.setStyle(this.menuHost, 'top', '0');\n this.renderer.setStyle(this.menuHost, 'left', '0');\n this.renderer.setStyle(this.menuHost, 'width', '100vw');\n this.renderer.setStyle(this.menuHost, 'height', '100vh');\n this.renderer.setStyle(this.menuHost, 'z-index', '9999');\n this.renderer.setStyle(this.menuHost, 'opacity', '0');\n\n this.renderer.appendChild(document.body, this.menuHost);\n\n // Impede scroll da página externa enquanto o dropdown está aberto\n this.renderer.setStyle(document.body, 'overflow', 'hidden');\n this.renderer.setStyle(document.body, 'touch-action', 'none');\n\n this.embeddedView = menuTemplate.createEmbeddedView({});\n this.appRef.attachView(this.embeddedView);\n this.embeddedView.rootNodes.forEach((node) => {\n this.renderer.appendChild(this.menuHost!, node);\n });\n\n const fadeIn = this.animationBuilder.build([\n style({ opacity: 0 }),\n animate('200ms ease', style({ opacity: 1 })),\n ]);\n this.player = fadeIn.create(this.menuHost!);\n this.player.play();\n }\n public closeDropdownDevice(): void {\n if (!this.menuHost) return;\n const fadeOut = this.animationBuilder.build([\n style({ opacity: 1 }),\n animate('200ms ease', style({ opacity: 0 })),\n ]);\n this.player = fadeOut.create(this.menuHost);\n this.player.play();\n\n this.player.onDone(() => {\n this.renderer.removeStyle(document.body, 'overflow');\n this.renderer.removeStyle(document.body, 'touch-action');\n\n if (this.embeddedView) {\n this.appRef.detachView(this.embeddedView);\n this.embeddedView.destroy();\n this.embeddedView = null;\n }\n this.renderer.removeChild(document.body, this.menuHost);\n this.menuHost = null;\n this.player = null;\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, input, model, output } from '@angular/core';\nimport { TcRevButtonDirective } from '../tc-rev-button/tc-rev-button.directive';\nimport { TcRevCardTitleComponent } from '../tc-rev-card-title/tc-rev-card-title.component';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-card-accordion',\n imports: [CommonModule, TcRevCardTitleComponent, TcRevButtonDirective],\n templateUrl: './tc-rev-card-accordion.component.html',\n styleUrl: './tc-rev-card-accordion.component.scss',\n})\nexport class TcRevCardAccordionComponent {\n public _viewPort = inject(TCloudUiDeviceUtilsService);\n\n public toggle = output<boolean>();\n public title = input<string>('');\n public iconClass = input<string>('fa-light fa-hard-drive');\n public showMoreText = input<string>('Exibir mais');\n public showLessText = input<string>('Exibir menos');\n public badge = input<{ text: string; class: string } | null>(null);\n public isOpen = model<boolean>();\n public isDesktop = this._viewPort.isDesktop;\n\n public toggleAccordion(): void {\n this.isOpen.update((current) => !current);\n this.toggle.emit(this.isOpen());\n }\n\n /**\n * APPLY FUNCTIONS RESPONSIVE < 500PX\n */\n get accordionExtraClasses(): string[] {\n if (this.isDesktop()) {\n return ['pad-16'];\n }\n //Responsive Classes\n return ['pad-14'];\n }\n\n\n}\n","<div class=\"tc-rev-card-accordion tc-rev-card bg-c-neutral-50 bor-xs bor-rad-16\"\n[ngClass]=\"accordionExtraClasses\"\n>\n <tc-rev-card-title [title]=\"title()\" [class]=\"isOpen() ? 'pad-b-16' : '' \">\n <i [class]=\"iconClass()\" icon></i>\n\n <div\n *ngIf=\"badge()\"\n class=\"f-size-12 f-weight-600 pad-x-4 pad-y-2 bor-xs bor-rad-xs\"\n [ngClass]=\"badge()?.class\"\n [class.mar-l-8]=\"isDesktop()\"\n >\n {{ badge()?.text }}\n </div>\n\n @if(isDesktop()){\n <button tcRevButton=\"outline\" color=\"dark\" size=\"sm\" class=\"mar-l-a\" (click)=\"toggleAccordion()\">\n {{ isOpen() ? showLessText() : showMoreText() }}\n <i class=\"fa-light\" [ngClass]=\"isOpen() ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n\n @if(!isDesktop()){\n <button tcRevButton=\"link\" color=\"dark\" size=\"md\" (click)=\"toggleAccordion()\" class=\"tc-rev-card-accordion__arrow-mobile mar-l-a\">\n <i class=\"fa-light\" [ngClass]=\"isOpen() ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n\n </tc-rev-card-title>\n <ng-content *ngIf=\"isOpen()\"></ng-content>\n</div>\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-card',\n imports: [CommonModule],\n templateUrl: './tc-rev-card.component.html',\n styleUrl: './tc-rev-card.component.scss',\n})\nexport class TcRevCardComponent {\n public _viewPort = inject(TCloudUiDeviceUtilsService);\n public isDesktop = this._viewPort.isDesktop;\n\n /**\n * APPLY FUNCTIONS RESPONSIVE < 480PX\n */\n get extraClasses(): string[] {\n if (this.isDesktop()) {\n return ['shadow-md', 'pad-16'];\n }\n //Responsive Classes\n return ['shadow-sm', 'pad-14'];\n }\n}\n","<div class=\"tc-rev-card bg-c-neutral-50 bor-rad-16\"\n[ngClass]=\"extraClasses\"\n>\n <ng-content></ng-content>\n</div>","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'input[type=\"checkbox\"][tcRevCheckbox]',\n host: {\n class: 'tc-rev-checkbox'\n }\n})\nexport class TcRevCheckboxDirective {\n\n constructor() { }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, input, output, Output, SimpleChanges, viewChild } from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs';\n\n@Component({\n selector: 'tc-rev-search-input',\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n templateUrl: './tc-rev-search-input.component.html',\n styleUrl: './tc-rev-search-input.component.scss'\n})\nexport class TcRevSearchInputComponent {\n @Input() searchText: string;\n @Output() searchTextChange = new EventEmitter<string>();\n protected searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n protected searchTextForm = new FormControl('');\n public placeholder = input<string>('');\n public onSearch = output<string>();\n public autoFocus = input<boolean>(false);\n\n ngOnChanges(_simpleChanges: SimpleChanges): void {\n if (_simpleChanges['searchText']) {\n this.searchTextForm.setValue(this.searchText);\n }\n }\n\n ngOnInit(): void {\n // Inicializa o FormControl com o valor do model\n this.searchTextForm.setValue(this.searchText);\n\n this.searchTextForm.valueChanges\n .pipe(\n debounceTime(500),\n distinctUntilChanged(),\n map((text) => text?.toLowerCase() || '')\n )\n .subscribe((text) => {\n this.searchTextChange.emit(text);\n this.onSearch.emit(text);\n });\n }\n\n ngAfterViewInit(): void {\n if (this.autoFocus() && this.searchInput) {\n this.searchInput().nativeElement.focus();\n }\n }\n}\n","<form class=\"tc-rev-search-input-container\">\n <input\n type=\"text\"\n class=\"tc-rev-search-input-control\"\n [formControl]=\"this.searchTextForm\"\n [placeholder]=\"this.placeholder()\"\n #searchInput\n />\n\n <button class=\"tc-rev-search-input-btn\">\n <i class=\"fa-light fa-magnifying-glass\"></i>\n </button>\n</form>\n\n\n","import { Directive, effect, ElementRef, input } from '@angular/core';\n\n@Directive({\n selector: 'button[tcRevIconButton]',\n host: {\n class: 'tc-rev-btn tc-rev-btn-icon'\n }\n})\nexport class TcRevIconButtonDirective {\n public color = input<'primary' | 'light' | 'danger' | 'dark'>('primary');\n public size = input<'lg' | 'md' | 'sm'>('sm');\n public tcRevIconButton = input<'filled' | 'outline' | 'link'>('filled');\n\n constructor(private _el: ElementRef<HTMLButtonElement>) {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses(): void {\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-rev-btn--')));\n\n let tcRevIconButton = this.tcRevIconButton();\n\n if (!tcRevIconButton) {\n tcRevIconButton = 'filled';\n }\n\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}-icon`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.color()}-${tcRevIconButton}`);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TcRevSearchInputComponent } from '../tc-rev-search-input/tc-rev-search-input.component';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\nimport { TcRevIconButtonDirective } from '../tc-rev-icon-button/tc-rev-icon-button.directive';\n\nexport interface DropdownGroupedOption {\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n group?: string;\n}\n\nexport interface DropdownGroup {\n groupName: string;\n options: DropdownGroupedOption[];\n}\n\nexport enum DropdownGroupedSize {\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n@Component({\n selector: 'tc-rev-dropdown-grouped',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TcRevSearchInputComponent,\n TcRevIconButtonDirective\n ],\n templateUrl: './tc-rev-dropdown-grouped.component.html',\n styleUrl: './tc-rev-dropdown-grouped.component.scss',\n})\nexport class TcRevDropdownGroupedComponent {\n @ViewChild('menuTemplate') menuTemplate!: TemplateRef<any>;\n\n @HostListener('document:click', ['$event'])\n\n onDocumentClick(event: MouseEvent): void {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target)) {\n this.isOpen = false;\n }\n }\n\n public _deviceService = inject(TCloudUiDeviceUtilsService);\n\n public label = input<string>(''); // Label que será exibida\n public disabled = input<boolean>(false); // Desabilita o dropdown\n public options = input.required<DropdownGroupedOption[]>(); // Lista de opções agrupadas\n public initialValue = input<any>(null); // Valor pré-selecionado (deprecated - use value instead)\n public value = model<any>(null); // Two-way binding para o valor selecionado\n public size = input<DropdownGroupedSize>(DropdownGroupedSize.sm);\n public placeholder = input<string>('Selecione');\n public searchPlaceholder = input<string>('Buscar...');\n public showSearch = input<boolean>(true); // Controla se mostra o input de busca\n public width = input<string>(''); // Largura do dropdown\n public optionSelected = output<any>(); // Emissor para o valor selecionado\n\n public selectedOption = signal<DropdownGroupedOption | null>(null); // Opção selecionada\n public isOpen = false; // Controla se o dropdown está aberto\n public searchTerm = signal<string>(''); // Termo de busca\n public dropdownSize = DropdownGroupedSize;\n\n public isDesktop = this._deviceService.isDesktop;\n public isMobile = this._deviceService.isMobile;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(_simpleChanges: SimpleChanges): void {\n // Atualiza a opção selecionada quando o valor pré-selecionado muda\n if (\n _simpleChanges['initialValue'] ||\n _simpleChanges['options'] ||\n _simpleChanges['value']\n ) {\n const valueToUse = this.value() || this.initialValue();\n this.selectedOption.set(\n this.options().find((option) => option.value === valueToUse) || null\n );\n }\n }\n\n ngOnInit(): void {\n // Prioriza o valor do model, mas mantém compatibilidade com initialValue\n const valueToUse = this.value() || this.initialValue();\n const foundOption =\n this.options().find((option) => option.value === valueToUse) || null;\n this.selectedOption.set(foundOption);\n\n // Se não havia valor no model mas havia initialValue, sincroniza o model\n if (!this.value() && this.initialValue() && foundOption) {\n this.value.set(foundOption.value);\n }\n\n // Escuta mudanças no model e atualiza a opção selecionada\n this.value.subscribe((newValue) => {\n const option =\n this.options().find((opt) => opt.value === newValue) || null;\n if (this.selectedOption() !== option) {\n this.selectedOption.set(option);\n }\n });\n }\n\n public toggleDropdown(): void {\n if (!this.disabled()) {\n // Abertura do dropdown para mobile\n if (this.isMobile()) {\n this._deviceService.openDropdownDevice(this.menuTemplate);\n return;\n }\n\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.searchTerm.set('');\n // Foca no input de busca quando abre o dropdown\n setTimeout(() => {\n const searchInput = this.elementRef.nativeElement.querySelector(\n '.tc-rev-dropdown-search input'\n );\n if (searchInput) {\n searchInput.focus();\n }\n }, 100);\n }\n }\n }\n\n public selectOption(option: DropdownGroupedOption): void {\n if (!option.disabled) {\n this.selectedOption.set(option);\n this.value.set(option.value); // Atualiza o model com two-way binding\n this.optionSelected.emit(option); // Emite a opção selecionada para compatibilidade\n if (this.isMobile()) {\n this._deviceService.closeDropdownDevice();\n return;\n }\n this.isOpen = false;\n this.searchTerm.set('');\n }\n }\n\n public onSearchChange(searchText: string): void {\n this.searchTerm.set(searchText);\n }\n\n public getGroupedOptions(): DropdownGroup[] {\n const filtered = this.getFilteredOptions();\n const groups: { [key: string]: DropdownGroupedOption[] } = {};\n\n // Agrupa as opções filtradas\n filtered.forEach((option) => {\n const groupName = option.group || 'Sem grupo';\n if (!groups[groupName]) {\n groups[groupName] = [];\n }\n groups[groupName].push(option);\n });\n\n // Converte para array de grupos\n return Object.keys(groups).map((groupName) => ({\n groupName,\n options: groups[groupName],\n }));\n }\n\n private getFilteredOptions(): DropdownGroupedOption[] {\n const search = this.searchTerm().toLowerCase().trim();\n if (!search) {\n return this.options();\n }\n\n return this.options().filter(\n (option) =>\n option.displayValue.toLowerCase().includes(search) ||\n (option.group && option.group.toLowerCase().includes(search))\n );\n }\n\n public clearSearch(): void {\n this.searchTerm.set('');\n }\n\n public hasResults(): boolean {\n return this.getFilteredOptions().length > 0;\n }\n}\n","<div class=\"tc-rev-dropdown-grouped\" [class.disabled]=\"disabled()\">\n <button\n class=\"tc-rev-dropdown-toggle\"\n [class.tc-rev-dropdown-toggle--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-dropdown-toggle--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-dropdown-toggle--lg]=\"this.size() === dropdownSize.lg\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n [disabled]=\"disabled()\"\n [style.width]=\"this.width()\"\n >\n @if (label()) {\n <b>{{ label() }}</b>\n }\n {{ selectedOption() ? selectedOption()?.displayValue : placeholder() }}\n <i class=\"fa-light fa-chevron-down mar-l-a\" [class.rotate]=\"isOpen\"></i>\n </button>\n\n <div\n *ngIf=\"isOpen && isDesktop()\"\n class=\"tc-rev-dropdown-menu\"\n [style.width]=\"this.width()\"\n >\n <!-- Input de busca -->\n @if (showSearch()) {\n <div class=\"tc-rev-dropdown-search\">\n <tc-rev-search-input\n (onSearch)=\"onSearchChange($event)\"\n [placeholder]=\"this.searchPlaceholder()\"\n />\n </div>\n <!-- <div class=\"tc-rev-dropdown-search\">\n <i class=\"fa-light fa-magnifying-glass search-icon\"></i>\n <input\n type=\"text\"\n [placeholder]=\"searchPlaceholder()\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchChange($event)\"\n class=\"search-input\">\n @if (searchTerm()) {\n <button\n type=\"button\"\n class=\"clear-search\"\n (click)=\"clearSearch()\"\n title=\"Limpar busca\">\n <i class=\"fa-light fa-xmark\"></i>\n </button>\n }\n </div> -->\n }\n\n <!-- Lista de opções agrupadas -->\n @if (hasResults()) {\n <ul class=\"tc-rev-dropdown-options\">\n @for (group of getGroupedOptions(); track group.groupName) {\n <li class=\"tc-rev-dropdown-group\">\n <div class=\"tc-rev-dropdown-group-header\">\n {{ group.groupName }}\n </div>\n <ul class=\"tc-rev-dropdown-group-options\">\n @for (option of group.options; track option?.value) {\n <li class=\"tc-rev-dropdown-menu-item\" (click)=\"selectOption(option)\">\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n {{ option?.displayValue }}\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n } @else {\n <div class=\"tc-rev-dropdown-no-results f-family\">\n <i class=\"fa-light fa-magnifying-glass\"></i>\n <span>Nenhum resultado encontrado</span>\n </div>\n }\n </div>\n\n <!-- Dropdown full screen -->\n <ng-template #menuTemplate>\n <div class=\"tc-rev-dropdown-menu tc-rev-dropdown-menu--device\">\n <div class=\"tc-rev-dropdown-menu-section\">\n <div class=\"tc-rev-dropdown-menu-header pad-b-24\">\n <h3 class=\"mar-none f-h2 f-weight-600 c-neutral-600\">\n {{ label() }}\n </h3>\n <button\n tcRevIconButton=\"outline\"\n color=\"dark\"\n size=\"sm\"\n (click)=\"_deviceService.closeDropdownDevice()\"\n >\n <i class=\"fa-light fa-times f-size-16\"></i>\n </button>\n </div>\n\n @if (showSearch()) {\n <div class=\"tc-rev-dropdown-search mar-b-12\">\n <tc-rev-search-input\n (onSearch)=\"onSearchChange($event)\"\n [placeholder]=\"searchPlaceholder()\"\n />\n </div>\n } @if (hasResults()) {\n <ul class=\"tc-rev-dropdown-menu-container mar-t-8\">\n @for (group of getGroupedOptions(); track group.groupName) {\n <li class=\"tc-rev-dropdown-group\">\n <div class=\"tc-rev-dropdown-group-header\">\n {{ group.groupName }}\n </div>\n <ul class=\"tc-rev-dropdown-group-options\">\n @for (option of group.options; track option?.value) {\n <li\n class=\"tc-rev-dropdown-menu-item\"\n (click)=\"selectOption(option)\"\n >\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n {{ option?.displayValue }}\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check f-size-16\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\n\nexport interface MultiLevelDropdownOption\n{\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n children?: MultiLevelDropdownOption[];\n}\n\n@Component({\n selector: 'tc-rev-dropdown-sub-menu',\n templateUrl: './tc-rev-dropdown-sub-menu.component.html',\n styleUrls: ['./tc-rev-dropdown-sub-menu.component.scss'],\n imports: [CommonModule]\n})\nexport class TcRevDropdownSubMenuComponent {\n public items = input.required<MultiLevelDropdownOption[]>();\n public position = input<'right' | 'left'>('right');\n public parentOffsetTop = input.required<number>();\n public selectedOption = input<MultiLevelDropdownOption | null>();\n public onOptionSelected = output<MultiLevelDropdownOption>();\n}\n","<ul\n class=\"sub-menu\"\n [ngClass]=\"this.position()\"\n [style.top.px]=\"this.parentOffsetTop()\">\n @for (item of this.items(); track item.value)\n {\n <li\n class=\"sub-menu-item\"\n [class.selected]=\"this.selectedOption()?.value === item.value\"\n (click)=\"this.onOptionSelected.emit(item)\">\n {{ item.displayValue }}\n @if (this.selectedOption()?.value === item?.value)\n {\n <i class=\"fa-light fa-circle-check\"></i>\n }\n @if (item.children?.length)\n {\n <tc-rev-dropdown-sub-menu\n [items]=\"item.children\"\n [position]=\"this.position()\"\n [parentOffsetTop]=\"0\"\n [selectedOption]=\"this.selectedOption()\">\n </tc-rev-dropdown-sub-menu>\n }\n </li>\n }\n</ul>\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostListener, SimpleChanges, ViewChild, input, output, signal } from '@angular/core';\nimport { TcRevDropdownSubMenuComponent } from './tc-rev-dropdown-sub-menu/tc-rev-dropdown-sub-menu.component';\n\nexport interface MultiLevelDropdownOption\n{\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n children?: MultiLevelDropdownOption[];\n}\n\nexport enum MultiLevelDropdownSize\n{\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n\n@Component({\n selector: 'tc-rev-dropdown-multi-level',\n imports: [\n CommonModule,\n TcRevDropdownSubMenuComponent\n ],\n templateUrl: './tc-rev-dropdown-multi-level.component.html',\n styleUrl: './tc-rev-dropdown-multi-level.component.scss'\n})\nexport class TcRevDropdownMultiLevelComponent {\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void\n {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target))\n {\n this.isOpen = false;\n }\n }\n @ViewChild('menuRoot', { static: false }) menuRoot!: ElementRef<HTMLUListElement>;\n public readonly dropdownSize = MultiLevelDropdownSize;\n public menu = input.required<MultiLevelDropdownOption[]>();\n public subMenuPosition = input<'right' | 'left'>('right');\n public disabled = input<boolean>(false);\n public size = input<MultiLevelDropdownSize>(MultiLevelDropdownSize.sm);\n public initialValue = input<MultiLevelDropdownOption | null>(null); // Valor pré-selecionado\n public optionSelected = output<{ option: MultiLevelDropdownOption, parentOption: MultiLevelDropdownOption }>();\n public selectedOption = signal<MultiLevelDropdownOption | null>(null);\n public selectedParentOption = signal<MultiLevelDropdownOption | null>(null);\n public hoveredIndex: number | null = null;\n public isOpen: boolean = false;\n\n constructor(private elementRef: ElementRef) { }\n\n ngOnChanges(_simpleChanges: SimpleChanges): void\n {\n // Atualiza a opção selecionada quando o valor pré-selecionado muda\n if (_simpleChanges['initialValue'] || _simpleChanges['menu'])\n {\n this.selectedOption.set(null);\n this.selectedParentOption.set(null);\n }\n }\n\n public getItemOffsetTop(index: number): number {\n if (!this.menuRoot) return 0;\n\n const items = this.menuRoot.nativeElement.querySelectorAll<HTMLLIElement>('.menu-item');\n\n if (items && items[index])\n {\n return items[index].offsetTop;\n }\n\n return 0;\n }\n\n public toggleDropdown(): void\n {\n this.isOpen = !this.isOpen;\n }\n\n public selectOption(option: MultiLevelDropdownOption, parentOption: MultiLevelDropdownOption): void\n {\n this.selectedOption.set(option);\n this.selectedParentOption.set(parentOption);\n this.optionSelected.emit({ option, parentOption}); // Emite apenas o valor da opção selecionada\n // this.isOpen = false; // Fecha o dropdown\n // this.hoveredIndex = null;\n }\n\n public selectParentItem($event: MouseEvent, option: MultiLevelDropdownOption, parentOption: MultiLevelDropdownOption): void\n {\n $event.stopPropagation();\n if (parentOption?.children?.length) return;\n this.selectOption(option, parentOption);\n }\n}\n","<div class=\"tc-rev-dropdown-multi-level\">\n <button\n class=\"tc-rev-btn tc-rev-btn--sm tc-rev-btn--dark-outline tc-rev-dropdown-toggle\"\n [class.tc-rev-btn--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-btn--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-btn--lg]=\"this.size() === dropdownSize.lg\"\n [class.active]=\"isOpen\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\">\n <ng-content></ng-content>\n </button>\n\n\t<ul class=\"tc-rev-dropdown-multi-level__menu-list\" #menuRoot>\n\t\t@if (isOpen)\n {\n @for (item of menu(); track $index; let i = $index)\n {\n <li \n class=\"menu-item\"\n [class.c-primary-500]=\"this.selectedParentOption()?.value === item?.value\"\n (mouseenter)=\"hoveredIndex = i\"\n (mouseleave)=\"hoveredIndex = null\"\n (click)=\"this.selectParentItem($event, item, item)\">\n {{ item.displayValue }}\n @if (this.selectedParentOption()?.value === item?.value)\n {\n <i class=\"fa-light fa-circle-check c-primary-500 mar-l-a\"></i>\n }\n @if (item?.children?.length && hoveredIndex === i)\n {\n <tc-rev-dropdown-sub-menu\n [items]=\"item.children\"\n [position]=\"subMenuPosition()\"\n [parentOffsetTop]=\"getItemOffsetTop(i)\"\n [selectedOption]=\"this.selectedOption()\"\n (onOptionSelected)=\"this.selectOption($event, item)\">\n </tc-rev-dropdown-sub-menu>\n }\n </li>\n }\n }\n\t</ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostListener, input, model, output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TcRevCheckboxDirective } from '../tc-rev-checkbox/tc-rev-checkbox.directive';\n\nexport interface DropdownMultiOption\n{\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n}\n\nexport enum DropdownMultiSize\n{\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n@Component({\n selector: 'tc-rev-dropdown-multi',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TcRevCheckboxDirective\n ],\n templateUrl: './tc-rev-dropdown-multi.component.html',\n styleUrl: './tc-rev-dropdown-multi.component.scss'\n})\nexport class TcRevDropdownMultiComponent\n{\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void\n {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target))\n {\n this.isOpen = false;\n }\n }\n\n public label = input<string>(''); // Label que será exibida\n public disabled = input<boolean>(false); // Desabilita o dropdown\n public options = input.required<DropdownMultiOption[]>(); // Lista de opções no novo formato\n public initialValues = input<any[]>([]); // Valores pré-selecionados (deprecated - use values instead)\n public values = model<any[]>([]); // Two-way binding para os valores selecionados\n public size = input<DropdownMultiSize>(DropdownMultiSize.sm);\n public width = input<string>(''); // Largura do dropdown\n public placeholder = input<string>('Selecione'); // Placeholder quando nenhum item estiver selecionado\n public maxDisplayItems = input<number>(2); // Máximo de itens a serem exibidos no botão\n public optionsSelected = output<any[]>(); // Emissor para os valores selecionados\n public selectedOptions = signal<DropdownMultiOption[]>([]); // Opções selecionadas\n public isOpen = false; // Controla se o dropdown está aberto\n public dropdownSize = DropdownMultiSize;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(_simpleChanges: SimpleChanges): void\n {\n // Atualiza as opções selecionadas quando os valores pré-selecionados mudam\n if (_simpleChanges['initialValues'] || _simpleChanges['options'] || _simpleChanges['values'])\n {\n const valuesToUse = this.values().length > 0 ? this.values() : this.initialValues();\n const selected = this.options().filter(option =>\n valuesToUse.includes(option.value)\n );\n this.selectedOptions.set(selected);\n }\n }\n\n ngOnInit(): void\n {\n // Prioriza os valores do model, mas mantém compatibilidade com initialValues\n const valuesToUse = this.values().length > 0 ? this.values() : this.initialValues();\n const selected = this.options().filter(option =>\n valuesToUse.includes(option.value)\n );\n this.selectedOptions.set(selected);\n\n // Se não havia valores no model mas havia initialValues, sincroniza o model\n if (this.values().length === 0 && this.initialValues().length > 0) {\n this.values.set([...this.initialValues()]);\n }\n\n // Escuta mudanças no model e atualiza as opções selecionadas\n this.values.subscribe((newValues) => {\n const newSelected = this.options().filter(option =>\n newValues.includes(option.value)\n );\n\n // Só atualiza se realmente mudou para evitar loops\n const currentSelectedValues = this.selectedOptions().map(opt => opt.value);\n const newSelectedValues = newSelected.map(opt => opt.value);\n\n if (JSON.stringify(currentSelectedValues.sort()) !== JSON.stringify(newSelectedValues.sort())) {\n this.selectedOptions.set(newSelected);\n }\n });\n }\n\n public toggleDropdown(): void\n {\n if (!this.disabled())\n {\n this.isOpen = !this.isOpen;\n }\n }\n\n public toggleOption(option: DropdownMultiOption, event: Event): void\n {\n event.stopPropagation();\n\n if (option.disabled) return;\n\n const currentSelected = this.selectedOptions();\n const isSelected = currentSelected.some(selected => selected.value === option.value);\n\n let newSelected: DropdownMultiOption[];\n\n if (isSelected)\n {\n // Remove a opção se já estiver selecionada\n newSelected = currentSelected.filter(selected => selected.value !== option.value);\n }\n else\n {\n // Adiciona a opção se não estiver selecionada\n newSelected = [...currentSelected, option];\n }\n\n const newValues = newSelected.map(opt => opt.value);\n this.selectedOptions.set(newSelected);\n this.values.set(newValues); // Atualiza o model com two-way binding\n this.optionsSelected.emit(newValues); // Emite os valores para compatibilidade\n }\n\n public isOptionSelected(option: DropdownMultiOption): boolean\n {\n return this.selectedOptions().some(selected => selected.value === option.value);\n }\n\n public getDisplayText(): string\n {\n const selected = this.selectedOptions();\n\n if (selected.length === 0)\n {\n return this.placeholder();\n }\n\n // Se todos os itens (não desabilitados) estão selecionados, mostra \"Todos\"\n if (this.isAllSelected())\n {\n return 'Todos';\n }\n\n const maxDisplay = this.maxDisplayItems();\n\n if (selected.length <= maxDisplay)\n {\n return selected.map(opt => opt.displayValue).join(', ');\n }\n\n const firstItems = selected.slice(0, maxDisplay).map(opt => opt.displayValue).join(', ');\n const remaining = selected.length - maxDisplay;\n\n return `${firstItems} (+${remaining})`;\n }\n\n public clearAll(): void\n {\n this.selectedOptions.set([]);\n this.values.set([]); // Atualiza o model com two-way binding\n this.optionsSelected.emit([]);\n }\n\n public selectAll(): void\n {\n const enabledOptions = this.options().filter(option => !option.disabled);\n const allValues = enabledOptions.map(opt => opt.value);\n this.selectedOptions.set(enabledOptions);\n this.values.set(allValues); // Atualiza o model com two-way binding\n this.optionsSelected.emit(allValues);\n }\n\n public isAllSelected(): boolean\n {\n const enabledOptions = this.options().filter(option => !option.disabled);\n const selectedOptions = this.selectedOptions();\n\n if (enabledOptions.length === 0) return false;\n\n return enabledOptions.every(option =>\n selectedOptions.some(selected => selected.value === option.value)\n );\n }\n\n public isSomeSelected(): boolean\n {\n const enabledOptions = this.options().filter(option => !option.disabled);\n const selectedOptions = this.selectedOptions();\n\n if (enabledOptions.length === 0 || selectedOptions.length === 0) return false;\n\n const selectedCount = enabledOptions.filter(option =>\n selectedOptions.some(selected => selected.value === option.value)\n ).length;\n\n return selectedCount > 0 && selectedCount < enabledOptions.length;\n }\n\n public toggleSelectAll(event: Event): void\n {\n event.stopPropagation();\n\n if (this.isAllSelected())\n {\n this.clearAll();\n }\n else\n {\n this.selectAll();\n }\n }\n}\n","<div\n class=\"tc-rev-dropdown-multi\"\n [class.disabled]=\"disabled()\">\n <button\n class=\"tc-rev-dropdown-multi-toggle\"\n [class.tc-rev-dropdown-multi-toggle--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-dropdown-multi-toggle--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-dropdown-multi-toggle--lg]=\"this.size() === dropdownSize.lg\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"isOpen\"\n [style.width]=\"this.width()\">\n @if (label())\n {\n <b>{{label()}}</b>\n }\n <span class=\"selected-text\">{{ getDisplayText() }}</span>\n <i class=\"fa-light fa-chevron-down\"></i>\n </button>\n\n <div\n *ngIf=\"isOpen\"\n class=\"tc-rev-dropdown-multi-menu\"\n [style.width]=\"this.width()\">\n\n <!-- Checkbox Selecionar/Limpar Todos -->\n <div class=\"tc-rev-dropdown-multi-actions\">\n <label\n class=\"tc-rev-dropdown-multi-select-all-label\"\n [class.selected]=\"isAllSelected()\">\n <input\n type=\"checkbox\"\n tcRevCheckbox\n [disabled]=\"disabled()\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (change)=\"toggleSelectAll($event)\">\n <span class=\"tc-rev-dropdown-multi-select-all-text\">Todos</span>\n </label>\n </div>\n\n <ul class=\"tc-rev-dropdown-multi-options\">\n @for (option of options(); track option?.value)\n {\n <li class=\"tc-rev-dropdown-multi-menu-item\">\n <label\n class=\"tc-rev-dropdown-multi-menu-item-label\"\n [class.disabled]=\"option?.disabled\"\n [class.selected]=\"isOptionSelected(option)\">\n <input\n type=\"checkbox\"\n tcRevCheckbox\n [checked]=\"isOptionSelected(option)\"\n [disabled]=\"option?.disabled\"\n (change)=\"toggleOption(option, $event)\">\n\n <span class=\"tc-rev-dropdown-multi-text\">\n {{ option?.displayValue }}\n </span>\n </label>\n </li>\n }\n </ul>\n </div>\n</div>\n","/**\n * Verifica se um elemento de texto está elipsado (texto cortado com ...)\n * @param element - O elemento HTML que contém o texto\n * @returns true se o texto estiver elipsado, false caso contrário\n */\nfunction isElementTextEllipsed(element: HTMLElement): boolean {\n if (!element) return false;\n\n // Verifica se o scrollWidth é maior que o clientWidth\n // Isso indica que o texto está sendo cortado\n return element.scrollWidth > element.clientWidth;\n}\n\n/**\n * Verifica se um texto específico estaria elipsado baseado no texto fornecido\n * @param text - O texto a ser verificado\n * @param containerWidth - Largura do container (opcional, usa o padrão se não informado)\n * @returns true se o texto seria elipsado\n */\nexport function isTextEllipsed(text: string, containerWidth?: number): boolean {\n if (!text) return false;\n\n // Cria um elemento temporário para medir o texto\n const tempElement = document.createElement('span');\n tempElement.style.visibility = 'hidden';\n tempElement.style.position = 'absolute';\n tempElement.style.whiteSpace = 'nowrap';\n tempElement.style.fontSize = '1rem'; // f-md\n tempElement.style.fontWeight = '500'; // f-weight-500\n tempElement.style.fontFamily = getComputedStyle(document.body).fontFamily;\n tempElement.textContent = text;\n\n document.body.appendChild(tempElement);\n\n const textWidth = tempElement.scrollWidth;\n // Calcula a largura máxima disponível: largura do container menos espaço do botão e margins\n const maxWidth = containerWidth || 150; // ~150px considerando o botão de 24px + margens\n\n document.body.removeChild(tempElement);\n\n return textWidth > maxWidth;\n}\n\n// export class EllipsedTextHelper\n// {\n// public static isEllipsed(id: string): boolean\n// {\n// const element = document.querySelector<any>(`#${id}`);\n// return element ? (element.offsetWidth < element.scrollWidth) : false;\n// }\n\n// /**\n// *\n// * @param _textField - Stands for the text you want to compare\n// * @param _fontProperties - Text CSS properties (font-size & font-family)\n// * @param _divId - divId you want to compare\n// * @param _isEllipsed - is it Ellipsed? (optional)\n// */\n// public static calculate( _textField: string, _fontProperties: string, _divId: string, _isEllipsed: boolean = false, _whiteSpaceNoWrap = true): boolean\n// {\n// if (_isEllipsed)\n// {\n// return true;\n// }\n\n// const textDiv = document.getElementById(_divId);\n// if (textDiv)\n// {\n// const widthText = this.textWidthCalc(_textField, _fontProperties, _whiteSpaceNoWrap);\n// return widthText > textDiv.clientWidth;\n// }\n\n// return false\n// }\n\n// public static textWidthCalc(_text: string, _fontProperties: string, _whiteSpaceNoWrap: boolean): number\n// {\n// let tag = document.createElement('div');\n// tag.style.position = 'absolute';\n// tag.style.left = '-99in';\n// tag.style.font = _fontProperties;\n// tag.innerHTML = _text;\n\n// if (_whiteSpaceNoWrap)\n// {\n// tag.style.whiteSpace = 'nowrap';\n// }\n\n// document.body.appendChild(tag);\n// const result = tag.clientWidth;\n// document.body.removeChild(tag);\n// return result;\n// }\n// }\n","import { Directive, ElementRef, HostListener, input, Renderer2, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[tcRevTooltip]',\n standalone: true\n})\nexport class TcRevTooltipDirective {\n public tcRevTooltip = input<string>('');\n public position = input<'top' | 'bottom' | 'left' | 'right'>('top');\n\n private tooltipElement: HTMLElement | null = null;\n\n constructor(\n private _el: ElementRef,\n private _renderer: Renderer2,\n private _vcr: ViewContainerRef\n ) {}\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n const tooltipText = this.tcRevTooltip();\n\n if (this.isValidTooltipText(tooltipText)) {\n this.showTooltip(tooltipText);\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.hideTooltip();\n }\n\n private isValidTooltipText(text: string): boolean {\n return text && text.trim().length > 0;\n }\n\n private showTooltip(text: string): void {\n if (this.tooltipElement) {\n this.hideTooltip();\n }\n\n // Create tooltip element\n this.tooltipElement = this._renderer.createElement('div');\n\n // Add text content\n const textNode = this._renderer.createText(text);\n this._renderer.appendChild(this.tooltipElement, textNode);\n\n // Add CSS classes\n this._renderer.addClass(this.tooltipElement, 'tc-rev-tooltip');\n this._renderer.addClass(this.tooltipElement, `tc-rev-tooltip--${this.position()}`);\n\n // Set initial styles\n this._renderer.setStyle(this.tooltipElement, 'position', 'absolute');\n this._renderer.setStyle(this.tooltipElement, 'z-index', '9999');\n this._renderer.setStyle(this.tooltipElement, 'visibility', 'hidden');\n // this._renderer.setStyle(this.tooltipElement, 'opacity', '0');\n\n // Append to body\n this._renderer.appendChild(document.body, this.tooltipElement);\n\n // Position tooltip\n this.positionTooltip();\n\n // Show tooltip with animation\n this._renderer.setStyle(this.tooltipElement, 'visibility', 'visible');\n this._renderer.addClass(this.tooltipElement, 'tc-rev-tooltip--visible');\n }\n\n private hideTooltip(): void {\n if (this.tooltipElement) {\n this._renderer.removeChild(document.body, this.tooltipElement);\n this.tooltipElement = null;\n }\n }\n\n private positionTooltip(): void {\n if (!this.tooltipElement) return;\n\n const hostRect = this._el.nativeElement.getBoundingClientRect();\n const tooltipRect = this.tooltipElement.getBoundingClientRect();\n const position = this.position();\n\n let top = 0;\n let left = 0;\n\n switch (position) {\n case 'top':\n top = hostRect.top + window.scrollY - tooltipRect.height - 8;\n left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'bottom':\n top = hostRect.bottom + window.scrollY + 8;\n left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'left':\n top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.left + window.scrollX - tooltipRect.width - 8;\n break;\n case 'right':\n top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.right + window.scrollX + 8;\n break;\n }\n\n this._renderer.setStyle(this.tooltipElement, 'top', `${top}px`);\n this._renderer.setStyle(this.tooltipElement, 'left', `${left}px`);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { isTextEllipsed } from '../../util/ellipsed-text';\nimport { TcRevTooltipDirective } from '../tc-rev-tooltip/tc-rev-tooltip.directive';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\nimport { TcRevIconButtonDirective } from '../tc-rev-icon-button/tc-rev-icon-button.directive';\nimport { TcRevButtonDirective } from '../tc-rev-button/tc-rev-button.directive';\n\nexport interface DropdownOption {\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n}\n\nexport enum DropdownSize {\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n@Component({\n selector: 'tc-rev-dropdown',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TcRevTooltipDirective,\n TcRevIconButtonDirective\n ],\n templateUrl: './tc-rev-dropdown.component.html',\n styleUrl: './tc-rev-dropdown.component.scss',\n})\nexport class TcRevDropdownComponent {\n @ViewChild('menuTemplate') menuTemplate!: TemplateRef<any>;\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target)) {\n this.isOpen = false;\n }\n }\n\n public _deviceService = inject(TCloudUiDeviceUtilsService);\n\n public label = input<string>(''); // Label que será exibida\n public disabled = input<boolean>(false); // Desabilita o dropdown\n public options = input.required<DropdownOption[]>(); // Lista de opções no novo formato\n public initialValue = input<any>(null); // Valor pré-selecionado (deprecated - use value instead)\n public value = model<any>(null); // Two-way binding para o valor selecionado\n public size = input<DropdownSize>(DropdownSize.sm);\n public width = input<string>(''); // Largura específica do dropdown (ex: '300px', '50%'). Se não informado, ocupa 100% do pai\n public optionSelected = output<any>(); // Emissor para o valor selecionado\n public selectedOption = signal<DropdownOption | null>(null); // Opção selecionada\n public isOpen = false; // Controla se o dropdown está aberto\n public dropdownSize = DropdownSize;\n public isDesktop = this._deviceService.isDesktop;\n public isMobile = this._deviceService.isMobile;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(_simpleChanges: SimpleChanges): void {\n // Atualiza a opção selecionada quando o valor pré-selecionado muda\n if (\n _simpleChanges['initialValue'] ||\n _simpleChanges['options'] ||\n _simpleChanges['value']\n ) {\n const valueToUse = this.value() || this.initialValue();\n this.selectedOption.set(\n this.options().find((option) => option.value === valueToUse) || null\n );\n }\n }\n\n ngOnInit(): void {\n // Prioriza o valor do model, mas mantém compatibilidade com initialValue\n const valueToUse = this.value() || this.initialValue();\n const foundOption =\n this.options().find((option) => option.value === valueToUse) || null;\n this.selectedOption.set(foundOption);\n\n // Se não havia valor no model mas havia initialValue, sincroniza o model\n if (!this.value() && this.initialValue() && foundOption) {\n this.value.set(foundOption.value);\n }\n\n // Escuta mudanças no model e atualiza a opção selecionada\n this.value.subscribe((newValue) => {\n const option =\n this.options().find((opt) => opt.value === newValue) || null;\n if (this.selectedOption() !== option) {\n this.selectedOption.set(option);\n }\n });\n }\n\n public toggleDropdown(): void {\n // Abertura do dropdown para mobile\n if (this.isMobile()) {\n this._deviceService.openDropdownDevice(this.menuTemplate);\n return;\n }\n this.isOpen = !this.isOpen;\n }\n\n public selectOption(option: DropdownOption): void {\n this.selectedOption.set(option);\n this.value.set(option.value); // Atualiza o model com two-way binding\n this.optionSelected.emit(option); // Emite a opção selecionada para compatibilidade\n // Fechamento dd dropdown para mobile\n if (this.isMobile()) {\n this._deviceService.closeDropdownDevice();\n return;\n }\n this.isOpen = false; // Fecha o dropdown\n }\n\n /**\n * Verifica se o texto de uma opção na lista está elipsado\n * @param text - Texto a ser verificado\n * @returns true se o texto estiver elipsado\n */\n public isOptionEllipsed(text: string): boolean {\n if (!text) return false;\n\n // Calcula a largura disponível para o texto nas opções da lista\n const menuElement = this.elementRef.nativeElement.querySelector(\n '.tc-rev-dropdown-menu'\n );\n if (!menuElement) {\n // Se o menu não está aberto, usa a largura do dropdown\n const dropdownElement =\n this.elementRef.nativeElement.querySelector('.tc-rev-dropdown');\n if (!dropdownElement) return false;\n\n const dropdownWidth = dropdownElement.clientWidth;\n const padding = 16; // 8px de cada lado do botão\n const iconSpace = 24; // Espaço do ícone de check quando selecionado\n const availableWidth = Math.max(50, dropdownWidth - padding - iconSpace);\n\n return isTextEllipsed(text, availableWidth);\n }\n\n // Largura do menu menos padding do item (16px total) e espaço do ícone de check (24px)\n const menuWidth = menuElement.clientWidth;\n const padding = 16; // 8px de cada lado do botão do item\n const iconSpace = 24; // Espaço do ícone de check quando selecionado\n const availableWidth = Math.max(50, menuWidth - padding - iconSpace);\n\n return isTextEllipsed(text, availableWidth);\n }\n\n}\n","<div\n class=\"tc-rev-dropdown\"\n [class.disabled]=\"disabled()\"\n [style.width]=\"this.width()\"\n>\n <button\n class=\"tc-rev-dropdown-toggle\"\n [class.tc-rev-dropdown-toggle--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-dropdown-toggle--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-dropdown-toggle--lg]=\"this.size() === dropdownSize.lg\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n [disabled]=\"disabled()\"\n >\n @if (label()) {\n <b>{{ label() }}</b>\n }\n <span class=\"tc-rev-dropdown-selected-text\">\n {{ selectedOption() ? selectedOption()?.displayValue : \"Selecione\" }}\n </span>\n <i class=\"fa-light fa-chevron-down mar-l-a\"></i>\n </button>\n <ul *ngIf=\"isOpen && isDesktop()\" class=\"tc-rev-dropdown-menu\">\n @for (option of options(); track option?.value) {\n <li class=\"tc-rev-dropdown-menu-item\" (click)=\"selectOption(option)\">\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n <span\n class=\"tc-rev-dropdown-option-text\"\n [class.ellipsed]=\"isOptionEllipsed(option.displayValue)\"\n [tcRevTooltip]=\"\n isOptionEllipsed(option.displayValue) ? option.displayValue : ''\n \"\n position=\"top\"\n >\n {{ option?.displayValue }}\n </span>\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check\"></i>\n }\n </button>\n </li>\n }\n </ul>\n\n <!-- Dropdown full screen -->\n <ng-template #menuTemplate>\n <div class=\"tc-rev-dropdown-menu tc-rev-dropdown-menu--device\">\n <div class=\"tc-rev-dropdown-menu-section\">\n <div class=\"tc-rev-dropdown-menu-header pad-b-24\">\n <h3 class=\"mar-none f-h2 f-weight-600 c-neutral-600\">\n {{ label() }}\n </h3>\n <button\n tcRevIconButton=\"outline\"\n color=\"dark\"\n size=\"sm\"\n (click)=\"_deviceService.closeDropdownDevice()\"\n >\n <i class=\"fa-light fa-times f-size-16\"></i>\n </button>\n </div>\n <ul class=\"tc-rev-dropdown-menu-container mar-t-8\">\n @for (option of options(); track option?.value) {\n <li class=\"tc-rev-dropdown-menu-item\" (click)=\"selectOption(option)\">\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n {{ option?.displayValue }}\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check f-size-16\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </div>\n </ng-template>\n</div>\n","\nexport type BarChartData = {\n xAxisName: string;\n xAxisLabels: string[] | number[];\n seriesData: {\n serieName: string;\n values: any[];\n }[];\n tooltipFormatter?: Function;\n yAxisLabelFormatter?: Function;\n xAxisLabelFormatter?: (value: any) => string;\n}\n\n/**\n *\n * @param echarts echars instance\n * @param chartData chart info to build the config\n * @returns a bar chart config for echarts with the given data\n */\nexport function echartBarConfig(echarts: any, chartData: BarChartData): any {\n const { xAxisName, xAxisLabels, seriesData, tooltipFormatter, yAxisLabelFormatter, xAxisLabelFormatter } = chartData;\n\n return {\n grid: {\n left: '6.5%',\n top: 48,\n right: '2%',\n bottom: 56\n },\n tooltip: {\n trigger: 'axis',\n backgroundColor: '#131313',\n formatter: tooltipFormatter,\n textStyle: {\n color: '#f3f3f3',\n fontSize: 12,\n fontFamily: 'Nunito Sans'\n }\n },\n xAxis: {\n type: 'category',\n axisLabel: {\n color: '#131313',\n fontSize: 14,\n fontFamily: 'Nunito Sans',\n margin: 16,\n formatter: xAxisLabelFormatter,\n },\n axisLine: {\n show: true,\n lineStyle: {\n color: '#BAC0C6'\n }\n },\n axisTick: {\n show: false\n },\n data: xAxisLabels,\n name: xAxisName,\n nameLocation: 'start',\n nameTextStyle: {\n align: 'left',\n color: '#131313',\n fontFamily: 'Nunito Sans',\n fontSize: 14,\n fontWeight: 700,\n padding: [0, 0, -46, -36]\n }\n },\n yAxis: {\n type: 'value',\n axisLine: {\n show: false\n },\n axisTick: {\n show: false\n },\n axisLabel: {\n formatter: yAxisLabelFormatter,\n align: 'left',\n color: '#131313',\n fontSize: 14,\n fontFamily: 'Nunito Sans',\n inside: false,\n padding: [-40, 0, 0, -40]\n }\n },\n series: seriesData.map((serie) => ({\n name: serie.serieName,\n type: 'bar',\n data: serie.values,\n itemStyle: {\n barBorderRadius: [8, 8, 8, 8],\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: '#0897E9' },\n { offset: 1, color: '#75D8FF' }\n ])\n }\n }))\n };\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-empty-content',\n imports: [],\n templateUrl: './tc-rev-empty-content.component.html',\n styleUrl: './tc-rev-empty-content.component.scss'\n})\nexport class TcRevEmptyContentComponent\n{\n\n}\n","<div class=\"tc-rev-empty-content f-family f-sm c-neutral-700 pad-x-16 pad-y-16 bg-c-neutral-200 bor-rad-8\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, signal } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-faq',\n imports: [CommonModule],\n templateUrl: './tc-rev-faq.component.html',\n styleUrl: './tc-rev-faq.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TcRevFaqComponent {\n @Input() title: string = 'Dúvidas frequentes';\n @Input() questions: { question: string; answer: string }[] = [];\n openIndex = signal<number | null>(null);\n\n toggle(index: number) {\n if (this.openIndex() === index) {\n this.openIndex.set(null);\n } else {\n this.openIndex.set(index);\n }\n }\n}\n","<div class=\"tc-rev-faq\">\n <div class=\"tc-rev-faq-list\">\n <div\n class=\"tc-rev-faq-item f-family c-neutral-700 f-size-16\"\n [class.open]=\"openIndex() === i\"\n *ngFor=\"let q of questions; let i = index\"\n (click)=\"toggle(i)\"\n >\n <div class=\"tc-rev-faq-question\">\n <p>{{ q.question }}</p>\n <i class=\"fa-light fa-angle-down arrow\" [class.open]=\"openIndex() === i\"></i>\n </div>\n\n <div\n class=\"tc-rev-faq-answer\"\n >\n <p>{{ q.answer }}</p>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-input-container',\n imports: [CommonModule],\n templateUrl: './tc-rev-input-container.component.html',\n styleUrl: './tc-rev-input-container.component.scss',\n})\nexport class TcRevInputContainerComponent {\n public fullWidth = input<boolean>(false);\n public inputId = input<string>('');\n public label = input<string>('');\n public labelPosition = input<'top' | 'right' | 'bottom' | 'left'>('top');\n public required = input<boolean>(false);\n}\n","<div\n class=\"{{ 'tc-rev-input-container ' + 'label-' + this.labelPosition() }}\"\n [class.full-width]=\"this.fullWidth()\">\n @if (this.label()) {\n @if (this.inputId()) {\n <label\n class=\"tc-rev-input-label cursor-pointer\" [for]=\"this.inputId()\">\n {{this.label()}}\n @if (this.required()) {\n <ng-container *ngTemplateOutlet=\"required\" />\n }\n </label>\n }\n @else {\n <label\n class=\"tc-rev-input-label\">\n {{this.label()}}\n @if (this.required()) {\n <ng-container *ngTemplateOutlet=\"required\" />\n }\n </label>\n }\n }\n <ng-content />\n</div>\n\n\n<ng-template #required>\n <span class=\"c-danger-500\">*</span>\n</ng-template>\n","import { Directive, effect, ElementRef, input } from '@angular/core';\n\n@Directive({\n selector: 'input[tcRevInput], select[tcRevInput]',\n host: {\n class: 'tc-rev-input-control'\n }\n})\nexport class TcRevInputDirective {\n public fullWidth = input<boolean>(false);\n\n constructor(private _el: ElementRef<HTMLInputElement>) {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses(): void {\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-input-control--full-width') : null;\n }\n}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-loading',\n imports: [],\n templateUrl: './tc-rev-loading.component.html',\n styleUrl: './tc-rev-loading.component.scss'\n})\nexport class TcRevLoadingComponent {\n public message = input<string>('Carregando');\n}\n","<div class=\"tc-rev-loading-overlay\">\n <div class=\"tc-rev-loading-container\">\n <span\n class=\"tc-rev-loading-spinner\">\n </span>\n <p class=\"tc-rev-loading-message\">{{message()}}...</p>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tc-rev-message',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './tc-rev-message.component.html',\n styleUrl: './tc-rev-message.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TcRevMessageComponent { \n @Input() message: string = '';\n @Input() type: 'success' | 'error' | 'info' | 'warning' = 'info';\n}\n","<div class=\"message\" [ngClass]=\"type\" *ngIf=\"message\">\n <i class=\"icon fas\" [ngClass]=\"{\n 'fa-check': type === 'success',\n 'fa-times': type === 'error',\n 'fa-info-circle': type === 'info',\n 'fa-exclamation-triangle': type === 'warning'\n }\"></i>\n <i class=\"text\">{{ message }}</i>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, ElementRef, Input, input, model, output, signal, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { isTextEllipsed } from '../../util/ellipsed-text';\nimport { TcRevTooltipDirective } from \"../tc-rev-tooltip/tc-rev-tooltip.directive\";\n\n@Component({\n selector: 'tc-rev-multi-input',\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TcRevTooltipDirective\n],\n templateUrl: './tc-rev-multi-input.component.html',\n styleUrl: './tc-rev-multi-input.component.scss'\n})\nexport class TcRevMultiInputComponent {\n @Input() autoFocus: boolean = false;\n public initialValue = input<string>('');\n public description = input<string>('');\n public initialList = input<any[]>([]); // Deprecated - use items instead\n public items = model<string[]>([]); // Two-way binding para a lista de itens\n public validators = input<any[]>([]);\n public disabled = input<boolean>(false);\n public itemsList = signal<string[]>([]);\n public onChangeList = output<string[]>();\n public multiInputForm: FormGroup;\n\n @ViewChild('multiInputRef ') multiInputRef!: ElementRef<HTMLInputElement>;\n\n constructor() {\n effect(() => {\n this.disabled() ? this.multiInputForm?.get('multiInput')?.disable() : this.multiInputForm?.get('multiInput')?.enable();\n });\n }\n\n ngOnInit(): void\n {\n this.multiInputForm = new FormGroup({\n multiInput: new FormControl('', [Validators.required, ...this.validators()])\n });\n\n // Prioriza os itens do model, mas mantém compatibilidade com initialList\n const itemsToUse = this.items().length > 0 ? this.items() : this.initialList();\n if (itemsToUse?.length)\n {\n this.itemsList.set([...itemsToUse]);\n }\n\n // Se não havia itens no model mas havia initialList, sincroniza o model\n if (this.items().length === 0 && this.initialList().length > 0) {\n this.items.set([...this.initialList()]);\n }\n\n // Escuta mudanças no model e atualiza a lista interna\n this.items.subscribe((newItems) => {\n // Só atualiza se realmente mudou para evitar loops\n const currentItems = this.itemsList();\n if (JSON.stringify(currentItems) !== JSON.stringify(newItems)) {\n this.itemsList.set([...newItems]);\n }\n });\n\n setTimeout(() => {\n if( this.initialValue() !== '' ){\n this.autoFocus = true;\n this.multiInputForm.get('multiInput')?.setValue(this.initialValue());\n }\n });\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if( this.autoFocus ){\n this.multiInputRef?.nativeElement?.focus();\n }\n }, 0);\n }\n public isEllipsed(text: string): boolean\n {\n return isTextEllipsed(text);\n }\n\n public addItem(): void\n {\n const newItem = this.multiInputForm.get('multiInput')!.value;\n this.itemsList.update((currentItems) => {\n const updatedItems = currentItems.includes(newItem)\n ? currentItems\n : [...currentItems, newItem];\n\n // Atualiza o model com two-way binding\n this.items.set([...updatedItems]);\n this.onChangeList.emit(updatedItems);\n return updatedItems;\n });\n this.multiInputForm.reset();\n }\n\n public removeItem(index: number): void\n {\n this.itemsList.update((currentItems) => {\n const newItems = [...currentItems];\n newItems.splice(index, 1);\n\n // Atualiza o model com two-way binding\n this.items.set([...newItems]);\n this.onChangeList.emit(newItems);\n return newItems;\n });\n }\n}\n","<div class=\"tc-rev-multi-input\">\n\t<div class=\"tc-rev-multi-input__input-container\">\n\t\t<form\n [formGroup]=\"multiInputForm\"\n (ngSubmit)=\"addItem()\">\n\n <input\n #multiInputRef\n type=\"text\"\n class=\"tc-rev-input-control\"\n formControlName=\"multiInput\"\n />\n\n <button\n class=\"tc-rev-btn tc-rev-btn--sm tc-rev-btn--primary-filled add-button\"\n type=\"submit\"\n [disabled]=\"multiInputForm.invalid || disabled()\">\n\t\t\t\tAdicionar\n\t\t\t</button>\n\t\t</form>\n\t</div>\n\n\t@if (description()) {\n <span class=\"description f-sm c-neutral-700 mar-t-4 mar-b-16 d-block\">\n {{ description() }}\n </span>\n\t}\n\n @if (itemsList().length > 0) {\n <div class=\"tc-rev-multi-input__added-list\">\n @for (item of itemsList(); track item; let i = $index) {\n <div class=\"list-item h-28 pad-x-8 f-md f-weight-500 bor-rad-4 bg-c-neutral-100\">\n <span\n class=\"c-primary-500 mar-r-4 list-item__text\"\n [tcRevTooltip]=\"isEllipsed(item) ? item : ''\"\n position=\"top\">{{ item }}</span>\n\n <button class=\"h-24 w-24 d-inline-block cursor-pointer bg-c-transparent c-neutral-700 bor-none\" (click)=\"removeItem(i)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tc-rev-pagination',\n imports: [CommonModule],\n templateUrl: './tc-rev-pagination.component.html',\n styleUrl: './tc-rev-pagination.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class TcRevPaginationComponent {\n\t@Input() currentPage = 1;\n\t@Input() totalPages = 1;\n\n\t@Output() pageChange = new EventEmitter<number>();\n\tpageInputError = false;\n\n\tprevious(): void {\n\t\tif (this.currentPage > 1) {\n\t\t\tthis.currentPage--;\n\t\t\tthis.pageChange.emit(this.currentPage);\n\t\t}\n\t}\n\n\tnext(): void {\n\t\tif (this.currentPage < this.totalPages) {\n\t\t\tthis.currentPage++;\n\t\t\tthis.pageChange.emit(this.currentPage);\n\t\t}\n\t}\n\n\tgoToPage(event: Event): void {\n\t\tconst input = event.target as HTMLInputElement;\n\t\tconst value = input.value;\n\t\t\n\t\tlet pageNumber = parseInt(value.replace(/^0+/, ''), 10);\n\t\t\n\t\tif (isNaN(pageNumber) || pageNumber < 1 || pageNumber > this.totalPages) {\n\t\t\tthis.pageInputError = true;\n\t\t\n\t\t\tif (isNaN(pageNumber) || pageNumber < 1) {\n\t\t\t\tpageNumber = 1;\n\t\t\t} else if (pageNumber > this.totalPages) {\n\t\t\t\tpageNumber = this.totalPages;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.pageInputError = false;\n\t\t}\n\t\t\n\t\tinput.value = this.formatPage(pageNumber);\n\t\n\t\tif (pageNumber !== this.currentPage) {\n\t\t\tthis.currentPage = pageNumber;\n\t\t\tthis.pageChange.emit(this.currentPage);\n\t\t}\n\t}\n\n\tformatPage(page: number): string {\n\t\treturn page < 10 ? `0${page}` : `${page}`;\n\t}\n}\n","<div class=\"pagination-container\">\n\t<button class=\"arrow\" [disabled]=\"currentPage === 1\" (click)=\"previous()\"><i class=\"fas fa-angle-left\"></i></button>\n\n\t<span class=\"label f-family f-weight-600 f-size-14 c-neutral-700\">Página</span>\n\n\t<div class=\"page-input-container\">\n\t\t<input\n\t\t\ttype=\"text\"\n\t\t\tclass=\"page-input\"\n\t\t\t[ngClass]=\"{'error': pageInputError}\"\n\t\t\t[value]=\"formatPage(currentPage)\"\n\t\t\t(keyup.enter)=\"goToPage($event)\"\n\t\t\t(blur)=\"goToPage($event)\"\n\t\t/>\n\t</div>\n\n\t<span class=\"label f-family f-weight-600 f-size-14 c-neutral-700\">de {{ totalPages }}</span>\n\n\t<button class=\"arrow\" [disabled]=\"currentPage === totalPages\" (click)=\"next()\"><i class=\"fas fa-angle-right\"></i></button>\n</div>\n","import { Component, effect, input } from '@angular/core';\n\nexport type ProgressStatusConfig = {\n start: number;\n end: number;\n gradientStatus: ProgressStatusBarGradientStatus;\n}\n\nexport enum ProgressStatusBarGradientStatus {\n info = 'info',\n danger = 'danger',\n success = 'success',\n alert = 'alert',\n}\n\nenum ProgressStatusBarRangeColor {\n dangerStart = '#F48E85',\n dangerEnd = '#DC3545',\n alertStart = '#FECD6E',\n alertEnd = '#FEAC0E',\n infoStart = '#6BC1F2',\n infoEnd = '#0897E9',\n successStart = '#A3E78C',\n successEnd = '#47B13D',\n}\n\n@Component({\n selector: 'tc-rev-progress-status-bar',\n imports: [],\n templateUrl: './tc-rev-progress-status-bar.component.html',\n styleUrl: './tc-rev-progress-status-bar.component.scss',\n})\nexport class TcRevProgressStatusBarComponent {\n public currentValue = input.required<number>();\n public progressStatusConfig = input.required<ProgressStatusConfig[]>();\n public backgroundStyle: string = '';\n \n constructor() {\n effect(() => {\n this.backgroundStyle = this.getBackgroundStyle();\n });\n }\n\n private getBackgroundStyle(): string {\n if (!this.currentValue()) return '';\n \n let currentStatusConfig = this.progressStatusConfig().find((x) => (\n this.currentValue() >= x.start && this.currentValue() <= x.end\n ));\n\n const lastStatusConfig = this.progressStatusConfig()[this.progressStatusConfig()?.length - 1];\n\n if (!currentStatusConfig && this.currentValue() < lastStatusConfig.end) return '';\n\n if (!currentStatusConfig && this.currentValue() > lastStatusConfig.end) {\n currentStatusConfig = { start: 0, end: 100, gradientStatus: lastStatusConfig.gradientStatus };\n }\n \n const startStatus = this.getProgressStatusBarRangeColor(currentStatusConfig!.gradientStatus, 'start');\n const endStatus = this.getProgressStatusBarRangeColor(currentStatusConfig!.gradientStatus, 'end');\n \n let style = `width:${this.currentValue()}%;backgroundImage:linear-gradient(90deg`;\n style += `,${startStatus} 0%,${endStatus} 100%);`\n\n return style;\n }\n\n private getProgressStatusBarRangeColor(_gradientStatus: ProgressStatusBarGradientStatus, position: 'start' | 'end'): ProgressStatusBarRangeColor {\n switch (_gradientStatus) {\n case ProgressStatusBarGradientStatus.alert:\n return position === 'start' ? ProgressStatusBarRangeColor.alertStart : ProgressStatusBarRangeColor.alertEnd;\n case ProgressStatusBarGradientStatus.danger:\n return position === 'start' ? ProgressStatusBarRangeColor.dangerStart : ProgressStatusBarRangeColor.dangerEnd;\n case ProgressStatusBarGradientStatus.success:\n return position === 'start' ? ProgressStatusBarRangeColor.successStart : ProgressStatusBarRangeColor.successEnd;\n default:\n return position === 'start' ? ProgressStatusBarRangeColor.infoStart : ProgressStatusBarRangeColor.infoEnd;\n }\n }\n}\n","<div class=\"progress-status-bar-container\">\n <div\n class=\"progress-status-bar\"\n [style]=\"this.backgroundStyle\">\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'input[type=\"radio\"][tcRevRadio]',\n host: {\n class: 'tc-rev-radio'\n }\n})\nexport class TcRevRadioDirective {\n\n constructor() { }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n Renderer2,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { TcRevIconButtonDirective } from '../tc-rev-icon-button/tc-rev-icon-button.directive';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-side-drawer',\n imports: [CommonModule, TcRevIconButtonDirective],\n templateUrl: './tc-rev-side-drawer.component.html',\n styleUrl: './tc-rev-side-drawer.component.scss',\n animations: [\n trigger('drawerAnimation', [\n transition('void => desktop', [\n style({ transform: 'translateX(100%)', opacity: 0 }),\n animate('250ms', style({ transform: 'translateX(0)', opacity: 1 })),\n ]),\n transition('desktop => void', [\n style({ transform: 'translateX(0)', opacity: 1 }),\n animate('250ms', style({ transform: 'translateX(100%)', opacity: 0 })),\n ]),\n transition('void => mobile', [\n style({ opacity: 0 }),\n animate('200ms ease', style({ opacity: 1 })),\n ]),\n transition('mobile => void', [\n style({ opacity: 1 }),\n animate('200ms ease', style({ opacity: 0 })),\n ]),\n ]),\n\n trigger('backdropAnimation', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('100ms', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('250ms', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class TcRevSideDrawerComponent implements OnDestroy {\n public loading = input<boolean>(false);\n public position = input<'left' | 'right'>('right');\n public title = input.required<string>();\n public xAxis = computed(() =>\n this.position() === 'left' ? `left: 0` : `right: 0`\n );\n public onCloseDrawer = output<void>();\n public isOpen = false;\n public _deviceService = inject(TCloudUiDeviceUtilsService);\n public isDesktop = this._deviceService.isDesktop;\n public isMobile = this._deviceService.isMobile;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.document.body.style.overflowY = 'hidden';\n this.isOpen = true;\n\n // --- mover o host do componente para o <body> apenas em mobile ---\n if (\n this.el &&\n this.el.nativeElement &&\n this.el.nativeElement.parentNode !== this.document.body &&\n this.isMobile()\n ) {\n this.renderer.appendChild(this.document.body, this.el.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.document.body.style.overflowY = '';\n\n // remover o host do body ao destruir apenas em mobile\n if (\n this.el &&\n this.el.nativeElement &&\n this.el.nativeElement.parentNode === this.document.body && \n this.isMobile()\n ) {\n this.renderer.removeChild(this.document.body, this.el.nativeElement);\n }\n }\n\n public handleClickOverlay(): void {\n if (this.loading()) {\n return;\n }\n this.isOpen = false;\n setTimeout(() => this.onCloseDrawer.emit(), 250);\n }\n\n public handleClickContent(_ev: MouseEvent): void {\n _ev.stopPropagation();\n }\n}\n","@if(isDesktop()){\n<div\n [@backdropAnimation]\n class=\"tc-rev-side-drawer-overlay\"\n (click)=\"handleClickOverlay()\">\n</div>\n}\n\n<div\n *ngIf=\"isOpen\"\n [@drawerAnimation]=\"isDesktop() ? 'desktop' : 'mobile'\"\n class=\"tc-rev-side-drawer-content\"\n [style.width]=\"isMobile() ? '100%' : null\"\n (click)=\"handleClickContent($event)\"\n [style]=\"xAxis()\">\n\n <div class=\"tc-rev-side-drawer-content__header\">\n <h2 class=\"mar-none f-h2 f-weight-600\">{{title()}}</h2>\n\n <button\n tcRevIconButton=\"outline\" color=\"dark\"\n [disabled]=\"loading()\"\n (click)=\"handleClickOverlay()\">\n <i class=\"fa-light fa-times\"></i>\n </button>\n </div>\n <ng-content></ng-content>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-skeleton-loading',\n templateUrl: 'tc-rev-skeleton-loading.component.html',\n styleUrls: ['tc-rev-skeleton-loading.component.scss'],\n imports: [CommonModule]\n})\n\nexport class TcRevSkeletonLoadingComponent implements OnInit {\n /** Params of the loading skeleton accepts string with CSS units (px, rem, em) */\n public width = input<string>('10rem');\n public height = input<string>('1.25rem');\n public borderRadius = input<string>('0.3rem');\n\n public style = new TcRevSkeletonLoadingComponentStyle();\n\n ngOnInit(): void\n {\n this.style.width = this.width();\n this.style.height = this.height();\n this.style.borderRadius = this.borderRadius();\n }\n}\n\nexport class TcRevSkeletonLoadingComponentStyle\n{\n width: string;\n height: string;\n borderRadius: string;\n}\n","<div class=\"tc-rev-skeleton-loading\" [ngStyle]=\"this.style\"></div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'input[type=\"checkbox\"][tcRevSlideToggle]',\n host: {\n class: 'tc-rev-slide-toggle'\n }\n})\nexport class TcRevSlideToggleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { Component, input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-small-loading',\n templateUrl: 'tc-rev-small-loading.component.html',\n styleUrls: ['tc-rev-small-loading.component.scss'],\n imports: [CommonModule]\n})\n\nexport class TcRevSmallLoadingComponent implements OnInit {\n /** Width of the loading spinner accepts string with CSS units (px, rem, em) */\n public width = input<string>('1.25rem');\n /** Margin top in pixels */\n public marginTop = input<number>(0);\n /** Margin bottom in pixels */\n public marginBottom = input<number>(0);\n /** Margin right in pixels */\n public marginRight = input<number>(0);\n /** Margin left in pixels */\n public marginLeft = input<number>(0);\n public style = new TcRevSmallLoadingComponentStyle();\n\n ngOnInit(): void\n {\n this.style.marginTop = `${this.marginTop()}px`;\n this.style.marginRight = `${this.marginRight()}px`;\n this.style.marginLeft = `${this.marginLeft()}px`;\n this.style.marginBottom = `${this.marginBottom()}px`;\n this.style.width = this.width();\n this.style.height = this.width();\n }\n}\n\nexport class TcRevSmallLoadingComponentStyle\n{\n marginTop: string;\n marginBottom: string;\n marginRight: string;\n marginLeft: string;\n width: string;\n height: string;\n}\n","<div class=\"tc-rev-small-loading\">\n <span\n class=\"tc-rev-small-loading__spinner\"\n [ngStyle]=\"this.style\">\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostListener, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-tab-group',\n imports: [CommonModule],\n templateUrl: './tc-rev-tab-group.component.html',\n styleUrl: './tc-rev-tab-group.component.scss',\n})\nexport class TcRevTabGroupComponent {\n @HostListener('window:resize')\n onResize(): void {\n this.checkCarouselOverflow();\n }\n @ViewChild('tabGroupCarousel') tabGroupCarousel!: ElementRef<HTMLDivElement>;\n public isCarouselOverflowed = false;\n\n ngOnInit(): void {\n this.checkCarouselOverflow();\n }\n\n private checkCarouselOverflow(): void {\n setTimeout(() => {\n const el = this.tabGroupCarousel?.nativeElement;\n \n this.isCarouselOverflowed = !!el && el.scrollWidth > el.clientWidth;\n });\n }\n\n public scrollTabsCarousel(direction: 'left' | 'right'): void {\n const el = this.tabGroupCarousel?.nativeElement;\n if (!el) return;\n const scrollAmount = 200;\n if (direction === 'left') {\n el.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n } else {\n el.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n }\n }\n\n}\n","<div class=\"tc-rev-tab-group\">\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow left\"\n (click)=\"this.scrollTabsCarousel('left')\"\n aria-label=\"Scroll left\">\n <i class=\"fa-light fa-chevron-left\"></i>\n </button>\n\n <div\n class=\"tc-rev-tab-group-carousel\"\n [class.overflowed]=\"isCarouselOverflowed\"\n #tabGroupCarousel>\n <ng-content></ng-content>\n </div>\n\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow right\"\n (click)=\"this.scrollTabsCarousel('right')\"\n aria-label=\"Scroll right\">\n <i class=\"fa-light fa-chevron-right\"></i>\n </button>\n</div>\n\n<!-- <div class=\"products-carousel-container f-family\">\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow left\"\n (click)=\"scrollProductsCarousel('left')\"\n aria-label=\"Scroll left\">\n <i class=\"fa-light fa-chevron-left\"></i>\n </button>\n\n <div\n #productsCarousel\n class=\"products-carousel\"\n [class.overflowed]=\"isCarouselOverflowed\">\n @for (productName of topologiesData.availableProductsNames(); track productName)\n {\n <button\n class=\"tc-rev-tab-item\"\n [class.active]=\"filter().product === productName\"\n (click)=\"handleChangeTopologiesByProduct(productName)\">\n {{ productName | topologyProduct }}\n </button>\n }\n </div>\n\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow right\"\n (click)=\"scrollProductsCarousel('right')\"\n aria-label=\"Scroll right\">\n <i class=\"fa-light fa-chevron-right\"></i>\n </button>\n</div> -->","import { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tc-rev-tab-item',\n imports: [\n CommonModule,\n RouterModule\n ],\n templateUrl: './tc-rev-tab-item.component.html',\n styleUrls: ['./tc-rev-tab-item.component.scss'],\n})\nexport class TcRevTabItemComponent {\n public onClick = output<MouseEvent>();\n public active = input<boolean>(false);\n public url = input<string>('');\n public disabled = input<boolean>(false);\n public fullWidth = input<boolean>(false);\n}\n","<a\n *ngIf=\"this.url()\"\n class=\"tc-rev-tab-item\"\n [class.disabled]=\"this.disabled()\"\n [class.full-width]=\"this.fullWidth()\"\n [routerLinkActive]=\"'active'\"\n [routerLink]=\"[this.url()]\"\n (click)=\"this.onClick.emit($event)\">\n <ng-container *ngTemplateOutlet=\"content\" />\n</a>\n\n\n<button\n *ngIf=\"!this.url()\"\n class=\"tc-rev-tab-item\"\n [class.active]=\"this.active()\"\n [class.full-width]=\"this.fullWidth()\"\n [disabled]=\"this.disabled()\"\n (click)=\"this.onClick.emit($event)\">\n <ng-container *ngTemplateOutlet=\"content\" />\n</button>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","export enum TagColorsEnum\n{\n 'neutral-50' = 'neutral-50',\n 'neutral-100' = 'neutral-100',\n 'neutral-200' = 'neutral-200',\n 'neutral-300' = 'neutral-300',\n 'neutral-400' = 'neutral-400',\n 'neutral-500' = 'neutral-500',\n 'neutral-600' = 'neutral-600',\n 'neutral-700' = 'neutral-700',\n 'neutral-800' = 'neutral-800',\n 'neutral-900' = 'neutral-900',\n\n // Primary\n 'primary-300' = 'primary-300',\n 'primary-400' = 'primary-400',\n 'primary-500' = 'primary-500',\n 'primary-600' = 'primary-600',\n 'primary-700' = 'primary-700',\n\n // Danger\n\n 'danger-300' = 'danger-300',\n 'danger-400' = 'danger-400',\n 'danger-500' = 'danger-500',\n\n // Alert\n\n 'alert-300' = 'alert-300',\n 'alert-400' = 'alert-400',\n 'alert-500' = 'alert-500',\n\n // Info\n\n 'info-300' = 'info-300',\n 'info-400' = 'info-400',\n 'info-500' = 'info-500',\n\n // Success\n\n 'success-300' = 'success-300',\n 'success-400' = 'success-400',\n 'success-500' = 'success-500',\n}","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\nimport { TagColorsEnum } from './tag-colors.enum';\n\n\n@Component({\n selector: 'tc-rev-tag',\n imports: [\n CommonModule\n ],\n templateUrl: './tc-rev-tag.component.html',\n styleUrl: './tc-rev-tag.component.scss'\n})\nexport class TcRevTagComponent\n{\n public size = input<'md' | 'sm' | 'lg' | 'regular'>('md');\n public color = input<TagColorsEnum | string | undefined>(TagColorsEnum['primary-500']);\n public variant = input<'filled' | 'outline' | ''>('filled');\n public shape = input<'pill' | 'rectangle'>('rectangle');\n public fullWidth = input<boolean>(false);\n}\n","<span\n [class.tc-rev-tag--sm]=\"size() === 'sm'\"\n [class.tc-rev-tag--md]=\"size() === 'md' || size() === 'regular'\"\n [class.tc-rev-tag--lg]=\"size() === 'lg'\"\n [class.tc-rev-tag--pill]=\"shape() === 'pill'\"\n [class.tc-rev-tag--full-width]=\"fullWidth()\"\n class=\"{{!color() && !variant() ? '' : 'tc-rev-tag tc-rev-tag--c-' + color() + '-' + variant()}}\">\n <ng-content></ng-content>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-toast',\n imports: [CommonModule],\n templateUrl: './tc-rev-toast.component.html',\n styleUrl: './tc-rev-toast.component.scss'\n})\n\nexport class TcRevToastComponent {\n public type = input<'info' | 'success' | 'alert' | 'danger'>('info');\n public fullWidth = input<boolean>(false);\n public size = input<'md' | 'sm' | 'lg'>('md');\n // public toastSize = ToastSize;\n}\n","<div class=\"tc-rev-toast c-neutral-700\">\n <div\n class=\"tc-rev-toast__icon\"\n [ngClass]=\"[\n 'tc-rev-toast__icon--' + type(),\n 'tc-rev-toast__icon--' + size()\n ]\"\n >\n <ng-content select=\"[icon]\" />\n </div>\n\n <div\n class=\"tc-rev-toast__content\"\n [ngClass]=\"[\n 'tc-rev-toast__content--' + type(),\n 'tc-rev-toast__content--' + size()\n ]\"\n [class.full-width]=\"fullWidth()\"\n >\n <ng-content />\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, input, output } from '@angular/core';\nimport { Params, RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tc-rev-sub-navbar-item',\n imports: [\n CommonModule,\n RouterModule,\n ],\n templateUrl: './tc-sub-navbar-item.component.html',\n styleUrl: './tc-sub-navbar-item.component.scss'\n})\nexport class TcRevSubNavbarItemComponent\n{\n @Input() isMenuExpanded: boolean;\n public label = input.required<string>();\n public onClick = output<MouseEvent>()\n public active = input<boolean>(false);\n public routerLink = input<string | null>(null);\n public queryParams = input<Params | null>(null);\n\n public handleClick(_ev: MouseEvent): void\n {\n this.onClick.emit(_ev);\n }\n}\n","<li\n class=\"tc-sub-navbar-item\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded\">\n <a\n class=\"tc-sub-navbar-item-link\"\n [class.selected]=\"active()\"\n [routerLink]=\"routerLink()\"\n routerLinkActive=\"active\"\n [queryParams]=\"queryParams()\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"label()\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n\n @if (isMenuExpanded)\n {\n <div class=\"navbar-item-label\">\n {{label()}}\n </div>\n }\n </a>\n</li>\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChildren, output, signal } from '@angular/core';\nimport { TcRevSubNavbarItemComponent } from './component/tc-sub-navbar-item/tc-sub-navbar-item.component';\n\n@Component({\n selector: 'tc-rev-sub-navbar',\n imports: [\n CommonModule,\n TcRevSubNavbarItemComponent,\n ],\n templateUrl: './tc-sub-navbar.component.html',\n styleUrl: './tc-sub-navbar.component.scss'\n})\nexport class TcRevSubNavbarComponent\n{\n @ContentChildren(TcRevSubNavbarItemComponent) subNavbarItems!: TcRevSubNavbarItemComponent[];\n public isMenuExpanded = signal<boolean>(true);\n public onSubMenuExpandChange = output<boolean>();\n\n\n ngAfterContentInit(): void\n {\n setTimeout(() => this.setExpandedMenuValueToChildrend(), 0);\n }\n\n public handleExpandMenu(): void\n {\n this.isMenuExpanded.update((value) => !value);\n this.setExpandedMenuValueToChildrend();\n }\n\n private setExpandedMenuValueToChildrend(): void\n {\n if (!this.subNavbarItems?.length) return;\n this.subNavbarItems.forEach((x) =>\n {\n x.isMenuExpanded = this.isMenuExpanded();\n });\n\n this.onSubMenuExpandChange.emit(this.isMenuExpanded());\n }\n}\n","<nav class=\"tc-sub-navbar\">\n <ul\n class=\"tc-sub-navbar-list\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded()\"\n >\n <tc-rev-sub-navbar-item\n [isMenuExpanded]=\"isMenuExpanded()\"\n (click)=\"handleExpandMenu()\"\n label=\"Minimizar\"\n >\n <i\n class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded()\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded()\"\n icon\n ></i>\n </tc-rev-sub-navbar-item>\n <ng-content></ng-content>\n </ul>\n</nav>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\n\nexport type WizardStep = {\n title: string;\n description?: string;\n completed?: boolean;\n}\n\n@Component({\n selector: 'tc-rev-wizard-steps',\n templateUrl: './tc-rev-wizard-steps.component.html',\n styleUrls: ['./tc-rev-wizard-steps.component.scss'],\n imports: [CommonModule],\n animations: [\n trigger('progressBarEntering', [\n state('in', style({ width: '*' })),\n transition('void => *', [\n style({ width: 0 }),\n animate('1.5s 0s ease')\n ])\n ])\n ]\n})\nexport class TcRevWizardStepsComponent {\n public onStepClick = output<{ step: WizardStep, index: number }>();\n public direction = input<'horizontal' | 'vertical'>('horizontal');\n public currentStep = input<number>(0);\n public stepClickable = input<boolean>(false);\n public steps = input.required<WizardStep[]>();\n\n public handleStepClick(step: WizardStep, isNext: boolean, index: number): void {\n if (this.stepClickable() && !isNext) {\n this.onStepClick.emit({ step, index });\n }\n }\n}\n","<div [class]=\"'tc-rev-wizard-steps' + ` tc-rev-wizard-steps--${this.direction()}`\">\n @for (step of this.steps(); let i = $index; track step.title + i) {\n @let isCompleted = step.completed || i + 1 < this.currentStep();\n @let isNext = i + 1 > this.currentStep();\n <div\n class=\"tc-rev-wizard-step\"\n [class.tc-rev-wizard-step--current]=\"i + 1 === this.currentStep()\"\n [class.tc-rev-wizard-step--completed]=\"isCompleted\"\n [class.tc-rev-wizard-step--next]=\"isNext\">\n\n <span\n class=\"tc-rev-wizard-step__counter f-h3\"\n [class.cursor-default]=\"!this.stepClickable()\"\n [class.cursor-pointer]=\"this.stepClickable() && !isNext\"\n (click)=\"this.handleStepClick(step, isNext, i)\">\n @if (isCompleted) {\n <i class=\"fas fa-check\"></i>\n }\n @else {\n {{ i + 1 }}\n }\n </span>\n\n <div class=\"tc-rev-wizard-step__info\">\n <p class=\"tc-rev-wizard-step__title f-lg mar-none cursor-default\">\n {{ step.title }}\n </p>\n\n @if (step.description) {\n <p class=\"tc-rev-wizard-step__description f-sm mar-none cursor-default\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n }\n</div>\n\n<!-- VERSÃO COM DIVISOR -->\n<!-- <div [class]=\"'tc-rev-wizard-steps' + ` tc-rev-wizard-steps--${this.direction()}`\">\n @for (step of this.steps(); let i = $index; let last = $last; track step.title + i) {\n @let isCompleted = step.completed || i + 1 < this.currentStep();\n\n <div\n class=\"tc-rev-wizard-step\"\n [class.tc-rev-wizard-step--current]=\"i + 1 === this.currentStep()\"\n [class.tc-rev-wizard-step--completed]=\"isCompleted\"\n [class.tc-rev-wizard-step--next]=\"i + 1 > this.currentStep()\"\n [ngClass]=\"this.direction()\">\n\n <span class=\"tc-rev-wizard-step__counter f-h3 cursor-default\">\n {{ i + 1 }}\n </span>\n\n <div class=\"tc-rev-wizard-step__info\">\n <p class=\"tc-rev-wizard-step__title f-lg mar-none cursor-default\">\n {{ step.title }}\n </p>\n\n @if (step.description) {\n <p class=\"tc-rev-wizard-step__description f-sm mar-none cursor-default\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n\n @if (this.steps().length > i && !last) {\n <div\n class=\"tc-rev-wizard-step-divider\"\n [class.completed]=\"isCompleted\"\n [ngClass]=\"this.direction()\">\n </div>\n }\n }\n</div> -->\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface BreadcrumbItem\n{\n label: string;\n url?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TcRevBreadcrumbService\n{\n private breadcrumbsSubject = new BehaviorSubject<BreadcrumbItem[]>([]);\n public breadcrumbs$ = this.breadcrumbsSubject.asObservable();\n\n constructor() {}\n\n public setBreadcrumb(items: BreadcrumbItem[]): void\n {\n this.breadcrumbsSubject.next(items);\n }\n\n public addLevel(item: BreadcrumbItem): void\n {\n const currentItems = this.breadcrumbsSubject.getValue();\n this.breadcrumbsSubject.next([...currentItems, item]);\n }\n\n public removeLastLevel(): void\n {\n const currentItems = this.breadcrumbsSubject.getValue();\n if (currentItems.length > 0)\n {\n const newItems = [...currentItems];\n newItems.pop();\n this.breadcrumbsSubject.next(newItems);\n }\n }\n\n public clear(): void\n {\n this.breadcrumbsSubject.next([]);\n }\n}","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { BreadcrumbItem, TcRevBreadcrumbService } from './tc-rev-breadcrumb.service';\n\n@Component({\n selector: 'tc-rev-breadcrumb',\n imports: [\n CommonModule,\n RouterModule\n ],\n templateUrl: './tc-rev-breadcrumb.component.html',\n styleUrl: './tc-rev-breadcrumb.component.scss'\n})\nexport class TcRevBreadcrumbComponent\n{\n public breadcrumbs: BreadcrumbItem[] = [];\n private router = inject(Router);\n private breadcrumbService = inject(TcRevBreadcrumbService);\n\n constructor() { }\n \n ngOnInit(): void\n {\n this.breadcrumbService.breadcrumbs$.subscribe(items => this.breadcrumbs = items);\n }\n\n public navigate(url?: string, index?: number): void\n {\n if (url)\n {\n this.router.navigateByUrl(url);\n \n // Opcional: remover níveis do breadcrumb após o clicado\n if (index !== undefined && index < this.breadcrumbs.length - 1)\n {\n this.breadcrumbService.setBreadcrumb(this.breadcrumbs.slice(0, index + 1));\n }\n }\n }\n}\n","<nav aria-label=\"breadcrumb\" class=\"tc-rev-breadcrumb\">\n <ol class=\"tc-rev-breadcrumb-list\">\n <!-- Link para o Dashboard -->\n <li class=\"tc-rev-breadcrumb-item\">\n <a [routerLink]=\"['/dashboard']\"><i class=\"fa-light fa-house-blank\"></i>\n @if (breadcrumbs.length > 0)\n {\n <i class=\"fa-light fa-chevron-right\"></i>\n }\n @else\n {\n Página inicial\n }\n </a>\n </li>\n\n <!-- Iteração sobre os itens do breadcrumb -->\n <li\n *ngFor=\"let breadcrumb of breadcrumbs; let i = index; let last = last\"\n class=\"tc-rev-breadcrumb-item\"\n [ngClass]=\"{ 'active': last }\"\n [attr.aria-current]=\"last ? 'page' : null\">\n <ng-container *ngIf=\"!last\">\n <a (click)=\"navigate(breadcrumb.url, i)\">{{ breadcrumb.label }}</a>\n <i class=\"fa-light fa-chevron-right\"></i>\n </ng-container>\n <ng-container *ngIf=\"last\">\n {{ breadcrumb.label }}\n </ng-container>\n </li>\n </ol>\n</nav>","import { NgModule } from '@angular/core';\n\nimport { TcRevBreadcrumbComponent } from './tc-rev-breadcrumb/tc-rev-breadcrumb.component';\nimport { TcRevButtonDirective } from './tc-rev-button/tc-rev-button.directive';\nimport { TcRevCalendarComponent } from './tc-rev-calendar/tc-rev-calendar.component';\nimport { TcRevCardAccordionComponent } from './tc-rev-card-accordion/tc-rev-card-accordion.component';\nimport { TcRevCardTitleComponent } from './tc-rev-card-title/tc-rev-card-title.component';\nimport { TcRevCardComponent } from './tc-rev-card/tc-rev-card.component';\nimport { TcRevCheckboxDirective } from './tc-rev-checkbox/tc-rev-checkbox.directive';\nimport { TcRevDropdownGroupedComponent } from './tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component';\nimport { TcRevDropdownMultiLevelComponent } from './tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component';\nimport { TcRevDropdownMultiComponent } from './tc-rev-dropdown-multi/tc-rev-dropdown-multi.component';\nimport { TcRevDropdownComponent } from './tc-rev-dropdown/tc-rev-dropdown.component';\nimport { TcRevEmptyContentComponent } from './tc-rev-empty-content/tc-rev-empty-content.component';\nimport { TcRevFaqComponent } from './tc-rev-faq/tc-rev-faq.component';\nimport { TcRevIconButtonDirective } from './tc-rev-icon-button/tc-rev-icon-button.directive';\nimport { TcRevInputContainerComponent } from './tc-rev-input-container/tc-rev-input-container.component';\nimport { TcRevInputDirective } from './tc-rev-input/tc-rev-input.directive';\nimport { TcRevLoadingComponent } from './tc-rev-loading/tc-rev-loading.component';\nimport { TcRevMessageComponent } from './tc-rev-message/tc-rev-message.component';\nimport { TcRevMultiInputComponent } from './tc-rev-multi-input/tc-rev-multi-input.component';\nimport { TcRevPaginationComponent } from './tc-rev-pagination/tc-rev-pagination.component';\nimport { TcRevProgressStatusBarComponent } from './tc-rev-progress-status-bar/tc-rev-progress-status-bar.component';\nimport { TcRevRadioDirective } from './tc-rev-radio/tc-rev-radio.directive';\nimport { TcRevSearchInputComponent } from './tc-rev-search-input/tc-rev-search-input.component';\nimport { TcRevSideDrawerComponent } from './tc-rev-side-drawer/tc-rev-side-drawer.component';\nimport { TcRevSkeletonLoadingComponent } from './tc-rev-skeleton-loading/tc-rev-skeleton-loading.component';\nimport { TcRevSlideToggleDirective } from './tc-rev-slide-toggle/tc-rev-slide-toggle.directive';\nimport { TcRevSmallLoadingComponent } from './tc-rev-small-loading/tc-rev-small-loading.component';\nimport { TcRevTabGroupComponent } from './tc-rev-tab-group/tc-rev-tab-group.component';\nimport { TcRevTabItemComponent } from './tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component';\nimport { TcRevTagComponent } from './tc-rev-tag/tc-rev-tag.component';\nimport { TcRevToastComponent } from './tc-rev-toast/tc-rev-toast.component';\nimport { TcRevTooltipDirective } from './tc-rev-tooltip/tc-rev-tooltip.directive';\nimport { TcRevWizardStepsComponent } from './tc-rev-wizard-steps/tc-rev-wizard-steps.component';\nimport { TcRevSubNavbarItemComponent } from './tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component';\nimport { TcRevSubNavbarComponent } from './tc-sub-navbar/tc-sub-navbar.component';\n\n\n@NgModule({\n imports: [\n TcRevBreadcrumbComponent,\n TcRevButtonDirective,\n TcRevCalendarComponent,\n TcRevCardComponent,\n TcRevCardAccordionComponent,\n TcRevCardTitleComponent,\n TcRevCheckboxDirective,\n TcRevDropdownComponent,\n TcRevDropdownGroupedComponent,\n TcRevDropdownMultiComponent,\n TcRevDropdownMultiLevelComponent,\n TcRevEmptyContentComponent,\n TcRevFaqComponent,\n TcRevIconButtonDirective,\n TcRevInputContainerComponent,\n TcRevInputDirective,\n TcRevLoadingComponent,\n TcRevMessageComponent,\n TcRevMultiInputComponent,\n TcRevPaginationComponent,\n TcRevProgressStatusBarComponent,\n TcRevRadioDirective,\n TcRevSearchInputComponent,\n TcRevSideDrawerComponent,\n TcRevSkeletonLoadingComponent,\n TcRevSlideToggleDirective,\n TcRevSmallLoadingComponent,\n TcRevTabGroupComponent,\n TcRevTabItemComponent,\n TcRevTagComponent,\n TcRevToastComponent,\n TcRevTooltipDirective,\n TcRevSubNavbarComponent,\n TcRevSubNavbarItemComponent,\n TcRevWizardStepsComponent,\n ],\n exports: [\n // TcRevBreadcrumbComponent,\n TcRevButtonDirective,\n TcRevCalendarComponent,\n TcRevCardComponent,\n TcRevCardAccordionComponent,\n TcRevCardTitleComponent,\n TcRevCheckboxDirective,\n TcRevDropdownComponent,\n TcRevDropdownGroupedComponent,\n TcRevDropdownMultiComponent,\n TcRevDropdownMultiLevelComponent,\n TcRevEmptyContentComponent,\n TcRevFaqComponent,\n TcRevIconButtonDirective,\n TcRevInputContainerComponent,\n TcRevInputDirective,\n TcRevLoadingComponent,\n TcRevMessageComponent,\n TcRevMultiInputComponent,\n TcRevPaginationComponent,\n TcRevProgressStatusBarComponent,\n TcRevSmallLoadingComponent,\n TcRevRadioDirective,\n TcRevSearchInputComponent,\n TcRevSideDrawerComponent,\n TcRevSkeletonLoadingComponent,\n TcRevSlideToggleDirective,\n TcRevTabGroupComponent,\n TcRevTabItemComponent,\n TcRevTagComponent,\n TcRevToastComponent,\n TcRevTooltipDirective,\n TcRevSubNavbarComponent,\n TcRevSubNavbarItemComponent,\n TcRevWizardStepsComponent,\n ],\n declarations: [],\n providers: [],\n})\nexport class TcRevComponentsLibModule { }\n","/*\n * Public API Surface of tcloud-ui\n */\n\nexport * from './lib/tcloud-ui.config';\nexport * from './lib/tcloud-ui.module';\nexport * from './lib/tcloud-ui.tokens';\nexport * from './lib/tcloud-ui.providers';\n\n// UI-MODAL\nexport * from './lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component';\nexport * from './lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component';\nexport * from './lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component';\nexport * from './lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component';\n// export * from './lib/_modules/tcloud-ui-modal/tcloud-ui-modal.module';\n\n// UI-TAB-MENU\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component';\n// export * from './lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.module';\n\n// UI-LINHA-LOGO\nexport * from './lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component';\n// export * from './lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.module';\n\n// UI-STEP-CIRCLE\nexport * from './lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component';\n// export * from './lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.module';\n\n// UI-MULTI-SELECT\nexport * from './lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component';\n// export * from './lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module';\n\n// UI-TOOLTIP\nexport * from './lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\nexport * from './lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component';\n// export * from './lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module';\n\n// UI-MULTI-INPUT\nexport * from './lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component';\n// export * from './lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module';\n\n// UI-CHOICE-ISSUES\nexport * from './lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component';\n// export * from './lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.module';\n\n// UI-INPUT-SEARCH\nexport * from './lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component';\n// export * from './lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.module';\n\n// UI-NOT-FOUND\nexport * from './lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component';\n// export * from './lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.module';\n\n// UI-TABLE\nexport * from './lib/_modules/tcloud-ui-table/tcloud-ui-table.component';\n// export * from './lib/_modules/tcloud-ui-table/tcloud-ui-table.module';\n\n// UI-NUMBER-STEP\nexport * from './lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component';\n// export * from './lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.module';\n\n// UI-SCROLL-BOX\nexport * from './lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component';\n// export * from './lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.module';\n\n// UI-FILTERS\nexport * from './lib/_modules/tcloud-ui-filters/components/range-date/range-date.component';\nexport * from './lib/_modules/tcloud-ui-filters/tcloud-ui-filters';\nexport * from './lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component';\n// export * from './lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module';\n\n// UI-ACCORDION\nexport * from './lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component';\nexport * from './lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component';\nexport * from './lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component';\n// export * from './lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.module';\n\n// UI-DATEPICKER\nexport * from './lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component';\n// export * from './lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module';\n\n// UI-DATEPICKER-TIME\nexport * from './lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\n// export * from './lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module';\n\n// UI-MULTIPLES-VALUES\nexport * from './lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component';\n// export * from './lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module';\n\n// UI-WELCOME\nexport * from './lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component';\n// export * from './lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.module';\n\n// UI-INPUT-PASSWORD\nexport * from './lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component';\n// export * from './lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module';\n\n// UI-PROGRESS-BAR\nexport * from './lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component';\n// export * from './lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.module';\n\n// UI-LOADING\nexport * from './lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component';\nexport * from './lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component';\n// export * from './lib/_modules/tcloud-ui-loading/tcloud-ui-loading.module';\n\n// UI-REORDER-ITEMS\nexport * from './lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items';\nexport * from './lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component';\n// export * from './lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.module';\n\n// UI-LABEL-TOKEN\nexport * from './lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component';\n// export * from './lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module';\n\n// UI-LINE-STEP-TITLE\nexport * from './lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title';\nexport * from './lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component';\n// export * from './lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.module';\n\n// DIRECTIVES\nexport * from './lib/_directives/align/align.directive';\nexport * from './lib/_directives/currency/currency.directive';\n// export * from './lib/_directives/directives.module';\nexport * from './lib/_directives/el-copy/el-copy.directive';\nexport * from './lib/_directives/hover-parent/hover-parent.directive';\nexport * from './lib/_directives/tcloud-access/tcloud-ui-check-access.directive';\nexport * from './lib/_directives/tcloud-access/tcloud-ui-ng-check-access.directive';\nexport * from './lib/_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive';\nexport * from './lib/_directives/tcloud-ui-digit-only.directive';\nexport * from './lib/_directives/tcloud-ui-highlight.diretive';\nexport * from './lib/_directives/tcloud-ui-ip-mask.directive';\nexport * from './lib/_directives/tooltip/tooltip.directive';\nexport * from './lib/_directives/tcloud-button/tcloud-button.directive';\nexport * from './lib/_directives/tcloud-form/tcloud-form.directive';\n// PIPES\nexport * from './lib/_pipes/index';\n// export * from './lib/_pipes/tcloud-pipes.module';\n\n// SERVICES\nexport * from './lib/_services/loading-transitions.service';\nexport * from './lib/_services/search-in-object.service';\nexport * from './lib/_services/tcloud-ui-check-access.service';\n\n\n// * [COMPONENTES DE REVITALIZAÇÃO PARA TCLOUD-UI] *\n// Sub Navbar\nexport * from './lib/_modules/tcloud-ui-sub-navbar/component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component';\nexport * from './lib/_modules/tcloud-ui-sub-navbar/tcloud-ui-sub-navbar.component';\n\n// Container\nexport * from './lib/_modules/tcloud-ui-container/tcloud-ui-container.component';\nexport * from './lib/_modules/tcloud-ui-container/components/tcloud-ui-container-content/tcloud-ui-container-content.component';\nexport * from './lib/_modules/tcloud-ui-container/components/tcloud-ui-container-col/tcloud-ui-container-col.component';\n\n\n\n// * [COMPONENTES REVITALIZAÇÃO] *\n\n// Button\nexport * from './lib/revitalizacao/components/tc-rev-button/tc-rev-button.directive';\n\n// Calendar\nexport * from './lib/revitalizacao/components/tc-rev-calendar/tc-rev-calendar.component';\n\n// Card\nexport * from './lib/revitalizacao/components/tc-rev-card-accordion/tc-rev-card-accordion.component';\nexport * from './lib/revitalizacao/components/tc-rev-card-title/tc-rev-card-title.component';\nexport * from './lib/revitalizacao/components/tc-rev-card/tc-rev-card.component';\n\n// Checkbox\nexport * from './lib/revitalizacao/components/tc-rev-checkbox/tc-rev-checkbox.directive';\n\n// Dropdown\nexport * from './lib/revitalizacao/components/tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component';\nexport * from './lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component';\nexport * from './lib/revitalizacao/components/tc-rev-dropdown-multi/tc-rev-dropdown-multi.component';\nexport * from './lib/revitalizacao/components/tc-rev-dropdown/tc-rev-dropdown.component';\n\n// Echarts\nexport * from './lib/revitalizacao/charts/echarts';\n\n// Empty Content\nexport * from './lib/revitalizacao/components/tc-rev-empty-content/tc-rev-empty-content.component';\n\n// FAQ\nexport * from './lib/revitalizacao/components/tc-rev-faq/tc-rev-faq.component';\n\n// Icon Button\nexport * from './lib/revitalizacao/components/tc-rev-icon-button/tc-rev-icon-button.directive';\n\n// Input Container\nexport * from './lib/revitalizacao/components/tc-rev-input-container/tc-rev-input-container.component';\n\n// Input\nexport * from './lib/revitalizacao/components/tc-rev-input/tc-rev-input.directive';\n\n// Loading\nexport * from './lib/revitalizacao/components/tc-rev-loading/tc-rev-loading.component';\n\n// Message\nexport * from './lib/revitalizacao/components/tc-rev-message/tc-rev-message.component';\n\n// Multi Input\nexport * from './lib/revitalizacao/components/tc-rev-multi-input/tc-rev-multi-input.component';\n\n// Pagination\nexport * from './lib/revitalizacao/components/tc-rev-pagination/tc-rev-pagination.component';\n\n// Progress Status Bar\nexport * from './lib/revitalizacao/components/tc-rev-progress-status-bar/tc-rev-progress-status-bar.component';\n\n// Radio\nexport * from './lib/revitalizacao/components/tc-rev-radio/tc-rev-radio.directive';\n\n// Search Input\nexport * from './lib/revitalizacao/components/tc-rev-search-input/tc-rev-search-input.component';\n\n// Side Drawer\nexport * from './lib/revitalizacao/components/tc-rev-side-drawer/tc-rev-side-drawer.component';\n\n// Skeleton Loading\nexport * from './lib/revitalizacao/components/tc-rev-skeleton-loading/tc-rev-skeleton-loading.component';\n\n// Slide Toggle\nexport * from './lib/revitalizacao/components/tc-rev-slide-toggle/tc-rev-slide-toggle.directive';\n\n// Small Loading\nexport * from './lib/revitalizacao/components/tc-rev-small-loading/tc-rev-small-loading.component';\n\n// Tab\nexport * from './lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-group.component';\nexport * from './lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component';\n\n// Tag\nexport * from './lib/revitalizacao/components/tc-rev-tag/tag-colors.enum';\nexport * from './lib/revitalizacao/components/tc-rev-tag/tc-rev-tag.component';\n\n// Toast\nexport * from './lib/revitalizacao/components/tc-rev-toast/tc-rev-toast.component';\n\n// Tooltip\nexport * from './lib/revitalizacao/components/tc-rev-tooltip/tc-rev-tooltip.directive';\n\n// Sub Navbar\nexport * from './lib/revitalizacao/components/tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component';\nexport * from './lib/revitalizacao/components/tc-sub-navbar/tc-sub-navbar.component';\n\n\n// Utils\nexport * from './lib/revitalizacao/util/ellipsed-text';\n\n// Wizard Steps\nexport * from './lib/revitalizacao/components/tc-rev-wizard-steps/tc-rev-wizard-steps.component';\n\n// Module\nexport * from './lib/revitalizacao/components/tc-rev-components.module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TCloudUiAccordionService","i2","CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR","noop","i1.DataListService","i1.TCloudUiLayoutService","i3","i1.DateBRPipe","i2.TCloudUiLayoutService","CUSTOM_INPUT_VALIDATORS","i2.StatusInfoPipe","i1.TCloudUiSearchInObjectService","i2.TcloudModalService","i1.TcloudModalService","i4","i1","i1.TabMenuService","i1.TCloudUiCheckAccessService"],"mappings":";;;;;;;;;;;MAIa,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAW;AACtC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAE9C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAW;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEhD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAW;AACxC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AA4B3D,IAAA;AAzBC,IAAA,MAAM,CAAC,MAAe,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAE,MAAM,CAAE;IAClC;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,UAAU,CAAC,OAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;IAEA,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;IAClB;AAEA,IAAA,WAAW,CAAC,QAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAE,QAAQ,CAAE;IACtC;IAEA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;+GAvCW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAxB,wBAAwB,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;MCgBY,8BAA8B,CAAA;AAIzC,IAAA,WAAA,CACU,yBAAmD,EAAA;QAAnD,IAAA,CAAA,yBAAyB,GAAzB,yBAAyB;QAHnC,IAAA,CAAA,IAAI,GAAY,KAAK;IAIjB;IAEJ,QAAQ,GAAA;QAEN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,KAAK;QAC7D,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAa,KAAI;AACtE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,QAAA,CAAC,CAAC;IAEJ;+GAfW,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnB3C,+KAEM,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDeQ,YAAY,EAAA,CAAA,EAAA,UAAA,EARV;YACR,OAAO,CAAC,iBAAiB,EAAE;gBACvB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,gBAAA,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;aAC7D,CAAC;AACL,SAAA,EAAA,CAAA,CAAA;;4FAIQ,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAd1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,UAAA,EAGxB;wBACR,OAAO,CAAC,iBAAiB,EAAE;4BACvB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;4BACtC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,4BAAA,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;yBAC7D,CAAC;AACL,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+KAAA,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA;;;MELd,+BAA+B,CAAA;AAW1C,IAAA,WAAA,CACU,yBAAmD,EAAA;QAAnD,IAAA,CAAA,yBAAyB,GAAzB,yBAAyB;QANnC,IAAA,CAAA,IAAI,GAAY,KAAK;QACrB,IAAA,CAAA,OAAO,GAAY,KAAK;QACxB,IAAA,CAAA,QAAQ,GAAY,KAAK;IAKrB;IAEJ,QAAQ,GAAA;QAEN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,IAAI,KAAK;AACnE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAgB,KAAI;AACjG,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,KAAK;AAC7D,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAa,KAAI;AAC7F,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,IAAI,KAAK;AACrE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAiB,KAAI;AACnG,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC1B,QAAA,CAAC,CAAC;IAEJ;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAE7B,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;QACtB,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAElD;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,MAAM,EAAE;IACf;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;QAAE;AAChE,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;QAAE;AAChE,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;QAAE;IAClE;+GAlDW,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ5C,uqBAgBM,EAAA,MAAA,EAAA,CAAA,4WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,UAAA,EAGzB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,uqBAAA,EAAA,MAAA,EAAA,CAAA,4WAAA,CAAA,EAAA;;;MEOd,0BAA0B,CAAA;IAQrC,IAAa,QAAQ,CAAC,CAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1D,gBAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,YAAA,CAAC,CAAC;QACJ;IACF;IACA,IAAI,QAAQ,KAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IAIvC,IAAa,IAAI,CAAC,CAAU,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,UAAU,CAAC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E;QACF;IACF;IAEA,IAAI,IAAI,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AAM/B;;AAEG;IACH,IAAa,OAAO,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,OAAO,CAAC;IACpD;IACA,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE/C,IAAA,WAAA,CACU,yBAAmD,EAAA;QAAnD,IAAA,CAAA,yBAAyB,GAAzB,yBAAyB;QAvC3B,IAAA,CAAA,SAAS,GAAY,KAAK;QAa1B,IAAA,CAAA,KAAK,GAAY,KAAK;AAapB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAkB;QAE/C,IAAA,CAAA,QAAQ,GAAY,KAAK;IAY7B;IAEJ,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAgB,KAAI;AACjG,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACxB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAa,KAAI;AAC7F,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,GAAG,OAAO,CAAE;AAC1D,QAAA,CAAC,CAAC;IAEJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;QAAE;AAChE,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;QAAE;IAClE;+GAhEW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EANxB;YACP;SACH,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbL,oIAEM,gNDaQ,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,SAAA,EAGpB;wBACP;qBACH,EAAA,UAAA,EACW,IAAI,WACP,CAAC,YAAY,EAAE,8BAA8B,EAAE,+BAA+B,CAAC,EAAA,QAAA,EAAA,oIAAA,EAAA,MAAA,EAAA,CAAA,yJAAA,CAAA,EAAA;0FAU7E,QAAQ,EAAA,CAAA;sBAApB;gBAaY,IAAI,EAAA,CAAA;sBAAhB;gBAYS,QAAQ,EAAA,CAAA;sBAAjB;gBAMY,OAAO,EAAA,CAAA;sBAAnB;;;AEnDH,MAAME,qCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC;AAC5D,IAAA,KAAK,EAAE;CACR;AAED,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAUY,6BAA6B,CAAA;AAkBxC,IAAA,WAAA,GAAA;QAfS,IAAA,CAAA,IAAI,GAAY,KAAK;QACrB,IAAA,CAAA,MAAM,GAAW,EAAE;QACnB,IAAA,CAAA,SAAS,GAAW,EAAE;QAEtB,IAAA,CAAA,QAAQ,GAAY,KAAK;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;QAM5C,IAAA,CAAA,UAAU,GAAY,KAAK;;;QASjB,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;QALjD,IAAI,CAAC,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjE;;AAOE,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5B;IACJ;;IAGA,MAAM,GAAA;QACF,IAAI,CAAC,iBAAiB,EAAE;IAC5B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QAC3B;IACJ;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC9B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC/B;AAEA,IAAA,IAAI,CAAC,CAAM,EAAA;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB;IAEA,QAAQ,GAAA;;;;AAIJ,QAAA,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACxD;+GAvES,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAJ3B,CAACD,qCAAmC,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAgBvB,IAAI,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCjC,woDAoDM,EAAA,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhCQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE1B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;+BACI,yBAAyB,EAAA,SAAA,EAGxB,CAACA,qCAAmC,CAAC,EAAA,UAAA,EACpC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,woDAAA,EAAA,MAAA,EAAA,CAAA,+3BAAA,CAAA,EAAA;wDAK7B,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBAIkD,QAAQ,EAAA,CAAA;sBAA1D,SAAS;uBAAC,OAAO,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;;;ME9BrC,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,iBAAiB,GAAiB,IAAI,OAAO,EAAO;AACrD,QAAA,IAAA,CAAA,WAAW,GAA6B,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AAE5E,QAAA,IAAA,CAAA,uBAAuB,GAAiB,IAAI,OAAO,EAAO;AAC3D,QAAA,IAAA,CAAA,iBAAiB,GAA6B,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE;AAExF,QAAA,IAAA,CAAA,mBAAmB,GAAiB,IAAI,OAAO,EAAO;AACvD,QAAA,IAAA,CAAA,aAAa,GAA6B,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;AAEhF,QAAA,IAAA,CAAA,kBAAkB,GAAiB,IAAI,OAAO,EAAO;AACtD,QAAA,IAAA,CAAA,YAAY,GAA6B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AA0BvF,IAAA;AAtBQ,IAAA,YAAY,CAAC,CAAM,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC;AAEO,IAAA,kBAAkB,CAAC,CAAM,EAAA;AAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC;AAEO,IAAA,mCAAmC,CAAC,CAAM,EAAA;AAC/C,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC;AAEO,IAAA,aAAa,CAAC,CAAM,EAAA;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC;IAEO,aAAa,GAAA;;QAElB,OAAO,IAAI,CAAC,aAAa;IAC3B;+GAnCW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;MCHY,cAAc,CAAA;AAI1B;;MCUY,+BAA+B,CAAA;AAY1C,IAAA,WAAA,CAAqB,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;QAVpC,IAAA,CAAA,EAAE,GAAW,EAAE;AAEf,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,cAAc,EAAE;QAG5B,IAAA,CAAA,QAAQ,GAAwB,KAAK;AAGpC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;IAG5C;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;AACzD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAG;AACzE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACxB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QAC3B,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEA,UAAU,GAAA;QACR,OAAO,CAAA,iBAAA,EAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,CAAE;IACjG;AAEA,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAC7B,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QAAE;QAErC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,QAAA,MAAM,WAAW,GAAS,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,IAAI,EAAE;AAC3E,QAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,CAAC;QACpD,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEA,gBAAgB,GAAA;QACd,UAAU,CAAC,MAAK;AACd,YAAA,IAAI;AACF,gBAAA,MAAM,WAAW,GAAS,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS;gBACrE,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACtC,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,WAAW;gBAC7C,IAAI,CAAC,eAAe,CAAC,mCAAmC,CAAC,IAAI,CAAC,cAAc,CAAC;YAC/E;AAAE,YAAA,OAAO,KAAK,EAAE,EAAE;AACpB,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;QAAE;IAC1E;+GAnDW,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd5C,kiBAeA,EAAA,MAAA,EAAA,CAAA,wVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHc,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,UAAA,EAG1B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,kiBAAA,EAAA,MAAA,EAAA,CAAA,wVAAA,CAAA,EAAA;iFAShB,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBAES,QAAQ,EAAA,CAAA;sBAAjB;;;AEtBH;;AAEG;MACU,gBAAgB,GAAG,IAAI,cAAc,CAAM,kBAAkB;AAE1E;;AAEG;MACU,sBAAsB,GAAG,IAAI,cAAc,CAAM,wBAAwB;AAEtF;;AAEG;MACU,wBAAwB,GAAG,IAAI,cAAc,CAAM,0BAA0B;AAE1F;;AAEG;MACU,0BAA0B,GAAG,IAAI,cAAc,CAAM,4BAA4B;;MCbjF,qBAAqB,CAAA;AAI9B,IAAA,WAAA,CAC0D,cAAsC,EAAA;QAAtC,IAAA,CAAA,cAAc,GAAd,cAAc;QAHhE,IAAA,CAAA,aAAa,GAAG,EAA4B;AAKhD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc;IAC5C;IAEA,gBAAgB,GAAA;;AAEZ,QAAA,IAAI;AACA,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE;QACjD;QAAE,OAAO,KAAK,EAAE;;QAEhB;AACA,QAAA,OAAO,SAAS;IACpB;AAlBS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAKN,wBAAwB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AALvC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAMQ;;0BAAY,MAAM;2BAAC,wBAAwB;;;MCLvC,qBAAqB,CAAA;IAGlC,WAAA,CACY,sBAA6C,EAC7C,GAAkC,EAAA;QADlC,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACtB,IAAA,CAAA,GAAG,GAAH,GAAG;AAJR,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;QAMpC,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,UAAU,EAAE;AACrB,QAAA,CAAC,CAAC;IACN;IAEQ,MAAM,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE;IAC/D;IAEU,UAAU,GAAA;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YAAE;QAAQ;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS;QAClD,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,CAAC;QAC9E,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC,CAAC;AAEjF,QAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC;YAC5D,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC,GAAG,IAAI;QACpG;IACF;+GA5BW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,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,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACGD,MAAMH,qCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,IAAA,KAAK,EAAE;CACR;AAED,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAeY,yBAAyB,CAAA;IAWpC,IAAa,QAAQ,CAAC,CAAC,EAAA;QACrB,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE;AAClD,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC;;;YAGlB,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;IACA,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IAGhD,IAAa,OAAO,CAAC,CAAU,EAAA;QAC7B,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AACjD,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;;;YAGjB,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;IACA,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAO9C,IAAa,SAAS,CAAC,CAAmB,EAAA;QACxC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACrB;IACF;IACA,IAAI,SAAS,KAAsB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;IAG3D,IAAa,IAAI,CAAC,CAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;YACd,IAAI,CAAC,EAAE;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,gBAAA,UAAU,CAAC,MAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC;QACF;IACF;IACA,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IAaxC,IAAa,OAAO,CAAC,CAAM,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAkBA,WAAA,CACU,eAAgC,EAChC,WAAwB,EAAA;QADxB,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,WAAW,GAAX,WAAW;QAxFrB,IAAA,CAAA,cAAc,GAAW,CAAC;QAC1B,IAAA,CAAA,eAAe,GAAW,CAAC;QAC3B,IAAA,CAAA,UAAU,GAAW,CAAC;QACtB,IAAA,CAAA,SAAS,GAAW,EAAE;QACtB,IAAA,CAAA,WAAW,GAAW,EAAE;QAEf,IAAA,CAAA,WAAW,GAAW,EAAE;QAEzB,IAAA,CAAA,SAAS,GAAY,KAAK;QAW1B,IAAA,CAAA,QAAQ,GAAY,KAAK;QAYxB,IAAA,CAAA,SAAS,GAAY,IAAI;QACzB,IAAA,CAAA,MAAM,GAAY,IAAI;QAEvB,IAAA,CAAA,UAAU,GAAqB,EAAE;QAQjC,IAAA,CAAA,KAAK,GAAY,KAAK;QAcrB,IAAA,CAAA,MAAM,GAAY,IAAI;AAErB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAkB;AAClD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAkB;AAE7C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AAOlC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO;AAEjD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,KAAK,EAAkB;QASnD,IAAA,CAAA,SAAS,GAAY,KAAK;QAC1B,IAAA,CAAA,WAAW,GAAW,EAAE;QACxB,IAAA,CAAA,EAAE,GAAW,EAAE;;;QA4ML,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;AApMjD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAG;AACvE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;YACtB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAG;AACnF,YAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC;AAC/B,QAAA,CAAC,CAAC;AAGF,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAK,KAAI;AACjF,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBAChB,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;IAEJ;IAEA,QAAQ,GAAA;AAIN,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QAE3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC,YAAA,eAAe,EAAE,IAAI,WAAW,CAAC,EAAE,EAAC,EAAE,CAAC;AACxC,SAAA,CAAC;QAIF,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,OAAO,EAAE;IAChB;IAGA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,wBAAwB,EAAE;IAC7C;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,CAAC,EAAE;AACzE,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;oBACrC,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,WAAW,EAAE;AAClD,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,oBAAoB,EAAE;4BACtE,UAAU,CAAC,MAAK;AACd,gCAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW;gCAC5C,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AACxD,4BAAA,CAAC,CAAC;wBACJ;oBACF;oBACA;gBACF;YACF;QACF;IACF;IAEA,UAAU,GAAA;QACR,OAAO,CAAA,UAAA,EAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,CAAE;IAC1F;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;QAAE;AACtE,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAAE,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;QAAE;AAClF,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;QAAE;IAC5E;AAEA,IAAA,QAAQ,CAAC,CAAM,EAAA;QACb,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;QAEnE,IAAI,MAAM,GAAG,CAAE,CAAE,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAG,IAAI,EAAE,EAAG,WAAW,EAAE;AAClG,QAAA,IAAI,EAAE,GAAS,QAAQ,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAA,QAAA,CAAU,CAAC;QAC5D,IAAI,EAAE,EAAE;YACN,IAAI,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAC1C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChC,gBAAA,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACf,gBAAA,MAAM,QAAQ,GAAG,CAAE,CAAE,CAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,EAAG,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAG,IAAI,EAAE,EAAG,WAAW,EAAE;gBAC/H,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC/B,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;gBAC5B;qBAAO;oBACH,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;gBAChC;YACJ;QACF;IACF;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,CAAC,EAAE;AACzE,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;AACrC,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW;oBAC5C,IAAI,CAAC,QAAQ,EAAE;oBACf;gBACF;YACF;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE;AAChG,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE;YAC9B,IAAI,CAAC,QAAQ,EAAE;QACjB;IAEF;AAGA,IAAA,OAAO,CAAC,CAAM,EAAA;QACZ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvB;IAEA,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AACnE,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE;YACzB;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;YACrB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;YAEtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAElD,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;;AAEnE,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACpD;AACF,QAAA,CAAC,CAAC;IACJ;IAGA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnB;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;IACtB;AAEA,IAAA,yBAAyB,CAAC,IAAa,EAAA;QACrC,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,YAAA,MAAM,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE;AACvB,YAAA,MAAM,GAAG,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,EAAE,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU;YAC1C;YACA,MAAM,IAAI,GAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE;AAClE,YAAA,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC;YACtC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,UAAU,GAAI,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC;AAClE,gBAAA,IAAI,CAAE,IAAI,CAAC,eAAe,GAAG,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AAC5D,oBAAA,IAAI,CAAC,WAAW,GAAG,aAAa;AAChC,oBAAA,IAAI,CAAC,SAAS,GAAG,CAAA,MAAA,GAAW,IAAI,CAAC,UAAU,EAAE,YAAA,EAAe,IAAI,CAAC,UAAU,KAAK;gBAClF;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;IACtB;IAGA,QAAQ,GAAA;AACN,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;AACrC,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW;AACzC,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;AAChD,QAAA,CAAC,CAAC;IACJ;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,GAAG,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,EAAE,EAAE;QAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAC,CAAC,CAAM,KAAI;AACzC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;oBACvD,IAAI,CAAC,OAAO,EAAE;gBAChB;YACF;AACF,QAAA,CAAC,CAAC;IACJ;;AAUE,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,aAAa;IAC7B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AACZ,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5B;IACJ;;IAGA,MAAM,GAAA;QACF,IAAI,CAAC,iBAAiB,EAAE;IAC5B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC9B;IACJ;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC9B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC/B;+GApUS,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,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,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EARvB;YACP,eAAe;YACfF;SACH,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BL,k8EA2DA,EAAA,MAAA,EAAA,CAAA,6pDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/Bc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,m3BAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGvG,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,SAAA,EAGpB;wBACP,eAAe;wBACfJ;AACH,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,qBAAqB,CAAC,EAAA,QAAA,EAAA,k8EAAA,EAAA,MAAA,EAAA,CAAA,6pDAAA,CAAA,EAAA;2GAW1G,WAAW,EAAA,CAAA;sBAAnB;gBAGY,QAAQ,EAAA,CAAA;sBAApB;gBAWY,OAAO,EAAA,CAAA;sBAAnB;gBAWQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAGY,SAAS,EAAA,CAAA;sBAArB;gBAQY,IAAI,EAAA,CAAA;sBAAhB;gBAaQ,MAAM,EAAA,CAAA;sBAAd;gBAES,aAAa,EAAA,CAAA;sBAAtB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBAES,QAAQ,EAAA,CAAA;sBAAjB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBAGY,OAAO,EAAA,CAAA;sBAAnB;gBAIS,aAAa,EAAA,CAAA;sBAAtB;;;MEhGU,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;QAMI,IAAA,CAAA,KAAK,GAAa,CAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,CAAC;AAiBvI,IAAA;AAdG,IAAA,SAAS,CAAC,OAAe,EAAA;AAEvB,QAAA,IAAI,OAAO,KAAK,EAAE,EAAE;YAElB,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,EAAE;AACvB,gBAAA,IAAI,IAAI,GAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpB,gBAAA,IAAI,EAAE,GAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEpB,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,GAAC,CAAC,EAAE;YAC3B;QACF;AACA,QAAA,OAAO,EAAE;IACX;+GAlBS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAMI,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,EAAE,GAAG,EAAE,WAAW,EAAM,KAAK,EAAE,YAAY,EAAE;AAC7C,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,UAAU,EAAE;AAC3C,YAAA,EAAE,GAAG,EAAE,QAAQ,EAAS,KAAK,EAAE,MAAM,EAAE;AACvC,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,cAAc,EAAE;AAC/C,YAAA,EAAE,GAAG,EAAE,cAAc,EAAG,KAAK,EAAE,mBAAmB,EAAE;AACpD,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,YAAY,EAAE;AAC7C,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,YAAY,EAAE;AAC7C,YAAA,EAAE,GAAG,EAAE,UAAU,EAAO,KAAK,EAAE,WAAW,EAAE;SAC7C;AAED,QAAA,IAAA,CAAA,eAAe,GAAG;AAChB,YAAA,EAAE,GAAG,EAAE,WAAW,EAAM,KAAK,EAAE,YAAY,EAAE;AAC7C,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,sBAAsB,EAAE;AACvD,YAAA,EAAE,GAAG,EAAE,QAAQ,EAAS,KAAK,EAAE,MAAM,EAAE;AACvC,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,yBAAyB,EAAE;AAC1D,YAAA,EAAE,GAAG,EAAE,cAAc,EAAG,KAAK,EAAE,mBAAmB,EAAE;AACpD,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,YAAY,EAAE;AAC7C,YAAA,EAAE,GAAG,EAAE,SAAS,EAAQ,KAAK,EAAE,yBAAyB,EAAE;AAC1D,YAAA,EAAE,GAAG,EAAE,UAAU,EAAO,KAAK,EAAE,WAAW,EAAE;SAC7C;AAqDJ,IAAA;IAnDG,SAAS,CAAC,WAAgB,EAAE,IAAa,EAAA;AAEvC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc;AAElC,QAAA,IAAI,IAAI,IAAI,IAAI,KAAK,SAAS,EAAC;YAC7B,QAAQ,IAAI;AACV,gBAAA,KAAK,UAAU;AAAE,oBAAA,QAAQ,GAAG,IAAI,CAAC,eAAe;oBAAE;;QAEtD;QAEA,IAAI,qBAAqB,GAAG,EAAE;AAC9B,QAAA,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAC;AAEzB,YAAA,QAAQ,GAAG,IAAI,CAAC,cAAc;AAC9B,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,CAAA,EAAG,WAAW,CAAA,CAAE,KAAK,EAAE,EAAE;AAChF,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,IAAI,CAAC,GAAG,WAAW,CAAA,CAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,CAAE,EAAE,WAAW,EAAE,EAAE;wBAC7E,qBAAqB,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;wBAChD;oBACF;gBACF;YACF;AAEA,YAAA,QAAQ,GAAG,IAAI,CAAC,eAAe;AAC/B,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,CAAA,EAAG,WAAW,CAAA,CAAE,KAAK,EAAE,EAAE;AAChF,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,IAAI,CAAC,GAAG,WAAW,CAAA,CAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,CAAE,EAAE,WAAW,EAAE,EAAE;wBAC7E,qBAAqB,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;wBAChD;oBACF;gBACF;YACF;QAEF;aAAK;AACH,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,CAAA,EAAG,WAAW,CAAA,CAAE,KAAK,EAAE,EAAE;AAChF,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,IAAI,CAAC,GAAG,WAAW,CAAA,CAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,CAAE,EAAE,WAAW,EAAE,EAAE;wBAC7E,qBAAqB,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;wBAChD;oBACF;gBACF;YACF;QACF;AAGA,QAAA,IAAI,qBAAqB,KAAK,EAAE,EAAE;AAChC,YAAA,OAAO,qBAAqB;QAC9B;AAEA,QAAA,OAAO,WAAW;IACpB;+GA1ES,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAMI,QAAA,IAAA,CAAA,GAAG,GAAG;;AAEJ,YAAA,EAAE,GAAG,EAAE,YAAY,EAAG,KAAK,EAAE,UAAU,EAAE;AACzC,YAAA,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE;AAChD,YAAA,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;;AAGjC,YAAA,EAAE,GAAG,EAAE,QAAQ,EAAG,KAAK,EAAE,YAAY,EAAE;AACvC,YAAA,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;;AAGpC,YAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAChC,YAAA,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;AAC9B,YAAA,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;AAC5B,YAAA,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;;AAG7B,YAAA,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC7B,YAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAChC,YAAA,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACtC,YAAA,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACpC,YAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAChC,YAAA,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;AAClD,YAAA,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,YAAA,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACtC,YAAA,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,YAAA,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,YAAA,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,YAAA,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;AACrC,YAAA,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;AACpD,YAAA,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;AACpD,YAAA,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,YAAA,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACtC,YAAA,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,YAAA,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;;AAGpC,YAAA,EAAE,GAAG,EAAE,SAAS,EAAG,KAAK,EAAE,SAAS,EAAE;AACrC,YAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;;AAGhC,YAAA,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,kBAAkB,EAAE;AAC5D,YAAA,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,EAAE;AACxD,YAAA,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB;SAEnD;AA4BJ,IAAA;AAzBG,IAAA,SAAS,CAAC,CAAM,EAAA;AAEd,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAE7C,YAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACzB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,IAAI,QAAQ,GAAG,CAAC;AAChB,oBAAA,QAAQ,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE;AACnC,oBAAA,QAAQ,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;oBAC5B,QAAQ,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACzC,oBAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;oBACzD,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;wBAC5C,OAAO,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAE;oBAC/B;gBACF;YACF;iBAAK;AACH,gBAAA,OAAO,EAAE;YACX;QAGF;QACA,OAAO,CAAA,EAAG,CAAC,CAAA,CAAE;IACf;+GAxES,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,QAAQ,CAAA;AAJrB,IAAA,WAAA,GAAA;QAKI,IAAA,CAAA,OAAO,GAAW,oBAAoB;AAsBzC,IAAA;AArBG,IAAA,UAAU,CAAC,CAAM,EAAA;AACb,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,gBAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAChB,oBAAA,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvB;qBAAK;AACD,oBAAA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACtB;YACJ;QACJ;aAAK;AACD,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,OAAO,OAAO;IAClB;AACA,IAAA,SAAS,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAChC;+GAtBS,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,OAAO,CAAA;AAJpB,IAAA,WAAA,GAAA;QAKI,IAAA,CAAA,OAAO,GAAW,gBAAgB;AAsBrC,IAAA;AArBG,IAAA,UAAU,CAAC,CAAM,EAAA;AACb,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,gBAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAChB,oBAAA,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvB;qBAAK;AACD,oBAAA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACtB;YACJ;QACJ;aAAK;AACD,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,OAAO,OAAO;IAClB;AACA,IAAA,SAAS,CAAC,GAAW,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAC/B;+GAtBS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAJnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,SAAS,CAAA;AAEpB,IAAA,WAAW,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,EAAA;AAC1B,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QACpB,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,SAAS;AAC7B,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5H;IAEA,SAAS,CAAC,KAAU,EAAE,SAAkB,EAAA;AAEtC,QAAA,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE;YAErE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;AACtC,gBAAA,KAAK,GAAG,KAAK,GAAG,IAAI;YACtB;YAEA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;gBACtC,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI;YAC/B;QACF;AAEA,QAAA,MAAM,CAAC,GAAW,CAAC,KAAK;AACtB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9B;+GAxBW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,UAAU,CAAA;AAJvB,IAAA,WAAA,GAAA;QAKI,IAAA,CAAA,OAAO,GAAW,YAAY;AA2EjC,IAAA;AA1EG,IAAA,UAAU,CAAC,CAAM,EAAA;AACb,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,gBAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAChB,oBAAA,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvB;qBAAK;AACD,oBAAA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACtB;YACJ;QACJ;aAAK;AACD,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,OAAO,OAAO;IAClB;AAEA,IAAA,WAAW,CAAC,CAAM,EAAA;QACd,MAAM,IAAI,GAAG,OAAO;QACpB,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,gBAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAChB,oBAAA,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvB;qBAAK;AACD,oBAAA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACtB;YACJ;QACJ;aAAK;AACD,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,OAAO,OAAO;IAClB;IAEA,WAAW,CAAC,CAAS,EAAE,KAAa,EAAA;QAChC,MAAM,IAAI,GAAG,KAAK;QAClB,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,EAAE;AAChB,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,gBAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAChB,oBAAA,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvB;qBAAK;AACD,oBAAA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACtB;YACJ;QACJ;aAAK;AACD,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,OAAO,OAAO;IAClB;AAEA,IAAA,SAAS,CAAC,CAAS,EAAA;QAEf,IAAI,CAAC,EAAE;YAEH,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAE1B,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,GAAG,CAAC;YAAE;YACxD,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,KAAK,CAAC;YAAE;YAC1D,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,MAAM,CAAC;YAAE;YAC3D,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,OAAO,CAAC;YAAE;YAC5D,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,SAAS,CAAC;YAAE;YAC9D,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,UAAU,CAAC;YAAE;YAC/D,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,WAAW,CAAC;YAAE;YAChE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,YAAY,CAAC;QAC3C;AACA,QAAA,OAAO,EAAE;IACb;+GA3ES,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,UAAU,CAAA;AAErB,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,GAAG,EAAE;QACV,IAAI,CAAC,GAAG,EAAE;AACV,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,CAAC,IAAI,CAAC,GAAG,CAAA,EAAG,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE;YAEtB,CAAC,GAAG,IAAI;AACR,YAAA,IAAI,CAAC,CAAC,GAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE;gBAChC,CAAC,GAAG,KAAK;YACb;QACJ;AACA,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAClC;AACA,QAAA,OAAO,KAAK;IACd;+GArBW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACID,IAAI,WAAW,GAAG;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;AAC5E,QAAA,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC5D,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;QACrI,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACjG,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,SAAS,EAAE;AACZ;CACF;AAED,MAAMA,qCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,IAAA,KAAK,EAAE;CACR;AAED,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAeY,2BAA2B,CAAA;IA0CtC,IAAa,OAAO,CAAC,CAAM,EAAA;QAEzB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC;YAC3B,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACzD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM;YAC1C;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvB;IACF;IAUA,WAAA,CACU,WAAuB,EACvB,sBAA6C,EAAA;QAD7C,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;;QA9DvB,IAAA,CAAA,QAAQ,GAAY,KAAK;;;QAIzB,IAAA,CAAA,gBAAgB,GAAW,CAAC;;QAG5B,IAAA,CAAA,kBAAkB,GAAa,EAAE;;QAGjC,IAAA,CAAA,OAAO,GAAW,EAAE;;QAGpB,IAAA,CAAA,OAAO,GAAW,EAAE;;QAGpB,IAAA,CAAA,aAAa,GAAa,EAAE;;QAG5B,IAAA,CAAA,SAAS,GAAY,KAAK;QAE1B,IAAA,CAAA,SAAS,GAAY,IAAI;QAEzB,IAAA,CAAA,kBAAkB,GAAY,KAAK;QAEnC,IAAA,CAAA,kBAAkB,GAAY,KAAK;QAEnC,IAAA,CAAA,kBAAkB,GAAY,KAAK;QAEnC,IAAA,CAAA,QAAQ,GAAY,KAAK;;AAGxB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAiB;QAItD,IAAA,CAAA,sBAAsB,GAAW,CAAC;AAgBxB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAiB;AAEjD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO;QAItC,IAAA,CAAA,IAAI,GAAW,sBAAsB;QAW9C,IAAA,CAAA,EAAE,GAAW,EAAE;;;QA8WP,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;IArX7C;AAEJ,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE;IAC7D;IAIA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QAC3B,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI;QAC1C,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEA,UAAU,GAAA;QACR,OAAO,CAAA,qBAAA,EAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,CAAE;IACrG;AAEA,IAAA,SAAS,CAAC,CAAS,EAAA;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACtC;IAEA,cAAc,CAAC,UAAe,EAAE,MAAe,EAAA;QAC7C,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,GAAG,GAAG;QAAE;AAC7B,QAAA,MAAM,CAAC,GAAG,EAAG,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;AACpD,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACxC;AAEA,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3D,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,QAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAK,IAAI,EAAE;IACnC;IAEA,WAAW,GAAA;;AAET,QAAA,MAAM,eAAe,GAAG,CAAC,IAAS,KAAI;AACpC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1D,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,YAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,EAAE;AAClC,QAAA,CAAC;;AAGD,QAAA,MAAM,cAAc,GAAG,CAAC,UAAe,KAAI;AACzC,YAAA,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AACvC,QAAA,CAAC;AAED,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,SAAS,EAAE,CAAA,kCAAA,CAAoC;AAC/C,YAAA,SAAS,EAAE,CAAA,iCAAA,CAAmC;AAC9C,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,qBAAqB,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;AAC5B,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE,eAAe;AACtB,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,cAAc;AACrB;SACK;QAER,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,CAAC,EAAE;AACxC,YAAA,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,kBAAkB;QACzD;QAEA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;AACnC,YAAA,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,aAAa;QAC/C;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAE;AACvB,YAAA,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO;QACnC;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAE;AACvB,YAAA,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO;QACnC;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;AAC1B,YAAA,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK;AAC3B,YAAA,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB;QACrD;AAEA,QAAA,OAAO,OAAO;IAChB;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;QAAE;IACjE;IAEA,gBAAgB,GAAA;QACd,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,gBAAgB,GAAS,IAAI,CAAC,gBAAgB,EAAE,aAAa;YACnE,IAAI,gBAAgB,EAAE;AACpB,gBAAA,gBAAgB,CAAC,YAAY,CAAC,aAAa,EAAC,YAAY,CAAC;AAEzD,gBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,oBAAA,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAC,gEAAgE,CAAC;gBACzG;AAEA,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAE,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAE;gBACxE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;AAC7C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;gBACxC;gBAEA,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAU,KAAI;AACxD,oBAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE;oBACtE,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,EAAE,EAAE;AAC5C,wBAAA,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;wBACtD,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;wBAChC,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC,EAAE;AAE5B,4BAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACtB,4BAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACtB,4BAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;4BAEtB,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,CAAC,GAAG,CAAA,CAAE,GAAG,GAAG;4BACvC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,CAAC,GAAG,CAAA,CAAE,GAAG,GAAG;AAEvC,4BAAA,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,GAAC,GAAG,GAAC,GAAG,GAAC,GAAG,GAAC,GAAG,CAAC;4BACxC,IAAI,EAAE,EAAE;gCACN,gBAAgB,EAAE,UAAU;gCAC5B,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;gCACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gCACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;4BAC1C;wBACF;oBACF;yBAAK;AACH,wBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;wBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;wBACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC1C;AACF,gBAAA,CAAC,CAAC;gBAGF,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,KAAU,KAAI;AAE7D,oBAAA,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;wBAEvB,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;AAEpC,wBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AAEjB,4BAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gCAAA,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;gCACjD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAM,CAAA,EAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA,CAAE,KAAK,CAAA,EAAG,EAAE,CAAA,CAAE,CAAE,EAAE;oCAC5G,GAAG,GAAG,CAAC;gCACT;4BACF;AAEA,4BAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAE,IAAI,CAAC,6BAA6B,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;AAEzF,4BAAA,IAAI,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAE;gCACrC,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,MAAM,CAAC,QAAQ;AAC1C,gCAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,IAAI,CAAC,YAAY,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAE;AAEvE,gCAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;oCACpB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;oCAC9C,IAAI,EAAE,IAAI,CAAC,YAAY;AACvB,oCAAA,OAAO,EAAE,IAAI;oCACb,QAAQ,EAAE,IAAI,CAAC;AAChB,iCAAA,CAAC;4BACJ;iCAAK;AAEH,gCAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;oCACjB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAE;oCACpG,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE;AAEzB,wCAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,wCAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,4CAAA,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;4CACZ,IAAI,EAAE,IAAI,CAAC,YAAY;AACvB,4CAAA,OAAO,EAAE,KAAK;4CACd,QAAQ,EAAE,IAAI,CAAC;AAChB,yCAAA,CAAC;oCACJ;gCACF;AAEA,gCAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,IAAI,CAAC,YAAY,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAE;4BACzE;wBACF;6BAAK;AAGH,4BAAA,IAAI,CAAC,cAAc,CAAE,KAAK,CAAC,MAAM,CAAE;wBACrC;oBACF;yBAAK;AACH,wBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;wBACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC1C;AACF,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;IACJ;AAGA,IAAA,gBAAgB,CAAC,IAAuB,EAAA;AAEtC,QAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;YACtD,IAAI,CAAC,SAAS,EAAE;YAChB;QACF;QAEA,IAAI,KAAK,GAAG,EAAc;AAE1B,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACxB,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;gBAC/B,IAAI,GAAG,KAAK;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC1C;YACF;QACF;AAEA,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACpC,YAAA,CAAC,KAAK,EAAE,IAAI,CAAE,IAAI,CAAE;QACtB;aAAK;YACH,KAAK,GAAmB,IAAI;QAC9B;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AAEnB,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9C,gBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,oBAAA,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBACzC;AAAM,qBAAA,IAAG,IAAI,CAAC,kBAAkB,EAAC;AAC/B,oBAAA,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBACxC;YACF;AACA,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QAChC;IACF;AAEA,IAAA,YAAY,CAAC,YAAmB,EAAA;AAC9B,QAAA,MAAM,UAAU,GAAG,CAAC,UAAe,KAAI;AACrC,YAAA,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AACvC,QAAA,CAAC;QACD,IAAI,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC/C,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAS,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1G,YAAA,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;QACpD;aAAK;YACH,OAAO,CAAC,YAAY,CAAC;QACvB;IACF;AAEA,IAAA,mBAAmB,CAAC,YAAmB,EAAA;AACrC,QAAA,MAAM,UAAU,GAAG,CAAC,UAAe,KAAI;AACrC,YAAA,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AACvC,QAAA,CAAC;QACD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAS,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAK,EAAE,CAAM,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;AAC/J,QAAA,MAAM,wBAAwB,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC1E,QAAA,OAAO,wBAAwB;IACjC;AAEA,IAAA,kBAAkB,CAAC,YAAmB,EAAA;AACpC,QAAA,MAAM,UAAU,GAAG,CAAC,UAAe,KAAI;AACrC,YAAA,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AACvC,QAAA,CAAC;QACD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAS,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAK,EAAE,CAAM,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;AAC/J,QAAA,MAAM,wBAAwB,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC1E,QAAA,OAAO,wBAAwB;IACjC;AAEA,IAAA,cAAc,CAAC,MAAW,EAAA;AACxB,QAAA,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACnE,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,KAAK,GAAG,EAAE;gBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzD,MAAM,SAAS,GAAY,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,oBAAA,CAAC,KAAK,EAAE,IAAI,CAAE,IAAI,CAAC,WAAW,CAAE,SAAS,CAAE,CAAE;gBAC/C;AACA,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACrC;iBAAK;gBACH,MAAM,SAAS,GAAY,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAE,SAAS,CAAE;AAC1C,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACxB;QACF;aAAK;YACH,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACrC;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1C;AAEA,IAAA,WAAW,CAAC,SAAiB,EAAA;AAC3B,QAAA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;QAE9B,IAAI,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,CAAA,CAAE;QAChC,IAAI,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,EAAE;QAEjC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,CAAC,GAAG,CAAA,CAAE,GAAG,GAAG;QACvC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,CAAC,GAAG,CAAA,CAAE,GAAG,GAAG;QAEvC,MAAM,UAAU,GAAG,CAAA,EAAG,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;AACzC,QAAA,OAAO,UAAU;IACnB;AAEA,IAAA,SAAS,CAAC,EAAU,EAAA;QAClB,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAQ;QAClD,UAAU,CAAC,MAAK;AACd,YAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;AAC7B,QAAA,CAAC,CAAC;IACJ;IAIA,eAAe,CAAC,MAAW,EAAE,MAAW,EAAA;AACtC,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AACrD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpG;AAIA,IAAA,gBAAgB,CAAC,WAAgB,EAAA;QAC/B,IAAI,SAAS,GAAG,EAAE;QAClB,IAAI,WAAW,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;AAC3C,YAAA,MAAM,eAAe,GAAG,CAAC,IAAS,KAAI;AACpC,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3D,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,gBAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,EAAE;AAClC,YAAA,CAAC;AACD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAA,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;gBACzB,CAAC,SAAS,EAAE,IAAI,CAAE,eAAe,CAAC,EAAE,CAAC,CAAE;YACzC;QACF;AACA,QAAA,OAAO,SAAS;IAClB;;AAoCA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AAEd,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1B;aAAK;;QAEL;IACF;;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAC9B;IACF;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;+GA9dW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EALzB,CAACN,qCAAmC,EAAE,UAAU,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzChE,6uDAiDG,EAAA,MAAA,EAAA,CAAA,6vBAAA,EAAA,s7JAAA,EAAA,qQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLW,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAE1B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAbvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,aAOrB,CAACJ,qCAAmC,EAAE,UAAU,CAAC,iBAC7C,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,WACP,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,6uDAAA,EAAA,MAAA,EAAA,CAAA,6vBAAA,EAAA,s7JAAA,EAAA,qQAAA,CAAA,EAAA;6GAKzC,QAAQ,EAAA,CAAA;sBAAhB;gBAIQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAGQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBAGQ,aAAa,EAAA,CAAA;sBAArB;gBAGQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAEQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAEQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;gBAGS,QAAQ,EAAA,CAAA;sBAAjB;gBAOY,OAAO,EAAA,CAAA;sBAAnB;gBAaS,aAAa,EAAA,CAAA;sBAAtB;gBAES,WAAW,EAAA,CAAA;sBAApB;gBAE+C,gBAAgB,EAAA,CAAA;sBAA/D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;gBAErC,IAAI,EAAA,CAAA;sBAAZ;;;AEpGH,MAAMA,qCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA+B,CAAC;AAC9D,IAAA,KAAK,EAAE;CACR;AAED,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAUY,+BAA+B,CAAA;AAR5C,IAAA,WAAA,GAAA;QAUE,IAAA,CAAA,gBAAgB,GAAY,IAAI;AAQtB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ;AAExC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AACnC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO;;QAGtC,IAAA,CAAA,OAAO,GAAW,EAAE;;QAGpB,IAAA,CAAA,OAAO,GAAW,EAAE;QAEpB,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAEnC,IAAA,CAAA,UAAU,GAAW,EAAE;QACvB,IAAA,CAAA,EAAE,GAAW,IAAI;QACjB,IAAA,CAAA,EAAE,GAAW,IAAI;QAEjB,IAAA,CAAA,EAAE,GAAW,EAAE;QAOf,IAAA,CAAA,iBAAiB,GAAsB,EAAE;QACzC,IAAA,CAAA,sBAAsB,GAAY,KAAK;QAGvC,IAAA,CAAA,6BAA6B,GAAQ,EAAE;QACvC,IAAA,CAAA,uBAAuB,GAAQ,EAAE;;;QA4QzB,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;AA+ClD,IAAA;IA9VC,IAAa,OAAO,CAAC,CAAM,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACrB;IACF;IAgCA,QAAQ,GAAA;QAGN,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;IACvC;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG;AACvB,YAAA,EAAC,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAC;AACvC,YAAA,EAAC,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC;AACzC,YAAA,EAAC,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC;AACzC,YAAA,EAAC,KAAK,EAAC,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAC;AAC3D,YAAA,EAAC,KAAK,EAAC,cAAc,EAAE,WAAW,EAAE,qBAAqB;SAC1D;IACH;IAEA,UAAU,GAAA;QACR,OAAO,CAAA,0BAAA,EAA6B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,CAAE;IAC1G;AAEA,IAAA,WAAW,CAAC,CAAS,EAAA;QACnB,IAAI,EAAE,GAAG,EAAE;AACX,QAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,YAAA,IAAI,CAAC,GAAG,EAAE,EAAE;gBACV,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAAC;YACpB;iBAAK;gBACH,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA,EAAG,CAAC,CAAA,CAAE,CAAC;YACnB;QACF;AACA,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;IACnC;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,KAAK,EAAE,EAAC;AAC9D,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YACjD,IAAI,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AACjC,YAAA,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;AACrB,YAAA,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;AACrB,YAAA,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;AACrB,YAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;AAC9C,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YACnC;QACF;IACF;AAEA,IAAA,sBAAsB,CAAC,IAAY,EAAA;QAEjC,IAAI,IAAI,EAAE;YACR,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YAChC,IAAI,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AACjC,YAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AAEtB,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;YAChB,IAAI,CAAC,EAAE,EAAE;gBACP,EAAE,GAAG,IAAI;YACX;iBAAK;AACH,gBAAA,KAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,GAAI;oBAChC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,EAAE,EAAE,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,EAAE,EAAE,CAAC,CAAA,CAAE;gBAC/C;qBAAK;oBACH,EAAE,GAAG,IAAI;gBACX;YACF;AAEA,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;YAChB,IAAI,CAAC,EAAE,EAAE;gBACP,EAAE,GAAG,IAAI;YACX;iBAAK;AACH,gBAAA,KAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,GAAI;oBAChC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,EAAE,EAAE,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,EAAE,EAAE,CAAC,CAAA,CAAE;gBAC/C;qBAAK;oBACH,EAAE,GAAG,IAAI;gBACX;YACF;AAEA,YAAA,IAAI,EAAE,KAAK,IAAI,EAAE;AAAE,gBAAA,IAAI,CAAC,EAAE,GAAG,EAAE;YAAE;AACjC,YAAA,IAAI,EAAE,KAAK,IAAI,EAAE;AAAE,gBAAA,IAAI,CAAC,EAAE,GAAG,EAAE;YAAE;YAEjC,MAAM,QAAQ,GAAG,IAAI;AAErB,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,QAAQ,EAAE;AAC/D,YAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAE,QAAQ,CAAE;AAErC,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,UAAU,GAAG,QAAQ;YAC5B;iBAAK;AACH,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC7B;;;;;;YASA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAE;QAE7D;aAAK;AAEH,YAAA,IAAI,CAAC,6BAA6B,GAAG,EAAE;AACvC,YAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE;AAEjC,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAE;QAC7D;AAEA,QAAA,IAAI,CAAA,EAAG,IAAI,CAAC,sBAAsB,CAAA,CAAE,KAAK,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,CAAE,EAAE;;;QAG/D;IAEF;;AAGA,IAAA,aAAa,CAAC,CAAO,EAAA;QACnB,IAAI,GAAG,GAAG,CAAA,EAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAA,CAAE;QAC5B,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,CAAC,GAAG,CAAA,CAAE,GAAG,GAAG;AACvC,QAAA,IAAI,GAAG,GAAG,CAAA,EAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAC,CAAC,CAAA,CAAE;QAC/B,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,CAAC,GAAG,CAAA,CAAE,GAAG,GAAG;QAEvC,IAAI,GAAG,GAAG,CAAA,EAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAA,CAAE;QAChC,IAAI,EAAE,GAAI,CAAA,EAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA,CAAE;QAC7B,IAAI,EAAE,GAAI,CAAA,EAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAA,CAAE;AAE/B,QAAA,IAAI,EAAE,KAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAE,EAAE;YAAE,EAAE,GAAG,IAAI;QAAE;AACpD,QAAA,EAAE,GAAG,CAAC,EAAE,KAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,EAAE,EAAE,GAAG,EAAE,IAAK,IAAI;AAEpD,QAAA,IAAI,EAAE,KAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAE,EAAE;YAAE,EAAE,GAAG,IAAI;QAAE;AACpD,QAAA,EAAE,GAAG,CAAC,EAAE,KAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAK,CAAA,CAAA,EAAI,EAAE,EAAE,GAAG,EAAE,IAAK,IAAI;AAEpD,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;QAEZ,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;IAC1C;AAEA,IAAA,WAAW,CAAC,CAAM,EAAA;AAEhB,QAAA,IAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE;AACxD,YAAA,IAAG,KAAK,CAAC,CAAC,CAAC,EAAE;AAAE,gBAAA,OAAO,KAAK;YAAE;iBAAO;AAAE,gBAAA,OAAO,IAAI;YAAE;QACrD;AACA,QAAA,OAAO,KAAK;IACd;IAGA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI;AACd,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI;AACd,QAAA,IAAI,CAAC,6BAA6B,GAAG,EAAE;AACvC,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE;IACnC;AAEA,IAAA,SAAS,CAAC,EAAU,EAAA;QAClB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;IACtC;IAEA,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;IACrC;AAGA,IAAA,uBAAuB,CAAC,KAAU,EAAA;;;AAGhC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAE7B,QAAA,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE;QACpB,IAAI,WAAW,GAAQ,SAAS;AAChC,QAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;YACtB,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAE,CAAE;AACtE,YAAA,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAE,CAAE;AACvE,YAAA,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAE,CAAE;AACvE,YAAA,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,eAAe,EAAE;AAC7B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9D;AAEA,QAAA,IAAI,KAAK,KAAK,cAAc,EAAE;AAC5B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD;QAEA,IAAG,WAAW,EAAC;AACb,YAAA,IAAI,CAAC,UAAU,GAAG,WAAW;AAC7B,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;gBACjC,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AAC/B,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,oBAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;AACpC,oBAAA,IAAI,CAAC,sBAAsB,GAAG,WAAkB;oBAChD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,iCAAiC,CAAC,KAAK,CAAC;AACpF,gBAAA,CAAC,CAAC;YACJ;QACF;IAEF;AAGA,IAAA,iCAAiC,CAAC,KAAa,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,CAAC,EAAE;AACjE,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtC,gBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;oBACxB,OAAO,IAAI,CAAC,WAAW;gBACzB;YACF;QACF;AACA,QAAA,OAAO,EAAE;IACX;IAGA,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE;AACjC,QAAA,IAAI,CAAC,6BAA6B,GAAG,EAAE;IACzC;;AA8BA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1B;IACF;;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAE7B,YAAA,IAAI;gBACF,KAAK,GAAG,IAAI,IAAI,CAAE,GAAG,KAAK,CAAA,CAAE,CAAE;YAChC;AAAE,YAAA,OAAO,KAAK,EAAE,EAAC;AAEjB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC3B;iBAAK;gBACH,IAAI,CAAC,KAAK,EAAE;YACd;QACF;IACF;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;+GAjWW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAJ7B,CAACD,qCAAmC,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBpD,8iJAgGM,EAAA,MAAA,EAAA,CAAA,u1DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1EQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,2BAA2B,0VAAE,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAElF,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,SAAA,EAG1B,CAACA,qCAAmC,CAAC,cACpC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,2BAA2B,EAAE,yBAAyB,CAAC,EAAA,QAAA,EAAA,8iJAAA,EAAA,MAAA,EAAA,CAAA,u1DAAA,CAAA,EAAA;8BAOjF,OAAO,EAAA,CAAA;sBAAnB;gBAKS,aAAa,EAAA,CAAA;sBAAtB;gBAES,QAAQ,EAAA,CAAA;sBAAjB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBAEQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAW8C,cAAc,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;;;IE3BnC;AAAZ,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AAEjB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,gBAA2B;AAE3B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,MAAoB;AACpB,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,UAA4B;AAChC,CAAC,EAZW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;IAcb;AAAZ,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,WAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,WAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACzB,CAAC,EAPW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;;ACrCvB,MAAOO,yBAAuB,GAAQ;AACpC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACzD,IAAA,KAAK,EAAE;CACR;AAED,MAAMP,qCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACzD,IAAA,KAAK,EAAE;CACR;AAED,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAgBY,0BAA0B,CAAA;AAmBrC,IAAA,WAAA,GAAA;QAjBA,IAAA,CAAA,MAAM,GAAG,EAAqB;QAE9B,IAAA,CAAA,iBAAiB,GAAQ,EAAE;QAC3B,IAAA,CAAA,uBAAuB,GAAY,KAAK;AAE9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAmB;QAE/C,IAAA,CAAA,2BAA2B,GAAW,EAAE;QAGxC,IAAA,CAAA,gBAAgB,GAAW,EAAE;QAC7B,IAAA,CAAA,eAAe,GAAW,EAAE;QAErC,IAAA,CAAA,IAAI,GAAW,QAAQ;QAEvB,IAAA,CAAA,OAAO,GAAG,KAAK;;;QAqLP,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;IApLjC;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG;AACvB,YAAA,EAAC,KAAK,EAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAC;AACnD,YAAA,EAAC,KAAK,EAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAC;AACrD,YAAA,EAAC,KAAK,EAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAC;AACrD,YAAA,EAAC,KAAK,EAAC,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAC;AAEvD,YAAA,EAAC,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAC;AAC/C,YAAA,EAAC,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC;AACjD,YAAA,EAAC,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC;AACjD,YAAA,EAAC,KAAK,EAAC,eAAe,EAAE,WAAW,EAAE,WAAW,EAAC;AACjD,YAAA,EAAC,KAAK,EAAC,cAAc,EAAE,WAAW,EAAE,WAAW;SAChD;QACD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,2BAA2B,KAAK,EAAE,EAAE;AAC3C,gBAAA,IAAI,CAAC,uBAAuB,CAAE,IAAI,CAAC,2BAA2B,CAAE;YAClE;AACF,QAAA,CAAC,CAAC;IAEJ;AAEA,IAAA,uBAAuB,CAAC,KAAW,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;QAGpB,KAAK,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,KAAK,CAAA,CAAE,GAAG,CAAA,EAAG,KAAK,CAAA,CAAE;AAE9D,QAAA,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE;AACpB,QAAA,IAAI,YAAY,GAAG,IAAI,IAAI,EAAE;QAC7B,IAAI,WAAW,GAAQ,SAAS;AAGhC,QAAA,IAAI,KAAK,KAAK,aAAa,EAAE;AAC3B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrE;AAEA,QAAA,IAAI,KAAK,KAAK,aAAa,EAAE;AAC3B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrE;AAEA,QAAA,IAAI,KAAK,KAAK,aAAa,EAAE;AAC3B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrE;AAEA,QAAA,IAAI,KAAK,KAAK,cAAc,EAAE;AAC5B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACtE;AAEA,QAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;YACtB,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAE,CAAE;AAC/E,YAAA,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAE,CAAE;AAChF,YAAA,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAE,CAAE;AAChF,YAAA,WAAW,GAAG,IAAI,IAAI,CAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,eAAe,EAAE;AAC7B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9D;AAEA,QAAA,IAAI,KAAK,KAAK,cAAc,EAAE;AAC5B,YAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD;QAEA,IAAG,WAAW,EAAC;YACb,IAAI,CAAC,MAAM,GAAG;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACzC,gBAAA,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG;aACb;YAEpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACrB;aAAK;AAEH,YAAA,IAAI,CAAC,MAAM,GAAG,EAAqB;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QAEtB;IAEF;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;;AAEtB,QAAA,OAAO,EAAE;AACT;;;;;;;AAOE;IACJ;AAEA,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAC;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACrB;aAAK;AACH,YAAA,IAAI,CAAC,MAAM,GAAG,EAAqB;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC;IACF;AAEA,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACrB;aAAK;AACH,YAAA,IAAI,CAAC,MAAM,GAAG,EAAqB;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,CAAE,GAAG,IAAI,CAAC,IAAI,CAAA,CAAE,KAAK,QAAQ,IAAK,aAAa,GAAG,QAAQ;AACvE,QAAA,IAAI,CAAC,2BAA2B,GAAG,EAAE;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAqB;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACjC;;AA4CA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1B;IACF;;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;QAEzB;IACF;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;AAEO,IAAA,QAAQ,CAAC,CAAc,EAAA;QAC5B,IAAI,CAAC,KAAM,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAE,EAAE;AACjD,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,GAAG,UAAU;QACpD;AACA,QAAA,OAAO,IAAI;IACb;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACxD,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,KAAK;IACd;+GA1PW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAJxB,CAACD,qCAAmC,EAAEO,yBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/B7E,kgFAqDQ,EAAA,MAAA,EAAA,CAAA,k3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,+BAA+B,+BAA+B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE7G,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,aAGrB,CAACP,qCAAmC,EAAEO,yBAAuB,CAAC,cAC7D,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,+BAA+B,CAAC,EAAA,QAAA,EAAA,kgFAAA,EAAA,MAAA,EAAA,CAAA,k3BAAA,CAAA,EAAA;wDAS/G,QAAQ,EAAA,CAAA;sBAAjB;gBAEQ,2BAA2B,EAAA,CAAA;sBAAnC;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBAEQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;;;ME9BU,wBAAwB,CAAA;IAenC,IAAa,IAAI,CAAC,IAAS,EAAA;;IAE3B;IACA,IAAI,IAAI,KAAS,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IAGpC,IAAa,OAAO,CAAC,OAAY,EAAA;;IAEjC;IACA,IAAI,OAAO,KAAS,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAG1C,IAAa,UAAU,CAAC,CAAS,EAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACtB;IACF;IACA,IAAI,UAAU,KAAW,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAuBlD,WAAA,CACU,QAAkB,EAClB,sBAA6C,EAAA;QAD7C,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QAvDhC,IAAA,CAAA,WAAW,GAAG,EAAS;QAIvB,IAAA,CAAA,MAAM,GAAa,EAAE;QAErB,IAAA,CAAA,YAAY,GAAY,KAAK;QAIpB,IAAA,CAAA,MAAM,GAAY,IAAI;QAcvB,IAAA,CAAA,WAAW,GAAW,SAAS;QAQ9B,IAAA,CAAA,cAAc,GAAW,gBAAgB;AACzC,QAAA,IAAA,CAAA,iBAAiB,GAAY,IAAI,CAAC;AAClC,QAAA,IAAA,CAAA,eAAe,GAAY,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,yBAAyB,GAAY,IAAI,CAAC;QAC1C,IAAA,CAAA,YAAY,GAAY,IAAI;QAC5B,IAAA,CAAA,eAAe,GAAY,KAAK;AAE/B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;QAE5C,IAAA,CAAA,gBAAgB,GAAW,EAAE;QAC7B,IAAA,CAAA,eAAe,GAAW,EAAE;QAEpB,IAAA,CAAA,mBAAmB,GAAY,KAAK;QAE5C,IAAA,CAAA,UAAU,GAAY,KAAK;QAC3B,IAAA,CAAA,gBAAgB,GAAW,CAAC;AAC5B,QAAA,IAAA,CAAA,cAAc,GAAW,EAAE,CAAC;QAgM5B,IAAA,CAAA,KAAK,GAAY,IAAI;QACrB,IAAA,CAAA,eAAe,GAAQ,SAAS;IA5L5B;AAEJ,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE;IAC7D;IAGA,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;AAC7C,gBAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAC;oBAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;wBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC7C,4BAAA,IAAI;gCACF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,IAAI,CAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAE,CAAE;4BACrE;AAAE,4BAAA,OAAO,KAAK,EAAE,EAAC;wBACnB;6BAAK;AACH,4BAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;wBACpD;AACA,wBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;oBACjC;gBACF;YACF;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK;YAC7E,IAAI,CAAC,QAAQ,EAAE;AACjB,QAAA,CAAC,CAAC;IACJ;IAEA,sBAAsB,GAAA;QACpB,IAAI,KAAK,GAAG,KAAK;QACjB,IAAI,IAAI,GAAG,KAAK;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,YAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE;oBAClC,KAAK,GAAG,IAAI;AACZ,oBAAA,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClE,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;gBACrD;gBACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE;oBACjC,IAAI,GAAG,IAAI;AACX,oBAAA,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;gBACpD;YACF;QACF;AACA,QAAA,OAAO,CAAE,KAAK,IAAI,IAAI,IAAK,IAAI,GAAG,KAAK;IACzC;AAEA,IAAA,aAAa,CAAC,CAAS,EAAA;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5B,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACxB,QAAA,OAAO,EAAE,CAAC,CAAC;IACb;AAEA,IAAA,UAAU,CAAC,CAAS,EAAA;QAClB,IAAI,GAAG,GAAG,GAAG;QACb,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC3B,GAAG,GAAG,IAAI;QACZ;AACA,QAAA,OAAO,GAAG;IACZ;AAGA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAEhC,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY;AACzC,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,IAAI,EAAE;YACb;QACF;AAEA,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACjC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,YAAY;AAC/C,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACnD,IAAI,CAAC,IAAI,EAAE;YACb;QACF;IACF;IAEQ,IAAI,GAAA;QACV,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;gBAC7C,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAqB,KAAI;AAC/C,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;AAC/B,gBAAA,CAAC,CAAC;YACJ;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B;YAEA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,EAAE;gBAClD,IAAI,CAAC,YAAY,EAAE;YACrB;QACF;IACF;AAEQ,IAAA,SAAS,CAAC,IAAS,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAClC,YAAA,MAAM,CAAC,GAAG,CAAE,CAAE,CAAC,CAAA,EAAG,IAAI,CAAA,CAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAG,IAAI,EAAE,EAAG,WAAW,EAAE;AACnG,YAAA,OAAO,CAAC;QACV;AACA,QAAA,OAAO,IAAI;IACb;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,IAAI,EAAE;QACb;QACA,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;YACnC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAqB,EAAE,CAAS,KAAI;AAErD,gBAAA,IAAI,MAAM,CAAC,KAAK,EAAE;oBAAE,QAAO,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE;AAC9C,gBAAA,IAAI,MAAM,CAAC,WAAW,EAAE;oBAAE,QAAO,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAE;AAC1D,gBAAA,IAAI,MAAM,CAAC,WAAW,EAAE;oBAAE,QAAO,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAE;gBAE1D,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,EAAE,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AACtG,oBAAA,QAAO,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpB;AACA,gBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7B,oBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACtB,wBAAA,MAAM,CAAC,UAAU,GAAG,KAAK;oBAC3B;gBACF;AAEF,YAAA,CAAC,CAAC;QACJ;QAEA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;IAGQ,cAAc,CAAC,GAAQ,EAAE,IAAS,EAAA;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACjC,IAAI,OAAO,GAAG,GAAG;AACjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AAExB,YAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnE,gBAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnD,gBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5D,oBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1E;YACF;AAGA,YAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACtC,gBAAA,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,EAAE;AAClB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,oBAAA,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,oBAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,wBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtB;gBACF;AACA,gBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,oBAAA,OAAO,SAAS;gBAClB;AACA,gBAAA,OAAO,OAAO;YAChB;iBAAO;AACL,gBAAA,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1C,oBAAA,OAAO,SAAS;gBAClB;AACA,gBAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;AACtB,gBAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,oBAAA,OAAO,SAAS;gBAClB;YACF;QACF;AACA,QAAA,OAAO,OAAO;IAChB;AAQA,IAAA,aAAa,CAAE,UAAe,EAAA;AAE5B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;YAE7C,IAAI,KAAK,GAAG,EAAS;AACrB,YAAA,KAAK,CAAC,cAAc,GAAG,IAAI;AAE3B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAE9C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE;AAC3E,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,EAAE,MAAM,EAAE,KAAM;AAClD,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,KAAM;AACvD,oBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE,MAAM,EAAE,KAAM;AAChE,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;gBACvC;gBAEA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE;AAC1E,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,EAAE,MAAM,EAAE,IAAK;AACjD,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,IAAK;AACtD,oBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,IAAK;AAC9D,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;gBACvC;YACF;YACA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxC,IAAI,CAAC,QAAQ,EAAE;YACjB;QAEF;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IAEpB;IAEA,yBAAyB,CAAC,UAAkB,EAAE,QAAkB,EAAA;AAC9D,QAAA,IAAI;YACF,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1C,gBAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACvC,gBAAA,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACtC,gBAAA,OAAO,EAAE,CAAA,EAAG,GAAG,GAAG,GAAG,CAAA,EAAG,GAAG,CAAA,EAAG,IAAI,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC;YAChD;iBAAO;AACL,gBAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC7C,OAAO,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,GAAG,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC;YAChC;QACF;AAAE,QAAA,OAAO,KAAK,EAAE,EAAC;AACjB,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,mBAAmB,CAAC,UAAkB,EAAA;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;YAC7C,OAAO,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,GAAG,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC;QAChC;AAAE,QAAA,OAAO,KAAK,EAAE,EAAC;AACjB,QAAA,OAAO,CAAC;IACV;IAEA,QAAQ,CAAC,IAAmB,EAAE,KAAW,EAAA;AAEvC,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;;AAG3B,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;QAEhC,IAAI,OAAO,GAAG,IAAI;AAElB,QAAA,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,EAAE;YAC/B,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,EAAE;YACzC,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE;YACtE,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI,KAAK,EAAE,cAAc,IAAK,OAAO,EAAE;YACrC,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,UAAU;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;QAEA,IAAG,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,OAAO,EAAE;YAClC,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACpD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;QAEA,IAAG,KAAK,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,IAAI,OAAO,EAAE;YACzC,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;QAEA,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5C,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,mBAAmB,CAAE,IAAI,CAAC,KAAK,CAAE,EAAE;AAC7D,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE;YACzD,OAAO,GAAG,KAAK;AACf,YAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACzB,YAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACnD,YAAA,KAAK,WAAW,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,GAAI;AAChD,gBAAA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,yBAAyB,CAAE,IAAI,CAAC,KAAK,CAAE,EAAE;AACnE,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7D,OAAO,GAAG,KAAK;AACf,YAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACzB,YAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACnD,YAAA,KAAK,WAAW,IAAI,CAAC,WAAW,EAAE,MAAM,KAAK,EAAE,GAAI;AACjD,gBAAA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,yBAAyB,CAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAE,EAAE;AACzE,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B;QACF;QAEA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAM,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAE,EAAE;YACxE,OAAO,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B;QAIA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE;AAC1C,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAClC;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;AAEA,IAAA,UAAU,CAAC,EAAO,EAAA;AAChB,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE;AAC5B,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE;AACzB,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE;AAC3B,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,EAAE;QAChC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpE;IAGA,YAAY,GAAA;AACV,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AAE3C,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC;AAE1B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC,gBAAA,IAAI,WAAW,CAAC,UAAU,IAAI,QAAQ,WAAW,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,WAAW,CAAC,UAAU,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE;oBAEnM,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC;AAC/D,oBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC;oBACxE,IAAI,UAAU,EAAE;AACd,wBAAA,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;wBAEvC,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,EAAE;4BAC/D,KAAM,UAAU,KAAK,WAAW,CAAC,UAAU,GAAI;AAC7C,gCAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;4BAC7B;wBACF;6BAAK;4BAEH,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE;;AAE7C,gCAAA,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE;;oCAGrD,IAAI,cAAc,GAAG,EAAE;AACvB,oCAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;wCAClD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,wCAAA,IAAI,CAAA,EAAG,MAAM,EAAE,KAAK,CAAA,CAAE,KAAK,CAAA,EAAG,WAAW,CAAC,UAAU,CAAA,CAAE,EAAG;AACvD,4CAAA,cAAc,GAAG,MAAM,EAAE,SAAU;4CACnC;wCACF;oCACF;oCACA,IAAI,cAAc,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE;AACjD,wCAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,4CAAA,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC;AAChC,4CAAA,KAAM,UAAU,KAAK,MAAM,GAAI;AAC7B,gDAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;4CAC7B;wCACF;oCACF;yCAAK;;wCAGH,IAAI,EAAG,UAAU,KAAK,WAAW,CAAC,UAAU,CAAE,EAAE;AAC9C,4CAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;wCAC7B;oCACF;gCAEF;4BAGF;iCAAK;AACH,gCAAA,IAAI,EAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,WAAW,CAAC,UAAU,CAAE,EAAE;AAC7F,oCAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;gCAC7B;4BACF;wBACF;oBAEF;yBAAK;AACH,wBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;oBAC7B;gBACF;AAGA,gBAAA,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,YAAY,IAAI,IAAI,CAAC,KAAK,CAAE,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,EAAE;AAEhK,oBAAA,IAAI,UAAU,GAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC;AAE7E,oBAAA,IAAI;AAAE,wBAAA,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;oBAAE;AAAE,oBAAA,OAAO,KAAK,EAAE,EAAC;AAC1D,oBAAA,IAAI,UAAU,IAAK,UAAU,YAAY,IAAI,IAAI,CAAC,KAAK,CAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE;wBAC9E,IAAI,SAAS,GAAG,KAAK;wBAErB,MAAM,SAAS,GAAK,CAAE,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAG,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACvF,MAAM,UAAU,GAAI,CAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAG,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1E,wBAAA,IAAI,WAAW,CAAC,SAAS,EAAE;AACzB,4BAAA,QAAQ,WAAW,CAAC,SAAS;gCAC3B,KAAK,WAAW,CAAC,EAAE;AAAK,oCAAA,SAAS,IAAK,MAAM,CAAC,SAAS,CAAC,GAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCAClF,KAAK,WAAW,CAAC,EAAE;AAAK,oCAAA,SAAS,IAAK,MAAM,CAAC,SAAS,CAAC,GAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCAClF,KAAK,WAAW,CAAC,GAAG;AAAI,oCAAA,SAAS,IAAK,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCAClF,KAAK,WAAW,CAAC,GAAG;AAAI,oCAAA,SAAS,IAAK,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCAClF,KAAK,WAAW,CAAC,KAAK;AAAE,oCAAA,SAAS,IAAK,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCACnF,KAAK,WAAW,CAAC,QAAQ;AAAE,oCAAA,SAAS,IAAK,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;AACrF,gCAAA,SAAS,SAAS,IAAK,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;;wBAEpE;6BAAK;AACH,4BAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAAE;wBACvE;wBACA,IAAI,CAAC,SAAS,EAAE;AACd,4BAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;wBAC7B;oBACF;gBACF;AAIA,gBAAA,IAAI,WAAW,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,QAAQ,KAAM,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAE,EAAE;oBAE5K,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;AACvD,oBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC;oBAExE,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;AAC1C,wBAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;wBAC/B,IAAI,SAAS,GAAG,KAAK;AACrB,wBAAA,IAAI,WAAW,CAAC,SAAS,EAAE;AAEzB,4BAAA,QAAQ,WAAW,CAAC,SAAS;gCAC3B,KAAK,WAAW,CAAC,EAAE;AAAK,oCAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCAC/F,KAAK,WAAW,CAAC,EAAE;AAAK,oCAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCAC/F,KAAK,WAAW,CAAC,GAAG;AAAI,oCAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAE;gCAC9F,KAAK,WAAW,CAAC,GAAG;AAAI,oCAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAG;gCAC/F,KAAK,WAAW,CAAC,KAAK;AAAE,oCAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAE;gCAC/F,KAAK,WAAW,CAAC,QAAQ;AAAE,oCAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;oCAAE;AACjG,gCAAA,SAAS,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAE;;wBAEjF;6BAAK;AACH,4BAAA,SAAS,IAAK,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAAE;wBACvE;wBACA,IAAI,CAAC,SAAS,EAAE;AACd,4BAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;wBAC7B;oBACF;gBACF;AAGA,gBAAA,IAAI,QAAQ,WAAW,CAAC,UAAU,CAAC,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,KAAK,IAAI,EAAE;AAEpF,oBAAA,IAAI,UAAU,GAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC;oBAE7E,IAAI,UAAU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;wBACzC,IAAI,WAAW,GAAG,CAAC;AACnB,wBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,4BAAA,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;AAC1B,4BAAA,IAAI,IAAI,KAAK,WAAW,CAAC,UAAU,EAAE;AACnC,gCAAA,WAAW,EAAE;4BACf;wBACF;AACA,wBAAA,IAAI,WAAW,KAAK,CAAC,EAAE;AACrB,4BAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;wBAC7B;oBACF;yBAAK;wBACH,IAAI,EAAG,UAAU,KAAK,WAAW,CAAC,UAAU,CAAE,EAAE;AAC9C,4BAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;wBAC7B;oBACF;gBACF;YAEF;AAEF,QAAA,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE;IAEjB;IAEQ,QAAQ,GAAA;QAGd,MAAM,WAAW,GAAG,EAAE;QAEtB,IAAI,SAAS,GAAG,KAAK;AACrB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,EAAE;gBACnE,SAAS,GAAG,IAAI;gBAAE;YACpB;QACF;QAEA,IAAI,SAAS,EAAE;AACb,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE;AACjE,oBAAA,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClC;YACF;AAEA,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,OAAO,EAAC,CAAC;YACrC;QACF;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,OAAO,EAAC,CAAC;IACvC;IAEA,YAAY,CAAC,KAAa,EAAE,KAAc,EAAA;QACxC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,KAAK;QAC9C;IACF;AAEA,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE;AACtD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,gBAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACpC;QACF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;+GAxlBW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,meAFtB,CAAC,QAAQ,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBzB,8rVAkNG,EAAA,MAAA,EAAA,CAAA,8rCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnMW,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,uuCAAE,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,6BAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,+BAA+B,8LAAE,qBAAqB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG3I,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAGjB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,qBAAqB,CAAC,EAAA,SAAA,EAC1I,CAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,8rVAAA,EAAA,MAAA,EAAA,CAAA,8rCAAA,CAAA,EAAA;8GAMI,WAAW,EAAA,CAAA;sBAArC,SAAS;uBAAC,aAAa;gBAQf,MAAM,EAAA,CAAA;sBAAd;gBAGY,IAAI,EAAA,CAAA;sBAAhB;gBAMY,OAAO,EAAA,CAAA;sBAAnB;gBAMY,UAAU,EAAA,CAAA;sBAAtB;gBAOQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,yBAAyB,EAAA,CAAA;sBAAjC;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBAES,MAAM,EAAA,CAAA;sBAAf;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;;;MEvDU,6BAA6B,CAAA;IAExC,WAAA,CACU,QAAkB,EAClB,UAA0B,EAAA;QAD1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,UAAU,GAAV,UAAU;IAChB;AAEI,IAAA,OAAO,CAAC,CAAM,EAAA;AACpB,QAAA,IAAI,CAAC,IAAK,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AACnD,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE;gBAAC;gBAC1D,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AACtB,oBAAA,OAAO,KAAK;gBACd;qBAAO;AACL,oBAAA,OAAO,IAAI;gBACb;YACF;QACF;AACA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,SAAS,CAAC,IAAS,EAAA;AACzB,QAAA,MAAM,CAAC,GAAG,CAAE,CAAE,CAAC,CAAA,EAAG,IAAI,CAAA,CAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAG,IAAI,EAAE,EAAG,WAAW,EAAE;AACnG,QAAA,OAAO,CAAC;IACV;AAEA;;;;;AAKG;AACH,IAAA,IAAI,CAAC,KAAa,EAAE,QAAa,EAAE,aAAmB,EAAA;AACpD,QAAA,IAAI,KAAK,IAAI,EAAE,EAAC;AAEd,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,OAAO,QAAQ;YACjB;YACA,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,EAAE;gBACzD,aAAa,GAAG,EAAE;gBAClB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,oBAAA,aAAa,CAAC,IAAI,CAAE,GAAG,CAAE;gBAC3B;YACF;AAEA,YAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,gBAAA,OAAO,QAAQ;YACjB;YAEA,IAAI,QAAQ,GAAG,KAAK;AAEpB,YAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7B,IAAI,MAAM,GAAC,EAAE;AACb,YAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC1B,gBAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC3B,IAAI,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE;oBAC5C,QAAQ,GAAG,IAAI;AACf,oBAAA,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE;wBACvC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACzC,wBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,UAAU,EAAE;AAC7D,4BAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,kBAAkB,CAAC;AAC7D,4BAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC;AACnD,4BAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAC,GAAG,GAAC,KAAK,GAAC,GAAG,GAAC,OAAO,CAAC,WAAW,CAAC,CAAC;4BAC1E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;AACpE,gCAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gCAAE;4BACxB;wBACF;6BAAO;4BACL,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAC,EAAE,CAAC;4BAC3F,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;AACpE,gCAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gCAAE;4BACxB;wBACF;oBACF;gBACF;YACF;AAEA,YAAA,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;;gBAEpF,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;AACpC,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;oBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;wBAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC1B;gBACF;YACF;AAGA,YAAA,OAAO,MAAM;QACf;AACA,QAAA,OAAO,QAAQ;IACjB;+GA1FW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;;4FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCQY,4BAA4B,CAAA;IAiBvC,IAAa,WAAW,CAAC,WAAgB,EAAA;QACvC,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,YAAY,GAAG,WAAW;AAE/B,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW;gBAChC,IAAI,CAAC,OAAO,EAAE;YAChB;QACF;IACF;IACA,IAAI,WAAW,KAAI,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;AAM7C,IAAA,WAAA,CACU,qBAAoD,EAAA;QAApD,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;AAhC/B;;;;;;AAMG;QAEM,IAAA,CAAA,WAAW,GAAW,aAAa;QAEnC,IAAA,CAAA,MAAM,GAAY,IAAI;QAE/B,IAAA,CAAA,WAAW,GAAW,EAAE;AAiBd,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAO;IAIrC;AAEJ,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA,EAAG,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC;AAC5E,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE;IAChB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB;aAAK;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;YACvB,IAAI,CAAC,OAAO,EAAE;QAChB;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;IACvB;IAEA,OAAO,GAAA;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,aAAa,CAAE;IACvC;+GAvDW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,6BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAF1B,CAAC,cAAc,CAAC,0BCZ/B,kuBAaQ,EAAA,MAAA,EAAA,CAAA,gdAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG1B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;+BACI,wBAAwB,EAAA,UAAA,EAGtB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,CAAC,EAAA,SAAA,EACzB,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,kuBAAA,EAAA,MAAA,EAAA,CAAA,gdAAA,CAAA,EAAA;+FAYpB,WAAW,EAAA,CAAA;sBAAnB;gBAEQ,MAAM,EAAA,CAAA;sBAAd;gBAKY,WAAW,EAAA,CAAA;sBAAvB;gBAcS,KAAK,EAAA,CAAA;sBAAd;;;AE1CH,MAAM,IAAI,CAAA;AAER,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;IACxB;AAMD;MASY,+BAA+B,CAAA;IAK1C,IAAa,MAAM,CAAE,MAAc,EAAA;QACjC,IAAI,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE;AACrC,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;YACrB,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;IACA,IAAI,MAAM,KAAY,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IAG3C,IAAa,SAAS,CAAE,SAA+B,EAAA;QACrD,IAAI,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;AAC9C,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;IACA,IAAI,SAAS,KAA2B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;IAIhE,IAAa,QAAQ,CAAE,QAAiB,EAAA;QACtC,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AAC3C,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;YACzB,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;IACA,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AAIhD,IAAA,WAAA,GAAA;QAhCS,IAAA,CAAA,IAAI,GAAW,CAAC;QAEjB,IAAA,CAAA,OAAO,GAAW,CAAC;QASnB,IAAA,CAAA,UAAU,GAAG,EAA0B;QAUvC,IAAA,CAAA,SAAS,GAAY,KAAK;AASlC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,KAAK,EAAQ;IAEV;IAEhB,QAAQ,GAAA;AACN,QAAA,UAAU,CAAC,MAAK,EAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,MAAM,GAAG,IAAI,KAAK,EAAQ;QAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;AAC9B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,gBAAA,CAAC,MAAM,EAAE,IAAI,CAAC;AACZ,oBAAA,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,CAAC,GAAC,CAAC;AACV,oBAAA,KAAK,EAAE,cAAc;AACrB,oBAAA,YAAY,EAAE,EAAE;AACjB,iBAAA,CAAC;YACJ;QACF;QAEA,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACtB;QAEA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,gBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,eAAe;AACjC,gBAAA,IAAI,CAAC,CAAC,GAAC,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC3C,oBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa;gBACjC;YACF;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9B,gBAAA,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE;oBACpB,MAAM,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,YAAY,GAAG,eAAe;gBACjD;YACF;QACF;AAEA,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;+GA7EW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzB5C,2kBAcQ,EAAA,MAAA,EAAA,CAAA,uxBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDSM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,UAAA,EAG1B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2kBAAA,EAAA,MAAA,EAAA,CAAA,uxBAAA,CAAA,EAAA;wDAIhB,IAAI,EAAA,CAAA;sBAAZ;gBAGY,MAAM,EAAA,CAAA;sBAAlB;gBASY,SAAS,EAAA,CAAA;sBAArB;gBAUY,QAAQ,EAAA,CAAA;sBAApB;;;MEvCU,0BAA0B,CAAA;AAUrC,IAAA,WAAA,GAAA;QARS,IAAA,CAAA,GAAG,GAAQ,GAAG,GAAC,CAAA,CAAA,CAAG,GAAC,CAAA,CAAA,CAAG,GAAC,GAAG,GAAC,CAAA,CAAA,CAAG,GAAC,CAAA,CAAA,CAAG,GAAC,GAAG,GAAC,CAAA,CAAA,CAAG,GAAC,CAAA,OAAA,CAAS,GAAC,CAAA,CAAA,CAAG,GAAC,CAAA,KAAA,CAAO,GAAC,KAAK,GAAC,CAAA,CAAA,CAAG,GAAC,CAAA,EAAA,CAAI,GAAC,GAAG,GAAC,CAAA,IAAA,CAAM,GAAC,CAAA,CAAA,CAAG,GAAC,GAAG,GAAC,CAAA,CAAA,CAAG,GAAC,CAAA,SAAA,CAAW,GAAC,GAAG,GAAC,CAAA,GAAA,CAAK,GAAC,CAAA,CAAA,CAAG;QAChI,IAAA,CAAA,OAAO,GAAW,EAAE;QAE7B,IAAA,CAAA,SAAS,GAAW,EAAE;QACtB,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,gBAAgB,GAAW,EAAE;QAC7B,IAAA,CAAA,SAAS,GAAW,EAAE;IAEN;IAEhB,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE;QAEzC,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;AAEzD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;IAC1C;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAG;AACxB,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO;YACvB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC;AAC9B,YAAA,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,EAAE;IACX;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAG;AACxB,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO;YACvB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC;AAC9B,YAAA,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE;YAC3B,OAAO,aAAa,GAAC,IAAI;QAC3B;AACA,QAAA,OAAO,EAAE;IACX;IAEA,gBAAgB,GAAA;QACd,IAAI,IAAI,GAAG,EAAE;QACb,IAAI,QAAQ,GAAG,IAAI;QACnB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM;AAExC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,QAAQ,GAAG,EAAE;QACf;AAEA,QAAA,IAAI,KAAK,GAAG,EAAE,EAAE;AACd,YAAA,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAE,KAAK,GAAC,CAAC,CAAC,CAAC,IAAK,GAAG;AACvC,YAAA,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;QACvB;AAEA,QAAA,IAAI,KAAK,GAAG,EAAE,EAAE;AACd,YAAA,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAE,KAAK,GAAC,CAAC,CAAC,CAAC,IAAK,GAAG;AACxC,YAAA,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC;QACvB;QAIA,OAAO,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAI;IACxB;+GAhEW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVvC,igBAQM,EAAA,MAAA,EAAA,CAAA,yWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,UAAA,EAGpB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,igBAAA,EAAA,MAAA,EAAA,CAAA,yWAAA,CAAA,EAAA;wDAIhB,GAAG,EAAA,CAAA;sBAAX;gBACQ,OAAO,EAAA,CAAA;sBAAf;;;MERU,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;QAKU,IAAA,CAAA,UAAU,GAAW,EAAE;QACvB,IAAA,CAAA,aAAa,GAAa,EAAc;QACxC,IAAA,CAAA,MAAM,GAAY,KAAK;AAEvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAW;AACrC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AAE5C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAY;AACxC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEhD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAW;AAC3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AAExD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAW;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEhD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAU;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAE1C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAW;AACtC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AA6C9C,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAU,SAAS,CAAC;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAK,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;AAkBlE,IAAA;AA7DC,IAAA,OAAO,CAAC,MAAsB,EAAA;AAC5B,QAAA,IAAG,MAAM,KAAK,OAAO,EAAC;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACxB;QACA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAG,MAAM,KAAK,MAAM,EAAG;IAC9C;AAEA,IAAA,aAAa,CAAC,IAAa,EAAA;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;IAEA,eAAe,GAAA;QACb,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA,IAAA,SAAS,CAAC,OAAiB,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;AAEA,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;AAEA,IAAA,SAAS,CAAC,MAAe,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAChC;IACA,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,UAAU,CAAC,OAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;AAKA,IAAA,oBAAoB,CAAC,CAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B;AAEA,IAAA,UAAU,CAAC,KAAiB,EAAA;QAC1B,IAAI,IAAI,GAAS,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzD,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAC/C;AACA,YAAA,IAAI,KAAK,KAAK,KAAK,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAClD;QACF;IACF;+GAtFW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;MC2BY,sBAAsB,CAAA;AAgBjC;;AAEG;IACH,IAAa,OAAO,CAAC,CAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;QAC1C,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY;IACpD;AAEA;;AAEG;IACH,IAAa,WAAW,CAAC,CAAS,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY;QAClD,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;IAC5C;AAuBA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC5B,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE;QACrH;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE;QACnH;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9B,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE;QACnH;AAEA,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE;IACrH;IAIA,IAAa,MAAM,CAAC,CAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC;QAChB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;IACjD;AACA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA;;AAEG;IACH,IAAa,MAAM,CAAE,IAAmD,EAAA;QACtE,QAAQ,IAAI;AACV,YAAA,KAAK,OAAO;AAAE,gBAAA,IAAI,CAAC,QAAQ,GAAK,GAAG;gBAAE;AACrC,YAAA,KAAK,QAAQ;AAAE,gBAAA,IAAI,CAAC,QAAQ,GAAI,GAAG;gBAAE;AACrC,YAAA,KAAK,OAAO;AAAE,gBAAA,IAAI,CAAC,QAAQ,GAAK,GAAG;gBAAE;AACrC,YAAA,KAAK,KAAK;AAAE,gBAAA,IAAI,CAAC,QAAQ,GAAO,IAAI;gBAAE;AACtC,YAAA,KAAK,MAAM;AAAE,gBAAA,IAAI,CAAC,QAAQ,GAAO,IAAI;gBAAE;;IAE3C;AAMA;;AAEG;IACH,IAAa,IAAI,CAAC,IAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC;IAC3D;IACA,IAAI,IAAI,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AAGzC;;AAEG;IACH,IAAa,OAAO,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC;IAC7C;IACA,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAQ/C,WAAA,CACU,sBAA6C,EAC7C,kBAAsC,EAAA;QADtC,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACtB,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;AA7H3B;;;;;;AAME;QAEH,IAAA,CAAA,aAAa,GAAa,EAAc;;QAEhC,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,YAAY,GAAW,UAAU;;AAsBzC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE;AAEjC;;AAEG;QACM,IAAA,CAAA,SAAS,GAAY,IAAI;AAOlC;;AAEG;QACM,IAAA,CAAA,QAAQ,GAAW,GAAG;QAEtB,IAAA,CAAA,QAAQ,GAAkC,KAAK;QAmBhD,IAAA,CAAA,OAAO,GAAY,KAAK;QAuBhC,IAAA,CAAA,IAAI,GAAW,EAAE;QACjB,IAAA,CAAA,YAAY,GAAY,KAAK;QACrB,IAAA,CAAA,KAAK,GAAY,KAAK;QAatB,IAAA,CAAA,QAAQ,GAAY,KAAK;AAUvB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAW;AAExC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAW;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAgC;IAMrE;AAEA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE;IAC7D;IAEA,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,CACjE,CAAC,IAAa,KAAG;YACf,IAAI,IAAI,EAAE;;YAEV;YAEA,IAAI,CAAC,IAAI,EAAE;;gBAET,IAAI,CAAC,OAAO,EAAE;YAChB;QACF,CAAC,CAAC,CACH;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,CACjD,CAAC,IAAa,KAAG;YACf,IAAI,IAAI,EAAE;;AAER,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAE3B;YAEA,IAAI,CAAC,IAAI,EAAE;;AAET,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxB;QACF,CAAC,CACF,CACF;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAC1C,CAAC,IAAY,KAAG;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAClB,CAAC,CACF,CACF;QAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAE,IAAI,CAAC,aAAa,CAAE;IACzD;AAEA,IAAA,OAAO,CAAC,MAAwB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B;AAEA,QAAA,MAAM,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,OAAO;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC;IAC3C;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC;QAC1C;aAAK;AACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3C;IACF;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE;IAC5D;+GA5MW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAlBpB;YACP,kBAAkB;YAClB;SACH,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBL,w2EA8DG,EAAA,MAAA,EAAA,CAAA,m3DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjCW,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAZV;YACR,OAAO,CAAC,MAAM,EAAE;gBAChB,UAAU,CAAC,WAAW,EAAE;oBACtB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;AACtD,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;iBAC7E,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC;gBACtD,UAAU,CAAC,WAAW,EAAE;AACtB,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;iBAChF,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE;aACpD;AACJ,SAAA,EAAA,CAAA,CAAA;;4FAIQ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAtBlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,SAAA,EAGhB;wBACP,kBAAkB;wBAClB;qBACH,EAAA,UAAA,EACW;wBACR,OAAO,CAAC,MAAM,EAAE;4BAChB,UAAU,CAAC,WAAW,EAAE;gCACtB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;AACtD,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;6BAC7E,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC;4BACtD,UAAU,CAAC,WAAW,EAAE;AACtB,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;6BAChF,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE;yBACpD;AACJ,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,w2EAAA,EAAA,MAAA,EAAA,CAAA,m3DAAA,CAAA,EAAA;qHAqBZ,OAAO,EAAA,CAAA;sBAAnB;gBASY,WAAW,EAAA,CAAA;sBAAvB;gBAaQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;gBAoBY,MAAM,EAAA,CAAA;sBAAlB;gBAWY,MAAM,EAAA,CAAA;sBAAlB;gBAiBY,IAAI,EAAA,CAAA;sBAAhB;gBAaY,OAAO,EAAA,CAAA;sBAAnB;gBAMS,UAAU,EAAA,CAAA;sBAAnB;gBAES,SAAS,EAAA,CAAA;sBAAlB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;;;MEhJU,0BAA0B,CAAA;AAIrC,IAAA,WAAA,CACU,kBAAsC,EAAA;QAAtC,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAH5B,IAAA,CAAA,MAAM,GAAY,KAAK;IAInB;AAEJ,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;IACnD;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACjD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAS,KAAG,EAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC;IAC/E;+GAfW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXvC,+JAEM,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOQ,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,UAAA,EAGpB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+JAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA;;;MEEd,4BAA4B,CAAA;AAKvC,IAAA,WAAA,CACU,mBAAuC,EAAA;QAAvC,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QAJpB,IAAA,CAAA,IAAI,GAA4D,MAAM;IAK3E;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,CAAE;IAC9C;+GAXW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXzC,yMAKA,EAAA,MAAA,EAAA,CAAA,0WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,UAAA,EAGtB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,yMAAA,EAAA,MAAA,EAAA,CAAA,0WAAA,CAAA,EAAA;oFAIhB,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;;;MEPU,uBAAuB,CAAA;IAMpC,WAAA,CACY,sBAA6C,EAC7C,GAAkC,EAAA;QADlC,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACtB,IAAA,CAAA,GAAG,GAAH,GAAG;AAPR,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA0C,SAAS,CAAC;AACjE,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAqB,IAAI,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAgC,QAAQ,CAAC;QAMhE,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,UAAU,EAAE;AACrB,QAAA,CAAC,CAAC;IACN;IAEQ,MAAM,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE;IAC/D;IAEU,UAAU,GAAA;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YAAE;QAAQ;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS;QAClD,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AAEtF,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;QAEtC,IAAI,CAAC,YAAY,EAAE;YACjB,YAAY,GAAG,QAAQ;QACzB;AAEA,QAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;YAClD,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,IAAI;AACxF,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AAClE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,EAAE,IAAI,YAAY,CAAA,CAAE,CAAC;QACrF;IACF;+GAvCW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCWY,4BAA4B,CAAA;IAiBvC,WAAA,CACU,sBAA6C,EAC7C,kBAAsC,EAAA;QADtC,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACtB,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAjBnB,IAAA,CAAA,OAAO,GAAY,IAAI;QAEvB,IAAA,CAAA,YAAY,GAAW,QAAQ;QAC/B,IAAA,CAAA,aAAa,GAAW,UAAU;QAClC,IAAA,CAAA,cAAc,GAAW,WAAW;QAG7C,IAAA,CAAA,SAAS,GAAW,EAAE;QAEtB,IAAA,CAAA,aAAa,GAAa,EAAc;QAExC,IAAA,CAAA,OAAO,GAAY,KAAK;IAOpB;AAEJ,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,CAAA,EAAG,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE;IAC7D;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;QAE9D,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC;IACpD;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1C;AAEA,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC5B,QAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YAC9B,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE;AAC9F,gBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC;AAC3C,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE;YACrB;QACF;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC;IAC9C;IAEA,cAAc,GAAA;QACZ,IAAI,CAAC,OAAO,GAAS,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;QACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAgB,KAAI,EAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAE;IACzH;IAGA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE;IAC5D;+GA7DW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBzC,0vDAgCA,EAAA,MAAA,EAAA,CAAA,6UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjBc,YAAY,kIAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE1E,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACI,wBAAwB,EAAA,UAAA,EAGtB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,EAAA,QAAA,EAAA,0vDAAA,EAAA,MAAA,EAAA,CAAA,6UAAA,CAAA,EAAA;qHAI7E,OAAO,EAAA,CAAA;sBAAf;gBAEQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAE0B,WAAW,EAAA,CAAA;sBAArC,SAAS;uBAAC,aAAa;;;AErB1B,MAAOL,yBAAuB,GAAQ;AACpC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,IAAA,KAAK,EAAE;CACR;AAED,MAAMP,qCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,IAAA,KAAK,EAAE;CACR;AAED,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAUY,2BAA2B,CAAA;AAqBtC,IAAA,WAAA,GAAA;QAfS,IAAA,CAAA,WAAW,GAAW,EAAE;QACxB,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,OAAO,GAAY,KAAK;QAGxB,IAAA,CAAA,SAAS,GAAY,KAAK;QAGnC,IAAA,CAAA,aAAa,GAAW,CAAC;QAEzB,IAAA,CAAA,uBAAuB,GAAY,KAAK;AAG9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAS;AAmEpC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;;;QAMpC,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;IAxEjC;IAEhB,QAAQ,GAAA;QACN,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,QAAQ,EAAE;AACjB,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,IAAS,EAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE;QAClB;AACA,QAAA,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;IACvB;IAGA,UAAU,CAAC,IAAS,EAAE,KAAa,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAC7B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1B,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE;oBACrC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC;oBAC7B;gBACF;YACF;YACA,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;IAEQ,QAAQ,GAAA;QACd,IAAI,aAAa,GAAG,CAAC;QACrB,IAAI,KAAK,GAAU,EAAE;AACrB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,gBAAA,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;YACnB;QACF;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;IACpC;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;QAClD;AACA,QAAA,OAAO,KAAK;IACd;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAkBA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1B;IACF;;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1B;IACF;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACrB;AAEO,IAAA,QAAQ,CAAC,CAAc,EAAA;QAC5B,IAAI,CAAC,KAAM,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAE,EAAE;AACjD,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,GAAG,UAAU;QACpD;AACA,QAAA,OAAO,IAAI;IACb;IAEA,WAAW,GAAA;IAEX;+GAjJW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAJzB,CAACD,qCAAmC,EAAEO,yBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvB7E,6qDAoDA,EAAA,MAAA,EAAA,CAAA,4xCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3Bc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,8mBAAE,mBAAmB,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE/C,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,SAAA,EAGtB,CAACP,qCAAmC,EAAEO,yBAAuB,CAAC,EAAA,UAAA,EAC7D,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,6qDAAA,EAAA,MAAA,EAAA,CAAA,4xCAAA,CAAA,EAAA;wDAMlD,MAAM,EAAA,CAAA;sBAAd;gBAEQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAQS,QAAQ,EAAA,CAAA;sBAAjB;gBAmES,QAAQ,EAAA,CAAA;sBAAjB;;;AE7GH,MAAOA,yBAAuB,GAAQ;AACpC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,IAAA,KAAK,EAAE;CACR;AAED,MAAMP,qCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,IAAA,KAAK,EAAE;CACR;AAED,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAUY,4BAA4B,CAAA;AAqBvC,IAAA,WAAA,GAAA;QAhBS,IAAA,CAAA,WAAW,GAAW,mBAAmB;QACzC,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,OAAO,GAAY,KAAK;QAIxB,IAAA,CAAA,sBAAsB,GAAY,KAAK;QACvC,IAAA,CAAA,SAAS,GAAY,KAAK;AAEzB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAS;QAE9C,IAAA,CAAA,uBAAuB,GAAY,KAAK;QAExC,IAAA,CAAA,aAAa,GAAW,CAAC;AAgFf,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;;;QAMpC,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;IApFlC;IAEf,QAAQ,GAAA;AACN,QAAA,UAAU,CAAC,MAAK,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC;AAEA,IAAA,OAAO,CAAC,IAAS,EAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAC7B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,EAAE;oBACtB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI;oBAC5B;gBACF;YACF;YACA,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;AAEA,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAC7B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,EAAE;oBACtB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK;oBAC7B;gBACF;YACF;YACA,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;IAEQ,QAAQ,GAAA;QACd,IAAI,aAAa,GAAG,CAAC;QACrB,IAAI,KAAK,GAAU,EAAE;AACrB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,GAAG,CAAC,MAAM,EAAE;AACd,oBAAA,aAAa,EAAE;AACf,oBAAA,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;gBACnB;YACF;QACF;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;IACpC;IAGA,cAAc,GAAA;QACZ,IAAI,MAAM,GAAG,CAAC;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3B,gBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAC;AAC9C,oBAAA,MAAM,EAAE;oBACR;gBACF;YACF;QACF;AACA,QAAA,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;IACpC;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAkBA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1B;IACF;;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1B;IACF;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACrB;AAEO,IAAA,QAAQ,CAAC,CAAc,EAAA;QAC5B,IAAI,CAAC,KAAM,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAE,EAAE;AACjD,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,GAAG,UAAU;QACpD;AACA,QAAA,OAAO,IAAI;IACb;IAEA,WAAW,GAAA;IAEX;+GA7JW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAJ1B,CAACD,qCAAmC,EAAEO,yBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvB7E,s2EA2DA,EAAA,MAAA,EAAA,CAAA,syCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlCc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,yvBAAE,mBAAmB,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE/C,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,SAAA,EAGvB,CAACP,qCAAmC,EAAEO,yBAAuB,CAAC,EAAA,UAAA,EAC7D,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,s2EAAA,EAAA,MAAA,EAAA,CAAA,syCAAA,CAAA,EAAA;wDAMlD,MAAM,EAAA,CAAA;sBAAd;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBAEQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,sBAAsB,EAAA,CAAA;sBAA9B;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAES,QAAQ,EAAA,CAAA;sBAAjB;gBAoFS,QAAQ,EAAA,CAAA;sBAAjB;;;MEnHU,yBAAyB,CAAA;AAPtC,IAAA,WAAA,GAAA;QAUW,IAAA,CAAA,OAAO,GAAW,6BAA6B;QAEjD,IAAA,CAAA,SAAS,GAAQ,EAAE;AAK3B,IAAA;IAHC,QAAQ,GAAA;IAER;+GATW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVtC,kQAKM,EAAA,MAAA,EAAA,CAAA,mTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EAGnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,kQAAA,EAAA,MAAA,EAAA,CAAA,mTAAA,CAAA,EAAA;8BAKhB,OAAO,EAAA,CAAA;sBAAf;;;MEHU,2BAA2B,CAAA;AAPxC,IAAA,WAAA,GAAA;QAaW,IAAA,CAAA,SAAS,GAAa,EAAE;AACvB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU;AAOjD,IAAA;AALQ,IAAA,UAAU,CAAC,WAAmB,EAAA;AAEnC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;QAC7D,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK;IAClC;+GAbW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVxC,0/BA+BA,EAAA,MAAA,EAAA,CAAA,oxBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,UAAA,EAGrB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,0/BAAA,EAAA,MAAA,EAAA,CAAA,oxBAAA,CAAA,EAAA;8BAIE,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACS,SAAS,EAAA,CAAA;sBAAlB;;;MEPU,0BAA0B,CAAA;AAQrC,IAAA,WAAA,GAAA;QANS,IAAA,CAAA,MAAM,GAAY,IAAI;QACtB,IAAA,CAAA,SAAS,GAAoB,KAAK;QAE3C,IAAA,CAAA,OAAO,GAAW,IAAI;IAGN;IAEhB,QAAQ,GAAA;QACN,IAAI,GAAG,GAAG,EAAE;AACZ,QAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAA,CAAE,EAAE;YACvB,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC;QAChD;;AAGA,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE;AAC1C,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACrB;aAAK;YACH,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE;QACpC;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;AAChE,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC,OAAO,EAAC;QAC7D;aAAK;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,EAAC,YAAY,EAAE,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC,OAAO,EAAC;QACjE;IACF;AAEA,IAAA,cAAc,CAAC,GAAW,EAAA;;QAExB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACxC,QAAA,OAAO,SAAS;IACpB;+GAnCa,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVvC,qNAIM,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,UAAA,EAGpB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qNAAA,EAAA,MAAA,EAAA,CAAA,ggBAAA,CAAA,EAAA;wDAIhB,MAAM,EAAA,CAAA;sBAAd;gBACQ,SAAS,EAAA,CAAA;sBAAjB;;;MELU,cAAc,CAAA;IAwBzB,WAAA,CACU,MAAsB,EACtB,OAAe,EAAA;QADf,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,OAAO,GAAP,OAAO;QAxBT,IAAA,CAAA,QAAQ,GAAW,EAAE;AAGrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAW;AACvC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAG/C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAW;AAC5C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAGzD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAU;AACnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAGzC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAW;AACxC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAGjD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAW;AACrC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;IAOnD;AAEA,IAAA,YAAY,CAAC,MAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;IACjC;IAEA,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,gBAAgB,CAAC,WAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;IAC3C;IAEA,gBAAgB,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA,IAAA,aAAa,CAAC,OAAgB,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;IACnC;IAEA,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA,IAAA,UAAU,CAAC,IAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,WAAW,CAAC,GAAW,EAAE,aAAkC,EAAA;AACzD,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;QACf,IAAI,aAAa,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE;AACjD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3B;IAEA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,IAAI;IAClB;IAEA,cAAc,CAAC,EAAU,EAAE,QAAiB,EAAA;QAC1C,IAAI,MAAM,GAAG,IAAI;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;AAC/C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBAC9B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ;oBACpC,MAAM,GAAG,KAAK;oBACd;gBACF;YACF;QACF;QACA,IAAI,MAAM,EAAE;AACV,YAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACrD;IACF;AAEA,IAAA,aAAa,CAAC,EAAU,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;AAC/C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;gBAClC;YACF;QACF;AACA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAA;;;AAG1B,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE;YACzB,UAAU,EAAE,IAAI,CAAC,MAAM;AACvB,YAAA,WAAW,EAAE;gBACX,GAAG,EAAE,CAAA,EAAG,GAAG,CAAA;AACZ,aAAA;AACD,YAAA,mBAAmB,EAAE,OAAO;;AAE5B,YAAA,kBAAkB,EAAE;;AAErB,SAAA,CAAC;IACH;+GArHW,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAM,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAd,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;MCMY,wBAAwB,CAAA;IAKnC,IAAa,OAAO,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QACvB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;IACjD;IACA,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAG9C,IAAa,MAAM,CAAC,MAAc,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACtB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC;AAClE,YAAA,CAAC,CAAC;QAEJ;IACF;IACA,IAAI,MAAM,KAAY,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IAG3C,IAAa,IAAI,CAAC,IAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3C;IACA,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AAOxC,IAAA,WAAA,CACU,cAA8B,EAAA;QAA9B,IAAA,CAAA,cAAc,GAAd,cAAc;QAlCf,IAAA,CAAA,aAAa,GAAY,KAAK;QAE/B,IAAA,CAAA,QAAQ,GAAY,KAAK;QAOzB,IAAA,CAAA,OAAO,GAAW,EAAE;QAYpB,IAAA,CAAA,KAAK,GAAY,KAAK;AAQpB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU;IAM3C;IAEJ,QAAQ,GAAA;QAEN,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAC7C,QAAA,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAW,KAAG;AACzE,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AACzB,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE;IAC5D;+GArDW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,oMAJtB,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT/B,4JAEM,sMDSQ,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;+BACI,oBAAoB,EAAA,SAAA,EAGnB,CAAC,cAAc,CAAC,cACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,4JAAA,EAAA,MAAA,EAAA,CAAA,+IAAA,CAAA,EAAA;gFAIhB,aAAa,EAAA,CAAA;sBAArB;gBAGY,OAAO,EAAA,CAAA;sBAAnB;gBAOY,MAAM,EAAA,CAAA;sBAAlB;gBAYY,IAAI,EAAA,CAAA;sBAAhB;gBAOS,QAAQ,EAAA,CAAA;sBAAjB;;;MEjCU,wBAAwB,CAAA;IAGnC,IAAa,MAAM,CAAC,MAAe,EAAA;AACjC,QAAA,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC;QAC1C;IACF;IACA,IAAI,MAAM,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IAQ7C,IAAa,WAAW,CAAC,WAAoB,EAAA;AAC3C,QAAA,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,YAAY,GAAG,WAAW;AAC/B,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC;QACnD;IACF;IACA,IAAI,WAAW,KAAc,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;AAEvD,IAAA,WAAA,CACU,cAA8B,EAAA;QAA9B,IAAA,CAAA,cAAc,GAAd,cAAc;QAxBhB,IAAA,CAAA,OAAO,GAAY,IAAI;QAS/B,IAAA,CAAA,EAAE,GAAW,EAAE;QACN,IAAA,CAAA,UAAU,GAAY,IAAI;AAE1B,QAAA,IAAA,CAAA,eAAe,GAA8C,aAAa,CAAC;QAE5E,IAAA,CAAA,YAAY,GAAY,KAAK;IAWjC;IAEJ,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE;AACpC,gBAAA,IAAI,CAAC,eAAe,GAAG,SAAS;YAClC;iBAAK;AACH,gBAAA,IAAI,CAAC,eAAe,GAAG,SAAS;YAClC;QACF;AAEA,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;IAC7B;IAEA,UAAU,GAAA;QACR,OAAO,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,CAAE;IACnG;AAEA,IAAA,SAAS,CAAC,MAAqB,EAAA;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IAC9C;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,GAAG,GAAS,QAAQ,CAAC,gBAAgB,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,EAAE,CAAA,CAAE,CAAC;QACxD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW;IACpD;AAEQ,IAAA,WAAW,CAAC,GAAO,EAAE,GAAO,EAAE,GAAO,EAAE,GAAO,EAAA;QACnD,MAAM,KAAK,GAAG,IAAI;QAClB,IAAI,YAAY,GAAG,CAAC,CAAK,KAAI,EAAG,OAAO,CAAC,EAAE,CAAC,IAAE,CAAC,GAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAC;AACpD,QAAA,GAAG,IAAI,CAAC,CAAC;QACT,IAAI,IAAI,GAAG,YAAY,CAAC,GAAG,GAAC,GAAG,CAAC;AAChC,QAAA,IAAI,GAAG,GAAG,GAAG,GAAC,GAAG;QACjB,GAAG,IAAI,IAAI;QACX,GAAG,IAAI,GAAG;AACV,QAAA,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;AACpB,QAAA,IAAG,GAAG,GAAG,GAAG,EAAC;AACX,YAAA,MAAM,CAAC,qBAAqB,CAAC,MAAK;gBAChC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACvC,YAAA,CAAC,CAAC;QACJ;IACF;IAEQ,UAAU,CAAC,MAAW,EAAE,GAAW,EAAA;AACzC,QAAA,IAAI,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,EAAE,CAAA,CAAE,CAAC;AAClD,QAAA,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU;QAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,GAAG,GAAG,GAAC,KAAK,GAAG,KAAK,GAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;IAC5E;+GA3EY,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXrC,0oBAuBA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,UAAA,EAGlB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,0oBAAA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA;gFAKZ,MAAM,EAAA,CAAA;sBAAlB;gBASQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,eAAe,EAAA,CAAA;sBAAvB;gBAGY,WAAW,EAAA,CAAA;sBAAvB;;;MEhBU,2BAA2B,CAAA;AAStC,IAAA,WAAA,CACU,cAA8B,EAAA;QAA9B,IAAA,CAAA,cAAc,GAAd,cAAc;QARf,IAAA,CAAA,WAAW,GAAY,KAAK;QAC5B,IAAA,CAAA,GAAG,GAAW,EAAE;QAEzB,IAAA,CAAA,MAAM,GAAY,KAAK;IAMnB;IAEJ,QAAQ,GAAA;AAEN,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAE7C,QAAA,IAAI,CAAC,MAAM,IAAK,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAE;AAE/C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAW,KAAG;YACzE,IAAI,CAAC,MAAM,IAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAE;AACpC,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE;IAC5D;+GA3BW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAe,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZxC,qKAIA,EAAA,MAAA,EAAA,CAAA,4EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,UAAA,EAGrB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qKAAA,EAAA,MAAA,EAAA,CAAA,4EAAA,CAAA,EAAA;gFAIhB,WAAW,EAAA,CAAA;sBAAnB;gBACQ,GAAG,EAAA,CAAA;sBAAX;;;MEFU,yBAAyB,CAAA;IAUpC,IAAa,QAAQ,CAAC,QAAQ,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAE;IAChE;IACA,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AAMjD,IAAA,WAAA,CACU,cAA8B,EAAA;QAA9B,IAAA,CAAA,cAAc,GAAd,cAAc;QAnBf,IAAA,CAAA,GAAG,GAAW,EAAE;QAEhB,IAAA,CAAA,MAAM,GAAY,KAAK;QAEhC,IAAA,CAAA,OAAO,GAAY,KAAK;QACxB,IAAA,CAAA,WAAW,GAAY,KAAK;QAEpB,IAAA,CAAA,SAAS,GAAY,KAAK;AAS1B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE;IAIrC;IAEJ,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAC7C,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAM,IAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAE;YACpC;YAEA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;AAC1D,YAAA,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE;AACpC,gBAAA,IAAI,CAAC,WAAW,GAAG,WAAW;YAChC;QACF;AAEA,QAAA,IAAI,CAAC,YAAY,EAAE,GAAG,CACpB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAW,KAAG;AACrD,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAM,IAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAE;YACpC;QACF,CAAC,CAAC,CACH;QAED,IAAI,CAAC,OAAO,GAAS,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;AACxD,QAAA,IAAI,CAAC,YAAY,EAAE,GAAG,CACpB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAgB,KAAG;AAC9D,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACxB,CAAC,CAAC,CACH;AAED,QAAA,IAAI,CAAC,YAAY,EAAE,GAAG,CACpB,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,WAAoB,KAAG;AACtE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;QAChC,CAAC,CAAC,CACH;IACH;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3C;QACF;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE;IAC5D;+GAtEW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAe,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbtC,uUAGwE,EAAA,MAAA,EAAA,CAAA,imBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQ1D,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EAGnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,uUAAA,EAAA,MAAA,EAAA,CAAA,imBAAA,CAAA,EAAA;gFAIhB,GAAG,EAAA,CAAA;sBAAX;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAMY,QAAQ,EAAA,CAAA;sBAApB;;;MEVU,4BAA4B,CAAA;IAMvC,IAAa,QAAQ,CAAC,QAAQ,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAE;IAChE;IACA,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AAMjD,IAAA,WAAA,CACU,cAA8B,EAAA;QAA9B,IAAA,CAAA,cAAc,GAAd,cAAc;QAff,IAAA,CAAA,GAAG,GAAW,EAAE;QAChB,IAAA,CAAA,MAAM,GAAY,KAAK;QAExB,IAAA,CAAA,SAAS,GAAY,KAAK;QAOlC,IAAA,CAAA,OAAO,GAAY,KAAK;QACxB,IAAA,CAAA,WAAW,GAAY,KAAK;AACpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE;IAIrC;IAEJ,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAC7C,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAM,IAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAE;YACpC;YAEA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;AAC1D,YAAA,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE;AACpC,gBAAA,IAAI,CAAC,WAAW,GAAG,WAAW;YAChC;QAEF;AAEA,QAAA,IAAI,CAAC,YAAY,EAAE,GAAG,CACpB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAW,KAAG;AACrD,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAM,IAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAE;YACpC;QACF,CAAC,CAAC,CACH;QAED,IAAI,CAAC,OAAO,GAAS,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;AACxD,QAAA,IAAI,CAAC,YAAY,EAAE,GAAG,CACpB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAgB,KAAG;AAC9D,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACxB,CAAC,CAAC,CACH;AAED,QAAA,IAAI,CAAC,YAAY,EAAE,GAAG,CACpB,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,WAAoB,KAAG;AACtE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;QAChC,CAAC,CAAC,CACH;IACH;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3C;QACF;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QAAE;IAC5D;+GAnEW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbzC,iVAIuE,EAAA,MAAA,EAAA,CAAA,sXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOzD,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,UAAA,EAGtB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,iVAAA,EAAA,MAAA,EAAA,CAAA,sXAAA,CAAA,EAAA;gFAIhB,GAAG,EAAA,CAAA;sBAAX;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAGY,QAAQ,EAAA,CAAA;sBAApB;;;METU,sBAAsB,CAAA;AAKjC,IAAA,WAAA,GAAA;QAHS,IAAA,CAAA,UAAU,GAAY,IAAI;QAC1B,IAAA,CAAA,OAAO,GAAY,KAAK;IAEjB;IAEhB,QAAQ,GAAA;IACR;+GARW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVnC,oPAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIc,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EAGf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,oPAAA,EAAA;wDAIhB,UAAU,EAAA,CAAA;sBAAlB;gBACQ,OAAO,EAAA,CAAA;sBAAf;;;AETI,MAAMd,qCAAmC,GAAQ;AACtD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAC7D,IAAA,KAAK,EAAE;;AAGT,MAAMC,MAAI,GAAG,MAAK;AAClB,CAAC;MAUY,8BAA8B,CAAA;IAgBvC,IAAa,OAAO,CAAC,CAAM,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;IACvB;AAOA,IAAA,WAAA,GAAA;QAvBS,IAAA,CAAA,UAAU,GAAY,IAAI;QAC1B,IAAA,CAAA,UAAU,GAAY,IAAI;QAC1B,IAAA,CAAA,sBAAsB,GAAY,IAAI;QAEtC,IAAA,CAAA,iBAAiB,GAAW,EAAE;QAE9B,IAAA,CAAA,yBAAyB,GAAY,IAAI;QACzC,IAAA,CAAA,yBAAyB,GAAY,IAAI;QACzC,IAAA,CAAA,0BAA0B,GAAY,IAAI;QAGnD,IAAA,CAAA,UAAU,GAAW,EAAE;AAMb,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO;QAEjD,IAAA,CAAA,IAAI,GAAW,UAAU;QACzB,IAAA,CAAA,MAAM,GAAY,KAAK;;;QAgFf,IAAA,CAAA,iBAAiB,GAAeA,MAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqBA,MAAI;IA9EjC;IAEhB,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE;IAClD;IAEA,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM;QACtB;aAAK;AACD,YAAA,IAAI,CAAC,IAAI,GAAG,UAAU;QAC1B;IACJ;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,QAAA,UAAU,CAAC,MAAK,EAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACpD;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;IAC1C;IAEQ,aAAa,GAAA;QACjB,MAAM,gBAAgB,GAAG,4BAA4B;QACrD,MAAM,gBAAgB,GAAG,4BAA4B;QACrD,MAAM,OAAO,GAAG,YAAY;QAC5B,MAAM,iBAAiB,GAAG,2BAA2B;QAErD,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,GAAG,iBAAiB;AAEvF,QAAA,MAAM,kBAAkB,GAAG,CAAC,UAAkB,KAAI;AAClD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;AACjE,YAAA,OAAO,UAAU,CAAC,WAAW,CAAC;AAC9B,QAAA,CAAC;QAED,IAAI,QAAQ,GAAG,EAAE;AACjB,QAAA,QAAQ,IAAI,kBAAkB,CAAC,gBAAgB,CAAC;AAChD,QAAA,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC;AACvC,QAAA,QAAQ,IAAI,kBAAkB,CAAC,iBAAiB,CAAC;QAEjD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAChE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAA,QAAQ,IAAI,kBAAkB,CAAC,aAAa,CAAC;QAC7C;QACA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtE,QAAA,OAAO,QAAQ;IACnB;IAGA,kBAAkB,GAAA;AACd;;;;;;AAME;AAEF,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAA,WAAA,CAAa,GAAG,EAAE;AACxE,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAA,WAAA,CAAa,GAAG,EAAE;AACxE,QAAA,MAAM,SAAS,GAAI,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAA,wDAAA,CAA0D,GAAE,EAAE;QAErH,OAAO,CAAA,CAAA,EAAI,UAAU,CAAA,EAAG,UAAU,CAAA,EAAG,SAAS,CAAA,EAAA,EAAK,IAAI,CAAC,iBAAiB,CAAA,GAAA,CAAK;IAClF;;AAgBA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AACZ,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5B;IACJ;;IAGA,MAAM,GAAA;QACF,IAAI,CAAC,iBAAiB,EAAE;IAC5B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QAC3B;IACJ;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC9B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC/B;+GA1IS,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAJ5B,CAACD,qCAAmC,CAAC,0BCjBpD,2yDAqCM,EAAA,MAAA,EAAA,CAAA,kqBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlBQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE1B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAR1C,SAAS;+BACI,0BAA0B,EAAA,SAAA,EAGzB,CAACA,qCAAmC,CAAC,EAAA,UAAA,EACpC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,2yDAAA,EAAA,MAAA,EAAA,CAAA,kqBAAA,CAAA,EAAA;wDAI3B,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAEQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,yBAAyB,EAAA,CAAA;sBAAjC;gBACQ,yBAAyB,EAAA,CAAA;sBAAjC;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBAMY,OAAO,EAAA,CAAA;sBAAnB;gBAGS,aAAa,EAAA,CAAA;sBAAtB;;;ME9BQ,2BAA2B,CAAA;AAStC,IAAA,WAAA,GAAA;QAPS,IAAA,CAAA,IAAI,GAAY,KAAK;QACrB,IAAA,CAAA,KAAK,GAAQ,EAAE;AACd,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAO;QAE3C,IAAA,CAAA,IAAI,GAAY,KAAK;QACrB,IAAA,CAAA,MAAM,GAAY,KAAK;IAEP;IAEhB,QAAQ,GAAA;IACR;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;;QAElB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAE7B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACrB,CAAC,EAAE,IAAI,CAAC;IAEV;+GAxBW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVxC,gnCA2BQ,EAAA,MAAA,EAAA,CAAA,0iBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnBM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,UAAA,EAGrB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gnCAAA,EAAA,MAAA,EAAA,CAAA,0iBAAA,CAAA,EAAA;wDAIhB,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;MEOU,8BAA8B,CAAA;AAhB3C,IAAA,WAAA,GAAA;QAiBW,IAAA,CAAA,eAAe,GAAY,IAAI;AAWzC,IAAA;IAPC,QAAQ,GAAA;IAER;AAEA,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;IACnD;+GAXW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrB3C,gxBAqBA,EAAA,MAAA,EAAA,CAAA,+qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFc,YAAY,EAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAVV;YACR,OAAO,CAAC,qBAAqB,EAAE;gBAC3B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClC,UAAU,CAAC,WAAW,EAAE;AACpB,oBAAA,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBACnB,OAAO,CAAC,cAAc;iBACzB;aACJ;AACJ,SAAA,EAAA,CAAA,CAAA;;4FAIQ,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAhB1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,UAAA,EAGzB;wBACR,OAAO,CAAC,qBAAqB,EAAE;4BAC3B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;4BAClC,UAAU,CAAC,WAAW,EAAE;AACpB,gCAAA,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gCACnB,OAAO,CAAC,cAAc;6BACzB;yBACJ;AACJ,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gxBAAA,EAAA,MAAA,EAAA,CAAA,+qBAAA,CAAA,EAAA;8BAGhB,eAAe,EAAA,CAAA;sBAAvB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;;;MEdU,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVnC,qIAEM,EAAA,MAAA,EAAA,CAAA,g/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMQ,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EAGf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,g/BAAA,CAAA,EAAA;;;MEGd,wBAAwB,CAAA;IAKnC,IAAa,OAAO,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QACzB;IACF;IACA,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE9C,IAAA,WAAA,GAAA;QAVS,IAAA,CAAA,IAAI,GAAY,KAAK;QAEtB,IAAA,CAAA,QAAQ,GAAY,KAAK;IAQjB;IAEhB,QAAQ,GAAA;IACR;+GAfW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXrC,6kBAqBE,EAAA,MAAA,EAAA,CAAA,sbAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDZY,YAAY,mIAAE,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAErC,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAGjB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,6kBAAA,EAAA,MAAA,EAAA,CAAA,sbAAA,CAAA,EAAA;wDAIxC,IAAI,EAAA,CAAA;sBAAZ;gBAGY,OAAO,EAAA,CAAA;sBAAnB;;;AEVH,MAAO,uBAAuB,GAAQ;AACpC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gCAAgC,CAAC;AAC/D,IAAA,KAAK,EAAE;CACR;AAED,MAAM,mCAAmC,GAAQ;AAC/C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gCAAgC,CAAC;AAC/D,IAAA,KAAK,EAAE;CACR;AAED,MAAM,IAAI,GAAG,MAAK;AAClB,CAAC;MAUY,gCAAgC,CAAA;IAmB3C,IAAa,SAAS,CAAC,CAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACrB;IACF;IACA,IAAI,SAAS,KAAqB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAuB1D,IAAA,WAAA,GAAA;QA7CA,IAAA,CAAA,cAAc,GAAW,CAAC;QAC1B,IAAA,CAAA,eAAe,GAAW,CAAC;QAC3B,IAAA,CAAA,UAAU,GAAW,CAAC;QACtB,IAAA,CAAA,SAAS,GAAW,EAAE;QACtB,IAAA,CAAA,WAAW,GAAW,EAAE;QACxB,IAAA,CAAA,WAAW,GAAW,EAAE;QAExB,IAAA,CAAA,EAAE,GAAW,EAAE;QACf,IAAA,CAAA,UAAU,GAAY,KAAK;QAC3B,IAAA,CAAA,cAAc,GAAY,KAAK;QAG/B,IAAA,CAAA,WAAW,GAAW,EAAE;QAExB,IAAA,CAAA,KAAK,GAAG,EAAc;QAUb,IAAA,CAAA,kBAAkB,GAAY,IAAI;QAClC,IAAA,CAAA,SAAS,GAAY,IAAI;QAEzB,IAAA,CAAA,OAAO,GAAiB,IAAI;QAC5B,IAAA,CAAA,SAAS,GAAW,GAAG;QACvB,IAAA,CAAA,WAAW,GAAW,EAAE;QACxB,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,OAAO,GAAY,KAAK;QAExB,IAAA,CAAA,MAAM,GAAY,IAAI;QACtB,IAAA,CAAA,SAAS,GAAY,KAAK;QAC1B,IAAA,CAAA,SAAS,GAAY,KAAK;AAIzB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;QAE5C,IAAA,CAAA,uBAAuB,GAAY,KAAK;QAExC,IAAA,CAAA,gBAAgB,GAAW,EAAE;;;QAuRrB,IAAA,CAAA,iBAAiB,GAAe,IAAI;QACpC,IAAA,CAAA,gBAAgB,GAAqB,IAAI;IAtRjC;IAEhB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QAC3B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAC1B,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,oBAAoB,EAAE;AAC7B,QAAA,CAAC,CAAC;IACJ;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;QACjD;AACA,QAAA,OAAO,KAAK;IACd;IAEA,UAAU,GAAA;QACR,OAAO,CAAA,gBAAA,EAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,CAAE;IAChG;AAEA,IAAA,iBAAiB,CAAC,KAAe,EAAA;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B;AAGA,IAAA,sBAAsB,CAAC,CAAM,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,SAAS,GAAA;AAEP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAE7B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW;AAEpC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;QAErB,IAAI,KAAK,GAAG,EAAE;AACd,QAAA,IAAI,WAAW,IAAI,WAAW,KAAK,EAAE,EAAE;YAErC,KAAK,GAAS,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAEnD;QAEA,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,WAAW,IAAI,WAAW,KAAK,EAAE,EAAE;gBACrC,IAAI,GAAG,GAAG,CAAA,EAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA,CAAE;AACnC,gBAAA,KAAK,GAAG,CAAC,GAAG,CAAC;YACf;QACF;;AAIA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAC;AACtC,YAAA,IAAI,GAAG,GAAG,CAAA,EAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;AAEhC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE;AACrB,oBAAA,GAAG,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE;gBACjC;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE;AACrB,oBAAA,GAAG,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE;gBACjC;YACF;AAEA,YAAA,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE;gBACrB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;YACxB;QAEF;QAEA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,oBAAoB,GAAA;QAClB,IAAI,gBAAgB,GAAG,EAAE;QACzB,IAAI,SAAS,GAAG,EAAE;AAClB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACxB,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAC;AACtC,gBAAA,gBAAgB,IAAK,SAAS,GAAG,CAAA,EAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;AACvD,gBAAA,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,SAAS,GAAG;YAClC;QACF;AACA,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,gBAAgB,KAAK,EAAE,IAAI,gBAAgB,GAAG,IAAI,CAAC,WAAW;QACvF,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE;IACjB;IAGA,UAAU,CAAC,IAAS,EAAE,KAAa,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAC7B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE;oBAC/B,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC;oBAC5B;gBACF;YACF;QACF;QAEA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACzB;QAEA,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAAQ;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,GAAG,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,EAAE,EAAE;QAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAC,CAAC,CAAM,KAAI;AAEzC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI;AACF,oBAAA,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;wBACvD,IAAI,YAAY,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE;AACrD,4BAAA,IAAI,CAAC,UAAU,GAAG,KAAK;wBACzB;oBAEF;gBACF;gBAAE,OAAO,KAAK,EAAE;gBAEhB;YAEF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,UAAU;IACrC;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;AACrC,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW;AACzC,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YACvB;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC;IACjD;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IACzB;AAEA,IAAA,yBAAyB,CAAC,IAAa,EAAA;QACrC,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,YAAA,MAAM,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE;AACvB,YAAA,MAAM,GAAG,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,EAAE,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU;YAC1C;YACA,MAAM,IAAI,GAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE;AAClE,YAAA,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC;YACtC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,UAAU,GAAI,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC;AAClE,gBAAA,IAAI,CAAE,IAAI,CAAC,eAAe,GAAG,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AAC5D,oBAAA,IAAI,CAAC,WAAW,GAAG,aAAa;AAChC,oBAAA,IAAI,CAAC,SAAS,GAAG,CAAA,MAAA,GAAW,IAAI,CAAC,UAAU,EAAE,YAAA,EAAe,IAAI,CAAC,UAAU,KAAK;gBAClF;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAIA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnB;AAEA,IAAA,QAAQ,CAAC,CAAM,EAAA;QACb,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;QAEnE,IAAI,MAAM,GAAG,CAAE,CAAE,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAG,IAAI,EAAE,EAAG,WAAW,EAAE;AAClG,QAAA,IAAI,EAAE,GAAS,QAAQ,CAAC,cAAc,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAA,QAAA,CAAU,CAAC;QAC5D,IAAI,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACzC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChC,YAAA,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACf,YAAA,MAAM,QAAQ,GAAG,CAAE,CAAE,CAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,EAAG,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAG,IAAI,EAAE,EAAG,WAAW,EAAE;YAC/H,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC/B,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;YAC5B;iBAAO;gBACH,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;YAChC;QACJ;IACF;AAGA,IAAA,UAAU,CAAC,WAA8B,EAAA;QAEvC,IAAI,CAAC,WAAW,EAAE;YAAE;QAAQ;QAE5B,IAAI,KAAK,GAAG,IAAI;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAE/C;QAEA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,MAAM,EAAE;YACf;QACF;IAGF;AAEA,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,IAAI,EAAE,QAAQ,EAAE;AAClB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,MAAM,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,EAAE;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,IAAI,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,KAAK,KAAK,EAAE;AAChC,oBAAA,OAAO,IAAI;gBACb;YACF;QACF;AACA,QAAA,OAAO,KAAK;IACd;IAGA,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;IAYA,eAAe,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAGA,IAAA,YAAY,CAAC,CAAK,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;QACd,IAAI,CAAC,SAAS,EAAE;IAClB;;AASA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;IAC1B;;;IAGA,IAAI,KAAK,CAAC,CAAM,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1B;IACF;;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,iBAAiB,EAAE;IAC1B;;AAGA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1B;IACF;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;;AAGA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;AAIO,IAAA,QAAQ,CAAC,CAAc,EAAA;QAC5B,IAAI,CAAC,KAAM,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAE,EAAE;AACjD,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,GAAG,UAAU;QACpD;AACA,QAAA,OAAO,IAAI;IACb;IAGA,WAAW,GAAA;IAEX;+GAzXW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,4bAJ9B,CAAC,mCAAmC,EAAE,uBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzB7E,40PA0IM,EAAA,MAAA,EAAA,CAAA,sjIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/GQ,YAAY,oVAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,kQAAE,+BAA+B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE3G,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAR5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,aAG3B,CAAC,mCAAmC,EAAE,uBAAuB,CAAC,cAC7D,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,+BAA+B,CAAC,EAAA,QAAA,EAAA,40PAAA,EAAA,MAAA,EAAA,CAAA,sjIAAA,CAAA,EAAA;wDAqB1G,SAAS,EAAA,CAAA;sBAArB;gBAOQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,aAAa,EAAA,CAAA;sBAArB;gBAES,QAAQ,EAAA,CAAA;sBAAjB;;;ME5DU,4BAA4B,CAAA;IAKvC,IAAa,KAAK,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,CAAE,GAAG,SAAS;IAChD;IACA,IAAI,KAAK,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IAMjC,IAAa,MAAM,CAAC,MAAW,EAAA;AAC7B,QAAA,IAAI,KAAK,GAAG,CAAA,EAAG,MAAM,EAAE;QACvB,IAAI,KAAK,EAAE;YACT,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;gBACpB,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,CAAC,CAAC;QACJ;IACF;IACA,IAAI,MAAM,KAAY,OAAO,IAAI,CAAC,OAAO,CAAA,CAAC;IAM1C,IAAa,IAAI,CAAC,IAAY,EAAA;QAC5B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB,IAAI,CAAC,OAAO,EAAE;QAChB;IACF;IACA,IAAI,IAAI,KAAY,OAAO,IAAI,CAAC,KAAK,CAAA,CAAC;IAMtC,IAAa,MAAM,CAAC,MAAc,EAAA;QAChC,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;YACrB,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;IACA,IAAI,MAAM,KAAY,OAAO,IAAI,CAAC,OAAO,CAAA,CAAC;AAQ1C,IAAA,WAAA,GAAA;QArDA,IAAA,CAAA,SAAS,GAAW,GAAG;QAEf,IAAA,CAAA,MAAM,GAAQ,SAAS;AAM/B;;AAEE;QACM,IAAA,CAAA,OAAO,GAAQ,GAAG;AAY1B;;AAEE;QACM,IAAA,CAAA,KAAK,GAAW,SAAS;AASjC;;AAEE;QACM,IAAA,CAAA,OAAO,GAAW,QAAQ;QASlC,IAAA,CAAA,cAAc,GAAW,EAAE;QAC3B,IAAA,CAAA,YAAY,GAAW,EAAE;QAEhB,IAAA,CAAA,oBAAoB,GAAY,IAAI;QACpC,IAAA,CAAA,SAAS,GAAY,KAAK;QAwEnC,IAAA,CAAA,UAAU,GAAW,CAAC;IAtEN;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,OAAO,GAAA;AACL,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;QACtB,IAAI,cAAc,GAAG,kBAAkB;QACvC,QAAQ,IAAI;AACV,YAAA,KAAK,SAAS;gBAAE,cAAc,GAAG,kBAAkB;gBAAE;AACrD,YAAA,KAAK,QAAQ;gBAAE,cAAc,GAAG,iBAAiB;gBAAE;AACnD,YAAA,KAAK,SAAS;gBAAE,cAAc,GAAG,kBAAkB;gBAAE;AACrD,YAAA,KAAK,MAAM;gBAAE,cAAc,GAAG,eAAe;gBAAE;AAC/C,YAAA,KAAK,SAAS;gBAAE,cAAc,GAAG,kBAAkB;gBAAE;AACrD,YAAA,KAAK,MAAM;gBAAE,cAAc,GAAG,eAAe;gBAAE;AAE/C,YAAA,KAAK,kBAAkB;gBAAE,cAAc,GAAG,2BAA2B;gBAAE;AACvE,YAAA,KAAK,iBAAiB;gBAAE,cAAc,GAAG,0BAA0B;gBAAE;AACrE,YAAA,KAAK,kBAAkB;gBAAE,cAAc,GAAG,2BAA2B;gBAAE;AACvE,YAAA,KAAK,eAAe;gBAAE,cAAc,GAAG,wBAAwB;gBAAE;;AAEnE,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;IACtC;IAEA,SAAS,GAAA;AACP,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;QAC1B,IAAI,YAAY,GAAG,eAAe;QAClC,QAAQ,MAAM;AACZ,YAAA,KAAK,QAAQ;gBAAE,YAAY,GAAG,eAAe;gBAAE;AAC/C,YAAA,KAAK,MAAM;gBAAE,YAAY,GAAG,aAAa;gBAAE;AAC3C,YAAA,KAAK,KAAK;gBAAE,YAAY,GAAG,YAAY;gBAAE;AACzC,YAAA,KAAK,UAAU;gBAAE,YAAY,GAAG,iBAAiB;gBAAE;;AAErD,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IAClC;IAEA,oBAAoB,GAAA;QAClB,IAAI,EAAE,GAAW,GAAG;QACpB,IAAI,UAAU,GAAW,EAAE,IAAI,CAAC,MAAM,CAAC;AAEvC,QAAA,IAAI,UAAU,GAAG,GAAG,EAAE;YACpB,IAAI,IAAI,GAAG,EAAE,IAAI,UAAU,GAAG,GAAG,CAAC;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG;IACvB;IAEA,WAAW,GAAA;AAET,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AAEd,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,oBAAoB,EAAE;gBAC3B;YACF;YAEA,IAAI,EAAE,GAAW,GAAG;YACpB,IAAI,UAAU,GAAW,EAAE,IAAI,CAAC,KAAK,CAAC;AAEtC,YAAA,IAAI,UAAU,GAAG,GAAG,EAAE;gBACpB,IAAI,IAAI,GAAG,EAAE,IAAI,UAAU,GAAG,GAAG,CAAC;AAClC,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACvC;YAEA,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;IAGA,YAAY,GAAA;QAEV,IAAI,SAAS,GAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,UAAU,GAAW,EAAE,IAAI,CAAC,KAAK,CAAC;;QAGtC,IAAI,SAAS,GAAG,SAAS,IAAI,UAAU,GAAG,GAAG,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;IAG7B;+GAxIW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVzC,ogCAiBM,EAAA,MAAA,EAAA,CAAA,qvHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDTQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,UAAA,EAGtB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,ogCAAA,EAAA,MAAA,EAAA,CAAA,qvHAAA,CAAA,EAAA;wDAOZ,KAAK,EAAA,CAAA;sBAAjB;gBASY,MAAM,EAAA,CAAA;sBAAlB;gBAeY,IAAI,EAAA,CAAA;sBAAhB;gBAYY,MAAM,EAAA,CAAA;sBAAlB;gBAWQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,SAAS,EAAA,CAAA;sBAAjB;;;MErDU,6BAA6B,CAAA;AAP1C,IAAA,WAAA,GAAA;QAQE,IAAA,CAAA,UAAU,GAAG,EAAW;;QAGhB,IAAA,CAAA,MAAM,GAAG,EAAW;AASlB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO;AAsFhD,IAAA;IA9FC,IAAa,KAAK,CAAC,CAAM,EAAA;QACvB,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,IAAI,CAAC,cAAc,EAAE;QACvB;IACF;IACA,IAAI,KAAK,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IAKjC,QAAQ,GAAA;IACR;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AAEzC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE;gBACrC;qBAAK;oBACH,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAE,CAAA,EAAG,IAAI,CAAA,CAAE,CAAE;gBACrC;YACF;QAEF;IAEF;AAEA,IAAA,eAAe,CAAC,IAAY,EAAA;QAC1B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACzC,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1B,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;wBAC1C,OAAO,IAAI,CAAC,WAAW;oBACzB;gBACF;YACF;QACF;AACA,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAA;QACnB,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACzC,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1B,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1C,wBAAA,OAAO,IAAI;oBACb;gBACF;YACF;QACF;AACA,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAI,CAAC,IAAS,EAAE,KAAa,EAAE,OAAe,EAAA;AAC5C,QAAA,IAAI,OAAO,GAAG,CAAC,EAAE;YAAE;QAAQ;AAC3B,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE;YAAE;QAAQ;QACxD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,EAAC;AAC/C,gBAAA,IAAI,CAAC,KAAK,KAAK,EAAC;oBAEd,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAChC,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACjD,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG;oBAC9B;gBAGF;YACF;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAChF,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;QAClC;aAAK;AACH,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU;QAC9B;QACA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE;IAErC;IAEA,YAAY,GAAA;QACV,IAAI,KAAK,GAAG,EAAE;AACd,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;AACnD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,gBAAA,CAAC,KAAK,EAAE,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAE,CAAE,CAAE;YAC1D;QACF;AACA,QAAA,OAAO,KAAK;IACd;+GAlGW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV1C,k+CA2CiB,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnCH,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,UAAA,EAGvB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,k+CAAA,EAAA,MAAA,EAAA,CAAA,giBAAA,CAAA,EAAA;8BAOZ,KAAK,EAAA,CAAA;sBAAjB;gBAQS,WAAW,EAAA,CAAA;sBAApB;;;MEbU,wBAAwB,CAAA;AAgBnC,IAAA,WAAA,GAAA;QAdA,IAAA,CAAA,IAAI,GAAY,UAAU;QAE1B,IAAA,CAAA,IAAI,GAAY,UAAU;QAC1B,IAAA,CAAA,KAAK,GAAW,WAAW;QAElB,IAAA,CAAA,MAAM,GAAW,EAAE;QACnB,IAAA,CAAA,KAAK,GAAW,EAAE;QAClB,IAAA,CAAA,WAAW,GAAW,EAAE;QACxB,IAAA,CAAA,IAAI,GAA2B,OAAO;QACtC,IAAA,CAAA,IAAI,GAA2B,QAAQ;QAEvC,IAAA,CAAA,QAAQ,GAAY,KAAK;IAGlB;IAEhB,QAAQ,GAAA;IACR;+GAnBW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVrC,+1BAuBM,EAAA,MAAA,EAAA,CAAA,2dAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEb,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,UAAA,EAGjB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+1BAAA,EAAA,MAAA,EAAA,CAAA,2dAAA,CAAA,EAAA;wDAShB,MAAM,EAAA,CAAA;sBAAd;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;;;MEhBU,sBAAsB,CAAA;IAIjC,IAAa,OAAO,CAAE,SAAc,EAAA;QAClC,IAAI,SAAS,EAAC;AACZ,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACtC;IACF;IAEA,WAAA,CACU,EAAc,EACd,QAAmB,EAAA;QADnB,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAXV,IAAA,CAAA,UAAU,GAA2C,OAAO;IAY/D;IAEL,QAAQ,GAAA;IAER;AAEA,IAAA,QAAQ,CAAC,EAAO,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC;QACpD;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC;QACtD;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC;QACrD;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC;QACvD;IACA;+GApCW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE;AACf,iBAAA;uGAKc,OAAO,EAAA,CAAA;sBAAnB;;;MCCU,yBAAyB,CAAA;IAEpC,WAAA,CAAoB,EAAc,EAAU,QAAmB,EAAA;QAA3C,IAAA,CAAA,EAAE,GAAF,EAAE;QAAsB,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAEpD,QAAA,IAAA,CAAA,QAAQ,GAAQ,MAAK,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,OAAO,GAAQ,MAAK,EAAE,CAAC;IAH2C;;;;;;;;;AAclE,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;AAChE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC;QACpE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvF;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;QAC/D;IACF;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;IAGA,OAAO,GAAA;QACL,IAAI,CAAC,cAAc,EAAE;IACvB;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAiC;AAC7D,QAAA,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM;AACvC,QAAA,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/C;IAEQ,UAAU,GAAA;IAElB;AAGA,IAAA,OAAO,CAAC,KAAa,EAAA;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IAChC;AAEQ,IAAA,cAAc,CAAC,KAAU,EAAA;QAE/B,MAAM,YAAY,GAAG,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,OAAO,CAAC,GAAG,CAAC;AAC5C,QAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;YACvB,IAAI,IAAI,GAAG,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC;YAChC,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;YAClD,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;AAC5B,gBAAA,KAAK,GAAG,KAAK,GAAG,GAAG;YACrB;QACF;aAAK;AACH,YAAA,KAAK,GAAG,KAAK,GAAG,KAAK;QACvB;QAEA,OAAO,KAAK,GAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACtC;AAEQ,IAAA,MAAM,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACzD,YAAA,OAAO,EAAE;QACX;QACA,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAChC,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AACrB,YAAA,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC1C,gBAAA,KAAK,GAAG,GAAG,GAAC,KAAK;YACnB;QACF;AACA,QAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC7B,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,cAAc,CAAC,MAAW,EAAA;QAChC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAW;IAC1E;AAEQ,IAAA,UAAU,CAAC,KAAU,EAAA;QAC3B,IAAI,SAAS,GAAG,GAAG;QAEnB,IAAI,CAAC,KAAM,EAAE;YAAE,OAAO,CAAA,CAAA,EAAI,SAAS,CAAA,EAAA,CAAI;QAAE;AACzC,QAAA,IAAI,KAAK,KAAK,CAAA,CAAA,EAAI,SAAS,CAAA,EAAA,CAAI,EAAE;YAAE,KAAK,GAAG,EAAE;QAAE;AAC/C,QAAA,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,CAAE;QAClB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC9C,QAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,YAAA,IAAI,MAAM,GAAG,CAAA,EAAG,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACzD,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AACvB,gBAAA,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC5C,oBAAA,MAAM,GAAG,GAAG,GAAC,MAAM;gBACrB;YACF;AACA,YAAA,OAAO,MAAM;QACf;AAEA,QAAA,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG;AAChD,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;QAChD;QACA,IAAI,MAAM,GAAG,CAAA,EAAG,WAAW,GAAG,SAAS,CAAA,EAAG,WAAW,CAAA,CAAE;AACvD,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AACvB,YAAA,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC5C,gBAAA,MAAM,GAAG,GAAG,GAAC,MAAM;YACrB;QACF;AAEA,QAAA,OAAO,MAAM;IACf;AAEQ,IAAA,SAAS,CAAC,MAAW,EAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE;AACnC,QAAA,IAAI,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG;QAChD,IAAI,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,IAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;AACxD,YAAA,YAAY,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,YAAY,CAAC,EAAE;QAC3C;AACA,QAAA,IAAI,MAAM,GAAG,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,YAAY,EAAE;QAC9C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE;AAAE,YAAA,OAAO,GAAG;QAAE;QACjH,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE;AAAE,YAAA,OAAO,GAAG;QAAE;QACjH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClC,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AACvB,YAAA,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;AAC5C,gBAAA,MAAM,GAAG,GAAG,GAAC,MAAM;YACrB;QACF;AAEA,QAAA,OAAO,MAAM;IACf;+GA9IW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,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,SAAA,EAAA,IAAA,EAAA,yBAAyB,mJAPvB,CAAC;AACJ,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,yBAAyB;AACtC,gBAAA,KAAK,EAAE;aACV,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGG,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE,CAAC;AACJ,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAA,yBAA2B;AACtC,4BAAA,KAAK,EAAE;yBACV,CAAC;AACN,oBAAA,UAAU,EAAE;AACf,iBAAA;uGAoCC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO;gBAgBrB,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC;;;MCtDnC,uBAAuB,CAAA;IAIlC,WAAA,CACU,EAAc,EACd,QAAmB,EAAA;QADnB,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAJV,IAAA,CAAA,OAAO,GAAY,KAAK;IAK3B;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE;IACxB;IAEA,eAAe,GAAA;QAEb,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;QAEjD,IAAI,QAAQ,GAAG,MAAI;YACf,MAAM,wBAAwB,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA,eAAA,EAAkB,EAAE,CAAA,EAAA,CAAI,CAAQ;YACxF,IAAI,QAAQ,GAAG,EAAE;AACjB,YAAA,IAAI,wBAAwB,IAAI,wBAAwB,CAAC,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE;AAChI,gBAAA,QAAQ,GAAG,wBAAwB,EAAE,KAAM;YAC7C;iBAAK;AACH,gBAAA,QAAQ,GAAG,wBAAwB,EAAE,WAAY;YACnD;AACA,YAAA,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC5C,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC/C,CAAC,EAAE,IAAI,CAAC;AAEZ,QAAA,CAAC;AAED,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,CAAA,CAAE,CAAC;QAG1E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;QAE3C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE;YAC/D,IAAI,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAU;YACjD,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;gBACtF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,yCAAyC,CAAC;YAC7E;iBAAK;gBACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;YAC7D;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC;QACvE;aAAK;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;QAC5D;IAKF;AAEA,IAAA,UAAU,CAAC,MAAe,EAAA;AACxB,QAAA,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,GAAG,EAAE;AACxC,QAAA,OAAO,CAAA,WAAA,EAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,EAAG,GAAG,CAAA,CAAE;IACjG;+GArEW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,4BAA4B,CAAA;AAKvC,IAAA,WAAA,CACU,QAAmB,EAAA;QAAnB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACf;IAEwB,WAAW,GAAA;AACpC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,MAAM,EAAE,GAAS,IAAI,CAAC,UAAU,EAAE;YAClC,IAAI,EAAE,EAAE;gBACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAC/E;QACF;IACF;IAE0B,UAAU,GAAA;AAClC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,MAAM,EAAE,GAAS,IAAI,CAAC,UAAU,EAAE;YAClC,IAAI,EAAE,EAAE;gBACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAClF;QAEF;IACF;IAEA,IAAa,aAAa,CAAE,EAAU,EAAA;QACpC,IAAI,EAAE,EAAC;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE;QAAE;IACzB;IAEA,IAAa,kBAAkB,CAAE,IAAS,EAAA;QACxC,IAAI,IAAI,EAAC;AACP,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;IACF;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,SAAS;QACxD;AACA,QAAA,OAAO,SAAS;IAClB;+GA3CW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACf,iBAAA;8EAU4B,WAAW,EAAA,CAAA;sBAArC,YAAY;uBAAC,WAAW;gBASC,UAAU,EAAA,CAAA;sBAAnC,YAAY;uBAAC,UAAU;gBAUX,aAAa,EAAA,CAAA;sBAAzB;gBAIY,kBAAkB,EAAA,CAAA;sBAA9B;;;MCjCU,0BAA0B,CAAA;AAInC,IAAA,WAAA,CAC+C,YAAiB,EAAA;QAAjB,IAAA,CAAA,YAAY,GAAZ,YAAY;QAHnD,IAAA,CAAA,WAAW,GAAG,EAA0B;AAK5C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY;IACxC;AAEA,IAAA,KAAK,CAAC,WAAgB,EAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,EAAE;QACjD,IAAI,SAAS,EAAE;;YAEX,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC;QAC9D;;AAEA,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;IAC7C;AAEA,IAAA,gBAAgB,CAAC,WAAgB,EAAA;QAC7B,IAAI,SAAS,GAAG,KAAK;QACrB,IAAK,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;AAChC,YAAA,IAAI,WAAW,CAAC,CAAC,CAAC,EAAC;gBACnB,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;gBACzC,IAAI,QAAQ,EAAC;oBACT,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAQ,KAAI;AACpC,wBAAA,SAAS,GAAG,SAAS,KAAM,CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,KAAK,IAAI,CAAE,IAAI,CAAC,CAAC,IAAK,IAAI,GAAG,KAAK,CAAE;AAC7G,oBAAA,CAAC,CAAC;gBACN;YACA;QACJ;aAAK;YACD,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE;AACpD,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpC,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAQ,KAAI;AACjC,gBAAA,SAAS,GAAG,SAAS,KAAM,CAAE,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,KAAK,IAAI,CAAE,IAAI,CAAC,CAAC,IAAK,IAAI,GAAG,KAAK,CAAE;AACzH,YAAA,CAAC,CAAC;QACN;AACA,QAAA,OAAO,SAAS;IACpB;IAEA,sBAAsB,CAAC,WAAgB,EAAE,SAAc,EAAA;QACnD,IAAI,SAAS,GAAG,KAAK;QACrB,IAAK,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;AAChC,YAAA,IAAI,WAAW,CAAC,CAAC,CAAC,EAAC;gBACf,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;gBACzC,IAAI,QAAQ,EAAC;oBACT,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAQ,KAAI;AACpC,wBAAA,SAAS,GAAG,SAAS,KAAM,CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,KAAK,IAAI,CAAE,IAAI,CAAC,CAAC,IAAK,IAAI,GAAG,KAAK,CAAE;AAC7G,oBAAA,CAAC,CAAC;gBACN;YACJ;QACJ;aAAK;AACD,YAAA,IAAI,QAAQ,GAAG,SAAS,CAAC,EAAE;AAC3B,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAQ,KAAI;AAC7B,gBAAA,SAAS,GAAG,SAAS,KAAM,CAAE,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,KAAK,IAAI,CAAE,IAAI,CAAC,CAAC,IAAK,IAAI,GAAG,KAAK,CAAE;AAC7H,YAAA,CAAC,CAAC;QACN;AACA,QAAA,OAAO,SAAS;IACpB;AAEA,IAAA,iBAAiB,CAAC,QAAiC,EAAA;QAC/C,IAAI,MAAM,GAAG,KAAK;QAClB,IAAI,SAAS,GAAG,EAAE;;QAGlB,IAAI,eAAe,GAAG,EAAE;QACxB,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAClC,gBAAA,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC;YAChC;iBAAM,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAG;gBAC9C,eAAe,GAAG,QAAQ;YAC1B;YAEA,IAAI,sBAAsB,GAAG,SAAS;YACtC,IAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AACjC,gBAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAC;AACZ,oBAAA,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC;oBAC7B,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC,EAAE;AAC5G,wBAAA,sBAAsB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAsB;oBAC3D;gBACJ;YACA;YAEA,IAAI,aAAa,GAAG,EAAE;YACtB,IAAI,sBAAsB,IAAI,CAAC,sBAAsB,EAAE,MAAM,IAAI,CAAC,EAAE;;gBAEpE,aAAa,GAAG,sBAAsB;YACtC;iBAAK;;gBAEL,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,aAAa,IAAI,EAAE;YACtE;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC;AAE3C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,gBAAA,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;AACzC,gBAAA,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBAC3B,IAAI,SAAS,GAAG,CAAC;AACjB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,wBAAA,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC;AACrC,wBAAA,IAAI,cAAc,KAAK,GAAG,GAAC,YAAY,EAAE;AACrC,4BAAA,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;AACvB,4BAAA,SAAS,EAAE;wBACf;oBACA;AACA,oBAAA,IAAI,SAAS,KAAK,CAAC,EAAE;AACrB,wBAAA,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;oBACtB;gBACJ;qBAAK;oBACD,IAAI,SAAS,GAAG,CAAC;AACjB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,wBAAA,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC;AACrC,wBAAA,IAAI,cAAc,KAAK,YAAY,EAAE;AACjC,4BAAA,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;AACtB,4BAAA,SAAS,EAAE;wBACf;oBACA;AACA,oBAAA,IAAI,SAAS,KAAK,CAAC,EAAE;AACrB,wBAAA,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;oBACvB;gBACJ;YACA;YAEA,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;gBACzC,MAAM,GAAG,IAAI;AACb,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,oBAAA,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;wBAC5B,MAAM,GAAG,KAAK;wBAAE;oBAChB;gBACJ;YACA;QACJ;AACA,QAAA,OAAO,MAAM;IACjB;;IAKQ,wBAAwB,GAAA;;;AAI5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,QAAQ,IAAI,EAAE;AAC/E,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,eAAe,EAAE;QAC/B;QACA,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,OAAO,SAAS;IACpB;IAEQ,eAAe,GAAA;QACnB,IAAI,IAAI,GAAQ,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACtD,IAAI,SAAS,GAAG,EAAS;AACzB,QAAA,IAAI;AACF,YAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B;QAAE,OAAO,KAAK,EAAE;YACd,SAAS,GAAG,SAAS;QACvB;AACC,QAAA,OAAO,SAAS;IACrB;IAEQ,kBAAkB,GAAA;AACtB,QAAA,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC7C;AAnKS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,kBAKX,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAL5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;;4FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAMQ;;0BAAY,MAAM;2BAAC,aAAa;;;MCJ5B,4BAA4B,CAAA;IACvC,IAAa,aAAa,CAAE,WAAgB,EAAA;QAC1C,IAAI,WAAW,EAAC;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACzB;IACF;;AAEA,IAAA,WAAA,CACU,EAAc,EACd,QAAmB,EACnB,kBAA8C,EAAA;QAF9C,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;IACvB;AAEL,IAAA,QAAQ,KAAU;AAElB,IAAA,KAAK,CAAC,WAAgB,EAAA;QACpB,IAAI,SAAS,GAAG,KAAK;QACrB,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;AAEtD,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;QACpC,IAAI,QAAQ,EAAC;YACX,IAAI,CAAC,SAAS,EAAC;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzB;iBAAK;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC5B;QACF;aAAK;;QAEL;IACF;AAEA,IAAA,QAAQ,CAAC,EAAO,EAAA;QACd,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;;QAEnE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,yBAAyB,CAAC;AAClE,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;IACxB;AACA,IAAA,WAAW,CAAC,EAAO,EAAA;;;;QAIjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;;IAE3C;AAEA,IAAA,aAAa,CAAC,EAAO,EAAA;QACnB,IAAI,EAAE,EAAE;AACN,YAAA,IAAI;gBACF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;YAC9C;AAAE,YAAA,OAAO,KAAK,EAAE,EAAC;QACnB;IACF;+GApDW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAe,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACf,iBAAA;6IAEc,aAAa,EAAA,CAAA;sBAAzB;;;ACHH;;;;;;;;;;AAUE;MAMW,8BAA8B,CAAA;AAEzC,IAAA,WAAA,CACU,WAA6B,EAC7B,aAA+B,EAC/B,kBAA8C,EAAA;QAF9C,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAGpB,IAAA,CAAA,WAAW,GAAY,IAAI;IAF/B;IAIJ,IAAa,eAAe,CAAC,WAA0B,EAAA;QACrD,MAAM,aAAa,GAAG,CAAE,OAAO,WAAW,KAAK,SAAS,IAAK,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;AACrH,QAAA,UAAU,CAAC,MAAK,EAAG,IAAI,CAAC,UAAU,CAAE,aAAa,CAAE,CAAC,CAAC,CAAC,CAAC;IACzD;IAEA,IAAa,mBAAmB,CAAC,KAAc,EAAA;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;AAEQ,IAAA,UAAU,CAAC,MAAe,EAAA;AAChC,QAAA,IAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAG;YAChC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACzD;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;QAC5B;IACF;+GAzBW,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE;AACf,iBAAA;qJAWc,eAAe,EAAA,CAAA;sBAA3B;gBAKY,mBAAmB,EAAA,CAAA;sBAA/B;;;ACjCH;;;;AAIE;MAMW,+BAA+B,CAAA;AAE1C,IAAA,WAAA,CACU,WAA6B,EAC7B,aAA+B,EAC/B,kBAA8C,EAAA;QAF9C,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAGpB,IAAA,CAAA,WAAW,GAAY,IAAI;IAF/B;IAIJ,IAAa,gBAAgB,CAAC,YAA2B,EAAA;QACvD,MAAM,cAAc,GAAG,CAAE,OAAO,YAAY,KAAK,SAAS,IAAK,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC;AACrI,QAAA,UAAU,CAAC,MAAK,EAAG,IAAI,CAAC,UAAU,CAAE,cAAc,CAAE,CAAC,CAAC,CAAC,CAAC;IAC1D;IAIA,IAAa,oBAAoB,CAAC,KAAc,EAAA;AAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC1B;AAEQ,IAAA,UAAU,CAAC,MAAe,EAAA;AAChC,QAAA,IAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAG;YAChC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACzD;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;QAC5B;IACF;+GA3BW,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE;AACf,iBAAA;qJAWc,gBAAgB,EAAA,CAAA;sBAA5B;gBAOY,oBAAoB,EAAA,CAAA;sBAAhC;;;MCxBU,wBAAwB,CAAA;IAUnC,IAAa,SAAS,CAAC,OAAY,EAAA;QAEjC,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,GAAG,OAAO;YAC3D,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;;gBAE9C,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;;gBAG9C,IAAI,CAAC,iBAAiB,EAAE;YAC1B;QACF;IACF;IAEA,IAAa,WAAW,CAAC,SAAc,EAAA;QACrC,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;QAC7B;IACF;IAEA,WAAA,CACU,EAAc,EACd,QAAmB,EAAA;QADnB,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;QA9BT,IAAA,CAAA,WAAW,GAAsB,OAAO;QACjD,IAAA,CAAA,MAAM,GAAY,KAAK;QACvB,IAAA,CAAA,SAAS,GAAW,EAAE;QACtB,IAAA,CAAA,cAAc,GAAY,KAAK;QACvB,IAAA,CAAA,cAAc,GAAuB,IAAI;QAEzC,IAAA,CAAA,UAAU,GAAwC,KAAK;IAyB5D;AAEyC,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC3E,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,EAAE;YACzE,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC;YAC3H,IAAI,CAAC,aAAa,EAAE;gBAClB,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;IACF;AAEuC,IAAA,WAAW,CAAC,KAAiB,EAAA;AAClE,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,EAAE;AAC1E,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC5B;IACF;AAEsC,IAAA,UAAU,CAAC,KAAiB,EAAA;AAChE,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAqB;YACjD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE;gBACnG,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;IACF;AAEmC,IAAA,OAAO,CAAC,KAAiB,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,aAAa,EAAE;YACtB;iBAAO;AACL,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC3B;AACA,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc;QAC5C;IACF;AAEQ,IAAA,aAAa,CAAC,KAAiB,EAAA;QACrC,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,WAAW;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE;AAC3D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK;AAC1C,QAAA,MAAM,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,EAAE,GAAG,GAAG,SAAS,IAAI,CAAC;QAEhD,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,MAAM,GAAG,CAAC;AACd,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACzB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAa;AAClC,YAAA,MAAM,GAAG,MAAM,CAAC,YAAY;AAC5B,YAAA,KAAK,GAAG,MAAM,CAAC,WAAW;QAC5B;QAEA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA,qBAAA,EAAwB,SAAS,CAAA,CAAE,CAAC;AACpE,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAC7C,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAClC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC;AAC9E,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO;AAE7B,QAAA,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AACxE,QAAA,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IACpE;IAEQ,aAAa,GAAA;QACnB,MAAM,YAAY,GAAQ,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;QAC5E,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,UAAU,CAAC,MAAK;AACd,gBAAA,YAAY,CAAC,OAAO,CAAC,CAAC,UAAe,KAAI;oBACvC,IAAI,UAAU,EAAE;wBAAE,UAAU,CAAC,MAAM,EAAE;oBAAE;AACzC,gBAAA,CAAC,CAAC;YACJ,CAAC,EAAE,EAAE,CAAC;QACR;AACA,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;IAC5B;IAEQ,iBAAiB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;AAC/C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY;AACtD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW;QAEpD,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,GAAG,GAAG,CAAC;QACX,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,WAAW;AACxD,QAAA,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC;AAEtE,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AAC7B,YAAA,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,aAAa,IAAI,EAAE;YACjD,GAAG,GAAG,eAAe;QACvB;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;AACvC,YAAA,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,MAAM,IAAI,EAAE;YAC1C,GAAG,GAAG,eAAe;QACvB;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YACrC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,IAAI,aAAa,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;YACjE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,YAAY,GAAG,EAAE;QACrC;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YACtC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,IAAI,aAAa,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;YACjE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE;QAC9B;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI,CAAC;AAC9D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI,CAAC;IACjE;AAEQ,IAAA,UAAU,CAAC,MAAe,EAAA;AAChC,QAAA,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,GAAG,EAAE;AACtC,QAAA,OAAO,CAAA,WAAA,EAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,EAAG,GAAG,CAAA,CAAE;IACjG;IAEQ,aAAa,CAAC,EAAU,EAAE,MAAc,EAAE,KAAa,EAAE,aAAqB,EAAE,aAAqB,EAAE,SAAiB,EAAA;QAC9H,UAAU,CAAC,MAAK;YACd,MAAM,OAAO,GAAQ,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;AAChD,YAAA,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY;AAC3C,YAAA,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;YAEzC,IAAI,GAAG,GAAG,CAAC;YACX,IAAI,GAAG,GAAG,CAAC;AACX,YAAA,MAAM,eAAe,GAAG,CAAC,aAAa,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,aAAa,GAAG,CAAC,CAAC;AAE3E,YAAA,IAAI,SAAS,KAAK,KAAK,EAAE;gBACvB,GAAG,GAAG,CAAC,aAAa,GAAG,cAAc,IAAI,EAAE;gBAC3C,GAAG,GAAG,eAAe;YACvB;AAEA,YAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC1B,GAAG,GAAG,CAAC,aAAa,GAAG,MAAM,IAAI,EAAE;gBACnC,GAAG,GAAG,eAAe;YACvB;AAEA,YAAA,IAAI,SAAS,KAAK,MAAM,EAAE;AACxB,gBAAA,GAAG,GAAG,aAAa,IAAI,cAAc,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AACzD,gBAAA,GAAG,GAAG,eAAe,GAAG,aAAa,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;YAC5D;AAEA,YAAA,IAAI,SAAS,KAAK,OAAO,EAAE;AACzB,gBAAA,GAAG,GAAG,aAAa,IAAI,cAAc,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AACzD,gBAAA,GAAG,GAAG,eAAe,GAAG,aAAa,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;YAC5D;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI,CAAC;AAClD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;AACvD,QAAA,CAAC,CAAC;IACJ;+GA3LW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE;AACf,iBAAA;uGAGU,WAAW,EAAA,CAAA;sBAAnB;gBAQY,SAAS,EAAA,CAAA;sBAArB;gBAcY,WAAW,EAAA,CAAA;sBAAvB;gBAW2C,eAAe,EAAA,CAAA;sBAA1D,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;gBASH,WAAW,EAAA,CAAA;sBAAjD,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBAOC,UAAU,EAAA,CAAA;sBAA/C,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;gBASD,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MC5DtB,0BAA0B,CAAA;AAErC,IAAA,WAAA,CAAmB,EAAc,EAAA;QAAd,IAAA,CAAA,EAAE,GAAF,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,aAAa;IACtC;AAGA,IAAA,SAAS,CAAC,CAAgB,EAAA;QACxB,IACE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5C,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;UACpC;;YAEA;QACF;;AAEA,QAAA,IACE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;AACjD,aAAC,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,EACnC;YACA,CAAC,CAAC,cAAc,EAAE;QACpB;IACF;AAGA,IAAA,OAAO,CAAC,KAAqB,EAAA;QAC3B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAC;AAC/B,YAAA,MAAM,WAAW,GAAW,KAAK,CAAC;iBAC/B,OAAO,CAAC,YAAY;AACpB,iBAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC;QACzD;IACF;AAGA,IAAA,MAAM,CAAC,KAAgB,EAAA;QACrB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAC;AAC9B,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACtE,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACzB,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC;QACtD;IACF;+GAnDW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAQC,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;gBA2BnC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAYjC,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;;MC3CrB,0BAA0B,CAAA;AAKrC,IAAA,WAAA,CAAmB,EAAc,EAAA;QAAd,IAAA,CAAA,EAAE,GAAF,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,aAAa;IACtC;IAEA,QAAQ,GAAA;QACN,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAC;YACpB,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;QACjF;aAAK;AACH,YAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D;AAEA,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;AACxB,YAAA,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM;AACpC,YAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAC1B,YAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC5B,YAAA,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ;AAChC,YAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK;QAChC;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACrE;+GA1BW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAGU,WAAW,EAAA,CAAA;sBAAnB;;;MCFU,uBAAuB,CAAA;AAClC,IAAA,WAAA,CAAmB,EAAc,EAAA;QAAd,IAAA,CAAA,EAAE,GAAF,EAAE;IACrB;AAGA,IAAA,SAAS,CAAC,CAAM,EAAA;;QAEd,IACE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5C,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;AACxC,aAAC,CAAC,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;UACpC;;YAEA;QACF;;AAGA,QAAA,IACE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;AACjD,aAAC,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,EACnC;YACA,CAAC,CAAC,cAAc,EAAE;QACpB;IACF;AAGA,IAAA,OAAO,CAAC,KAAqB,EAAA;QAC3B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;AAChC,YAAA,MAAM,WAAW,GAAW,KAAK,CAAC;iBAC/B,OAAO,CAAC,YAAY;AACpB,iBAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC;QACzD;IACF;+GA1CW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAMC,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;gBA8BnC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AC2CnC,MAAM,UAAU,GAAG;IACf,0BAA0B;IAC1B,8BAA8B;IAC9B,+BAA+B;IAC/B,6BAA6B;IAC7B,yBAAyB;IACzB,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;IAC3B,wBAAwB;IACxB,0BAA0B;IAC1B,4BAA4B;IAC5B,+BAA+B;IAC/B,0BAA0B;IAC1B,sBAAsB;IACtB,0BAA0B;IAC1B,4BAA4B;IAC5B,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,yBAAyB;IACzB,2BAA2B;IAC3B,0BAA0B;IAC1B,wBAAwB;IACxB,wBAAwB;IACxB,2BAA2B;IAC3B,yBAAyB;IACzB,4BAA4B;IAC5B,sBAAsB;IACtB,8BAA8B;IAC9B,2BAA2B;IAC3B,8BAA8B;IAC9B,wBAAwB;IACxB,sBAAsB;IACtB,gCAAgC;IAChC,4BAA4B;IAC5B,6BAA6B;IAC7B;CACH;AAED,MAAM,UAAU,GAAG;IACf,sBAAsB;IACtB,yBAAyB;IACzB,uBAAuB;IACvB,4BAA4B;IAC5B,4BAA4B;IAC5B,8BAA8B;IAC9B,+BAA+B;IAC/B,wBAAwB;IACxB,0BAA0B;IAC1B,0BAA0B;IAC1B,uBAAuB;IACvB,uBAAuB;IACvB;CACH;AAED,MAAM,KAAK,GAAG;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,OAAO;IACP,UAAU;IACV,aAAa;IACb,cAAc;IACd;CACH;MAkBY,cAAc,CAAA;IAEvB,OAAO,OAAO,CAAC,MAAuB,EAAA;AAClC,QAAA,MAAM,SAAS,GAAe;;YAE1B,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE;YAC3D,QAAQ;YACR;SACH;;AAGD,QAAA,IAAI,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE;AAC/B,YAAA,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9F;AAEA,QAAA,IAAI,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE;AACjC,YAAA,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAClG;AAEA,QAAA,IAAI,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE;AACnC,YAAA,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QACtG;QAEA,OAAO;AACH,YAAA,QAAQ,EAAE,cAAc;YACxB;SACH;IACL;+GA3BS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAlFvB,0BAA0B;YAC1B,8BAA8B;YAC9B,+BAA+B;YAC/B,6BAA6B;YAC7B,yBAAyB;YACzB,+BAA+B;YAC/B,+BAA+B;YAC/B,2BAA2B;YAC3B,wBAAwB;YACxB,0BAA0B;YAC1B,4BAA4B;YAC5B,+BAA+B;YAC/B,0BAA0B;YAC1B,sBAAsB;YACtB,0BAA0B;YAC1B,4BAA4B;YAC5B,4BAA4B;YAC5B,2BAA2B;YAC3B,4BAA4B;YAC5B,yBAAyB;YACzB,2BAA2B;YAC3B,0BAA0B;YAC1B,wBAAwB;YACxB,wBAAwB;YACxB,2BAA2B;YAC3B,yBAAyB;YACzB,4BAA4B;YAC5B,sBAAsB;YACtB,8BAA8B;YAC9B,2BAA2B;YAC3B,8BAA8B;YAC9B,wBAAwB;YACxB,sBAAsB;YACtB,gCAAgC;YAChC,4BAA4B;YAC5B,6BAA6B;AAC7B,YAAA,wBAAwB,EAIxB,sBAAsB;YACtB,yBAAyB;YACzB,uBAAuB;YACvB,4BAA4B;YAC5B,4BAA4B;YAC5B,8BAA8B;YAC9B,+BAA+B;YAC/B,wBAAwB;YACxB,0BAA0B;YAC1B,0BAA0B;YAC1B,uBAAuB;YACvB,uBAAuB;AACvB,YAAA,qBAAqB,EAIrB,UAAU;YACV,SAAS;YACT,QAAQ;YACR,OAAO;YACP,UAAU;YACV,aAAa;YACb,cAAc;AACd,YAAA,cAAc,aA/Dd,0BAA0B;YAC1B,8BAA8B;YAC9B,+BAA+B;YAC/B,6BAA6B;YAC7B,yBAAyB;YACzB,+BAA+B;YAC/B,+BAA+B;YAC/B,2BAA2B;YAC3B,wBAAwB;YACxB,0BAA0B;YAC1B,4BAA4B;YAC5B,+BAA+B;YAC/B,0BAA0B;YAC1B,sBAAsB;YACtB,0BAA0B;YAC1B,4BAA4B;YAC5B,4BAA4B;YAC5B,2BAA2B;YAC3B,4BAA4B;YAC5B,yBAAyB;YACzB,2BAA2B;YAC3B,0BAA0B;YAC1B,wBAAwB;YACxB,wBAAwB;YACxB,2BAA2B;YAC3B,yBAAyB;YACzB,4BAA4B;YAC5B,sBAAsB;YACtB,8BAA8B;YAC9B,2BAA2B;YAC3B,8BAA8B;YAC9B,wBAAwB;YACxB,sBAAsB;YACtB,gCAAgC;YAChC,4BAA4B;YAC5B,6BAA6B;AAC7B,YAAA,wBAAwB,EAIxB,sBAAsB;YACtB,yBAAyB;YACzB,uBAAuB;YACvB,4BAA4B;YAC5B,4BAA4B;YAC5B,8BAA8B;YAC9B,+BAA+B;YAC/B,wBAAwB;YACxB,0BAA0B;YAC1B,0BAA0B;YAC1B,uBAAuB;YACvB,uBAAuB;AACvB,YAAA,qBAAqB,EAIrB,UAAU;YACV,SAAS;YACT,QAAQ;YACR,OAAO;YACP,UAAU;YACV,aAAa;YACb,cAAc;YACd,cAAc,CAAA,EAAA,CAAA,CAAA;AAmBL,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,SAAA,EALZ;YACP,QAAQ;YACR;AACH,SAAA,EAAA,OAAA,EAAA,CAZM,UAAU,CAAA,EAAA,CAAA,CAAA;;4FAcR,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG,UAAU;AACb,wBAAA,GAAG,UAAU;AACb,wBAAA,GAAG;AACN,qBAAA;AACD,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG,UAAU;AACb,wBAAA,GAAG,UAAU;AACb,wBAAA,GAAG;AACN,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,QAAQ;wBACR;AACH;AACJ,iBAAA;;;ACzJD;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACG,SAAU,eAAe,CAAC,MAAuB,EAAA;AACrD,IAAA,MAAM,SAAS,GAAe;;QAE5B,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE;;QAG3D,QAAQ;QACR;KACD;;AAGD,IAAA,IAAI,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE;AACjC,QAAA,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5F;AAEA,IAAA,IAAI,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE;AACnC,QAAA,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IAChG;AAEA,IAAA,IAAI,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE;AACrC,QAAA,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACpG;AAEA,IAAA,OAAO,wBAAwB,CAAC,SAAS,CAAC;AAC5C;;MCxDa,iCAAiC,CAAA;AAM1C,IAAA,WAAA,GAAA;QAFQ,IAAA,CAAA,EAAE,GAAW,+BAA+B;IAGjD;AAEH;;AAEG;IACH,KAAK,GAAA;QACD,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,YAAA,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACjD;IACJ;AAEA;;AAEG;IACH,IAAI,GAAA;QACA,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,YAAA,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAEhD,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oCAAoC,CAAC;QAC/D;IACJ;IAEQ,yBAAyB,GAAA;QAC7B,IAAI,GAAG,GAAG,IAAW;QACrB,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAClC,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C;aAAK;AACD,YAAA,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YACnC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAEnC;AAEA,QAAA,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC1B,QAAA,GAAG,CAAC,SAAS,GAAG,CAAA,yEAAA,CAA2E;QAE3F,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oCAAoC,CAAC;IAC5D;+GAjDS,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,cAFhC,MAAM,EAAA,CAAA,CAAA;;4FAEP,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCSY,8BAA8B,CAAA;AAT3C,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;QAChC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAc;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAgB,IAAI,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,CAAC;AAMlD,IAAA;AAJU,IAAA,WAAW,CAAC,GAAe,EAAA;AAE9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;+GAZS,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,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,IAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb3C,+xBAyBA,EAAA,MAAA,EAAA,CAAA,kjFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlBQ,YAAY,8BACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAT1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,OAAA,EAC5B;wBACL,YAAY;wBACZ,YAAY;AACf,qBAAA,EAAA,QAAA,EAAA,+xBAAA,EAAA,MAAA,EAAA,CAAA,kjFAAA,CAAA,EAAA;8BAMQ,cAAc,EAAA,CAAA;sBAAtB;;;MEFQ,0BAA0B,CAAA;AATvC,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAU,IAAI,CAAC;QACtC,IAAA,CAAA,qBAAqB,GAAG,MAAM,EAAW;AAwBnD,IAAA;IArBG,kBAAkB,GAAA;QAEhB,UAAU,CAAC,MAAM,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAC7D;IAEO,gBAAgB,GAAA;AAEnB,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,+BAA+B,EAAE;IAC1C;IAEQ,+BAA+B,GAAA;AAEnC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM;YAAE;QAClC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAE9B,YAAA,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1D;+GA3BS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,yKAElB,8BAA8B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfnD,2iBAoBA,EAAA,MAAA,EAAA,CAAA,6jBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDbQ,YAAY,+BACZ,8BAA8B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKzB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBATtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB;wBACL,YAAY;wBACZ,8BAA8B;AACjC,qBAAA,EAAA,QAAA,EAAA,2iBAAA,EAAA,MAAA,EAAA,CAAA,6jBAAA,CAAA,EAAA;8BAMgD,cAAc,EAAA,CAAA;sBAA9D,eAAe;uBAAC,8BAA8B;;;MEZtC,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAU,SAAS,CAAC;AAC5C,QAAA,IAAA,CAAA,eAAe,GAAK,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAMhE,IAAA;AAJC,IAAA,mBAAmB,CAAC,CAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B;+GARW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAhB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;MCQY,0BAA0B,CAAA;AARvC,IAAA,WAAA,GAAA;AAUU,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5C,IAAA,CAAA,SAAS,GAAY,KAAK;AAmBnC,IAAA;IAjBC,IACI,QAAQ,CAAC,CAAU,EAAA;;AAErB,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;AAClB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM;YACvB,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;IAEA,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;;IAGjD,WAAW,GAAA;QACT,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAE,IAAI,CAAC,SAAS,CAAE;IAC9D;+GApBW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAJ1B,CAAC,gBAAgB,CAAC,0BCN/B,qSAEM,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,CAAA,CAAA;;4FDQO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,OAAA,EACtB,EACR,EAAA,SAAA,EACU,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,qSAAA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA;8BAUzB,QAAQ,EAAA,CAAA;sBADX;;;MENU,iCAAiC,CAAA;AAN9C,IAAA,WAAA,GAAA;AAQU,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAKrD,IAAA;AAHC,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;IACjD;+GANW,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,uFCT9C,uHAGM,EAAA,MAAA,EAAA,CAAA,sHAAA,EAAA,gEAAA,CAAA,EAAA,CAAA,CAAA;;4FDMO,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAN7C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,WAC9B,EAAE,EAAA,QAAA,EAAA,uHAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,EAAA,gEAAA,CAAA,EAAA;;;MEIA,6BAA6B,CAAA;AAN1C,IAAA,WAAA,GAAA;AAQU,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAKrD,IAAA;AAHC,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;IACjD;+GANW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,mFCT1C,+GAGM,EAAA,MAAA,EAAA,CAAA,qFAAA,EAAA,gEAAA,CAAA,EAAA,CAAA,CAAA;;4FDMO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,WAC1B,EAAE,EAAA,QAAA,EAAA,+GAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,EAAA,gEAAA,CAAA,EAAA;;;MEGA,oBAAoB,CAAA;AAM/B,IAAA,WAAA,CAAoB,GAAkC,EAAA;QAAlC,IAAA,CAAA,GAAG,GAAH,GAAG;AALhB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA0C,SAAS,CAAC;AACjE,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAqB,IAAI,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgC,QAAQ,CAAC;QAGjE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS;QAClD,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AAEtF,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;QAEpC,IAAI,CAAC,WAAW,EAAE;YAChB,WAAW,GAAG,QAAQ;QACxB;QAEA,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,IAAI;AACxF,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AAClE,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,EAAE,IAAI,WAAW,CAAA,CAAE,CAAC;IACpF;+GAzBW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;MCWY,sBAAsB,CAAA;AARnC,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,YAAY,GAA0B,EAAE,CAAC;AAClD;;;AAGG;QACI,IAAA,CAAA,UAAU,GAAG,KAAK,EAAU;AAC5B,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAErC,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAAE,gBAAA,OAAO,EAAE;AAEjC,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAG,CAAA,SAAA,CAAW,CAAC;AACvD,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;QACK,IAAA,CAAA,YAAY,GAAG,MAAM,EAAQ;AACpC,QAAA,IAAA,CAAA,WAAW,GAAS,IAAI,IAAI,EAAE;QAC9B,IAAA,CAAA,QAAQ,GAAgC,MAAM;AAC9C,QAAA,IAAA,CAAA,UAAU,GAAW,CAAC,CAAC;AAoJxB,IAAA;IA1IC,QAAQ,GAAA;QAEN,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,mBAAmB,EAAE;IAC5B;;IAGA,WAAW,GAAA;AAET,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC5E;IAEA,UAAU,GAAA;QAER,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;IAC5C;IAEA,gBAAgB,GAAA;AAEd,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACvD;IAEA,kBAAkB,GAAA;QAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;QAEzC,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,QAAA,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;AAEnD,QAAA,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE;AAChD,QAAA,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,EAAE;QAEnD,MAAM,YAAY,GAA8C,EAAE;;AAGlE,QAAA,KAAK,IAAI,CAAC,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAC7C;AACE,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QACpD;;AAGA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC,EAAE,EAC5C;YACE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACnD;;AAGA,QAAA,MAAM,aAAa,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM;AAC9C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE,EACvC;AACE,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QACpD;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IACzD;IAEA,oBAAoB,GAAA;AAElB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KACpD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACpE;IACH;IAEA,mBAAmB,GAAA;AAEjB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE;QACtD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC;IAC1E;;AAGA,IAAA,WAAW,CAAC,MAAc,EAAA;QAExB,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CACzB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,MAAM,EACpC,CAAC,CACF;QACD,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;AAEA,IAAA,WAAW,CAAC,UAAkB,EAAA;AAE5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;QACtB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;AAEA,IAAA,gBAAgB,CAAC,MAAc,EAAA;AAE7B,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAC9B;;YAEE,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpG,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,oBAAoB,EAAE;QAC7B;AACK,aAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAClC;;AAEE,YAAA,IAAI,CAAC,UAAU,IAAI,MAAM;YACzB,IAAI,CAAC,mBAAmB,EAAE;QAC5B;IACF;AAEA,IAAA,UAAU,CAAC,IAAY,EAAA;AAErB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;AAEA,IAAA,cAAc,CAAC,IAAwB,EAAA;AAErC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,mBAAmB,EAAE;QAC5B;IACF;AAEA,IAAA,aAAa,CAAC,IAAU,EAAA;AAEtB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,eAAe,KAAK,UAAU,CAAC;IAC1F;+GApKW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,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,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBnC,w5EA2DM,EAAA,MAAA,EAAA,CAAA,i8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9CE,YAAY,EAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAClB;wBACL,YAAY;AACf,qBAAA,EAAA,QAAA,EAAA,w5EAAA,EAAA,MAAA,EAAA,CAAA,i8FAAA,CAAA,EAAA;8BAKM,YAAY,EAAA,CAAA;sBAApB;;;MEVU,uBAAuB,CAAA;AANpC,IAAA,WAAA,GAAA;AAQS,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;AACxC,IAAA;+GAHY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,gNCTpC,0VASA,EAAA,MAAA,EAAA,CAAA,80BAAA,CAAA,EAAA,CAAA,CAAA;;4FDAa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,EAAE,EAAA,QAAA,EAAA,0VAAA,EAAA,MAAA,EAAA,CAAA,80BAAA,CAAA,EAAA;;;MEgBF,0BAA0B,CAAA;AAyBrC,IAAA,WAAA,CAAY,eAAiC,EAAA;;QAtB5B,IAAA,CAAA,WAAW,GAAG,GAAG;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;;QAG/C,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AAE1C,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;QAQnD,IAAA,CAAA,QAAQ,GAAuB,IAAI;QACnC,IAAA,CAAA,YAAY,GAAgC,IAAI;AAEhD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAC/B,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC3C,IAAA,CAAA,MAAM,GAA2B,IAAI;QAG3C,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1D,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;YACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;AACzC,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,kBAAkB,CAAC,YAA8B,EAAA;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAElD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AACjD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;AACvD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC;AAErD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;;AAGvD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC;QAE7D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC3C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAS,EAAE,IAAI,CAAC;AACjD,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACzC,YAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7C,SAAA,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAS,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;IACO,mBAAmB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC1C,YAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7C,SAAA,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAElB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAK;YACtB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;AAExD,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACzC,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YAC1B;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACpB,QAAA,CAAC,CAAC;IACJ;+GApFW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;;4FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCRY,2BAA2B,CAAA;AANxC,IAAA,WAAA,GAAA;AAOS,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC;QAE9C,IAAA,CAAA,MAAM,GAAG,MAAM,EAAW;AAC1B,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,wBAAwB,CAAC;AACnD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,aAAa,CAAC;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,cAAc,CAAC;AAC5C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAyC,IAAI,CAAC;QAC3D,IAAA,CAAA,MAAM,GAAG,KAAK,EAAW;AACzB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS;AAmB5C,IAAA;IAjBQ,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC;AAEA;;AAEG;AACH,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,OAAO,CAAC,QAAQ,CAAC;QACnB;;QAEA,OAAO,CAAC,QAAQ,CAAC;IACnB;+GA1BW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,65BCZxC,8pCA+BA,EAAA,MAAA,EAAA,CAAA,kMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBY,YAAY,EAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,iFAAE,oBAAoB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI1D,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,WACxB,CAAC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,8pCAAA,EAAA,MAAA,EAAA,CAAA,kMAAA,CAAA,EAAA;;;MEE3D,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;AAOS,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS;AAY5C,IAAA;AAVE;;AAEE;AACH,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;QAChC;;AAEA,QAAA,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;IAChC;+GAbW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV/B,2HAIM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,aAAa,EAAA,OAAA,EACd,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2HAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;MEEZ,sBAAsB,CAAA;AAEjC,IAAA,WAAA,GAAA,EAAgB;+GAFL,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;MCIY,yBAAyB,CAAA;AANtC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAA+B,aAAa,CAAC;AACpE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,CAAC;QAC/B,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAU;AAC3B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AA6BzC,IAAA;AA3BC,IAAA,WAAW,CAAC,cAA6B,EAAA;AACvC,QAAA,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/C;IACF;IAEA,QAAQ,GAAA;;QAEN,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;QAE7C,IAAI,CAAC,cAAc,CAAC;aACjB,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAEzC,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAClB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,QAAA,CAAC,CAAC;IACN;IAEA,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;QAC1C;IACF;+GAnCW,yBAAyB,EAAA,IAAA,EAAA,EAAA,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,SAAA,EAAA,IAAA,EAAA,yBAAyB,2sBCXtC,qWAeA,EAAA,MAAA,EAAA,CAAA,qjCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,+0BAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI7C,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,WACtB,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,qWAAA,EAAA,MAAA,EAAA,CAAA,qjCAAA,CAAA,EAAA;8BAKhD,UAAU,EAAA,CAAA;sBAAlB;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;;;MELU,wBAAwB,CAAA;AAKnC,IAAA,WAAA,CAAoB,GAAkC,EAAA;QAAlC,IAAA,CAAA,GAAG,GAAH,GAAG;AAJhB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA0C,SAAS,CAAC;AACjE,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAqB,IAAI,CAAC;AACtC,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAgC,QAAQ,CAAC;QAGrE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS;QAClD,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;AAEtF,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;QAE5C,IAAI,CAAC,eAAe,EAAE;YACpB,eAAe,GAAG,QAAQ;QAC5B;AAEA,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AAClE,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,IAAI,EAAE,CAAA,KAAA,CAAO,CAAC;AACvE,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,EAAE,IAAI,eAAe,CAAA,CAAE,CAAC;IACxF;+GAxBW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;ICyBW;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;MAkBlB,6BAA6B,CAAA;AAKxC,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxE,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACrB;IACF;AAwBA,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;AAtBvB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAEnD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAA2B,CAAC;AACpD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAM,IAAI,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAM,IAAI,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAsB,mBAAmB,CAAC,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,WAAW,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAS,WAAW,CAAC;AAC9C,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,IAAI,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,EAAO,CAAC;AAE/B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAA+B,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC;AACf,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;QAChC,IAAA,CAAA,YAAY,GAAG,mBAAmB;AAElC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ;IAED;AAE7C,IAAA,WAAW,CAAC,cAA6B,EAAA;;QAEvC,IACE,cAAc,CAAC,cAAc,CAAC;YAC9B,cAAc,CAAC,SAAS,CAAC;AACzB,YAAA,cAAc,CAAC,OAAO,CAAC,EACvB;YACA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;YACtD,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,IAAI,CACrE;QACH;IACF;IAEA,QAAQ,GAAA;;QAEN,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;QACtD,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,IAAI;AACtE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;;AAGpC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,WAAW,EAAE;YACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;QACnC;;QAGA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;YAChC,MAAM,MAAM,GACV,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,IAAI;AAC9D,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,EAAE;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YACjC;AACF,QAAA,CAAC,CAAC;IACJ;IAEO,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;;AAEpB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;gBACzD;YACF;AAEA,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC1B,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;;gBAEvB,UAAU,CAAC,MAAK;AACd,oBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAC7D,+BAA+B,CAChC;oBACD,IAAI,WAAW,EAAE;wBACf,WAAW,CAAC,KAAK,EAAE;oBACrB;gBACF,CAAC,EAAE,GAAG,CAAC;YACT;QACF;IACF;AAEO,IAAA,YAAY,CAAC,MAA6B,EAAA;AAC/C,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,gBAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE;gBACzC;YACF;AACA,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB;IACF;AAEO,IAAA,cAAc,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;IACjC;IAEO,iBAAiB,GAAA;AACtB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAC1C,MAAM,MAAM,GAA+C,EAAE;;AAG7D,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC1B,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,WAAW;AAC7C,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACtB,gBAAA,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACxB;YACA,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,QAAA,CAAC,CAAC;;AAGF,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM;YAC7C,SAAS;AACT,YAAA,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;AAC3B,SAAA,CAAC,CAAC;IACL;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;QACrD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE;QACvB;QAEA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAC1B,CAAC,MAAM,KACL,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AAClD,aAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAChE;IACH;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IACzB;IAEO,UAAU,GAAA;QACf,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,GAAG,CAAC;IAC7C;+GAxJW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,IAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,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,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClD1C,i+JAmJA,EAAA,MAAA,EAAA,CAAA,ikRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1GI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,wBAAwB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKf,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAZzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,OAAA,EAC1B;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,yBAAyB;wBACzB;AACD,qBAAA,EAAA,QAAA,EAAA,i+JAAA,EAAA,MAAA,EAAA,CAAA,ikRAAA,CAAA,EAAA;+EAK0B,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;gBAIzB,eAAe,EAAA,CAAA;sBAFd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MEnC/B,6BAA6B,CAAA;AAN1C,IAAA,WAAA,GAAA;AAOS,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAA8B;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,OAAO,CAAC;AAC3C,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAU;QAC1C,IAAA,CAAA,cAAc,GAAG,KAAK,EAAmC;QACzD,IAAA,CAAA,gBAAgB,GAAG,MAAM,EAA4B;AAC7D,IAAA;+GANY,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB1C,myBA2BA,EAAA,MAAA,EAAA,CAAA,2iCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDTa,6BAA6B,uKAF9B,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEX,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;+BACE,0BAA0B,EAAA,OAAA,EAG3B,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,myBAAA,EAAA,MAAA,EAAA,CAAA,2iCAAA,CAAA,EAAA;;;IEHb;AAAZ,CAAA,UAAY,sBAAsB,EAAA;AAEhC,IAAA,sBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,sBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,sBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,GAAA,EAAA,CAAA,CAAA;MAiBrB,gCAAgC,CAAA;AAE3C,IAAA,eAAe,CAAC,KAAiB,EAAA;AAE/B,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACxE;AACE,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACrB;IACF;AAcA,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;QAZd,IAAA,CAAA,YAAY,GAAG,sBAAsB;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAA8B;AACnD,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAmB,OAAO,CAAC;AAClD,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAChC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAyB,sBAAsB,CAAC,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAkC,IAAI,CAAC,CAAC;QAC5D,IAAA,CAAA,cAAc,GAAG,MAAM,EAAgF;AACvG,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAkC,IAAI,CAAC;AAC9D,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAkC,IAAI,CAAC;QACpE,IAAA,CAAA,YAAY,GAAkB,IAAI;QAClC,IAAA,CAAA,MAAM,GAAY,KAAK;IAEgB;AAE9C,IAAA,WAAW,CAAC,cAA6B,EAAA;;QAGvC,IAAI,cAAc,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,EAC5D;AACE,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;QACrC;IACF;AAEO,IAAA,gBAAgB,CAAC,KAAa,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,CAAC;AAE5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAgB,YAAY,CAAC;AAEvF,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,EACzB;AACE,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS;QAC/B;AAEA,QAAA,OAAO,CAAC;IACV;IAEO,cAAc,GAAA;AAEnB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;IAC5B;IAEO,YAAY,CAAC,MAAgC,EAAE,YAAsC,EAAA;AAE1F,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC;AAC3C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAC,CAAC,CAAC;;;IAGpD;AAEO,IAAA,gBAAgB,CAAC,MAAkB,EAAE,MAAgC,EAAE,YAAsC,EAAA;QAElH,MAAM,CAAC,eAAe,EAAE;AACxB,QAAA,IAAI,YAAY,EAAE,QAAQ,EAAE,MAAM;YAAE;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC;IACzC;+GAlEW,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,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,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,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9B7C,smDA2CA,EAAA,MAAA,EAAA,CAAA,4tDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnBI,YAAY,+BACZ,6BAA6B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKpB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAT5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,OAAA,EAC9B;wBACP,YAAY;wBACZ;AACD,qBAAA,EAAA,QAAA,EAAA,smDAAA,EAAA,MAAA,EAAA,CAAA,4tDAAA,CAAA,EAAA;+EAMD,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;gBAQA,QAAQ,EAAA,CAAA;sBAAjD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;IE1B9B;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAE3B,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;MAkBhB,2BAA2B,CAAA;AAGtC,IAAA,eAAe,CAAC,KAAiB,EAAA;AAE/B,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACxE;AACE,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACrB;IACF;AAgBA,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;AAdvB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAyB,CAAC;AAClD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAQ,EAAE,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAQ,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAoB,iBAAiB,CAAC,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,WAAW,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAS,CAAC,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,EAAS,CAAC;AAClC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAwB,EAAE,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC;QACf,IAAA,CAAA,YAAY,GAAG,iBAAiB;IAEM;AAE7C,IAAA,WAAW,CAAC,cAA6B,EAAA;;AAGvC,QAAA,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,EAC5F;YACE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;YACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,IAC3C,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CACnC;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpC;IACF;IAEA,QAAQ,GAAA;;QAGN,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,IAC3C,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CACnC;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;;AAGlC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5C;;QAGA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,KAAI;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,IAC9C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CACjC;;AAGD,YAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AAC1E,YAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;YAE3D,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE;AAC7F,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;YACvC;AACF,QAAA,CAAC,CAAC;IACJ;IAEO,cAAc,GAAA;AAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EACpB;AACE,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;QAC5B;IACF;IAEO,YAAY,CAAC,MAA2B,EAAE,KAAY,EAAA;QAE3D,KAAK,CAAC,eAAe,EAAE;QAEvB,IAAI,MAAM,CAAC,QAAQ;YAAE;AAErB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,QAAA,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AAEpF,QAAA,IAAI,WAAkC;QAEtC,IAAI,UAAU,EACd;;AAEE,YAAA,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;QACnF;aAEA;;AAEE,YAAA,WAAW,GAAG,CAAC,GAAG,eAAe,EAAE,MAAM,CAAC;QAC5C;AAEA,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC;AAEO,IAAA,gBAAgB,CAAC,MAA2B,EAAA;AAEjD,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;IACjF;IAEO,cAAc,GAAA;AAEnB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AAEvC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EACzB;AACE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;QAC3B;;AAGA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EACxB;AACE,YAAA,OAAO,OAAO;QAChB;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE;AAEzC,QAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,UAAU,EACjC;AACE,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzD;QAEA,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxF,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU;AAE9C,QAAA,OAAO,CAAA,EAAG,UAAU,CAAA,GAAA,EAAM,SAAS,GAAG;IACxC;IAEO,QAAQ,GAAA;AAEb,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/B;IAEO,SAAS,GAAA;AAEd,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACxE,QAAA,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;IACtC;IAEO,aAAa,GAAA;AAElB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACxE,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAE9C,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAE7C,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,IAChC,eAAe,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAClE;IACH;IAEO,cAAc,GAAA;AAEnB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACxE,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;QAE9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;AAE7E,QAAA,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,IAChD,eAAe,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAClE,CAAC,MAAM;QAER,OAAO,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,cAAc,CAAC,MAAM;IACnE;AAEO,IAAA,eAAe,CAAC,KAAY,EAAA;QAEjC,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EACxB;YACE,IAAI,CAAC,QAAQ,EAAE;QACjB;aAEA;YACE,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;+GAjMW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,IAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BxC,0qEAkEA,EAAA,MAAA,EAAA,CAAA,mgTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3CQ,YAAY,kIACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,sBAAsB,EAAA,QAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKjB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAXvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,OAAA,EACxB;wBACL,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB;AACH,qBAAA,EAAA,QAAA,EAAA,0qEAAA,EAAA,MAAA,EAAA,CAAA,mgTAAA,CAAA,EAAA;+EAOH,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;AEjC5C;;;;AAIG;AACH,SAAS,qBAAqB,CAAC,OAAoB,EAAA;AACjD,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,KAAK;;;AAI1B,IAAA,OAAO,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;AAClD;AAEA;;;;;AAKG;AACG,SAAU,cAAc,CAAC,IAAY,EAAE,cAAuB,EAAA;AAClE,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,KAAK;;IAGvB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAClD,IAAA,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AACvC,IAAA,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACvC,IAAA,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;IACvC,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;IACpC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,IAAA,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU;AACzE,IAAA,WAAW,CAAC,WAAW,GAAG,IAAI;AAE9B,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;AAEtC,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW;;AAEzC,IAAA,MAAM,QAAQ,GAAG,cAAc,IAAI,GAAG,CAAC;AAEvC,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;IAEtC,OAAO,SAAS,GAAG,QAAQ;AAC7B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;MCvFa,qBAAqB,CAAA;AAMhC,IAAA,WAAA,CACU,GAAe,EACf,SAAoB,EACpB,IAAsB,EAAA;QAFtB,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,IAAI,GAAJ,IAAI;AARP,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAsC,KAAK,CAAC;QAE3D,IAAA,CAAA,cAAc,GAAuB,IAAI;IAM9C;IAGH,YAAY,GAAA;AACV,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE;AAEvC,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QAC/B;IACF;IAGA,YAAY,GAAA;QACV,IAAI,CAAC,WAAW,EAAE;IACpB;AAEQ,IAAA,kBAAkB,CAAC,IAAY,EAAA;QACrC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;IACvC;AAEQ,IAAA,WAAW,CAAC,IAAY,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,WAAW,EAAE;QACpB;;QAGA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;;QAGzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;;QAGzD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAC9D,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAA,gBAAA,EAAmB,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;;AAGlF,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC;AACpE,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC;AAC/D,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC;;;AAIpE,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;;QAG9D,IAAI,CAAC,eAAe,EAAE;;AAGtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,yBAAyB,CAAC;IACzE;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;AAC9D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC5B;IACF;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,qBAAqB,EAAE;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE;AAC/D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAEhC,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,IAAI,GAAG,CAAC;QAEZ,QAAQ,QAAQ;AACd,YAAA,KAAK,KAAK;AACR,gBAAA,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5D,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC;gBAChF;AACF,YAAA,KAAK,QAAQ;gBACX,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC;gBAC1C,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC;gBAChF;AACF,YAAA,KAAK,MAAM;gBACT,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC;AAChF,gBAAA,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC;gBAC7D;AACF,YAAA,KAAK,OAAO;gBACV,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC;gBAChF,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC;gBAC1C;;AAGJ,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI,CAAC;AAC/D,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC;IACnE;+GArGW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,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,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,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACb,iBAAA;sIAcC,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY;gBAU1B,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY;;;ICChB;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,YAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,YAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAJW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;MAkBX,sBAAsB,CAAA;AAIjC,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxE,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACrB;IACF;AAkBA,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;AAhBvB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAEnD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAoB,CAAC;AAC7C,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAM,IAAI,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAM,IAAI,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,YAAY,CAAC,EAAE,CAAC;AAC3C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,EAAO,CAAC;AAC/B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC;QACf,IAAA,CAAA,YAAY,GAAG,YAAY;AAC3B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ;IAED;AAE7C,IAAA,WAAW,CAAC,cAA6B,EAAA;;QAEvC,IACE,cAAc,CAAC,cAAc,CAAC;YAC9B,cAAc,CAAC,SAAS,CAAC;AACzB,YAAA,cAAc,CAAC,OAAO,CAAC,EACvB;YACA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;YACtD,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,IAAI,CACrE;QACH;IACF;IAEA,QAAQ,GAAA;;QAEN,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;QACtD,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,IAAI;AACtE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;;AAGpC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,WAAW,EAAE;YACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;QACnC;;QAGA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;YAChC,MAAM,MAAM,GACV,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,IAAI;AAC9D,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,EAAE;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YACjC;AACF,QAAA,CAAC,CAAC;IACJ;IAEO,cAAc,GAAA;;AAEnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;YACzD;QACF;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;IAC5B;AAEO,IAAA,YAAY,CAAC,MAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;AAEjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE;YACzC;QACF;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB;AAEA;;;;AAIG;AACI,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;;AAGvB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAC7D,uBAAuB,CACxB;QACD,IAAI,CAAC,WAAW,EAAE;;AAEhB,YAAA,MAAM,eAAe,GACnB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC;AACjE,YAAA,IAAI,CAAC,eAAe;AAAE,gBAAA,OAAO,KAAK;AAElC,YAAA,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW;AACjD,YAAA,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,YAAA,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAExE,YAAA,OAAO,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC;QAC7C;;AAGA,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW;AACzC,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE,QAAA,OAAO,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC;IAC7C;+GAtHW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,IAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CnC,2+FAuFA,EAAA,MAAA,EAAA,CAAA,2zIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlDI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,wBAAwB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKf,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAClB;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB;AACD,qBAAA,EAAA,QAAA,EAAA,2+FAAA,EAAA,MAAA,EAAA,CAAA,2zIAAA,CAAA,EAAA;+EAK0B,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc;gBAGzB,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;AEpC5C;;;;;AAKG;AACG,SAAU,eAAe,CAAC,OAAY,EAAE,SAAuB,EAAA;AACnE,IAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,SAAS;IAEpH,OAAO;AACL,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE;AACT,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,eAAe,EAAE,SAAS;AAC1B,YAAA,SAAS,EAAE,gBAAgB;AAC3B,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE;AACb;AACF,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,SAAS,EAAE,mBAAmB;AAC/B,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,SAAS,EAAE;AACT,oBAAA,KAAK,EAAE;AACR;AACF,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE;AACP,aAAA;AACD,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,YAAY,EAAE,OAAO;AACrB,YAAA,aAAa,EAAE;AACb,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AACzB;AACF,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE;AACP,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE;AACP,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,UAAU,EAAE,aAAa;AACzB,gBAAA,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzB;AACF,SAAA;QACD,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;YACjC,IAAI,EAAE,KAAK,CAAC,SAAS;AACrB,YAAA,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK,CAAC,MAAM;AAClB,YAAA,SAAS,EAAE;gBACT,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,gBAAA,KAAK,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpD,oBAAA,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC/B,oBAAA,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS;iBAC9B;AACF;AACF,SAAA,CAAC;KACH;AACH;;MC5Fa,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,gFCRvC,sJAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDKa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,WACvB,EAAE,EAAA,QAAA,EAAA,sJAAA,EAAA;;;MEMF,iBAAiB,CAAA;AAP9B,IAAA,WAAA,GAAA;QAQW,IAAA,CAAA,KAAK,GAAW,oBAAoB;QACpC,IAAA,CAAA,SAAS,GAA2C,EAAE;AAC/D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAgB,IAAI,CAAC;AASxC,IAAA;AAPC,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3B;IACF;+GAXW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV9B,2kBAqBA,EAAA,MAAA,EAAA,CAAA,09CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhBc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAKb,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2kBAAA,EAAA,MAAA,EAAA,CAAA,09CAAA,CAAA,EAAA;8BAGxC,KAAK,EAAA,CAAA;sBAAb;gBACQ,SAAS,EAAA,CAAA;sBAAjB;;;MEHU,4BAA4B,CAAA;AANzC,IAAA,WAAA,GAAA;AAOS,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAsC,KAAK,CAAC;AACjE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AACxC,IAAA;+GANY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,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,QAAA,EAAA,EAAA,EAAA,QAAA,ECTzC,2vBA8BA,EAAA,MAAA,EAAA,CAAA,gmBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,wBAAwB,EAAA,OAAA,EACzB,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2vBAAA,EAAA,MAAA,EAAA,CAAA,gmBAAA,CAAA,EAAA;;;MEGZ,mBAAmB,CAAA;AAG9B,IAAA,WAAA,CAAoB,GAAiC,EAAA;QAAjC,IAAA,CAAA,GAAG,GAAH,GAAG;AAFhB,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;QAGtC,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC,GAAG,IAAI;IACpG;+GAXW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,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,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;MCCY,qBAAqB,CAAA;AANlC,IAAA,WAAA,GAAA;AAOS,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,YAAY,CAAC;AAC7C,IAAA;+GAFY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,oNCRlC,uOAQA,EAAA,MAAA,EAAA,CAAA,+1BAAA,CAAA,EAAA,CAAA,CAAA;;4FDAa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,EAAE,EAAA,QAAA,EAAA,uOAAA,EAAA,MAAA,EAAA,CAAA,+1BAAA,CAAA,EAAA;;;MEOF,qBAAqB,CAAA;AARlC,IAAA,WAAA,GAAA;QASW,IAAA,CAAA,OAAO,GAAW,EAAE;QACpB,IAAA,CAAA,IAAI,GAA6C,MAAM;AACjE,IAAA;+GAHY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXlC,qUASA,EAAA,MAAA,EAAA,CAAA,4pBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHY,YAAY,EAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAKX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qUAAA,EAAA,MAAA,EAAA,CAAA,4pBAAA,CAAA,EAAA;8BAGtC,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;MEGU,wBAAwB,CAAA;AAcnC,IAAA,WAAA,GAAA;QAbS,IAAA,CAAA,SAAS,GAAY,KAAK;AAC5B,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAQ,EAAE,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAW,EAAE,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAQ,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAW,EAAE,CAAC;QAChC,IAAA,CAAA,YAAY,GAAG,MAAM,EAAY;QAMtC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE;AACxH,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,SAAS,CAAC;AAClC,YAAA,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5E,SAAA,CAAC;;QAGF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9E,QAAA,IAAI,UAAU,EAAE,MAAM,EACtB;YACE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QACrC;;AAGA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9D,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACzC;;QAGA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;;AAEhC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE;AACrC,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;YACnC;AACF,QAAA,CAAC,CAAC;QAEF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtE;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE;YAC5C;QACF,CAAC,EAAE,CAAC,CAAC;IACP;AACO,IAAA,UAAU,CAAC,IAAY,EAAA;AAE5B,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B;IAEO,OAAO,GAAA;AAEZ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,KAAK;QAC5D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,KAAI;AACrC,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO;AAChD,kBAAE;AACF,kBAAE,CAAC,GAAG,YAAY,EAAE,OAAO,CAAC;;YAG9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AACpC,YAAA,OAAO,YAAY;AACrB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;IAC7B;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;QAE7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,KAAI;AACrC,YAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;AAClC,YAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;YAGzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,YAAA,OAAO,QAAQ;AACjB,QAAA,CAAC,CAAC;IACJ;+GA9FW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,krCChBrC,s4CA6CA,EAAA,MAAA,EAAA,CAAA,swBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpCI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,mBAAmB,68BACnB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKZ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB;wBACT,YAAY;wBACZ,mBAAmB;wBACnB;AACH,qBAAA,EAAA,QAAA,EAAA,s4CAAA,EAAA,MAAA,EAAA,CAAA,swBAAA,CAAA,EAAA;wDAKU,SAAS,EAAA,CAAA;sBAAjB;gBAW4B,aAAa,EAAA,CAAA;sBAAzC,SAAS;uBAAC,gBAAgB;;;MEjBhB,wBAAwB,CAAA;AARrC,IAAA,WAAA,GAAA;QASU,IAAA,CAAA,WAAW,GAAG,CAAC;QACf,IAAA,CAAA,UAAU,GAAG,CAAC;AAEb,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU;QACjD,IAAA,CAAA,cAAc,GAAG,KAAK;AA6CtB,IAAA;IA3CA,QAAQ,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC;IACD;IAEA,IAAI,GAAA;QACH,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC;IACD;AAEA,IAAA,QAAQ,CAAC,KAAY,EAAA;AACpB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AAEzB,QAAA,IAAI,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAEvD,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACxE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAE1B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;gBACxC,UAAU,GAAG,CAAC;YACf;AAAO,iBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACxC,gBAAA,UAAU,GAAG,IAAI,CAAC,UAAU;YAC7B;QACD;aAAO;AACN,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC5B;QAEA,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAEzC,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC;IACD;AAEA,IAAA,UAAU,CAAC,IAAY,EAAA;AACtB,QAAA,OAAO,IAAI,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,GAAG,CAAA,EAAG,IAAI,EAAE;IAC1C;+GAjDY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXrC,wxBAoBA,EAAA,MAAA,EAAA,CAAA,+4CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAMb,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;+BACI,mBAAmB,EAAA,OAAA,EACpB,CAAC,YAAY,CAAC,mBAGN,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,QAAA,EAAA,wxBAAA,EAAA,MAAA,EAAA,CAAA,+4CAAA,CAAA,EAAA;8BAGV,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAES,UAAU,EAAA,CAAA;sBAAnB;;;IEPU;AAAZ,CAAA,UAAY,+BAA+B,EAAA;AACzC,IAAA,+BAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,+BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,+BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,+BAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EALW,+BAA+B,KAA/B,+BAA+B,GAAA,EAAA,CAAA,CAAA;AAO3C,IAAK,2BASJ;AATD,CAAA,UAAK,2BAA2B,EAAA;AAC9B,IAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,SAAuB;AACvB,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,SAAqB;AACrB,IAAA,2BAAA,CAAA,YAAA,CAAA,GAAA,SAAsB;AACtB,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,SAAoB;AACpB,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,SAAqB;AACrB,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,2BAAA,CAAA,cAAA,CAAA,GAAA,SAAwB;AACxB,IAAA,2BAAA,CAAA,YAAA,CAAA,GAAA,SAAsB;AACxB,CAAC,EATI,2BAA2B,KAA3B,2BAA2B,GAAA,EAAA,CAAA,CAAA;MAiBnB,+BAA+B,CAAA;AAK1C,IAAA,WAAA,GAAA;AAJO,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAU;AACvC,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,QAAQ,EAA0B;QAC/D,IAAA,CAAA,eAAe,GAAW,EAAE;QAGjC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAClD,QAAA,CAAC,CAAC;IACJ;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,OAAO,EAAE;AAEnC,QAAA,IAAI,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAC3D,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,GAAG,CAC/D,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;QAE7F,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,gBAAgB,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE;AAEjF,QAAA,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE;AACtE,YAAA,mBAAmB,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,gBAAgB,CAAC,cAAc,EAAE;QAC/F;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,8BAA8B,CAAC,mBAAoB,CAAC,cAAc,EAAE,OAAO,CAAC;AACrG,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,8BAA8B,CAAC,mBAAoB,CAAC,cAAc,EAAE,KAAK,CAAC;QAEjG,IAAI,KAAK,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,YAAY,EAAE,yCAAyC;AACjF,QAAA,KAAK,IAAI,CAAA,CAAA,EAAI,WAAW,CAAA,IAAA,EAAO,SAAS,SAAS;AAEjD,QAAA,OAAO,KAAK;IACd;IAEQ,8BAA8B,CAAC,eAAgD,EAAE,QAAyB,EAAA;QAChH,QAAQ,eAAe;YACrB,KAAK,+BAA+B,CAAC,KAAK;AACxC,gBAAA,OAAO,QAAQ,KAAK,OAAO,GAAG,2BAA2B,CAAC,UAAU,GAAG,2BAA2B,CAAC,QAAQ;YAC7G,KAAK,+BAA+B,CAAC,MAAM;AACzC,gBAAA,OAAO,QAAQ,KAAK,OAAO,GAAG,2BAA2B,CAAC,WAAW,GAAG,2BAA2B,CAAC,SAAS;YAC/G,KAAK,+BAA+B,CAAC,OAAO;AAC1C,gBAAA,OAAO,QAAQ,KAAK,OAAO,GAAG,2BAA2B,CAAC,YAAY,GAAG,2BAA2B,CAAC,UAAU;AACjH,YAAA;AACE,gBAAA,OAAO,QAAQ,KAAK,OAAO,GAAG,2BAA2B,CAAC,SAAS,GAAG,2BAA2B,CAAC,OAAO;;IAE/G;+GA9CW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,kZChC5C,qJAMA,EAAA,MAAA,EAAA,CAAA,uYAAA,CAAA,EAAA,CAAA,CAAA;;4FD0Ba,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,WAC7B,EAAE,EAAA,QAAA,EAAA,qJAAA,EAAA,MAAA,EAAA,CAAA,uYAAA,CAAA,EAAA;;;MEpBA,mBAAmB,CAAA;AAE9B,IAAA,WAAA,GAAA,EAAgB;+GAFL,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;MC8CY,wBAAwB,CAAA;AAanC,IAAA,WAAA,CAC4B,QAAkB,EACpC,EAAc,EACd,QAAmB,EAAA;QAFD,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAC1B,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAfX,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,OAAO,CAAC;AAC3C,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;QAChC,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MACtB,IAAI,CAAC,QAAQ,EAAE,KAAK,MAAM,GAAG,CAAA,OAAA,CAAS,GAAG,CAAA,QAAA,CAAU,CACpD;QACM,IAAA,CAAA,aAAa,GAAG,MAAM,EAAQ;QAC9B,IAAA,CAAA,MAAM,GAAG,KAAK;AACd,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACnD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ;IAM3C;IAEH,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;;QAGlB,IACE,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,EAAE,CAAC,aAAa;YACrB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI;AACvD,YAAA,IAAI,CAAC,QAAQ,EAAE,EACf;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACtE;IACF;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;;QAGvC,IACE,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,EAAE,CAAC,aAAa;YACrB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI;AACvD,YAAA,IAAI,CAAC,QAAQ,EAAE,EACf;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACtE;IACF;IAEO,kBAAkB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC;IAClD;AAEO,IAAA,kBAAkB,CAAC,GAAe,EAAA;QACvC,GAAG,CAAC,eAAe,EAAE;IACvB;AA1DW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kBAczB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAdP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,6fCrDrC,suBA2BM,EAAA,MAAA,EAAA,CAAA,ocAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDTM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,wBAAwB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAGpC;YACV,OAAO,CAAC,iBAAiB,EAAE;gBACzB,UAAU,CAAC,iBAAiB,EAAE;oBAC5B,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpD,oBAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACpE,CAAC;gBACF,UAAU,CAAC,iBAAiB,EAAE;oBAC5B,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACjD,oBAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;gBACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,oBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC7C,CAAC;gBACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,oBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC7C,CAAC;aACH,CAAC;YAEF,OAAO,CAAC,mBAAmB,EAAE;gBAC3B,UAAU,CAAC,QAAQ,EAAE;AACnB,oBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACxC,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;AACnB,oBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACxC,CAAC;aACH,CAAC;AACH,SAAA,EAAA,CAAA,CAAA;;4FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBArCpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,YAAY,EAAE,wBAAwB,CAAC,EAAA,UAAA,EAGrC;wBACV,OAAO,CAAC,iBAAiB,EAAE;4BACzB,UAAU,CAAC,iBAAiB,EAAE;gCAC5B,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpD,gCAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACpE,CAAC;4BACF,UAAU,CAAC,iBAAiB,EAAE;gCAC5B,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACjD,gCAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACvE,CAAC;4BACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,gCAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC7C,CAAC;4BACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,gCAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC7C,CAAC;yBACH,CAAC;wBAEF,OAAO,CAAC,mBAAmB,EAAE;4BAC3B,UAAU,CAAC,QAAQ,EAAE;AACnB,gCAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACxC,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;AACnB,gCAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACxC,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,suBAAA,EAAA,MAAA,EAAA,CAAA,ocAAA,CAAA,EAAA;;0BAgBE,MAAM;2BAAC,QAAQ;;;MEzDP,6BAA6B,CAAA;AAP1C,IAAA,WAAA,GAAA;;AASS,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,OAAO,CAAC;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,SAAS,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,QAAQ,CAAC;AAEtC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,kCAAkC,EAAE;AAQxD,IAAA;IANC,QAAQ,GAAA;QAEN,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;IAC/C;+GAbW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV1C,0EACA,EAAA,MAAA,EAAA,CAAA,0PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGX,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;+BACE,yBAAyB,EAAA,OAAA,EAG1B,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,0EAAA,EAAA,MAAA,EAAA,CAAA,0PAAA,CAAA,EAAA;;MAmBZ,kCAAkC,CAAA;AAK9C;;MEvBY,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0CAA0C;AACpD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;MCGY,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;;AASS,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,SAAS,CAAC;;AAEhC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,CAAC,CAAC;;AAE5B,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,CAAC,CAAC;;AAE/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,CAAC,CAAC;;AAE9B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,+BAA+B,EAAE;AAWrD,IAAA;IATC,QAAQ,GAAA;QAEN,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,SAAS,EAAE,CAAA,EAAA,CAAI;QAC9C,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,EAAE,CAAA,EAAA,CAAI;QAClD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,EAAA,CAAI;QAChD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,EAAE,CAAA,EAAA,CAAI;QACpD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;IAClC;+GArBW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,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,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVvC,gJAMA,EAAA,MAAA,EAAA,CAAA,qZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,sBAAsB,EAAA,OAAA,EAGvB,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gJAAA,EAAA,MAAA,EAAA,CAAA,qZAAA,CAAA,EAAA;;MA2BZ,+BAA+B,CAAA;AAQ3C;;MEjCY,sBAAsB,CAAA;AANnC,IAAA,WAAA,GAAA;QAYS,IAAA,CAAA,oBAAoB,GAAG,KAAK;AAyBpC,IAAA;IA7BC,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE;IAC9B;IAIA,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE;IAC9B;IAEQ,qBAAqB,GAAA;QAC3B,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa;AAE/C,YAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW;AACrE,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,kBAAkB,CAAC,SAA2B,EAAA;AACnD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa;AAC/C,QAAA,IAAI,CAAC,EAAE;YAAE;QACT,MAAM,YAAY,GAAG,GAAG;AACxB,QAAA,IAAI,SAAS,KAAK,MAAM,EAAE;AACxB,YAAA,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC1D;aAAO;AACL,YAAA,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACzD;IACF;+GA7BW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTnC,wrDAwDU,EAAA,MAAA,EAAA,CAAA,+nEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnDE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,kBAAkB,EAAA,OAAA,EACnB,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,wrDAAA,EAAA,MAAA,EAAA,CAAA,+nEAAA,CAAA,EAAA;8BAMvB,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe;gBAIE,gBAAgB,EAAA,CAAA;sBAA9C,SAAS;uBAAC,kBAAkB;;;MEDlB,qBAAqB,CAAA;AATlC,IAAA,WAAA,GAAA;QAUS,IAAA,CAAA,OAAO,GAAG,MAAM,EAAc;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAS,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AACzC,IAAA;+GANY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,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,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECblC,spBAyBA,EAAA,MAAA,EAAA,CAAA,06CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlBI,YAAY,ySACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAClB;wBACP,YAAY;wBACZ;AACD,qBAAA,EAAA,QAAA,EAAA,spBAAA,EAAA,MAAA,EAAA,CAAA,06CAAA,CAAA,EAAA;;;IETS;AAAZ,CAAA,UAAY,aAAa,EAAA;AAErB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAA2B;AAC3B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;;AAG7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;;AAI7B,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAA2B;AAC3B,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAA2B;AAC3B,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAA2B;;AAI3B,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAyB;AACzB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAyB;AACzB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAyB;;AAIzB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAuB;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAuB;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAuB;;AAIvB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AAC7B,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA6B;AACjC,CAAC,EA3CW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;;MCaZ,iBAAiB,CAAA;AAR9B,IAAA,WAAA,GAAA;AAUW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAiC,IAAI,CAAC;QAClD,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqC,aAAa,CAAC,aAAa,CAAC,CAAC;AAC/E,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA4B,QAAQ,CAAC;AACpD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAuB,WAAW,CAAC;AAChD,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AAC3C,IAAA;+GAPY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,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,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb9B,4aASA,EAAA,MAAA,EAAA,CAAA,43OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDQ,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EACb;wBACL;AACH,qBAAA,EAAA,QAAA,EAAA,4aAAA,EAAA,MAAA,EAAA,CAAA,43OAAA,CAAA,EAAA;;;MECQ,mBAAmB,CAAA;AAPhC,IAAA,WAAA,GAAA;AAQS,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA0C,MAAM,CAAC;AAC7D,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAqB,IAAI,CAAC;AAE9C,IAAA;+GALY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,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,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,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVhC,2eAsBA,EAAA,MAAA,EAAA,CAAA,u6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACE,cAAc,EAAA,OAAA,EACf,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2eAAA,EAAA,MAAA,EAAA,CAAA,u6CAAA,CAAA,EAAA;;;MEQZ,2BAA2B,CAAA;AATxC,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;QAChC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAc;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAgB,IAAI,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,CAAC;AAMlD,IAAA;AAJU,IAAA,WAAW,CAAC,GAAe,EAAA;AAE9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;+GAZS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,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,IAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbxC,+xBAyBA,EAAA,MAAA,EAAA,CAAA,kjFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlBQ,YAAY,8BACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBATvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,OAAA,EACzB;wBACL,YAAY;wBACZ,YAAY;AACf,qBAAA,EAAA,QAAA,EAAA,+xBAAA,EAAA,MAAA,EAAA,CAAA,kjFAAA,CAAA,EAAA;8BAMQ,cAAc,EAAA,CAAA;sBAAtB;;;MEFQ,uBAAuB,CAAA;AATpC,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAU,IAAI,CAAC;QACtC,IAAA,CAAA,qBAAqB,GAAG,MAAM,EAAW;AAwBnD,IAAA;IArBG,kBAAkB,GAAA;QAEhB,UAAU,CAAC,MAAM,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAC7D;IAEO,gBAAgB,GAAA;AAEnB,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,+BAA+B,EAAE;IAC1C;IAEQ,+BAA+B,GAAA;AAEnC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM;YAAE;QAClC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAE9B,YAAA,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1D;+GA3BS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,yKAEf,2BAA2B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfhD,qiBAoBA,EAAA,MAAA,EAAA,CAAA,6jBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDbQ,YAAY,+BACZ,2BAA2B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKtB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB;wBACL,YAAY;wBACZ,2BAA2B;AAC9B,qBAAA,EAAA,QAAA,EAAA,qiBAAA,EAAA,MAAA,EAAA,CAAA,6jBAAA,CAAA,EAAA;8BAM6C,cAAc,EAAA,CAAA;sBAA3D,eAAe;uBAAC,2BAA2B;;;MEUnC,yBAAyB,CAAA;AAftC,IAAA,WAAA,GAAA;QAgBS,IAAA,CAAA,WAAW,GAAG,MAAM,EAAuC;AAC3D,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAA4B,YAAY,CAAC;AAC1D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,KAAK,CAAC;AACrC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAgB;AAO9C,IAAA;AALQ,IAAA,eAAe,CAAC,IAAgB,EAAE,MAAe,EAAE,KAAa,EAAA;QACrE,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACxC;IACF;+GAXW,yBAAyB,EAAA,IAAA,EAAA,EAAA,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,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBtC,gjFA4EA,EAAA,MAAA,EAAA,CAAA,60DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9Dc,YAAY,EAAA,CAAA,EAAA,UAAA,EACV;YACR,OAAO,CAAC,qBAAqB,EAAE;gBAC3B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClC,UAAU,CAAC,WAAW,EAAE;AACpB,oBAAA,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBACnB,OAAO,CAAC,cAAc;iBACzB;aACJ;AACJ,SAAA,EAAA,CAAA,CAAA;;4FAEQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAfrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,OAAA,EAGtB,CAAC,YAAY,CAAC,EAAA,UAAA,EACX;wBACR,OAAO,CAAC,qBAAqB,EAAE;4BAC3B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;4BAClC,UAAU,CAAC,WAAW,EAAE;AACpB,gCAAA,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gCACnB,OAAO,CAAC,cAAc;6BACzB;yBACJ;AACJ,qBAAA,EAAA,QAAA,EAAA,gjFAAA,EAAA,MAAA,EAAA,CAAA,60DAAA,CAAA,EAAA;;;MEXQ,sBAAsB,CAAA;AAK/B,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAAmB,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IAE7C;AAER,IAAA,aAAa,CAAC,KAAuB,EAAA;AAExC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;IACvC;AAEO,IAAA,QAAQ,CAAC,IAAoB,EAAA;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AACvD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC;IACzD;IAEO,eAAe,GAAA;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AACvD,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAC3B;AACI,YAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;YAClC,QAAQ,CAAC,GAAG,EAAE;AACd,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1C;IACJ;IAEO,KAAK,GAAA;AAER,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IACpC;+GAhCS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCGY,wBAAwB,CAAA;AAMjC,IAAA,WAAA,GAAA;QAJO,IAAA,CAAA,WAAW,GAAqB,EAAE;AACjC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAE1C;IAEhB,QAAQ,GAAA;AAEJ,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IACpF;IAEO,QAAQ,CAAC,GAAY,EAAE,KAAc,EAAA;QAExC,IAAI,GAAG,EACP;AACI,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;;AAG9B,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAC9D;AACI,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9E;QACJ;IACJ;+GAzBS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdrC,0rCA+BM,EAAA,MAAA,EAAA,CAAA,siBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBE,YAAY,6VACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB;wBACL,YAAY;wBACZ;AACH,qBAAA,EAAA,QAAA,EAAA,0rCAAA,EAAA,MAAA,EAAA,CAAA,siBAAA,CAAA,EAAA;;;ME2GQ,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YA5EjC,wBAAwB;YACxB,oBAAoB;YACpB,sBAAsB;YACtB,kBAAkB;YAClB,2BAA2B;YAC3B,uBAAuB;YACvB,sBAAsB;YACtB,sBAAsB;YACtB,6BAA6B;YAC7B,2BAA2B;YAC3B,gCAAgC;YAChC,0BAA0B;YAC1B,iBAAiB;YACjB,wBAAwB;YACxB,4BAA4B;YAC5B,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,wBAAwB;YACxB,wBAAwB;YACxB,+BAA+B;YAC/B,mBAAmB;YACnB,yBAAyB;YACzB,wBAAwB;YACxB,6BAA6B;YAC7B,yBAAyB;YACzB,0BAA0B;YAC1B,sBAAsB;YACtB,qBAAqB;YACrB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;YACrB,uBAAuB;YACvB,2BAA2B;YAC3B,yBAAyB,CAAA,EAAA,OAAA,EAAA;;YAIzB,oBAAoB;YACpB,sBAAsB;YACtB,kBAAkB;YAClB,2BAA2B;YAC3B,uBAAuB;YACvB,sBAAsB;YACtB,sBAAsB;YACtB,6BAA6B;YAC7B,2BAA2B;YAC3B,gCAAgC;YAChC,0BAA0B;YAC1B,iBAAiB;YACjB,wBAAwB;YACxB,4BAA4B;YAC5B,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,wBAAwB;YACxB,wBAAwB;YACxB,+BAA+B;YAC/B,0BAA0B;YAC1B,mBAAmB;YACnB,yBAAyB;YACzB,wBAAwB;YACxB,6BAA6B;YAC7B,yBAAyB;YACzB,sBAAsB;YACtB,qBAAqB;YACrB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;YACrB,uBAAuB;YACvB,2BAA2B;YAC3B,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAKhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YA5EjC,wBAAwB;YAExB,sBAAsB;YACtB,kBAAkB;YAClB,2BAA2B;YAG3B,sBAAsB;YACtB,6BAA6B;YAC7B,2BAA2B;YAC3B,gCAAgC;YAEhC,iBAAiB;YAEjB,4BAA4B;YAG5B,qBAAqB;YACrB,wBAAwB;YACxB,wBAAwB;YAGxB,yBAAyB;YACzB,wBAAwB;YACxB,6BAA6B;YAE7B,0BAA0B;YAC1B,sBAAsB;YACtB,qBAAqB;YACrB,iBAAiB;YACjB,mBAAmB;YAEnB,uBAAuB;YACvB,2BAA2B;YAC3B,yBAAyB,CAAA,EAAA,CAAA,CAAA;;4FA0ChB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA9EpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,wBAAwB;wBACxB,oBAAoB;wBACpB,sBAAsB;wBACtB,kBAAkB;wBAClB,2BAA2B;wBAC3B,uBAAuB;wBACvB,sBAAsB;wBACtB,sBAAsB;wBACtB,6BAA6B;wBAC7B,2BAA2B;wBAC3B,gCAAgC;wBAChC,0BAA0B;wBAC1B,iBAAiB;wBACjB,wBAAwB;wBACxB,4BAA4B;wBAC5B,mBAAmB;wBACnB,qBAAqB;wBACrB,qBAAqB;wBACrB,wBAAwB;wBACxB,wBAAwB;wBACxB,+BAA+B;wBAC/B,mBAAmB;wBACnB,yBAAyB;wBACzB,wBAAwB;wBACxB,6BAA6B;wBAC7B,yBAAyB;wBACzB,0BAA0B;wBAC1B,sBAAsB;wBACtB,qBAAqB;wBACrB,iBAAiB;wBACjB,mBAAmB;wBACnB,qBAAqB;wBACrB,uBAAuB;wBACvB,2BAA2B;wBAC3B,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,OAAO,EAAE;;wBAEP,oBAAoB;wBACpB,sBAAsB;wBACtB,kBAAkB;wBAClB,2BAA2B;wBAC3B,uBAAuB;wBACvB,sBAAsB;wBACtB,sBAAsB;wBACtB,6BAA6B;wBAC7B,2BAA2B;wBAC3B,gCAAgC;wBAChC,0BAA0B;wBAC1B,iBAAiB;wBACjB,wBAAwB;wBACxB,4BAA4B;wBAC5B,mBAAmB;wBACnB,qBAAqB;wBACrB,qBAAqB;wBACrB,wBAAwB;wBACxB,wBAAwB;wBACxB,+BAA+B;wBAC/B,0BAA0B;wBAC1B,mBAAmB;wBACnB,yBAAyB;wBACzB,wBAAwB;wBACxB,6BAA6B;wBAC7B,yBAAyB;wBACzB,sBAAsB;wBACtB,qBAAqB;wBACrB,iBAAiB;wBACjB,mBAAmB;wBACnB,qBAAqB;wBACrB,uBAAuB;wBACvB,2BAA2B;wBAC3B,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACpHD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"dev-tcloud-tcloud-ui.mjs","sources":["../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/services/tcloud-ui-accordion.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/services/data-list.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.html","../../../projects/tcloud-ui/src/lib/tcloud-ui.tokens.ts","../../../projects/tcloud-ui/src/lib/_services/tcloud-ui-layout.services.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-form/tcloud-form.directive.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.html","../../../projects/tcloud-ui/src/lib/_pipes/monthname.ts","../../../projects/tcloud-ui/src/lib/_pipes/statusinfo.ts","../../../projects/tcloud-ui/src/lib/_pipes/respective.ts","../../../projects/tcloud-ui/src/lib/_pipes/cnpj.ts","../../../projects/tcloud-ui/src/lib/_pipes/cpf.ts","../../../projects/tcloud-ui/src/lib/_pipes/bytes.ts","../../../projects/tcloud-ui/src/lib/_pipes/datebr.ts","../../../projects/tcloud-ui/src/lib/_pipes/array-to-text.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/components/range-date/range-date.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component.html","../../../projects/tcloud-ui/src/lib/_services/search-in-object.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/services/tcloud-modal.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component.html","../../../projects/tcloud-ui/src/lib/_directives/tcloud-button/tcloud-button.directive.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/services/tab-menu.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-table/tcloud-ui-table.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/components/tcloud-ui-circle/tcloud-ui-circle.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/components/tcloud-ui-circle/tcloud-ui-circle.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/services/container.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/tcloud-ui-container.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/tcloud-ui-container.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-col/tcloud-ui-container-col.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-col/tcloud-ui-container-col.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-content/tcloud-ui-container-content.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-container/components/tcloud-ui-container-content/tcloud-ui-container-content.component.html","../../../projects/tcloud-ui/src/lib/_directives/align/align.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/currency/currency.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/el-copy/el-copy.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/hover-parent/hover-parent.directive.ts","../../../projects/tcloud-ui/src/lib/_services/tcloud-ui-check-access.service.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-access/tcloud-ui-check-access.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-access/tcloud-ui-ng-check-access.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tooltip/tooltip.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-ui-digit-only.directive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-ui-highlight.diretive.ts","../../../projects/tcloud-ui/src/lib/_directives/tcloud-ui-ip-mask.directive.ts","../../../projects/tcloud-ui/src/lib/tcloud-ui.module.ts","../../../projects/tcloud-ui/src/lib/tcloud-ui.providers.ts","../../../projects/tcloud-ui/src/lib/_services/loading-transitions.service.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component.html","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/tcloud-ui-sub-navbar.component.ts","../../../projects/tcloud-ui/src/lib/_modules/tcloud-ui-sub-navbar/tcloud-ui-sub-navbar.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-button/tc-rev-button.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-calendar/tc-rev-calendar.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-calendar/tc-rev-calendar.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-title/tc-rev-card-title.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-title/tc-rev-card-title.component.html","../../../projects/tcloud-ui/src/lib/_services/tcloud-ui-device-utils.service.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-accordion/tc-rev-card-accordion.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card-accordion/tc-rev-card-accordion.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card/tc-rev-card.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-card/tc-rev-card.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-checkbox/tc-rev-checkbox.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-search-input/tc-rev-search-input.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-search-input/tc-rev-search-input.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-icon-button/tc-rev-icon-button.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-sub-menu/tc-rev-dropdown-sub-menu.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-sub-menu/tc-rev-dropdown-sub-menu.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi/tc-rev-dropdown-multi.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown-multi/tc-rev-dropdown-multi.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/util/ellipsed-text.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tooltip/tc-rev-tooltip.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown/tc-rev-dropdown.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-dropdown/tc-rev-dropdown.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/charts/echarts.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-empty-content/tc-rev-empty-content.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-empty-content/tc-rev-empty-content.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-faq/tc-rev-faq.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-faq/tc-rev-faq.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-input-container/tc-rev-input-container.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-input-container/tc-rev-input-container.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-input/tc-rev-input.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-loading/tc-rev-loading.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-loading/tc-rev-loading.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-message/tc-rev-message.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-message/tc-rev-message.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-multi-input/tc-rev-multi-input.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-multi-input/tc-rev-multi-input.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-pagination/tc-rev-pagination.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-pagination/tc-rev-pagination.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-progress-status-bar/tc-rev-progress-status-bar.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-progress-status-bar/tc-rev-progress-status-bar.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-radio/tc-rev-radio.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-side-drawer/tc-rev-side-drawer.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-side-drawer/tc-rev-side-drawer.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-skeleton-loading/tc-rev-skeleton-loading.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-skeleton-loading/tc-rev-skeleton-loading.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-slide-toggle/tc-rev-slide-toggle.directive.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-small-loading/tc-rev-small-loading.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-small-loading/tc-rev-small-loading.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-group.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-group.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tag/tag-colors.enum.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tag/tc-rev-tag.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-tag/tc-rev-tag.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-toast/tc-rev-toast.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-toast/tc-rev-toast.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/tc-sub-navbar.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-sub-navbar/tc-sub-navbar.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-wizard-steps/tc-rev-wizard-steps.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-wizard-steps/tc-rev-wizard-steps.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-breadcrumb/tc-rev-breadcrumb.service.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-breadcrumb/tc-rev-breadcrumb.component.ts","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-breadcrumb/tc-rev-breadcrumb.component.html","../../../projects/tcloud-ui/src/lib/revitalizacao/components/tc-rev-components.module.ts","../../../projects/tcloud-ui/src/public-api.ts","../../../projects/tcloud-ui/src/dev-tcloud-tcloud-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class TCloudUiAccordionService {\n\n private disabled: boolean | undefined;\n private loading: boolean | undefined;\n private show: boolean | undefined;\n\n private _stateToggle = new Subject<boolean>();\n public stateToggle$ = this._stateToggle.asObservable();\n\n private _stateLoading = new Subject<boolean>();\n public stateLoading$ = this._stateLoading.asObservable();\n\n private _stateDisabled = new Subject<boolean>();\n public stateDisabled$ = this._stateDisabled.asObservable();\n\n\n toggle(action: boolean): void{\n this._stateToggle.next( action );\n }\n\n getLoading(){\n return this.loading;\n }\n\n setLoading(loading: boolean){\n this.loading = loading;\n this._stateLoading.next(loading);\n }\n\n getShow(){\n return this.show;\n }\n\n setDisabled(disabled: boolean): void{\n this._stateDisabled.next( disabled );\n }\n\n getDisabled(){\n return this.disabled;\n }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiAccordionService } from '../../services/tcloud-ui-accordion.service';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\n\n@Component({\n selector: 'tcloud-ui-accordion-body',\n templateUrl: './tcloud-ui-accordion-body.component.html',\n styleUrls: ['./tcloud-ui-accordion-body.component.scss'],\n animations: [\n trigger('expandAccordion', [\n state('close', style({ height: '0' })),\n state('open', style({ height: '*' })),\n transition('close <=> open', animate('0.35s ease-in-out')),\n ]),\n ],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiAccordionBodyComponent implements OnInit {\n\n show: boolean = false;\n \n constructor(\n private _tCloudUiAccordionService: TCloudUiAccordionService\n ) { }\n\n ngOnInit(): void {\n\n this.show = this._tCloudUiAccordionService.getShow() || false;\n this._tCloudUiAccordionService.stateToggle$.subscribe((show: boolean) => {\n this.show = show;\n })\n\n }\n\n}\n","<div class=\"tcloud-ui-accordion-body tc-accordion-content\" [class.show]=\"show\" [@expandAccordion]=\"(show) ? 'open' : 'close' \">\n <ng-content></ng-content>\n</div>","import { Component, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TCloudUiAccordionService } from '../../services/tcloud-ui-accordion.service';\n\n@Component({\n selector: 'tcloud-ui-accordion-title',\n templateUrl: './tcloud-ui-accordion-title.component.html',\n styleUrls: ['./tcloud-ui-accordion-title.component.css'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiAccordionTitleComponent implements OnInit, OnDestroy {\n\n subscription_01: Subscription | undefined;\n subscription_02: Subscription | undefined;\n subscription_03: Subscription | undefined;\n\n show: boolean = false;\n loading: boolean = false;\n disabled: boolean = false;\n \n\n constructor(\n private _tCloudUiAccordionService: TCloudUiAccordionService\n ) { }\n\n ngOnInit(): void {\n\n this.loading = this._tCloudUiAccordionService.getLoading() || false;\n this.subscription_01 = this._tCloudUiAccordionService.stateLoading$.subscribe((loading: boolean) => {\n this.loading = loading;\n });\n\n this.show = this._tCloudUiAccordionService.getShow() || false;\n this.subscription_02 = this._tCloudUiAccordionService.stateToggle$.subscribe((show: boolean) => {\n this.show = show;\n });\n\n this.disabled = this._tCloudUiAccordionService.getDisabled() || false;\n this.subscription_03 = this._tCloudUiAccordionService.stateDisabled$.subscribe((disabled: boolean) => {\n this.disabled = disabled;\n });\n\n }\n\n toggle(){\n if( this.disabled ){ return; }\n\n this.show = !this.show;\n this._tCloudUiAccordionService.toggle(this.show); \n \n }\n\n toggle_title(){\n this.toggle();\n }\n\n ngOnDestroy(): void {\n if( this.subscription_01 ){ this.subscription_01.unsubscribe(); }\n if( this.subscription_02 ){ this.subscription_02.unsubscribe(); }\n if( this.subscription_03 ){ this.subscription_03.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-accordion-title tc-accordion-title\">\n <table class=\"tc-accordion-table\">\n <tr>\n <td class=\"area-title\" (click)=\"toggle_title()\" >\n <ng-content></ng-content>\n </td>\n <td class=\"tc-accordion-actions\">\n <button type=\"button\" class=\"tc-btn-accordion-toggle\" [disabled]=\"disabled\" (click)=\"toggle()\" >\n\n <i class=\"fas fa-chevron-right icon-toggle\" *ngIf=\"!show\"></i>\n <i class=\"fas fa-chevron-down icon-toggle\" *ngIf=\"show\"></i>\n\n </button>\n </td>\n </tr>\n </table>\n</div>","import { Subscription } from 'rxjs';\nimport { Component, EventEmitter, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiAccordionService } from './services/tcloud-ui-accordion.service';\nimport { TCloudUiAccordionBodyComponent } from './components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component';\nimport { TCloudUiAccordionTitleComponent } from './components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component';\n\n@Component({\n selector: 'tcloud-ui-accordion',\n templateUrl: './tcloud-ui-accordion.component.html',\n styleUrls: ['./tcloud-ui-accordion.component.css'],\n providers: [\n TCloudUiAccordionService\n ],\n standalone: true,\n imports: [CommonModule, TCloudUiAccordionBodyComponent, TCloudUiAccordionTitleComponent]\n})\nexport class TCloudUiAccordionComponent implements OnInit, OnDestroy {\n\n theme: string | undefined;\n\n subscription_01: Subscription | undefined;\n subscription_02: Subscription | undefined;\n \n private _disabled: boolean = false;\n @Input() set disabled(v: boolean){ \n this._disabled = v;\n if( this._disabled ){ \n setTimeout(() => { \n this._tCloudUiAccordionService.setDisabled(this._disabled);\n this._tCloudUiAccordionService.toggle(false); \n });\n }\n }\n get disabled(){ return this._disabled; }\n\n\n private _show: boolean = false;\n @Input() set show(v: boolean){ \n if( this._show !== v ){\n this._show = v;\n if( !this.disabled ){\n setTimeout(() => { this._tCloudUiAccordionService.toggle(this._show); }); \n } \n }\n }\n\n get show(){ return this._show; }\n\n\n @Output() onAction = new EventEmitter<'open'|'close'>();\n\n private _loading: boolean = false;\n /**\n * loading - boolean - Coloca o modal em modo de carregamento - default false\n */\n @Input() set loading(loading: boolean){ \n this._loading = loading;\n this._tCloudUiAccordionService.setLoading(loading);\n }\n get loading(): boolean { return this._loading; }\n\n constructor(\n private _tCloudUiAccordionService: TCloudUiAccordionService\n ) { }\n\n ngOnInit(): void {\n\n this.subscription_01 = this._tCloudUiAccordionService.stateLoading$.subscribe((loading: boolean) => {\n this.loading = loading; \n });\n \n this.subscription_02 = this._tCloudUiAccordionService.stateToggle$.subscribe((show: boolean) => {\n this.onAction.emit( (show === true) ? 'open' : 'close' );\n })\n \n }\n\n ngOnDestroy(): void {\n if( this.subscription_01 ){ this.subscription_01.unsubscribe(); }\n if( this.subscription_02 ){ this.subscription_02.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-accordion tc-accordion\" [class.tc-accordion-disabled]=\"disabled\">\n <ng-content></ng-content>\n</div>","import { Subscription } from 'rxjs';\nimport { Component, EventEmitter, Input, forwardRef, ViewChild, ElementRef, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiChoiceIssuesComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-choice-issues',\n templateUrl: './tcloud-ui-choice-issues.component.html',\n styleUrls: ['./tcloud-ui-choice-issues.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [CommonModule, FormsModule]\n})\nexport class TCloudUiChoiceIssuesComponent {\n\n \n @Input() view: boolean = false;\n @Input() titulo: string = '';\n @Input() subTitulo: string = '';\n\n @Input() disabled: boolean = false;\n @Output() onChange = new EventEmitter<any>();\n\n subscription: Subscription | undefined;\n // Referencia o campo (input,select,textarea)\n @ViewChild('campo',{ read: true, static: false }) inputRef: ElementRef | undefined;\n\n innerValue: boolean = false;\n\n ID: string;\n\n constructor(){\n this.ID = 'tc-issue-' + Math.random().toString(36).substr(2, 9);\n }\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): boolean {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: boolean) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n setV(v: any){\n this.value = v;\n this.onChange.emit(v);\n }\n\n createID() {\n // Math.random should be unique because of its seeding algorithm.\n // Convert it to base 36 (numbers + letters), and grab the first 9 characters\n // after the decimal.\n return '_' + Math.random().toString(36).substr(2, 9);\n }\n\n\n}\n","<div class=\"tcloud-ui-choice-issues box p-2 mt-3 mb-2\">\n <input #campo [(ngModel)]=\"value\" type=\"hidden\" [value]=\"false\">\n\n <table class=\"choice-area\">\n <tr>\n <td class=\"choice-description\">\n\n <div>\n <p class=\"titulo\">{{ titulo }}</p>\n </div>\n <div class=\"mt-1\">\n <p class=\"sub-titulo\">{{ subTitulo }}</p>\n </div>\n <div class=\"mt-2 mb-1\">\n <ng-content></ng-content>\n </div>\n\n </td>\n <td class=\"choice-action\">\n <table class=\"mt-3 mr-2\" *ngIf=\"!view\">\n <tr>\n <td>\n <div class=\"form-fieldset\">\n <label [class.v-true]=\"value\" class=\"mr-1\"><input #campo name=\"{{ ID }}\" [value]=\"true\" type=\"radio\"\n [(ngModel)]=\"value\" (click)=\"setV(true)\">Sim</label>\n </div>\n </td>\n <td>\n <div class=\"form-fieldset\">\n <label [class.v-true]=\"!value\" class=\"ml-2\"><input #campo name=\"{{ ID }}\" [value]=\"false\" type=\"radio\"\n [(ngModel)]=\"value\" (click)=\"setV(false)\">Não</label>\n </div>\n </td>\n </tr>\n </table>\n\n <table class=\"mt-2 mr-2\" *ngIf=\"view\">\n <tr>\n <td>\n <div class=\"form-fieldset view\">\n <label *ngIf=\"value\" class=\"v-true disabled\">Sim</label>\n <label *ngIf=\"!value\">Não</label>\n </div>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n\n\n</div>","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class DataListService {\n private _stateSourceValue: Subject<any> = new Subject<any>();\n public stateValue$: Observable<Subject<any>> = this._stateSourceValue.asObservable();\n\n private _stateSourceDescription: Subject<any> = new Subject<any>();\n public stateDescription$: Observable<Subject<any>> = this._stateSourceDescription.asObservable();\n\n private _stateSourceOptions: Subject<any> = new Subject<any>();\n public stateOptions$: Observable<Subject<any>> = this._stateSourceOptions.asObservable();\n\n private _stateSourceActive: Subject<any> = new Subject<any>();\n public stateActive$: Observable<Subject<any>> = this._stateSourceActive.asObservable();\n\n private actived_value: any | undefined;\n\n public setItemValue(v: any): void {\n this.actived_value = v;\n this._stateSourceValue.next(v);\n }\n\n public setItemDescription(v: any): void {\n this._stateSourceDescription.next(v);\n }\n\n public registerSelectionOptionsDescription(v: any): void {\n this._stateSourceOptions.next(v);\n }\n\n public setActiveItem(v: any): void {\n this._stateSourceActive.next(v); \n }\n\n public getActiveItem(): any {\n // console.log('getActiveItem', this.actived_value);\n return this.actived_value;\n }\n \n}","export class ISelectOptions{\n description: any;\n value: any;\n disabled?: boolean;\n}","import { OnDestroy } from '@angular/core';\nimport { ISelectOptions } from './../tcloud-ui-data-list';\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataListService } from '../services/data-list.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'tcloud-ui-data-list-option',\n templateUrl: './tcloud-ui-data-list-option.component.html',\n styleUrls: ['./tcloud-ui-data-list-option.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiDataListOptionComponent implements OnInit, OnDestroy {\n\n id: string = ''; \n actived_value: any;\n select_options = new ISelectOptions();\n private subscription_active: Subscription | undefined;\n\n @Input() disabled: boolean | undefined = false;\n @Input() value: any | undefined;\n\n @Output() selected = new EventEmitter<any>(); \n\n constructor( private dataListService: DataListService ) { \n }\n\n ngOnInit(): void {\n this.actived_value = this.dataListService.getActiveItem();\n this.subscription_active = this.dataListService.stateActive$.subscribe(v => { \n this.actived_value = v; \n });\n this.id = this.generateID();\n this.setSelectOptions();\n }\n\n generateID(): string{\n return `data-list-option-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n setSelectedItem(value: any){\n if( this.disabled ){ return; }\n if( value === '' ){ this.value = ''; } \n\n this.dataListService.setItemValue(this.value);\n const description = <any> document.getElementById(this.id)?.innerText || '';\n this.dataListService.setItemDescription(description);\n this.setSelectOptions(); \n }\n\n setSelectOptions(){\n setTimeout(() => {\n try {\n const description = <any> document.getElementById(this.id)?.innerText;\n this.select_options.value = this.value;\n this.select_options.description = description; \n this.dataListService.registerSelectionOptionsDescription(this.select_options);\n } catch (error) { }\n }); \n }\n\n ngOnDestroy() {\n if( this.subscription_active ){ this.subscription_active.unsubscribe(); } \n }\n\n}\n","<button \n [disabled]=\"disabled\"\n [title]=\"select_options.description\"\n id=\"{{id}}\"\n [attr.data-description]=\"select_options.description\"\n [attr.data-actived-value]=\"actived_value\"\n class=\"tcloud-ui-data-list-option dropdown-item\" \n [class.null-value]=\"value === undefined || value === null || value === ''\"\n [class.active]=\"value === actived_value\" \n [class.option-disabled]=\"disabled\"\n type=\"button\" \n [value]=\"value\"\n (click)=\"setSelectedItem(value)\" >\n <ng-content></ng-content>\n</button>\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Token de injeção para a configuração do TCloud UI\n */\nexport const TCLOUD_UI_CONFIG = new InjectionToken<any>('TCLOUD_UI_CONFIG');\n\n/**\n * Token de injeção para o serviço de usuário customizado\n */\nexport const TCLOUD_UI_USER_SERVICE = new InjectionToken<any>('TCLOUD_UI_USER_SERVICE');\n\n/**\n * Token de injeção para o serviço de tema customizado\n */\nexport const TCLOUD_UI_LAYOUT_SERVICE = new InjectionToken<any>('TCLOUD_UI_LAYOUT_SERVICE');\n\n/**\n * Token de injeção para o serviço de viewport customizado\n */\nexport const TCLOUD_UI_VIEWPORT_SERVICE = new InjectionToken<any>('TCLOUD_UI_VIEWPORT_SERVICE');\n","import { Inject, Injectable, Optional, signal } from '@angular/core';\nimport { LayoutServiceInterface } from '../_interfaces/layout.service.interface';\nimport { TCLOUD_UI_LAYOUT_SERVICE } from '../tcloud-ui.tokens';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiLayoutService {\n\n private layoutService = {} as LayoutServiceInterface;\n\n constructor(\n @Optional() @Inject(TCLOUD_UI_LAYOUT_SERVICE) private _LayoutService: LayoutServiceInterface, \n ) {\n this.layoutService = this._LayoutService;\n }\n\n getCurrentLayout(): string{\n // return 'modern';\n try {\n return this.layoutService?.getCurrentLayout();\n } catch (error) {\n // console.warn('getCurrentLayout', error);\n }\n return 'classic';\n }\n}","import { Directive, effect, ElementRef, input } from '@angular/core';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n@Directive({\n selector: '[tcloudForm]',\n standalone: true\n})\nexport class TCloudUiFormDirective {\npublic fullWidth = input<boolean>(false);\n\nconstructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private _el: ElementRef<HTMLButtonElement>\n) {\n effect(() => {\n this.setClasses();\n });\n}\n\nprivate layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n}\n\n private setClasses(): void {\n const layout = this.layout();\n if( layout === 'classic' ){ return; }\n\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c === 'form-control'));\n tokenList.remove(...Array.from(tokenList).filter((c) => c === 'tc-form-control'));\n\n if( layout === 'modern' ){\n this._el.nativeElement.classList.add('tc-rev-input-control');\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-input-control--full-width') : null;\n }\n }\n}\n","import { DataListService } from './services/data-list.service';\nimport { Component, forwardRef, OnInit, Output, EventEmitter, ViewChild, Input, OnDestroy, AfterViewChecked } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, NgForm, FormGroup, FormBuilder, FormControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ISelectOptions } from './tcloud-ui-data-list';\nimport { TCloudUiDataListOptionComponent } from './tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\nimport { TCloudUiFormDirective } from '../../_directives/tcloud-form/tcloud-form.directive';\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiDataListComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n\n@Component({\n selector: 'tcloud-ui-data-list',\n templateUrl: './tcloud-ui-data-list.component.html',\n styleUrls: ['./tcloud-ui-data-list.component.scss'],\n providers: [\n DataListService,\n CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR\n ],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TCloudUiDataListOptionComponent, TCloudUiFormDirective]\n})\n\nexport class TCloudUiDataListComponent implements OnInit, OnDestroy, AfterViewChecked {\n\n viewport_width: number = 0;\n viewport_height: number = 0;\n box_height: number = 0;\n box_style: string = '';\n menu_on_top: string = '';\n\n @Input() placeholder: string = '';\n\n private _disabled: boolean = false;\n @Input() set disabled(v){\n if( typeof v === 'boolean' && v !== this._disabled ){\n this._disabled = v; \n //this.selected_description = '';\n //this.selected_item ='';\n this.toChange();\n }\n }\n get disabled():boolean { return this._disabled; }\n\n private _loading: boolean = false;\n @Input() set loading(v: boolean){\n if( typeof v === 'boolean' && v !== this._loading ){\n this._loading = v; \n //this.selected_description = '';\n //this.selected_item = '';\n this.toChange();\n }\n }\n get loading():boolean { return this._loading; }\n\n\n @Input() showInput: boolean = true;\n @Input() search: boolean = true;\n \n private _listItems: ISelectOptions[] = [];\n @Input() set listItems(v: ISelectOptions[]){\n if( v && (v).length > 0 ){\n this._listItems = v;\n }\n }\n get listItems():ISelectOptions[] { return this._listItems; }\n\n private _open: boolean = false;\n @Input() set open(v: boolean){\n if( v !== this._open ){\n this._open = v;\n if( v ){\n this.menu_show = false;\n setTimeout(()=>{ this.toOpen(); }); \n }\n }\n }\n get open():boolean { return this._open; }\n\n \n \n @Input() border: boolean = true;\n\n @Output() onInputChange = new EventEmitter<ISelectOptions>();\n @Output() onChange = new EventEmitter<ISelectOptions>();\n\n @Output() onOpened = new EventEmitter<any>();\n @Output() onClosed = new EventEmitter<any>();\n\n private _ngModel: any | undefined;\n @Input() set ngModel(v: any){\n this.selected_item = v; \n this.selectDescription(); \n }\n @Output() ngModelChange = new EventEmitter<any>();\n\n list_selected_options = new Array<ISelectOptions>();\n\n selected_item: any | undefined;\n selected_description: any | undefined;\n\n private subscription_value: Subscription | undefined;\n private subscription_description: Subscription | undefined;\n private subscription_options: Subscription | undefined;\n\n menu_show: boolean = false;\n search_text: string = '';\n id: string = '';\n\n formulario: FormGroup | undefined;\n\n constructor(\n private dataListService: DataListService,\n private formBuilder: FormBuilder\n ){\n\n this.subscription_value = this.dataListService.stateValue$.subscribe(v => {\n this.selected_item = v; \n this.selectDescription();\n this.ngModelChange.emit(this.selected_item);\n })\n\n this.subscription_description = this.dataListService.stateDescription$.subscribe(v => {\n this.selected_description = v; \n })\n\n\n this.subscription_options = this.dataListService.stateOptions$.subscribe((v:any) => {\n if( v && v.value ){\n (this.list_selected_options).push(v);\n }\n })\n\n }\n\n ngOnInit(){\n\n \n\n this.id = this.generateID();\n\n this.formulario = this.formBuilder.group({\n \"selected_item\": new FormControl('',[]),\n })\n\n \n\n this.toResize();\n this.toClick();\n }\n\n t_fc: any | undefined;\n ngAfterViewChecked(): void {\n this.t_fc = undefined;\n this.t_fc = this.get_selected_description();\n }\n\n get_selected_description(): void{\n if( this.list_selected_options && (this.list_selected_options).length > 0 ){\n for( let i = 0; i < (this.list_selected_options).length; i++ ){\n const item = this.list_selected_options[i];\n if( item.value === this.selected_item ){ \n if( this.selected_description !== item.description ){\n if( item.description && item.description !== this.selected_description ){\n setTimeout(() => {\n this.selected_description = item.description; \n this.dataListService.setActiveItem(this.selected_item);\n });\n }\n } \n break;\n }\n }\n } \n }\n\n generateID(): string{\n return `data-list-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n ngOnDestroy() {\n if( this.subscription_value ){ this.subscription_value.unsubscribe(); } \n if( this.subscription_description ){ this.subscription_description.unsubscribe(); } \n if( this.subscription_options ){ this.subscription_options.unsubscribe(); } \n }\n\n toSearch(e: any) {\n let input = (e && e.target && e.target.value) ? e.target.value : '';\n \n let filter = ( ( (input).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n let ul = <any> document.getElementById(`${this.id}-options`);\n if( ul ){\n let li = ul.getElementsByTagName(\"button\");\n for (let i = 0; i < li.length; i++) {\n const a = li[i];\n const txtValue = ( ( ( a.textContent || a.innerText ).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n if (txtValue.indexOf(filter) > -1) {\n li[i].style.display = \"\";\n } else {\n li[i].style.display = \"none\";\n }\n }\n }\n }\n\n selectDescription(){\n if( this.list_selected_options && (this.list_selected_options).length > 0 ){\n for( let i = 0; i < (this.list_selected_options).length; i++ ){\n const item = this.list_selected_options[i];\n if( item.value === this.selected_item ){\n this.selected_description = item.description;\n this.toChange();\n return;\n }\n }\n }\n\n if( this.selected_item === undefined || this.selected_item === null || this.selected_item === '' ){\n this.selected_description = '';\n this.toChange();\n }\n \n }\n\n \n toInput(e: any){\n this.onInputChange.emit(this.selected_description);\n this.onChange.emit(e);\n }\n\n toChange(){\n setTimeout(() => {\n if( this.selected_item === undefined || this.selected_item === null ){\n this.selected_item = '';\n }\n this.toSearch('');\n this.search_text = '';\n this.dataListService.setActiveItem(this.selected_item);\n\n this.onInputChange.emit(this.selected_description);\n\n if( this.formulario ){\n this.formulario?.get('selected_item')?.setValue(this.selected_item);\n // const input_hidden = document.getElementById(`${this.id}-hidden`);\n this.toInput(this.formulario.get('selected_item'));\n } \n });\n }\n\n\n clearTextSearch(){\n this.search_text = '';\n this.toSearch('');\n }\n\n toOpen(){\n this.menu_show = !this.menu_show; \n this.resolve_position_dropdown(this.menu_show);\n this.onOpened.emit();\n }\n\n resolve_position_dropdown(open: boolean){\n if( open ){\n this.box_style = '';\n this.menu_on_top = ''; \n const id = `${this.id}`; \n const box = `box-${this.id}`;\n if( this.viewport_height === 0 ){\n this.viewport_height = window.innerWidth;\n }\n const rect = document.getElementById(id)?.getBoundingClientRect();\n const box_position = rect?.bottom || 0; \n setTimeout(() => {\n this.box_height = document.getElementById(box)?.clientHeight || 0;\n if( ( this.viewport_height - box_position) < this.box_height ){\n this.menu_on_top = 'menu-on-top';\n this.box_style = `top: -${ (this.box_height) }px; height: ${this.box_height}px;`;\n }\n }); \n }\n }\n\n toClose(){\n this.menu_show = false;\n this.onClosed.emit();\n }\n\n\n toResize(){\n window.addEventListener('resize', () => {\n this.viewport_width = window.innerWidth;\n this.viewport_height = window.innerHeight;\n this.resolve_position_dropdown(this.menu_show);\n });\n }\n\n toClick(){\n const box = `area-${this.id}`;\n window.addEventListener('click',(e: any) => { \n if( this.menu_show ){\n if( !(document.getElementById(box)?.contains(e.target)) ){ \n this.toClose();\n }\n }\n });\n }\n\n\n \n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.selected_item;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.selected_item) {\n this.selected_item = v;\n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.selected_item) {\n this.selected_item = value;\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n}\n\n","<div *ngIf=\"formulario\" id=\"area-{{ id }}\" class=\"tcloud-ui-data-list tc-dropdown\" [class.disabled]=\"disabled || loading\">\n <div *ngIf=\"loading\" class=\"loading-area\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n </div>\n <!-- [attr.data-bs-toggle]=\"'dropdown'\" -->\n <button \n tcloudForm\n #_option\n [class.input-hidden]=\"!showInput\"\n [class.in-border]=\"border\"\n [class.loading-box]=\"loading\"\n [disabled]=\"disabled || loading\"\n class=\"dropdown-toggle button-select no-margin-bottom area-text\" \n type=\"button\" \n id=\"{{ id }}\" \n \n [attr.aria-haspopup]=\"'true'\" \n [attr.aria-expanded]=\"'false'\" \n (click)=\"toOpen();toInput(_option)\" >\n\n <i class=\"tc-placeholder area-text\" *ngIf=\"(selected_description === undefined || selected_description === null || selected_description === '' ) && !loading \">{{ placeholder }}</i>\n {{ selected_description }}\n <span><i class=\"fas fa-angle-down\"></i></span>\n </button>\n <div class=\"tc-dropdown-menu {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!menu_show\" [style]=\"box_style\">\n\n <div class=\"line-search\" *ngIf=\"search\">\n <table class=\"box-search\">\n <tr>\n\n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n\n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n \n <div class=\"area-options\" id=\"{{ id }}-options\" (click)=\"toClose()\">\n <ng-content></ng-content> \n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <ng-container *ngFor=\"let item of listItems\">\n <tcloud-ui-data-list-option [value]=\"item.value\" [disabled]=\"item?.disabled\" >{{ item?.description }}</tcloud-ui-data-list-option>\n </ng-container>\n </ng-container> \n </div>\n </div>\n</div>\n\n<div *ngIf=\"formulario\">\n <form [formGroup]=\"formulario\" style=\"display: none;\" >\n <input id=\"{{ id }}-hidden\" formControlName=\"selected_item\" type=\"hidden\">\n </form>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monthname',\n standalone: true\n})\nexport class MonthNamePipe implements PipeTransform {\n\n meses: string[] = ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];\n \n\n transform(yyyy_mm: string): string{\n\n if( yyyy_mm !== '' ){\n\n let part = (yyyy_mm).split('-');\n if( (part).length === 2 ){\n let yyyy = +part[0];\n let mm = +part[1];\n\n return this.meses[(mm-1)];\n }\n }\n return '';\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'statusinfo',\n standalone: true\n})\nexport class StatusInfoPipe implements PipeTransform {\n\n status_default = [\n { key: 'SUCCEEDED', value: 'Finalizado' },\n { key: 'PENDING', value: 'Pendente' },\n { key: 'FAILED', value: 'Erro' },\n { key: 'RUNNING', value: 'Em andamento' },\n { key: 'REGISTRATION', value: 'Cadastro Pendente' },\n { key: 'SUCCEED', value: 'Finalizado' },\n { key: 'WAITING', value: 'Aguardando' },\n { key: 'REJECTED', value: 'Rejeitado' },\n ];\n\n status_proposal = [\n { key: 'SUCCEEDED', value: 'Finalizado' },\n { key: 'PENDING', value: 'Aguardando Aprovação' },\n { key: 'FAILED', value: 'Erro' },\n { key: 'RUNNING', value: 'Provisionando Ambientes' },\n { key: 'REGISTRATION', value: 'Cadastro Pendente' },\n { key: 'SUCCEED', value: 'Finalizado' },\n { key: 'WAITING', value: 'Provisionando Ambientes' },\n { key: 'REJECTED', value: 'Rejeitada' },\n ]; \n\n transform(status_name: any, tema?: string): string{\n\n let map_tema = this.status_default;\n\n if( tema && tema !== undefined){\n switch (tema) {\n case 'proposal': map_tema = this.status_proposal; break;\n }\n }\n\n let status_name_in_search = ''; \n if( tema && tema === 'ALL'){\n\n map_tema = this.status_default;\n if( status_name !== undefined && status_name !== null && `${status_name}` !== '' ){\n for( let i = 0; i < (map_tema).length; i++ ){\n if( (`${status_name}`).toLowerCase() === (`${map_tema[i].key}`).toLowerCase() ){\n status_name_in_search += ' ' + map_tema[i].value;\n break;\n }\n }\n }\n\n map_tema = this.status_proposal;\n if( status_name !== undefined && status_name !== null && `${status_name}` !== '' ){\n for( let i = 0; i < (map_tema).length; i++ ){\n if( (`${status_name}`).toLowerCase() === (`${map_tema[i].key}`).toLowerCase() ){\n status_name_in_search += ' ' + map_tema[i].value;\n break\n }\n }\n }\n\n }else{\n if( status_name !== undefined && status_name !== null && `${status_name}` !== '' ){\n for( let i = 0; i < (map_tema).length; i++ ){\n if( (`${status_name}`).toLowerCase() === (`${map_tema[i].key}`).toLowerCase() ){\n status_name_in_search += ' ' + map_tema[i].value;\n break;\n }\n }\n }\n }\n\n\n if( status_name_in_search !== '' ){\n return status_name_in_search;\n }\n\n return status_name;\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'respective',\n standalone: true\n})\nexport class RespectivePipe implements PipeTransform {\n\n map = [\n // Tipos de Ambientes\n { key: 'production', value: 'Produção' },\n { key: 'development', value: 'Desenvolvimento' },\n { key: 'qa', value: 'Qualidade' },\n\n // Implantação / Migração\n { key: 'golive', value: 'Pré GoLive' },\n { key: 'kickoff', value: 'Kickoff' },\n\n // Tipos de Clientes\n { key: 'prime', value: 'Prime' },\n { key: 'p', value: 'Pequeno' },\n { key: 'm', value: 'Médio' },\n { key: 'g', value: 'Grande' },\n\n // Produtos\n { key: '2c', value: 'Carol' },\n { key: 'carol', value: 'carol' },\n { key: 'consinco', value: 'Consinco' },\n { key: 'datasul', value: 'Datasul' },\n { key: 'fluig', value: 'Fluig' },\n { key: 'license-server', value: 'License Server' },\n { key: 'pep', value: 'PEP' },\n { key: 'protheus', value: 'Protheus' },\n { key: 'pvi', value: 'PVI' },\n { key: 'rm', value: 'RM' },\n { key: 'sfa', value: 'SFA' },\n { key: 'smartrm', value: 'Smart RM' },\n { key: 'smartrmcluster', value: 'Smart RM Cluster' },\n { key: 'smartrmcontrol', value: 'Smart RM Control' },\n { key: 'taf', value: 'TAF' },\n { key: 'treports', value: 'Treports' },\n { key: 'tss', value: 'TSS' },\n { key: 'winthor', value: 'Winthor' },\n\n // Tipos de SO\n { key: 'windows', value: 'Windows' },\n { key: 'linux', value: 'Linux' },\n\n // Tipos responsaveis\n { key: 'prime_customer_success', value: 'Customer Success' },\n { key: 'project_manager', value: 'Gerente de Projetos' },\n { key: 'prime_engineer', value: 'Engenheiro Prime' }\n\n ];\n \n\n transform(v: any): string{\n\n if( v !== undefined && v !== null && v !== '' ){\n\n if( typeof v === 'string' ){\n for( let i = 0; i < (this.map).length; i++ ){\n let custom_v = v;\n custom_v = (custom_v).toLowerCase();\n custom_v = (custom_v).trim();\n custom_v = (custom_v).replace(/\\_/g, \"-\");\n const current_key = (this.map[i].key).replace(/\\_/g, \"-\");\n if( (custom_v).toLowerCase() === current_key ){\n return `${this.map[i].value}`;\n }\n }\n }else{\n return '';\n }\n \n \n }\n return `${v}`;\n }\n\n \n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'cnpj',\n standalone: true\n})\nexport class CNPJPipe implements PipeTransform {\n mascara: string = \"##.###.###/####-##\";\n createMask(v: any){\n const mask = this.mascara;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length == 14 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n transform(cnpj: string): string{ \n return this.createMask(cnpj);\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'cpf',\n standalone: true\n})\nexport class CPFPipe implements PipeTransform {\n mascara: string = \"###.###.###-##\";\n createMask(v: any){\n const mask = this.mascara;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length == 11 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n transform(cpf: string): string{ \n return this.createMask(cpf);\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bytes',\n standalone: true\n})\nexport class BytesPipe implements PipeTransform {\n\n formatBytes(a: number, b = 2): string {\n if (!a) return '---';\n if (0 === a) return '0 Bytes';\n const c = 0 > b ? 0 : b, d = Math.floor(Math.log(a) / Math.log(1024));\n return parseFloat((a / Math.pow(1024, d)).toFixed(c)) + ' ' + [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"][d];\n }\n \n transform(value: any, typeValue?: string): string{ \n \n if( typeValue !== undefined && typeValue !== null && typeValue !== '' ){\n \n if( (typeValue).toLowerCase() === 'kb' ){\n value = value * 1024\n }\n\n if( (typeValue).toLowerCase() === 'mb' ){\n value = (value * 1024) * 1024\n }\n }\n \n const b: number = +value; \n return this.formatBytes(b);\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'datebr',\n standalone: true\n})\nexport class DateBRPipe implements PipeTransform {\n mascara: string = \"##/##/####\";\n createMask(v: any){\n const mask = this.mascara;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length <= 10 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n\n createMask4(v: any){\n const mask = \"##/##\";\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length <= 10 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n\n create_mask(v: string, _mask: string){\n const mask = _mask;\n let str = v.replace(/\\s/g,'');\n let strMask = '';\n if( str.length <= 10 ){\n let j = 0;\n for( let i = 0; i < mask.length; i++){\n if( mask[i] == '#' ){\n strMask += str[j++];\n }else{\n strMask += mask[i];\n }\n }\n }else{\n return v;\n }\n return strMask;\n }\n\n transform(v: string): string{ \n \n if( v ){\n\n v = (v).replace(/\\//g, \"\");\n\n if( (v).length == 1 ){ return this.create_mask(v,'#'); }\n if( (v).length == 2 ){ return this.create_mask(v,'##/'); }\n if( (v).length == 3 ){ return this.create_mask(v,'##/#'); }\n if( (v).length == 4 ){ return this.create_mask(v,'##/##'); }\n if( (v).length == 5 ){ return this.create_mask(v,'##/##/#'); }\n if( (v).length == 6 ){ return this.create_mask(v,'##/##/##'); }\n if( (v).length == 7 ){ return this.create_mask(v,'##/##/###'); }\n return this.create_mask(v,'##/##/####');\n }\n return '';\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'toText',\n standalone: true\n})\nexport class ToTextPipe implements PipeTransform {\n\n formatBytes(value: any): string {\n let v = '';\n let t = '';\n for( let i = 0; i < (value).length; i++ ){\n t += v + `${value[i]}`;\n\n v = ', ';\n if( (i+1) === ((value).length) - 1 ){\n v = ' e ';\n }\n }\n return t\n }\n \n transform(value: any): any{ \n if( value && (value).length > 0 ){\n return this.formatBytes(value);\n }\n return value; \n }\n}","import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter, forwardRef, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateBRPipe } from '../../_pipes';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n// https://mymth.github.io/vanillajs-datepicker/#/\ndeclare var Datepicker: any;\n\nvar translation = {\n ptBR: {\n days: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"],\n daysShort: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n daysMin: [\"Do\", \"Se\", \"Te\", \"Qu\", \"Qu\", \"Se\", \"Sa\"],\n months: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n monthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"],\n today: \"Hoje\",\n clear: \"Limpar\",\n titleFormat: \"MM y\",\n format: \"dd/mm/yyyy\",\n weekStart: 0\n }\n};\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiDatepickerComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-datepicker',\n templateUrl: './tcloud-ui-datepicker.component.html',\n styleUrls: [\n './tcloud-ui-datepicker.component.scss',\n './datepicker/css/datepicker.min.css',\n './datepicker/css/style.css',\n ],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, DateBRPipe],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, FormsModule, DateBRPipe]\n})\nexport class TCloudUiDatepickerComponent implements OnInit {\n\n // multiple permite selecionar multiplas datas\n @Input() multiple: boolean = false;\n\n // maxNumberOfDates - Maximum number of dates users can select. No limit is applied if 0 is set.\n // Depende de: multiple como true\n @Input() maxNumberOfDates: number = 0;\n\n // daysOfWeekDisabled - Dias da semana desabilidatos = 0 para sabado até 6 para domingo\n @Input() daysOfWeekDisabled: number[] = [];\n\n // minDate - Data minima para exibicao do calendario - ex: 01/01/2020\n @Input() minDate: string = '';\n\n // maxDate - Data maxima para exibicao do calendario - ex: 31/12/2020\n @Input() maxDate: string = '';\n\n // datesDisabled - Datas desabilitadas - Ex: ['12/10/2020','25/12/2020']\n @Input() datesDisabled: string[] = [];\n\n // modeInput - Exibe um input para quando clicar abrir o calendario\n @Input() modeInput: boolean = false;\n\n @Input() useBorder: boolean = true;\n\n @Input() childInputDateTime: boolean = false;\n\n @Input() startViewInMinDate: boolean = false;\n\n @Input() startViewInMaxDate: boolean = false;\n\n @Input() disabled: boolean = false;\n\n // onChange - Dispara a data selecionada\n @Output() onChange = new EventEmitter<any|undefined>();\n\n default_innerValue: any | undefined;\n default_innerValue_convertida: any | undefined;\n default_qtd_innerValue: number = 0;\n date_changed: any | undefined;\n\n @Input() set ngModel(v: any){\n\n if( v && v !== this.innerValue ){\n this.innerValue = v; //this.toSetMask(v); \n this.default_innerValue = v;\n this.default_innerValue_convertida = this.convertDates(v);\n if( this.multiple ){\n this.default_qtd_innerValue = (v).length;\n } \n this.onChange.emit(v);\n } \n }\n\n @Output() ngModelChange = new EventEmitter<any|undefined>();\n\n @Output() onCheckDate = new EventEmitter<any>();\n\n @ViewChild('input_datepicker', {static: false}) input_datepicker: ElementRef<HTMLElement> | undefined;\n private datepicker: any | undefined;\n @Input() code: string = 'tcloud-ui-datepicker';\n\n constructor(\n private _DateBRPipe: DateBRPipe,\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n ) { }\n \n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n\n ID: string = '';\n\n ngOnInit(): void {\n this.ID = this.generateID();\n Datepicker.locales.ptBR = translation.ptBR; \n this.start_datepicker();\n }\n\n generateID(): string{\n return `tcloud-ui-datepicker-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n toSetMask(v: string){\n return this._DateBRPipe.transform(v);\n }\n\n parseDateLocal(dateString: any, _split?: string){\n if( !_split ){ _split = '-'; }\n const [day , month, year] = dateString.split(_split);\n return new Date(year, month - 1, day); // Subtrai 1 porque os meses são indexados a partir de 0\n }\n\n formatDateLocal(date: any){\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0\n const day = String(date.getDate()).padStart(2, '0');\n return `${day}/${month}/${ year}`;\n }\n\n get_options(){\n // Função para formatar uma data no fuso horário local\n const formatDateLocal = (date: any) => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n\n // Função para analisar uma data no fuso horário local\n const parseDateLocal = (dateString: any) => {\n const [year, month, day] = dateString.split('-');\n return new Date(year, month - 1, day);\n }\n\n let options = {\n nextArrow: `<i class=\"fas fa-caret-right\"></i>`,\n prevArrow: `<i class=\"fas fa-caret-left\"></i>`,\n format: 'dd/mm/yyyy', \n daysOfWeekHighlighted: [0,6],\n language: 'ptBR',\n formatter: {\n date: formatDateLocal,\n },\n parser: {\n date: parseDateLocal,\n } \n } as any;\n\n if( (this.daysOfWeekDisabled).length > 0 ){\n options['daysOfWeekDisabled'] = this.daysOfWeekDisabled;\n }\n\n if( (this.datesDisabled).length > 0 ){\n options['datesDisabled'] = this.datesDisabled;\n }\n\n if( this.minDate !== '' ){\n options['minDate'] = this.minDate;\n }\n\n if( this.maxDate !== '' ){\n options['maxDate'] = this.maxDate;\n }\n\n if( this.multiple ){ \n options['multiple'] = true; \n options['autohide'] = false; \n options['maxNumberOfDates'] = this.maxNumberOfDates;\n }\n \n return options;\n }\n\n clearDate(){\n if( this.datepicker ){ this.datepicker.setDate({clear: true}); }\n }\n\n start_datepicker(){\n setTimeout(() => { \n const input_datepicker = <any> this.input_datepicker?.nativeElement;\n if( input_datepicker ){\n input_datepicker.setAttribute('placeholder','DD/MM/YYYY');\n\n if( !this.useBorder ){\n input_datepicker.setAttribute('style','border:none; text-align: center; max-width: 105px; padding: 0;');\n }\n \n this.datepicker = new Datepicker( input_datepicker, this.get_options() ); \n if( this.innerValue && this.innerValue !== '' ){\n this.toSetDefaultDate(this.innerValue);\n }\n\n input_datepicker.addEventListener('keyup', (event: any) => {\n const v = (input_datepicker['value']) ? input_datepicker['value'] : '';\n input_datepicker['value'] = this.toSetMask(v);\n if( (input_datepicker['value']).length >= 10 ){\n const v = (input_datepicker['value']).substring(0, 10);\n const part_date = (v).split('/');\n if( (part_date).length === 3 ){\n\n let dia = part_date[0];\n let mes = part_date[1];\n let ano = part_date[2];\n\n mes = (+(mes) < 10 ) ? `0${+mes}` : mes; \n dia = (+(dia) < 10 ) ? `0${+dia}` : dia;\n\n const dt = new Date(ano+'-'+mes+'-'+dia);\n if( dt ){\n input_datepicker?.changeDate;\n document.getElementById(this.ID)?.blur();\n this.onChange.emit(this.innerValue);\n this.ngModelChange.emit(this.innerValue);\n }\n }\n }else{\n this.innerValue = undefined;\n this.onChange.emit(this.innerValue);\n this.ngModelChange.emit(this.innerValue);\n }\n })\n\n \n input_datepicker.addEventListener('changeDate', (event: any) => {\n\n if( event?.detail?.date ){\n\n let qtd = (event.detail.date).length; \n\n if( this.disabled ){\n\n if( !this.multiple ){\n let dt = this.formatDateLocal(event.detail?.date);\n if( this.default_innerValue && this.default_innerValue[0] && ( `${this.default_innerValue[0]}` !== `${dt}` ) ){\n qtd = 1\n }\n }\n \n this.datepicker.setDate( this.default_innerValue_convertida, {clear: true, render: true});\n \n if( qtd > this.default_qtd_innerValue ){\n this.date_changed = event?.detail.viewDate;\n this.datepicker.setFocusedDate( this.date_changed, {resetView: false} );\n\n this.onCheckDate.emit({\n value: this.formatDateLocal(this.date_changed), \n date: this.date_changed, \n checked: true,\n disabled: this.disabled\n });\n }else{\n\n if( this.multiple ){\n const so = this.findDifferences( this.default_innerValue, this.formatArrayDates(event.detail.date) );\n if( so && (so).length > 0 ){\n\n this.date_changed = this.parseDateLocal(so[0], '/');\n this.onCheckDate.emit({\n value :so[0], \n date: this.date_changed,\n checked: false,\n disabled: this.disabled\n });\n }\n }\n\n this.datepicker.setFocusedDate( this.date_changed, {resetView: false} );\n }\n }else{\n\n\n this.toSelectedDate( event.detail );\n }\n }else{\n this.innerValue = '';\n this.ngModelChange.emit(this.innerValue);\n }\n })\n } \n });\n }\n\n\n toSetDefaultDate(date: string | string[]){\n \n if( date === undefined || date === null || date === '' ){\n this.clearDate();\n return;\n }\n\n let dates = [] as string[];\n\n if( date && typeof date === 'string' ){\n if( (date).includes(',') ){\n const dates = (date).split(',');\n date = dates;\n if( !this.multiple ){\n this.innerValue = date = dates[0];\n this.ngModelChange.emit(this.innerValue); \n }\n }\n }\n \n if( date && typeof date === 'string' ){\n (dates).push( date ); \n }else{\n dates = <Array<string>> date;\n }\n if( this.datepicker ){\n\n if( dates && dates.length > 0 && this.multiple ){\n if( this.startViewInMinDate ){ \n dates = this.sortDatesDescending(dates); \n }else if(this.startViewInMaxDate){\n dates = this.sortDatesAscending(dates); \n }\n }\n this.datepicker.setDate(dates); \n } \n }\n\n convertDates(arrayDeDatas: any[]) {\n const formatDate = (dateString: any) => {\n const [day, month, year] = dateString.split('/');\n return new Date(year, month - 1, day); \n }\n if( arrayDeDatas && Array.isArray(arrayDeDatas) ){\n const datasOrdenadas = arrayDeDatas.map((data: any) => ({ original: data, convertida: formatDate(data) }));\n return datasOrdenadas.map(item => item.convertida); \n }else{\n return [arrayDeDatas];\n }\n }\n\n sortDatesDescending(arrayDeDatas: any[]) {\n const formatDate = (dateString: any) => {\n const [day, month, year] = dateString.split('/');\n return new Date(year, month - 1, day); \n }\n const datasOrdenadas = arrayDeDatas.map((data: any) => ({ original: data, convertida: formatDate(data) })).sort((a:any, b: any) => b.convertida - a.convertida);\n const datasOrdenadasFormatadas = datasOrdenadas.map(item => item.original); \n return datasOrdenadasFormatadas;\n }\n \n sortDatesAscending(arrayDeDatas: any[]) {\n const formatDate = (dateString: any) => {\n const [day, month, year] = dateString.split('/');\n return new Date(year, month - 1, day); \n }\n const datasOrdenadas = arrayDeDatas.map((data: any) => ({ original: data, convertida: formatDate(data) })).sort((a:any, b: any) => a.convertida - b.convertida);\n const datasOrdenadasFormatadas = datasOrdenadas.map(item => item.original);\n return datasOrdenadasFormatadas;\n }\n\n toSelectedDate(detail: any){ \n if( detail.datepicker.dates && (detail.datepicker.dates).length > 0 ){\n if( this.multiple ){\n let dates = [];\n for( let i = 0; i < (detail.datepicker.dates).length; i++ ){\n const timeStamp = <number> detail.datepicker.dates[i];\n (dates).push( this.format_date( timeStamp ) );\n }\n this.innerValue = dates;\n this.onChange.emit(this.innerValue); \n }else{\n const timeStamp = <number> detail.datepicker.dates[0];\n const date = this.format_date( timeStamp );\n this.onChange.emit(date);\n this.innerValue = date;\n } \n }else{\n this.clearDate();\n this.innerValue = null;\n this.onChange.emit(this.innerValue);\n } \n this.value = this.innerValue;\n this.ngModelChange.emit(this.innerValue); \n }\n\n format_date(timeStamp: number){\n var date = new Date(timeStamp);\n\n let dia = `${date.getDate()}`;\n let mes = `${date.getMonth()+1}`;\n let ano = `${date.getFullYear()}`;\n\n dia = (+(dia) < 10 ) ? `0${+dia}` : dia;\n mes = (+(mes) < 10 ) ? `0${+mes}` : mes; \n\n const dateFormat = `${dia}/${mes}/${ano}`;\n return dateFormat;\n }\n\n toClickIn(id: string){\n const element = document.getElementById(id) as any;\n setTimeout(() => { \n element?.datepicker?.show();\n });\n }\n\n\n\n findDifferences(array1: any, array2: any) {\n const conjuntoComum = new Set([...array1, ...array2]);\n return Array.from(conjuntoComum).filter(item => !(array1.includes(item) && array2.includes(item)));\n }\n\n\n\n formatArrayDates(array_dates: any){\n let formateds = [];\n if( array_dates && (array_dates).length > 0 ){\n const formatDateLocal = (date: any) => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses são indexados a partir de 0\n const day = String(date.getDate()).padStart(2, '0');\n return `${day}/${month}/${year}`;\n }\n for( let i = 0; i < (array_dates).length; i++ ){\n const dt = array_dates[i];\n (formateds).push( formatDateLocal(dt) )\n }\n }\n return formateds;\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n\n if (v !== this.innerValue) {\n this.innerValue = v; // this.toSetMask(v); \n this.onChangeCallback(v);\n }else{\n // this.innerValue = '';\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefaultDate(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n}\n","<!-- Input mode -->\n<ng-container *ngIf=\"modeInput\">\n\n <div class=\"tcloud-ui-datepicker input-tc-datepicker {{layout}}\" [class.no-border]=\"!useBorder\" [class.child-input-date-time]=\"childInputDateTime\" >\n <table class=\"table-box-input\">\n <tr>\n @if (layout === 'classic') {\n <td class=\"td-icon\">\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div>\n </td>\n }\n <td class=\"td-date\">\n <input #input_datepicker type=\"text\" name=\"{{ID}}\" id=\"{{ID}}\" class=\"form-control\" [title]=\"innerValue\" >\n </td>\n @if (layout === 'modern') {\n <td class=\"td-icon\">\n <div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fa-light fa-calendar c-neutral-900\"></i></div>\n </td>\n }\n </tr>\n </table>\n </div>\n</ng-container>\n\n<!-- Inline mode -->\n<ng-container *ngIf=\"!modeInput\">\n <div class=\"tcloud-ui-datepicker tcloud-ui-datepicker-second\" #input_datepicker id=\"{{ID}}\" pattern=\"/^\\d{2}\\/\\d{2}\\/\\d{4}$/\" [title]=\"innerValue\"></div>\n</ng-container>\n\n<!-- EX de uso \n <tc-datepicker \n [multiple]=\"false\"\n [daysOfWeekDisabled]=\"[0,6]\"\n [minDate]=\"'18/11/2021'\"\n [maxDate]=\"'18/12/2023'\"\n [datesDisabled]=\"['12/10/2022','25/12/2022']\"\n [modeInput]=\"false\"\n (onChange)=\"($event)\"\n (onCheckDate)=\"onCheckDate($event)\"\n [(ngModel)]=\"dateValue\" >\n </tc-datepicker>\n \n // multiple = false\n // dateValue - string - pode ser: 12/12/2022 \n\n // multiple = true\n // dateValue - string - pode ser: 11/12/2022,12/12/2022 ... \n\n <pre>data: {{ dateValue }}</pre>\n-->","import { Component, forwardRef, OnInit, EventEmitter, Output, Input, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ISelectOptions } from '../tcloud-ui-data-list/tcloud-ui-data-list';\nimport { TCloudUiDatepickerComponent } from '../tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiDataListComponent } from '../tcloud-ui-data-list/tcloud-ui-data-list.component';\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiDatepickerTimeComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-datepicker-time',\n templateUrl: './tcloud-ui-datepicker-time.component.html',\n styleUrls: ['./tcloud-ui-datepicker-time.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [CommonModule, FormsModule, TCloudUiDatepickerComponent, TCloudUiDataListComponent]\n})\nexport class TCloudUiDatepickerTimeComponent implements OnInit {\n\n show_date_picker: boolean = true;\n\n private _ngModel: any | undefined;\n @Input() set ngModel(v: any){\n if( v && v !== this.innerValue ){\n this.innerValue = v; \n } \n }\n @Output() ngModelChange = new EventEmitter<Date>();\n\n @Output() onChange = new EventEmitter<Date>();\n @Output() eventChange = new EventEmitter<any>();\n\n // minDate - Data minima para exibicao do calendario - ex: 01/01/2020\n @Input() minDate: string = '';\n\n // maxDate - Data maxima para exibicao do calendario - ex: 31/12/2020\n @Input() maxDate: string = '';\n\n @Input() useOptionsDateTime = false;\n\n DD_MM_YYYY: string = '';\n HH: string = '00';\n MM: string = '00';\n\n ID: string = '';\n\n option_HH: string[] | undefined;\n option_MM: string[] | undefined;\n\n @ViewChild('_datepickertime', {static: false}) datepickertime: ElementRef<HTMLElement> | undefined;\n\n options_date_time : ISelectOptions[] = [];\n open_options_date_time: boolean = false;\n\n last_options_date_time: any;\n description_options_date_time: any = '';\n value_options_date_time: any = '';\n\n ngOnInit(): void {\n\n\n this.setOptionsDateTime();\n\n this.ID = this.generateID();\n this.option_HH = this.getListTIME(23);\n this.option_MM = this.getListTIME(59);\n }\n\n setOptionsDateTime(){\n this.options_date_time = [\n {value:'7-days', description: '7 dias'},\n {value:'15-days', description: '15 dias'},\n {value:'30-days', description: '30 dias'},\n {value:'current-month', description: 'Mês atual até agora'},\n {value:'current-year', description: 'Ano atual até agora'}\n ]\n }\n\n generateID(): string{\n return `tcloud-ui-datepicker-time-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n getListTIME(v: number){\n let mm = [];\n for(let i = 0; i <= v; i++ ){\n if( i < 10 ){\n (mm).push(`0${i}`);\n }else{\n (mm).push(`${i}`);\n }\n }\n return mm;\n }\n\n toSetDate(date: string){ \n this.set_date_by_datepicker(date);\n }\n\n toSetTime(){\n if( this.DD_MM_YYYY && ((this.DD_MM_YYYY).trim()).length === 10){\n const date = (this.DD_MM_YYYY).replace(/-/g, '/');\n let date_part = (date).split('/');\n let dd = date_part[0];\n let mm = date_part[1];\n let yy = date_part[2];\n const datetime = new Date(`${yy}-${mm}-${dd}`);\n if( this.checkIsDate(datetime) ){\n this.set_date_by_datepicker(date);\n }\n }\n }\n\n set_date_by_datepicker(date: string){\n\n if( date ){\n date = (date).replace(/-/g, '/');\n let date_part = (date).split('/');\n let dia = date_part[0];\n let mes = date_part[1];\n let ano = date_part[2];\n\n let hh = this.HH;\n if( !hh ){\n hh = '00';\n }else{\n if( ( +(hh) >= 0 && +(hh) < 24 ) ){\n hh = (+(hh) < 10 ) ? `0${+(hh)}` : `${+(hh)}`;\n }else{\n hh = '00';\n }\n }\n\n let mm = this.MM;\n if( !mm ){\n mm = '00';\n }else{\n if( ( +(mm) >= 0 && +(mm) < 60 ) ){\n mm = (+(mm) < 10 ) ? `0${+(mm)}` : `${+(mm)}`;\n }else{\n mm = '00';\n }\n }\n\n if( hh === '00' ){ this.HH = hh; }\n if( mm === '00' ){ this.MM = mm; }\n\n const notation = '00';\n\n const str_date = `${ano}-${mes}-${dia}T${hh}:${mm}:${notation}`;\n const datetime = new Date( str_date );\n \n if( this.checkIsDate(datetime) ){\n this.innerValue = datetime;\n }else{\n this.innerValue = undefined;\n }\n\n // console.log('this.datepickertime?.nativeElement', this.datepickertime?.nativeElement);\n\n // if(this.datepickertime && this.datepickertime.nativeElement){\n // const elem = <any> this.datepickertime.nativeElement;\n // elem.value = this.innerValue;\n // }\n\n this.ngModelChange.emit( this.innerValue );\n this.onChange.emit( this.innerValue );\n this.eventChange.emit( this.datepickertime?.nativeElement );\n\n }else{\n\n this.description_options_date_time = '';\n this.value_options_date_time = '';\n\n this.innerValue = undefined;\n this.ngModelChange.emit( this.innerValue );\n this.onChange.emit( this.innerValue );\n this.eventChange.emit( this.datepickertime?.nativeElement );\n }\n\n if( `${this.last_options_date_time}` !== `${this.innerValue}` ){\n // this.description_options_date_time = '';\n // this.value_options_date_time = '';\n }\n\n }\n\n // Distribuir os valores da data por pedaços: data - hora - min\n to_date_hh_mm(d: Date){\n let dia = `${(d).getDate()}`;\n dia = (+(dia) < 10 ) ? `0${+dia}` : dia;\n let mes = `${(d).getMonth()+1}`;\n mes = (+(mes) < 10 ) ? `0${+mes}` : mes; \n\n let ano = `${(d).getFullYear()}`;\n let hh = `${(d).getHours()}`;\n let mm = `${(d).getMinutes()}`;\n\n if( hh && ( +(hh) < 0 || +(hh) > 23 ) ){ hh = '00'; }\n hh = (hh) ? ( (+(hh) < 10 ) ? `0${hh}` : hh ) : '00';\n\n if( mm && ( +(mm) < 0 || +(mm) > 59 ) ){ mm = '00'; }\n mm = (mm) ? ( (+(mm) < 10 ) ? `0${mm}` : mm ) : '00';\n\n this.MM = mm;\n this.HH = hh;\n\n this.DD_MM_YYYY = `${dia}/${mes}/${ano}`;\n }\n\n checkIsDate(d: any): boolean{\n\n if(Object.prototype.toString.call(d) === \"[object Date]\") {\n if(isNaN(d)) { return false; } else { return true; }\n } \n return false;\n }\n\n\n clean(){\n this.DD_MM_YYYY = '';\n this.HH = '00';\n this.MM = '00';\n this.description_options_date_time = '';\n this.value_options_date_time = '';\n }\n\n toClickIn(id: string){\n document.getElementById(id)?.focus();\n }\n\n onClosedOptionsDateTime(){\n this.open_options_date_time = false\n }\n\n \n onChangeOptionsDateTime(event: any){\n // this.description_options_date_time = '';\n // this.value_options_date_time = '';\n this.show_date_picker = false;\n\n let now = new Date();\n let filter_date: any = undefined;\n if( event === '7-days' ){\n filter_date = new Date( (new Date(now)).setDate( now.getDate() - 7 ) ); \n filter_date = new Date( (filter_date).setSeconds(0) ); \n }\n\n if( event === '15-days' ){\n filter_date = new Date( (new Date(now)).setDate( now.getDate() - 15 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === '30-days' ){\n filter_date = new Date( (new Date(now)).setDate( now.getDate() - 30 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === 'current-month' ){\n filter_date = new Date(now.getFullYear(), now.getMonth(), 1);\n }\n\n if( event === 'current-year' ){\n filter_date = new Date(now.getFullYear(), 0, 1);\n }\n\n if(filter_date){ \n this.innerValue = filter_date;\n if( this.checkIsDate(filter_date) ){ \n setTimeout(() => {\n this.to_date_hh_mm(filter_date);\n this.toSetDate(this.DD_MM_YYYY); \n this.show_date_picker = true;\n this.value_options_date_time = event;\n this.last_options_date_time = filter_date as any;\n this.description_options_date_time = this.get_description_options_date_time(event);\n }); \n }\n }\n\n }\n\n\n get_description_options_date_time(value: string){\n if( this.options_date_time && (this.options_date_time).length > 0 ){\n for( let i = 0; i < (this.options_date_time).length; i++ ){\n const item = this.options_date_time[i];\n if( item.value === value ){\n return item.description;\n }\n }\n }\n return '';\n }\n\n\n closedTimeDescription(){\n this.value_options_date_time = '';\n this.description_options_date_time = ''; \n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n\n try {\n value = new Date( `${value}` );\n } catch (error) {}\n\n this.innerValue = value;\n if( this.checkIsDate(value) ){\n this.to_date_hh_mm(value);\n }else{\n this.clean()\n }\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n}\n","<div class=\"tcloud-ui-datepicker-time\">\n <input type=\"hidden\" value=\"{{ innerValue }}\" #_datepickertime >\n <form #_formulario=\"ngForm\">\n <div class=\"input-control-time\">\n <div class=\"form-control-time\">\n\n <table style=\"width: 100%;\">\n <tr>\n <td>\n\n <div class=\"input-options-date\">\n <table class=\"form-time\">\n <tr>\n <!-- <td class=\"area-icon\"><div class=\"delimiter-time-icon\" (click)=\"toClickIn(ID)\" ><i class=\"fas fa-calendar-alt\"></i></div></td> -->\n <td class=\"area-input-date\">\n <ng-container *ngIf=\"show_date_picker\">\n <tcloud-ui-datepicker [minDate]=\"minDate\" [maxDate]=\"maxDate\" #_tclouddatepickertime [childInputDateTime]=\"true\" [modeInput]=\"true\" name=\"date\" [useBorder]=\"false\" [(ngModel)]=\"DD_MM_YYYY\" (onChange)=\"toSetDate($event)\" ></tcloud-ui-datepicker>\n </ng-container>\n </td>\n \n <td class=\"area-delimiter\"><div class=\"delimiter-time\"></div></td>\n <td class=\"area-input-hour\">\n <!--<input type=\"text\" placeholder=\"HH\" (keyup)=\"toSetTime()\" [(ngModel)]=\"HH\" maxlength=\"2\" name=\"hh\" pattern=\"[0][0-9]|[1][0-9]|2[0-3]\">-->\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"HH\" name=\"hh\">\n <ng-container *ngFor=\"let hh of option_HH\">\n <option [ngValue]=\"hh\">{{ hh }}</option>\n </ng-container>\n </select>\n </td>\n <td class=\"area-delimiter\"><div class=\"delimiter-time\">:</div></td>\n <td class=\"area-input-minute\">\n <!--<input type=\"text\" placeholder=\"MM\" (keyup)=\"toSetTime()\" [(ngModel)]=\"MM\" maxlength=\"2\" name=\"mm\" pattern=\"[012345][0-9]\">-->\n <select class=\"select-time-date\" (change)=\"toSetTime()\" [(ngModel)]=\"MM\" name=\"mm\">\n <ng-container *ngFor=\"let mm of option_MM\">\n <option [value]=\"mm\">{{ mm }}</option>\n </ng-container>\n </select>\n </td>\n <td class=\"area-clean\"></td>\n </tr>\n </table>\n\n <div class=\"description-options-date\" *ngIf=\"value_options_date_time !== ''\">\n <strong>{{ description_options_date_time }}</strong>\n\n <!-- <div class=\"area-action-date-time-selected\">\n <button class=\"btn-icon\" type=\"button\" (click)=\"closedTimeDescription()\" >\n <i class=\"fas fa-times\"></i>\n </button> \n </div> -->\n </div>\n\n\n </div>\n\n </td>\n <td *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0\" style=\"width: 20px\">\n <button type=\"button\" class=\"icon-short-time\" (click)=\"open_options_date_time = !open_options_date_time\" [title]=\"description_options_date_time\" >\n <i *ngIf=\"!open_options_date_time\" class=\"fas fa-caret-down\"></i>\n <i *ngIf=\"open_options_date_time\" class=\"fas fa-caret-up\"></i>\n </button>\n\n <ng-container *ngIf=\"value_options_date_time !== ''\">\n <button class=\"btn-icon-close\" type=\"button\" (click)=\"closedTimeDescription()\" >\n <i class=\"fas fa-times\"></i>\n </button> \n </ng-container>\n\n </td>\n </tr>\n <tr *ngIf=\"useOptionsDateTime && options_date_time && (options_date_time).length > 0 && open_options_date_time\">\n <td colspan=\"2\">\n <tcloud-ui-data-list \n name=\"value_options_date_time\"\n [showInput]=\"false\" \n [search]=\"false\" \n [open]=\"true\" \n [listItems]=\"options_date_time\" \n (onClosed)=\"onClosedOptionsDateTime()\"\n [ngModel]=\"value_options_date_time\"\n (ngModelChange)=\"onChangeOptionsDateTime($event)\"\n >\n </tcloud-ui-data-list>\n\n \n\n\n \n </td>\n </tr>\n </table>\n\n \n </div>\n </div>\n </form>\n</div>","export interface TCDataFilters{\n description: string; \n searchIn: string;\n notIn?: boolean;\n type?: TCFiltersType;\n name?: string;\n id?: string;\n\n searchText?: any;\n accept?: boolean;\n placeholder?: string;\n width?: string;\n data?: TCDataOtions[];\n condition?: TCCondition;\n value?: any;\n selectFirstOptionHidden?: boolean;\n\n // For datepicker\n defaultValuePeriodStartStop?: any;\n UTC?: boolean;\n useOptionsDateTime?: boolean;\n}\n\nexport interface TCDataOtions {\n description: string;\n value: any;\n notValues?: string[];\n}\n\nexport enum TCFiltersType{\n text = \"text\",\n number = \"number\",\n select = \"select\", \n boolean = \"boolean\",\n hidden = \"hidden\",\n\n date = \"date-local\",\n datetime = \"datetime-local\",\n\n browserdate = \"date\",\n browserdatetime = \"datetime\"\n}\n\nexport enum TCCondition{\n equal = \"equal\",\n gte = \"gte\",\n lte = \"lte\",\n lt = \"lt\",\n gt = \"gt\",\n notEqual = \"notEqual\"\n}","import { Component, Input, OnInit, Output, EventEmitter, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TCloudUiDatepickerComponent } from '../../../tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiDatepickerTimeComponent } from '../../../tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiRangeDateComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiRangeDateComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n\ninterface IResultDateTime{\n start: any;\n stop: any;\n}\n\n@Component({\n selector: 'tcloud-ui-range-date',\n templateUrl: './range-date.component.html',\n styleUrls: ['./range-date.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TCloudUiDatepickerComponent, TCloudUiDatepickerTimeComponent]\n})\nexport class TCloudUiRangeDateComponent implements OnInit {\n\n result = {} as IResultDateTime;\n\n options_date_time: any = [];\n use_validation_required: boolean = false;\n\n @Output() onChange = new EventEmitter<IResultDateTime>();\n\n @Input() defaultValuePeriodStartStop: string = '';\n @Input() required: string | undefined;\n\n @Input() descriptionStart: string = '';\n @Input() descriptionStop: string = '';\n\n mode: string = 'select';\n\n isValid = false;\n\n constructor() { }\n\n ngOnInit(): void {\n this.setOptionsDateTime();\n }\n\n setOptionsDateTime(){\n this.options_date_time = [\n {value:'1-last-time', description: 'Última 1 hora'},\n {value:'3-last-time', description: 'Últimas 3 horas'},\n {value:'6-last-time', description: 'Últimas 6 horas'},\n {value:'24-last-time', description: 'Últimas 24 horas'},\n\n {value:'7-days', description: 'Últimos 7 dias'},\n {value:'15-days', description: 'Últimos 15 dias'},\n {value:'30-days', description: 'Últimos 30 dias'},\n {value:'current-month', description: 'Mês atual'},\n {value:'current-year', description: 'Ano atual'}\n ]\n setTimeout(() => {\n if( this.defaultValuePeriodStartStop !== '' ){\n this.onChangeOptionsDateTime( this.defaultValuePeriodStartStop );\n }\n });\n \n }\n\n onChangeOptionsDateTime(event?: any){\n this.isValid = false;\n // this.description_options_date_time = '';\n // this.value_options_date_time = '';\n event = (event && event.value) ? `${event.value}` : `${event}`;\n\n let now = new Date();\n let current_date = new Date();\n let filter_date: any = undefined;\n\n\n if( event === '1-last-time' ){\n filter_date = new Date(current_date.getTime() - 1 * 60 * 60 * 1000);\n }\n\n if( event === '3-last-time' ){\n filter_date = new Date(current_date.getTime() - 3 * 60 * 60 * 1000);\n }\n\n if( event === '6-last-time' ){\n filter_date = new Date(current_date.getTime() - 6 * 60 * 60 * 1000);\n }\n\n if( event === '24-last-time' ){\n filter_date = new Date(current_date.getTime() - 24 * 60 * 60 * 1000);\n }\n\n if( event === '7-days' ){\n filter_date = new Date( (new Date(current_date)).setDate( now.getDate() - 7 ) ); \n filter_date = new Date( (filter_date).setSeconds(0) ); \n }\n\n if( event === '15-days' ){\n filter_date = new Date( (new Date(current_date)).setDate( now.getDate() - 15 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === '30-days' ){\n filter_date = new Date( (new Date(current_date)).setDate( now.getDate() - 30 ) );\n filter_date = new Date( (filter_date).setSeconds(0) );\n }\n\n if( event === 'current-month' ){\n filter_date = new Date(now.getFullYear(), now.getMonth(), 1);\n }\n\n if( event === 'current-year' ){\n filter_date = new Date(now.getFullYear(), 0, 1);\n }\n\n if(filter_date){ \n this.result = {\n start: this.getTransformDate(filter_date),\n stop: this.getTransformDate(now)\n } as IResultDateTime;\n\n this.onChange.emit(this.result);\n this.isValid = true;\n }else{\n \n this.result = {} as IResultDateTime;\n this.onChange.emit(this.result);\n this.isValid = false;\n \n }\n\n }\n\n getTransformDate(dt: any){\n //return (dt).toLocaleString('pt-BR');\n return dt;\n /*\n const ano = dt.getFullYear();\n const mes = dt.getMonth();\n const dia = dt.getDate();\n const horas = dt.getHours();\n const minutos = dt.getMinutes();\n return new Date(Date.UTC(ano, mes, dia, horas, minutos));\n */\n }\n\n onChangeStartDateTime(event: any){\n this.isValid = false;\n if( this.result && this.result.start){\n this.result.start = event.value = this.getTransformDate(event.value);\n this.onChange.emit(this.result);\n this.isValid = true;\n }else{\n this.result = {} as IResultDateTime;\n this.onChange.emit(this.result);\n }\n }\n\n onChangeStopDateTime(event: any){\n this.isValid = false;\n if( this.result && this.result.stop ){\n this.result.stop = event.value = this.getTransformDate(event.value);\n this.onChange.emit(this.result);\n this.isValid = true;\n }else{\n this.result = {} as IResultDateTime;\n this.onChange.emit(this.result);\n }\n }\n\n toggle(){\n const mode = ( `${this.mode}` === 'select' ) ? 'datepickers' : 'select';\n this.defaultValuePeriodStartStop = '';\n this.isValid = false;\n this.result = {} as IResultDateTime;\n this.mode = mode;\n this.onChange.emit(this.result);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n //this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n check_is_valid(): boolean{\n if( this.result && this.result.start && this.result.stop ){\n return true;\n }\n return false;\n }\n\n}\n","<table class=\"tcloud-ui-filters-range-date area-range-date\">\n <tr>\n\n <td>\n <div *ngIf=\"mode === 'select'\">\n <div class=\"description-period\">Período</div>\n <select name=\"periodo\" class=\"tc-form-control\" (change)=\"onChangeOptionsDateTime($event.target)\" [(ngModel)]=\"defaultValuePeriodStartStop\" >\n <option value=\"\"></option> \n <ng-container *ngFor=\"let item of options_date_time\">\n <option [value]=\"item.value\">{{ item.description }}</option>\n </ng-container>\n </select>\n </div>\n <div *ngIf=\"mode === 'datepickers'\">\n\n <table class=\"area-range-datepickers\">\n <tr>\n <td>\n <div class=\"description-start\">{{ descriptionStart }}</div>\n <tcloud-ui-datepicker-time \n #_input_start \n [(ngModel)]=\"result.start\" \n name=\"input_start\" \n (eventChange)=\"onChangeStartDateTime(_input_start)\">\n </tcloud-ui-datepicker-time>\n </td>\n <td>\n <div class=\"description-stop\">{{ descriptionStop }}</div>\n <tcloud-ui-datepicker-time \n #_input_stop\n [(ngModel)]=\"result.stop\" \n name=\"input_stop\" \n (eventChange)=\"onChangeStopDateTime(_input_stop)\">\n </tcloud-ui-datepicker-time>\n </td>\n </tr>\n </table>\n\n </div>\n </td>\n\n <td>\n <button class=\"btn-mode-range-date\" [class.active]=\"mode === 'select'\" (click)=\"toggle()\" type=\"button\">\n\n <i *ngIf=\"mode === 'select'\" class=\"far fa-calendar-alt\" title=\"Alterar para calendário\"></i>\n <i *ngIf=\"mode !== 'select'\" class=\"fas fa-calendar-week\" title=\"Selecionar período\"></i>\n\n <!-- <div *ngIf=\"mode === 'select'\">Exibir<br>Calendário</div> -->\n <!-- <div *ngIf=\"mode !== 'select'\">Exibir<br>Período</div> -->\n </button>\n </td>\n\n </tr>\n</table>","import { DatePipe, CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnInit, Output, SimpleChanges, EventEmitter, ViewChild } from '@angular/core';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { TCCondition, TCDataFilters, TCFiltersType } from './tcloud-ui-filters';\nimport { TCloudUiRangeDateComponent } from './components/range-date/range-date.component';\nimport { TCloudUiDatepickerComponent } from '../tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiDatepickerTimeComponent } from '../tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\nimport { TCloudUiFormDirective } from '../../_directives/tcloud-form/tcloud-form.directive';\n\n@Component({\n selector: 'tcloud-ui-filters',\n templateUrl: './tcloud-ui-filters.component.html',\n styleUrls: ['./tcloud-ui-filters.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule, TCloudUiRangeDateComponent, TCloudUiDatepickerComponent, TCloudUiDatepickerTimeComponent, TCloudUiFormDirective],\n providers: [DatePipe]\n})\nexport class TCloudUiFiltersComponent implements OnInit, OnChanges {\n\n datepickers = [] as any;\n\n @ViewChild('_formulario') _formulario: NgForm | undefined;\n\n inputs: string[] = [];\n\n show_filters: boolean = false;\n\n search_data: any | undefined;\n\n @Input() border: boolean = true;\n\n private _data: any | undefined;\n @Input() set data(data: any){\n // this._data = JSON.parse(JSON.stringify(data));\n }\n get data(): any{ return this._data; }\n\n private _filters: TCDataFilters | undefined;\n @Input() set filters(filters: any){\n //this._filters = filters;\n }\n get filters(): any{ return this._filters; }\n\n private _submitText: string = 'Filtrar';\n @Input() set submitText(v: string){ \n if( v && v !== this._submitText ){\n this._submitText = v;\n }\n }\n get submitText():string{ return this._submitText; }\n\n @Input() btnSubmitClass: string = 'tc-btn-primary';\n @Input() useOnChangeSubmit: boolean = true; // useOnChangeSubmit - Submit automatico quando for alterado quanquer input\n @Input() useButtonSubmit: boolean = false; // useButtonSubmit - Exibe um botão de submit e não executa a busca automaticamente\n @Input() useNormalizeCaseSensitive: boolean = true; // useNormalizeCaseSensitive - Não valida caixa alta ou baixa e caracteres especiais\n @Input() useRangeDate: boolean = true;\n @Input() useFilterAccept: boolean = false;\n\n @Output() result = new EventEmitter<any>();\n @Output() onFilter = new EventEmitter<any>();\n @Output() onChange = new EventEmitter<any>();\n @Output() onSubmit = new EventEmitter<any>();\n\n descriptionStart: string = '';\n descriptionStop: string = '';\n\n private first_active_filter: boolean = false;\n\n start_stop: boolean = false;\n start_stop_width: number = 0;\n start_stop_und: string = ''; // px ou %\n\n constructor(\n private datepipe: DatePipe,\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n ) { }\n \n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n \n\n ngOnInit(): void {\n setTimeout(() => {\n if( this.filters && (this.filters).length > 0 ){\n for(let i = 0; i < (this.filters).length; i++){\n if( this.filters[i].value ){\n if( this.filters[i].type === 'datetime-local' ){\n try {\n this.filters[i].searchText = new Date( `${this.filters[i].value}` );\n } catch (error) {}\n }else{\n this.filters[i].searchText = this.filters[i].value;\n }\n this.first_active_filter = true;\n }\n } \n }\n this.start_stop = (this.useRangeDate) ? this.is_start_stop_datetime() : false;\n this.toSubmit();\n });\n }\n\n is_start_stop_datetime(){\n let start = false;\n let stop = false;\n if( this.filters && (this.filters).length > 0 ){\n this.start_stop_width = 0;\n for(let i = 0; i < (this.filters).length; i++){\n if( this.filters[i].id === 'start' ){\n start = true;\n this.start_stop_width += this.getValueWidth(this.filters[i].width);\n this.start_stop_und = this.getUnidade(this.filters[i].width);\n this.descriptionStart = this.filters[i].description;\n }\n if( this.filters[i].id === 'stop' ){\n stop = true;\n this.start_stop_width += this.getValueWidth(this.filters[i].width);\n this.descriptionStop = this.filters[i].description;\n }\n }\n }\n return ( start && stop ) ? true : false;\n }\n\n getValueWidth(v: string):number {\n let und = this.getUnidade(v);\n v = (v).replace(und, '');\n return +(v);\n }\n\n getUnidade(v: string):string {\n let und = '%';\n if( v && (v).includes('px') ){\n und = 'px';\n }\n return und;\n }\n \n\n ngOnChanges(changes: SimpleChanges) { \n \n if( changes && changes['data'] ){\n const data = changes['data'].currentValue;\n if( this._data !== data ){\n this._data = JSON.parse(JSON.stringify(data));\n this.search_data = JSON.parse(JSON.stringify(data));\n this.init();\n }\n }\n\n if( changes && changes['filters'] ){\n const filters = changes['filters'].currentValue;\n if( this._filters !== filters ){\n this._filters = JSON.parse(JSON.stringify(filters));\n this.init();\n }\n }\n }\n\n private init(){\n if( this.data && this.filters ){\n this.show_filters = true;\n if( this.filters && (this.filters).length > 0 ){\n (this.filters).forEach((filter: TCDataFilters) => { \n this.searchIn(filter, 'sync');\n });\n } \n if( !this.useOnChangeSubmit ){\n this.result_accept(this.data);\n }\n\n if( this.useOnChangeSubmit || this.useButtonSubmit ){\n this.start_filter();\n }\n }\n }\n\n private normalize(text: any): string{\n if( this.useNormalizeCaseSensitive ){\n const v = ( ( (`${text}`).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n return v;\n }\n return text;\n }\n\n toSubmit(){\n if( this.filters && (this.filters).length > 0 ){\n this.init();\n }\n this.emitSubmitFilters();\n }\n\n private emitSubmitFilters(){\n let filters = JSON.parse(JSON.stringify(this.filters));\n if( filters && (filters).length > 0 ){\n (filters).forEach((filter: TCDataFilters, i: number) => {\n\n if( filter.width ){ delete(filters[i].width); }\n if( filter.placeholder ){ delete(filters[i].placeholder); }\n if( filter.description ){ delete(filters[i].description); }\n\n if( (!filter.searchText || filter.searchText && filter.searchText === '') && filter.type !== \"boolean\" ){\n delete(filters[i]);\n }\n if( filter.type === \"boolean\" ){\n if( !filter.searchText ){\n filter.searchText = false;\n }\n }\n \n });\n } \n \n this.onSubmit.emit(this.filters);\n }\n\n\n private collectionFind(obj: any, path: any): any {\n const pathArray = path.split(\".\");\n let current = obj;\n for (let i = 0; i < pathArray.length; i++) {\n const key = pathArray[i];\n\n if (key.includes('[') && key.includes(']')) {\n const nextKeys = pathArray.slice(i + 1);\n const index = key.substring(key.indexOf('[') + 1, key.indexOf(']'));\n const arrayKey = key.substring(0, key.indexOf('['));\n if( current && current[arrayKey] && current[arrayKey][index] ){\n return this.collectionFind(current[arrayKey][index], nextKeys.join(\".\"));\n }\n }\n\n\n if (key.includes(\"[]\")) {\n const arrayKey = key.replace(\"[]\", \"\");\n current = current[arrayKey] || [];\n const nextKeys = pathArray.slice(i + 1);\n const results = [];\n for (let j = 0; j < current.length; j++) {\n let result = this.collectionFind(current[j], nextKeys.join(\".\"));\n if (result !== undefined) {\n results.push(result); \n }\n }\n if (results.length === 0) {\n return undefined;\n }\n return results;\n } else {\n if( !current || (current && !current[key]) ){\n return undefined;\n }\n current = current[key];\n if (current === undefined) {\n return undefined;\n }\n }\n }\n return current;\n }\n \n first: boolean = true;\n start_filter_fc: any = undefined;\n\n start_value: any | undefined;\n stop_value: any | undefined;\n\n searchInRange( range_date: any){\n \n if( this.filters && (this.filters).length > 0 ){\n\n let event = {} as any; \n event.datepickertime = true;\n\n for( let i = 0; i < (this.filters).length; i++ ){\n\n if( this.filters[i] && this.filters[i].id && this.filters[i].id === 'start' ){\n this.filters[i].value = range_date?.result?.start!;\n this.filters[i].searchText = range_date?.result?.start!;\n event.innerValue = this.start_value = range_date?.result?.start!;\n this.searchIn(this.filters[i], event);\n }\n\n if( this.filters[i] && this.filters[i].id && this.filters[i].id === 'stop' ){\n this.filters[i].value = range_date?.result?.stop!;\n this.filters[i].searchText = range_date?.result?.stop!;\n event.innerValue = this.stop_value = range_date?.result?.stop!;\n this.searchIn(this.filters[i], event);\n }\n }\n if( this.first || this.useOnChangeSubmit ){\n this.toSubmit();\n }\n \n }\n this.first = false;\n\n }\n\n convertDateNativeToNumber(dataString: string, withTime?: boolean): number {\n try {\n if (withTime) {\n const [date, time] = dataString.split('T');\n const [ano, mes, dia] = date.split('-');\n const [hora, minuto] = time.split(':');\n return +(`${ano}${mes}${dia}${hora}${minuto}`);\n } else {\n const [ano, mes, dia] = dataString.split('-');\n return +(`${ano}${mes}${dia}`);\n }\n } catch (error) {}\n return 0;\n }\n\n convertDataToNumber(dataString: string): number {\n try {\n const [dia, mes, ano] = dataString.split('/');\n return +(`${ano}${mes}${dia}`);\n } catch (error) {}\n return 0;\n }\n\n searchIn(item: TCDataFilters, event?: any){\n\n console.log('event', event);\n // 2025-12-09\n\n this.start_filter_fc = undefined;\n\n let isValid = true;\n\n if( event === 'sync' && isValid ){\n isValid = false;\n this.onChange.emit(true);\n }\n\n if( typeof event === 'boolean' && isValid ){\n isValid = false;\n item.searchText = event;\n this.onChange.emit(true);\n }\n\n if( (event === undefined || event === null || event === '') && isValid ){\n isValid = false;\n item.searchText = '';\n this.onChange.emit(true);\n }\n\n if( event?.datepickertime && isValid ){\n isValid = false;\n item.searchText = event?.innerValue; \n this.onChange.emit(true);\n }\n\n if(event?.target?.value && isValid ){\n isValid = false;\n item.searchText = this.normalize(event.target.value);\n this.onChange.emit(true);\n }\n\n if(event?.target?.value === '' && isValid ){\n isValid = false;\n item.searchText = '';\n this.onChange.emit(true);\n }\n\n if( item.type === 'date-local' && item.value ){\n isValid = false;\n item.searchText = `${this.convertDataToNumber( item.value )}`;\n this.onChange.emit(true);\n }\n\n if( item.type === TCFiltersType.browserdate && item.value ){\n isValid = false;\n console.log('item', item);\n const onlyNumbers = (item.value).replace(/\\D/g, '');\n if( (onlyNumbers && (onlyNumbers).length === 8 ) ){\n item.searchText = `${this.convertDateNativeToNumber( item.value )}`;\n this.onChange.emit(true);\n }\n }\n\n if( item.type === TCFiltersType.browserdatetime && item.value ){\n isValid = false;\n console.log('item', item);\n const onlyNumbers = (item.value).replace(/\\D/g, '');\n if( (onlyNumbers && (onlyNumbers).length === 12 ) ){\n item.searchText = `${this.convertDateNativeToNumber( item.value, true )}`;\n this.onChange.emit(true);\n }\n }\n\n if( event && event.result && ( event.result.start || event.result.stop ) ){\n isValid = false;\n this.onChange.emit(true);\n }\n\n \n \n if( this.useOnChangeSubmit || this.first_active_filter ){ \n this.start_filter_fc = this.start_filter();\n this.first_active_filter = false;\n }\n\n if( !this.useButtonSubmit ){\n this.emitSubmitFilters();\n } \n }\n\n getDateUTC(dt: any){\n const ano = dt.getFullYear();\n const mes = dt.getMonth();\n const dia = dt.getDate();\n const horas = dt.getHours();\n const minutos = dt.getMinutes();\n const segundos = dt.getSeconds();\n return new Date(Date.UTC(ano, mes, dia, horas, minutos, segundos));\n }\n\n \n start_filter(){\n for( let i = 0; i < (this.data).length; i++ ){\n\n this.setDataIndex(i, true);\n\n for( let j = 0; j < (this.filters).length; j++ ){ \n const filter_item = this.filters[j]; \n\n if( filter_item.searchText && typeof (filter_item.searchText) === 'string' && filter_item.searchText !== '' && filter_item.type !== TCFiltersType.number && filter_item.type !== TCFiltersType.date ){\n \n filter_item.searchText = this.normalize(filter_item.searchText); \n let item_value = this.collectionFind(this.data[i], filter_item.searchIn);\n if( item_value ){\n item_value = this.normalize(item_value); \n\n if( typeof filter_item.notIn === 'boolean' && filter_item.notIn ){\n if( ( item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n }else{\n\n if( filter_item.type === TCFiltersType.select ){\n // Exclusivo para select\n if( filter_item.data && (filter_item.data).length > 0 ){\n\n // uso do select com o notValues: string[]\n let current_option = [];\n for( let k = 0; k < (filter_item.data).length; k++ ){\n const k_item = filter_item.data[k];\n if( `${k_item?.value}` === `${filter_item.searchText}` ){\n current_option = k_item?.notValues!;\n break;\n }\n }\n if( current_option && (current_option).length > 0 ){\n for( let v = 0; v < (current_option).length; v++ ){\n const v_item = current_option[v]; \n if( ( item_value === v_item ) ){\n this.setDataIndex(i, false);\n }\n }\n }else{\n\n // uso normal do select\n if( !( item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n } \n\n } \n\n \n }else{\n if( !( item_value.includes(filter_item.searchText) || item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n }\n }\n\n }else{\n this.setDataIndex(i, false);\n }\n } \n \n\n if( filter_item.searchText && filter_item.searchText instanceof Date && !isNaN( filter_item.searchText.valueOf()) && filter_item.type === TCFiltersType.datetime ){\n \n let item_value: any = this.collectionFind(this.data[i], filter_item.searchIn);\n\n try { item_value = new Date(item_value); } catch (error) {}\n if( item_value && item_value instanceof Date && !isNaN( item_value.valueOf()) ){\n let is_accept = false;\n\n const dt_target = ( (filter_item.searchText).getTime() ).toString().substring(0, 10); /* + (3 * 60 * 60 * 1000); */\n const dt_current = ( (item_value).getTime() ).toString().substring(0, 10);\n if( filter_item.condition ){\n switch (filter_item.condition) {\n case TCCondition.gt: is_accept = ( Number(dt_target) > Number(dt_current) ); break;\n case TCCondition.lt: is_accept = ( Number(dt_target) < Number(dt_current) ); break;\n case TCCondition.gte: is_accept = ( Number(dt_target) <= Number(dt_current) ); break;\n case TCCondition.lte: is_accept = ( Number(dt_target) >= Number(dt_current) ); break;\n case TCCondition.equal: is_accept = ( Number(dt_target) === Number(dt_current) ); break;\n case TCCondition.notEqual: is_accept = ( Number(dt_target) != Number(dt_current) ); break;\n default: is_accept = ( Number(dt_target) == Number(dt_current) );\n }\n }else{\n is_accept = ( Number(filter_item.searchText) === Number(item_value) );\n }\n if( !is_accept ){\n this.setDataIndex(i, false);\n }\n }\n }\n\n \n\n if( filter_item.searchText && typeof Number(filter_item.searchText) === 'number' && ( filter_item.type === TCFiltersType.number || filter_item.type === TCFiltersType.date ) ){\n \n filter_item.searchText = Number(filter_item.searchText);\n let item_value = this.collectionFind(this.data[i], filter_item.searchIn);\n\n if( typeof Number(item_value) === 'number' ){ \n item_value = Number(item_value); \n let is_accept = false;\n if( filter_item.condition ){\n\n switch (filter_item.condition) {\n case TCCondition.gt: is_accept = ( Number(filter_item.searchText) > Number(item_value) ); break;\n case TCCondition.lt: is_accept = ( Number(filter_item.searchText) < Number(item_value) ); break;\n case TCCondition.gte: is_accept = ( Number(filter_item.searchText) <= Number(item_value) ); break;\n case TCCondition.lte: is_accept = ( Number(filter_item.searchText) >= Number(item_value) ); break;\n case TCCondition.equal: is_accept = ( Number(filter_item.searchText) === Number(item_value) ); break; \n case TCCondition.notEqual: is_accept = ( Number(filter_item.searchText) != Number(item_value) ); break;\n default: is_accept = ( Number(filter_item.searchText) == Number(item_value) );\n }\n }else{\n is_accept = ( Number(filter_item.searchText) === Number(item_value) );\n }\n if( !is_accept ){\n this.setDataIndex(i, false);\n }\n }\n }\n \n \n if( typeof (filter_item.searchText) === 'boolean' && filter_item.searchText === true ){\n\n let item_value: any = this.collectionFind(this.data[i], filter_item.searchIn);\n \n if( item_value && (item_value).length > 0 ){ \n let qtd_is_true = 0; \n for( let i = 0; i < ((item_value).length); i++ ){\n const item = item_value[i];\n if( item === filter_item.searchText ){\n qtd_is_true++;\n }\n }\n if( qtd_is_true === 0 ){\n this.setDataIndex(i, false);\n }\n }else{\n if( !( item_value === filter_item.searchText ) ){\n this.setDataIndex(i, false);\n }\n } \n }\n \n }\n\n } // end for\n \n this.toResult();\n \n }\n\n private toResult(){\n\n\n const search_data = [];\n\n let is_filter = false;\n for( let i = 0; i < (this.filters).length; i++ ){\n if( this.filters[i].searchText && this.filters[i].searchText !== '' ){\n is_filter = true; break;\n }\n }\n\n if( is_filter ){\n for( let i = 0; i < (this.data).length; i++ ){\n if( this.data && this.data[i] && this.data[i]['tc_filter_accept'] ){\n (search_data).push(this.data[i]);\n }\n }\n\n this.result_accept(search_data);\n this.onFilter.emit({...this.filters});\n return;\n }\n\n this.result_accept(this.data);\n this.onFilter.emit({...this.filters});\n }\n\n setDataIndex(index: number, value: boolean ){\n if( this.data && this.data[index] ){\n this.data[index]['tc_filter_accept'] = value;\n }\n }\n\n result_accept(data: any){\n if( !this.useFilterAccept && data && (data).length > 0 ){\n for( let i = 0; i < (data).length; i++ ){\n delete data[i]['tc_filter_accept'];\n }\n }\n this.result.emit(data);\n }\n\n}\n","<div *ngIf=\"show_filters\" class=\"area-filter {{layout}}\" [class.tc-rev-filters]=\"layout === 'modern'\" [class.tcloud-ui-filters]=\"layout === 'classic'\" [class.no-border]=\"!border\">\n <ng-container *ngFor=\"let item of filters; let i = index\">\n\n <ng-container *ngIf=\"!item.type || (item.type && item.type !== 'boolean')\">\n\n <ng-container *ngIf=\"item.type === 'date'\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }} \n </div>\n <div class=\"box-type-{{item.type}}\">\n <input\n tcloudForm\n #_input\n type=\"date\"\n name=\"input_{{i+1}}\"\n class=\"tc-form-control\"\n [(ngModel)]=\"item.value\"\n (ngModelChange)=\"searchIn(item, _input)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'datetime'\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }}\n </div>\n <div class=\"box-type-{{item.type}}\">\n <input\n tcloudForm\n #_input\n type=\"datetime-local\"\n name=\"input_{{i+1}}\"\n class=\"tc-form-control\"\n [(ngModel)]=\"item.value\"\n (ngModelChange)=\"searchIn(item, _input)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'date-local'\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }}\n </div>\n <div class=\"box-type-{{item.type}}\">\n <tcloud-ui-datepicker\n #_input\n name=\"input_{{i+1}}\"\n [modeInput]=\"true\"\n [(ngModel)]=\"item.value\"\n (ngModelChange)=\"searchIn(item, _input)\">\n </tcloud-ui-datepicker>\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'datetime-local'\">\n\n <ng-container *ngIf=\"(item.id === 'start' || item.id === 'stop') && useRangeDate\">\n <!-- PERIOD RANGE DATE -->\n <ng-container *ngIf=\"item.id === 'start'\">\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+start_stop_width+''+start_stop_und : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(_range_date && _range_date.result && _range_date.result.start && _range_date.result.stop )\" class=\"fas fa-filter icon-filter\"></i> </div>\n <tcloud-ui-range-date\n #_range_date ngModel name=\"input_{{i+1}}\"\n [defaultValuePeriodStartStop]=\"item.defaultValuePeriodStartStop\"\n [descriptionStart]=\"descriptionStart\"\n [descriptionStop]=\"descriptionStop\"\n required\n (onChange)=\"searchInRange(_range_date); searchIn(item, _range_date)\">\n </tcloud-ui-range-date>\n </div>\n </ng-container>\n <input *ngIf=\"item.id === 'start'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"start_value\">\n <input *ngIf=\"item.id === 'stop'\" #_input name=\"input_{{i+1}}\" type=\"hidden\" [(ngModel)]=\"stop_value\">\n </ng-container>\n\n <ng-container *ngIf=\"!item.id || !useRangeDate\">\n\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"(item.value !== undefined && item.value !== null && item.value !== '')\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\n <div class=\"box-type-{{item.type}}\">\n <tcloud-ui-datepicker-time\n #_input\n [(ngModel)]=\"item.value\"\n name=\"input_{{i+1}}\"\n [useOptionsDateTime]=\"(item && item.useOptionsDateTime) ? true : false\"\n (eventChange)=\"searchIn(item, _input)\" >\n </tcloud-ui-datepicker-time>\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"!(item.value !== undefined && item.value !== null && item.value !== '')\" (click)=\"searchIn(item, null); item.searchText = undefined; item.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"item.type !== 'select' && item.type !== 'datetime-local' && item.type !== 'date-local' && item.type !== 'datetime' && item.type !== 'date'\">\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\n <div class=\"box-type-{{item.type}}\">\n <input\n tcloudForm\n #_input\n [(ngModel)]=\"item.value\"\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\"\n type=\"{{ (item.type === 'number') ? 'number' : (item.type) ? item.type : 'text' }}\"\n class=\"tc-form-control\"\n (keyup)=\"searchIn(item, $event)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"_input.value === ''\" (click)=\"searchIn(item, null); _input.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.type === 'select' && item.data && (item.data).length > 0\" >\n <div class=\"box-filter-input type-{{item.type}} box-type-{{item.type}}\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n\n <div class=\"m-description tc-title-ellipsis box-type-{{item.type}}\" title=\"{{ item.description }}\">\n <i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i> \n {{ item.description }}\n </div>\n <div class=\"box-type-{{item.type}}\">\n <select\n tcloudForm\n #_input\n [(ngModel)]=\"item.value\"\n name=\"input_{{i+1}}\"\n class=\"tc-form-control\"\n (change)=\"searchIn(item, $event)\">\n <ng-container *ngIf=\"typeof item?.selectFirstOptionHidden === 'undefined' || !item?.selectFirstOptionHidden\">\n <option [ngValue]=\"\"></option>\n </ng-container> \n <ng-container *ngFor=\"let v of item.data\">\n <option [value]=\"v.value\">{{ v.description }}</option>\n </ng-container>\n </select>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n\n\n <ng-container *ngIf=\"item.type && item.type === 'boolean'\">\n\n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div class=\"m-description tc-title-ellipsis\" title=\"{{ item.description }}\" title=\"{{ item.description }}\"><i [class.to-active]=\"_input.checked === true\" class=\"fas fa-filter icon-filter\"></i> {{ item.description }}</div>\n <div class=\"area-input-checkbox\">\n <div class=\"tc-form-control\" tcloudForm>\n <label>\n <span>{{ item.placeholder }}</span>\n <input\n tcloudForm\n #_input\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\"\n type=\"checkbox\"\n (change)=\"searchIn(item, _input.checked)\">\n </label>\n </div>\n </div>\n </div>\n\n </ng-container>\n\n\n </ng-container>\n\n <div class=\"text-right mb-1 mr-1\" *ngIf=\"useButtonSubmit\">\n <button type=\"button\" class=\"tc-btn {{ btnSubmitClass }}\" (click)=\"toSubmit()\" >{{ submitText }}</button>\n </div>\n\n</div>\n\n<!-- <pre>{{ inputs | json }}</pre> -->\n<!-- <pre> {{ data | json }} </pre> -->\n\n<!-- <p>FILTERS</p><pre> {{ filters | json }}</pre> -->\n\n<!--\n <pre>start_stop: {{ start_stop }}</pre>\n <pre>start_stop_width: {{ start_stop_width }}</pre>\n <pre>start_stop_und: {{ start_stop_und }}</pre>\n-->","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { StatusInfoPipe } from '../_pipes';\n\n@Injectable({\n providedIn: 'root', \n})\nexport class TCloudUiSearchInObjectService {\n\n constructor(\n private datepipe: DatePipe,\n private statusinfo: StatusInfoPipe\n ) { }\n\n private isADate(d: any){\n if( d && d instanceof Date && !isNaN( d.valueOf()) ){\n if (Object.prototype.toString.call(d) === \"[object Date]\") {;\n if (isNaN(d.getTime())) {\n return false;\n } else {\n return true;\n }\n }\n }\n return false;\n }\n\n private normalize(text: any): string{\n const v = ( ( (`${text}`).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n return v;\n }\n\n /**\n * meet - Procura em object - filtro utilizado para busca em tabelas\n * @param valor texto a ser procurado\n * @param emObject object alvo de onde procurar\n * @param camposDebusca (Opcional) informa em quais são as keys que deverá procurar \n */\n meet(valor: string, emObject: any, camposDebusca?: any): any{\n if (valor != \"\"){\n\n if( emObject.length < 1 ){\n return emObject;\n }\n if( camposDebusca === undefined || camposDebusca === null ){\n camposDebusca = [];\n for (const key in emObject[0]) {\n camposDebusca.push( key );\n }\n }\n\n if( camposDebusca.length < 1 ){\n return emObject;\n }\n \n let isObject = false;\n\n valor = this.normalize(valor);\n var result=[]; \n for (const key in emObject) {\n var oObject = emObject[key];\n if (oObject && (typeof oObject === 'object') ){\n isObject = true;\n for( const objectvalue of camposDebusca ){\n const dt = new Date(oObject[objectvalue])\n if( this.isADate(dt) && typeof ((dt).getMonth) === 'function' ){\n const data1 = this.datepipe.transform(dt, 'dd/MM/yyyy hh:mm');\n const data2 = this.datepipe.transform(dt, 'medium');\n const strToTest = this.normalize(data1+\" \"+data2+\" \"+oObject[objectvalue]);\n if( (strToTest.indexOf(valor)>=0) && (result).indexOf(oObject) == -1 ){\n result.push(oObject); break;\n }\n } else {\n const strToTest = this.normalize(this.statusinfo.transform(oObject[objectvalue], 'ALL')+\"\"); \n if( (strToTest.indexOf(valor)>=0) && (result).indexOf(oObject) == -1 ){\n result.push(oObject); break;\n }\n }\n } \n }\n }\n\n if( emObject && typeof emObject === 'object' && Array.isArray(emObject) && !isObject ){\n // is array \n const v = this.normalize(`${valor}`);\n for( let i = 0; i < (emObject).length; i++ ){\n const item = this.normalize(`${emObject[i]}`);\n if( item.includes(v) || item === v ){\n result.push(emObject[i]);\n }\n }\n }\n\n\n return result;\n }\n return emObject;\n }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TCloudUiSearchInObjectService } from '../../_services/search-in-object.service';\nimport { StatusInfoPipe } from '../../_pipes/statusinfo';\n\n@Component({\n selector: 'tcloud-ui-input-search',\n templateUrl: './tcloud-ui-input-search.component.html',\n styleUrls: ['./tcloud-ui-input-search.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule],\n providers: [StatusInfoPipe]\n})\nexport class TCloudUiInputSearchComponent {\n\n /**\n * tcloud-ui-input-search - Procura pelo valor informado no objeto indicado\n * @param placeholder string - placeholder no input\n * @param mirror boolean - Exibir os valores espelhados ou somente os valores encontrados\n * @param base_object object - Objeto onde ser procurado \n * @param found - Emite o valor encontrado\n */\n\n @Input() placeholder: string = 'Procurar...';\n\n @Input() mirror: boolean = true;\n\n search_text: string = '';\n\n private _base_object: any;\n @Input() set base_object(base_object: any){\n if( base_object ){\n this._base_object = base_object;\n\n if( this.mirror ){\n this.result_object = base_object;\n this.toFound();\n }\n } \n }\n get base_object(){ return this._base_object; }\n\n result_object: any | undefined;\n\n @Output() found = new EventEmitter<any>();\n\n constructor(\n private searchInObjectService: TCloudUiSearchInObjectService\n ) { }\n\n buscar(value: string){\n const result = this.searchInObjectService.meet(`${value}`, this.base_object);\n this.result_object = JSON.parse(JSON.stringify(result));\n this.toFound();\n }\n\n clean(){\n if( this.mirror ){\n this.buscar('');\n }else{\n this.result_object = []; \n this.toFound();\n }\n this.search_text = '';\n }\n\n toFound(){\n this.found.emit( this.result_object );\n }\n\n}\n","<table class=\"tcloud-ui-input-search tc-group-input-table\" cellspacing=\"0\" cellpadding=\"0\">\n <tr>\n <td><input class=\"tc-form-control box-ui-input-group\" [(ngModel)]=\"search_text\" type=\"text\" (keyup)=\"buscar(search_text)\" placeholder=\"{{ placeholder }}\" ></td>\n <td> \n <ng-container *ngIf=\"search_text === ''\"> \n <button type=\"button\" (click)=\"buscar(search_text)\"><i class=\"fas fa-search\"></i></button>\n </ng-container> \n\n <ng-container *ngIf=\"search_text !== ''\"> \n <button type=\"button\" (click)=\"clean()\"><i class=\"fas fa-times\"></i></button>\n </ng-container>\n </td>\n </tr>\n</table>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nclass Step {\n\n constructor(){\n this.status = '';\n this.index = 0;\n this.class = '';\n this.second_class = '';\n }\n\n status: string;\n index: number;\n class: string;\n second_class: string;\n}\n\n@Component({\n selector: 'tcloud-ui-line-step-circle',\n templateUrl: './tcloud-ui-line-step-circle.component.html',\n styleUrls: ['./tcloud-ui-line-step-circle.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLineStepCircleComponent implements OnInit {\n\n @Input() step: number = 7;\n \n private _active: number = 0;\n @Input() set active( active: number ){\n if( active && active !== this._active ){\n this._active = active;\n this.build_steps();\n } \n }\n get active(): number{ return this._active; }\n\n private _inactives = [] as number[] | undefined;\n @Input() set inactives( inactives: number[] | undefined){\n if( inactives && inactives !== this._inactives ){\n this._inactives = inactives;\n this.build_steps();\n }\n }\n get inactives(): number[] | undefined { return this._inactives; }\n\n\n private _complete: boolean = false;\n @Input() set complete( complete: boolean ){\n if( complete && complete !== this._complete ){\n this._complete = complete;\n this.build_steps();\n } \n }\n get complete(): boolean{ return this._complete; }\n\n trilha = new Array<Step>();\n\n constructor() { }\n\n ngOnInit(): void {\n setTimeout(() => { this.build_steps(); }); \n }\n\n build_steps(){\n let trilha = new Array<Step>();\n if( this.step && this.step > 0 ){\n for( let i = 0; i < this.step; i++ ){\n (trilha).push({\n status: '',\n index: i+1,\n class: 'step-default',\n second_class: '',\n })\n }\n }\n\n if( this.active > this.step ){\n this.active = this.step;\n this.complete = true;\n }\n\n if( this.active && this.active > 0 ){\n for( let i = 0; i < this.active; i++ ){ \n trilha[i].class = \"step-progress\"; \n if( (i+1) === this.active && !this.complete ){\n trilha[i].class = \"step-active\";\n }\n }\n }\n \n if( this.inactives && (this.inactives).length > 0 ){\n for( let i = 0; i < (this.inactives).length; i++ ){\n const icon = this.inactives[i];\n if( icon && icon > 0 ){\n trilha[(icon-1)].second_class = \"step-inactive\"; \n } \n }\n }\n\n this.trilha = trilha;\n }\n\n}\n","<table class=\"tcloud-ui-line-step-circle table-trilha\" cellspacing=\"0\" cellpadding=\"0\">\n <tr>\n <ng-container *ngFor=\"let fase of trilha; let i = index\" >\n <td class=\"area-circle\">\n <!-- <i class=\"fas fa-circle icon-{{ fase.class }} {{ fase.second_class }} \"></i> -->\n\n <div class=\"tc-circle icon-{{ fase.class }} {{ fase.second_class }}\"></div>\n \n </td>\n <td class=\"area-line\" *ngIf=\"(i+1) < (trilha).length\">\n <div class=\"step-line {{ fase.class }}\"></div>\n </td>\n </ng-container>\n </tr>\n</table>","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-linha-logo',\n templateUrl: './tcloud-ui-linha-logo.component.html',\n styleUrls: ['./tcloud-ui-linha-logo.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLinhaLogoComponent implements OnInit {\n\n @Input() url: any = `h`+`t`+`t`+`p`+`s`+`:`+`/`+`/`+`ateleia`+`-`+`email`+`.s3`+`-`+`sa`+`-`+`east`+`-`+`1`+`.`+`amazonaws`+`.`+`com`+`/`; \n @Input() product: string = '';\n\n logo_name: string = '';\n product_name: string = '';\n alt_product_name: string = '';\n font_size: string = '';\n\n constructor() { }\n\n ngOnInit(): void {\n\n this.logo_name = this.getLogoName();\n this.product_name = this.getProductName();\n \n this.alt_product_name = (this.product_name).toUpperCase();\n\n this.font_size = this.getWidthFontSize();\n }\n\n getProductName(){\n if( this.product !== '' ){\n let name = this.product;\n name = (name).replace('_',' ');\n name = (name).toLowerCase();\n return name;\n }\n return '';\n }\n\n getLogoName(){\n if( this.product !== '' ){\n let name = this.product;\n name = (name).replace('_','-');\n name = (name).toLowerCase();\n return 'logo-linha-'+name;\n }\n return '';\n }\n\n getWidthFontSize(){\n let size = 28;\n let new_size = size;\n const count = (this.product_name).length; \n\n if( count > 8 ){\n new_size = 28;\n }\n\n if( count > 12 ){\n const p = (size * (5+(count*2)) ) / 100;\n new_size = (size - p);\n }\n\n if( count > 15 ){\n const p = (size * (10+(count*2)) ) / 100;\n new_size = (size - p);\n }\n\n\n\n return `${new_size}px`;\n }\n\n}\n","<!-- <div class=\"logo-product\" *ngIf=\"product !== ''\">\n <img class=\"img-logo\" src=\"/assets/img/logo-totvs.svg\" alt=\"{{ alt_product_name }}\">\n <p class=\"text-small\">Linha</p>\n <p class=\"text-product\" [style]=\"'font-size:'+font_size+';'\" >{{ product_name }}</p>\n</div> -->\n\n<div class=\"tcloud-ui-linha-logo logo-product\" *ngIf=\"product !== ''\">\n <img class=\"img-logo\" [attr.data-name-image]=\"logo_name\" [attr.src]=\"url+logo_name+'.svg'\" alt=\"{{ alt_product_name }}\">\n</div>","import { IConfirm } from './../tcloud-ui-modal';\nimport { Injectable, signal } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class TcloudModalService {\n\n private loading: boolean | undefined;\n\n private param_mode: string = '';\n private param_confirm: IConfirm = {} as IConfirm;\n private sticky: boolean = false;\n\n private _stateClose = new Subject<boolean>();\n public stateClose$ = this._stateClose.asObservable();\n\n private _stateConfirm = new Subject<IConfirm>();\n public stateConfirm$ = this._stateConfirm.asObservable();\n\n private _stateRespConfirm = new Subject<boolean>();\n public stateRespConfirm$ = this._stateRespConfirm.asObservable();\n\n private _stateLoading = new Subject<boolean>();\n public stateLoading$ = this._stateLoading.asObservable();\n\n private _stateMode = new Subject<string>();\n public stateMode$ = this._stateMode.asObservable();\n\n private _stateSticky = new Subject<boolean>();\n public stateSticky$ = this._stateSticky.asObservable();\n\n\n toModal(action: 'open'|'close'): void{\n if(action === 'close'){\n this.fixed_body('off');\n }\n this._stateClose.next( (action === 'open') );\n }\n\n toRespConfirm(resp: boolean){ \n this._stateRespConfirm.next(resp);\n }\n\n getParamConfirm(): IConfirm{\n return this.param_confirm;\n }\n\n toConfirm(confirm: IConfirm){\n this.param_confirm = confirm;\n this._stateConfirm.next(confirm);\n }\n\n toMode(mode: string){\n this.param_mode = mode;\n this._stateMode.next(mode);\n }\n\n setSticky(sticky: boolean){\n this.sticky = sticky\n this._stateSticky.next(sticky);\n }\n getSticky(){\n return this.sticky;\n }\n\n getLoading(){\n return this.loading;\n }\n\n setLoading(loading: boolean){\n this.loading = loading;\n this._stateLoading.next(loading);\n }\n\n private _is_footer_signal = signal<boolean>(undefined);\n readonly is_footer_signal:any=this._is_footer_signal.asReadonly();\n\n set_is_footer_signal(v:boolean){\n this._is_footer_signal.set(v);\n }\n\n fixed_body(fixed: 'on'|'off'){ \n let body = <any> document.getElementsByTagName(\"BODY\")[0];\n if( body && body.style ){\n if( fixed === 'on' ){\n body.classList.add('tcloud-ui-modal-is-open');\n }\n if( fixed === 'off' ){\n body.classList.remove('tcloud-ui-modal-is-open');\n }\n }\n }\n\n}","import { Subscription } from 'rxjs';\nimport { Component, OnInit, Input, EventEmitter, Output, OnDestroy, Optional, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TcloudModalService } from './services/tcloud-modal.service';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { IConfirm } from './tcloud-ui-modal';\nimport { LayoutServiceInterface } from '../../_interfaces/layout.service.interface';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n@Component({\n selector: 'tcloud-ui-modal',\n templateUrl: './tcloud-ui-modal.component.html',\n styleUrls: ['./tcloud-ui-modal.component.scss'],\n providers: [\n TcloudModalService,\n TCloudUiLayoutService\n ],\n animations: [\n trigger('fade', [\n transition('void => *', [\n style({ opacity: 0, transform: '{{enterTransform}}' }),\n animate('0.3s ease-out', style({ opacity: 1, transform: 'translate(0, 0)' }))\n ], { params: { enterTransform: 'translateY(-38%)' } }),\n transition('* => void', [\n animate('0.3s ease-out', style({ opacity: 0, transform: '{{leaveTransform}}' }))\n ], { params: { leaveTransform: 'translateY(-38%)' } })\n ])\n ],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiModalComponent implements OnInit, OnDestroy {\n \n\n /**\n * tcloud-ui-modal - Cria e exibe um modal\n * \n * toAction - (toAction) - Resultado do evento - 'confirmed'|'cancel'|'close'\n * toConfirm - (toConfirm) - Indica que a ação foi confirmada - resultado true\n * toCancel - (toCancel() - Indica que a ação foi cancelada - resultado false\n */\n\n param_confirm: IConfirm = {} as IConfirm;\n /* BEGIN - Parametros para modo confirmacao */\n private _confirm: boolean = false;\n private _confirmText: string = 'Confirmo';\n\n /**\n * confirm boolean - Indica se será um modal do tipo confirmação - default false\n */\n @Input() set confirm(v: boolean){\n this._confirm = v;\n this.param_confirm.confirm = this._confirm;\n this.param_confirm.confirmText = this._confirmText;\n }\n\n /**\n * confirmText string - Texto que deverá ser digitado - defualt Confirmo\n */\n @Input() set confirmText(v: string){\n this._confirmText = v;\n this.param_confirm.confirmText = this._confirmText;\n this.param_confirm.confirm = this._confirm; \n }\n\n /* END --- Parametros para modo confirmacao */\n\n subscription = new Subscription();\n\n /**\n * autoClose boolean - Indica se deverá ser fechado quando confirmar uma ação - default true\n */\n @Input() autoClose: boolean = true;\n\n /**\n * title - string - Título a ser exibido no topo do modal\n */\n @Input() title: any | undefined;\n\n /**\n * maxWidth - number - Largura máxima do modal - default 500px\n */\n @Input() maxWidth: number = 500;\n\n @Input() position: 'top'|'right'|'left'|'bottom' = 'top'; \n\n get animationParams() {\n if (this.position === 'left') {\n return { value: this.position, params: { enterTransform: 'translateX(-30%)', leaveTransform: 'translateX(-30%)' } };\n }\n\n if (this.position === 'right') {\n return { value: this.position, params: { enterTransform: 'translateX(30%)', leaveTransform: 'translateX(30%)' } };\n }\n\n if (this.position === 'bottom') {\n return { value: this.position, params: { enterTransform: 'translateY(30%)', leaveTransform: 'translateY(30%)' } };\n }\n\n return { value: this.position, params: { enterTransform: 'translateY(-38%)', leaveTransform: 'translateY(-38%)' } };\n }\n\n\n private _sticky: boolean = false;\n @Input() set sticky(v: boolean){\n this._sticky = v;\n this.tcloudModalService.setSticky(this._sticky);\n }\n get sticky(): boolean {\n return this._sticky;\n }\n\n /**\n * window - string - nome referente ao tamanho do modal - não utilizar maxWidth se for utilizar window - default 500 (medium)\n */\n @Input() set window( size: 'small' | 'medium' | 'large' | 'big' | 'full' ){\n switch (size) {\n case 'small': this.maxWidth = 300; break;\n case 'medium': this.maxWidth = 500; break;\n case 'large': this.maxWidth = 900; break;\n case 'big': this.maxWidth = 1100; break;\n case 'full': this.maxWidth = 1400; break;\n }\n }\n\n \n mode: string = '';\n control_open: boolean = false;\n private _open: boolean = false;\n /**\n * open - boolean - Variável de controle para exibição do modal - obrigatório\n */\n @Input() set open(open: boolean){\n this.control_open = open;\n this.checkIsOpen();\n\n this._open = open;\n this.tcloudModalService.fixed_body((open) ? 'on' : 'off');\n }\n get open(): boolean { return this._open; }\n\n private _loading: boolean = false;\n /**\n * loading - boolean - Coloca o modal em modo de carregamento - default false\n */\n @Input() set loading(loading: boolean){ \n this._loading = loading;\n this.tcloudModalService.setLoading(loading);\n }\n get loading(): boolean { return this._loading; }\n \n @Output() openChange = new EventEmitter<boolean>();\n\n @Output() toConfirm = new EventEmitter<boolean>();\n @Output() toCancel = new EventEmitter<boolean>();\n @Output() toAction = new EventEmitter<'confirmed'|'cancel'|'close'>();\n\n constructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private tcloudModalService: TcloudModalService\n ) { \n }\n\n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n\n ngOnInit(): void {\n\n this.subscription.add(this.tcloudModalService.stateClose$.subscribe(\n (open: boolean)=>{\n if( open ){\n /* OPEN */\n }\n\n if( !open ){\n /* CLOSE */\n this.toClose();\n }\n })\n );\n\n this.subscription.add(\n this.tcloudModalService.stateRespConfirm$.subscribe(\n (resp: boolean)=>{\n if( resp ){\n /* CONFIRMADO */\n this.toConfirm.emit(resp);\n this.toClose('confirmed');\n\n }\n\n if( !resp ){\n /* CANCELADO */\n this.toCancel.emit(resp);\n this.toClose('cancel');\n }\n }\n )\n )\n\n this.subscription.add(\n this.tcloudModalService.stateMode$.subscribe(\n (resp: string)=>{\n this.mode = resp;\n }\n )\n )\n \n this.tcloudModalService.toConfirm( this.param_confirm );\n }\n\n toClose(action?: any | undefined){\n if( this.autoClose ){\n this.control_open = false;\n this.open = false;\n this.openChange.emit(false);\n }\n \n action = (action) ? action : 'close';\n this.toAction.emit(action);\n this.tcloudModalService.fixed_body('off');\n }\n\n checkIsOpen(){\n if( this.control_open ){\n this.tcloudModalService.fixed_body('on');\n }else{\n this.tcloudModalService.fixed_body('off');\n }\n }\n\n ngOnDestroy(){\n this.checkIsOpen();\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n\n}\n\n\n","<div class=\"tc-background-modal\" *ngIf=\"control_open\" >{{ checkIsOpen() }}</div>\n\n<div class=\"tcloud-ui-modal base-modal tcloud-ui-modal-layout-{{ layout }} tcloud-ui-modal-postition-{{ position }}\" [attr.data-layout]=\"layout\" *ngIf=\"open\">\n <div class=\"sub-modal\" [ngClass]=\"['position-' + position, sticky ? 'is-sticky' : '']\" [@fade]=\"animationParams\">\n <div class=\"tc-modal tc-modal-shadow\" [attr.style]=\"'max-width: ' + maxWidth + 'px;'\" [class.tcloud-ui-modal-sticky]=\"sticky\">\n <div class=\"area-top-actions tc-ui-modal-{{mode}}\">\n\n @if( layout === 'classic'){\n <button type=\"button\" class=\"tc-btn-action-close-ui-modal\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\n </button>\n }@else{\n <button type=\"button\" class=\"tc-rev-btn tc-rev-btn--sm tc-rev-btn--dark-filled tc-btn-x\" [class.no-use-header]=\"title\" (click)=\"toClose()\" [disabled]=\"loading\">\n <i *ngIf=\"!loading\" class=\"fas fa-times\"></i>\n <i *ngIf=\"loading\" class=\"fas fa-spinner fa-spin\"></i>\n </button>\n }\n\n </div>\n\n <h4 *ngIf=\"title\" [innerHTML]=\"title\"></h4>\n\n <ng-content></ng-content>\n\n </div>\n </div>\n</div>\n\n<!-- Ex: Modal -->\n<!-- \n <tcloud-ui-modal [(open)]=\"open\">\n\n <tcloud-ui-modal-header title=\"Título do Modal\" ></tcloud-ui-modal-header>\n\n <tcloud-ui-modal-body>\n Conteúdo do modal aqui\n </tcloud-ui-modal-body>\n\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\n\n </tcloud-ui-modal>\n\n <button type=\"button\" (click)=\"open = !open\">open modal {{ open }}</button>\n-->\n\n<!-- ****** -->\n<!-- ****** -->\n<!-- ****** -->\n<!-- ****** -->\n\n<!-- Ex: Confirm Modal -->\n<!-- \n <tcloud-ui-modal [(open)]=\"open_confirm\" [title]=\"'Atenção'\" [confirmText]=\"'Aceito'\" [confirm]=\"true\" (toAction)=\"$event\" >\n\n <tcloud-ui-modal-body>Deseja realmente executar esta ação?</tcloud-ui-modal-body>\n\n <tcloud-ui-modal-footer></tcloud-ui-modal-footer>\n\n </tcloud-ui-modal>\n\n <button type=\"button\" (click)=\"open_confirm = !open_confirm\">open_confirm modal {{ open_confirm }}</button>\n-->","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TcloudModalService } from '../../services/tcloud-modal.service';\n\n@Component({\n selector: 'tcloud-ui-modal-body',\n templateUrl: './tcloud-ui-modal-body.component.html',\n styleUrls: ['./tcloud-ui-modal-body.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiModalBodyComponent implements OnInit {\n\n sticky: boolean = false;\n\n constructor(\n private tcloudModalService: TcloudModalService\n ) { }\n\n get isFooter(){\n return this.tcloudModalService.is_footer_signal();\n }\n\n ngOnInit(): void {\n this.sticky = this.tcloudModalService.getSticky();\n this.tcloudModalService.stateSticky$.subscribe((v:boolean)=>{this.sticky=v;});\n }\n\n}\n","<div class=\"tcloud-ui-modal-body tc-modal-body\" [class.body-sticky]=\"sticky\" [class.body-with-footer]=\"isFooter\" >\n <ng-content></ng-content>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TcloudModalService } from '../../services/tcloud-modal.service';\n\n@Component({\n selector: 'tcloud-ui-modal-header',\n templateUrl: './tcloud-ui-modal-header.component.html',\n styleUrls: ['./tcloud-ui-modal-header.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiModalHeaderComponent implements OnInit {\n\n @Input() mode: 'colorless' | 'info' | 'success' | 'danger' | 'warning' = 'info';\n @Input() title: any | undefined;\n \n constructor(\n private _tcloudModalService: TcloudModalService\n ) { }\n\n ngOnInit(): void {\n this._tcloudModalService.toMode( this.mode );\n }\n\n}\n","<div class=\"tcloud-ui-modal-header tc-modal-header tc-mode-{{ mode }}\" >\n <h4 class=\"text-neutral-700\" *ngIf=\"title\" [innerHTML]=\"title\"></h4>\n <ng-content></ng-content>\n <hr>\n</div>\n","import { Directive, effect, ElementRef, input } from '@angular/core';\nimport { TCloudUiLayoutService } from '../../_services/tcloud-ui-layout.services';\n\n@Directive({\n selector: '[tcloudButton]',\n standalone: true\n})\nexport class TCloudUiButtonDirective {\npublic color = input<'primary' | 'light' | 'danger' | 'dark'>('primary');\npublic size = input<'lg' | 'md' | 'sm'>('sm');\npublic fullWidth = input<boolean>(false);\npublic tcloudButton = input<'filled' | 'outline' | 'link'>('filled');\n\nconstructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private _el: ElementRef<HTMLButtonElement>\n) {\n effect(() => {\n this.setClasses();\n });\n}\n\nprivate layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n}\n\n private setClasses(): void {\n const layout = this.layout();\n if( layout === 'classic' ){ return; }\n\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-btn')));\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-rev-btn--')));\n\n let tcloudButton = this.tcloudButton();\n\n if (!tcloudButton) {\n tcloudButton = 'filled';\n }\n\n if( layout === 'modern' ){\n this._el.nativeElement.classList.add('tc-rev-btn');\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-btn--full-width') : null;\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.color()}-${tcloudButton}`);\n }\n }\n}\n","import { Subscription } from 'rxjs';\nimport { TcloudModalService } from './../../services/tcloud-modal.service';\nimport { Component, OnInit, ViewChild, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { IConfirm } from '../../tcloud-ui-modal';\nimport { TCloudUiLayoutService } from '../../../../_services/tcloud-ui-layout.services';\nimport { TCloudUiButtonDirective } from '../../../../_directives/tcloud-button/tcloud-button.directive';\nimport { TCloudUiFormDirective } from '../../../../_directives/tcloud-form/tcloud-form.directive';\n\n@Component({\n selector: 'tcloud-ui-modal-footer',\n templateUrl: './tcloud-ui-modal-footer.component.html',\n styleUrls: ['./tcloud-ui-modal-footer.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule, TCloudUiButtonDirective, TCloudUiFormDirective]\n})\nexport class TCloudUiModalFooterComponent implements OnInit, OnDestroy {\n\n @Input() actions: boolean = true;\n\n @Input() btnCloseText: string = 'Fechar';\n @Input() btnCancelText: string = 'Cancelar';\n @Input() btnConfirmText: string = 'Confirmar';\n\n @ViewChild('_formulario') _formulario: NgForm | undefined; \n txt_value: string = '';\n\n param_confirm: IConfirm = {} as IConfirm;\n\n loading: boolean = false;\n\n subscription: Subscription |undefined;\n\n constructor(\n private _tCloudUiLayoutService: TCloudUiLayoutService,\n private tcloudModalService: TcloudModalService\n ) { }\n\n get layout(): string{\n return `${this._tCloudUiLayoutService?.getCurrentLayout()}`;\n }\n\n ngOnInit(): void {\n this.txt_value = '';\n this.param_confirm = this.tcloudModalService.getParamConfirm();\n\n this.toStateLoading();\n\n this.tcloudModalService.set_is_footer_signal(true);\n }\n\n toClose(){\n this.tcloudModalService.toModal('close');\n }\n\n toConfirm(valid: boolean | any){\n if( typeof valid === 'boolean' ){\n if( valid && (this.txt_value).toLowerCase() === (this.param_confirm.confirmText).toLowerCase() ){\n this.tcloudModalService.toRespConfirm(true);\n this.txt_value = ''; \n }\n }\n }\n\n toCancel(){\n this.tcloudModalService.toRespConfirm(false);\n }\n\n toStateLoading(){\n this.loading = <any> this.tcloudModalService.getLoading();\n this.subscription = this.tcloudModalService.stateLoading$.subscribe((loading: boolean) => { this.loading = loading; } )\n }\n\n\n ngOnDestroy(): void {\n this.tcloudModalService.fixed_body('off');\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-modal-footer tc-modal-footer\">\n\n <div class=\"input-confirm\" *ngIf=\"param_confirm && param_confirm.confirmText\">\n <p>Digite a palavra <strong>"{{ param_confirm.confirmText }}"</strong> para confirmar.</p>\n \n <form #_formulario=\"ngForm\" (ngSubmit)=\"toConfirm(_formulario.valid)\">\n <input \n tcloudForm\n [disabled]=\"loading\"\n placeholder=\"{{ param_confirm.confirmText }}\"\n name=\"txt_value\" \n [(ngModel)]=\"txt_value\" \n type=\"text\" \n class=\"tc-form-confirm tc-form-control\" \n required \n [class.different-text]=\"(txt_value).length >= (param_confirm.confirmText).length && (txt_value).toLowerCase() !== (param_confirm.confirmText).toLowerCase()\" >\n </form>\n\n </div>\n\n <hr>\n\n <div class=\"actions-footer {{ (loading) ? 'state-loading' : '' }}\">\n <ng-container *ngIf=\"actions\">\n <!-- {{ param_confirm | json }} -->\n <button [disabled]=\"loading\" *ngIf=\"param_confirm && !param_confirm.confirm\" type=\"button\" class=\"tc-btn margin-l-5\" tcloudButton=\"filled\" color=\"light\" (click)=\"toClose()\">{{ btnCloseText }}</button>\n\n <button [disabled]=\"loading\" *ngIf=\"param_confirm && param_confirm.confirm\" type=\"button\" class=\"tc-btn margin-l-5\" tcloudButton=\"filled\" color=\"light\" (click)=\"toCancel()\">{{ btnCancelText }}</button>\n <button [disabled]=\"(txt_value).toLowerCase() !== (param_confirm.confirmText).toLowerCase() || loading\" *ngIf=\"param_confirm && param_confirm.confirm\" type=\"button\" class=\"tc-btn tc-btn-primary margin-l-5\" tcloudButton=\"filled\" (click)=\"toConfirm(_formulario?.valid)\">{{ btnConfirmText }}</button>\n </ng-container>\n </div>\n</div>\n","import { Component, OnInit, Input, EventEmitter, Output, OnDestroy, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiMultiInputComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiMultiInputComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-multi-input',\n templateUrl: './tcloud-ui-multi-input.component.html',\n styleUrls: ['./tcloud-ui-multi-input.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule]\n})\nexport class TCloudUiMultiInputComponent implements OnInit, OnDestroy, Validator {\n\n input_value: any;\n\n @Input() tcList: any[] | undefined;\n\n @Input() placeholder: string = '';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() required: string | undefined;\n @Input() maxWidthLabel: string | undefined;\n @Input() showInput: boolean = false;\n\n values: any[] | undefined;\n count_actives: number = 0;\n\n use_validation_required: boolean = false;\n item_value: any | undefined;\n\n @Output() tcChange = new EventEmitter<any[]>();\n\n constructor() { }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.toChange();\n });\n }\n\n addItem(item: any): void{\n if( this.disabled ){ return; }\n if( !this.tcList ){\n this.tcList = [];\n }\n (this.tcList).push({value: item}); \n this.toChange(); \n this.input_value = '';\n }\n\n\n removeItem(item: any, index: number): void{\n if( this.disabled ){ return; }\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( item === row.value && i === index ){\n (this.tcList).splice(index,1);\n break;\n }\n }\n this.toChange();\n }\n }\n\n private toChange(): void{\n let count_actives = 0;\n let itens: any[] = [];\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n (itens).push(row);\n }\n }\n this.item_value = null;\n this.count_actives = count_actives;\n this.tcChange.emit(itens);\n this.onChangeCallback(this.tcList);\n }\n\n check_is_valid(): boolean{\n if( this.tcList ){\n return ((this.tcList).length > 0) ? true : false;\n }\n return false;\n }\n\n onChangeTouched(){ \n this.onTouchedCallback(); \n }\n\n\n\n\n\n\n\n @Output() onChange = new EventEmitter<any>();\n // @Output() ngModelChange = new EventEmitter<any>();\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n toSetDefault(value: any){\n this.tcList = value;\n }\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n ngOnDestroy(): void {\n \n }\n}\n","<div class=\"tcloud-ui-multi-input\">\n\n <table *ngIf=\"!showInput\">\n <tr>\n <td>\n <input\n class=\"tc-form-control\"\n (blur)=\"onChangeTouched()\"\n [(ngModel)]=\"item_value\"\n [class.tc-parent-validation]=\"use_validation_required\"\n type=\"text\"\n [(ngModel)]=\"input_value\"\n [disabled]=\"disabled || loading\"\n name=\"input_value\"\n [placeholder]=\"placeholder\">\n </td>\n\n <td>\n <button\n [disabled]=\"!item_value || disabled || loading\"\n title=\"Adicionar\"\n class=\"btn-plus-select\"\n (click)=\"addItem(input_value);onChangeTouched()\"\n type=\"button\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n\n <div class=\"box-itens-selected\" *ngIf=\"(tcList && tcList.length > 0)\">\n <ng-container *ngFor=\"let item of tcList; let i = index\">\n\n <div class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\n <div class=\"box-value\" [title]=\"item.value\" >\n {{ item.value }}\n </div>\n <div class=\"box-action\">\n <button\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item.value, i);onChangeTouched()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n\n</div>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiMultiSelectComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiMultiSelectComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-multi-select',\n templateUrl: './tcloud-ui-multi-select.component.html',\n styleUrls: ['./tcloud-ui-multi-select.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule]\n})\nexport class TCloudUiMultiSelectComponent implements OnInit, OnDestroy, Validator {\n\n \n\n @Input() tcList: any[] | undefined;\n @Input() placeholder: string = 'Selecione um item';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() required: string | undefined;\n\n @Input() maxWidthLabel: string | undefined;\n @Input() showDescriptionInValue: boolean = false;\n @Input() showInput: boolean = false;\n\n @Output() tcChange = new EventEmitter<any[]>();\n\n use_validation_required: boolean = false;\n values: any[] | undefined;\n count_actives: number = 0;\n item_value: any | undefined;\n\n constructor() {}\n\n ngOnInit(): void {\n setTimeout(() => { this.toChange(); });\n }\n\n addItem(item: any): void{\n if( this.disabled ){ return; }\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( item === row.value ){\n this.tcList[i].active = true;\n break;\n }\n }\n this.toChange();\n } \n }\n\n removeItem(item: any): void{\n if( this.disabled ){ return; }\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( item === row.value ){\n this.tcList[i].active = false;\n break;\n }\n }\n this.toChange();\n }\n }\n\n private toChange(): void{\n let count_actives = 0;\n let itens: any[] = [];\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const row = this.tcList[i];\n if( row.active ){\n count_actives++;\n (itens).push(row);\n }\n }\n }\n this.item_value = null;\n this.count_actives = count_actives;\n this.tcChange.emit(itens);\n this.onChangeCallback(this.tcList);\n }\n\n\n check_is_valid(): boolean{\n let active = 0;\n if( this.tcList ){\n for( let i = 0; i < (this.tcList).length; i++ ){\n const item = this.tcList[i];\n if( item && item.active && item.active === true){\n active++;\n break;\n }\n }\n }\n return (active > 0) ? true : false;\n }\n\n onChangeTouched(){ \n this.onTouchedCallback(); \n }\n\n\n\n\n\n\n\n @Output() onChange = new EventEmitter<any>();\n // @Output() ngModelChange = new EventEmitter<any>();\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n toSetDefault(value: any){\n this.tcList = value;\n }\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n ngOnDestroy(): void {\n \n }\n}\n","\n <div class=\"tcloud-ui-multi-select\">\n <table *ngIf=\"!showInput\">\n <tr *ngIf=\"tcList\">\n <td>\n <select\n class=\"tc-form-control\"\n [(ngModel)]=\"item_value\"\n [class.tc-parent-validation]=\"use_validation_required\"\n #_select\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n [title]=\"tcList.length === 0 ? 'Nenhum item disponível' : placeholder\">\n\n <option value=\"null\" disabled selected>{{ placeholder }}</option>\n\n <ng-container *ngFor=\"let item of tcList; let i = index\">\n <option [title]=\"item.description\" *ngIf=\"!item.active\" [value]=\"item.value\">{{ item.description }}</option>\n </ng-container>\n </select>\n </td>\n <td>\n <button\n [disabled]=\"!item_value || tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Adicionar\"\n class=\"btn-plus-select\"\n (click)=\"addItem(_select.value);onChangeTouched()\"\n type=\"button\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </td>\n </tr>\n </table>\n\n <div class=\"box-itens-selected\" *ngIf=\"count_actives > 0 && (tcList && tcList.length > 0)\">\n <ng-container *ngFor=\"let item of tcList\">\n\n <ng-container *ngIf=\"item.active\">\n <div class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\" >\n <div class=\"box-value\" [title]=\"item.value\" *ngIf=\"!showDescriptionInValue\">\n {{ item.value }}\n </div>\n <div class=\"box-value\" [title]=\"item.description\" *ngIf=\"showDescriptionInValue\">\n {{ item.description }}\n </div>\n <div class=\"box-action\">\n <button\n [disabled]=\"tcList === undefined || (tcList && tcList.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item.value);onChangeTouched()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-not-found',\n templateUrl: './tcloud-ui-not-found.component.html',\n styleUrls: ['./tcloud-ui-not-found.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiNotFoundComponent \n{\n\n @Input() message: string = 'Nenhum registro encontrado.';\n\n public styleIcon: any = {};\n\n ngOnInit(): void\n {\n }\n}\n\n","<div class=\"tcloud-ui-not-found tc-container-empty\">\n <div class=\"tc-message-empty-icon\">\n <i class=\"fas fa-exclamation-triangle\"></i>\n </div>\n <div *ngIf=\"message !== ''\" class=\"tc-message-empty\" [innerHTML]=\"message\" ></div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-number-step',\n templateUrl: './tcloud-ui-number-step.component.html',\n styleUrls: ['./tcloud-ui-number-step.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiNumberStepComponent\n{\n @Input({ required: true }) step: number;\n @Input() active: number;\n @Input() complete: boolean;\n @Input() useIconCheck: boolean; // Usado por enquanto para não querar o TCloud\n @Input() inactives: number[] = [];\n @Output() clickStep = new EventEmitter<number>();\n\n public isInactive(_stepNumber: number): boolean\n {\n const isInactive = this.inactives.find(x => x == _stepNumber);\n return isInactive ? true : false;\n }\n}\n","<ng-container *ngFor=\"let item of [].constructor(step); let i = index\">\n\n <!-- Item circle -->\n @let numberStep = i + 1;\n @let inactive = isInactive(numberStep);\n @let last = (numberStep === step);\n <div\n class=\"container-circle\"\n [class.active]=\"(numberStep <= active) && !inactive\"\n [class.completed]=\"complete\"\n [class.disable]=\"inactive\"\n (click)=\"clickStep.emit(numberStep)\">\n\n <!-- Number -->\n <span *ngIf=\"(!complete) && (!inactive) && (numberStep >= active)\">{{ numberStep }}</span>\n\n <!-- Icon check -->\n <i *ngIf=\"(complete) || (!inactive) && (numberStep < active)\" class=\"fas fa-check\"></i>\n\n <!-- Icon disabled -->\n <i *ngIf=\"(!complete) && (inactive)\" class=\"far fa-circle\"></i>\n </div>\n\n <!-- Line progress -->\n <div *ngIf=\"!last\" class=\"container-line-progress\">\n <div\n class=\"line-progress\"\n [class.completed]=\"(complete) || (numberStep < active)\">\n </div>\n </div>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-scroll-box',\n templateUrl: './tcloud-ui-scroll-box.component.html',\n styleUrls: ['./tcloud-ui-scroll-box.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiScrollBoxComponent implements OnInit {\n\n @Input() border: boolean = true;\n @Input() maxHeight: number | string = '400';\n\n unidade: string = 'px';\n style_height: any | undefined;\n\n constructor() { }\n\n ngOnInit(): void {\n let und = '';\n if( `${this.maxHeight}` ){\n und = this.retirarNumeros(`${this.maxHeight}`);\n }\n // console.log(\"und\",und);\n\n if( ((und) && (und).trim() === '') || !und ){\n this.unidade = 'px';\n }else{\n this.unidade = (und).toLowerCase(); \n }\n\n this.maxHeight = (`${this.maxHeight}`).replace(this.unidade, '');\n if( this.unidade === 'vh' ){ \n this.style_height = {'height': this.maxHeight+this.unidade};\n }else{\n this.style_height = {'max-height': this.maxHeight+this.unidade};\n }\n }\n\n retirarNumeros(str: string) {\n // Utiliza regex para substituir todos os dígitos por uma string vazia\n const resultado = str.replace(/\\d/g, '');\n return resultado;\n}\n\n}\n","<div class=\"tcloud-ui-scroll-box tc-box-scroll\" [class.tc-box-scroll-border]=\"border\" >\n <div class=\"box-content\" [ngStyle]=\"style_height\" >\n <ng-content></ng-content>\n </div> \n</div>","import { ITab } from './../tcloud-ui-tab-menu';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n\n\n@Injectable()\nexport class TabMenuService {\n\n private info_tab: ITab[] = [];\n\n private _scroll: boolean | undefined;\n private scrollSubject = new Subject<boolean>(); \n public scrollState$ = this.scrollSubject.asObservable();\n\n private _bottom_line: boolean | undefined;\n private bottom_lineSubject = new Subject<boolean>(); \n public bottom_lineState$ = this.bottom_lineSubject.asObservable();\n\n private _tab: string | undefined;\n private tabSubject = new Subject<string>(); \n public tabState$ = this.tabSubject.asObservable();\n\n private _loading: boolean | undefined;\n private loadingSubject = new Subject<boolean>(); \n public loadingState$ = this.loadingSubject.asObservable();\n\n private _full: boolean | undefined;\n private fullSubject = new Subject<boolean>(); \n public fullState$ = this.fullSubject.asObservable();\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router\n ){\n\n }\n\n setTabScroll(scroll: boolean){\n this._scroll = scroll;\n this.scrollSubject.next(scroll);\n }\n\n getTabScroll(){\n return this._scroll;\n }\n\n setTabBottomLine(bottom_line: boolean){\n this._bottom_line = bottom_line;\n this.bottom_lineSubject.next(bottom_line);\n }\n\n getTabBottomLine(){\n return this._bottom_line;\n } \n\n setTabLoading(loading: boolean){\n this._loading = loading;\n this.loadingSubject.next(loading);\n }\n\n getTabLoading(){\n return this._loading;\n }\n\n setTabfull(full: boolean){\n this._full = full;\n this.fullSubject.next(full);\n }\n\n getTabFull(){\n return this._full;\n }\n\n setTabState(tab: string, registerInUrl?:boolean | undefined){\n this._tab = tab;\n if( registerInUrl ){ this.set_to_param_url(tab); } \n this.tabSubject.next(tab);\n }\n\n getTabState(){\n return this._tab;\n }\n\n setTabDisabled(id: string, disabled: boolean ){\n let create = true;\n if( this.info_tab && (this.info_tab).length > 0 ){\n for( let i = 0; i < (this.info_tab).length; i++ ){\n if( this.info_tab[i].id === id ){\n this.info_tab[i].disabled = disabled;\n create = false;\n break;\n }\n }\n }\n if( create ){\n (this.info_tab).push({ id:id, disabled: disabled });\n } \n }\n\n getIsDisabled(id: string){\n if( this.info_tab && (this.info_tab).length > 0 ){\n for( let i = 0; i < (this.info_tab).length; i++ ){\n if( this.info_tab[i].id === id ){\n return this.info_tab[i].disabled;\n }\n }\n }\n return false;\n }\n\n set_to_param_url(tab: string){\n // changes the route without moving from the current view or\n // triggering a navigation event,\n this._router.navigate([], {\n relativeTo: this._route,\n queryParams: {\n tab: `${tab}`\n },\n queryParamsHandling: 'merge',\n // preserve the existing query params in the route\n skipLocationChange: false\n // do not trigger navigation\n });\n }\n\n}","import { Subscription } from 'rxjs';\nimport { TabMenuService } from './services/tab-menu.service';\nimport { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-tab-menu',\n templateUrl: './tcloud-ui-tab-menu.component.html',\n styleUrls: ['./tcloud-ui-tab-menu.component.scss'],\n providers: [TabMenuService],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabMenuComponent implements OnInit, OnDestroy {\n\n @Input() registerInUrl: boolean = false;\n\n private _loading: boolean = false;\n @Input() set loading(loading: boolean){\n this._loading = loading;\n this.tabMenuService.setTabLoading(this.loading);\n }\n get loading(): boolean{ return this._loading; }\n\n private _active: string = '';\n @Input() set active(active: string){\n this._active = active;\n if( this.active !== '' ){\n setTimeout(() => {\n this.tabMenuService.setTabState(this.active, this.registerInUrl);\n });\n \n }\n }\n get active(): string{ return this._active; }\n\n private _full: boolean = false;\n @Input() set full(full: boolean){\n this._full = full;\n this.tabMenuService.setTabfull(this.full);\n }\n get full(): boolean{ return this._full; }\n\n\n @Output() onChange = new EventEmitter<string>();\n\n private subscription: Subscription | undefined;\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n const tab = this.tabMenuService.getTabState();\n if( tab === this._active ){\n this.onChange.emit(tab);\n }\n\n this.subscription = this.tabMenuService.tabState$.subscribe((tab: string)=>{\n this.onChange.emit(tab);\n })\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-tab-menu tc-tab-menu\" [class.loading]=\"loading\" [class.tcloud-ui-tab-block-full]=\"full\" >\n <ng-content></ng-content>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-head',\n templateUrl: './tcloud-ui-tab-head.component.html',\n styleUrls: ['./tcloud-ui-tab-head.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabHeadComponent implements OnInit {\n\n private _scroll: boolean = true;\n @Input() set scroll(scroll: boolean){\n if( typeof scroll === 'boolean' ){\n this._scroll = scroll;\n this.tabMenuService.setTabScroll(scroll);\n }\n }\n get scroll(): boolean { return this._scroll; }\n\n ID: string = '';\n @Input() background: boolean = true;\n\n @Input() backgroundColor: '#FFFFFF'|'#F1F1F1'|'white'|'transparent' = 'transparent'; // var(--cinza4)\n\n private _bottom_line: boolean = false;\n @Input() set bottom_line(bottom_line: boolean){\n if( typeof bottom_line === 'boolean' ){\n this._bottom_line = bottom_line;\n this.tabMenuService.setTabBottomLine(bottom_line);\n }\n }\n get bottom_line(): boolean { return this._bottom_line; }\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n if( this.background ){\n if( this.backgroundColor === 'white' ){\n this.backgroundColor = '#FFFFFF';\n }else{\n this.backgroundColor = '#F1F1F1';\n }\n }\n\n this.ID = this.generateID();\n }\n\n generateID(): string{\n return `tc-head-scroll-box-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n to_scroll(action: 'prev'|'next'){\n this.moveScroll(action, this.width_scroll());\n }\n\n private width_scroll(): number{\n var ele = <any> document.querySelectorAll(`.${this.ID}`);\n return ele[0].querySelector(\"button\").offsetWidth;\n }\n\n private scrollSuave(old:any, des:any, atu:any, ele:any){\n const _this = this;\n var easeOutCubic = (t:any) => { return (--t)*t*t+1 };\n atu += 5; // move de 5 em 5 pixel. Aumentando o valor da velocidade\n var ease = easeOutCubic(atu/100);\n var del = des-old;\n del *= ease;\n del += old;\n ele.scrollTo(del, 0);\n if(atu < 100){\n window.requestAnimationFrame(() => {\n _this.scrollSuave(old, des, atu, ele);\n });\n }\n }\n\n private moveScroll(action: any, wid: number){\n var ele = document.querySelectorAll(`.${this.ID}`);\n var ccs = ele[0];\n var ccs_s = ccs.scrollLeft;\n this.scrollSuave(ccs_s, action == 'next' ? wid+ccs_s : ccs_s-wid, 0, ccs);\n }\n\n}","\n\n<table class=\"tcloud-ui-tab-head area-navigation\">\n <tr>\n <td *ngIf=\"scroll\">\n <button (click)=\"to_scroll('prev')\"> <i class=\"fas fa-chevron-left\"></i> </button>\n </td>\n\n <td>\n\n </td>\n\n <td *ngIf=\"scroll\">\n <button (click)=\"to_scroll('next')\"> <i class=\"fas fa-chevron-right\"></i> </button>\n </td>\n </tr>\n</table>\n\n<div class=\"tc-menu {{ ID }}\" [attr.style]=\"'background: ' + backgroundColor + ';'\" [class.tab-full]=\"!scroll\" [class.tab-subtitle-line-bottom]=\"bottom_line\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"hr-border-bottom\" *ngIf=\"bottom_line\"></div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-content',\n templateUrl: './tcloud-ui-tab-content.component.html',\n styleUrls: ['./tcloud-ui-tab-content.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabContentComponent implements OnInit {\n\n @Input() hideContent: boolean = false;\n @Input() tab: string = '';\n\n active: boolean = false;\n \n private subscription: Subscription | undefined;\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n const disabled = this.tabMenuService.getIsDisabled(this.tab);\n const tab = this.tabMenuService.getTabState();\n\n this.active = ( tab === this.tab && !disabled );\n\n this.subscription = this.tabMenuService.tabState$.subscribe((tab: string)=>{\n this.active = ( tab === this.tab );\n });\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<div class=\"tcloud-ui-tab-content tc-tabmenu-content\" *ngIf=\"active || hideContent\" [class.tc-table-hide]=\"!active\">\n <ng-content></ng-content>\n</div>\n\n","import { OnDestroy } from '@angular/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-title',\n templateUrl: './tcloud-ui-tab-title.component.html',\n styleUrls: ['./tcloud-ui-tab-title.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabTitleComponent implements OnInit, OnDestroy {\n\n @Input() tab: string = '';\n @Input() title: string | undefined;\n @Input() active: boolean = false;\n\n loading: boolean = false;\n bottom_line: boolean = false;\n\n private _disabled: boolean = false;\n @Input() set disabled(disabled){\n this._disabled = disabled;\n this.tabMenuService.setTabDisabled( this.tab, this._disabled );\n }\n get disabled(): boolean { return this._disabled; }\n\n \n\n private subscription = new Subscription();\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n if( !this.disabled ){\n const tab = this.tabMenuService.getTabState();\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n\n const bottom_line = this.tabMenuService.getTabBottomLine();\n if( typeof bottom_line === 'boolean' ){\n this.bottom_line = bottom_line;\n }\n }\n \n this.subscription?.add(\n this.tabMenuService.tabState$.subscribe((tab: string)=>{\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n })\n )\n\n this.loading = <any> this.tabMenuService.getTabLoading();\n this.subscription?.add(\n this.tabMenuService.loadingState$.subscribe((loading: boolean)=>{\n this.loading = loading;\n })\n )\n\n this.subscription?.add(\n this.tabMenuService.bottom_lineState$.subscribe((bottom_line: boolean)=>{\n this.bottom_line = bottom_line;\n })\n )\n }\n\n toTab(){\n if( !this.disabled ){\n if( this.tab && this.tab !== '' ){\n this.tabMenuService.setTabState(this.tab);\n }\n }\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-title-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-title tab-title\" >\n <ng-content></ng-content>\n</button>\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\" ></div>","import { OnDestroy } from '@angular/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { TabMenuService } from '../../services/tab-menu.service';\n\n@Component({\n selector: 'tcloud-ui-tab-subtitle',\n templateUrl: './tcloud-ui-tab-subtitle.component.html',\n styleUrls: ['./tcloud-ui-tab-subtitle.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTabSubtitleComponent implements OnInit, OnDestroy {\n\n @Input() tab: string = '';\n @Input() active: boolean = false;\n\n private _disabled: boolean = false;\n @Input() set disabled(disabled){\n this._disabled = disabled;\n this.tabMenuService.setTabDisabled( this.tab, this._disabled );\n }\n get disabled(): boolean { return this._disabled; }\n\n loading: boolean = false;\n bottom_line: boolean = false;\n private subscription = new Subscription();\n\n constructor(\n private tabMenuService: TabMenuService\n ) { }\n\n ngOnInit(): void {\n\n if( !this.disabled ){\n const tab = this.tabMenuService.getTabState();\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n\n const bottom_line = this.tabMenuService.getTabBottomLine();\n if( typeof bottom_line === 'boolean' ){\n this.bottom_line = bottom_line;\n }\n\n }\n\n this.subscription?.add(\n this.tabMenuService.tabState$.subscribe((tab: string)=>{\n if( this.tab !== '' ){\n this.active = ( tab === this.tab );\n }\n })\n )\n\n this.loading = <any> this.tabMenuService.getTabLoading();\n this.subscription?.add(\n this.tabMenuService.loadingState$.subscribe((loading: boolean)=>{\n this.loading = loading;\n })\n )\n\n this.subscription?.add(\n this.tabMenuService.bottom_lineState$.subscribe((bottom_line: boolean)=>{\n this.bottom_line = bottom_line;\n })\n )\n }\n\n toTab(){\n if( !this.disabled ){\n if( this.tab && this.tab !== '' ){\n this.tabMenuService.setTabState(this.tab);\n }\n }\n }\n\n ngOnDestroy(){\n if( this.subscription ){ this.subscription.unsubscribe(); }\n }\n\n}\n","<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-subtitle-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-subtitle tab-subtitle\" >\n <ng-content></ng-content>\n</button>\n\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\"></div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-table',\n templateUrl: './tcloud-ui-table.component.html',\n styleUrls: ['./tcloud-ui-table.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiTableComponent implements OnInit {\n\n @Input() responsive: boolean = true;\n @Input() striped: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<table class=\"tc-table\" [class.tc-table-striped]=\"striped\" [class.tc-table-responsive]=\"responsive\" cellspacing=\"0\">\n <ng-content select=\"[tc-thead]\"></ng-content>\n <ng-content select=\"[tc-tbody]\"></ng-content>\n</table>\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiInputPasswordComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-input-password',\n templateUrl: './tcloud-ui-input-password.component.html',\n styleUrls: ['./tcloud-ui-input-password.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [CommonModule, FormsModule]\n})\nexport class TCloudUiInputPasswordComponent implements OnInit {\n\n @Input() actionView: boolean = true;\n @Input() actionCopy: boolean = true;\n @Input() actionGeneratePassword: boolean = true;\n\n @Input() numberOfCharacter: number = 14;\n\n @Input() atLeastOneUppercaseLetter: boolean = true;\n @Input() atLeastOneLowercaseLetter: boolean = true;\n @Input() atLeastOneSpecialCharacter: boolean = true;\n\n \n innerValue: string = '';\n\n private _ngModel: any | undefined;\n @Input() set ngModel(v: any){\n this.innerValue = v; \n }\n @Output() ngModelChange = new EventEmitter<any>();\n\n mode: string = 'password';\n isCopy: boolean = false;\n passwordRegex: any | undefined;\n\n constructor() { }\n\n ngOnInit(): void {\n this.passwordRegex = this.getRegexValidation();\n }\n\n toggleMode(){\n if( this.mode === 'password' ){\n this.mode = 'text';\n }else{\n this.mode = 'password';\n }\n }\n\n copyText(): void {\n this.isCopy = true;\n navigator.clipboard.writeText(this.innerValue);\n setTimeout(() => { this.isCopy = false; }, 3000);\n }\n\n generatePassword(){\n this.innerValue = this.createNewPass();\n }\n\n private createNewPass() {\n const uppercaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz';\n const numbers = '0123456789';\n const specialCharacters = '!@#$%^&*()_+{}[]:;<>,.?/~';\n \n const allCharacters = uppercaseLetters + lowercaseLetters + numbers + specialCharacters;\n \n const getRandomCharacter = (characters: string) => {\n const randomIndex = Math.floor(Math.random() * characters.length);\n return characters[randomIndex];\n };\n \n let password = '';\n password += getRandomCharacter(uppercaseLetters);\n password += getRandomCharacter(numbers);\n password += getRandomCharacter(specialCharacters);\n \n const remainingLength = this.numberOfCharacter - password.length; \n for (let i = 0; i < remainingLength; i++) {\n password += getRandomCharacter(allCharacters);\n } \n password = password.split('').sort(() => Math.random() - 0.5).join(''); \n return password;\n }\n \n\n getRegexValidation() {\n /*\n (?=.*[A-Z]): Pelo menos uma letra maiúscula.\n (?=.*[0-9]): Pelo menos um número.\n (?=.*[!@#$%^&*()_+{}[\\]:;<>,.?\\/~]): Pelo menos um caractere especial.\n (?!.*\\s): Não contém espaços em branco.\n .{14,}: Pelo menos 14 caracteres no total.\n */\n\n const maiusculas = (this.atLeastOneUppercaseLetter) ? `(?=.*[A-Z])` : '';\n const minusculas = (this.atLeastOneLowercaseLetter) ? `(?=.*[a-z])` : '';\n const especiais = (this.atLeastOneSpecialCharacter) ? `(?=.*[!@#$%^&*\\\\(\\\\)_+\\\\{\\\\}\\\\[\\\\]:;<>,.?\\\\/~])(?!.*\\\\s)`: '';\n\n return `^${maiusculas}${minusculas}${especiais}.{${this.numberOfCharacter},}$`;\n }\n\n\n\n\n\n\n\n\n \n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n}\n","<div class=\"tcloud-ui-input-password\">\n <table>\n <tr>\n <!-- input password -->\n <td>\n <form #_form=\"ngForm\">\n <ng-container *ngIf=\"passwordRegex\">\n <input class=\"tc-form-control\" *ngIf=\"mode == 'password'\" type=\"password\" name=\"tc_password\" [pattern]=\"passwordRegex\" autoComplete=\"new-password\" [(ngModel)]=\"innerValue\" required>\n <input class=\"tc-form-control\" *ngIf=\"mode == 'text'\" type=\"text\" name=\"tc_text\" [pattern]=\"passwordRegex\" [(ngModel)]=\"innerValue\" required>\n </ng-container>\n </form>\n </td>\n\n <!-- action show hide -->\n <td *ngIf=\"actionView\">\n <button type=\"button\" (click)=\"toggleMode()\" [title]=\"(mode == 'password') ? 'Visualizar Senha' : 'Esconder Senha'\">\n <i *ngIf=\"mode == 'password'\" class=\"far fa-eye-slash\"></i>\n <i *ngIf=\"mode == 'text'\" class=\"far fa-eye\"></i> \n </button>\n </td>\n\n <!-- action generate pass -->\n <td *ngIf=\"actionGeneratePassword\">\n <button type=\"button\" [title]=\"'Gerar Senha'\" (click)=\"generatePassword()\">\n <i class=\"fa-solid fa-key\"></i>\n </button>\n </td>\n\n <!-- action copy pass -->\n <td *ngIf=\"actionCopy\">\n <button type=\"button\" [title]=\"'Copiar Senha'\" (click)=\"copyText()\">\n <i *ngIf=\"!isCopy\" class=\"fa-regular fa-copy\"></i>\n <i *ngIf=\"isCopy\" class=\"fa-solid fa-check\"></i>\n </button>\n </td>\n </tr>\n </table>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-label-token',\n templateUrl: './tcloud-ui-label-token.component.html',\n styleUrls: ['./tcloud-ui-label-token.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLabelTokenComponent implements OnInit {\n\n @Input() copy: boolean = false;\n @Input() value: any = '';\n @Output() onClick = new EventEmitter<any>();\n\n show: boolean = false;\n isCopy: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public copyText(): void {\n this.isCopy = true;\n // Copy the text inside the text field\n navigator.clipboard.writeText(this.value);\n this.onClick.emit(this.value);\n\n setTimeout(() => {\n this.isCopy = false;\n }, 3000);\n\n }\n\n}","<div>\n\n <div class=\"mb-2 box-area\">\n <table>\n <tr>\n\n <td class=\"area-value\">\n <div *ngIf=\"show\">{{ value }}</div>\n <div class=\"no-show\" *ngIf=\"!show\">#*#*#*#*#*#*#*#*#</div>\n </td>\n\n <td class=\"area-action\">\n <div class=\"options-area-actions\">\n <button type=\"button\" *ngIf=\"show\" class=\"btn-icon-smart\" (click)=\"show = !show\" ><i class=\"fas fa-eye\"></i></button>\n <button type=\"button\" *ngIf=\"!show\" class=\"btn-icon-smart\" (click)=\"show = !show\"><i class=\"fas fa-eye-slash\"></i></button>\n\n <ng-container *ngIf=\"copy\">\n <button type=\"button\" [title]=\"'Copiar texto'\" *ngIf=\"!isCopy\" class=\"btn-icon-smart\" (click)=\"copyText()\" ><i class=\"fas fa-copy\"></i></button>\n <button type=\"button\" [title]=\"'Texto copiado'\" *ngIf=\"isCopy\" class=\"btn-icon-smart\"><i class=\"fas fa-check\"></i></button>\n </ng-container>\n </div>\n </td>\n\n </tr>\n </table>\n </div>\n\n </div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { LineStepTitleData } from './tcloud-ui-line-step-title';\n\n@Component({\n selector: 'tcloud-ui-line-step-title',\n templateUrl: './tcloud-ui-line-step-title.component.html',\n styleUrls: ['./tcloud-ui-line-step-title.component.scss'],\n animations: [\n trigger('progressBarEntering', [\n state('in', style({ width: '*' })),\n transition('void => *', [\n style({ width: 0 }),\n animate('1.5s 0s ease')\n ])\n ])\n ],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiLineStepTitleComponent implements OnInit {\n @Input() showStepCounter: boolean = true;\n @Input() steps!: LineStepTitleData[];\n @Input() currentStep?: number;\n\n ngOnInit(): void {\n\n }\n\n public get completedSteps(): number {\n return this.steps.filter(x => x.completed).length;\n }\n}\n","<div class=\"tcloud-ui-line-step\">\n <div class=\"steps-title-wrapper\">\n <ng-container *ngFor=\"let step of steps; let i = index\">\n <span\n class=\"step-title\"\n [ngStyle]=\"{ 'flex-basis' : 100 / steps.length + '%' }\"\n [ngClass]=\"{ 'completed' : currentStep ? i < currentStep : step.completed }\">\n <ng-container *ngIf=\"showStepCounter\">{{i + 1}}.</ng-container> {{step.title}}\n </span>\n </ng-container>\n </div>\n\n <div class=\"line-wrapper\">\n <div class=\"background-line\"></div>\n <div\n @progressBarEntering\n class=\"progress-line\"\n [ngStyle]=\"{ 'width.%' : currentStep ? ((currentStep / steps.length) * 100) : ((completedSteps / steps.length) * 100) }\">\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-cubes',\n templateUrl: './tcloud-ui-cubes.component.html',\n styleUrls: ['./tcloud-ui-cubes.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiCubesComponent {\n\n}\n","<div class=\"loadingio-spinner-cube\"><div class=\"tc-cube-loading\">\n <div></div><div></div><div></div><div></div></div>\n</div>","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-circle',\n templateUrl: './tcloud-ui-circle.component.html',\n styleUrls: ['./tcloud-ui-circle.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiCircleComponent {\n @Input() full: boolean = false;\n\n \n}\n","<span class=\"tc-rev-loading-spinner\" [class.tc-rev-loading-size-full]=\"full\" ></span>\n<!-- <p class=\"tc-rev-loading-message\">{{message()}}...</p> -->","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiCubesComponent } from './components/tcloud-ui-cubes/tcloud-ui-cubes.component';\nimport { TCloudUiCircleComponent } from './components/tcloud-ui-circle/tcloud-ui-circle.component';\n\n@Component({\n selector: 'tcloud-ui-loading',\n templateUrl: './tcloud-ui-loading.component.html',\n styleUrls: ['./tcloud-ui-loading.component.css'],\n standalone: true,\n imports: [CommonModule, TCloudUiCubesComponent, TCloudUiCircleComponent]\n})\nexport class TCloudUiLoadingComponent {\n\n @Input() full: boolean = false;\n\n private _loading: boolean = false;\n @Input() set loading(loading: boolean){\n if( this._loading !== loading ){\n this._loading = loading;\n } \n }\n get loading(): boolean{ return this._loading; } \n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}","<div *ngIf=\"full && loading\" class=\"tc-loading-full\">\n <div class=\"tc-state-loading-backdrop\"></div>\n <div class=\"tc-state-loading-main\">\n <div class=\"tc-state-loading-artifact\">\n \n <!-- <tcloud-ui-cubes></tcloud-ui-cubes> -->\n <tcloud-ui-circle [full]=\"full\"></tcloud-ui-circle>\n \n </div>\n </div>\n </div>\n \n <ng-container *ngIf=\"!full && loading\">\n <div class=\"tc-state-loading-backdrop\"></div>\n <div class=\"tc-state-loading-main\">\n <div class=\"tc-state-loading-artifact\">\n \n <!-- <tcloud-ui-cubes></tcloud-ui-cubes> -->\n <tcloud-ui-circle></tcloud-ui-circle>\n\n </div>\n </div>\n </ng-container>\n ","import { Component, Input, OnDestroy, OnInit, forwardRef, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormControl, Validator } from '@angular/forms';\nimport { TCloudUiDataListComponent } from '../tcloud-ui-data-list/tcloud-ui-data-list.component';\nimport { TCloudUiDataListOptionComponent } from '../tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\n\nconst CUSTOM_INPUT_VALIDATORS: any = { \n provide: NG_VALIDATORS, \n useExisting: forwardRef(() => TCloudUiMultiplesValuesComponent),\n multi: true\n}\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TCloudUiMultiplesValuesComponent),\n multi: true\n};\n\nconst noop = () => {\n};\n\n@Component({\n selector: 'tcloud-ui-multiples-values',\n templateUrl: './tcloud-ui-multiples-values.component.html',\n styleUrls: ['./tcloud-ui-multiples-values.component.scss'],\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, CUSTOM_INPUT_VALIDATORS],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TCloudUiDataListComponent, TCloudUiDataListOptionComponent]\n})\nexport class TCloudUiMultiplesValuesComponent implements OnInit, OnDestroy, Validator {\n\n viewport_width: number = 0;\n viewport_height: number = 0;\n box_height: number = 0;\n box_style: string = '';\n menu_on_top: string = '';\n search_text: string = '';\n\n id: string = '';\n show_itens: boolean = false;\n show_component: boolean = false;\n \n\n input_items: string = '';\n\n items = [] as string[];\n\n private _listItems: any | undefined;\n @Input() set listItems(v: any | undefined){\n if( v !== this._listItems ){\n this._listItems = v;\n }\n }\n get listItems():any | undefined { return this._listItems; }\n \n @Input() openValuesInChange: boolean = true;\n @Input() useBtnAdd: boolean = true;\n\n @Input() pattern: RegExp | any = null;\n @Input() delimiter: string = ',';\n @Input() placeholder: string = '';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() required: string | undefined;\n @Input() search: boolean = true;\n @Input() uppercase: boolean = false;\n @Input() lowercase: boolean = false;\n\n @Input() maxWidthLabel: string | undefined;\n\n @Output() tcChange = new EventEmitter<any>();\n\n use_validation_required: boolean = false;\n\n placeholder_list: string = '';\n\n constructor() { }\n\n ngOnInit(): void {\n this.id = this.generateID();\n setTimeout(() => { \n this.show_component = true;\n this.toResize();\n this.toClick();\n this.set_placeholder_list(); \n }); \n }\n\n check_is_valid(): boolean{\n if( this.items ){\n return ((this.items).length > 0) ? true : false;\n }\n return false;\n }\n\n generateID(): string{\n return `multiple-values-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;\n }\n\n remove_duplicates(items: string[]): string[] {\n return [...new Set(items)];\n }\n\n \n add_items_by_data_list(e: any){\n this.input_items = e;\n this.add_items();\n }\n\n add_items(){\n\n if( this.disabled ){ return; }\n\n const input_items = this.input_items;\n\n this.input_items = '';\n \n let items = [];\n if( input_items && input_items !== '' ){\n\n items = <any> (input_items).split(this.delimiter);\n\n }\n\n if( (items).length === 0 ){\n if( input_items && input_items !== '' ){\n let txt = `${(input_items).trim()}`;\n items = [txt];\n }\n }\n\n //items = [...new Set(items)];\n\n for( let i = 0; i < (items).length; i++){\n let txt = `${(items[i]).trim()}`;\n\n if( this.uppercase ){\n if( txt && txt !== '' ){\n txt = (txt).toLocaleUpperCase();\n } \n }\n\n if( this.lowercase ){\n if( txt && txt !== '' ){\n txt = (txt).toLocaleLowerCase();\n }\n }\n\n if( txt && txt !== '' ){\n (this.items).push(txt);\n }\n \n }\n\n this.items = this.remove_duplicates(this.items);\n this.set_placeholder_list();\n }\n\n set_placeholder_list(){\n let placeholder_list = '';\n let delimiter = '';\n const items = this.items;\n if( items && (items).length > 0 ){\n for( let i = 0; i < (items).length; i++){\n placeholder_list += delimiter + `${(items[i]).trim()}`;\n delimiter = `${this.delimiter} `;\n }\n }\n this.placeholder_list = (placeholder_list !== '') ? placeholder_list : this.placeholder;\n this.onChangeTouched();\n this.onChangeCallback(this.items);\n this.onChange();\n }\n\n\n removeItem(item: any, index: number): void{\n if( this.disabled ){ return; }\n if( this.items ){\n for( let i = 0; i < (this.items).length; i++ ){\n const row = this.items[i];\n if( item === row && i === index ){\n (this.items).splice(index,1);\n break;\n }\n }\n }\n\n if( (this.items).length === 0 ){\n this.show_itens = false\n }\n\n this.set_placeholder_list();\n }\n\n remove_all(){\n if( this.disabled ){ return; }\n this.items = [];\n this.set_placeholder_list();\n }\n\n toClick(){\n const box = `area-${this.id}`;\n window.addEventListener('click',(e: any) => { \n\n if( this.show_itens ){ \n try {\n if( !(document.getElementById(box)?.contains(e.target)) ){ \n if( 'box-action' !== e.target.parentElement.className ){\n this.show_itens = false;\n } \n \n }\n } catch (error) {\n \n }\n \n }\n });\n\n const boxsub = `${this.id}-options`;\n }\n\n toResize(){\n window.addEventListener('resize', () => {\n this.viewport_width = window.innerWidth;\n this.viewport_height = window.innerHeight;\n this.resolve_position_dropdown(this.show_itens);\n });\n }\n\n toOpen(){\n if( this.items.length === 0 ){\n this.show_itens = false;\n return;\n }\n\n this.show_itens = !this.show_itens; \n this.resolve_position_dropdown(this.show_itens);\n }\n\n toClose(){\n this.show_itens = false;\n }\n\n resolve_position_dropdown(open: boolean){\n if( open ){\n this.box_style = '';\n this.menu_on_top = ''; \n const id = `${this.id}`; \n const box = `box-${this.id}`;\n if( this.viewport_height === 0 ){\n this.viewport_height = window.innerWidth;\n }\n const rect = document.getElementById(id)?.getBoundingClientRect();\n const box_position = rect?.bottom || 0; \n setTimeout(() => {\n this.box_height = document.getElementById(box)?.clientHeight || 0;\n if( ( this.viewport_height - box_position) < this.box_height ){\n this.menu_on_top = 'menu-on-top';\n this.box_style = `top: -${ (this.box_height) }px; height: ${this.box_height}px;`;\n }\n }); \n }\n }\n\n\n\n clearTextSearch(){\n this.search_text = '';\n this.toSearch('');\n }\n\n toSearch(e: any) {\n let input = (e && e.target && e.target.value) ? e.target.value : '';\n \n let filter = ( ( (input).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n let ul = <any> document.getElementById(`${this.id}-options`);\n let li = ul.getElementsByTagName(\"label\");\n for (let i = 0; i < li.length; i++) {\n const a = li[i];\n const txtValue = ( ( ( a.textContent || a.innerText ).normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\") ).trim() ).toLowerCase();\n if (txtValue.indexOf(filter) > -1) {\n li[i].style.display = \"\";\n } else {\n li[i].style.display = \"none\";\n }\n }\n }\n\n\n toEnterKey(input_items: string | string[] ){\n\n if( !input_items ){ return; }\n\n let valid = true;\n if( this.pattern ){\n valid = (this.pattern).test(this.input_items);\n\n }\n\n if( valid ){\n this.add_items();\n if( this.openValuesInChange ){\n this.toOpen();\n } \n }\n \n\n }\n\n checkIsDisabled(item: any){\n if( item?.disabled ){\n return true;\n }\n const value = `${item.value}`;\n if( (this.items).length > 0 ){\n for( let i = 0; i < (this.items).length; i++ ){\n if( `${this.items[i]}` === value ){\n return true;\n }\n }\n }\n return false;\n }\n\n\n onChange(){\n this.tcChange.emit(this.items);\n }\n\n\n\n\n\n\n\n\n\n\n\n onChangeTouched(){ \n this.onTouchedCallback(); \n }\n\n\n toSetDefault(v:any){\n this.items = v;\n this.add_items();\n }\n\n innerValue: any | undefined;\n //Placeholders for the callbacks which are later providesd\n //by the Control Value Accessor\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n //get accessor\n get value(): any {\n return this.innerValue;\n };\n\n //set accessor including call the onchange callback\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v; \n this.toSetDefault(v); \n this.onChangeCallback(v);\n }\n }\n\n //Set touched on blur\n onBlur() {\n this.onTouchedCallback();\n }\n\n //From ControlValueAccessor interface\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.toSetDefault(value);\n }\n }\n\n //From ControlValueAccessor interface\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n //From ControlValueAccessor interface\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n\n\n public validate(c: FormControl): any {\n if( c && ( typeof this.required !== 'undefined' ) ){\n this.use_validation_required = true;\n return (this.check_is_valid()) ? null : 'required';\n }\n return null;\n }\n\n\n ngOnDestroy(): void {\n \n }\n\n}\n","<div *ngIf=\"show_component\" class=\"tcloud-ui-multiples-values tc-dropdown\" id=\"area-{{ id }}\" [class.tc-parent-validation]=\"use_validation_required\">\n\n\n <form #_formulario=\"ngForm\">\n\n <!-- {{ input_items }} -->\n\n <div class=\"dropdown-toggle\" id=\"{{id}}\" [attr.aria-haspopup]=\"'true'\" [attr.aria-expanded]=\"'false'\">\n\n <table style=\"width: 100%;\">\n <tr>\n <td>\n <table class=\"group-input-action\">\n <tr>\n <td class=\"box-input{{ (listItems && (listItems).length > 0) ? '-data-list' : '' }} bc-l\">\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <div class=\"input\" (click)=\"show_itens = false\">\n <tcloud-ui-data-list [placeholder]=\"placeholder_list\" [search]=\"search\" [border]=\"false\" [loading]=\"loading\" [disabled]=\"disabled\" name=\"items\" [(ngModel)]=\"input_items\" (onChange)=\"toEnterKey(input_items)\">\n <ng-container *ngFor=\"let item of listItems\"> \n <tcloud-ui-data-list-option [value]=\"'' + item.value\" [disabled]=\"checkIsDisabled(item)\">{{ item?.description }}</tcloud-ui-data-list-option>\n </ng-container>\n </tcloud-ui-data-list>\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\n <div class=\"input\">\n <input \n required\n [pattern]=\"pattern\"\n (keydown.enter)=\"toEnterKey(input_items)\"\n [disabled]=\"disabled\"\n [class.text-lowercase]=\"lowercase\"\n [class.text-uppercase]=\"uppercase\" \n type=\"text\" name=\"items\" class=\"tc-form-control area-text\" [(ngModel)]=\"input_items\" [placeholder]=\"placeholder_list\" required [title]=\"placeholder_list\">\n \n </div>\n </ng-container>\n </td>\n <td class=\"count-list\" *ngIf=\"(items && items.length > 0)\">\n <div class=\"input\">\n <input type=\"text\" value=\"{{ items.length }} {{ (items.length > 1) ? 'registros' : 'registro' }}\" disabled readonly> \n </div>\n </td>\n <td class=\"count-list\" *ngIf=\"!items || (items && items.length === 0)\">\n <div class=\"input\"><input type=\"text\" class=\"info-no-value\" value=\"Vazio\" disabled readonly></div> \n </td>\n <td class=\"action-input-arrow bc-r\">\n <button (click)=\"toOpen()\" title=\"Lista de valores\" [disabled]=\"disabled\">\n <i class=\"fas fa-angle-up\" *ngIf=\"show_itens\"></i>\n <i class=\"fas fa-angle-down\" *ngIf=\"!show_itens\"></i>\n </button>\n </td>\n \n </tr>\n </table> \n </td>\n <td style=\"width: 45px;\" *ngIf=\"useBtnAdd\">\n <table>\n <tr>\n <td class=\"action-input\" *ngIf=\"!disabled\">\n <ng-container *ngIf=\"!listItems || !(listItems && (listItems).length > 0)\">\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items()\" title=\"Adicionar item\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </ng-container>\n <ng-container *ngIf=\"listItems && (listItems).length > 0\">\n <button [disabled]=\"!_formulario.valid\" class=\"tc-btn tc-btn-outline-primary\" (click)=\"add_items_by_data_list(input_items)\" title=\"Adicionar item\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </ng-container>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n </div>\n \n <!-- <pre>\n {{ items | json }}\n </pre> -->\n\n </form> \n\n <!-- box-itens-selected -->\n <div class=\"tc-dropdown-menu box-itens-selected {{ menu_on_top }}\" id=\"box-{{ id }}\" [attr.aria-labelledby]=\"id\" [class.to-hide]=\"!show_itens\" [style]=\"box_style\">\n \n\n <div class=\"line-search\">\n <table class=\"box-search\" *ngIf=\"items && (items).length > 5\">\n <tr>\n \n <td class=\"area-input\">\n <input type=\"text\" class=\"tc-form-control\" [(ngModel)]=\"search_text\" (input)=\"toSearch($event)\" placeholder=\"Buscar...\" > \n </td>\n \n <td class=\"area-icon\">\n <i *ngIf=\"search_text === ''\" class=\"fas fa-search icon-search\"></i>\n <button class=\"box-action\" type=\"button\" *ngIf=\"search_text !== ''\" (click)=\"clearTextSearch()\"><i class=\"fas fa-times\"></i></button>\n </td>\n \n </tr>\n </table>\n </div>\n\n <div class=\"area-options\" id=\"{{ id }}-options\">\n <ng-container *ngFor=\"let item of items; let i = index\">\n \n <label class=\"box-label\" [ngStyle]=\"(maxWidthLabel) ? {'max-width': maxWidthLabel} : null\">\n <div class=\"box-value\" [title]=\"item\" >\n {{ item }} \n </div>\n <div class=\"box-action\">\n <button\n class=\"box-action\"\n [disabled]=\"items === undefined || (items && items.length === 0) || disabled || loading\"\n title=\"Remover\"\n type=\"button\"\n (click)=\"removeItem(item, i)\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </label>\n\n </ng-container>\n </div>\n\n <div class=\"mt-5\" *ngIf=\"items && (items).length > 5\">\n <div class=\"btn-remove-all\">\n <button class=\"box-action\" type=\"button\" (click)=\"remove_all()\">\n Limpar toda a lista\n </button>\n </div>\n </div>\n\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-progress-bar',\n templateUrl: './tcloud-ui-progress-bar.component.html',\n styleUrls: ['./tcloud-ui-progress-bar.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiProgressBarComponent implements OnInit {\n\n value_100: number = 100;\n\n private _limit: any = undefined;\n @Input() set limit(limit: any){\n this._limit = (limit) ? `${limit}` : undefined\n }\n get limit(){ return this._limit; }\n\n /*\n status\n */\n private _status: any = '0';\n @Input() set status(status: any){\n let value = `${status}`;\n if( value ){\n setTimeout(() => {\n this._status = value;\n this.toCalcLimit();\n }); \n }\n }\n get status():string { return this._status } \n\n /*\n mode\n */\n private _mode: string = 'primary';\n @Input() set mode(mode: string){\n if( mode ){\n this._mode = mode; \n this.setMode();\n } \n }\n get mode():string { return this._mode } \n\n /*\n height\n */\n private _height: string = 'normal';\n @Input() set height(height: string){\n if( height ){\n this._height = height; \n this.setheight(); \n } \n }\n get height():string { return this._height }\n\n progress_class: string = '';\n height_class: string = '';\n\n @Input() useDefaultBackground: boolean = true;\n @Input() showValue: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n this.setMode();\n this.setheight();\n }\n\n setMode(): void{\n const mode = this.mode;\n let progress_class = 'progress-primary';\n switch (mode) {\n case 'primary': progress_class = 'progress-primary'; break;\n case 'danger': progress_class = 'progress-danger'; break;\n case 'warning': progress_class = 'progress-warning'; break;\n case 'info': progress_class = 'progress-info'; break;\n case 'success': progress_class = 'progress-success'; break;\n case 'gray': progress_class = 'progress-gray'; break;\n\n case 'gradient-success': progress_class = 'progress-gradient-success'; break;\n case 'gradient-danger': progress_class = 'progress-gradient-danger'; break;\n case 'gradient-warning': progress_class = 'progress-gradient-warning'; break;\n case 'gradient-info': progress_class = 'progress-gradient-info'; break;\n }\n this.progress_class = progress_class;\n }\n\n setheight(): void{\n const height = this.height;\n let height_class = 'height-normal';\n switch (height) {\n case 'normal': height_class = 'height-normal'; break;\n case 'slim': height_class = 'height-slim'; break;\n case 'fat': height_class = 'height-fat'; break;\n case 'very-fat': height_class = 'height-very-fat'; break;\n }\n this.height_class = height_class;\n }\n\n toCalcLimit_exceeded(){\n let vp: number = 100;\n let percentual: number = +(this.status);\n\n if( percentual > 100 ){\n let v100 = vp / (percentual / 100);\n this.value_100 = +((v100).toFixed(2));\n }\n this.new_status = 100;\n }\n\n toCalcLimit(){\n\n if( this.limit ){\n\n if( +(this.status) > +(this.limit) ){\n this.toCalcLimit_exceeded();\n return;\n }\n\n let vp: number = 100;\n let percentual: number = +(this.limit);\n\n if( percentual > 100 ){\n let v100 = vp / (percentual / 100);\n this.value_100 = +((v100).toFixed(2));\n }\n\n this.toCalcStatus();\n }\n }\n\n new_status: number = 0;\n toCalcStatus(){\n \n let valorBase: number = +(this.status);\n let percentual: number = +(this.limit);\n\n // Calcula o valor correspondente ao percentual do valor base\n let resultado = valorBase / (percentual / 100);\n this.new_status = resultado;\n // console.log('new_status', this.new_status);\n \n }\n\n}\n","<div class=\"tc-ui-progress-bar tc-background-{{ progress_class }}\"> \n <div class=\"tc-progress-bar {{ height_class }}\" [class.use-background]=\"useDefaultBackground\" >\n\n <div *ngIf=\"!limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + status + '%'\"></div>\n <div *ngIf=\"limit\" class=\"tc-progress-bar-status {{ progress_class }} {{ height_class }}\" [style]=\"'width: ' + new_status + '%'\"></div>\n\n <label *ngIf=\"( height_class === 'height-normal' || height_class === 'height-fat' || height_class === 'height-very-fat' ) && showValue\" \n [class.fixed-left]=\"(+status >= 12)\" \n [style]=\"'left: '+ (70) +'px'\" \n class=\"indicative-value info-{{ progress_class }}\">{{ status }}%\n </label>\n </div>\n</div>\n<div *ngIf=\"limit && (+limit > 100)\" >\n <div [class.indicative-limit]=\"limit\" [style]=\"{'width': value_100+'%'}\">\n <label>100%</label>\n </div> \n</div>","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-reorder-items',\n templateUrl: './tcloud-ui-reorder-items.component.html',\n styleUrls: ['./tcloud-ui-reorder-items.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiReorderItemsComponent implements OnInit {\n sort_items = [] as any[];\n\n // psg\n private _items = [] as any[];\n @Input() set items(v: any){\n if( v ){\n this._items = v;\n this.set_sort_items();\n }\n }\n get items(){ return this._items; }\n\n @Output() itemsChange = new EventEmitter<any>();\n\n\n ngOnInit(): void {\n }\n\n set_sort_items(){\n this.sort_items = [];\n if( this.items && (this.items).length > 0 ){\n\n for( let i = 0; i < (this.items).length; i++ ){\n const item = this.items[i];\n if( item.name ){\n (this.sort_items).push( item.name );\n }else{\n (this.sort_items).push( `${item}` );\n }\n }\n\n }\n\n }\n \n get_description(name: string){\n if( name ){\n if( this.items && (this.items).length > 0 ){\n for( let i = 0; i < (this.items).length; i++ ){\n const item = this.items[i];\n if( name === item.name && item.description ){\n return item.description;\n }\n } \n }\n }\n return undefined;\n }\n\n get_item(name: string){\n if( name ){\n if( this.items && (this.items).length > 0 ){\n for( let i = 0; i < (this.items).length; i++ ){\n const item = this.items[i];\n if( name === item.name && item.description ){\n return item;\n }\n } \n }\n }\n return undefined;\n }\n\n move(item: any, index: number, toIndex: number){\n if( toIndex < 0 ){ return; }\n if( toIndex > ((this.sort_items).length - 1) ){ return; }\n if( (this.sort_items).length > 0 ){\n for(let i = 0; i < (this.sort_items).length; i++){\n if( i === index){\n \n let aux = this.sort_items[index];\n this.sort_items[index] = this.sort_items[toIndex];\n this.sort_items[toIndex] = aux;\n break;\n\n \n }\n }\n }\n\n if( this.items && (this.items).length > 0 && this.items[0] && this.items[0].name ){\n this.items = this.result_items();\n }else{\n this.items = this.sort_items;\n }\n this.itemsChange.emit( this.items );\n \n }\n\n result_items(){\n let items = [];\n if( this.sort_items && (this.sort_items).length > 0 ){\n for( let i = 0; i < (this.sort_items).length; i++ ){\n (items).push( this.get_item( `${this.sort_items[i]}` ) );\n }\n }\n return items;\n }\n}\n","<ng-container *ngIf=\"sort_items\">\n\n\n\n <table class=\"table-sort-items\">\n\n \n\n\n <ng-container *ngFor=\"let item of sort_items; let i = index\">\n\n <tr>\n\n <td class=\"area-name-description-item\">\n {{ item }}\n <div *ngIf=\"get_description(item)\" class=\"item-description\">\n {{ get_description(item) }}\n </div>\n </td>\n\n <td class=\"area-action-item\">\n \n <ng-container>\n <div class=\"order-control\">\n <button class=\"btn-item-action-arrow\" (click)=\"move(item, i, (i-1))\" title=\"Alterar para cima\" [disabled]=\"i===0\">\n <i class=\"fas fa-caret-up p-up\" ></i>\n </button>\n </div>\n \n <div class=\"order-control\">\n <button class=\"btn-item-action-arrow\" (click)=\"move(item, i, (i+1))\" title=\"Alterar para baixo\" [disabled]=\"(i+1) === (sort_items).length\">\n <i class=\"fas fa-caret-down p-down\"></i>\n </button>\n \n </div>\n </ng-container>\n </td>\n\n </tr>\n </ng-container> \n\n </table>\n \n </ng-container>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tcloud-ui-welcome',\n templateUrl: './tcloud-ui-welcome.component.html',\n styleUrls: ['./tcloud-ui-welcome.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class TCloudUiWelcomeComponent implements OnInit {\n\n col4: string = 'col-md-4';\n\n col8: string = 'col-md-8';\n col12: string = 'col-md-12';\n\n @Input() imgSrc: string = '';\n @Input() title: string = ''; \n @Input() description: string = ''; \n @Input() size: 'small'|'normal'|'big' = 'small';\n @Input() font: 'small'|'normal'|'big' = 'normal';\n\n @Input() mirrored: boolean = false;\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"tcloud-ui-welcome\">\n <div class=\"row\">\n\n <ng-container>\n <div class=\"{{ col4 }} text-center\" *ngIf=\"imgSrc !== ''\" >\n <img class=\"containt-img-{{ size }}\" src=\"{{ imgSrc }}\">\n </div>\n <div class=\"{{ (imgSrc === '') ? col12 : col8 }} text-center\">\n <div>\n\n <div class=\"w-info-text\" *ngIf=\"title !== ''\" [innerHTML]=\"title\" ></div>\n \n <div class=\"info-{{ font }}\" *ngIf=\"description !== ''\" [innerHTML]=\"description\"></div>\n \n <div class=\"mt-5 text-center\">\n <ng-content></ng-content>\n </div>\n \n </div>\n </div>\n </ng-container>\n\n </div>\n</div>","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class ContainerService {\n\n\n private _expanded_signal = signal<boolean>(undefined);\n readonly expanded_signal:any=this._expanded_signal.asReadonly();\n\n set_expanded_signal(v:boolean){\n this._expanded_signal.set(v);\n }\n\n}","import { ContainerService } from './services/container.service';\nimport { Component, inject, Input } from '@angular/core';\n@Component({\n selector: 'tcloud-ui-container',\n imports: [\n ],\n providers: [ContainerService],\n templateUrl: './tcloud-ui-container.component.html',\n styleUrl: './tcloud-ui-container.component.scss'\n})\nexport class TCloudUiContainerComponent {\n\n private _containerService = inject(ContainerService);\n private _expanded: boolean = false;\n\n @Input()\n set expanded(v: boolean) {\n // coerce to boolean and only propagate when changed\n const newVal = !!v;\n if (this._expanded !== newVal) {\n this._expanded = newVal;\n this.to_expanded();\n }\n }\n\n get expanded(): boolean { return this._expanded; }\n\n // optional manual trigger kept for backward-compatibility\n to_expanded(){\n this._containerService.set_expanded_signal( this._expanded );\n }\n\n}\n","<div class=\"tc-rev-container f-family c-neutral-900 mar-b-24\" [class.container-expanded]=\"expanded\">\n <ng-content></ng-content> \n</div>","import { Component, inject } from '@angular/core';\nimport { ContainerService } from '../../services/container.service';\n\n@Component({\n selector: 'tcloud-ui-container-col',\n imports: [],\n templateUrl: './tcloud-ui-container-col.component.html',\n styleUrls: ['./tcloud-ui-container-col.component.scss','../../tcloud-ui-container.component.scss']\n})\nexport class TCloudUiContainerColComponent {\n\n private _containerService = inject(ContainerService);\n\n get expanded(){\n return this._containerService.expanded_signal();\n }\n}\n","\n<div class=\"tc-rev-container-col\" [class.col-expanded]=\"expanded\">\n <ng-content></ng-content>\n</div>","import { Component, inject } from '@angular/core';\nimport { ContainerService } from '../../services/container.service';\n\n@Component({\n selector: 'tcloud-ui-container-content',\n imports: [],\n templateUrl: './tcloud-ui-container-content.component.html',\n styleUrls: ['./tcloud-ui-container-content.component.scss','../../tcloud-ui-container.component.scss']\n})\nexport class TCloudUiContainerContentComponent {\n\n private _containerService = inject(ContainerService);\n\n get expanded(){\n return this._containerService.expanded_signal();\n }\n}\n","\n<div class=\"tc-rev-container-content\" [class.content-expanded]=\"expanded\">\n <ng-content></ng-content>\n</div>","import { Directive, ElementRef, OnInit, Renderer2, Input} from '@angular/core';\n\n\n@Directive({\n selector: '[TCalign]',\n standalone: true\n})\nexport class TCloudUiAlignDirective implements OnInit{\n\n private _direction: 'start' | 'center' | 'end' | 'justify' = 'start';\n\n @Input() set TCalign (direction: any){\n if (direction){\n this._direction = direction;\n this.setStyle(this.el.nativeElement);\n }\n }\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n\n }\n\n setStyle(el: any){\n if( this._direction === 'start' ){\n this.renderer.setStyle(el, 'text-align', 'left');\n }\n\n if( this._direction === 'center' ){\n this.renderer.setStyle(el, 'text-align', 'center');\n }\n\n if( this._direction === 'end' ){\n this.renderer.setStyle(el, 'text-align', 'right');\n }\n\n if( this._direction === 'justify' ){\n this.renderer.setStyle(el, 'text-align', 'justify');\n }\n }\n\n\n}","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Directive({\n selector: '[TCcurrency]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TCloudUiCurrencyDirective,\n multi: true\n }],\n standalone: true\n})\nexport class TCloudUiCurrencyDirective implements ControlValueAccessor {\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n onChange: any = () => {};\n onTouch: any = () => {};\n\n // ngAfterViewInit() {\n // setTimeout(() => {\n // let unmaskedValue = this.unmask( this.el.nativeElement.value );\n // console.log('Valor do input:', unmaskedValue);\n // this.onChange(Number(unmaskedValue));\n // this.writeValue(unmaskedValue);\n // }); \n // }\n\n writeValue(value: any): void {\n this.renderer.setProperty(this.el.nativeElement, 'type', 'text');\n this.renderer.setStyle(this.el.nativeElement, 'text-align', 'right');\n if (value !== undefined && value !== null) {\n this.renderer.setProperty(this.el.nativeElement, 'value', this.formatCurrency(value));\n } else {\n this.renderer.setProperty(this.el.nativeElement, 'value', '');\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n @HostListener('focus')\n onFocus(): void {\n this.setCursorToEnd();\n }\n\n private setCursorToEnd(): void {\n const nativeInput = this.el.nativeElement as HTMLInputElement;\n const length = nativeInput.value.length;\n nativeInput.setSelectionRange(length, length);\n }\n\n private setInInput(){\n\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: string): void {\n const unmaskedValue = this.unmask(value);\n this.onChange(Number(unmaskedValue));\n this.writeValue(unmaskedValue);\n }\n\n private formatCurrency(value: any): string { \n \n const posicaoPonto = `${value}`.indexOf('.');\n if (posicaoPonto !== -1) {\n let part = `${value}`.split('.');\n let decimalPart = (part && part[1]) ? part[1] : '';\n if( (decimalPart).length < 2 ){\n value = value + '0';\n } \n }else{\n value = value + '.00';\n }\n\n return 'R$ '+ this.formatReal(value);\n }\n\n private unmask(value: string): any {\n if( value === undefined || value === null || value === \"\" ){\n return \"\";\n }\n value = value.replace(/[^\\d]/g, '');\n value = value.replace(/^0+/, '');\n if( value && value[0] ){\n if( (value[0] === ',' || value[0] === '.') ){\n value = '0'+value;\n } \n }\n value = this.toDecimal(value); \n return value;\n }\n\n private formatarNumero(numero: any): string {\n return numero.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.') as string;\n }\n\n private formatReal(value: any): string {\n var delimiter = ',';\n \n if( !value! ){ return `0${delimiter}00`; }\n if( value === `0${delimiter}00` ){ value = ''; }\n value = `${value}`;\n value = value.replace(/^0+/, '');\n const cleanValue = value.replace(/[^\\d]/g, '');\n if (cleanValue.length <= 2) { \n let _value = `${delimiter}${cleanValue.padStart(2, '0')}`;\n if( _value && _value[0] ){\n if( (_value[0] === ',' || _value[0] === '.') ){\n _value = '0'+_value;\n } \n }\n return _value;\n }\n\n let integerPart = cleanValue.slice(0, -2) || '0';\n const decimalPart = cleanValue.slice(-2).padStart(2, '0');\n if( (integerPart).length > 3 ){\n integerPart = this.formatarNumero(integerPart);\n }\n let _value = `${integerPart}${delimiter}${decimalPart}`;\n if( _value && _value[0] ){\n if( (_value[0] === ',' || _value[0] === '.') ){\n _value = '0'+_value;\n } \n }\n\n return _value;\n }\n\n private toDecimal(numero: any) { \n const numeroStr = numero.toString();\n let parteInteira = numeroStr.slice(0, -2) || '0';\n let parteDecimal = numeroStr.slice(-2);\n if(Number(parteDecimal) > 0 && Number(parteDecimal) < 10 ){\n parteDecimal = `0${Number(parteDecimal)}`;\n }\n let _value = `${parteInteira}.${parteDecimal}`; \n if( _value === ',' || _value === ',0' || _value === '0,' || _value === '0,0' || _value === '0,00' ){ return '0'; }\n if( _value === '.' || _value === '.0' || _value === '0.' || _value === '0.0' || _value === '0.00' ){ return '0'; }\n _value = _value.replace(/^0+/, '');\n if( _value && _value[0] ){\n if( (_value[0] === ',' || _value[0] === '.') ){\n _value = '0'+_value;\n } \n }\n \n return _value;\n }\n}\n","import { Directive, ElementRef, OnInit, Renderer2, Input} from '@angular/core';\n\n\n@Directive({\n selector: '[TCCopy]',\n standalone: true\n})\nexport class TCloudUiElCopyDirective implements OnInit{\n\n private _isCopy: boolean = false;\n \n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setItemFuncCopy();\n }\n\n setItemFuncCopy(){\n\n const btn_copy = this.renderer.createElement('i');\n\n var copyText = ()=>{ \n const elementWithCopyAttribute = document.querySelector(`[data-el-copy=\"${id}\"]`) as any;\n let copyText = ''\n if( elementWithCopyAttribute && elementWithCopyAttribute.tagName && (elementWithCopyAttribute.tagName).toUpperCase() === 'INPUT' ){\n copyText = elementWithCopyAttribute?.value!;\n }else{\n copyText = elementWithCopyAttribute?.textContent!;\n } \n navigator.clipboard.writeText(copyText);\n this.renderer.removeClass(btn_copy, 'fa-copy');\n this.renderer.addClass(btn_copy, 'fa-check');\n setTimeout(() => {\n this.renderer.removeClass(btn_copy, 'fa-check');\n this.renderer.addClass(btn_copy, 'fa-copy');\n }, 3000);\n \n }\n\n const id = this.generateID();\n this.renderer.setAttribute(this.el.nativeElement, 'data-el-copy', `${id}`);\n\n \n this.renderer.setStyle(btn_copy, 'cursor', 'pointer');\n this.renderer.setStyle(btn_copy, 'margin-left', '3px');\n this.renderer.addClass(btn_copy, 'fas');\n this.renderer.addClass(btn_copy, 'fa-copy');\n\n this.renderer.addClass(btn_copy, 'tcloud-ui-el-copy');\n this.renderer.setAttribute(btn_copy, 'id', id);\n this.renderer.setAttribute(btn_copy, 'title', 'Copy');\n this.renderer.listen(btn_copy, 'click', () => { copyText(); });\n\n if( ((this.el.nativeElement).tagName).toUpperCase() === 'INPUT' ){\n let classList = this.el.nativeElement?.classList!\n if( classList && (classList).length > 0 && ('tc-form-control').indexOf(classList) > -1 ){\n this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy-tc-form-control');\n }else{\n this.renderer.addClass(btn_copy, 'tcloud-ui-el-input-copy');\n } \n this.renderer.appendChild(this.el.nativeElement.parentNode, btn_copy);\n }else{\n this.renderer.appendChild(this.el.nativeElement, btn_copy);\n }\n\n \n\n \n }\n\n generateID(target?: string): string{\n const ref = (target) ? `-${target}` : '';\n return `tc-el-copy-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}${ref}`;\n }\n\n}","\nimport { Directive, Input, Renderer2, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[TCHoverParent]',\n standalone: true\n})\nexport class TCloudUiHoverParentDirective {\n\n private CLASS: string | undefined;\n private ID: string | undefined;\n\n constructor(\n private renderer: Renderer2\n ) {}\n\n @HostListener('mouseover') onMouseOver() {\n if( this.getElement() ){\n const el = <any> this.getElement();\n if( el ){\n this.renderer.addClass(el, (this.CLASS) ? this.CLASS : 'tcloud-hover-parent');\n }\n } \n }\n\n @HostListener('mouseout') onMouseOut() {\n if( this.getElement() ){\n const el = <any> this.getElement();\n if( el ){\n this.renderer.removeClass(el, (this.CLASS) ? this.CLASS : 'tcloud-hover-parent');\n }\n \n } \n }\n\n @Input() set TCHoverParent (id: string){\n if (id){ this.ID = id; }\n }\n\n @Input() set TCHoverParentClass (clss: any){\n if (clss){\n this.CLASS = clss;\n }\n }\n\n getElement(): HTMLElement | undefined{\n if( this.ID ){\n return document.getElementById(this.ID) || undefined;\n }\n return undefined;\n }\n\n}","import { Inject, Injectable, Optional } from '@angular/core';\nimport { UserServiceInterface } from '../_interfaces/user.service.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiCheckAccessService {\n\n private userService = {} as UserServiceInterface;\n\n constructor(\n @Optional() @Inject('UserService') private _UserService: any\n ) {\n this.userService = this._UserService;\n }\n\n check(checkAccess: any){\n const temp_user = this.getImpersonalizeUserInfo();\n if( temp_user ){\n // Para uso com impersonalização - Visualização do T-Cloud por outro usuário\n return this.checkImpersonalizeMode(checkAccess, temp_user);\n } \n // Utilização para usuário logado\n return this.checkDefaultMode(checkAccess);\n }\n\n checkDefaultMode(checkAccess: any){\n let hasAccess = false;\n if ( Array.isArray(checkAccess[0]) ){\n if (checkAccess[1]){\n let features = checkAccess[1].ui_topology;\n if (features){\n checkAccess[0].forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n }\n }else{\n let features = this.userService?.getCurrentEnv()?.ui;\n console.log('features ui', features);\n checkAccess.forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features && features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n return hasAccess;\n }\n\n checkImpersonalizeMode(checkAccess: any, temp_user: any){\n let hasAccess = false;\n if ( Array.isArray(checkAccess[0]) ){\n if (checkAccess[1]){\n let features = checkAccess[1].ui_topology;\n if (features){\n checkAccess[0].forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n }\n }else{\n let features = temp_user.ui;\n checkAccess.forEach((rule:any) => {\n hasAccess = hasAccess || ( ( features && features.findIndex((feature: any) => feature === rule ) != -1 ) ? true : false );\n });\n }\n return hasAccess;\n }\n\n checkFeatureFlags(_feature: string | string[] | any): boolean{\n let enable = false;\n let isEnabled = [];\n\n // tcloud_features - features do componente tcloud\n let tcloud_features = [];\n if( _feature ){\n if( typeof _feature === 'string' ){\n (tcloud_features).push(_feature);\n }else if( _feature && (_feature).length > 0 ) {\n tcloud_features = _feature;\n }\n\n let feature_flags_topology = undefined;\n if ( Array.isArray(_feature[0]) ){\n if (_feature[1]){\n tcloud_features = _feature[0];\n if( _feature[1] && _feature[1].feature_flags_topology && (_feature[1]?.feature_flags_topology).length >= 0 ){\n feature_flags_topology = _feature[1].feature_flags_topology;\n }\n }\n } \n\n let feature_flags = [];\n if( feature_flags_topology && (feature_flags_topology).length >= 0 ){\n // feature_flags - obtendo de topology (infProduto) -> feature_flags_topology\n feature_flags = feature_flags_topology;\n }else{\n // feature_flags - obtendo de user info\n feature_flags = this.userService?.getCurrentEnv()?.feature_flags || [];\n }\n console.log('feature_flags', feature_flags);\n\n for( let i = 0; i < (tcloud_features).length; i++ ){\n const tcloud_feature = tcloud_features[i];\n if( tcloud_feature[0] === '!' ){\n let qtd_exist = 0;\n for( let j = 0; j < (feature_flags).length; j++ ){\n const feature_flag = feature_flags[j]; \n if( tcloud_feature === '!'+feature_flag ){\n (isEnabled).push(false); \n qtd_exist++;\n }\n }\n if( qtd_exist === 0 ){\n (isEnabled).push(true);\n } \n }else{\n let qtd_exist = 0;\n for( let j = 0; j < (feature_flags).length; j++ ){\n const feature_flag = feature_flags[j]; \n if( tcloud_feature === feature_flag ){\n (isEnabled).push(true); \n qtd_exist++;\n } \n }\n if( qtd_exist === 0 ){\n (isEnabled).push(false);\n }\n }\n }\n\n if( isEnabled && (isEnabled).length > 0 ){\n enable = true;\n for( let i = 0; i < (isEnabled).length; i++ ){\n if( isEnabled[i] === false ){\n enable = false; break;\n } \n }\n }\n }\n return enable; \n }\n\n\n\n /* */\n private getImpersonalizeUserInfo(){\n // return this.getLocalStorage();\n \n // remover do localstorage se não existir cCode ????\n const cCode = this.userService?.getCurrentEnv()?.currentCloudID?.cloud_id || '';\n if( cCode && cCode !== '' ){\n return this.getLocalStorage();\n }\n this.removeLocalStorage();\n return undefined; \n }\n\n private getLocalStorage(){\n let info: any = localStorage.getItem('temp_user_info');\n let user_info = {} as any;\n try {\n user_info = JSON.parse(info);\n } catch (error) {\n user_info = undefined; \n }\n return user_info;\n }\n \n private removeLocalStorage(){\n localStorage.removeItem('temp_user_info');\n }\n\n}","import { Directive, ElementRef, OnInit, Renderer2, Input} from '@angular/core';\nimport { TCloudUiCheckAccessService } from '../../_services/tcloud-ui-check-access.service';\n\n@Directive({\n selector: '[TCCheckAccess]',\n standalone: true\n})\nexport class TCloudUiCheckAccessDirective implements OnInit{\n @Input() set TCCheckAccess (checkAccess: any){\n if (checkAccess){\n this.check(checkAccess);\n }\n };\n \n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private checkAccessService: TCloudUiCheckAccessService\n ) {}\n\n ngOnInit(): void {}\n\n check(checkAccess: any){\n let hasAccess = false;\n hasAccess = this.checkAccessService.check(checkAccess);\n\n let elemento = this.el.nativeElement;\n if (elemento){\n if (!hasAccess){\n this.setStyle(elemento);\n }else{\n this.normalStyle(elemento);\n }\n }else{\n // console.log(\"TCL: checkAccessDirective -> elemento\", this.el.nativeElement)\n }\n }\n\n setStyle(el: any){\n this.renderer.setStyle(el, 'background-color', 'rgb(255, 219, 94)');\n // this.renderer.setStyle(el, 'display', 'none');\n this.renderer.setAttribute(el, 'style', 'display:none !important');\n this.removeElement(el);\n }\n normalStyle(el: any){\n // this.renderer.setStyle(el, 'color', '');\n // this.renderer.setStyle(el, 'border', '1px solid darkorange');\n // this.renderer.setStyle(el, 'padding', '');\n this.renderer.setStyle(el, 'background-color', '');\n this.renderer.setStyle(el, 'display', '');\n // el.innerHTML = \"Sem acesso\";\n }\n\n removeElement(el: any) {\n if( el ){\n try {\n this.renderer.removeChild(el.parentNode, el);\n } catch (error) {} \n }\n }\n\n}","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TCloudUiCheckAccessService } from '../../_services/tcloud-ui-check-access.service';\n\n\n\n/*\n// Verificação checkAccess\n<ng-container *ngTCCheckAccess=\"[[features.backup], topologie?.infProduto]\" >\n Conteudo protegido\n</ng-container>\n\n// Verificação checkAccess com condição adicional\n<ng-container *ngTCCheckAccess=\"[[features.backup], topologie?.infProduto]; ngIf: topologie?.product == 'winthor'\" >\n Conteudo protegido\n</ng-container>\n*/\n\n@Directive({\n selector: '[ngTCCheckAccess]',\n standalone: true\n})\nexport class TCloudUiNgCheckAccessDirective {\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private checkAccessService: TCloudUiCheckAccessService\n ) { }\n\n private isCondition: boolean = true;\n\n @Input() set ngTCCheckAccess(checkAccess: any | boolean) {\n const isCheckAccess = ( typeof checkAccess === 'boolean' ) ? checkAccess : this.checkAccessService.check(checkAccess);\n setTimeout(() => { this.check_view( isCheckAccess ); }); \n }\n\n @Input() set ngTCCheckAccessNgIf(check: boolean){ \n this.isCondition = check;\n }\n\n private check_view(isView: boolean){\n if ( isView && this.isCondition ) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TCloudUiCheckAccessService } from '../../_services/tcloud-ui-check-access.service';\n\n/*\n <div *ngTCFeatureFlags=\"['pipeline_flow_pusher']\">\n\t\tTem pipeline_flow_pusher\n\t</div>\n*/\n\n@Directive({\n selector: '[ngTCFeatureFlags]',\n standalone: true\n})\nexport class TCloudUiNgFeatureFlagsDirective {\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private checkAccessService: TCloudUiCheckAccessService\n ) { }\n\n private isCondition: boolean = true;\n\n @Input() set ngTCFeatureFlags(FeatureFlags: any | boolean) {\n const isFeatureFlags = ( typeof FeatureFlags === 'boolean' ) ? FeatureFlags : this.checkAccessService.checkFeatureFlags(FeatureFlags);\n setTimeout(() => { this.check_view( isFeatureFlags ); }); \n }\n\n \n\n @Input() set TCNgFeatureFlagsNgIf(check: boolean){ \n this.isCondition = check;\n }\n\n private check_view(isView: boolean){\n if ( isView && this.isCondition ) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[TCtooltip]',\n standalone: true\n})\nexport class TCloudUiTooltipDirective {\n\n @Input() tooltipMode: 'click' | 'hover' = 'hover';\n remove: boolean = false;\n info_text: string = '';\n tooltipVisible: boolean = false;\n private tooltipElement: HTMLElement | null = null;\n\n private _direction: 'top' | 'bottom' | 'left' | 'right' = 'top';\n\n @Input() set TCtooltip(tooltip: any) {\n\n if (tooltip) {\n this.info_text = typeof tooltip === 'object' ? '' : tooltip;\n if (this.tooltipVisible && this.tooltipElement) {\n // Atualiza o conteúdo do tooltip diretamente\n this.tooltipElement.innerHTML = this.info_text;\n\n // Reaplica a posição calculada anteriormente para manter a centralização\n this.repositionTooltip();\n }\n }\n }\n\n @Input() set TCdirection(direction: any) {\n if (direction) {\n this._direction = direction;\n }\n }\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n @HostListener('document:click', ['$event']) onDocumentClick(event: MouseEvent) {\n if (this.tooltipMode === 'click' && this.tooltipVisible && this.info_text) {\n const clickedInside = this.el.nativeElement.contains(event.target) || (this.tooltipElement?.contains(event.target as Node));\n if (!clickedInside) {\n this.removeTooltip();\n }\n }\n }\n\n @HostListener('mouseover', ['$event']) onMouseOver(event: MouseEvent) {\n if (this.tooltipMode === 'hover' && !this.tooltipVisible && this.info_text) {\n this.createTooltip(event);\n this.tooltipVisible = true;\n }\n }\n\n @HostListener('mouseout', ['$event']) onMouseOut(event: MouseEvent) {\n if (this.tooltipVisible) {\n const relatedTarget = event.relatedTarget as Node;\n if (!this.el.nativeElement.contains(relatedTarget) && !this.tooltipElement?.contains(relatedTarget)) {\n this.removeTooltip();\n }\n }\n }\n\n @HostListener('click', ['$event']) onClick(event: MouseEvent) {\n if (this.tooltipMode === 'click') {\n if (this.tooltipVisible) {\n this.removeTooltip();\n } else {\n this.createTooltip(event);\n }\n this.tooltipVisible = !this.tooltipVisible;\n }\n }\n\n private createTooltip(event: MouseEvent) {\n const scrollTop = window?.scrollY || window?.pageYOffset;\n const tooltip = this.renderer.createElement('div');\n const rect = this.el.nativeElement?.getBoundingClientRect();\n const direction = this._direction || 'top';\n const el_position_x = rect?.left || 0;\n const el_position_y = rect?.top + scrollTop || 0;\n\n let width = 0;\n let height = 0;\n if (event && event.target) {\n const _event = event.target as any;\n height = _event.offsetHeight;\n width = _event.offsetWidth;\n }\n\n this.renderer.setStyle(tooltip, 'top', '0px');\n this.renderer.setStyle(tooltip, 'left', '0px');\n this.renderer.setStyle(tooltip, 'opacity', '0');\n this.renderer.addClass(tooltip, 'tc-directive-tooltip');\n this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);\n const id = this.generateID();\n this.renderer.setAttribute(tooltip, 'id', id);\n tooltip.innerHTML = this.info_text;\n this.renderer.appendChild(document.body, tooltip);\n this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);\n this.tooltipElement = tooltip;\n\n tooltip.addEventListener('mouseenter', () => this.tooltipVisible = true);\n tooltip.addEventListener('mouseleave', () => this.removeTooltip());\n }\n\n private removeTooltip() {\n const customDivAll = <any>document.querySelectorAll('.tc-directive-tooltip');\n if (customDivAll && customDivAll.length > 0) {\n setTimeout(() => {\n customDivAll.forEach((_customDiv: any) => {\n if (_customDiv) { _customDiv.remove(); }\n });\n }, 25);\n }\n this.tooltipVisible = false;\n this.tooltipElement = null;\n }\n\n private repositionTooltip() {\n if (!this.tooltipElement) return;\n\n const rect = this.el.nativeElement?.getBoundingClientRect();\n const height = this.el.nativeElement.offsetHeight;\n const width = this.el.nativeElement.offsetWidth;\n const tooltipHeight = this.tooltipElement.clientHeight;\n const tooltipWidth = this.tooltipElement.clientWidth;\n\n let p_y = 0;\n let p_x = 0;\n const scrollTop = window?.scrollY || window?.pageYOffset;\n const center_position = (rect.left + (width / 2)) - (tooltipWidth / 2);\n\n if (this._direction === 'top') {\n p_y = (rect.top + scrollTop - tooltipHeight) - 15;\n p_x = center_position;\n } else if (this._direction === 'bottom') {\n p_y = (rect.top + scrollTop + height) + 15;\n p_x = center_position;\n } else if (this._direction === 'left') {\n p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));\n p_x = rect.left - tooltipWidth - 15;\n } else if (this._direction === 'right') {\n p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));\n p_x = rect.left + width + 15;\n }\n\n this.renderer.setStyle(this.tooltipElement, 'top', `${p_y}px`);\n this.renderer.setStyle(this.tooltipElement, 'left', `${p_x}px`);\n }\n\n private generateID(target?: string): string {\n const ref = target ? `-${target}` : '';\n return `tc-tooltip-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}${ref}`;\n }\n\n private start_tooltip(id: string, height: number, width: number, el_position_x: number, el_position_y: number, direction: string) {\n setTimeout(() => {\n const tooltip: any = document.getElementById(id);\n const tooltip_height = tooltip.clientHeight;\n const tooltip_width = tooltip.clientWidth;\n\n let p_y = 0;\n let p_x = 0;\n const center_position = (el_position_x + (width / 2)) - (tooltip_width / 2);\n\n if (direction === 'top') {\n p_y = (el_position_y - tooltip_height) - 15;\n p_x = center_position;\n }\n\n if (direction === 'bottom') {\n p_y = (el_position_y + height) + 15;\n p_x = center_position;\n }\n\n if (direction === 'left') {\n p_y = el_position_y - (tooltip_height / 2) + (height / 2);\n p_x = center_position - tooltip_width / 2 - width / 2 - 15;\n }\n\n if (direction === 'right') {\n p_y = el_position_y - (tooltip_height / 2) + (height / 2);\n p_x = center_position + tooltip_width / 2 + width / 2 + 15;\n }\n\n this.renderer.setStyle(tooltip, 'top', `${p_y}px`);\n this.renderer.setStyle(tooltip, 'left', `${p_x}px`);\n this.renderer.addClass(tooltip, 'tc-tooltip-fade-in');\n });\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[TCDigitOnly]',\n standalone: true\n})\nexport class TCloudUiDigitOnlyDirective {\n inputElement: HTMLElement;\n constructor(public el: ElementRef) {\n this.inputElement = el.nativeElement;\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent) {\n if (\n [46, 8, 9, 27, 13].indexOf(e.keyCode) !== -1 || // Allow: Delete, Backspace, Tab, Escape, Enter\n (e.keyCode === 65 && e.ctrlKey === true) || // Allow: Ctrl+A\n (e.keyCode === 67 && e.ctrlKey === true) || // Allow: Ctrl+C\n (e.keyCode === 86 && e.ctrlKey === true) || // Allow: Ctrl+V\n (e.keyCode === 88 && e.ctrlKey === true) || // Allow: Ctrl+X\n (e.keyCode === 65 && e.metaKey === true) || // Allow: Cmd+A (Mac)\n (e.keyCode === 67 && e.metaKey === true) || // Allow: Cmd+C (Mac)\n (e.keyCode === 86 && e.metaKey === true) || // Allow: Cmd+V (Mac)\n (e.keyCode === 88 && e.metaKey === true) || // Allow: Cmd+X (Mac)\n (e.keyCode >= 35 && e.keyCode <= 39) // Allow: Home, End, Left, Right\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if (\n (e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) &&\n (e.keyCode < 96 || e.keyCode > 105)\n ) {\n e.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n event.preventDefault();\n if( event && event.clipboardData){\n const pastedInput: string = event.clipboardData\n .getData('text/plain')\n .replace(/\\D/g, ''); // get a digit-only string\n document?.execCommand('insertText', false, pastedInput);\n }\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n if( event && event.dataTransfer){\n const textData = event.dataTransfer.getData('text').replace(/\\D/g, '');\n this.inputElement.focus();\n document?.execCommand('insertText', false, textData);\n }\n }\n}","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[TCHighlight]',\n standalone: true\n})\nexport class TCloudUiHighLightDirective implements OnInit{\n\n @Input() TCHighlight: string | undefined;\n inputElement: HTMLElement;\n\n constructor(public el: ElementRef) {\n this.inputElement = el.nativeElement;\n }\n\n ngOnInit(): void {\n let block = document.createElement('div');\n if (!this.TCHighlight){\n block.appendChild(document.createTextNode('PRECISA FINALIZAR IMPLEMENTAÇÃO!!'));\n }else{\n block.appendChild(document.createTextNode(this.TCHighlight));\n }\n\n if( block && block.style ){\n block.style.backgroundColor = '#F00';\n block.style.color = '#FFF';\n block.style.padding = '15px';\n block.style.textAlign = 'center';\n block.style.fontWeight = '600';\n }\n\n this.inputElement.insertBefore(block, this.inputElement.firstChild);\n }\n\n\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[TCIpMask]',\n standalone: true\n})\nexport class TCloudUiIpMaskDirective{\n constructor(public el: ElementRef) {\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: any) {\n // console.log(\"IpMaskDirective -> onKeyDown -> e.keyCode\", e.keyCode);\n if (\n [190, 108, 191, 110, 111].indexOf(e.keyCode) !== -1 || // Allow: ponto(.), ponto(.) Teclado numérico, barra(/) , barra(/) Teclado numérico\n [46, 8, 9, 27, 13].indexOf(e.keyCode) !== -1 || // Allow: Delete, Backspace, Tab, Escape, Enter\n (e.keyCode === 65 && e.ctrlKey === true) || // Allow: Ctrl+A\n (e.keyCode === 67 && e.ctrlKey === true) || // Allow: Ctrl+C\n (e.keyCode === 86 && e.ctrlKey === true) || // Allow: Ctrl+V\n (e.keyCode === 88 && e.ctrlKey === true) || // Allow: Ctrl+X\n (e.keyCode === 65 && e.metaKey === true) || // Allow: Cmd+A (Mac)\n (e.keyCode === 67 && e.metaKey === true) || // Allow: Cmd+C (Mac)\n (e.keyCode === 86 && e.metaKey === true) || // Allow: Cmd+V (Mac)\n (e.keyCode === 88 && e.metaKey === true) || // Allow: Cmd+X (Mac)\n (e.keyCode >= 35 && e.keyCode <= 39) // Allow: Home, End, Left, Right\n ) {\n // let it happen, don't do anything\n return;\n }\n\n // Ensure that it is a number and stop the keypress\n if (\n (e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) &&\n (e.keyCode < 96 || e.keyCode > 105)\n ) {\n e.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n event.preventDefault();\n if( event && event.clipboardData ){\n const pastedInput: string = event.clipboardData\n .getData('text/plain')\n .replace(/\\D/g, ''); // get a digit-only string\n document?.execCommand('insertText', false, pastedInput);\n }\n }\n}","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n// Componentes standalone\nimport { TCloudUiAccordionComponent } from './_modules/tcloud-ui-accordion/tcloud-ui-accordion.component';\nimport { TCloudUiAccordionBodyComponent } from './_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component';\nimport { TCloudUiAccordionTitleComponent } from './_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component';\nimport { TCloudUiChoiceIssuesComponent } from './_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component';\nimport { TCloudUiDataListComponent } from './_modules/tcloud-ui-data-list/tcloud-ui-data-list.component';\nimport { TCloudUiDataListOptionComponent } from './_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\nimport { TCloudUiDatepickerTimeComponent } from './_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\nimport { TCloudUiDatepickerComponent } from './_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component';\nimport { TCloudUiFiltersComponent } from './_modules/tcloud-ui-filters/tcloud-ui-filters.component';\nimport { TCloudUiRangeDateComponent } from './_modules/tcloud-ui-filters/components/range-date/range-date.component';\nimport { TCloudUiInputSearchComponent } from './_modules/tcloud-ui-input-search/tcloud-ui-input-search.component';\nimport { TCloudUiLineStepCircleComponent } from './_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component';\nimport { TCloudUiLinhaLogoComponent } from './_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component';\nimport { TCloudUiModalComponent } from './_modules/tcloud-ui-modal/tcloud-ui-modal.component';\nimport { TCloudUiModalBodyComponent } from './_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component';\nimport { TCloudUiModalHeaderComponent } from './_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component';\nimport { TCloudUiModalFooterComponent } from './_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component';\nimport { TCloudUiMultiInputComponent } from './_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component';\nimport { TCloudUiMultiSelectComponent } from './_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component';\nimport { TCloudUiNotFoundComponent } from './_modules/tcloud-ui-not-found/tcloud-ui-not-found.component';\nimport { TCloudUiNumberStepComponent } from './_modules/tcloud-ui-number-step/tcloud-ui-number-step.component';\nimport { TCloudUiScrollBoxComponent } from './_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component';\nimport { TCloudUiTabMenuComponent } from './_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component';\nimport { TCloudUiTabHeadComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component';\nimport { TCloudUiTabContentComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component';\nimport { TCloudUiTabTitleComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component';\nimport { TCloudUiTabSubtitleComponent } from './_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component';\nimport { TCloudUiTableComponent } from './_modules/tcloud-ui-table/tcloud-ui-table.component';\nimport { TCloudUiInputPasswordComponent } from './_modules/tcloud-ui-input-password/tcloud-ui-input-password.component';\nimport { TCloudUiLabelTokenComponent } from './_modules/tcloud-ui-label-token/tcloud-ui-label-token.component';\nimport { TCloudUiLineStepTitleComponent } from './_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component';\nimport { TCloudUiLoadingComponent } from './_modules/tcloud-ui-loading/tcloud-ui-loading.component';\nimport { TCloudUiCubesComponent } from './_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component';\nimport { TCloudUiMultiplesValuesComponent } from './_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component';\nimport { TCloudUiProgressBarComponent } from './_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component';\nimport { TCloudUiReorderItemsComponent } from './_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component';\nimport { TCloudUiWelcomeComponent } from './_modules/tcloud-ui-welcome/tcloud-ui-welcome.component';\nimport { TCloudUiContainerComponent } from './_modules/tcloud-ui-container/tcloud-ui-container.component';\nimport { TCloudUiContainerColComponent } from './_modules/tcloud-ui-container/components/tcloud-ui-container-col/tcloud-ui-container-col.component';\nimport { TCloudUiContainerContentComponent } from './_modules/tcloud-ui-container/components/tcloud-ui-container-content/tcloud-ui-container-content.component';\n\n\n\n// Diretivas standalone\nimport { TCloudUiAlignDirective } from './_directives/align/align.directive';\nimport { TCloudUiCurrencyDirective } from './_directives/currency/currency.directive';\nimport { TCloudUiElCopyDirective } from './_directives/el-copy/el-copy.directive';\nimport { TCloudUiHoverParentDirective } from './_directives/hover-parent/hover-parent.directive';\nimport { TCloudUiCheckAccessDirective } from './_directives/tcloud-access/tcloud-ui-check-access.directive';\nimport { TCloudUiNgCheckAccessDirective } from './_directives/tcloud-access/tcloud-ui-ng-check-access.directive';\nimport { TCloudUiNgFeatureFlagsDirective } from './_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive';\nimport { TCloudUiTooltipDirective } from './_directives/tooltip/tooltip.directive';\nimport { TCloudUiDigitOnlyDirective } from './_directives/tcloud-ui-digit-only.directive';\nimport { TCloudUiHighLightDirective } from './_directives/tcloud-ui-highlight.diretive';\nimport { TCloudUiIpMaskDirective } from './_directives/tcloud-ui-ip-mask.directive';\nimport { TCloudUiButtonDirective } from './_directives/tcloud-button/tcloud-button.directive';\n\n// Pipes standalone\nimport { ToTextPipe } from './_pipes/array-to-text';\nimport { BytesPipe } from './_pipes/bytes';\nimport { CNPJPipe } from './_pipes/cnpj';\nimport { CPFPipe } from './_pipes/cpf';\nimport { DateBRPipe } from './_pipes/datebr';\nimport { MonthNamePipe } from './_pipes/monthname';\nimport { RespectivePipe } from './_pipes/respective';\nimport { StatusInfoPipe } from './_pipes/statusinfo';\n\n// Serviços\nimport { TCloudUiLoadingTransitionsService } from './_services/loading-transitions.service';\nimport { TCloudUiSearchInObjectService } from './_services/search-in-object.service';\nimport { TCloudUiCheckAccessService } from './_services/tcloud-ui-check-access.service';\nimport { TCloudUiLayoutService } from './_services/tcloud-ui-layout.services';\nimport { TCloudUiDeviceUtilsService } from './_services/tcloud-ui-device-utils.service';\nimport { TCloudUiConfig } from './tcloud-ui.config';\nimport { \n TCLOUD_UI_CONFIG, \n TCLOUD_UI_USER_SERVICE, \n TCLOUD_UI_LAYOUT_SERVICE, \n TCLOUD_UI_VIEWPORT_SERVICE \n} from './tcloud-ui.tokens';\nimport { TCloudUiFormDirective } from './_directives/tcloud-form/tcloud-form.directive';\n\n\n\nconst COMPONENTS = [\n TCloudUiAccordionComponent,\n TCloudUiAccordionBodyComponent,\n TCloudUiAccordionTitleComponent,\n TCloudUiChoiceIssuesComponent,\n TCloudUiDataListComponent,\n TCloudUiDataListOptionComponent,\n TCloudUiDatepickerTimeComponent,\n TCloudUiDatepickerComponent,\n TCloudUiFiltersComponent,\n TCloudUiRangeDateComponent,\n TCloudUiInputSearchComponent,\n TCloudUiLineStepCircleComponent,\n TCloudUiLinhaLogoComponent,\n TCloudUiModalComponent,\n TCloudUiModalBodyComponent,\n TCloudUiModalHeaderComponent,\n TCloudUiModalFooterComponent,\n TCloudUiMultiInputComponent,\n TCloudUiMultiSelectComponent,\n TCloudUiNotFoundComponent,\n TCloudUiNumberStepComponent,\n TCloudUiScrollBoxComponent,\n TCloudUiTabMenuComponent,\n TCloudUiTabHeadComponent,\n TCloudUiTabContentComponent,\n TCloudUiTabTitleComponent,\n TCloudUiTabSubtitleComponent,\n TCloudUiTableComponent,\n TCloudUiInputPasswordComponent,\n TCloudUiLabelTokenComponent,\n TCloudUiLineStepTitleComponent,\n TCloudUiLoadingComponent,\n TCloudUiCubesComponent,\n TCloudUiMultiplesValuesComponent,\n TCloudUiProgressBarComponent,\n TCloudUiReorderItemsComponent,\n TCloudUiWelcomeComponent,\n TCloudUiContainerComponent,\n TCloudUiContainerColComponent,\n TCloudUiContainerContentComponent\n];\n\nconst DIRECTIVES = [\n TCloudUiAlignDirective,\n TCloudUiCurrencyDirective,\n TCloudUiElCopyDirective,\n TCloudUiHoverParentDirective,\n TCloudUiCheckAccessDirective,\n TCloudUiNgCheckAccessDirective,\n TCloudUiNgFeatureFlagsDirective,\n TCloudUiTooltipDirective,\n TCloudUiDigitOnlyDirective,\n TCloudUiHighLightDirective,\n TCloudUiIpMaskDirective,\n TCloudUiButtonDirective,\n TCloudUiFormDirective\n];\n\nconst PIPES = [\n ToTextPipe,\n BytesPipe,\n CNPJPipe,\n CPFPipe,\n DateBRPipe,\n MonthNamePipe,\n RespectivePipe,\n StatusInfoPipe\n];\n\n@NgModule({\n imports: [\n ...COMPONENTS,\n ...DIRECTIVES,\n ...PIPES\n ],\n exports: [\n ...COMPONENTS,\n ...DIRECTIVES,\n ...PIPES\n ],\n providers: [\n DatePipe,\n StatusInfoPipe\n ]\n})\nexport class TCloudUiModule {\n\n static forRoot(config?: TCloudUiConfig): ModuleWithProviders<TCloudUiModule> {\n const providers: Provider[] = [\n // Configuração principal\n { provide: TCLOUD_UI_CONFIG, useValue: config?.data ?? {} },\n DatePipe,\n StatusInfoPipe\n ];\n\n // Adiciona serviços customizados se fornecidos\n if (config?.services?.userService) {\n providers.push({ provide: TCLOUD_UI_USER_SERVICE, useClass: config.services.userService });\n }\n \n if (config?.services?.layoutService) {\n providers.push({ provide: TCLOUD_UI_LAYOUT_SERVICE, useClass: config.services.layoutService });\n }\n \n if (config?.services?.viewportService) {\n providers.push({ provide: TCLOUD_UI_VIEWPORT_SERVICE, useClass: config.services.viewportService });\n }\n\n return {\n ngModule: TCloudUiModule,\n providers\n };\n }\n}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { TCloudUiConfig } from './tcloud-ui.config';\nimport { StatusInfoPipe } from './_pipes';\nimport { \n TCLOUD_UI_CONFIG, \n TCLOUD_UI_USER_SERVICE, \n TCLOUD_UI_LAYOUT_SERVICE, \n TCLOUD_UI_VIEWPORT_SERVICE \n} from './tcloud-ui.tokens';\n\n/**\n * Função provider para configurar o TCloud UI em aplicações standalone do Angular.\n * Use esta função no `main.ts` ou em `app.config.ts` com `bootstrapApplication`.\n * \n * @param config - Configuração opcional do TCloud UI\n * @returns EnvironmentProviders para uso em aplicações standalone\n * \n * @example\n * ```typescript\n * // main.ts\n * import { provideTCloudUi } from 'tcloud-ui';\n * \n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideTCloudUi({\n * data: { apiUrl: 'https://api.example.com' },\n * services: {\n * userService: CustomUserService,\n * themeService: CustomThemeService,\n * viewportService: CustomViewportService\n * }\n * })\n * ]\n * });\n * ```\n */\nexport function provideTCloudUi(config?: TCloudUiConfig): EnvironmentProviders {\n const providers: Provider[] = [\n // Configuração principal\n { provide: TCLOUD_UI_CONFIG, useValue: config?.data ?? {} },\n \n // Pipes necessários para os serviços\n DatePipe,\n StatusInfoPipe\n ];\n\n // Adiciona serviços customizados se fornecidos\n if (config?.services?.userService) {\n providers.push({ provide: TCLOUD_UI_USER_SERVICE, useClass: config.services.userService });\n }\n \n if (config?.services?.layoutService) {\n providers.push({ provide: TCLOUD_UI_LAYOUT_SERVICE, useClass: config.services.layoutService });\n }\n \n if (config?.services?.viewportService) {\n providers.push({ provide: TCLOUD_UI_VIEWPORT_SERVICE, useClass: config.services.viewportService });\n }\n\n return makeEnvironmentProviders(providers);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiLoadingTransitionsService {\n\n \n\n private ID: string = 'tcloud-ui-loading-transitions';\n\n constructor(\n ) {}\n\n /**\n * Inicia a tela de bloqueio para carregamento de tarefa\n */\n start(){\n this.create_loading_transition();\n if( document.getElementById(this.ID) ){\n const box = document.getElementById(this.ID);\n box?.classList.add('tcloud-ui-start-loading');\n }\n }\n\n /**\n * Encerra a tela de bloqueio\n */\n stop(){\n if( document.getElementById(this.ID) ){\n const box = document.getElementById(this.ID);\n box?.classList.remove('tcloud-ui-start-loading');\n\n const body = document.getElementsByTagName('body')[0];\n body.classList.remove('tcloud-ui-body-loading-transitions');\n }\n }\n\n private create_loading_transition(){\n let box = null as any;\n if( document.getElementById(this.ID) ){\n box = document.getElementById(this.ID);\n }else{\n box = document.createElement(\"div\");\n box.setAttribute('id', this.ID);\n \n } \n\n box.style.display = 'none';\n box.innerHTML = `<div class=\"tc-loading-icon\"><i class=\"fas fa-spinner fa-spin\"></i></div>`;\n\n const body = document.getElementsByTagName('body')[0];\n body.appendChild(box);\n body.classList.add('tcloud-ui-body-loading-transitions');\n }\n\n\n\n}","import { CommonModule } from '@angular/common';\nimport { Component, Input, input, output } from '@angular/core';\nimport { Params, RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tcloud-ui-sub-navbar-item',\n imports: [\n CommonModule,\n RouterModule,\n ],\n templateUrl: './tcloud-ui-sub-navbar-item.component.html',\n styleUrl: './tcloud-ui-sub-navbar-item.component.scss'\n})\nexport class TCloudUiSubNavbarItemComponent\n{\n @Input() isMenuExpanded: boolean;\n public label = input.required<string>();\n public onClick = output<MouseEvent>()\n public active = input<boolean>(false);\n public routerLink = input<string | null>(null);\n public queryParams = input<Params | null>(null);\n\n public handleClick(_ev: MouseEvent): void\n {\n this.onClick.emit(_ev);\n }\n}\n","<li\n class=\"tc-sub-navbar-item\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded\">\n <a\n class=\"tc-sub-navbar-item-link\"\n [class.selected]=\"active()\"\n [routerLink]=\"routerLink()\"\n routerLinkActive=\"active\"\n [queryParams]=\"queryParams()\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"label()\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n\n @if (isMenuExpanded)\n {\n <div class=\"navbar-item-label\">\n {{label()}}\n </div>\n }\n </a>\n</li>\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChildren, output, signal } from '@angular/core';\nimport { TCloudUiSubNavbarItemComponent } from './component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component';\n\n@Component({\n selector: 'tc-rev-sub-navbar',\n imports: [\n CommonModule,\n TCloudUiSubNavbarItemComponent,\n ],\n templateUrl: './tcloud-ui-sub-navbar.component.html',\n styleUrl: './tcloud-ui-sub-navbar.component.scss'\n})\nexport class TCloudUiSubNavbarComponent\n{\n @ContentChildren(TCloudUiSubNavbarItemComponent) subNavbarItems!: TCloudUiSubNavbarItemComponent[];\n public isMenuExpanded = signal<boolean>(true);\n public onSubMenuExpandChange = output<boolean>();\n\n\n ngAfterContentInit(): void\n {\n setTimeout(() => this.setExpandedMenuValueToChildrend(), 0);\n }\n\n public handleExpandMenu(): void\n {\n this.isMenuExpanded.update((value) => !value);\n this.setExpandedMenuValueToChildrend();\n }\n\n private setExpandedMenuValueToChildrend(): void\n {\n if (!this.subNavbarItems?.length) return;\n this.subNavbarItems.forEach((x) =>\n {\n x.isMenuExpanded = this.isMenuExpanded();\n });\n\n this.onSubMenuExpandChange.emit(this.isMenuExpanded());\n }\n}\n","<nav class=\"tc-sub-navbar\">\n <ul\n class=\"tc-sub-navbar-list\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded()\"\n >\n <tcloud-ui-sub-navbar-item\n [isMenuExpanded]=\"isMenuExpanded()\"\n (click)=\"handleExpandMenu()\"\n label=\"Minimizar\"\n >\n <i\n class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded()\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded()\"\n icon\n ></i>\n </tcloud-ui-sub-navbar-item>\n <ng-content></ng-content>\n </ul>\n</nav>\n","import { Directive, effect, ElementRef, input } from '@angular/core';\n\n@Directive({\n selector: 'button[tcRevButton]',\n host: {\n class: 'tc-rev-btn'\n }\n})\nexport class TcRevButtonDirective {\n public color = input<'primary' | 'light' | 'danger' | 'dark'>('primary');\n public size = input<'lg' | 'md' | 'sm'>('sm');\n public fullWidth = input<boolean>(false);\n public tcRevButton = input<'filled' | 'outline' | 'link'>('filled');\n\n constructor(private _el: ElementRef<HTMLButtonElement>) {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses(): void {\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-rev-btn--')));\n\n let tcRevButton = this.tcRevButton();\n\n if (!tcRevButton) {\n tcRevButton = 'filled';\n }\n\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-btn--full-width') : null;\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.color()}-${tcRevButton}`);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, Input, input, output } from '@angular/core';\n\nexport interface CalendarAppointment\n{\n appointmentDate: string;\n type: 'info' | 'alert' | 'danger' | 'success';\n description: string;\n}\n\n@Component({\n selector: 'tc-rev-calendar',\n imports: [\n CommonModule,\n ],\n templateUrl: './tc-rev-calendar.component.html',\n styleUrls: ['./tc-rev-calendar.component.scss']\n})\nexport class TcRevCalendarComponent {\n @Input() appointments: CalendarAppointment[] = []; // Updated to use the new type\n /** Active date format\n * @format YYYY-MM-DD\n * @example 2023-10-01\n */\n public activeDate = input<string>();\n public innerActiveDate = computed(() =>\n {\n if (!this.activeDate()) return '';\n \n const date = new Date(`${this.activeDate()!} 00:00:00`);\n return date;\n });\n public onSelectDate = output<Date>();\n currentDate: Date = new Date();\n viewMode: 'days' | 'months' | 'years' = 'days';\n yearOffset: number = 0; // Offset for year navigation\n\n // Fixed properties\n public month: string;\n public year: number;\n public daysOfWeek: string[];\n public calendarDays: { date: Date; isCurrentMonth: boolean }[];\n public calendarMonths: string[];\n public calendarYears: number[];\n\n ngOnInit(): void\n {\n this.updateMonth();\n this.updateYear();\n this.updateDaysOfWeek();\n this.updateCalendarDays();\n this.updateCalendarMonths();\n this.updateCalendarYears();\n }\n\n // Methods to update fixed properties\n updateMonth(): void\n {\n this.month = this.currentDate.toLocaleString('default', { month: 'long' });\n }\n\n updateYear(): void\n {\n this.year = this.currentDate.getFullYear();\n }\n\n updateDaysOfWeek(): void\n {\n this.daysOfWeek = ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'];\n }\n\n updateCalendarDays(): void\n {\n const year = this.currentDate.getFullYear();\n const month = this.currentDate.getMonth();\n\n const firstDayOfMonth = new Date(year, month, 1);\n const lastDayOfMonth = new Date(year, month + 1, 0);\n\n const daysInLastMonth = firstDayOfMonth.getDay();\n const daysInCurrentMonth = lastDayOfMonth.getDate();\n\n const calendarDays: { date: Date; isCurrentMonth: boolean }[] = [];\n\n // Add last days of the previous month\n for (let i = daysInLastMonth - 1; i >= 0; i--)\n {\n const date = new Date(year, month, -i);\n calendarDays.push({ date, isCurrentMonth: false });\n }\n\n // Add all days of the current month\n for (let i = 1; i <= daysInCurrentMonth; i++)\n {\n const date = new Date(year, month, i);\n calendarDays.push({ date, isCurrentMonth: true });\n }\n\n // Add first days of the next month\n const remainingDays = 35 - calendarDays.length;\n for (let i = 1; i <= remainingDays; i++)\n {\n const date = new Date(year, month + 1, i);\n calendarDays.push({ date, isCurrentMonth: false });\n }\n\n this.calendarDays = calendarDays;\n console.log('calendarDays', this.calendarDays[16].date);\n }\n\n updateCalendarMonths(): void\n {\n this.calendarMonths = Array.from({ length: 12 }, (_, i) =>\n new Date(this.year, i).toLocaleString('default', { month: 'long' })\n );\n }\n\n updateCalendarYears(): void\n {\n const startYear = this.year - 5 + this.yearOffset * 12;\n this.calendarYears = Array.from({ length: 12 }, (_, i) => startYear + i);\n }\n\n // Existing methods updated to call the update methods\n changeMonth(offset: number): void\n {\n this.currentDate = new Date(\n this.currentDate.getFullYear(),\n this.currentDate.getMonth() + offset,\n 1\n );\n this.updateMonth();\n this.updateYear();\n this.updateCalendarDays();\n }\n\n selectMonth(monthIndex: number): void\n {\n this.currentDate = new Date(this.year, monthIndex, 1);\n this.viewMode = 'days';\n this.updateMonth();\n this.updateCalendarDays();\n }\n\n changeYearOffset(offset: number): void\n {\n if (this.viewMode === 'months')\n {\n // Adjust the current date by adding or subtracting a year\n this.currentDate = new Date(this.currentDate.getFullYear() + offset, this.currentDate.getMonth(), 1);\n this.updateYear();\n this.updateCalendarMonths();\n }\n else if (this.viewMode === 'years')\n {\n // Adjust the year offset for the year view\n this.yearOffset += offset;\n this.updateCalendarYears();\n }\n }\n\n selectYear(year: number): void\n {\n this.currentDate = new Date(year, this.currentDate.getMonth(), 1);\n this.viewMode = 'months';\n this.updateYear();\n this.updateCalendarMonths();\n }\n\n toggleViewMode(mode: 'months' | 'years'): void\n {\n this.viewMode = mode;\n if (mode === 'years') {\n this.yearOffset = 0; // Reset year offset when entering year view\n this.updateCalendarYears();\n }\n }\n\n isAppointment(date: Date): CalendarAppointment | undefined\n {\n const dateString = date.toISOString().split('T')[0];\n return this.appointments.find(appointment => appointment.appointmentDate === dateString);\n }\n}","<div class=\"tc-rev-calendar\">\n <div class=\"calendar-header\">\n <button class=\"prev-btn mar-r-a\" (click)=\"changeMonth(-1)\" *ngIf=\"viewMode === 'days'\"><i class=\"fa-light fa-chevron-left\"></i></button>\n <button class=\"prev-btn mar-r-a\" (click)=\"changeYearOffset(-1)\" *ngIf=\"viewMode === 'months' || viewMode === 'years'\"><i class=\"fa-light fa-chevron-left\"></i></button>\n @if (viewMode === 'days')\n {\n <span class=\"calendar-title date\" (click)=\"toggleViewMode('months')\">{{ month }} - </span>\n <span class=\"calendar-title date\" (click)=\"toggleViewMode('years')\">{{ year }}</span>\n }\n @else if (viewMode === 'months')\n {\n <span class=\"calendar-title\">Selecione o mês</span>\n }\n @else if (viewMode === 'years')\n {\n <span class=\"calendar-title\">Selecione o ano</span>\n } \n <button class=\"next-btn mar-l-a\" (click)=\"changeYearOffset(1)\" *ngIf=\"viewMode === 'months' || viewMode === 'years'\"><i class=\"fa-light fa-chevron-right\"></i></button>\n <button class=\"next-btn mar-l-a\" (click)=\"changeMonth(1)\" *ngIf=\"viewMode === 'days'\"><i class=\"fa-light fa-chevron-right\"></i></button>\n </div>\n\n <div class=\"calendar-grid\" *ngIf=\"viewMode === 'days'\">\n <div class=\"day-header\" *ngFor=\"let day of daysOfWeek\">{{ day }}</div>\n <button\n *ngFor=\"let day of calendarDays\"\n class=\"day\"\n [class.selected]=\"day.date.valueOf() === innerActiveDate().valueOf()\"\n [class.current-month]=\"day.isCurrentMonth\"\n [title]=\"isAppointment(day.date)?.description ? isAppointment(day.date)?.description : ''\"\n (click)=\"onSelectDate.emit(day.date)\"\n >\n <span\n *ngIf=\"isAppointment(day.date)\"\n class=\"appointment-dot\"\n [ngClass]=\"'appointment-'+ isAppointment(day.date)?.type\"\n ></span>\n {{ day.date.getDate() }}\n </button>\n </div>\n\n <div class=\"calendar-grid months\" *ngIf=\"viewMode === 'months'\">\n <div\n class=\"month\"\n *ngFor=\"let month of calendarMonths; let i = index\"\n (click)=\"selectMonth(i)\"\n >\n {{ month }}\n </div>\n </div>\n\n <div class=\"calendar-grid years\" *ngIf=\"viewMode === 'years'\">\n <div\n class=\"year\"\n *ngFor=\"let year of calendarYears\"\n (click)=\"selectYear(year)\"\n >\n {{ year }}\n </div>\n </div>\n</div>","import { Component, inject, input } from '@angular/core';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-card-title',\n imports: [],\n templateUrl: './tc-rev-card-title.component.html',\n styleUrl: './tc-rev-card-title.component.scss'\n})\nexport class TcRevCardTitleComponent\n{\n public title = input.required<string>();\n}\n","<div class=\"tc-rev-card-title c-neutral-700\">\n <span class=\"tc-rev-card-title__icon w-40 h-40 f-size-18 bg-c-neutral-200 bor-rad-rounded\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n\n <h2 class=\"tc-rev-card-title__text f-h2 f-weight-700 mar-none\">{{title()}}</h2>\n\n <ng-content></ng-content>\n</div>\n","import {\n animate,\n AnimationBuilder,\n AnimationPlayer,\n style,\n} from '@angular/animations';\nimport {\n Injectable,\n signal,\n computed,\n EmbeddedViewRef,\n inject,\n Renderer2,\n ApplicationRef,\n TemplateRef,\n RendererFactory2,\n} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TCloudUiDeviceUtilsService {\n /*** Viewport mobile ***/\n\n private readonly DESKTOP_MIN = 480;\n private widthScreen = signal(window.innerWidth);\n\n // largura atual da viewport\n width = computed(() => this.widthScreen());\n\n isDesktop = computed(() => this.width() > this.DESKTOP_MIN);\n isMobile = computed(() => this.width() <= this.DESKTOP_MIN);\n\n \n /*** Utils ***/\n\n /* Dropdown */\n\n private renderer: Renderer2;\n private menuHost: HTMLElement | null = null;\n private embeddedView: EmbeddedViewRef<any> | null = null;\n\n private appRef = inject(ApplicationRef);\n private animationBuilder = inject(AnimationBuilder);\n private player: AnimationPlayer | null = null;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n window.addEventListener('resize', () => {\n this.widthScreen.set(window.innerWidth);\n });\n }\n\n public openDropdownDevice(menuTemplate: TemplateRef<any>): void {\n this.menuHost = this.renderer.createElement('div');\n\n this.renderer.setStyle(this.menuHost, 'position', 'fixed');\n this.renderer.setStyle(this.menuHost, 'top', '0');\n this.renderer.setStyle(this.menuHost, 'left', '0');\n this.renderer.setStyle(this.menuHost, 'width', '100vw');\n this.renderer.setStyle(this.menuHost, 'height', '100vh');\n this.renderer.setStyle(this.menuHost, 'z-index', '9999');\n this.renderer.setStyle(this.menuHost, 'opacity', '0');\n\n this.renderer.appendChild(document.body, this.menuHost);\n\n // Impede scroll da página externa enquanto o dropdown está aberto\n this.renderer.setStyle(document.body, 'overflow', 'hidden');\n this.renderer.setStyle(document.body, 'touch-action', 'none');\n\n this.embeddedView = menuTemplate.createEmbeddedView({});\n this.appRef.attachView(this.embeddedView);\n this.embeddedView.rootNodes.forEach((node) => {\n this.renderer.appendChild(this.menuHost!, node);\n });\n\n const fadeIn = this.animationBuilder.build([\n style({ opacity: 0 }),\n animate('200ms ease', style({ opacity: 1 })),\n ]);\n this.player = fadeIn.create(this.menuHost!);\n this.player.play();\n }\n public closeDropdownDevice(): void {\n if (!this.menuHost) return;\n const fadeOut = this.animationBuilder.build([\n style({ opacity: 1 }),\n animate('200ms ease', style({ opacity: 0 })),\n ]);\n this.player = fadeOut.create(this.menuHost);\n this.player.play();\n\n this.player.onDone(() => {\n this.renderer.removeStyle(document.body, 'overflow');\n this.renderer.removeStyle(document.body, 'touch-action');\n\n if (this.embeddedView) {\n this.appRef.detachView(this.embeddedView);\n this.embeddedView.destroy();\n this.embeddedView = null;\n }\n this.renderer.removeChild(document.body, this.menuHost);\n this.menuHost = null;\n this.player = null;\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, input, model, output } from '@angular/core';\nimport { TcRevButtonDirective } from '../tc-rev-button/tc-rev-button.directive';\nimport { TcRevCardTitleComponent } from '../tc-rev-card-title/tc-rev-card-title.component';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-card-accordion',\n imports: [CommonModule, TcRevCardTitleComponent, TcRevButtonDirective],\n templateUrl: './tc-rev-card-accordion.component.html',\n styleUrl: './tc-rev-card-accordion.component.scss',\n})\nexport class TcRevCardAccordionComponent {\n public _viewPort = inject(TCloudUiDeviceUtilsService);\n\n public toggle = output<boolean>();\n public title = input<string>('');\n public iconClass = input<string>('fa-light fa-hard-drive');\n public showMoreText = input<string>('Exibir mais');\n public showLessText = input<string>('Exibir menos');\n public badge = input<{ text: string; class: string } | null>(null);\n public isOpen = model<boolean>();\n public isDesktop = this._viewPort.isDesktop;\n\n public toggleAccordion(): void {\n this.isOpen.update((current) => !current);\n this.toggle.emit(this.isOpen());\n }\n\n /**\n * APPLY FUNCTIONS RESPONSIVE < 500PX\n */\n get accordionExtraClasses(): string[] {\n if (this.isDesktop()) {\n return ['pad-16'];\n }\n //Responsive Classes\n return ['pad-14'];\n }\n\n\n}\n","<div class=\"tc-rev-card-accordion tc-rev-card bg-c-neutral-50 bor-xs bor-rad-16\"\n[ngClass]=\"accordionExtraClasses\"\n>\n <tc-rev-card-title [title]=\"title()\" [class]=\"isOpen() ? 'pad-b-16' : '' \">\n <i [class]=\"iconClass()\" icon></i>\n\n <div\n *ngIf=\"badge()\"\n class=\"f-size-12 f-weight-600 pad-x-4 pad-y-2 bor-xs bor-rad-xs\"\n [ngClass]=\"badge()?.class\"\n [class.mar-l-8]=\"isDesktop()\"\n >\n {{ badge()?.text }}\n </div>\n\n @if(isDesktop()){\n <button tcRevButton=\"outline\" color=\"dark\" size=\"sm\" class=\"mar-l-a\" (click)=\"toggleAccordion()\">\n {{ isOpen() ? showLessText() : showMoreText() }}\n <i class=\"fa-light\" [ngClass]=\"isOpen() ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n\n @if(!isDesktop()){\n <button tcRevButton=\"link\" color=\"dark\" size=\"md\" (click)=\"toggleAccordion()\" class=\"tc-rev-card-accordion__arrow-mobile mar-l-a\">\n <i class=\"fa-light\" [ngClass]=\"isOpen() ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n\n </tc-rev-card-title>\n <ng-content *ngIf=\"isOpen()\"></ng-content>\n</div>\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-card',\n imports: [CommonModule],\n templateUrl: './tc-rev-card.component.html',\n styleUrl: './tc-rev-card.component.scss',\n})\nexport class TcRevCardComponent {\n public _viewPort = inject(TCloudUiDeviceUtilsService);\n public isDesktop = this._viewPort.isDesktop;\n\n /**\n * APPLY FUNCTIONS RESPONSIVE < 480PX\n */\n get extraClasses(): string[] {\n if (this.isDesktop()) {\n return ['shadow-md', 'pad-16'];\n }\n //Responsive Classes\n return ['shadow-sm', 'pad-14'];\n }\n}\n","<div class=\"tc-rev-card bg-c-neutral-50 bor-rad-16\"\n[ngClass]=\"extraClasses\"\n>\n <ng-content></ng-content>\n</div>","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'input[type=\"checkbox\"][tcRevCheckbox]',\n host: {\n class: 'tc-rev-checkbox'\n }\n})\nexport class TcRevCheckboxDirective {\n\n constructor() { }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, input, output, Output, SimpleChanges, viewChild } from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs';\n\n@Component({\n selector: 'tc-rev-search-input',\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n templateUrl: './tc-rev-search-input.component.html',\n styleUrl: './tc-rev-search-input.component.scss'\n})\nexport class TcRevSearchInputComponent {\n @Input() searchText: string;\n @Output() searchTextChange = new EventEmitter<string>();\n protected searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n protected searchTextForm = new FormControl('');\n public placeholder = input<string>('');\n public onSearch = output<string>();\n public autoFocus = input<boolean>(false);\n\n ngOnChanges(_simpleChanges: SimpleChanges): void {\n if (_simpleChanges['searchText']) {\n this.searchTextForm.setValue(this.searchText);\n }\n }\n\n ngOnInit(): void {\n // Inicializa o FormControl com o valor do model\n this.searchTextForm.setValue(this.searchText);\n\n this.searchTextForm.valueChanges\n .pipe(\n debounceTime(500),\n distinctUntilChanged(),\n map((text) => text?.toLowerCase() || '')\n )\n .subscribe((text) => {\n this.searchTextChange.emit(text);\n this.onSearch.emit(text);\n });\n }\n\n ngAfterViewInit(): void {\n if (this.autoFocus() && this.searchInput) {\n this.searchInput().nativeElement.focus();\n }\n }\n}\n","<form class=\"tc-rev-search-input-container\">\n <input\n type=\"text\"\n class=\"tc-rev-search-input-control\"\n [formControl]=\"this.searchTextForm\"\n [placeholder]=\"this.placeholder()\"\n #searchInput\n />\n\n <button class=\"tc-rev-search-input-btn\">\n <i class=\"fa-light fa-magnifying-glass\"></i>\n </button>\n</form>\n\n\n","import { Directive, effect, ElementRef, input } from '@angular/core';\n\n@Directive({\n selector: 'button[tcRevIconButton]',\n host: {\n class: 'tc-rev-btn tc-rev-btn-icon'\n }\n})\nexport class TcRevIconButtonDirective {\n public color = input<'primary' | 'light' | 'danger' | 'dark'>('primary');\n public size = input<'lg' | 'md' | 'sm'>('sm');\n public tcRevIconButton = input<'filled' | 'outline' | 'link'>('filled');\n\n constructor(private _el: ElementRef<HTMLButtonElement>) {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses(): void {\n const tokenList = this._el.nativeElement.classList;\n tokenList.remove(...Array.from(tokenList).filter((c) => c.startsWith('tc-rev-btn--')));\n\n let tcRevIconButton = this.tcRevIconButton();\n\n if (!tcRevIconButton) {\n tcRevIconButton = 'filled';\n }\n\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.size()}-icon`);\n this._el.nativeElement.classList.add(`tc-rev-btn--${this.color()}-${tcRevIconButton}`);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TcRevSearchInputComponent } from '../tc-rev-search-input/tc-rev-search-input.component';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\nimport { TcRevIconButtonDirective } from '../tc-rev-icon-button/tc-rev-icon-button.directive';\n\nexport interface DropdownGroupedOption {\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n group?: string;\n}\n\nexport interface DropdownGroup {\n groupName: string;\n options: DropdownGroupedOption[];\n}\n\nexport enum DropdownGroupedSize {\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n@Component({\n selector: 'tc-rev-dropdown-grouped',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TcRevSearchInputComponent,\n TcRevIconButtonDirective\n ],\n templateUrl: './tc-rev-dropdown-grouped.component.html',\n styleUrl: './tc-rev-dropdown-grouped.component.scss',\n})\nexport class TcRevDropdownGroupedComponent {\n @ViewChild('menuTemplate') menuTemplate!: TemplateRef<any>;\n\n @HostListener('document:click', ['$event'])\n\n onDocumentClick(event: MouseEvent): void {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target)) {\n this.isOpen = false;\n }\n }\n\n public _deviceService = inject(TCloudUiDeviceUtilsService);\n\n public label = input<string>(''); // Label que será exibida\n public disabled = input<boolean>(false); // Desabilita o dropdown\n public options = input.required<DropdownGroupedOption[]>(); // Lista de opções agrupadas\n public initialValue = input<any>(null); // Valor pré-selecionado (deprecated - use value instead)\n public value = model<any>(null); // Two-way binding para o valor selecionado\n public size = input<DropdownGroupedSize>(DropdownGroupedSize.sm);\n public placeholder = input<string>('Selecione');\n public searchPlaceholder = input<string>('Buscar...');\n public showSearch = input<boolean>(true); // Controla se mostra o input de busca\n public width = input<string>(''); // Largura do dropdown\n public optionSelected = output<any>(); // Emissor para o valor selecionado\n\n public selectedOption = signal<DropdownGroupedOption | null>(null); // Opção selecionada\n public isOpen = false; // Controla se o dropdown está aberto\n public searchTerm = signal<string>(''); // Termo de busca\n public dropdownSize = DropdownGroupedSize;\n\n public isDesktop = this._deviceService.isDesktop;\n public isMobile = this._deviceService.isMobile;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(_simpleChanges: SimpleChanges): void {\n // Atualiza a opção selecionada quando o valor pré-selecionado muda\n if (\n _simpleChanges['initialValue'] ||\n _simpleChanges['options'] ||\n _simpleChanges['value']\n ) {\n const valueToUse = this.value() || this.initialValue();\n this.selectedOption.set(\n this.options().find((option) => option.value === valueToUse) || null\n );\n }\n }\n\n ngOnInit(): void {\n // Prioriza o valor do model, mas mantém compatibilidade com initialValue\n const valueToUse = this.value() || this.initialValue();\n const foundOption =\n this.options().find((option) => option.value === valueToUse) || null;\n this.selectedOption.set(foundOption);\n\n // Se não havia valor no model mas havia initialValue, sincroniza o model\n if (!this.value() && this.initialValue() && foundOption) {\n this.value.set(foundOption.value);\n }\n\n // Escuta mudanças no model e atualiza a opção selecionada\n this.value.subscribe((newValue) => {\n const option =\n this.options().find((opt) => opt.value === newValue) || null;\n if (this.selectedOption() !== option) {\n this.selectedOption.set(option);\n }\n });\n }\n\n public toggleDropdown(): void {\n if (!this.disabled()) {\n // Abertura do dropdown para mobile\n if (this.isMobile()) {\n this._deviceService.openDropdownDevice(this.menuTemplate);\n return;\n }\n\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.searchTerm.set('');\n // Foca no input de busca quando abre o dropdown\n setTimeout(() => {\n const searchInput = this.elementRef.nativeElement.querySelector(\n '.tc-rev-dropdown-search input'\n );\n if (searchInput) {\n searchInput.focus();\n }\n }, 100);\n }\n }\n }\n\n public selectOption(option: DropdownGroupedOption): void {\n if (!option.disabled) {\n this.selectedOption.set(option);\n this.value.set(option.value); // Atualiza o model com two-way binding\n this.optionSelected.emit(option); // Emite a opção selecionada para compatibilidade\n if (this.isMobile()) {\n this._deviceService.closeDropdownDevice();\n return;\n }\n this.isOpen = false;\n this.searchTerm.set('');\n }\n }\n\n public onSearchChange(searchText: string): void {\n this.searchTerm.set(searchText);\n }\n\n public getGroupedOptions(): DropdownGroup[] {\n const filtered = this.getFilteredOptions();\n const groups: { [key: string]: DropdownGroupedOption[] } = {};\n\n // Agrupa as opções filtradas\n filtered.forEach((option) => {\n const groupName = option.group || 'Sem grupo';\n if (!groups[groupName]) {\n groups[groupName] = [];\n }\n groups[groupName].push(option);\n });\n\n // Converte para array de grupos\n return Object.keys(groups).map((groupName) => ({\n groupName,\n options: groups[groupName],\n }));\n }\n\n private getFilteredOptions(): DropdownGroupedOption[] {\n const search = this.searchTerm().toLowerCase().trim();\n if (!search) {\n return this.options();\n }\n\n return this.options().filter(\n (option) =>\n option.displayValue.toLowerCase().includes(search) ||\n (option.group && option.group.toLowerCase().includes(search))\n );\n }\n\n public clearSearch(): void {\n this.searchTerm.set('');\n }\n\n public hasResults(): boolean {\n return this.getFilteredOptions().length > 0;\n }\n}\n","<div class=\"tc-rev-dropdown-grouped\" [class.disabled]=\"disabled()\">\n <button\n class=\"tc-rev-dropdown-toggle\"\n [class.tc-rev-dropdown-toggle--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-dropdown-toggle--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-dropdown-toggle--lg]=\"this.size() === dropdownSize.lg\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n [disabled]=\"disabled()\"\n [style.width]=\"this.width()\"\n >\n @if (label()) {\n <b>{{ label() }}</b>\n }\n {{ selectedOption() ? selectedOption()?.displayValue : placeholder() }}\n <i class=\"fa-light fa-chevron-down mar-l-a\" [class.rotate]=\"isOpen\"></i>\n </button>\n\n <div\n *ngIf=\"isOpen && isDesktop()\"\n class=\"tc-rev-dropdown-menu\"\n [style.width]=\"this.width()\"\n >\n <!-- Input de busca -->\n @if (showSearch()) {\n <div class=\"tc-rev-dropdown-search\">\n <tc-rev-search-input\n (onSearch)=\"onSearchChange($event)\"\n [placeholder]=\"this.searchPlaceholder()\"\n />\n </div>\n <!-- <div class=\"tc-rev-dropdown-search\">\n <i class=\"fa-light fa-magnifying-glass search-icon\"></i>\n <input\n type=\"text\"\n [placeholder]=\"searchPlaceholder()\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchChange($event)\"\n class=\"search-input\">\n @if (searchTerm()) {\n <button\n type=\"button\"\n class=\"clear-search\"\n (click)=\"clearSearch()\"\n title=\"Limpar busca\">\n <i class=\"fa-light fa-xmark\"></i>\n </button>\n }\n </div> -->\n }\n\n <!-- Lista de opções agrupadas -->\n @if (hasResults()) {\n <ul class=\"tc-rev-dropdown-options\">\n @for (group of getGroupedOptions(); track group.groupName) {\n <li class=\"tc-rev-dropdown-group\">\n <div class=\"tc-rev-dropdown-group-header\">\n {{ group.groupName }}\n </div>\n <ul class=\"tc-rev-dropdown-group-options\">\n @for (option of group.options; track option?.value) {\n <li class=\"tc-rev-dropdown-menu-item\" (click)=\"selectOption(option)\">\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n {{ option?.displayValue }}\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n } @else {\n <div class=\"tc-rev-dropdown-no-results f-family\">\n <i class=\"fa-light fa-magnifying-glass\"></i>\n <span>Nenhum resultado encontrado</span>\n </div>\n }\n </div>\n\n <!-- Dropdown full screen -->\n <ng-template #menuTemplate>\n <div class=\"tc-rev-dropdown-menu tc-rev-dropdown-menu--device\">\n <div class=\"tc-rev-dropdown-menu-section\">\n <div class=\"tc-rev-dropdown-menu-header pad-b-24\">\n <h3 class=\"mar-none f-h2 f-weight-600 c-neutral-600\">\n {{ label() }}\n </h3>\n <button\n tcRevIconButton=\"outline\"\n color=\"dark\"\n size=\"sm\"\n (click)=\"_deviceService.closeDropdownDevice()\"\n >\n <i class=\"fa-light fa-times f-size-16\"></i>\n </button>\n </div>\n\n @if (showSearch()) {\n <div class=\"tc-rev-dropdown-search mar-b-12\">\n <tc-rev-search-input\n (onSearch)=\"onSearchChange($event)\"\n [placeholder]=\"searchPlaceholder()\"\n />\n </div>\n } @if (hasResults()) {\n <ul class=\"tc-rev-dropdown-menu-container mar-t-8\">\n @for (group of getGroupedOptions(); track group.groupName) {\n <li class=\"tc-rev-dropdown-group\">\n <div class=\"tc-rev-dropdown-group-header\">\n {{ group.groupName }}\n </div>\n <ul class=\"tc-rev-dropdown-group-options\">\n @for (option of group.options; track option?.value) {\n <li\n class=\"tc-rev-dropdown-menu-item\"\n (click)=\"selectOption(option)\"\n >\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n {{ option?.displayValue }}\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check f-size-16\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\n\nexport interface MultiLevelDropdownOption\n{\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n children?: MultiLevelDropdownOption[];\n}\n\n@Component({\n selector: 'tc-rev-dropdown-sub-menu',\n templateUrl: './tc-rev-dropdown-sub-menu.component.html',\n styleUrls: ['./tc-rev-dropdown-sub-menu.component.scss'],\n imports: [CommonModule]\n})\nexport class TcRevDropdownSubMenuComponent {\n public items = input.required<MultiLevelDropdownOption[]>();\n public position = input<'right' | 'left'>('right');\n public parentOffsetTop = input.required<number>();\n public selectedOption = input<MultiLevelDropdownOption | null>();\n public onOptionSelected = output<MultiLevelDropdownOption>();\n}\n","<ul\n class=\"sub-menu\"\n [ngClass]=\"this.position()\"\n [style.top.px]=\"this.parentOffsetTop()\">\n @for (item of this.items(); track item.value)\n {\n <li\n class=\"sub-menu-item\"\n [class.selected]=\"this.selectedOption()?.value === item.value\"\n (click)=\"this.onOptionSelected.emit(item)\">\n {{ item.displayValue }}\n @if (this.selectedOption()?.value === item?.value)\n {\n <i class=\"fa-light fa-circle-check\"></i>\n }\n @if (item.children?.length)\n {\n <tc-rev-dropdown-sub-menu\n [items]=\"item.children\"\n [position]=\"this.position()\"\n [parentOffsetTop]=\"0\"\n [selectedOption]=\"this.selectedOption()\">\n </tc-rev-dropdown-sub-menu>\n }\n </li>\n }\n</ul>\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostListener, SimpleChanges, ViewChild, input, output, signal } from '@angular/core';\nimport { TcRevDropdownSubMenuComponent } from './tc-rev-dropdown-sub-menu/tc-rev-dropdown-sub-menu.component';\n\nexport interface MultiLevelDropdownOption\n{\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n children?: MultiLevelDropdownOption[];\n}\n\nexport enum MultiLevelDropdownSize\n{\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n\n@Component({\n selector: 'tc-rev-dropdown-multi-level',\n imports: [\n CommonModule,\n TcRevDropdownSubMenuComponent\n ],\n templateUrl: './tc-rev-dropdown-multi-level.component.html',\n styleUrl: './tc-rev-dropdown-multi-level.component.scss'\n})\nexport class TcRevDropdownMultiLevelComponent {\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void\n {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target))\n {\n this.isOpen = false;\n }\n }\n @ViewChild('menuRoot', { static: false }) menuRoot!: ElementRef<HTMLUListElement>;\n public readonly dropdownSize = MultiLevelDropdownSize;\n public menu = input.required<MultiLevelDropdownOption[]>();\n public subMenuPosition = input<'right' | 'left'>('right');\n public disabled = input<boolean>(false);\n public size = input<MultiLevelDropdownSize>(MultiLevelDropdownSize.sm);\n public initialValue = input<MultiLevelDropdownOption | null>(null); // Valor pré-selecionado\n public optionSelected = output<{ option: MultiLevelDropdownOption, parentOption: MultiLevelDropdownOption }>();\n public selectedOption = signal<MultiLevelDropdownOption | null>(null);\n public selectedParentOption = signal<MultiLevelDropdownOption | null>(null);\n public hoveredIndex: number | null = null;\n public isOpen: boolean = false;\n\n constructor(private elementRef: ElementRef) { }\n\n ngOnChanges(_simpleChanges: SimpleChanges): void\n {\n // Atualiza a opção selecionada quando o valor pré-selecionado muda\n if (_simpleChanges['initialValue'] || _simpleChanges['menu'])\n {\n this.selectedOption.set(null);\n this.selectedParentOption.set(null);\n }\n }\n\n public getItemOffsetTop(index: number): number {\n if (!this.menuRoot) return 0;\n\n const items = this.menuRoot.nativeElement.querySelectorAll<HTMLLIElement>('.menu-item');\n\n if (items && items[index])\n {\n return items[index].offsetTop;\n }\n\n return 0;\n }\n\n public toggleDropdown(): void\n {\n this.isOpen = !this.isOpen;\n }\n\n public selectOption(option: MultiLevelDropdownOption, parentOption: MultiLevelDropdownOption): void\n {\n this.selectedOption.set(option);\n this.selectedParentOption.set(parentOption);\n this.optionSelected.emit({ option, parentOption}); // Emite apenas o valor da opção selecionada\n // this.isOpen = false; // Fecha o dropdown\n // this.hoveredIndex = null;\n }\n\n public selectParentItem($event: MouseEvent, option: MultiLevelDropdownOption, parentOption: MultiLevelDropdownOption): void\n {\n $event.stopPropagation();\n if (parentOption?.children?.length) return;\n this.selectOption(option, parentOption);\n }\n}\n","<div class=\"tc-rev-dropdown-multi-level\">\n <button\n class=\"tc-rev-btn tc-rev-btn--sm tc-rev-btn--dark-outline tc-rev-dropdown-toggle\"\n [class.tc-rev-btn--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-btn--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-btn--lg]=\"this.size() === dropdownSize.lg\"\n [class.active]=\"isOpen\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\">\n <ng-content></ng-content>\n </button>\n\n\t<ul class=\"tc-rev-dropdown-multi-level__menu-list\" #menuRoot>\n\t\t@if (isOpen)\n {\n @for (item of menu(); track $index; let i = $index)\n {\n <li \n class=\"menu-item\"\n [class.c-primary-500]=\"this.selectedParentOption()?.value === item?.value\"\n (mouseenter)=\"hoveredIndex = i\"\n (mouseleave)=\"hoveredIndex = null\"\n (click)=\"this.selectParentItem($event, item, item)\">\n {{ item.displayValue }}\n @if (this.selectedParentOption()?.value === item?.value)\n {\n <i class=\"fa-light fa-circle-check c-primary-500 mar-l-a\"></i>\n }\n @if (item?.children?.length && hoveredIndex === i)\n {\n <tc-rev-dropdown-sub-menu\n [items]=\"item.children\"\n [position]=\"subMenuPosition()\"\n [parentOffsetTop]=\"getItemOffsetTop(i)\"\n [selectedOption]=\"this.selectedOption()\"\n (onOptionSelected)=\"this.selectOption($event, item)\">\n </tc-rev-dropdown-sub-menu>\n }\n </li>\n }\n }\n\t</ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostListener, input, model, output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TcRevCheckboxDirective } from '../tc-rev-checkbox/tc-rev-checkbox.directive';\n\nexport interface DropdownMultiOption\n{\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n}\n\nexport enum DropdownMultiSize\n{\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n@Component({\n selector: 'tc-rev-dropdown-multi',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TcRevCheckboxDirective\n ],\n templateUrl: './tc-rev-dropdown-multi.component.html',\n styleUrl: './tc-rev-dropdown-multi.component.scss'\n})\nexport class TcRevDropdownMultiComponent\n{\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void\n {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target))\n {\n this.isOpen = false;\n }\n }\n\n public label = input<string>(''); // Label que será exibida\n public disabled = input<boolean>(false); // Desabilita o dropdown\n public options = input.required<DropdownMultiOption[]>(); // Lista de opções no novo formato\n public initialValues = input<any[]>([]); // Valores pré-selecionados (deprecated - use values instead)\n public values = model<any[]>([]); // Two-way binding para os valores selecionados\n public size = input<DropdownMultiSize>(DropdownMultiSize.sm);\n public width = input<string>(''); // Largura do dropdown\n public placeholder = input<string>('Selecione'); // Placeholder quando nenhum item estiver selecionado\n public maxDisplayItems = input<number>(2); // Máximo de itens a serem exibidos no botão\n public optionsSelected = output<any[]>(); // Emissor para os valores selecionados\n public selectedOptions = signal<DropdownMultiOption[]>([]); // Opções selecionadas\n public isOpen = false; // Controla se o dropdown está aberto\n public dropdownSize = DropdownMultiSize;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(_simpleChanges: SimpleChanges): void\n {\n // Atualiza as opções selecionadas quando os valores pré-selecionados mudam\n if (_simpleChanges['initialValues'] || _simpleChanges['options'] || _simpleChanges['values'])\n {\n const valuesToUse = this.values().length > 0 ? this.values() : this.initialValues();\n const selected = this.options().filter(option =>\n valuesToUse.includes(option.value)\n );\n this.selectedOptions.set(selected);\n }\n }\n\n ngOnInit(): void\n {\n // Prioriza os valores do model, mas mantém compatibilidade com initialValues\n const valuesToUse = this.values().length > 0 ? this.values() : this.initialValues();\n const selected = this.options().filter(option =>\n valuesToUse.includes(option.value)\n );\n this.selectedOptions.set(selected);\n\n // Se não havia valores no model mas havia initialValues, sincroniza o model\n if (this.values().length === 0 && this.initialValues().length > 0) {\n this.values.set([...this.initialValues()]);\n }\n\n // Escuta mudanças no model e atualiza as opções selecionadas\n this.values.subscribe((newValues) => {\n const newSelected = this.options().filter(option =>\n newValues.includes(option.value)\n );\n\n // Só atualiza se realmente mudou para evitar loops\n const currentSelectedValues = this.selectedOptions().map(opt => opt.value);\n const newSelectedValues = newSelected.map(opt => opt.value);\n\n if (JSON.stringify(currentSelectedValues.sort()) !== JSON.stringify(newSelectedValues.sort())) {\n this.selectedOptions.set(newSelected);\n }\n });\n }\n\n public toggleDropdown(): void\n {\n if (!this.disabled())\n {\n this.isOpen = !this.isOpen;\n }\n }\n\n public toggleOption(option: DropdownMultiOption, event: Event): void\n {\n event.stopPropagation();\n\n if (option.disabled) return;\n\n const currentSelected = this.selectedOptions();\n const isSelected = currentSelected.some(selected => selected.value === option.value);\n\n let newSelected: DropdownMultiOption[];\n\n if (isSelected)\n {\n // Remove a opção se já estiver selecionada\n newSelected = currentSelected.filter(selected => selected.value !== option.value);\n }\n else\n {\n // Adiciona a opção se não estiver selecionada\n newSelected = [...currentSelected, option];\n }\n\n const newValues = newSelected.map(opt => opt.value);\n this.selectedOptions.set(newSelected);\n this.values.set(newValues); // Atualiza o model com two-way binding\n this.optionsSelected.emit(newValues); // Emite os valores para compatibilidade\n }\n\n public isOptionSelected(option: DropdownMultiOption): boolean\n {\n return this.selectedOptions().some(selected => selected.value === option.value);\n }\n\n public getDisplayText(): string\n {\n const selected = this.selectedOptions();\n\n if (selected.length === 0)\n {\n return this.placeholder();\n }\n\n // Se todos os itens (não desabilitados) estão selecionados, mostra \"Todos\"\n if (this.isAllSelected())\n {\n return 'Todos';\n }\n\n const maxDisplay = this.maxDisplayItems();\n\n if (selected.length <= maxDisplay)\n {\n return selected.map(opt => opt.displayValue).join(', ');\n }\n\n const firstItems = selected.slice(0, maxDisplay).map(opt => opt.displayValue).join(', ');\n const remaining = selected.length - maxDisplay;\n\n return `${firstItems} (+${remaining})`;\n }\n\n public clearAll(): void\n {\n this.selectedOptions.set([]);\n this.values.set([]); // Atualiza o model com two-way binding\n this.optionsSelected.emit([]);\n }\n\n public selectAll(): void\n {\n const enabledOptions = this.options().filter(option => !option.disabled);\n const allValues = enabledOptions.map(opt => opt.value);\n this.selectedOptions.set(enabledOptions);\n this.values.set(allValues); // Atualiza o model com two-way binding\n this.optionsSelected.emit(allValues);\n }\n\n public isAllSelected(): boolean\n {\n const enabledOptions = this.options().filter(option => !option.disabled);\n const selectedOptions = this.selectedOptions();\n\n if (enabledOptions.length === 0) return false;\n\n return enabledOptions.every(option =>\n selectedOptions.some(selected => selected.value === option.value)\n );\n }\n\n public isSomeSelected(): boolean\n {\n const enabledOptions = this.options().filter(option => !option.disabled);\n const selectedOptions = this.selectedOptions();\n\n if (enabledOptions.length === 0 || selectedOptions.length === 0) return false;\n\n const selectedCount = enabledOptions.filter(option =>\n selectedOptions.some(selected => selected.value === option.value)\n ).length;\n\n return selectedCount > 0 && selectedCount < enabledOptions.length;\n }\n\n public toggleSelectAll(event: Event): void\n {\n event.stopPropagation();\n\n if (this.isAllSelected())\n {\n this.clearAll();\n }\n else\n {\n this.selectAll();\n }\n }\n}\n","<div\n class=\"tc-rev-dropdown-multi\"\n [class.disabled]=\"disabled()\">\n <button\n class=\"tc-rev-dropdown-multi-toggle\"\n [class.tc-rev-dropdown-multi-toggle--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-dropdown-multi-toggle--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-dropdown-multi-toggle--lg]=\"this.size() === dropdownSize.lg\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"isOpen\"\n [style.width]=\"this.width()\">\n @if (label())\n {\n <b>{{label()}}</b>\n }\n <span class=\"selected-text\">{{ getDisplayText() }}</span>\n <i class=\"fa-light fa-chevron-down\"></i>\n </button>\n\n <div\n *ngIf=\"isOpen\"\n class=\"tc-rev-dropdown-multi-menu\"\n [style.width]=\"this.width()\">\n\n <!-- Checkbox Selecionar/Limpar Todos -->\n <div class=\"tc-rev-dropdown-multi-actions\">\n <label\n class=\"tc-rev-dropdown-multi-select-all-label\"\n [class.selected]=\"isAllSelected()\">\n <input\n type=\"checkbox\"\n tcRevCheckbox\n [disabled]=\"disabled()\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (change)=\"toggleSelectAll($event)\">\n <span class=\"tc-rev-dropdown-multi-select-all-text\">Todos</span>\n </label>\n </div>\n\n <ul class=\"tc-rev-dropdown-multi-options\">\n @for (option of options(); track option?.value)\n {\n <li class=\"tc-rev-dropdown-multi-menu-item\">\n <label\n class=\"tc-rev-dropdown-multi-menu-item-label\"\n [class.disabled]=\"option?.disabled\"\n [class.selected]=\"isOptionSelected(option)\">\n <input\n type=\"checkbox\"\n tcRevCheckbox\n [checked]=\"isOptionSelected(option)\"\n [disabled]=\"option?.disabled\"\n (change)=\"toggleOption(option, $event)\">\n\n <span class=\"tc-rev-dropdown-multi-text\">\n {{ option?.displayValue }}\n </span>\n </label>\n </li>\n }\n </ul>\n </div>\n</div>\n","/**\n * Verifica se um elemento de texto está elipsado (texto cortado com ...)\n * @param element - O elemento HTML que contém o texto\n * @returns true se o texto estiver elipsado, false caso contrário\n */\nfunction isElementTextEllipsed(element: HTMLElement): boolean {\n if (!element) return false;\n\n // Verifica se o scrollWidth é maior que o clientWidth\n // Isso indica que o texto está sendo cortado\n return element.scrollWidth > element.clientWidth;\n}\n\n/**\n * Verifica se um texto específico estaria elipsado baseado no texto fornecido\n * @param text - O texto a ser verificado\n * @param containerWidth - Largura do container (opcional, usa o padrão se não informado)\n * @returns true se o texto seria elipsado\n */\nexport function isTextEllipsed(text: string, containerWidth?: number): boolean {\n if (!text) return false;\n\n // Cria um elemento temporário para medir o texto\n const tempElement = document.createElement('span');\n tempElement.style.visibility = 'hidden';\n tempElement.style.position = 'absolute';\n tempElement.style.whiteSpace = 'nowrap';\n tempElement.style.fontSize = '1rem'; // f-md\n tempElement.style.fontWeight = '500'; // f-weight-500\n tempElement.style.fontFamily = getComputedStyle(document.body).fontFamily;\n tempElement.textContent = text;\n\n document.body.appendChild(tempElement);\n\n const textWidth = tempElement.scrollWidth;\n // Calcula a largura máxima disponível: largura do container menos espaço do botão e margins\n const maxWidth = containerWidth || 150; // ~150px considerando o botão de 24px + margens\n\n document.body.removeChild(tempElement);\n\n return textWidth > maxWidth;\n}\n\n// export class EllipsedTextHelper\n// {\n// public static isEllipsed(id: string): boolean\n// {\n// const element = document.querySelector<any>(`#${id}`);\n// return element ? (element.offsetWidth < element.scrollWidth) : false;\n// }\n\n// /**\n// *\n// * @param _textField - Stands for the text you want to compare\n// * @param _fontProperties - Text CSS properties (font-size & font-family)\n// * @param _divId - divId you want to compare\n// * @param _isEllipsed - is it Ellipsed? (optional)\n// */\n// public static calculate( _textField: string, _fontProperties: string, _divId: string, _isEllipsed: boolean = false, _whiteSpaceNoWrap = true): boolean\n// {\n// if (_isEllipsed)\n// {\n// return true;\n// }\n\n// const textDiv = document.getElementById(_divId);\n// if (textDiv)\n// {\n// const widthText = this.textWidthCalc(_textField, _fontProperties, _whiteSpaceNoWrap);\n// return widthText > textDiv.clientWidth;\n// }\n\n// return false\n// }\n\n// public static textWidthCalc(_text: string, _fontProperties: string, _whiteSpaceNoWrap: boolean): number\n// {\n// let tag = document.createElement('div');\n// tag.style.position = 'absolute';\n// tag.style.left = '-99in';\n// tag.style.font = _fontProperties;\n// tag.innerHTML = _text;\n\n// if (_whiteSpaceNoWrap)\n// {\n// tag.style.whiteSpace = 'nowrap';\n// }\n\n// document.body.appendChild(tag);\n// const result = tag.clientWidth;\n// document.body.removeChild(tag);\n// return result;\n// }\n// }\n","import { Directive, ElementRef, HostListener, input, Renderer2, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[tcRevTooltip]',\n standalone: true\n})\nexport class TcRevTooltipDirective {\n public tcRevTooltip = input<string>('');\n public position = input<'top' | 'bottom' | 'left' | 'right'>('top');\n\n private tooltipElement: HTMLElement | null = null;\n\n constructor(\n private _el: ElementRef,\n private _renderer: Renderer2,\n private _vcr: ViewContainerRef\n ) {}\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n const tooltipText = this.tcRevTooltip();\n\n if (this.isValidTooltipText(tooltipText)) {\n this.showTooltip(tooltipText);\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.hideTooltip();\n }\n\n private isValidTooltipText(text: string): boolean {\n return text && text.trim().length > 0;\n }\n\n private showTooltip(text: string): void {\n if (this.tooltipElement) {\n this.hideTooltip();\n }\n\n // Create tooltip element\n this.tooltipElement = this._renderer.createElement('div');\n\n // Add text content\n const textNode = this._renderer.createText(text);\n this._renderer.appendChild(this.tooltipElement, textNode);\n\n // Add CSS classes\n this._renderer.addClass(this.tooltipElement, 'tc-rev-tooltip');\n this._renderer.addClass(this.tooltipElement, `tc-rev-tooltip--${this.position()}`);\n\n // Set initial styles\n this._renderer.setStyle(this.tooltipElement, 'position', 'absolute');\n this._renderer.setStyle(this.tooltipElement, 'z-index', '9999');\n this._renderer.setStyle(this.tooltipElement, 'visibility', 'hidden');\n // this._renderer.setStyle(this.tooltipElement, 'opacity', '0');\n\n // Append to body\n this._renderer.appendChild(document.body, this.tooltipElement);\n\n // Position tooltip\n this.positionTooltip();\n\n // Show tooltip with animation\n this._renderer.setStyle(this.tooltipElement, 'visibility', 'visible');\n this._renderer.addClass(this.tooltipElement, 'tc-rev-tooltip--visible');\n }\n\n private hideTooltip(): void {\n if (this.tooltipElement) {\n this._renderer.removeChild(document.body, this.tooltipElement);\n this.tooltipElement = null;\n }\n }\n\n private positionTooltip(): void {\n if (!this.tooltipElement) return;\n\n const hostRect = this._el.nativeElement.getBoundingClientRect();\n const tooltipRect = this.tooltipElement.getBoundingClientRect();\n const position = this.position();\n\n let top = 0;\n let left = 0;\n\n switch (position) {\n case 'top':\n top = hostRect.top + window.scrollY - tooltipRect.height - 8;\n left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'bottom':\n top = hostRect.bottom + window.scrollY + 8;\n left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;\n break;\n case 'left':\n top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.left + window.scrollX - tooltipRect.width - 8;\n break;\n case 'right':\n top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.right + window.scrollX + 8;\n break;\n }\n\n this._renderer.setStyle(this.tooltipElement, 'top', `${top}px`);\n this._renderer.setStyle(this.tooltipElement, 'left', `${left}px`);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n output,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { isTextEllipsed } from '../../util/ellipsed-text';\nimport { TcRevTooltipDirective } from '../tc-rev-tooltip/tc-rev-tooltip.directive';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\nimport { TcRevIconButtonDirective } from '../tc-rev-icon-button/tc-rev-icon-button.directive';\nimport { TcRevButtonDirective } from '../tc-rev-button/tc-rev-button.directive';\n\nexport interface DropdownOption {\n id?: any;\n value: any;\n displayValue: string;\n disabled?: boolean;\n}\n\nexport enum DropdownSize {\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n}\n\n@Component({\n selector: 'tc-rev-dropdown',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TcRevTooltipDirective,\n TcRevIconButtonDirective\n ],\n templateUrl: './tc-rev-dropdown.component.html',\n styleUrl: './tc-rev-dropdown.component.scss',\n})\nexport class TcRevDropdownComponent {\n @ViewChild('menuTemplate') menuTemplate!: TemplateRef<any>;\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (this.isOpen && !this.elementRef.nativeElement.contains(event.target)) {\n this.isOpen = false;\n }\n }\n\n public _deviceService = inject(TCloudUiDeviceUtilsService);\n\n public label = input<string>(''); // Label que será exibida\n public disabled = input<boolean>(false); // Desabilita o dropdown\n public options = input.required<DropdownOption[]>(); // Lista de opções no novo formato\n public initialValue = input<any>(null); // Valor pré-selecionado (deprecated - use value instead)\n public value = model<any>(null); // Two-way binding para o valor selecionado\n public size = input<DropdownSize>(DropdownSize.sm);\n public width = input<string>(''); // Largura específica do dropdown (ex: '300px', '50%'). Se não informado, ocupa 100% do pai\n public optionSelected = output<any>(); // Emissor para o valor selecionado\n public selectedOption = signal<DropdownOption | null>(null); // Opção selecionada\n public isOpen = false; // Controla se o dropdown está aberto\n public dropdownSize = DropdownSize;\n public isDesktop = this._deviceService.isDesktop;\n public isMobile = this._deviceService.isMobile;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(_simpleChanges: SimpleChanges): void {\n // Atualiza a opção selecionada quando o valor pré-selecionado muda\n if (\n _simpleChanges['initialValue'] ||\n _simpleChanges['options'] ||\n _simpleChanges['value']\n ) {\n const valueToUse = this.value() || this.initialValue();\n this.selectedOption.set(\n this.options().find((option) => option.value === valueToUse) || null\n );\n }\n }\n\n ngOnInit(): void {\n // Prioriza o valor do model, mas mantém compatibilidade com initialValue\n const valueToUse = this.value() || this.initialValue();\n const foundOption =\n this.options().find((option) => option.value === valueToUse) || null;\n this.selectedOption.set(foundOption);\n\n // Se não havia valor no model mas havia initialValue, sincroniza o model\n if (!this.value() && this.initialValue() && foundOption) {\n this.value.set(foundOption.value);\n }\n\n // Escuta mudanças no model e atualiza a opção selecionada\n this.value.subscribe((newValue) => {\n const option =\n this.options().find((opt) => opt.value === newValue) || null;\n if (this.selectedOption() !== option) {\n this.selectedOption.set(option);\n }\n });\n }\n\n public toggleDropdown(): void {\n // Abertura do dropdown para mobile\n if (this.isMobile()) {\n this._deviceService.openDropdownDevice(this.menuTemplate);\n return;\n }\n this.isOpen = !this.isOpen;\n }\n\n public selectOption(option: DropdownOption): void {\n this.selectedOption.set(option);\n this.value.set(option.value); // Atualiza o model com two-way binding\n this.optionSelected.emit(option); // Emite a opção selecionada para compatibilidade\n // Fechamento dd dropdown para mobile\n if (this.isMobile()) {\n this._deviceService.closeDropdownDevice();\n return;\n }\n this.isOpen = false; // Fecha o dropdown\n }\n\n /**\n * Verifica se o texto de uma opção na lista está elipsado\n * @param text - Texto a ser verificado\n * @returns true se o texto estiver elipsado\n */\n public isOptionEllipsed(text: string): boolean {\n if (!text) return false;\n\n // Calcula a largura disponível para o texto nas opções da lista\n const menuElement = this.elementRef.nativeElement.querySelector(\n '.tc-rev-dropdown-menu'\n );\n if (!menuElement) {\n // Se o menu não está aberto, usa a largura do dropdown\n const dropdownElement =\n this.elementRef.nativeElement.querySelector('.tc-rev-dropdown');\n if (!dropdownElement) return false;\n\n const dropdownWidth = dropdownElement.clientWidth;\n const padding = 16; // 8px de cada lado do botão\n const iconSpace = 24; // Espaço do ícone de check quando selecionado\n const availableWidth = Math.max(50, dropdownWidth - padding - iconSpace);\n\n return isTextEllipsed(text, availableWidth);\n }\n\n // Largura do menu menos padding do item (16px total) e espaço do ícone de check (24px)\n const menuWidth = menuElement.clientWidth;\n const padding = 16; // 8px de cada lado do botão do item\n const iconSpace = 24; // Espaço do ícone de check quando selecionado\n const availableWidth = Math.max(50, menuWidth - padding - iconSpace);\n\n return isTextEllipsed(text, availableWidth);\n }\n\n}\n","<div\n class=\"tc-rev-dropdown\"\n [class.disabled]=\"disabled()\"\n [style.width]=\"this.width()\"\n>\n <button\n class=\"tc-rev-dropdown-toggle\"\n [class.tc-rev-dropdown-toggle--sm]=\"this.size() === dropdownSize.sm\"\n [class.tc-rev-dropdown-toggle--md]=\"this.size() === dropdownSize.md\"\n [class.tc-rev-dropdown-toggle--lg]=\"this.size() === dropdownSize.lg\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n [disabled]=\"disabled()\"\n >\n @if (label()) {\n <b>{{ label() }}</b>\n }\n <span class=\"tc-rev-dropdown-selected-text\">\n {{ selectedOption() ? selectedOption()?.displayValue : \"Selecione\" }}\n </span>\n <i class=\"fa-light fa-chevron-down mar-l-a\"></i>\n </button>\n <ul *ngIf=\"isOpen && isDesktop()\" class=\"tc-rev-dropdown-menu\">\n @for (option of options(); track option?.value) {\n <li class=\"tc-rev-dropdown-menu-item\" (click)=\"selectOption(option)\">\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n <span\n class=\"tc-rev-dropdown-option-text\"\n [class.ellipsed]=\"isOptionEllipsed(option.displayValue)\"\n [tcRevTooltip]=\"\n isOptionEllipsed(option.displayValue) ? option.displayValue : ''\n \"\n position=\"top\"\n >\n {{ option?.displayValue }}\n </span>\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check\"></i>\n }\n </button>\n </li>\n }\n </ul>\n\n <!-- Dropdown full screen -->\n <ng-template #menuTemplate>\n <div class=\"tc-rev-dropdown-menu tc-rev-dropdown-menu--device\">\n <div class=\"tc-rev-dropdown-menu-section\">\n <div class=\"tc-rev-dropdown-menu-header pad-b-24\">\n <h3 class=\"mar-none f-h2 f-weight-600 c-neutral-600\">\n {{ label() }}\n </h3>\n <button\n tcRevIconButton=\"outline\"\n color=\"dark\"\n size=\"sm\"\n (click)=\"_deviceService.closeDropdownDevice()\"\n >\n <i class=\"fa-light fa-times f-size-16\"></i>\n </button>\n </div>\n <ul class=\"tc-rev-dropdown-menu-container mar-t-8\">\n @for (option of options(); track option?.value) {\n <li class=\"tc-rev-dropdown-menu-item\" (click)=\"selectOption(option)\">\n <button\n class=\"tc-rev-dropdown-menu-item-btn\"\n [class.selected]=\"selectedOption()?.value === option.value\"\n [disabled]=\"option?.disabled\"\n >\n {{ option?.displayValue }}\n\n @if (selectedOption()?.value === option?.value) {\n <i class=\"fa-light fa-circle-check f-size-16\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </div>\n </ng-template>\n</div>\n","\nexport type BarChartData = {\n xAxisName: string;\n xAxisLabels: string[] | number[];\n seriesData: {\n serieName: string;\n values: any[];\n }[];\n tooltipFormatter?: Function;\n yAxisLabelFormatter?: Function;\n xAxisLabelFormatter?: (value: any) => string;\n}\n\n/**\n *\n * @param echarts echars instance\n * @param chartData chart info to build the config\n * @returns a bar chart config for echarts with the given data\n */\nexport function echartBarConfig(echarts: any, chartData: BarChartData): any {\n const { xAxisName, xAxisLabels, seriesData, tooltipFormatter, yAxisLabelFormatter, xAxisLabelFormatter } = chartData;\n\n return {\n grid: {\n left: '6.5%',\n top: 48,\n right: '2%',\n bottom: 56\n },\n tooltip: {\n trigger: 'axis',\n backgroundColor: '#131313',\n formatter: tooltipFormatter,\n textStyle: {\n color: '#f3f3f3',\n fontSize: 12,\n fontFamily: 'Nunito Sans'\n }\n },\n xAxis: {\n type: 'category',\n axisLabel: {\n color: '#131313',\n fontSize: 14,\n fontFamily: 'Nunito Sans',\n margin: 16,\n formatter: xAxisLabelFormatter,\n },\n axisLine: {\n show: true,\n lineStyle: {\n color: '#BAC0C6'\n }\n },\n axisTick: {\n show: false\n },\n data: xAxisLabels,\n name: xAxisName,\n nameLocation: 'start',\n nameTextStyle: {\n align: 'left',\n color: '#131313',\n fontFamily: 'Nunito Sans',\n fontSize: 14,\n fontWeight: 700,\n padding: [0, 0, -46, -36]\n }\n },\n yAxis: {\n type: 'value',\n axisLine: {\n show: false\n },\n axisTick: {\n show: false\n },\n axisLabel: {\n formatter: yAxisLabelFormatter,\n align: 'left',\n color: '#131313',\n fontSize: 14,\n fontFamily: 'Nunito Sans',\n inside: false,\n padding: [-40, 0, 0, -40]\n }\n },\n series: seriesData.map((serie) => ({\n name: serie.serieName,\n type: 'bar',\n data: serie.values,\n itemStyle: {\n barBorderRadius: [8, 8, 8, 8],\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: '#0897E9' },\n { offset: 1, color: '#75D8FF' }\n ])\n }\n }))\n };\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-empty-content',\n imports: [],\n templateUrl: './tc-rev-empty-content.component.html',\n styleUrl: './tc-rev-empty-content.component.scss'\n})\nexport class TcRevEmptyContentComponent\n{\n\n}\n","<div class=\"tc-rev-empty-content f-family f-sm c-neutral-700 pad-x-16 pad-y-16 bg-c-neutral-200 bor-rad-8\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, signal } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-faq',\n imports: [CommonModule],\n templateUrl: './tc-rev-faq.component.html',\n styleUrl: './tc-rev-faq.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TcRevFaqComponent {\n @Input() title: string = 'Dúvidas frequentes';\n @Input() questions: { question: string; answer: string }[] = [];\n openIndex = signal<number | null>(null);\n\n toggle(index: number) {\n if (this.openIndex() === index) {\n this.openIndex.set(null);\n } else {\n this.openIndex.set(index);\n }\n }\n}\n","<div class=\"tc-rev-faq\">\n <div class=\"tc-rev-faq-list\">\n <div\n class=\"tc-rev-faq-item f-family c-neutral-700 f-size-16\"\n [class.open]=\"openIndex() === i\"\n *ngFor=\"let q of questions; let i = index\"\n (click)=\"toggle(i)\"\n >\n <div class=\"tc-rev-faq-question\">\n <p>{{ q.question }}</p>\n <i class=\"fa-light fa-angle-down arrow\" [class.open]=\"openIndex() === i\"></i>\n </div>\n\n <div\n class=\"tc-rev-faq-answer\"\n >\n <p>{{ q.answer }}</p>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-input-container',\n imports: [CommonModule],\n templateUrl: './tc-rev-input-container.component.html',\n styleUrl: './tc-rev-input-container.component.scss',\n})\nexport class TcRevInputContainerComponent {\n public fullWidth = input<boolean>(false);\n public inputId = input<string>('');\n public label = input<string>('');\n public labelPosition = input<'top' | 'right' | 'bottom' | 'left'>('top');\n public required = input<boolean>(false);\n}\n","<div\n class=\"{{ 'tc-rev-input-container ' + 'label-' + this.labelPosition() }}\"\n [class.full-width]=\"this.fullWidth()\">\n @if (this.label()) {\n @if (this.inputId()) {\n <label\n class=\"tc-rev-input-label cursor-pointer\" [for]=\"this.inputId()\">\n {{this.label()}}\n @if (this.required()) {\n <ng-container *ngTemplateOutlet=\"required\" />\n }\n </label>\n }\n @else {\n <label\n class=\"tc-rev-input-label\">\n {{this.label()}}\n @if (this.required()) {\n <ng-container *ngTemplateOutlet=\"required\" />\n }\n </label>\n }\n }\n <ng-content />\n</div>\n\n\n<ng-template #required>\n <span class=\"c-danger-500\">*</span>\n</ng-template>\n","import { Directive, effect, ElementRef, input } from '@angular/core';\n\n@Directive({\n selector: 'input[tcRevInput], select[tcRevInput]',\n host: {\n class: 'tc-rev-input-control'\n }\n})\nexport class TcRevInputDirective {\n public fullWidth = input<boolean>(false);\n\n constructor(private _el: ElementRef<HTMLInputElement>) {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses(): void {\n this.fullWidth() ? this._el.nativeElement.classList.add('tc-rev-input-control--full-width') : null;\n }\n}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-loading',\n imports: [],\n templateUrl: './tc-rev-loading.component.html',\n styleUrl: './tc-rev-loading.component.scss'\n})\nexport class TcRevLoadingComponent {\n public message = input<string>('Carregando');\n}\n","<div class=\"tc-rev-loading-overlay\">\n <div class=\"tc-rev-loading-container\">\n <span\n class=\"tc-rev-loading-spinner\">\n </span>\n <p class=\"tc-rev-loading-message\">{{message()}}...</p>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tc-rev-message',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './tc-rev-message.component.html',\n styleUrl: './tc-rev-message.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TcRevMessageComponent { \n @Input() message: string = '';\n @Input() type: 'success' | 'error' | 'info' | 'warning' = 'info';\n}\n","<div class=\"message\" [ngClass]=\"type\" *ngIf=\"message\">\n <i class=\"icon fas\" [ngClass]=\"{\n 'fa-check': type === 'success',\n 'fa-times': type === 'error',\n 'fa-info-circle': type === 'info',\n 'fa-exclamation-triangle': type === 'warning'\n }\"></i>\n <i class=\"text\">{{ message }}</i>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, ElementRef, Input, input, model, output, signal, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { isTextEllipsed } from '../../util/ellipsed-text';\nimport { TcRevTooltipDirective } from \"../tc-rev-tooltip/tc-rev-tooltip.directive\";\n\n@Component({\n selector: 'tc-rev-multi-input',\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TcRevTooltipDirective\n],\n templateUrl: './tc-rev-multi-input.component.html',\n styleUrl: './tc-rev-multi-input.component.scss'\n})\nexport class TcRevMultiInputComponent {\n @Input() autoFocus: boolean = false;\n public initialValue = input<string>('');\n public description = input<string>('');\n public initialList = input<any[]>([]); // Deprecated - use items instead\n public items = model<string[]>([]); // Two-way binding para a lista de itens\n public validators = input<any[]>([]);\n public disabled = input<boolean>(false);\n public itemsList = signal<string[]>([]);\n public onChangeList = output<string[]>();\n public multiInputForm: FormGroup;\n\n @ViewChild('multiInputRef ') multiInputRef!: ElementRef<HTMLInputElement>;\n\n constructor() {\n effect(() => {\n this.disabled() ? this.multiInputForm?.get('multiInput')?.disable() : this.multiInputForm?.get('multiInput')?.enable();\n });\n }\n\n ngOnInit(): void\n {\n this.multiInputForm = new FormGroup({\n multiInput: new FormControl('', [Validators.required, ...this.validators()])\n });\n\n // Prioriza os itens do model, mas mantém compatibilidade com initialList\n const itemsToUse = this.items().length > 0 ? this.items() : this.initialList();\n if (itemsToUse?.length)\n {\n this.itemsList.set([...itemsToUse]);\n }\n\n // Se não havia itens no model mas havia initialList, sincroniza o model\n if (this.items().length === 0 && this.initialList().length > 0) {\n this.items.set([...this.initialList()]);\n }\n\n // Escuta mudanças no model e atualiza a lista interna\n this.items.subscribe((newItems) => {\n // Só atualiza se realmente mudou para evitar loops\n const currentItems = this.itemsList();\n if (JSON.stringify(currentItems) !== JSON.stringify(newItems)) {\n this.itemsList.set([...newItems]);\n }\n });\n\n setTimeout(() => {\n if( this.initialValue() !== '' ){\n this.autoFocus = true;\n this.multiInputForm.get('multiInput')?.setValue(this.initialValue());\n }\n });\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if( this.autoFocus ){\n this.multiInputRef?.nativeElement?.focus();\n }\n }, 0);\n }\n public isEllipsed(text: string): boolean\n {\n return isTextEllipsed(text);\n }\n\n public addItem(): void\n {\n const newItem = this.multiInputForm.get('multiInput')!.value;\n this.itemsList.update((currentItems) => {\n const updatedItems = currentItems.includes(newItem)\n ? currentItems\n : [...currentItems, newItem];\n\n // Atualiza o model com two-way binding\n this.items.set([...updatedItems]);\n this.onChangeList.emit(updatedItems);\n return updatedItems;\n });\n this.multiInputForm.reset();\n }\n\n public removeItem(index: number): void\n {\n this.itemsList.update((currentItems) => {\n const newItems = [...currentItems];\n newItems.splice(index, 1);\n\n // Atualiza o model com two-way binding\n this.items.set([...newItems]);\n this.onChangeList.emit(newItems);\n return newItems;\n });\n }\n}\n","<div class=\"tc-rev-multi-input\">\n\t<div class=\"tc-rev-multi-input__input-container\">\n\t\t<form\n [formGroup]=\"multiInputForm\"\n (ngSubmit)=\"addItem()\">\n\n <input\n #multiInputRef\n type=\"text\"\n class=\"tc-rev-input-control\"\n formControlName=\"multiInput\"\n />\n\n <button\n class=\"tc-rev-btn tc-rev-btn--sm tc-rev-btn--primary-filled add-button\"\n type=\"submit\"\n [disabled]=\"multiInputForm.invalid || disabled()\">\n\t\t\t\tAdicionar\n\t\t\t</button>\n\t\t</form>\n\t</div>\n\n\t@if (description()) {\n <span class=\"description f-sm c-neutral-700 mar-t-4 mar-b-16 d-block\">\n {{ description() }}\n </span>\n\t}\n\n @if (itemsList().length > 0) {\n <div class=\"tc-rev-multi-input__added-list\">\n @for (item of itemsList(); track item; let i = $index) {\n <div class=\"list-item h-28 pad-x-8 f-md f-weight-500 bor-rad-4 bg-c-neutral-100\">\n <span\n class=\"c-primary-500 mar-r-4 list-item__text\"\n [tcRevTooltip]=\"isEllipsed(item) ? item : ''\"\n position=\"top\">{{ item }}</span>\n\n <button class=\"h-24 w-24 d-inline-block cursor-pointer bg-c-transparent c-neutral-700 bor-none\" (click)=\"removeItem(i)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'tc-rev-pagination',\n imports: [CommonModule],\n templateUrl: './tc-rev-pagination.component.html',\n styleUrl: './tc-rev-pagination.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class TcRevPaginationComponent {\n\t@Input() currentPage = 1;\n\t@Input() totalPages = 1;\n\n\t@Output() pageChange = new EventEmitter<number>();\n\tpageInputError = false;\n\n\tprevious(): void {\n\t\tif (this.currentPage > 1) {\n\t\t\tthis.currentPage--;\n\t\t\tthis.pageChange.emit(this.currentPage);\n\t\t}\n\t}\n\n\tnext(): void {\n\t\tif (this.currentPage < this.totalPages) {\n\t\t\tthis.currentPage++;\n\t\t\tthis.pageChange.emit(this.currentPage);\n\t\t}\n\t}\n\n\tgoToPage(event: Event): void {\n\t\tconst input = event.target as HTMLInputElement;\n\t\tconst value = input.value;\n\t\t\n\t\tlet pageNumber = parseInt(value.replace(/^0+/, ''), 10);\n\t\t\n\t\tif (isNaN(pageNumber) || pageNumber < 1 || pageNumber > this.totalPages) {\n\t\t\tthis.pageInputError = true;\n\t\t\n\t\t\tif (isNaN(pageNumber) || pageNumber < 1) {\n\t\t\t\tpageNumber = 1;\n\t\t\t} else if (pageNumber > this.totalPages) {\n\t\t\t\tpageNumber = this.totalPages;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.pageInputError = false;\n\t\t}\n\t\t\n\t\tinput.value = this.formatPage(pageNumber);\n\t\n\t\tif (pageNumber !== this.currentPage) {\n\t\t\tthis.currentPage = pageNumber;\n\t\t\tthis.pageChange.emit(this.currentPage);\n\t\t}\n\t}\n\n\tformatPage(page: number): string {\n\t\treturn page < 10 ? `0${page}` : `${page}`;\n\t}\n}\n","<div class=\"pagination-container\">\n\t<button class=\"arrow\" [disabled]=\"currentPage === 1\" (click)=\"previous()\"><i class=\"fas fa-angle-left\"></i></button>\n\n\t<span class=\"label f-family f-weight-600 f-size-14 c-neutral-700\">Página</span>\n\n\t<div class=\"page-input-container\">\n\t\t<input\n\t\t\ttype=\"text\"\n\t\t\tclass=\"page-input\"\n\t\t\t[ngClass]=\"{'error': pageInputError}\"\n\t\t\t[value]=\"formatPage(currentPage)\"\n\t\t\t(keyup.enter)=\"goToPage($event)\"\n\t\t\t(blur)=\"goToPage($event)\"\n\t\t/>\n\t</div>\n\n\t<span class=\"label f-family f-weight-600 f-size-14 c-neutral-700\">de {{ totalPages }}</span>\n\n\t<button class=\"arrow\" [disabled]=\"currentPage === totalPages\" (click)=\"next()\"><i class=\"fas fa-angle-right\"></i></button>\n</div>\n","import { Component, effect, input } from '@angular/core';\n\nexport type ProgressStatusConfig = {\n start: number;\n end: number;\n gradientStatus: ProgressStatusBarGradientStatus;\n}\n\nexport enum ProgressStatusBarGradientStatus {\n info = 'info',\n danger = 'danger',\n success = 'success',\n alert = 'alert',\n}\n\nenum ProgressStatusBarRangeColor {\n dangerStart = '#F48E85',\n dangerEnd = '#DC3545',\n alertStart = '#FECD6E',\n alertEnd = '#FEAC0E',\n infoStart = '#6BC1F2',\n infoEnd = '#0897E9',\n successStart = '#A3E78C',\n successEnd = '#47B13D',\n}\n\n@Component({\n selector: 'tc-rev-progress-status-bar',\n imports: [],\n templateUrl: './tc-rev-progress-status-bar.component.html',\n styleUrl: './tc-rev-progress-status-bar.component.scss',\n})\nexport class TcRevProgressStatusBarComponent {\n public currentValue = input.required<number>();\n public progressStatusConfig = input.required<ProgressStatusConfig[]>();\n public backgroundStyle: string = '';\n \n constructor() {\n effect(() => {\n this.backgroundStyle = this.getBackgroundStyle();\n });\n }\n\n private getBackgroundStyle(): string {\n if (!this.currentValue()) return '';\n \n let currentStatusConfig = this.progressStatusConfig().find((x) => (\n this.currentValue() >= x.start && this.currentValue() <= x.end\n ));\n\n const lastStatusConfig = this.progressStatusConfig()[this.progressStatusConfig()?.length - 1];\n\n if (!currentStatusConfig && this.currentValue() < lastStatusConfig.end) return '';\n\n if (!currentStatusConfig && this.currentValue() > lastStatusConfig.end) {\n currentStatusConfig = { start: 0, end: 100, gradientStatus: lastStatusConfig.gradientStatus };\n }\n \n const startStatus = this.getProgressStatusBarRangeColor(currentStatusConfig!.gradientStatus, 'start');\n const endStatus = this.getProgressStatusBarRangeColor(currentStatusConfig!.gradientStatus, 'end');\n \n let style = `width:${this.currentValue()}%;backgroundImage:linear-gradient(90deg`;\n style += `,${startStatus} 0%,${endStatus} 100%);`\n\n return style;\n }\n\n private getProgressStatusBarRangeColor(_gradientStatus: ProgressStatusBarGradientStatus, position: 'start' | 'end'): ProgressStatusBarRangeColor {\n switch (_gradientStatus) {\n case ProgressStatusBarGradientStatus.alert:\n return position === 'start' ? ProgressStatusBarRangeColor.alertStart : ProgressStatusBarRangeColor.alertEnd;\n case ProgressStatusBarGradientStatus.danger:\n return position === 'start' ? ProgressStatusBarRangeColor.dangerStart : ProgressStatusBarRangeColor.dangerEnd;\n case ProgressStatusBarGradientStatus.success:\n return position === 'start' ? ProgressStatusBarRangeColor.successStart : ProgressStatusBarRangeColor.successEnd;\n default:\n return position === 'start' ? ProgressStatusBarRangeColor.infoStart : ProgressStatusBarRangeColor.infoEnd;\n }\n }\n}\n","<div class=\"progress-status-bar-container\">\n <div\n class=\"progress-status-bar\"\n [style]=\"this.backgroundStyle\">\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'input[type=\"radio\"][tcRevRadio]',\n host: {\n class: 'tc-rev-radio'\n }\n})\nexport class TcRevRadioDirective {\n\n constructor() { }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n Renderer2,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { TcRevIconButtonDirective } from '../tc-rev-icon-button/tc-rev-icon-button.directive';\nimport { TCloudUiDeviceUtilsService } from '../../../_services/tcloud-ui-device-utils.service';\n\n@Component({\n selector: 'tc-rev-side-drawer',\n imports: [CommonModule, TcRevIconButtonDirective],\n templateUrl: './tc-rev-side-drawer.component.html',\n styleUrl: './tc-rev-side-drawer.component.scss',\n animations: [\n trigger('drawerAnimation', [\n transition('void => desktop', [\n style({ transform: 'translateX(100%)', opacity: 0 }),\n animate('250ms', style({ transform: 'translateX(0)', opacity: 1 })),\n ]),\n transition('desktop => void', [\n style({ transform: 'translateX(0)', opacity: 1 }),\n animate('250ms', style({ transform: 'translateX(100%)', opacity: 0 })),\n ]),\n transition('void => mobile', [\n style({ opacity: 0 }),\n animate('200ms ease', style({ opacity: 1 })),\n ]),\n transition('mobile => void', [\n style({ opacity: 1 }),\n animate('200ms ease', style({ opacity: 0 })),\n ]),\n ]),\n\n trigger('backdropAnimation', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('100ms', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('250ms', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class TcRevSideDrawerComponent implements OnDestroy {\n public loading = input<boolean>(false);\n public position = input<'left' | 'right'>('right');\n public title = input.required<string>();\n public xAxis = computed(() =>\n this.position() === 'left' ? `left: 0` : `right: 0`\n );\n public onCloseDrawer = output<void>();\n public isOpen = false;\n public _deviceService = inject(TCloudUiDeviceUtilsService);\n public isDesktop = this._deviceService.isDesktop;\n public isMobile = this._deviceService.isMobile;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.document.body.style.overflowY = 'hidden';\n this.isOpen = true;\n\n // --- mover o host do componente para o <body> apenas em mobile ---\n if (\n this.el &&\n this.el.nativeElement &&\n this.el.nativeElement.parentNode !== this.document.body &&\n this.isMobile()\n ) {\n this.renderer.appendChild(this.document.body, this.el.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.document.body.style.overflowY = '';\n\n // remover o host do body ao destruir apenas em mobile\n if (\n this.el &&\n this.el.nativeElement &&\n this.el.nativeElement.parentNode === this.document.body && \n this.isMobile()\n ) {\n this.renderer.removeChild(this.document.body, this.el.nativeElement);\n }\n }\n\n public handleClickOverlay(): void {\n if (this.loading()) {\n return;\n }\n this.isOpen = false;\n setTimeout(() => this.onCloseDrawer.emit(), 250);\n }\n\n public handleClickContent(_ev: MouseEvent): void {\n _ev.stopPropagation();\n }\n}\n","@if(isDesktop()){\n<div\n [@backdropAnimation]\n class=\"tc-rev-side-drawer-overlay\"\n (click)=\"handleClickOverlay()\">\n</div>\n}\n\n<div\n *ngIf=\"isOpen\"\n [@drawerAnimation]=\"isDesktop() ? 'desktop' : 'mobile'\"\n class=\"tc-rev-side-drawer-content\"\n [style.width]=\"isMobile() ? '100%' : null\"\n (click)=\"handleClickContent($event)\"\n [style]=\"xAxis()\">\n\n <div class=\"tc-rev-side-drawer-content__header\">\n <h2 class=\"mar-none f-h2 f-weight-600\">{{title()}}</h2>\n\n <button\n tcRevIconButton=\"outline\" color=\"dark\"\n [disabled]=\"loading()\"\n (click)=\"handleClickOverlay()\">\n <i class=\"fa-light fa-times\"></i>\n </button>\n </div>\n <ng-content></ng-content>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-skeleton-loading',\n templateUrl: 'tc-rev-skeleton-loading.component.html',\n styleUrls: ['tc-rev-skeleton-loading.component.scss'],\n imports: [CommonModule]\n})\n\nexport class TcRevSkeletonLoadingComponent implements OnInit {\n /** Params of the loading skeleton accepts string with CSS units (px, rem, em) */\n public width = input<string>('10rem');\n public height = input<string>('1.25rem');\n public borderRadius = input<string>('0.3rem');\n\n public style = new TcRevSkeletonLoadingComponentStyle();\n\n ngOnInit(): void\n {\n this.style.width = this.width();\n this.style.height = this.height();\n this.style.borderRadius = this.borderRadius();\n }\n}\n\nexport class TcRevSkeletonLoadingComponentStyle\n{\n width: string;\n height: string;\n borderRadius: string;\n}\n","<div class=\"tc-rev-skeleton-loading\" [ngStyle]=\"this.style\"></div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'input[type=\"checkbox\"][tcRevSlideToggle]',\n host: {\n class: 'tc-rev-slide-toggle'\n }\n})\nexport class TcRevSlideToggleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { Component, input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-small-loading',\n templateUrl: 'tc-rev-small-loading.component.html',\n styleUrls: ['tc-rev-small-loading.component.scss'],\n imports: [CommonModule]\n})\n\nexport class TcRevSmallLoadingComponent implements OnInit {\n /** Width of the loading spinner accepts string with CSS units (px, rem, em) */\n public width = input<string>('1.25rem');\n /** Margin top in pixels */\n public marginTop = input<number>(0);\n /** Margin bottom in pixels */\n public marginBottom = input<number>(0);\n /** Margin right in pixels */\n public marginRight = input<number>(0);\n /** Margin left in pixels */\n public marginLeft = input<number>(0);\n public style = new TcRevSmallLoadingComponentStyle();\n\n ngOnInit(): void\n {\n this.style.marginTop = `${this.marginTop()}px`;\n this.style.marginRight = `${this.marginRight()}px`;\n this.style.marginLeft = `${this.marginLeft()}px`;\n this.style.marginBottom = `${this.marginBottom()}px`;\n this.style.width = this.width();\n this.style.height = this.width();\n }\n}\n\nexport class TcRevSmallLoadingComponentStyle\n{\n marginTop: string;\n marginBottom: string;\n marginRight: string;\n marginLeft: string;\n width: string;\n height: string;\n}\n","<div class=\"tc-rev-small-loading\">\n <span\n class=\"tc-rev-small-loading__spinner\"\n [ngStyle]=\"this.style\">\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, HostListener, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-tab-group',\n imports: [CommonModule],\n templateUrl: './tc-rev-tab-group.component.html',\n styleUrl: './tc-rev-tab-group.component.scss',\n})\nexport class TcRevTabGroupComponent {\n @HostListener('window:resize')\n onResize(): void {\n this.checkCarouselOverflow();\n }\n @ViewChild('tabGroupCarousel') tabGroupCarousel!: ElementRef<HTMLDivElement>;\n public isCarouselOverflowed = false;\n\n ngOnInit(): void {\n this.checkCarouselOverflow();\n }\n\n private checkCarouselOverflow(): void {\n setTimeout(() => {\n const el = this.tabGroupCarousel?.nativeElement;\n \n this.isCarouselOverflowed = !!el && el.scrollWidth > el.clientWidth;\n });\n }\n\n public scrollTabsCarousel(direction: 'left' | 'right'): void {\n const el = this.tabGroupCarousel?.nativeElement;\n if (!el) return;\n const scrollAmount = 200;\n if (direction === 'left') {\n el.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n } else {\n el.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n }\n }\n\n}\n","<div class=\"tc-rev-tab-group\">\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow left\"\n (click)=\"this.scrollTabsCarousel('left')\"\n aria-label=\"Scroll left\">\n <i class=\"fa-light fa-chevron-left\"></i>\n </button>\n\n <div\n class=\"tc-rev-tab-group-carousel\"\n [class.overflowed]=\"isCarouselOverflowed\"\n #tabGroupCarousel>\n <ng-content></ng-content>\n </div>\n\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow right\"\n (click)=\"this.scrollTabsCarousel('right')\"\n aria-label=\"Scroll right\">\n <i class=\"fa-light fa-chevron-right\"></i>\n </button>\n</div>\n\n<!-- <div class=\"products-carousel-container f-family\">\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow left\"\n (click)=\"scrollProductsCarousel('left')\"\n aria-label=\"Scroll left\">\n <i class=\"fa-light fa-chevron-left\"></i>\n </button>\n\n <div\n #productsCarousel\n class=\"products-carousel\"\n [class.overflowed]=\"isCarouselOverflowed\">\n @for (productName of topologiesData.availableProductsNames(); track productName)\n {\n <button\n class=\"tc-rev-tab-item\"\n [class.active]=\"filter().product === productName\"\n (click)=\"handleChangeTopologiesByProduct(productName)\">\n {{ productName | topologyProduct }}\n </button>\n }\n </div>\n\n <button\n *ngIf=\"isCarouselOverflowed\"\n class=\"tc-rev-tab-item carousel-arrow right\"\n (click)=\"scrollProductsCarousel('right')\"\n aria-label=\"Scroll right\">\n <i class=\"fa-light fa-chevron-right\"></i>\n </button>\n</div> -->","import { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tc-rev-tab-item',\n imports: [\n CommonModule,\n RouterModule\n ],\n templateUrl: './tc-rev-tab-item.component.html',\n styleUrls: ['./tc-rev-tab-item.component.scss'],\n})\nexport class TcRevTabItemComponent {\n public onClick = output<MouseEvent>();\n public active = input<boolean>(false);\n public url = input<string>('');\n public disabled = input<boolean>(false);\n public fullWidth = input<boolean>(false);\n}\n","<a\n *ngIf=\"this.url()\"\n class=\"tc-rev-tab-item\"\n [class.disabled]=\"this.disabled()\"\n [class.full-width]=\"this.fullWidth()\"\n [routerLinkActive]=\"'active'\"\n [routerLink]=\"[this.url()]\"\n (click)=\"this.onClick.emit($event)\">\n <ng-container *ngTemplateOutlet=\"content\" />\n</a>\n\n\n<button\n *ngIf=\"!this.url()\"\n class=\"tc-rev-tab-item\"\n [class.active]=\"this.active()\"\n [class.full-width]=\"this.fullWidth()\"\n [disabled]=\"this.disabled()\"\n (click)=\"this.onClick.emit($event)\">\n <ng-container *ngTemplateOutlet=\"content\" />\n</button>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","export enum TagColorsEnum\n{\n 'neutral-50' = 'neutral-50',\n 'neutral-100' = 'neutral-100',\n 'neutral-200' = 'neutral-200',\n 'neutral-300' = 'neutral-300',\n 'neutral-400' = 'neutral-400',\n 'neutral-500' = 'neutral-500',\n 'neutral-600' = 'neutral-600',\n 'neutral-700' = 'neutral-700',\n 'neutral-800' = 'neutral-800',\n 'neutral-900' = 'neutral-900',\n\n // Primary\n 'primary-300' = 'primary-300',\n 'primary-400' = 'primary-400',\n 'primary-500' = 'primary-500',\n 'primary-600' = 'primary-600',\n 'primary-700' = 'primary-700',\n\n // Danger\n\n 'danger-300' = 'danger-300',\n 'danger-400' = 'danger-400',\n 'danger-500' = 'danger-500',\n\n // Alert\n\n 'alert-300' = 'alert-300',\n 'alert-400' = 'alert-400',\n 'alert-500' = 'alert-500',\n\n // Info\n\n 'info-300' = 'info-300',\n 'info-400' = 'info-400',\n 'info-500' = 'info-500',\n\n // Success\n\n 'success-300' = 'success-300',\n 'success-400' = 'success-400',\n 'success-500' = 'success-500',\n}","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\nimport { TagColorsEnum } from './tag-colors.enum';\n\n\n@Component({\n selector: 'tc-rev-tag',\n imports: [\n CommonModule\n ],\n templateUrl: './tc-rev-tag.component.html',\n styleUrl: './tc-rev-tag.component.scss'\n})\nexport class TcRevTagComponent\n{\n public size = input<'md' | 'sm' | 'lg' | 'regular'>('md');\n public color = input<TagColorsEnum | string | undefined>(TagColorsEnum['primary-500']);\n public variant = input<'filled' | 'outline' | ''>('filled');\n public shape = input<'pill' | 'rectangle'>('rectangle');\n public fullWidth = input<boolean>(false);\n}\n","<span\n [class.tc-rev-tag--sm]=\"size() === 'sm'\"\n [class.tc-rev-tag--md]=\"size() === 'md' || size() === 'regular'\"\n [class.tc-rev-tag--lg]=\"size() === 'lg'\"\n [class.tc-rev-tag--pill]=\"shape() === 'pill'\"\n [class.tc-rev-tag--full-width]=\"fullWidth()\"\n class=\"{{!color() && !variant() ? '' : 'tc-rev-tag tc-rev-tag--c-' + color() + '-' + variant()}}\">\n <ng-content></ng-content>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { Component, input } from '@angular/core';\n\n@Component({\n selector: 'tc-rev-toast',\n imports: [CommonModule],\n templateUrl: './tc-rev-toast.component.html',\n styleUrl: './tc-rev-toast.component.scss'\n})\n\nexport class TcRevToastComponent {\n public type = input<'info' | 'success' | 'alert' | 'danger'>('info');\n public fullWidth = input<boolean>(false);\n public size = input<'md' | 'sm' | 'lg'>('md');\n // public toastSize = ToastSize;\n}\n","<div class=\"tc-rev-toast c-neutral-700\">\n <div\n class=\"tc-rev-toast__icon\"\n [ngClass]=\"[\n 'tc-rev-toast__icon--' + type(),\n 'tc-rev-toast__icon--' + size()\n ]\"\n >\n <ng-content select=\"[icon]\" />\n </div>\n\n <div\n class=\"tc-rev-toast__content\"\n [ngClass]=\"[\n 'tc-rev-toast__content--' + type(),\n 'tc-rev-toast__content--' + size()\n ]\"\n [class.full-width]=\"fullWidth()\"\n >\n <ng-content />\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, input, output } from '@angular/core';\nimport { Params, RouterModule } from '@angular/router';\n\n@Component({\n selector: 'tc-rev-sub-navbar-item',\n imports: [\n CommonModule,\n RouterModule,\n ],\n templateUrl: './tc-sub-navbar-item.component.html',\n styleUrl: './tc-sub-navbar-item.component.scss'\n})\nexport class TcRevSubNavbarItemComponent\n{\n @Input() isMenuExpanded: boolean;\n public label = input.required<string>();\n public onClick = output<MouseEvent>()\n public active = input<boolean>(false);\n public routerLink = input<string | null>(null);\n public queryParams = input<Params | null>(null);\n\n public handleClick(_ev: MouseEvent): void\n {\n this.onClick.emit(_ev);\n }\n}\n","<li\n class=\"tc-sub-navbar-item\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded\">\n <a\n class=\"tc-sub-navbar-item-link\"\n [class.selected]=\"active()\"\n [routerLink]=\"routerLink()\"\n routerLinkActive=\"active\"\n [queryParams]=\"queryParams()\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [title]=\"label()\"\n (click)=\"handleClick($event)\">\n\n <div class=\"navbar-item-icon-container\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n\n @if (isMenuExpanded)\n {\n <div class=\"navbar-item-label\">\n {{label()}}\n </div>\n }\n </a>\n</li>\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChildren, output, signal } from '@angular/core';\nimport { TcRevSubNavbarItemComponent } from './component/tc-sub-navbar-item/tc-sub-navbar-item.component';\n\n@Component({\n selector: 'tc-rev-sub-navbar',\n imports: [\n CommonModule,\n TcRevSubNavbarItemComponent,\n ],\n templateUrl: './tc-sub-navbar.component.html',\n styleUrl: './tc-sub-navbar.component.scss'\n})\nexport class TcRevSubNavbarComponent\n{\n @ContentChildren(TcRevSubNavbarItemComponent) subNavbarItems!: TcRevSubNavbarItemComponent[];\n public isMenuExpanded = signal<boolean>(true);\n public onSubMenuExpandChange = output<boolean>();\n\n\n ngAfterContentInit(): void\n {\n setTimeout(() => this.setExpandedMenuValueToChildrend(), 0);\n }\n\n public handleExpandMenu(): void\n {\n this.isMenuExpanded.update((value) => !value);\n this.setExpandedMenuValueToChildrend();\n }\n\n private setExpandedMenuValueToChildrend(): void\n {\n if (!this.subNavbarItems?.length) return;\n this.subNavbarItems.forEach((x) =>\n {\n x.isMenuExpanded = this.isMenuExpanded();\n });\n\n this.onSubMenuExpandChange.emit(this.isMenuExpanded());\n }\n}\n","<nav class=\"tc-sub-navbar\">\n <ul\n class=\"tc-sub-navbar-list\"\n [class.tc-rev-submenu-expanded]=\"isMenuExpanded()\"\n >\n <tc-rev-sub-navbar-item\n [isMenuExpanded]=\"isMenuExpanded()\"\n (click)=\"handleExpandMenu()\"\n label=\"Minimizar\"\n >\n <i\n class=\"fa-light\"\n [class.fa-arrow-left-to-line]=\"isMenuExpanded()\"\n [class.fa-arrow-right-to-line]=\"!isMenuExpanded()\"\n icon\n ></i>\n </tc-rev-sub-navbar-item>\n <ng-content></ng-content>\n </ul>\n</nav>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Component, input, output } from '@angular/core';\n\nexport type WizardStep = {\n title: string;\n description?: string;\n completed?: boolean;\n}\n\n@Component({\n selector: 'tc-rev-wizard-steps',\n templateUrl: './tc-rev-wizard-steps.component.html',\n styleUrls: ['./tc-rev-wizard-steps.component.scss'],\n imports: [CommonModule],\n animations: [\n trigger('progressBarEntering', [\n state('in', style({ width: '*' })),\n transition('void => *', [\n style({ width: 0 }),\n animate('1.5s 0s ease')\n ])\n ])\n ]\n})\nexport class TcRevWizardStepsComponent {\n public onStepClick = output<{ step: WizardStep, index: number }>();\n public direction = input<'horizontal' | 'vertical'>('horizontal');\n public currentStep = input<number>(0);\n public stepClickable = input<boolean>(false);\n public steps = input.required<WizardStep[]>();\n\n public handleStepClick(step: WizardStep, isNext: boolean, index: number): void {\n if (this.stepClickable() && !isNext) {\n this.onStepClick.emit({ step, index });\n }\n }\n}\n","<div [class]=\"'tc-rev-wizard-steps' + ` tc-rev-wizard-steps--${this.direction()}`\">\n @for (step of this.steps(); let i = $index; track step.title + i) {\n @let isCompleted = step.completed || i + 1 < this.currentStep();\n @let isNext = i + 1 > this.currentStep();\n <div\n class=\"tc-rev-wizard-step\"\n [class.tc-rev-wizard-step--current]=\"i + 1 === this.currentStep()\"\n [class.tc-rev-wizard-step--completed]=\"isCompleted\"\n [class.tc-rev-wizard-step--next]=\"isNext\">\n\n <span\n class=\"tc-rev-wizard-step__counter f-h3\"\n [class.cursor-default]=\"!this.stepClickable()\"\n [class.cursor-pointer]=\"this.stepClickable() && !isNext\"\n (click)=\"this.handleStepClick(step, isNext, i)\">\n @if (isCompleted) {\n <i class=\"fas fa-check\"></i>\n }\n @else {\n {{ i + 1 }}\n }\n </span>\n\n <div class=\"tc-rev-wizard-step__info\">\n <p class=\"tc-rev-wizard-step__title f-lg mar-none cursor-default\">\n {{ step.title }}\n </p>\n\n @if (step.description) {\n <p class=\"tc-rev-wizard-step__description f-sm mar-none cursor-default\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n }\n</div>\n\n<!-- VERSÃO COM DIVISOR -->\n<!-- <div [class]=\"'tc-rev-wizard-steps' + ` tc-rev-wizard-steps--${this.direction()}`\">\n @for (step of this.steps(); let i = $index; let last = $last; track step.title + i) {\n @let isCompleted = step.completed || i + 1 < this.currentStep();\n\n <div\n class=\"tc-rev-wizard-step\"\n [class.tc-rev-wizard-step--current]=\"i + 1 === this.currentStep()\"\n [class.tc-rev-wizard-step--completed]=\"isCompleted\"\n [class.tc-rev-wizard-step--next]=\"i + 1 > this.currentStep()\"\n [ngClass]=\"this.direction()\">\n\n <span class=\"tc-rev-wizard-step__counter f-h3 cursor-default\">\n {{ i + 1 }}\n </span>\n\n <div class=\"tc-rev-wizard-step__info\">\n <p class=\"tc-rev-wizard-step__title f-lg mar-none cursor-default\">\n {{ step.title }}\n </p>\n\n @if (step.description) {\n <p class=\"tc-rev-wizard-step__description f-sm mar-none cursor-default\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n\n @if (this.steps().length > i && !last) {\n <div\n class=\"tc-rev-wizard-step-divider\"\n [class.completed]=\"isCompleted\"\n [ngClass]=\"this.direction()\">\n </div>\n }\n }\n</div> -->\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface BreadcrumbItem\n{\n label: string;\n url?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TcRevBreadcrumbService\n{\n private breadcrumbsSubject = new BehaviorSubject<BreadcrumbItem[]>([]);\n public breadcrumbs$ = this.breadcrumbsSubject.asObservable();\n\n constructor() {}\n\n public setBreadcrumb(items: BreadcrumbItem[]): void\n {\n this.breadcrumbsSubject.next(items);\n }\n\n public addLevel(item: BreadcrumbItem): void\n {\n const currentItems = this.breadcrumbsSubject.getValue();\n this.breadcrumbsSubject.next([...currentItems, item]);\n }\n\n public removeLastLevel(): void\n {\n const currentItems = this.breadcrumbsSubject.getValue();\n if (currentItems.length > 0)\n {\n const newItems = [...currentItems];\n newItems.pop();\n this.breadcrumbsSubject.next(newItems);\n }\n }\n\n public clear(): void\n {\n this.breadcrumbsSubject.next([]);\n }\n}","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { BreadcrumbItem, TcRevBreadcrumbService } from './tc-rev-breadcrumb.service';\n\n@Component({\n selector: 'tc-rev-breadcrumb',\n imports: [\n CommonModule,\n RouterModule\n ],\n templateUrl: './tc-rev-breadcrumb.component.html',\n styleUrl: './tc-rev-breadcrumb.component.scss'\n})\nexport class TcRevBreadcrumbComponent\n{\n public breadcrumbs: BreadcrumbItem[] = [];\n private router = inject(Router);\n private breadcrumbService = inject(TcRevBreadcrumbService);\n\n constructor() { }\n \n ngOnInit(): void\n {\n this.breadcrumbService.breadcrumbs$.subscribe(items => this.breadcrumbs = items);\n }\n\n public navigate(url?: string, index?: number): void\n {\n if (url)\n {\n this.router.navigateByUrl(url);\n \n // Opcional: remover níveis do breadcrumb após o clicado\n if (index !== undefined && index < this.breadcrumbs.length - 1)\n {\n this.breadcrumbService.setBreadcrumb(this.breadcrumbs.slice(0, index + 1));\n }\n }\n }\n}\n","<nav aria-label=\"breadcrumb\" class=\"tc-rev-breadcrumb\">\n <ol class=\"tc-rev-breadcrumb-list\">\n <!-- Link para o Dashboard -->\n <li class=\"tc-rev-breadcrumb-item\">\n <a [routerLink]=\"['/dashboard']\"><i class=\"fa-light fa-house-blank\"></i>\n @if (breadcrumbs.length > 0)\n {\n <i class=\"fa-light fa-chevron-right\"></i>\n }\n @else\n {\n Página inicial\n }\n </a>\n </li>\n\n <!-- Iteração sobre os itens do breadcrumb -->\n <li\n *ngFor=\"let breadcrumb of breadcrumbs; let i = index; let last = last\"\n class=\"tc-rev-breadcrumb-item\"\n [ngClass]=\"{ 'active': last }\"\n [attr.aria-current]=\"last ? 'page' : null\">\n <ng-container *ngIf=\"!last\">\n <a (click)=\"navigate(breadcrumb.url, i)\">{{ breadcrumb.label }}</a>\n <i class=\"fa-light fa-chevron-right\"></i>\n </ng-container>\n <ng-container *ngIf=\"last\">\n {{ breadcrumb.label }}\n </ng-container>\n </li>\n </ol>\n</nav>","import { NgModule } from '@angular/core';\n\nimport { TcRevBreadcrumbComponent } from './tc-rev-breadcrumb/tc-rev-breadcrumb.component';\nimport { TcRevButtonDirective } from './tc-rev-button/tc-rev-button.directive';\nimport { TcRevCalendarComponent } from './tc-rev-calendar/tc-rev-calendar.component';\nimport { TcRevCardAccordionComponent } from './tc-rev-card-accordion/tc-rev-card-accordion.component';\nimport { TcRevCardTitleComponent } from './tc-rev-card-title/tc-rev-card-title.component';\nimport { TcRevCardComponent } from './tc-rev-card/tc-rev-card.component';\nimport { TcRevCheckboxDirective } from './tc-rev-checkbox/tc-rev-checkbox.directive';\nimport { TcRevDropdownGroupedComponent } from './tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component';\nimport { TcRevDropdownMultiLevelComponent } from './tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component';\nimport { TcRevDropdownMultiComponent } from './tc-rev-dropdown-multi/tc-rev-dropdown-multi.component';\nimport { TcRevDropdownComponent } from './tc-rev-dropdown/tc-rev-dropdown.component';\nimport { TcRevEmptyContentComponent } from './tc-rev-empty-content/tc-rev-empty-content.component';\nimport { TcRevFaqComponent } from './tc-rev-faq/tc-rev-faq.component';\nimport { TcRevIconButtonDirective } from './tc-rev-icon-button/tc-rev-icon-button.directive';\nimport { TcRevInputContainerComponent } from './tc-rev-input-container/tc-rev-input-container.component';\nimport { TcRevInputDirective } from './tc-rev-input/tc-rev-input.directive';\nimport { TcRevLoadingComponent } from './tc-rev-loading/tc-rev-loading.component';\nimport { TcRevMessageComponent } from './tc-rev-message/tc-rev-message.component';\nimport { TcRevMultiInputComponent } from './tc-rev-multi-input/tc-rev-multi-input.component';\nimport { TcRevPaginationComponent } from './tc-rev-pagination/tc-rev-pagination.component';\nimport { TcRevProgressStatusBarComponent } from './tc-rev-progress-status-bar/tc-rev-progress-status-bar.component';\nimport { TcRevRadioDirective } from './tc-rev-radio/tc-rev-radio.directive';\nimport { TcRevSearchInputComponent } from './tc-rev-search-input/tc-rev-search-input.component';\nimport { TcRevSideDrawerComponent } from './tc-rev-side-drawer/tc-rev-side-drawer.component';\nimport { TcRevSkeletonLoadingComponent } from './tc-rev-skeleton-loading/tc-rev-skeleton-loading.component';\nimport { TcRevSlideToggleDirective } from './tc-rev-slide-toggle/tc-rev-slide-toggle.directive';\nimport { TcRevSmallLoadingComponent } from './tc-rev-small-loading/tc-rev-small-loading.component';\nimport { TcRevTabGroupComponent } from './tc-rev-tab-group/tc-rev-tab-group.component';\nimport { TcRevTabItemComponent } from './tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component';\nimport { TcRevTagComponent } from './tc-rev-tag/tc-rev-tag.component';\nimport { TcRevToastComponent } from './tc-rev-toast/tc-rev-toast.component';\nimport { TcRevTooltipDirective } from './tc-rev-tooltip/tc-rev-tooltip.directive';\nimport { TcRevWizardStepsComponent } from './tc-rev-wizard-steps/tc-rev-wizard-steps.component';\nimport { TcRevSubNavbarItemComponent } from './tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component';\nimport { TcRevSubNavbarComponent } from './tc-sub-navbar/tc-sub-navbar.component';\n\n\n@NgModule({\n imports: [\n TcRevBreadcrumbComponent,\n TcRevButtonDirective,\n TcRevCalendarComponent,\n TcRevCardComponent,\n TcRevCardAccordionComponent,\n TcRevCardTitleComponent,\n TcRevCheckboxDirective,\n TcRevDropdownComponent,\n TcRevDropdownGroupedComponent,\n TcRevDropdownMultiComponent,\n TcRevDropdownMultiLevelComponent,\n TcRevEmptyContentComponent,\n TcRevFaqComponent,\n TcRevIconButtonDirective,\n TcRevInputContainerComponent,\n TcRevInputDirective,\n TcRevLoadingComponent,\n TcRevMessageComponent,\n TcRevMultiInputComponent,\n TcRevPaginationComponent,\n TcRevProgressStatusBarComponent,\n TcRevRadioDirective,\n TcRevSearchInputComponent,\n TcRevSideDrawerComponent,\n TcRevSkeletonLoadingComponent,\n TcRevSlideToggleDirective,\n TcRevSmallLoadingComponent,\n TcRevTabGroupComponent,\n TcRevTabItemComponent,\n TcRevTagComponent,\n TcRevToastComponent,\n TcRevTooltipDirective,\n TcRevSubNavbarComponent,\n TcRevSubNavbarItemComponent,\n TcRevWizardStepsComponent,\n ],\n exports: [\n // TcRevBreadcrumbComponent,\n TcRevButtonDirective,\n TcRevCalendarComponent,\n TcRevCardComponent,\n TcRevCardAccordionComponent,\n TcRevCardTitleComponent,\n TcRevCheckboxDirective,\n TcRevDropdownComponent,\n TcRevDropdownGroupedComponent,\n TcRevDropdownMultiComponent,\n TcRevDropdownMultiLevelComponent,\n TcRevEmptyContentComponent,\n TcRevFaqComponent,\n TcRevIconButtonDirective,\n TcRevInputContainerComponent,\n TcRevInputDirective,\n TcRevLoadingComponent,\n TcRevMessageComponent,\n TcRevMultiInputComponent,\n TcRevPaginationComponent,\n TcRevProgressStatusBarComponent,\n TcRevSmallLoadingComponent,\n TcRevRadioDirective,\n TcRevSearchInputComponent,\n TcRevSideDrawerComponent,\n TcRevSkeletonLoadingComponent,\n TcRevSlideToggleDirective,\n TcRevTabGroupComponent,\n TcRevTabItemComponent,\n TcRevTagComponent,\n TcRevToastComponent,\n TcRevTooltipDirective,\n TcRevSubNavbarComponent,\n TcRevSubNavbarItemComponent,\n TcRevWizardStepsComponent,\n ],\n declarations: [],\n providers: [],\n})\nexport class TcRevComponentsLibModule { }\n","/*\n * Public API Surface of tcloud-ui\n */\n\nexport * from './lib/tcloud-ui.config';\nexport * from './lib/tcloud-ui.module';\nexport * from './lib/tcloud-ui.tokens';\nexport * from './lib/tcloud-ui.providers';\n\n// UI-MODAL\nexport * from './lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-body/tcloud-ui-modal-body.component';\nexport * from './lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-footer/tcloud-ui-modal-footer.component';\nexport * from './lib/_modules/tcloud-ui-modal/components/tcloud-ui-modal-header/tcloud-ui-modal-header.component';\nexport * from './lib/_modules/tcloud-ui-modal/tcloud-ui-modal.component';\n// export * from './lib/_modules/tcloud-ui-modal/tcloud-ui-modal.module';\n\n// UI-TAB-MENU\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-content/tcloud-ui-tab-content.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-head/tcloud-ui-tab-head.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-subtitle/tcloud-ui-tab-subtitle.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/components/tcloud-ui-tab-title/tcloud-ui-tab-title.component';\nexport * from './lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.component';\n// export * from './lib/_modules/tcloud-ui-tab-menu/tcloud-ui-tab-menu.module';\n\n// UI-LINHA-LOGO\nexport * from './lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.component';\n// export * from './lib/_modules/tcloud-ui-linha-logo/tcloud-ui-linha-logo.module';\n\n// UI-STEP-CIRCLE\nexport * from './lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.component';\n// export * from './lib/_modules/tcloud-ui-line-step-circle/tcloud-ui-line-step-circle.module';\n\n// UI-MULTI-SELECT\nexport * from './lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component';\n// export * from './lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module';\n\n// UI-TOOLTIP\nexport * from './lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component';\nexport * from './lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component';\n// export * from './lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module';\n\n// UI-MULTI-INPUT\nexport * from './lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component';\n// export * from './lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module';\n\n// UI-CHOICE-ISSUES\nexport * from './lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.component';\n// export * from './lib/_modules/tcloud-ui-choice-issues/tcloud-ui-choice-issues.module';\n\n// UI-INPUT-SEARCH\nexport * from './lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.component';\n// export * from './lib/_modules/tcloud-ui-input-search/tcloud-ui-input-search.module';\n\n// UI-NOT-FOUND\nexport * from './lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.component';\n// export * from './lib/_modules/tcloud-ui-not-found/tcloud-ui-not-found.module';\n\n// UI-TABLE\nexport * from './lib/_modules/tcloud-ui-table/tcloud-ui-table.component';\n// export * from './lib/_modules/tcloud-ui-table/tcloud-ui-table.module';\n\n// UI-NUMBER-STEP\nexport * from './lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.component';\n// export * from './lib/_modules/tcloud-ui-number-step/tcloud-ui-number-step.module';\n\n// UI-SCROLL-BOX\nexport * from './lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.component';\n// export * from './lib/_modules/tcloud-ui-scroll-box/tcloud-ui-scroll-box.module';\n\n// UI-FILTERS\nexport * from './lib/_modules/tcloud-ui-filters/components/range-date/range-date.component';\nexport * from './lib/_modules/tcloud-ui-filters/tcloud-ui-filters';\nexport * from './lib/_modules/tcloud-ui-filters/tcloud-ui-filters.component';\n// export * from './lib/_modules/tcloud-ui-filters/tcloud-ui-filters.module';\n\n// UI-ACCORDION\nexport * from './lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-body/tcloud-ui-accordion-body.component';\nexport * from './lib/_modules/tcloud-ui-accordion/components/tcloud-ui-accordion-title/tcloud-ui-accordion-title.component';\nexport * from './lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.component';\n// export * from './lib/_modules/tcloud-ui-accordion/tcloud-ui-accordion.module';\n\n// UI-DATEPICKER\nexport * from './lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.component';\n// export * from './lib/_modules/tcloud-ui-datepicker/tcloud-ui-datepicker.module';\n\n// UI-DATEPICKER-TIME\nexport * from './lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.component';\n// export * from './lib/_modules/tcloud-ui-datepicker-time/tcloud-ui-datepicker-time.module';\n\n// UI-MULTIPLES-VALUES\nexport * from './lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.component';\n// export * from './lib/_modules/tcloud-ui-multiples-values/tcloud-ui-multiples-values.module';\n\n// UI-WELCOME\nexport * from './lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.component';\n// export * from './lib/_modules/tcloud-ui-welcome/tcloud-ui-welcome.module';\n\n// UI-INPUT-PASSWORD\nexport * from './lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.component';\n// export * from './lib/_modules/tcloud-ui-input-password/tcloud-ui-input-password.module';\n\n// UI-PROGRESS-BAR\nexport * from './lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.component';\n// export * from './lib/_modules/tcloud-ui-progress-bar/tcloud-ui-progress-bar.module';\n\n// UI-LOADING\nexport * from './lib/_modules/tcloud-ui-loading/components/tcloud-ui-cubes/tcloud-ui-cubes.component';\nexport * from './lib/_modules/tcloud-ui-loading/tcloud-ui-loading.component';\n// export * from './lib/_modules/tcloud-ui-loading/tcloud-ui-loading.module';\n\n// UI-REORDER-ITEMS\nexport * from './lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items';\nexport * from './lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.component';\n// export * from './lib/_modules/tcloud-ui-reorder-items/tcloud-ui-reorder-items.module';\n\n// UI-LABEL-TOKEN\nexport * from './lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.component';\n// export * from './lib/_modules/tcloud-ui-label-token/tcloud-ui-label-token.module';\n\n// UI-LINE-STEP-TITLE\nexport * from './lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title';\nexport * from './lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.component';\n// export * from './lib/_modules/tcloud-ui-line-step-title/tcloud-ui-line-step-title.module';\n\n// DIRECTIVES\nexport * from './lib/_directives/align/align.directive';\nexport * from './lib/_directives/currency/currency.directive';\n// export * from './lib/_directives/directives.module';\nexport * from './lib/_directives/el-copy/el-copy.directive';\nexport * from './lib/_directives/hover-parent/hover-parent.directive';\nexport * from './lib/_directives/tcloud-access/tcloud-ui-check-access.directive';\nexport * from './lib/_directives/tcloud-access/tcloud-ui-ng-check-access.directive';\nexport * from './lib/_directives/tcloud-access/tcloud-ui-ng-feature-flags.directive';\nexport * from './lib/_directives/tcloud-ui-digit-only.directive';\nexport * from './lib/_directives/tcloud-ui-highlight.diretive';\nexport * from './lib/_directives/tcloud-ui-ip-mask.directive';\nexport * from './lib/_directives/tooltip/tooltip.directive';\nexport * from './lib/_directives/tcloud-button/tcloud-button.directive';\nexport * from './lib/_directives/tcloud-form/tcloud-form.directive';\n// PIPES\nexport * from './lib/_pipes/index';\n// export * from './lib/_pipes/tcloud-pipes.module';\n\n// SERVICES\nexport * from './lib/_services/loading-transitions.service';\nexport * from './lib/_services/search-in-object.service';\nexport * from './lib/_services/tcloud-ui-check-access.service';\n\n\n// * [COMPONENTES DE REVITALIZAÇÃO PARA TCLOUD-UI] *\n// Sub Navbar\nexport * from './lib/_modules/tcloud-ui-sub-navbar/component/tcloud-ui-sub-navbar-item/tcloud-ui-sub-navbar-item.component';\nexport * from './lib/_modules/tcloud-ui-sub-navbar/tcloud-ui-sub-navbar.component';\n\n// Container\nexport * from './lib/_modules/tcloud-ui-container/tcloud-ui-container.component';\nexport * from './lib/_modules/tcloud-ui-container/components/tcloud-ui-container-content/tcloud-ui-container-content.component';\nexport * from './lib/_modules/tcloud-ui-container/components/tcloud-ui-container-col/tcloud-ui-container-col.component';\n\n\n\n// * [COMPONENTES REVITALIZAÇÃO] *\n\n// Button\nexport * from './lib/revitalizacao/components/tc-rev-button/tc-rev-button.directive';\n\n// Calendar\nexport * from './lib/revitalizacao/components/tc-rev-calendar/tc-rev-calendar.component';\n\n// Card\nexport * from './lib/revitalizacao/components/tc-rev-card-accordion/tc-rev-card-accordion.component';\nexport * from './lib/revitalizacao/components/tc-rev-card-title/tc-rev-card-title.component';\nexport * from './lib/revitalizacao/components/tc-rev-card/tc-rev-card.component';\n\n// Checkbox\nexport * from './lib/revitalizacao/components/tc-rev-checkbox/tc-rev-checkbox.directive';\n\n// Dropdown\nexport * from './lib/revitalizacao/components/tc-rev-dropdown-grouped/tc-rev-dropdown-grouped.component';\nexport * from './lib/revitalizacao/components/tc-rev-dropdown-multi-level/tc-rev-dropdown-multi-level.component';\nexport * from './lib/revitalizacao/components/tc-rev-dropdown-multi/tc-rev-dropdown-multi.component';\nexport * from './lib/revitalizacao/components/tc-rev-dropdown/tc-rev-dropdown.component';\n\n// Echarts\nexport * from './lib/revitalizacao/charts/echarts';\n\n// Empty Content\nexport * from './lib/revitalizacao/components/tc-rev-empty-content/tc-rev-empty-content.component';\n\n// FAQ\nexport * from './lib/revitalizacao/components/tc-rev-faq/tc-rev-faq.component';\n\n// Icon Button\nexport * from './lib/revitalizacao/components/tc-rev-icon-button/tc-rev-icon-button.directive';\n\n// Input Container\nexport * from './lib/revitalizacao/components/tc-rev-input-container/tc-rev-input-container.component';\n\n// Input\nexport * from './lib/revitalizacao/components/tc-rev-input/tc-rev-input.directive';\n\n// Loading\nexport * from './lib/revitalizacao/components/tc-rev-loading/tc-rev-loading.component';\n\n// Message\nexport * from './lib/revitalizacao/components/tc-rev-message/tc-rev-message.component';\n\n// Multi Input\nexport * from './lib/revitalizacao/components/tc-rev-multi-input/tc-rev-multi-input.component';\n\n// Pagination\nexport * from './lib/revitalizacao/components/tc-rev-pagination/tc-rev-pagination.component';\n\n// Progress Status Bar\nexport * from './lib/revitalizacao/components/tc-rev-progress-status-bar/tc-rev-progress-status-bar.component';\n\n// Radio\nexport * from './lib/revitalizacao/components/tc-rev-radio/tc-rev-radio.directive';\n\n// Search Input\nexport * from './lib/revitalizacao/components/tc-rev-search-input/tc-rev-search-input.component';\n\n// Side Drawer\nexport * from './lib/revitalizacao/components/tc-rev-side-drawer/tc-rev-side-drawer.component';\n\n// Skeleton Loading\nexport * from './lib/revitalizacao/components/tc-rev-skeleton-loading/tc-rev-skeleton-loading.component';\n\n// Slide Toggle\nexport * from './lib/revitalizacao/components/tc-rev-slide-toggle/tc-rev-slide-toggle.directive';\n\n// Small Loading\nexport * from './lib/revitalizacao/components/tc-rev-small-loading/tc-rev-small-loading.component';\n\n// Tab\nexport * from './lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-group.component';\nexport * from './lib/revitalizacao/components/tc-rev-tab-group/tc-rev-tab-item/tc-rev-tab-item.component';\n\n// Tag\nexport * from './lib/revitalizacao/components/tc-rev-tag/tag-colors.enum';\nexport * from './lib/revitalizacao/components/tc-rev-tag/tc-rev-tag.component';\n\n// Toast\nexport * from './lib/revitalizacao/components/tc-rev-toast/tc-rev-toast.component';\n\n// Tooltip\nexport * from './lib/revitalizacao/components/tc-rev-tooltip/tc-rev-tooltip.directive';\n\n// Sub Navbar\nexport * from './lib/revitalizacao/components/tc-sub-navbar/component/tc-sub-navbar-item/tc-sub-navbar-item.component';\nexport * from './lib/revitalizacao/components/tc-sub-navbar/tc-sub-navbar.component';\n\n\n// Utils\nexport * from './lib/revitalizacao/util/ellipsed-text';\n\n// Wizard Steps\nexport * from './lib/revitalizacao/components/tc-rev-wizard-steps/tc-rev-wizard-steps.component';\n\n// Module\nexport * from './lib/revitalizacao/components/tc-rev-components.module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TCloudUiAccordionService","i2","CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR","noop","i1.DataListService","i1.TCloudUiLayoutService","i3","i1.DateBRPipe","i2.TCloudUiLayoutService","CUSTOM_INPUT_VALIDATORS","i2.StatusInfoPipe","i1.TCloudUiSearchInObjectService","i2.TcloudModalService","i1.TcloudModalService","i4","i1","i1.TabMenuService","i1.TCloudUiCheckAccessService"],"mappings":"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"}
|