@ngrdt/tabs 0.0.80 → 0.0.81
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.
- package/fesm2022/ngrdt-tabs.mjs.map +1 -1
- package/index.d.ts +3 -3
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrdt-tabs.mjs","sources":["../tmp-esm2022/lib/directives/rdt-destroy-inactive.directive.js","../tmp-esm2022/lib/components/tab/rdt-tab.component.js","../tmp-esm2022/lib/strategies/rdt-tabs-shortcut-strategy.js","../tmp-esm2022/lib/strategies/auto-rdt-tabs-shortcut-strategy.js","../tmp-esm2022/lib/directives/rdt-tab-controller.directive.js","../tmp-esm2022/lib/components/tab-container/rdt-tab-container.component.js","../tmp-esm2022/lib/rdt-tabs-models.js","../tmp-esm2022/lib/rdt-tabs.module.js","../tmp-esm2022/lib/strategies/static-rdt-tabs-shortcut-strategy.js","../tmp-esm2022/ngrdt-tabs.js"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdtDestroyInactiveDirective {\n template = inject(TemplateRef);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDestroyInactiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtDestroyInactiveDirective, isStandalone: false, selector: \"[rdtDestroyInactive]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDestroyInactiveDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtDestroyInactive]',\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlc3Ryb3ktaW5hY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9kaXJlY3RpdmVzL3JkdC1kZXN0cm95LWluYWN0aXZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTS9ELE1BQU0sT0FBTywyQkFBMkI7SUFDdEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQzt1R0FEcEMsMkJBQTJCOzJGQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZHREZXN0cm95SW5hY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSB7XG4gIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG4iXX0=","import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, DestroyRef, inject, Injector, Input, TemplateRef, ViewChild, } from '@angular/core';\nimport { RDT_GUARDED_COMPONENT, RdtContainerDirective, } from '@ngrdt/core';\nimport { RdtDestroyInactiveDirective } from '../../directives/rdt-destroy-inactive.directive';\nimport { RdtTabContainerComponent } from '../tab-container/rdt-tab-container.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrdt/core\";\nexport class RdtTabComponent {\n injector = inject(Injector);\n destroyRef = inject(DestroyRef);\n _contDir;\n get contDir() {\n return this._contDir;\n }\n get stateId() {\n if (this._stateId === null) {\n if (this.label !== '') {\n this._stateId = this.label;\n }\n else {\n const index = this.tabContainer?.tabsList?.toArray().indexOf(this);\n this._stateId = `tab-${index}`;\n }\n }\n return this._stateId;\n }\n set stateId(value) {\n this._stateId = value;\n }\n _stateId = null;\n disabled = false;\n visible = true;\n label;\n formAutofocus = true;\n buttonClass = null;\n implicitContent;\n explicitContent;\n get templateRef() {\n return this.explicitContent ?? this.implicitContent;\n }\n tabContainer = inject(RdtTabContainerComponent);\n //get forms() {\n // return this.getChildrenByClass(RdtBaseFormComponent);\n //}\n get childContainers() {\n return this.contDir.getChildrenByClass(RdtTabContainerComponent);\n }\n rdtIsActive() {\n return (this.visible && !this.disabled && this.tabContainer.activeTab === this);\n }\n ngOnInit() {\n this._contDir = this.injector.get(RdtContainerDirective);\n }\n ngOnChanges(changes) {\n if ('label' in changes ||\n 'value' in changes ||\n 'visible' in changes ||\n 'stateId' in changes) {\n this.tabContainer.cd.markForCheck();\n }\n }\n get isTopLevel() {\n return this.tabContainer.isTopLevel;\n }\n getState() {\n return {\n id: this.stateId,\n containerStates: this.childContainers.map((cont) => cont.getState()),\n };\n }\n applyState(state) {\n const states = [...state.containerStates];\n const conts = this.childContainers;\n const minLen = Math.min(states.length, conts.length);\n for (let i = 0; i < minLen; i++) {\n if (conts[i].stateId === states[i].id) {\n conts[i].applyState(states[i]);\n conts[i] = states[i] = null;\n }\n }\n conts.forEach((cont, contI) => {\n if (!cont) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = contI - offset;\n const next = contI + offset;\n if (prev > 0 && states[prev]?.id === cont.stateId) {\n cont.applyState(states[prev]);\n states[prev] = null;\n return;\n }\n else if (next < states.length && states[next]?.id === cont.stateId) {\n cont.applyState(states[next]);\n states[next] = null;\n return;\n }\n }\n });\n }\n focusForm() {\n //TODO: getRdtAutofocusable(this.forms)?.focus();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"20.0.0\", type: RdtTabComponent, isStandalone: false, selector: \"rdt-tab\", inputs: { stateId: \"stateId\", disabled: [\"disabled\", \"disabled\", booleanAttribute], visible: [\"visible\", \"visible\", booleanAttribute], label: \"label\", formAutofocus: [\"formAutofocus\", \"formAutofocus\", booleanAttribute], buttonClass: \"buttonClass\" }, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabComponent,\n },\n ], queries: [{ propertyName: \"explicitContent\", first: true, predicate: RdtDestroyInactiveDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: \"implicitContent\", first: true, predicate: TemplateRef, descendants: true, static: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.RdtContainerDirective }], ngImport: i0, template: \"<ng-template>\\n <ng-content></ng-content>\\n</ng-template>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rdt-tab', changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabComponent,\n },\n ], hostDirectives: [RdtContainerDirective], standalone: false, template: \"<ng-template>\\n <ng-content></ng-content>\\n</ng-template>\\n\" }]\n }], propDecorators: { stateId: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], visible: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], label: [{\n type: Input,\n args: [{ required: true }]\n }], formAutofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], buttonClass: [{\n type: Input\n }], implicitContent: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }], explicitContent: [{\n type: ContentChild,\n args: [RdtDestroyInactiveDirective, {\n read: TemplateRef,\n static: true,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvdGFicy9zcmMvbGliL2NvbXBvbmVudHMvdGFiL3JkdC10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9jb21wb25lbnRzL3RhYi9yZHQtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsR0FFdEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7OztBQWV4RixNQUFNLE9BQU8sZUFBZTtJQUNULFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqQyxRQUFRLENBQXlCO0lBQ3pDLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFN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Z0IsNENBNUN6QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSxlQUFlO2FBQzdCO1NBQ0YsdUVBZ0RhLDJCQUEyQiwyQkFDakMsV0FBVyw0RkFKUixXQUFXLDhJQy9FeEIsOERBR0E7OzJGRG1DYSxlQUFlO2tCQWIzQixTQUFTOytCQUNFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0Ysa0JBQ2UsQ0FBQyxxQkFBcUIsQ0FBQyxjQUMzQixLQUFLOzhCQVliLE9BQU87c0JBRFYsS0FBSztnQkFrQk4sUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxPQUFPO3NCQUROLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLEtBQUs7c0JBREosS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSXpCLGFBQWE7c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEMsV0FBVztzQkFEVixLQUFLO2dCQUlXLGVBQWU7c0JBRC9CLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPdkIsZUFBZTtzQkFKL0IsWUFBWTt1QkFBQywyQkFBMkIsRUFBRTt3QkFDekMsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICBSZHRDb250YWluZXJEaXJlY3RpdmUsXG4gIFJkdElzQWN0aXZlLFxufSBmcm9tICdAbmdyZHQvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBSZHREZXN0cm95SW5hY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JkdC1kZXN0cm95LWluYWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHRUYWJDb250YWluZXJTdGF0ZSwgUmR0VGFiU3RhdGUgfSBmcm9tICcuLi8uLi9yZHQtdGFicy1tb2RlbHMnO1xuaW1wb3J0IHsgUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiLWNvbnRhaW5lci9yZHQtdGFiLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyZHQtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JkdC10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICAgICAgdXNlRXhpc3Rpbmc6IFJkdFRhYkNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW1JkdENvbnRhaW5lckRpcmVjdGl2ZV0sXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgUmR0SXNBY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwcml2YXRlIF9jb250RGlyITogUmR0Q29udGFpbmVyRGlyZWN0aXZlO1xuICBnZXQgY29udERpcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udERpcjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBzdGF0ZUlkKCkge1xuICAgIGlmICh0aGlzLl9zdGF0ZUlkID09PSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5sYWJlbCAhPT0gJycpIHtcbiAgICAgICAgdGhpcy5fc3RhdGVJZCA9IHRoaXMubGFiZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudGFiQ29udGFpbmVyPy50YWJzTGlzdD8udG9BcnJheSgpLmluZGV4T2YodGhpcyk7XG4gICAgICAgIHRoaXMuX3N0YXRlSWQgPSBgdGFiLSR7aW5kZXh9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSWQ7XG4gIH1cbiAgc2V0IHN0YXRlSWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3N0YXRlSWQgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9zdGF0ZUlkOiBzdHJpbmcgPSBudWxsIGFzIHVua25vd24gYXMgc3RyaW5nO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICB2aXNpYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBsYWJlbCE6IHN0cmluZztcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZm9ybUF1dG9mb2N1cyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgYnV0dG9uQ2xhc3M6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgaW1wbGljaXRDb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSByZWFkb25seSBleHBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCB0ZW1wbGF0ZVJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdENvbnRlbnQgPz8gdGhpcy5pbXBsaWNpdENvbnRlbnQ7XG4gIH1cblxuICByZWFkb25seSB0YWJDb250YWluZXIgPSBpbmplY3QoUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KTtcblxuICAvL2dldCBmb3JtcygpIHtcbiAgLy8gIHJldHVybiB0aGlzLmdldENoaWxkcmVuQnlDbGFzcyhSZHRCYXNlRm9ybUNvbXBvbmVudCk7XG4gIC8vfVxuXG4gIGdldCBjaGlsZENvbnRhaW5lcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udERpci5nZXRDaGlsZHJlbkJ5Q2xhc3MoUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIHJkdElzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnZpc2libGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy50YWJDb250YWluZXIuYWN0aXZlVGFiID09PSB0aGlzXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2NvbnREaXIgPSB0aGlzLmluamVjdG9yLmdldChSZHRDb250YWluZXJEaXJlY3RpdmUpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChcbiAgICAgICdsYWJlbCcgaW4gY2hhbmdlcyB8fFxuICAgICAgJ3ZhbHVlJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAndmlzaWJsZScgaW4gY2hhbmdlcyB8fFxuICAgICAgJ3N0YXRlSWQnIGluIGNoYW5nZXNcbiAgICApIHtcbiAgICAgIHRoaXMudGFiQ29udGFpbmVyLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc1RvcExldmVsKCkge1xuICAgIHJldHVybiB0aGlzLnRhYkNvbnRhaW5lci5pc1RvcExldmVsO1xuICB9XG5cbiAgZ2V0U3RhdGUoKTogUmR0VGFiU3RhdGUge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5zdGF0ZUlkLFxuICAgICAgY29udGFpbmVyU3RhdGVzOiB0aGlzLmNoaWxkQ29udGFpbmVycy5tYXAoKGNvbnQpID0+IGNvbnQuZ2V0U3RhdGUoKSksXG4gICAgfTtcbiAgfVxuXG4gIGFwcGx5U3RhdGUoc3RhdGU6IFJkdFRhYlN0YXRlKSB7XG4gICAgY29uc3Qgc3RhdGVzOiAoUmR0VGFiQ29udGFpbmVyU3RhdGUgfCBudWxsKVtdID0gWy4uLnN0YXRlLmNvbnRhaW5lclN0YXRlc107XG4gICAgY29uc3QgY29udHM6IChSZHRUYWJDb250YWluZXJDb21wb25lbnQgfCBudWxsKVtdID0gdGhpcy5jaGlsZENvbnRhaW5lcnM7XG4gICAgY29uc3QgbWluTGVuID0gTWF0aC5taW4oc3RhdGVzLmxlbmd0aCwgY29udHMubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWluTGVuOyBpKyspIHtcbiAgICAgIGlmIChjb250c1tpXSEuc3RhdGVJZCA9PT0gc3RhdGVzW2ldIS5pZCkge1xuICAgICAgICBjb250c1tpXSEuYXBwbHlTdGF0ZShzdGF0ZXNbaV0hKTtcbiAgICAgICAgY29udHNbaV0gPSBzdGF0ZXNbaV0gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBjb250cy5mb3JFYWNoKChjb250LCBjb250SSkgPT4ge1xuICAgICAgaWYgKCFjb250KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IHN0YXRlcy5sZW5ndGg7IG9mZnNldCsrKSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBjb250SSAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgbmV4dCA9IGNvbnRJICsgb2Zmc2V0O1xuICAgICAgICBpZiAocHJldiA+IDAgJiYgc3RhdGVzW3ByZXZdPy5pZCA9PT0gY29udC5zdGF0ZUlkKSB7XG4gICAgICAgICAgY29udC5hcHBseVN0YXRlKHN0YXRlc1twcmV2XSEpO1xuICAgICAgICAgIHN0YXRlc1twcmV2XSA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKG5leHQgPCBzdGF0ZXMubGVuZ3RoICYmIHN0YXRlc1tuZXh0XT8uaWQgPT09IGNvbnQuc3RhdGVJZCkge1xuICAgICAgICAgIGNvbnQuYXBwbHlTdGF0ZShzdGF0ZXNbbmV4dF0hKTtcbiAgICAgICAgICBzdGF0ZXNbbmV4dF0gPSBudWxsO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZm9jdXNGb3JtKCkge1xuICAgIC8vVE9ETzogZ2V0UmR0QXV0b2ZvY3VzYWJsZSh0aGlzLmZvcm1zKT8uZm9jdXMoKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19","export class RdtTabsShortcutStrategy {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMtc2hvcnRjdXQtc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvdGFicy9zcmMvbGliL3N0cmF0ZWdpZXMvcmR0LXRhYnMtc2hvcnRjdXQtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQix1QkFBdUI7Q0FnQjVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2hvcnRjdXQgfSBmcm9tICdAbmdyZHQvc2hvcnRjdXRzJztcbmltcG9ydCB7IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JkdC10YWItY29udHJvbGxlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kge1xuICAvKipcbiAgICogR2V0cyBjYWxsZWQgb25Jbml0IGFuZCB3aGVuZXZlciB0YWJzIGFyZSBhZGRlZC9yZW1vdmVkIGZyb20gQ29udHJvbGxlci5cbiAgICogQHBhcmFtIGN0cmwgQ29udHJvbGxlciB1c2luZyB0aGlzIHN0cmF0ZWd5LlxuICAgKiBAcmV0dXJucyBMaXN0IG9mIHNob3J0Y3V0cyB0byByZWdpc3Rlci5cbiAgICovXG4gIGFic3RyYWN0IHVwZGF0ZVNob3J0Y3V0cyhjdHJsOiBSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlKTogUmR0U2hvcnRjdXRbXTtcbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIHdoZW5ldmVyIGhvdGtleXMgZGV0ZWN0cyBvbmUgb2YgdGhlIHJlZ2lzdGVyZWQgc2hvcnRjdXRzLlxuICAgKiBAcGFyYW0gc2hvcnRjdXQgUmVnaXN0ZXJlZCBzaG9ydGN1dC5cbiAgICogQHBhcmFtIGN0cmwgQ29udHJvbGxlciB1c2luZyB0aGlzIHN0cmF0ZWd5LlxuICAgKi9cbiAgYWJzdHJhY3Qgb25TaG9ydGN1dChcbiAgICBzaG9ydGN1dDogUmR0U2hvcnRjdXQsXG4gICAgY3RybDogUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZVxuICApOiB2b2lkO1xufVxuIl19","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabsShortcutStrategy } from './rdt-tabs-shortcut-strategy';\nconst TAB_BASE = 'alt';\nconst TAB_KEY_SETS = [\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\n ['+', 'ě', 'š', 'č', 'ř', 'ž', 'ý', 'á', 'í', 'é'],\n];\nconst NEXT_CONTAINER = RdtShortcut.create('alt', 's');\nconst PREV_CONTAINER = RdtShortcut.create('alt', 'w');\nconst LEVEL_UP = RdtShortcut.create('ctrl', 'alt', 'up');\nconst LEVEL_DOWN = RdtShortcut.create('ctrl', 'alt', 'down');\nconst NEXT_TAB = RdtShortcut.create('ctrl', 'alt', 'right');\nconst PREV_TAB = RdtShortcut.create('ctrl', 'alt', 'left');\nexport class AutoRdtTabsShortcutStrategy extends RdtTabsShortcutStrategy {\n updateShortcuts() {\n return AutoRdtTabsShortcutStrategy.shortcuts;\n }\n onShortcut(shortcut, ctrl) {\n const key = shortcut.lastKey;\n if (!key) {\n throw new Error('Key should not be undefined!');\n }\n const action = AutoRdtTabsShortcutStrategy.actions[key];\n if (!action) {\n throw new Error(`Unknown action for key ${key}`);\n }\n action(ctrl);\n }\n static generateActions() {\n const actions = {\n [LEVEL_UP.lastKey]: (ctrl) => ctrl.goLevelUp(),\n [LEVEL_DOWN.lastKey]: (ctrl) => ctrl.goLevelDown(),\n [NEXT_CONTAINER.lastKey]: (ctrl) => ctrl.goToNextContainer(),\n [PREV_CONTAINER.lastKey]: (ctrl) => ctrl.goToPrevContainer(),\n [NEXT_TAB.lastKey]: (ctrl) => ctrl.goToNextTab(),\n [PREV_TAB.lastKey]: (ctrl) => ctrl.goToPrevTab(),\n };\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((char, i) => {\n actions[char] = (ctrl) => ctrl.goToTabWithIndex(i);\n });\n });\n return actions;\n }\n static generateShortcuts() {\n const shortcuts = [\n LEVEL_UP,\n LEVEL_DOWN,\n NEXT_CONTAINER,\n PREV_CONTAINER,\n NEXT_TAB,\n PREV_TAB,\n ];\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((tabKey) => {\n shortcuts.push(RdtShortcut.create(TAB_BASE, tabKey));\n });\n });\n return shortcuts;\n }\n static shortcuts = AutoRdtTabsShortcutStrategy.generateShortcuts();\n static actions = AutoRdtTabsShortcutStrategy.generateActions();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZHQtdGFicy1zaG9ydGN1dC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC90YWJzL3NyYy9saWIvc3RyYXRlZ2llcy9hdXRvLXJkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDdkIsTUFBTSxZQUFZLEdBQUc7SUFDbkIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDbEQsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7Q0FDbkQsQ0FBQztBQUNGLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDN0QsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUs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QUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdFNob3J0Y3V0IH0gZnJvbSAnQG5ncmR0L3Nob3J0Y3V0cyc7XG5pbXBvcnQgeyBSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZHQtdGFiLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5IH0gZnJvbSAnLi9yZHQtdGFicy1zaG9ydGN1dC1zdHJhdGVneSc7XG5cbmNvbnN0IFRBQl9CQVNFID0gJ2FsdCc7XG5jb25zdCBUQUJfS0VZX1NFVFMgPSBbXG4gIFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLCAnMCddLFxuICBbJysnLCAnxJsnLCAnxaEnLCAnxI0nLCAnxZknLCAnxb4nLCAnw70nLCAnw6EnLCAnw60nLCAnw6knXSxcbl07XG5jb25zdCBORVhUX0NPTlRBSU5FUiA9IFJkdFNob3J0Y3V0LmNyZWF0ZSgnYWx0JywgJ3MnKTtcbmNvbnN0IFBSRVZfQ09OVEFJTkVSID0gUmR0U2hvcnRjdXQuY3JlYXRlKCdhbHQnLCAndycpO1xuY29uc3QgTEVWRUxfVVAgPSBSZHRTaG9ydGN1dC5jcmVhdGUoJ2N0cmwnLCAnYWx0JywgJ3VwJyk7XG5jb25zdCBMRVZFTF9ET1dOID0gUmR0U2hvcnRjdXQuY3JlYXRlKCdjdHJsJywgJ2FsdCcsICdkb3duJyk7XG5jb25zdCBORVhUX1RBQiA9IFJkdFNob3J0Y3V0LmNyZWF0ZSgnY3RybCcsICdhbHQnLCAncmlnaHQnKTtcbmNvbnN0IFBSRVZfVEFCID0gUmR0U2hvcnRjdXQuY3JlYXRlKCdjdHJsJywgJ2FsdCcsICdsZWZ0Jyk7XG5cbmludGVyZmFjZSBSZHRTaG9ydGN1dEFjdGlvbnMge1xuICBba2V5OiBzdHJpbmddOiAoY3RybDogUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9SZHRUYWJzU2hvcnRjdXRTdHJhdGVneSBleHRlbmRzIFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5IHtcbiAgb3ZlcnJpZGUgdXBkYXRlU2hvcnRjdXRzKCk6IFJkdFNob3J0Y3V0W10ge1xuICAgIHJldHVybiBBdXRvUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kuc2hvcnRjdXRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25TaG9ydGN1dChcbiAgICBzaG9ydGN1dDogUmR0U2hvcnRjdXQsXG4gICAgY3RybDogUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSBzaG9ydGN1dC5sYXN0S2V5O1xuICAgIGlmICgha2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0tleSBzaG91bGQgbm90IGJlIHVuZGVmaW5lZCEnKTtcbiAgICB9XG4gICAgY29uc3QgYWN0aW9uID0gQXV0b1JkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5LmFjdGlvbnNba2V5XTtcbiAgICBpZiAoIWFjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFjdGlvbiBmb3Iga2V5ICR7a2V5fWApO1xuICAgIH1cbiAgICBhY3Rpb24oY3RybCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZW5lcmF0ZUFjdGlvbnMoKSB7XG4gICAgY29uc3QgYWN0aW9uczogUmR0U2hvcnRjdXRBY3Rpb25zID0ge1xuICAgICAgW0xFVkVMX1VQLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb0xldmVsVXAoKSxcbiAgICAgIFtMRVZFTF9ET1dOLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb0xldmVsRG93bigpLFxuICAgICAgW05FWFRfQ09OVEFJTkVSLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvTmV4dENvbnRhaW5lcigpLFxuICAgICAgW1BSRVZfQ09OVEFJTkVSLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvUHJldkNvbnRhaW5lcigpLFxuICAgICAgW05FWFRfVEFCLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvTmV4dFRhYigpLFxuICAgICAgW1BSRVZfVEFCLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvUHJldlRhYigpLFxuICAgIH07XG5cbiAgICBUQUJfS0VZX1NFVFMuZm9yRWFjaCgoc2V0KSA9PiB7XG4gICAgICBzZXQuZm9yRWFjaCgoY2hhciwgaSkgPT4ge1xuICAgICAgICBhY3Rpb25zW2NoYXJdID0gKGN0cmwpID0+IGN0cmwuZ29Ub1RhYldpdGhJbmRleChpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBhY3Rpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2VuZXJhdGVTaG9ydGN1dHMoKSB7XG4gICAgY29uc3Qgc2hvcnRjdXRzOiBSZHRTaG9ydGN1dFtdID0gW1xuICAgICAgTEVWRUxfVVAsXG4gICAgICBMRVZFTF9ET1dOLFxuICAgICAgTkVYVF9DT05UQUlORVIsXG4gICAgICBQUkVWX0NPTlRBSU5FUixcbiAgICAgIE5FWFRfVEFCLFxuICAgICAgUFJFVl9UQUIsXG4gICAgXTtcblxuICAgIFRBQl9LRVlfU0VUUy5mb3JFYWNoKChzZXQpID0+IHtcbiAgICAgIHNldC5mb3JFYWNoKCh0YWJLZXkpID0+IHtcbiAgICAgICAgc2hvcnRjdXRzLnB1c2goUmR0U2hvcnRjdXQuY3JlYXRlKFRBQl9CQVNFLCB0YWJLZXkpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNob3J0Y3V0cztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNob3J0Y3V0czogUmR0U2hvcnRjdXRbXSA9XG4gICAgQXV0b1JkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5LmdlbmVyYXRlU2hvcnRjdXRzKCk7XG4gIHByaXZhdGUgc3RhdGljIGFjdGlvbnMgPSBBdXRvUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kuZ2VuZXJhdGVBY3Rpb25zKCk7XG59XG4iXX0=","import { ContentChildren, DestroyRef, Directive, inject, Injector, Input, QueryList, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { canTransition$, RDT_GUARDED_COMPONENT, RdtContainerDirective, } from '@ngrdt/core';\nimport { RdtShortcutService } from '@ngrdt/shortcuts';\nimport { firstValueFrom, Subscription, takeWhile } from 'rxjs';\nimport { RdtTabContainerComponent } from '../components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from '../components/tab/rdt-tab.component';\nimport { AutoRdtTabsShortcutStrategy } from '../strategies/auto-rdt-tabs-shortcut-strategy';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrdt/core\";\nexport class RdtTabControllerDirective {\n destroyRef = inject(DestroyRef);\n injector = inject(Injector);\n shortcutService = inject(RdtShortcutService);\n shortcutSub = new Subscription();\n // String value lets you use the directive without param.\n set rdtTabController(value) {\n if (value && typeof value !== 'string') {\n this._strategy = value;\n this.updateShortcuts();\n }\n }\n get tabContainers() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter((ch) => ch instanceof RdtTabContainerComponent);\n }\n get tabs() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter((ch) => ch instanceof RdtTabComponent);\n }\n childControllers;\n get strategy() {\n return this._strategy;\n }\n _strategy = new AutoRdtTabsShortcutStrategy();\n _lastActiveTabContainer = null;\n _contentWasInit = false;\n get disabled() {\n return this._disabled;\n }\n _disabled = false;\n get shortcuts() {\n return this._shortcuts;\n }\n set shortcuts(value) {\n const oldSet = new Set(this._shortcuts.map((s) => s.hotkeysValue));\n this._shortcuts = value;\n if (oldSet.size !== value.length ||\n value.some((s) => !oldSet.has(s.hotkeysValue))) {\n this.bindAll();\n }\n }\n _shortcuts = [];\n get activeContainer() {\n return this._lastActiveTabContainer?.container;\n }\n containerDirective;\n ngOnInit() {\n this.containerDirective = this.injector.get(RdtContainerDirective, undefined, {\n self: true,\n });\n this.updateShortcuts();\n }\n ngAfterContentInit() {\n this.setDefaultActive();\n this.disableSelfWhenChildCtrlExists();\n this._contentWasInit = true;\n if (this.tabs.length > 0) {\n this.onTabChanges();\n }\n if (this.tabContainers.length > 0) {\n this.onTabContainerChanges();\n }\n }\n ngOnDestroy() {\n this.unbindAll();\n this._shortcuts.length = 0;\n }\n getTabContainerIndex(cont) {\n const level = this.getSameLevelContainers(cont);\n return level.indexOf(cont);\n }\n /**\n * Activates first parent container of current container\n * that is not disabled and has any non disabled tabs.\n */\n goLevelUp() {\n let cont = this.activeContainer;\n while (cont) {\n cont = cont.parentTab?.tabContainer;\n if (cont && !cont.disabled && cont.hasNonDisabledTabs) {\n this.activateTabContainer(cont);\n return true;\n }\n }\n return false;\n }\n /**\n * Activates first container under current tab which\n * is not disabled and has any non disabled tabs.\n */\n goLevelDown() {\n const cont = this.activeContainer;\n if (!cont || cont.disabled) {\n return false;\n }\n let tab = cont.tabsList.find((t) => t.stateId === cont.value);\n if (!tab || tab.disabled) {\n tab = cont.tabsList.find((t) => !t.disabled);\n }\n if (!tab) {\n return false;\n }\n const targetCont = tab.childContainers.find((c) => !c.disabled && c.hasNonDisabledTabs);\n if (targetCont) {\n this.activateTabContainer(targetCont);\n return true;\n }\n return false;\n }\n /**\n * Activates next container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToNextContainer() {\n return this.goToAdjacentContainer(1);\n }\n /**\n * Activates previous container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToPrevContainer() {\n return this.goToAdjacentContainer(-1);\n }\n /**\n * Activates tab within active container at the index of argument.\n */\n goToTabWithIndex(index) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const tab = cont.tabsList.get(index);\n if (!tab) {\n return false;\n }\n this.activateTab(tab);\n return true;\n }\n /**\n * Activates next tab within active container. Is cyclic.\n */\n goToNextTab() {\n return this.goToAdjacentTab(1);\n }\n /**\n * Activates previous tab within active container. Is cyclic.\n */\n goToPrevTab() {\n return this.goToAdjacentTab(-1);\n }\n goToAdjacentContainer(dir) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const level = this.getSameLevelContainers(cont);\n if (!level) {\n return false;\n }\n const currentIndex = level.indexOf(cont);\n if (currentIndex < 0) {\n throw new Error('Current container is not within its own level?');\n }\n for (let i = (currentIndex + dir + level.length) % level.length; i !== currentIndex; i = (i + dir + level.length) % level.length) {\n const next = level[i];\n if (!next.disabled && next.hasNonDisabledTabs) {\n this.activateTabContainer(next);\n return true;\n }\n }\n return false;\n }\n goToAdjacentTab(dir) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const tabs = cont.tabsList.toArray();\n const currentIndex = tabs.findIndex((tab) => tab.stateId === cont.value);\n if (currentIndex < 0) {\n throw new Error('Current tab is not found in its container?!');\n }\n for (let i = (currentIndex + dir + tabs.length) % tabs.length; i !== currentIndex; i = (i + dir + tabs.length) % tabs.length) {\n const next = tabs[i];\n if (!next.disabled) {\n this.activateTab(next);\n return true;\n }\n }\n return false;\n }\n getSameLevelContainers(cont) {\n if (cont.parentTab) {\n return cont.parentTab.childContainers;\n }\n else {\n return this.tabContainers.filter((cont) => cont.isTopLevel);\n }\n }\n getTabByValue(value) {\n for (const container of this.tabContainers) {\n const tab = container.tabsList.find((ch) => ch.stateId === value);\n if (tab) {\n return tab;\n }\n }\n return null;\n }\n activateTabContainer(tabs, scrollIntoView = true) {\n if (this._lastActiveTabContainer) {\n this._lastActiveTabContainer.container.active = false;\n }\n tabs.active = true;\n if (scrollIntoView) {\n tabs.scrollIntoView();\n }\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp: null,\n };\n }\n activateTabContainerFromClick(tabs, timestamp) {\n if (this._lastActiveTabContainer) {\n if (this._lastActiveTabContainer.timestamp !== null &&\n this._lastActiveTabContainer.timestamp >= timestamp) {\n return;\n }\n this._lastActiveTabContainer.container.active = false;\n }\n tabs.active = true;\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp,\n };\n }\n async activateTab(tab) {\n if (!this.canActivateTab(tab)) {\n console.warn('Trying to activate disabled tab.');\n return;\n }\n const formsCheck = await this.canActivateTabForms(tab);\n if (!formsCheck) {\n console.warn('Trying to activate tab while current tab has unsaved forms');\n return;\n }\n let current = tab;\n do {\n const container = current.tabContainer;\n container.value = current.stateId;\n current = container.parentTab;\n } while (current !== null);\n }\n canActivateTab(tab) {\n let current = tab;\n do {\n const container = current.tabContainer;\n if (current.disabled || container.disabled) {\n return false;\n }\n current = container.parentTab;\n } while (current !== null);\n return true;\n }\n async canActivateTabForms(tab) {\n const container = tab.tabContainer;\n return firstValueFrom(canTransition$(container.activeTab?.contDir, tab?.contDir));\n }\n onTabChanges() {\n this.updateShortcuts();\n }\n onTabContainerChanges() {\n this.setDefaultActiveWhenAvailable();\n }\n disableSelfWhenChildCtrlExists() {\n this.childControllers.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val) => {\n this._disabled = val.length > 0;\n if (this._disabled) {\n this.unbindAll();\n }\n else {\n this.bindAll();\n }\n });\n }\n setDefaultActive() {\n if (this.tabContainers) {\n const defaultCont = this.tabContainers.find(this.canContainerBeDefault);\n if (defaultCont) {\n this.activateTabContainer(defaultCont, false);\n }\n }\n }\n setDefaultActiveWhenAvailable() {\n const active = this.activeContainer;\n if (active && this.tabContainers.some((cont) => cont === active)) {\n return;\n }\n const newDefault = this.tabContainers.find(this.canContainerBeDefault);\n if (newDefault) {\n this.activateTabContainer(newDefault, false);\n }\n }\n canContainerBeDefault(c) {\n return c.isTopLevel && !c.disabled && c.hasNonDisabledTabs;\n }\n updateShortcuts() {\n this.shortcuts = this._strategy.updateShortcuts(this);\n }\n bindAll() {\n this.shortcutSub.unsubscribe();\n if (!this._disabled) {\n this.shortcutSub = this.shortcutService\n .listen(this._shortcuts)\n .pipe(takeWhile(() => !this._disabled))\n .subscribe((event) => {\n this._strategy.onShortcut(event.shortcut, this);\n });\n }\n }\n unbindAll() {\n this.shortcutSub.unsubscribe();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtTabControllerDirective, isStandalone: false, selector: \"[rdtTabController]\", inputs: { rdtTabController: \"rdtTabController\" }, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabControllerDirective,\n },\n ], queries: [{ propertyName: \"childControllers\", predicate: RdtTabControllerDirective, descendants: true }], hostDirectives: [{ directive: i1.RdtContainerDirective }], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabControllerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtTabController]',\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabControllerDirective,\n },\n ],\n hostDirectives: [RdtContainerDirective],\n standalone: false,\n }]\n }], propDecorators: { rdtTabController: [{\n type: Input\n }], childControllers: [{\n type: ContentChildren,\n args: [RdtTabControllerDirective, { descendants: true }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYi1jb250cm9sbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC90YWJzL3NyYy9saWIvZGlyZWN0aXZlcy9yZHQtdGFiLWNvbnRyb2xsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBZSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0NBQStDLENBQUM7OztBQWM1RixNQUFNLE9BQU8seUJBQXlCO0lBR25CLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixlQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFekMseURBQXlEO0lBQ3pELElBQ0ksZ0JBQWdCLENBQUMsS0FBOEM7UUFDakUsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBYyxhQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQjthQUMzQixvQkFBb0IsRUFBRTthQUN0QixNQUFNLENBQ0wsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsWUFBWSx3QkFBd0IsQ0FDTixDQUFDO0lBQy9DLENBQUM7SUFDRCxJQUFjLElBQUk7UUFDaEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCO2FBQzNCLG9CQUFvQixFQUFFO2FBQ3RCLE1BQU0sQ0FDTCxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxZQUFZLGVBQWUsQ0FDTixDQUFDO0lBQ3RDLENBQUM7SUFHUyxnQkFBZ0IsQ0FBd0M7SUFFbEUsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDTyxTQUFTLEdBQ2YsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO0lBRTVCLHVCQUF1QixHQUdwQixJQUFJLENBQUM7SUFFUixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWhDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ08sU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUxQixJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQW9CO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixJQUNFLE1BQU0sQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLE1BQU07WUFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUM5QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBQ08sVUFBVSxHQUFrQixFQUFFLENBQUM7SUFFdkMsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0lBRVMsa0JBQWtCLENBQXlCO0lBRXJELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3pDLHFCQUFxQixFQUNyQixTQUFTLEVBQ1Q7WUFDRSxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQThCO1FBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVM7UUFDUCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7WUFDcEMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3pDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUMzQyxDQUFDO1FBQ0YsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEdBQVc7UUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELEtBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUMxRCxDQUFDLEtBQUssWUFBWSxFQUNsQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUMzQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxlQUFlLENBQUMsR0FBVztRQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxLQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFDeEQsQ0FBQyxLQUFLLFlBQVksRUFDbEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFDekMsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBOEI7UUFDM0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQThCLEVBQUUsY0FBYyxHQUFHLElBQUk7UUFDeEUsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEQsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDN0IsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QixDQUMzQixJQUE4QixFQUM5QixTQUFpQjtRQUVqQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLElBQ0UsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsS0FBSyxJQUFJO2dCQUMvQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFDbkQsQ0FBQztnQkFDRCxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzdCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUztTQUNWLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFvQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUNqRCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsSUFBSSxDQUNWLDREQUE0RCxDQUM3RCxDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBMkIsR0FBRyxDQUFDO1FBRTFDLEdBQUcsQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUE2QixPQUFRLENBQUMsWUFBWSxDQUFDO1lBQ2xFLFNBQVMsQ0FBQyxLQUFLLEdBQUcsT0FBUSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxPQUFPLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUNoQyxDQUFDLFFBQVEsT0FBTyxLQUFLLElBQUksRUFBRTtJQUM3QixDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQW9CO1FBQ2pDLElBQUksT0FBTyxHQUEyQixHQUFHLENBQUM7UUFFMUMsR0FBRyxDQUFDO1lBQ0YsTUFBTSxTQUFTLEdBQTZCLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDakUsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDaEMsQ0FBQyxRQUFRLE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFFM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQW9CO1FBQzVDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDbkMsT0FBTyxjQUFjLENBQ25CLGNBQWMsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTyw4QkFBOEI7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU87YUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsQ0FBQyxHQUF5QyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUVoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLDZCQUE2QjtRQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ3BDLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqRSxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCLENBQUMsQ0FBMkI7UUFDdkQsT0FBTyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUM7SUFDN0QsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlO2lCQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDdEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7dUdBbGFVLHlCQUF5QjsyRkFBekIseUJBQXlCLG9IQVR6QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSx5QkFBeUI7YUFDdkM7U0FDRiwyREFvQ2dCLHlCQUF5Qjs7MkZBaEMvQix5QkFBeUI7a0JBWHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsMkJBQTJCO3lCQUN2QztxQkFDRjtvQkFDRCxjQUFjLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDdkMsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzhCQVdLLGdCQUFnQjtzQkFEbkIsS0FBSztnQkF3QkksZ0JBQWdCO3NCQUR6QixlQUFlO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBjYW5UcmFuc2l0aW9uJCxcbiAgUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICBSZHRDb250YWluZXJEaXJlY3RpdmUsXG59IGZyb20gJ0BuZ3JkdC9jb3JlJztcbmltcG9ydCB7IFJkdFNob3J0Y3V0LCBSZHRTaG9ydGN1dFNlcnZpY2UgfSBmcm9tICdAbmdyZHQvc2hvcnRjdXRzJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBTdWJzY3JpcHRpb24sIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWItY29udGFpbmVyL3JkdC10YWItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZHRUYWJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3RhYi9yZHQtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL2F1dG8tcmR0LXRhYnMtc2hvcnRjdXQtc3RyYXRlZ3knO1xuaW1wb3J0IHsgUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL3JkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JkdFRhYkNvbnRyb2xsZXJdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICAgICAgdXNlRXhpc3Rpbmc6IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtSZHRDb250YWluZXJEaXJlY3RpdmVdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvcnRjdXRTZXJ2aWNlID0gaW5qZWN0KFJkdFNob3J0Y3V0U2VydmljZSk7XG4gIHByaXZhdGUgc2hvcnRjdXRTdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLy8gU3RyaW5nIHZhbHVlIGxldHMgeW91IHVzZSB0aGUgZGlyZWN0aXZlIHdpdGhvdXQgcGFyYW0uXG4gIEBJbnB1dCgpXG4gIHNldCByZHRUYWJDb250cm9sbGVyKHZhbHVlOiBSZHRUYWJzU2hvcnRjdXRTdHJhdGVneSB8IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fc3RyYXRlZ3kgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlU2hvcnRjdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0YWJDb250YWluZXJzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lckRpcmVjdGl2ZVxuICAgICAgLmdldENoaWxkcmVuUmVjdXJzaXZlKClcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjaCkgPT4gY2ggaW5zdGFuY2VvZiBSZHRUYWJDb250YWluZXJDb21wb25lbnRcbiAgICAgICkgYXMgdW5rbm93biBhcyBSZHRUYWJDb250YWluZXJDb21wb25lbnRbXTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHRhYnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyRGlyZWN0aXZlXG4gICAgICAuZ2V0Q2hpbGRyZW5SZWN1cnNpdmUoKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGNoKSA9PiBjaCBpbnN0YW5jZW9mIFJkdFRhYkNvbXBvbmVudFxuICAgICAgKSBhcyB1bmtub3duIGFzIFJkdFRhYkNvbXBvbmVudFtdO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBjaGlsZENvbnRyb2xsZXJzITogUXVlcnlMaXN0PFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmU+O1xuXG4gIGdldCBzdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RyYXRlZ3k7XG4gIH1cbiAgcHJpdmF0ZSBfc3RyYXRlZ3k6IFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5ID1cbiAgICBuZXcgQXV0b1JkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5KCk7XG5cbiAgcHJpdmF0ZSBfbGFzdEFjdGl2ZVRhYkNvbnRhaW5lcjoge1xuICAgIHRpbWVzdGFtcDogbnVtYmVyIHwgbnVsbDtcbiAgICBjb250YWluZXI6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudDtcbiAgfSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2NvbnRlbnRXYXNJbml0ID0gZmFsc2U7XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGdldCBzaG9ydGN1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3J0Y3V0cztcbiAgfVxuICBzZXQgc2hvcnRjdXRzKHZhbHVlOiBSZHRTaG9ydGN1dFtdKSB7XG4gICAgY29uc3Qgb2xkU2V0ID0gbmV3IFNldDxzdHJpbmc+KHRoaXMuX3Nob3J0Y3V0cy5tYXAoKHMpID0+IHMuaG90a2V5c1ZhbHVlKSk7XG4gICAgdGhpcy5fc2hvcnRjdXRzID0gdmFsdWU7XG5cbiAgICBpZiAoXG4gICAgICBvbGRTZXQuc2l6ZSAhPT0gdmFsdWUubGVuZ3RoIHx8XG4gICAgICB2YWx1ZS5zb21lKChzKSA9PiAhb2xkU2V0LmhhcyhzLmhvdGtleXNWYWx1ZSkpXG4gICAgKSB7XG4gICAgICB0aGlzLmJpbmRBbGwoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc2hvcnRjdXRzOiBSZHRTaG9ydGN1dFtdID0gW107XG5cbiAgZ2V0IGFjdGl2ZUNvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFzdEFjdGl2ZVRhYkNvbnRhaW5lcj8uY29udGFpbmVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnRhaW5lckRpcmVjdGl2ZSE6IFJkdENvbnRhaW5lckRpcmVjdGl2ZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbnRhaW5lckRpcmVjdGl2ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFxuICAgICAgUmR0Q29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBzZWxmOiB0cnVlLFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy51cGRhdGVTaG9ydGN1dHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNldERlZmF1bHRBY3RpdmUoKTtcbiAgICB0aGlzLmRpc2FibGVTZWxmV2hlbkNoaWxkQ3RybEV4aXN0cygpO1xuICAgIHRoaXMuX2NvbnRlbnRXYXNJbml0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy50YWJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25UYWJDaGFuZ2VzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRhYkNvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vblRhYkNvbnRhaW5lckNoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEFsbCgpO1xuICAgIHRoaXMuX3Nob3J0Y3V0cy5sZW5ndGggPSAwO1xuICB9XG5cbiAgZ2V0VGFiQ29udGFpbmVySW5kZXgoY29udDogUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBsZXZlbCA9IHRoaXMuZ2V0U2FtZUxldmVsQ29udGFpbmVycyhjb250KTtcbiAgICByZXR1cm4gbGV2ZWwuaW5kZXhPZihjb250KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgZmlyc3QgcGFyZW50IGNvbnRhaW5lciBvZiBjdXJyZW50IGNvbnRhaW5lclxuICAgKiB0aGF0IGlzIG5vdCBkaXNhYmxlZCBhbmQgaGFzIGFueSBub24gZGlzYWJsZWQgdGFicy5cbiAgICovXG4gIGdvTGV2ZWxVcCgpOiBib29sZWFuIHtcbiAgICBsZXQgY29udCA9IHRoaXMuYWN0aXZlQ29udGFpbmVyO1xuICAgIHdoaWxlIChjb250KSB7XG4gICAgICBjb250ID0gY29udC5wYXJlbnRUYWI/LnRhYkNvbnRhaW5lcjtcbiAgICAgIGlmIChjb250ICYmICFjb250LmRpc2FibGVkICYmIGNvbnQuaGFzTm9uRGlzYWJsZWRUYWJzKSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUYWJDb250YWluZXIoY29udCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIGZpcnN0IGNvbnRhaW5lciB1bmRlciBjdXJyZW50IHRhYiB3aGljaFxuICAgKiBpcyBub3QgZGlzYWJsZWQgYW5kIGhhcyBhbnkgbm9uIGRpc2FibGVkIHRhYnMuXG4gICAqL1xuICBnb0xldmVsRG93bigpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250ID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKCFjb250IHx8IGNvbnQuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHRhYiA9IGNvbnQudGFic0xpc3QuZmluZCgodCkgPT4gdC5zdGF0ZUlkID09PSBjb250LnZhbHVlKTtcbiAgICBpZiAoIXRhYiB8fCB0YWIuZGlzYWJsZWQpIHtcbiAgICAgIHRhYiA9IGNvbnQudGFic0xpc3QuZmluZCgodCkgPT4gIXQuZGlzYWJsZWQpO1xuICAgIH1cbiAgICBpZiAoIXRhYikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXRDb250ID0gdGFiLmNoaWxkQ29udGFpbmVycy5maW5kKFxuICAgICAgKGMpID0+ICFjLmRpc2FibGVkICYmIGMuaGFzTm9uRGlzYWJsZWRUYWJzXG4gICAgKTtcbiAgICBpZiAodGFyZ2V0Q29udCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZVRhYkNvbnRhaW5lcih0YXJnZXRDb250KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIG5leHQgY29udGFpbmVyIG9uIGN1cnJlbnQgbGV2ZWxcbiAgICogKHVuZGVyIHBhcmVudCBjb250YWluZXIgb2YgY3VycmVudGx5IGFjdGl2ZSBjb250YWluZXIpLlxuICAgKiBJcyBjeWNsaWMuXG4gICAqL1xuICBnb1RvTmV4dENvbnRhaW5lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nb1RvQWRqYWNlbnRDb250YWluZXIoMSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHByZXZpb3VzIGNvbnRhaW5lciBvbiBjdXJyZW50IGxldmVsXG4gICAqICh1bmRlciBwYXJlbnQgY29udGFpbmVyIG9mIGN1cnJlbnRseSBhY3RpdmUgY29udGFpbmVyKS5cbiAgICogSXMgY3ljbGljLlxuICAgKi9cbiAgZ29Ub1ByZXZDb250YWluZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ29Ub0FkamFjZW50Q29udGFpbmVyKC0xKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGFiIHdpdGhpbiBhY3RpdmUgY29udGFpbmVyIGF0IHRoZSBpbmRleCBvZiBhcmd1bWVudC5cbiAgICovXG4gIGdvVG9UYWJXaXRoSW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnQgPSB0aGlzLmFjdGl2ZUNvbnRhaW5lcjtcbiAgICBpZiAoIWNvbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gY29udC50YWJzTGlzdC5nZXQoaW5kZXgpO1xuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZhdGVUYWIodGFiKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgbmV4dCB0YWIgd2l0aGluIGFjdGl2ZSBjb250YWluZXIuIElzIGN5Y2xpYy5cbiAgICovXG4gIGdvVG9OZXh0VGFiKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdvVG9BZGphY2VudFRhYigxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgcHJldmlvdXMgdGFiIHdpdGhpbiBhY3RpdmUgY29udGFpbmVyLiBJcyBjeWNsaWMuXG4gICAqL1xuICBnb1RvUHJldlRhYigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nb1RvQWRqYWNlbnRUYWIoLTEpO1xuICB9XG5cbiAgcHJpdmF0ZSBnb1RvQWRqYWNlbnRDb250YWluZXIoZGlyOiAtMSB8IDEpIHtcbiAgICBjb25zdCBjb250ID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKCFjb250KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGV2ZWwgPSB0aGlzLmdldFNhbWVMZXZlbENvbnRhaW5lcnMoY29udCk7XG4gICAgaWYgKCFsZXZlbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGxldmVsLmluZGV4T2YoY29udCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3VycmVudCBjb250YWluZXIgaXMgbm90IHdpdGhpbiBpdHMgb3duIGxldmVsPycpO1xuICAgIH1cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSAoY3VycmVudEluZGV4ICsgZGlyICsgbGV2ZWwubGVuZ3RoKSAlIGxldmVsLmxlbmd0aDtcbiAgICAgIGkgIT09IGN1cnJlbnRJbmRleDtcbiAgICAgIGkgPSAoaSArIGRpciArIGxldmVsLmxlbmd0aCkgJSBsZXZlbC5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNvbnN0IG5leHQgPSBsZXZlbFtpXTtcbiAgICAgIGlmICghbmV4dC5kaXNhYmxlZCAmJiBuZXh0Lmhhc05vbkRpc2FibGVkVGFicykge1xuICAgICAgICB0aGlzLmFjdGl2YXRlVGFiQ29udGFpbmVyKG5leHQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnb1RvQWRqYWNlbnRUYWIoZGlyOiAtMSB8IDEpIHtcbiAgICBjb25zdCBjb250ID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKCFjb250KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdGFicyA9IGNvbnQudGFic0xpc3QudG9BcnJheSgpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRhYnMuZmluZEluZGV4KCh0YWIpID0+IHRhYi5zdGF0ZUlkID09PSBjb250LnZhbHVlKTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDdXJyZW50IHRhYiBpcyBub3QgZm91bmQgaW4gaXRzIGNvbnRhaW5lcj8hJyk7XG4gICAgfVxuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gKGN1cnJlbnRJbmRleCArIGRpciArIHRhYnMubGVuZ3RoKSAlIHRhYnMubGVuZ3RoO1xuICAgICAgaSAhPT0gY3VycmVudEluZGV4O1xuICAgICAgaSA9IChpICsgZGlyICsgdGFicy5sZW5ndGgpICUgdGFicy5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNvbnN0IG5leHQgPSB0YWJzW2ldO1xuICAgICAgaWYgKCFuZXh0LmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUYWIobmV4dCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldFNhbWVMZXZlbENvbnRhaW5lcnMoY29udDogUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KSB7XG4gICAgaWYgKGNvbnQucGFyZW50VGFiKSB7XG4gICAgICByZXR1cm4gY29udC5wYXJlbnRUYWIuY2hpbGRDb250YWluZXJzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJDb250YWluZXJzLmZpbHRlcigoY29udCkgPT4gY29udC5pc1RvcExldmVsKTtcbiAgICB9XG4gIH1cblxuICBnZXRUYWJCeVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IGNvbnRhaW5lciBvZiB0aGlzLnRhYkNvbnRhaW5lcnMpIHtcbiAgICAgIGNvbnN0IHRhYiA9IGNvbnRhaW5lci50YWJzTGlzdC5maW5kKChjaCkgPT4gY2guc3RhdGVJZCA9PT0gdmFsdWUpO1xuICAgICAgaWYgKHRhYikge1xuICAgICAgICByZXR1cm4gdGFiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFjdGl2YXRlVGFiQ29udGFpbmVyKHRhYnM6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCwgc2Nyb2xsSW50b1ZpZXcgPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVUYWJDb250YWluZXIpIHtcbiAgICAgIHRoaXMuX2xhc3RBY3RpdmVUYWJDb250YWluZXIuY29udGFpbmVyLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRhYnMuYWN0aXZlID0gdHJ1ZTtcbiAgICBpZiAoc2Nyb2xsSW50b1ZpZXcpIHtcbiAgICAgIHRhYnMuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9sYXN0QWN0aXZlVGFiQ29udGFpbmVyID0ge1xuICAgICAgY29udGFpbmVyOiB0YWJzLFxuICAgICAgdGltZXN0YW1wOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBhY3RpdmF0ZVRhYkNvbnRhaW5lckZyb21DbGljayhcbiAgICB0YWJzOiBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXJcbiAgKSB7XG4gICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVUYWJDb250YWluZXIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZVRhYkNvbnRhaW5lci50aW1lc3RhbXAgIT09IG51bGwgJiZcbiAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZVRhYkNvbnRhaW5lci50aW1lc3RhbXAgPj0gdGltZXN0YW1wXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9sYXN0QWN0aXZlVGFiQ29udGFpbmVyLmNvbnRhaW5lci5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0YWJzLmFjdGl2ZSA9IHRydWU7XG5cbiAgICB0aGlzLl9sYXN0QWN0aXZlVGFiQ29udGFpbmVyID0ge1xuICAgICAgY29udGFpbmVyOiB0YWJzLFxuICAgICAgdGltZXN0YW1wLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBhY3RpdmF0ZVRhYih0YWI6IFJkdFRhYkNvbXBvbmVudCkge1xuICAgIGlmICghdGhpcy5jYW5BY3RpdmF0ZVRhYih0YWIpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RyeWluZyB0byBhY3RpdmF0ZSBkaXNhYmxlZCB0YWIuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybXNDaGVjayA9IGF3YWl0IHRoaXMuY2FuQWN0aXZhdGVUYWJGb3Jtcyh0YWIpO1xuICAgIGlmICghZm9ybXNDaGVjaykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVHJ5aW5nIHRvIGFjdGl2YXRlIHRhYiB3aGlsZSBjdXJyZW50IHRhYiBoYXMgdW5zYXZlZCBmb3JtcydcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGN1cnJlbnQ6IFJkdFRhYkNvbXBvbmVudCB8IG51bGwgPSB0YWI7XG5cbiAgICBkbyB7XG4gICAgICBjb25zdCBjb250YWluZXI6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCA9IGN1cnJlbnQhLnRhYkNvbnRhaW5lcjtcbiAgICAgIGNvbnRhaW5lci52YWx1ZSA9IGN1cnJlbnQhLnN0YXRlSWQ7XG4gICAgICBjdXJyZW50ID0gY29udGFpbmVyLnBhcmVudFRhYjtcbiAgICB9IHdoaWxlIChjdXJyZW50ICE9PSBudWxsKTtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlVGFiKHRhYjogUmR0VGFiQ29tcG9uZW50KSB7XG4gICAgbGV0IGN1cnJlbnQ6IFJkdFRhYkNvbXBvbmVudCB8IG51bGwgPSB0YWI7XG5cbiAgICBkbyB7XG4gICAgICBjb25zdCBjb250YWluZXI6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCA9IGN1cnJlbnQudGFiQ29udGFpbmVyO1xuICAgICAgaWYgKGN1cnJlbnQuZGlzYWJsZWQgfHwgY29udGFpbmVyLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBjb250YWluZXIucGFyZW50VGFiO1xuICAgIH0gd2hpbGUgKGN1cnJlbnQgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBjYW5BY3RpdmF0ZVRhYkZvcm1zKHRhYjogUmR0VGFiQ29tcG9uZW50KSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGFiLnRhYkNvbnRhaW5lcjtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICBjYW5UcmFuc2l0aW9uJChjb250YWluZXIuYWN0aXZlVGFiPy5jb250RGlyLCB0YWI/LmNvbnREaXIpXG4gICAgKTtcbiAgfVxuXG4gIG9uVGFiQ2hhbmdlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVNob3J0Y3V0cygpO1xuICB9XG5cbiAgb25UYWJDb250YWluZXJDaGFuZ2VzKCkge1xuICAgIHRoaXMuc2V0RGVmYXVsdEFjdGl2ZVdoZW5BdmFpbGFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZVNlbGZXaGVuQ2hpbGRDdHJsRXhpc3RzKCkge1xuICAgIHRoaXMuY2hpbGRDb250cm9sbGVycy5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbDogUXVlcnlMaXN0PFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmU+KSA9PiB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy51bmJpbmRBbGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmJpbmRBbGwoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRBY3RpdmUoKSB7XG4gICAgaWYgKHRoaXMudGFiQ29udGFpbmVycykge1xuICAgICAgY29uc3QgZGVmYXVsdENvbnQgPSB0aGlzLnRhYkNvbnRhaW5lcnMuZmluZCh0aGlzLmNhbkNvbnRhaW5lckJlRGVmYXVsdCk7XG4gICAgICBpZiAoZGVmYXVsdENvbnQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVRhYkNvbnRhaW5lcihkZWZhdWx0Q29udCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdEFjdGl2ZVdoZW5BdmFpbGFibGUoKSB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKGFjdGl2ZSAmJiB0aGlzLnRhYkNvbnRhaW5lcnMuc29tZSgoY29udCkgPT4gY29udCA9PT0gYWN0aXZlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdEZWZhdWx0ID0gdGhpcy50YWJDb250YWluZXJzLmZpbmQodGhpcy5jYW5Db250YWluZXJCZURlZmF1bHQpO1xuICAgIGlmIChuZXdEZWZhdWx0KSB7XG4gICAgICB0aGlzLmFjdGl2YXRlVGFiQ29udGFpbmVyKG5ld0RlZmF1bHQsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbkNvbnRhaW5lckJlRGVmYXVsdChjOiBSZHRUYWJDb250YWluZXJDb21wb25lbnQpIHtcbiAgICByZXR1cm4gYy5pc1RvcExldmVsICYmICFjLmRpc2FibGVkICYmIGMuaGFzTm9uRGlzYWJsZWRUYWJzO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTaG9ydGN1dHMoKSB7XG4gICAgdGhpcy5zaG9ydGN1dHMgPSB0aGlzLl9zdHJhdGVneS51cGRhdGVTaG9ydGN1dHModGhpcyk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRBbGwoKSB7XG4gICAgdGhpcy5zaG9ydGN1dFN1Yi51bnN1YnNjcmliZSgpO1xuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2hvcnRjdXRTdWIgPSB0aGlzLnNob3J0Y3V0U2VydmljZVxuICAgICAgICAubGlzdGVuKHRoaXMuX3Nob3J0Y3V0cylcbiAgICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+ICF0aGlzLl9kaXNhYmxlZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RyYXRlZ3kub25TaG9ydGN1dChldmVudC5zaG9ydGN1dCwgdGhpcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kQWxsKCkge1xuICAgIHRoaXMuc2hvcnRjdXRTdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, EventEmitter, HostBinding, HostListener, inject, Input, Output, QueryList, Renderer2, ViewChild, ViewChildren, ViewEncapsulation, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { canTransition$, RDT_GUARDED_COMPONENT, RdtChildDirective, } from '@ngrdt/core';\nimport { RdtHTMLUtils } from '@ngrdt/utils';\nimport { firstValueFrom, timer } from 'rxjs';\nimport { RdtTabControllerDirective } from '../../directives/rdt-tab-controller.directive';\nimport { RdtTabComponent } from '../tab/rdt-tab.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrdt/core\";\nimport * as i2 from \"@angular/common\";\nexport class RdtTabContainerComponent {\n destroyRef = inject(DestroyRef);\n stateId = null;\n set value(val) {\n if (this.activeTab && this.activeTab.stateId !== val) {\n // TODO\n //this.activeTab.onViewWillLeave();\n }\n this._value = val;\n this.setCurrent();\n }\n get value() {\n return this._value;\n }\n _value;\n disabled = false;\n formAutofocus = true;\n panelPosition = 'top';\n valueChange = new EventEmitter();\n tabsList;\n tabHeaderButtons;\n tabContent;\n _active = false;\n get active() {\n return this._active;\n }\n set active(value) {\n this._active = value;\n this.cd.markForCheck();\n }\n get isTopLevel() {\n return !this.parentTab;\n }\n parentTab = inject(RdtTabComponent, { optional: true });\n controller = inject(RdtTabControllerDirective, {\n optional: true,\n });\n cd = inject(ChangeDetectorRef);\n elRef = inject(ElementRef);\n renderer = inject(Renderer2);\n currentTemplate = null;\n currentTab = null;\n get classes() {\n return `dp3-tab-container panel-${this.panelPosition}`;\n }\n get isHorizontal() {\n return this.panelPosition === 'top' || this.panelPosition === 'bottom';\n }\n get isVertical() {\n return !this.isHorizontal;\n }\n attrRole = 'tablist';\n get hasNonDisabledTabs() {\n return this.tabsList.some((tab) => !tab.disabled);\n }\n get activeTab() {\n return this.getTabByValue(this.value);\n }\n getTabByValue(value) {\n return this.tabsList?.find((tab) => tab.stateId === value);\n }\n ngAfterContentInit() {\n this.controller?.onTabContainerChanges();\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setCurrent());\n this.tabsList.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.controller?.onTabChanges();\n this.setCurrent();\n this.cd.markForCheck();\n });\n if (this.stateId === null && this.controller) {\n const id = this.controller.getTabContainerIndex(this);\n this.stateId = `tab-container-${id}`;\n }\n }\n getState() {\n return {\n id: this.stateId,\n value: this.value,\n tabStates: this.tabsList.map((tab) => tab.getState()),\n };\n }\n applyState(state) {\n this.value = state.value;\n this.scrollCurrentButtonIntoView();\n const states = [...state.tabStates];\n const tabs = this.tabsList.toArray();\n const minLen = Math.min(states.length, tabs.length);\n for (let i = 0; i < minLen; i++) {\n if (tabs[i].stateId === states[i].id) {\n tabs[i].applyState(states[i]);\n tabs[i] = states[i] = null;\n }\n }\n tabs.forEach((tab, tabI) => {\n if (!tab) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = tabI - offset;\n const next = tabI + offset;\n if (prev > 0 && states[prev]?.id === tab.stateId) {\n tab.applyState(states[prev]);\n states[prev] = null;\n return;\n }\n else if (next < states.length && states[next]?.id === tab.stateId) {\n tab.applyState(states[next]);\n states[next] = null;\n return;\n }\n }\n });\n }\n scrollIntoView() {\n this.elRef?.nativeElement?.scrollIntoView({ behavior: 'smooth' });\n }\n async activateTab(value) {\n const nextTab = this.getTabByValue(value);\n const can = await firstValueFrom(canTransition$(this.activeTab?.contDir, nextTab?.contDir));\n if (can) {\n this.value = value;\n this.valueChange.emit(value);\n }\n }\n scrollCurrentButtonIntoView() {\n if (!this.tabsList || !this.tabHeaderButtons) {\n return;\n }\n const tabIndex = this.tabsList\n .toArray()\n .findIndex((tab) => tab.stateId === this.value);\n const buttonRef = this.tabHeaderButtons.get(tabIndex);\n if (buttonRef) {\n RdtHTMLUtils.scrollIntoViewHorizontallyWithinParent(buttonRef.nativeElement);\n }\n }\n onClick(event) {\n this.controller?.activateTabContainerFromClick(this, event.timeStamp);\n }\n setCurrent() {\n if (!this.tabsList) {\n return;\n }\n if (this.value == undefined) {\n const firstEnabled = this.getFirstEnabledTab();\n if (firstEnabled) {\n this.value = firstEnabled.stateId;\n }\n else {\n return;\n }\n }\n const found = this.tabsList.find((tab) => tab.stateId === this.value);\n if (!found) {\n const first = this.getFirstEnabledTab();\n if (first) {\n this.activateTab(first.stateId);\n return;\n }\n else {\n console.error('Active tab not found.', this.tabsList.toArray(), this.value);\n return;\n }\n }\n this.setTab(found);\n }\n setTab(tab) {\n if (this.currentTab !== tab) {\n this.solidifyTabContentSize();\n this.currentTab = tab;\n this.currentTemplate = tab.templateRef;\n this.cd.markForCheck();\n //tab.onViewWillEnter();\n }\n if (this.formAutofocus && tab.formAutofocus) {\n // Wait until template is attached to DOM\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntilDestroyed(tab.destroyRef))\n .subscribe(() => tab.focusForm());\n }\n setTimeout(() => this.releaseTabContentSize());\n }\n // Swapping template in template outlet will cause large css recalc\n // fix size to previous tab and in case they are the same size\n // the recalc isn't noticable\n solidifyTabContentSize() {\n const el = this.tabContent.nativeElement;\n const bb = el.getBoundingClientRect();\n this.renderer.setStyle(el, 'width', bb.width + 'px');\n this.renderer.setStyle(el, 'height', bb.height + 'px');\n }\n releaseTabContentSize() {\n const el = this.tabContent.nativeElement;\n this.renderer.removeStyle(el, 'width');\n this.renderer.removeStyle(el, 'height');\n }\n getFirstEnabledTab() {\n return this.tabsList.find((t) => !t.disabled);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtTabContainerComponent, isStandalone: false, selector: \"rdt-tab-container\", inputs: { stateId: \"stateId\", value: \"value\", disabled: \"disabled\", formAutofocus: \"formAutofocus\", panelPosition: \"panelPosition\" }, outputs: { valueChange: \"valueChange\" }, host: { listeners: { \"click\": \"onClick($event)\" }, properties: { \"class.active\": \"this._active\", \"class\": \"this.classes\", \"class.panel-horizontal\": \"this.isHorizontal\", \"class.panel-vertical\": \"this.isVertical\", \"attr.role\": \"this.attrRole\" } }, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabContainerComponent,\n },\n ], queries: [{ propertyName: \"tabsList\", predicate: RdtTabComponent }], viewQueries: [{ propertyName: \"tabContent\", first: true, predicate: [\"tabContent\"], descendants: true, static: true }, { propertyName: \"tabHeaderButtons\", predicate: [\"headerButton\"], descendants: true }], hostDirectives: [{ directive: i1.RdtChildDirective }], ngImport: i0, template: \"<div class=\\\"tab-header-panel\\\" *ngIf=\\\"tabsList\\\">\\n <button\\n *ngFor=\\\"let tab of tabsList\\\"\\n #headerButton\\n class=\\\"px-2 py-1 tab-header-button\\\"\\n (click)=\\\"activateTab(tab.stateId)\\\"\\n [class.active]=\\\"value === tab.stateId\\\"\\n [disabled]=\\\"tab.disabled\\\"\\n [hidden]=\\\"!tab.visible\\\"\\n role=\\\"tab\\\"\\n [attr.aria-selected]=\\\"value === tab.stateId\\\"\\n [attr.aria-controls]=\\\"'panel-' + tab.stateId\\\"\\n [attr.tabindex]=\\\"value === tab.stateId ? 0 : -1\\\"\\n [id]=\\\"'tab-' + tab.stateId\\\"\\n [class]=\\\"tab.buttonClass\\\"\\n type=\\\"button\\\"\\n >\\n {{ tab.label }}\\n </button>\\n</div>\\n<div\\n class=\\\"tab-content\\\"\\n role=\\\"tabpanel\\\"\\n [id]=\\\"'panel-' + value\\\"\\n [attr.aria-labelledby]=\\\"'tab-' + value\\\"\\n #tabContent\\n>\\n <ng-template [ngTemplateOutlet]=\\\"currentTemplate\\\"></ng-template>\\n</div>\\n\", styles: [\"dp3-tab-container{--tab-header-border-height: 2px;--tab-header-border-color: #e2e8f0;--tab-text-color: rgb(100, 116, 139);--active-tab-text-color: var(--primary-blue);--active-tab-border-color: var(--primary-blue);--disabled-tab-text-color: #b1b9c5;--tab-vertical-button-width: 200px;display:block;position:relative}dp3-tab-container.active>.tab-header-panel{background-color:var(--hover-blue)}dp3-tab-container.panel-vertical{display:flex}dp3-tab-container.panel-vertical>.tab-header-panel{position:absolute;top:0;height:100%;width:var(--tab-vertical-button-width);overflow-y:auto}dp3-tab-container.panel-vertical>.tab-header-panel>button{text-align:left;width:100%;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}dp3-tab-container.panel-vertical>.tab-content{width:calc(100% - var(--tab-vertical-button-width))}dp3-tab-container.panel-right{flex-direction:row-reverse}dp3-tab-container.panel-right>.tab-header-panel{right:0}dp3-tab-container.panel-left>.tab-header-panel{left:0}dp3-tab-container.panel-left>.tab-content{margin-left:var(--tab-vertical-button-width)}dp3-tab-container.panel-horizontal>.tab-header-panel{width:100%;white-space:nowrap;overflow-x:auto}dp3-tab-container.panel-bottom{display:flex;flex-direction:column-reverse}dp3-tab-container .tab-header-panel{position:relative;background-color:rgba(var(--primary-blue-rgb),.045)}dp3-tab-container .tab-header-panel:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--tab-header-border-color);margin-top:var(--tab-header-border-height);bottom:0;left:0;z-index:-1}dp3-tab-container .dot{position:absolute;width:.85rem;height:.85rem;padding:0 .1rem;background-color:var(--primary-blue);color:var(--white);font-size:x-small;border-radius:100%;top:.25rem;right:0rem}dp3-tab-container .tab-header-button{position:relative;background:none;font:inherit;outline:inherit;border:none;color:var(--tab-text-color);font-weight:700;font-size:1.1rem}dp3-tab-container .tab-header-button.active{position:relative;color:var(--active-tab-text-color)}dp3-tab-container .tab-header-button.active:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--active-tab-text-color);margin-top:var(--tab-header-border-height);bottom:0;left:0}dp3-tab-container .tab-header-button:disabled{color:var(--disabled-tab-text-color)}dp3-tab-container .tab-header-button.padding-small{padding-right:1.1rem!important}dp3-tab-container .tab-header-button.padding-large{padding-right:1.3rem!important}dp3-tab-container>.tab-content{min-width:0;width:100%;padding:.5rem}dp3-tab-container>.tab-content:has(>.dp3-tab-container){padding:0}dp3-tab-container>.tab-content>.dp3-tab-container{width:100%;height:100%}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rdt-tab-container', changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabContainerComponent,\n },\n ], hostDirectives: [RdtChildDirective], encapsulation: ViewEncapsulation.None, standalone: false, template: \"<div class=\\\"tab-header-panel\\\" *ngIf=\\\"tabsList\\\">\\n <button\\n *ngFor=\\\"let tab of tabsList\\\"\\n #headerButton\\n class=\\\"px-2 py-1 tab-header-button\\\"\\n (click)=\\\"activateTab(tab.stateId)\\\"\\n [class.active]=\\\"value === tab.stateId\\\"\\n [disabled]=\\\"tab.disabled\\\"\\n [hidden]=\\\"!tab.visible\\\"\\n role=\\\"tab\\\"\\n [attr.aria-selected]=\\\"value === tab.stateId\\\"\\n [attr.aria-controls]=\\\"'panel-' + tab.stateId\\\"\\n [attr.tabindex]=\\\"value === tab.stateId ? 0 : -1\\\"\\n [id]=\\\"'tab-' + tab.stateId\\\"\\n [class]=\\\"tab.buttonClass\\\"\\n type=\\\"button\\\"\\n >\\n {{ tab.label }}\\n </button>\\n</div>\\n<div\\n class=\\\"tab-content\\\"\\n role=\\\"tabpanel\\\"\\n [id]=\\\"'panel-' + value\\\"\\n [attr.aria-labelledby]=\\\"'tab-' + value\\\"\\n #tabContent\\n>\\n <ng-template [ngTemplateOutlet]=\\\"currentTemplate\\\"></ng-template>\\n</div>\\n\", styles: [\"dp3-tab-container{--tab-header-border-height: 2px;--tab-header-border-color: #e2e8f0;--tab-text-color: rgb(100, 116, 139);--active-tab-text-color: var(--primary-blue);--active-tab-border-color: var(--primary-blue);--disabled-tab-text-color: #b1b9c5;--tab-vertical-button-width: 200px;display:block;position:relative}dp3-tab-container.active>.tab-header-panel{background-color:var(--hover-blue)}dp3-tab-container.panel-vertical{display:flex}dp3-tab-container.panel-vertical>.tab-header-panel{position:absolute;top:0;height:100%;width:var(--tab-vertical-button-width);overflow-y:auto}dp3-tab-container.panel-vertical>.tab-header-panel>button{text-align:left;width:100%;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}dp3-tab-container.panel-vertical>.tab-content{width:calc(100% - var(--tab-vertical-button-width))}dp3-tab-container.panel-right{flex-direction:row-reverse}dp3-tab-container.panel-right>.tab-header-panel{right:0}dp3-tab-container.panel-left>.tab-header-panel{left:0}dp3-tab-container.panel-left>.tab-content{margin-left:var(--tab-vertical-button-width)}dp3-tab-container.panel-horizontal>.tab-header-panel{width:100%;white-space:nowrap;overflow-x:auto}dp3-tab-container.panel-bottom{display:flex;flex-direction:column-reverse}dp3-tab-container .tab-header-panel{position:relative;background-color:rgba(var(--primary-blue-rgb),.045)}dp3-tab-container .tab-header-panel:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--tab-header-border-color);margin-top:var(--tab-header-border-height);bottom:0;left:0;z-index:-1}dp3-tab-container .dot{position:absolute;width:.85rem;height:.85rem;padding:0 .1rem;background-color:var(--primary-blue);color:var(--white);font-size:x-small;border-radius:100%;top:.25rem;right:0rem}dp3-tab-container .tab-header-button{position:relative;background:none;font:inherit;outline:inherit;border:none;color:var(--tab-text-color);font-weight:700;font-size:1.1rem}dp3-tab-container .tab-header-button.active{position:relative;color:var(--active-tab-text-color)}dp3-tab-container .tab-header-button.active:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--active-tab-text-color);margin-top:var(--tab-header-border-height);bottom:0;left:0}dp3-tab-container .tab-header-button:disabled{color:var(--disabled-tab-text-color)}dp3-tab-container .tab-header-button.padding-small{padding-right:1.1rem!important}dp3-tab-container .tab-header-button.padding-large{padding-right:1.3rem!important}dp3-tab-container>.tab-content{min-width:0;width:100%;padding:.5rem}dp3-tab-container>.tab-content:has(>.dp3-tab-container){padding:0}dp3-tab-container>.tab-content>.dp3-tab-container{width:100%;height:100%}\\n\"] }]\n }], propDecorators: { stateId: [{\n type: Input\n }], value: [{\n type: Input\n }], disabled: [{\n type: Input\n }], formAutofocus: [{\n type: Input\n }], panelPosition: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], tabsList: [{\n type: ContentChildren,\n args: [RdtTabComponent]\n }], tabHeaderButtons: [{\n type: ViewChildren,\n args: ['headerButton']\n }], tabContent: [{\n type: ViewChild,\n args: ['tabContent', { static: true }]\n }], _active: [{\n type: HostBinding,\n args: ['class.active']\n }], classes: [{\n type: HostBinding,\n args: ['class']\n }], isHorizontal: [{\n type: HostBinding,\n args: ['class.panel-horizontal']\n }], isVertical: [{\n type: HostBinding,\n args: ['class.panel-vertical']\n }], attrRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9jb21wb25lbnRzL3RhYi1jb250YWluZXIvcmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9jb21wb25lbnRzL3RhYi1jb250YWluZXIvcmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsaUJBQWlCLEdBQ2xCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBaUIzRCxNQUFNLE9BQU8sd0JBQXdCO0lBQzFCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFHekMsT0FBTyxHQUFRLElBQUksQ0FBQztJ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LEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxPQUFPO1lBQ1QsQ0FBQztZQUNELEtBQUssSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQzNCLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQztvQkFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDcEIsT0FBTztnQkFDVCxDQUFDO3FCQUFNLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxN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c0JBRFosS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxlQUFlO3VCQUFDLGVBQWU7Z0JBSWhDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLGNBQWM7Z0JBSTVCLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqQyxPQUFPO3NCQURkLFdBQVc7dUJBQUMsY0FBYztnQkEwQnZCLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxPQUFPO2dCQU1oQixZQUFZO3NCQURmLFdBQVc7dUJBQUMsd0JBQXdCO2dCQU1qQyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsc0JBQXNCO2dCQU0zQixRQUFRO3NCQURmLFdBQVc7dUJBQUMsV0FBVztnQkE2R2hCLE9BQU87c0JBRGQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgY2FuVHJhbnNpdGlvbiQsXG4gIFJEVF9HVUFSREVEX0NPTVBPTkVOVCxcbiAgUmR0Q2hpbGREaXJlY3RpdmUsXG59IGZyb20gJ0BuZ3JkdC9jb3JlJztcbmltcG9ydCB7IFJkdEhUTUxVdGlscyB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JkdC10YWItY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR0VGFiQ29udGFpbmVyU3RhdGUsIFJkdFRhYlN0YXRlIH0gZnJvbSAnLi4vLi4vcmR0LXRhYnMtbW9kZWxzJztcbmltcG9ydCB7IFJkdFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi9yZHQtdGFiLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JkdC10YWItY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JkdC10YWItY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJEVF9HVUFSREVEX0NPTVBPTkVOVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtSZHRDaGlsZERpcmVjdGl2ZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRUYWJDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBASW5wdXQoKVxuICBzdGF0ZUlkOiBhbnkgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYiAmJiB0aGlzLmFjdGl2ZVRhYi5zdGF0ZUlkICE9PSB2YWwpIHtcbiAgICAgIC8vIFRPRE9cbiAgICAgIC8vdGhpcy5hY3RpdmVUYWIub25WaWV3V2lsbExlYXZlKCk7XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xuICAgIHRoaXMuc2V0Q3VycmVudCgpO1xuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWUhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmb3JtQXV0b2ZvY3VzID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwYW5lbFBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICd0b3AnO1xuXG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAQ29udGVudENoaWxkcmVuKFJkdFRhYkNvbXBvbmVudClcbiAgdGFic0xpc3QhOiBRdWVyeUxpc3Q8UmR0VGFiQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkcmVuKCdoZWFkZXJCdXR0b24nKVxuICB0YWJIZWFkZXJCdXR0b25zPzogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICBAVmlld0NoaWxkKCd0YWJDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgdGFiQ29udGVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG4gIGdldCBhY3RpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuICBzZXQgYWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYWN0aXZlID0gdmFsdWU7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBpc1RvcExldmVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5wYXJlbnRUYWI7XG4gIH1cblxuICByZWFkb25seSBwYXJlbnRUYWIgPSBpbmplY3QoUmR0VGFiQ29tcG9uZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICByZWFkb25seSBjb250cm9sbGVyID0gaW5qZWN0KFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5IGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIHByb3RlY3RlZCBjdXJyZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWI6IFJkdFRhYkNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgY2xhc3NlcygpIHtcbiAgICByZXR1cm4gYGRwMy10YWItY29udGFpbmVyIHBhbmVsLSR7dGhpcy5wYW5lbFBvc2l0aW9ufWA7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBhbmVsLWhvcml6b250YWwnKVxuICBnZXQgaXNIb3Jpem9udGFsKCkge1xuICAgIHJldHVybiB0aGlzLnBhbmVsUG9zaXRpb24gPT09ICd0b3AnIHx8IHRoaXMucGFuZWxQb3NpdGlvbiA9PT0gJ2JvdHRvbSc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBhbmVsLXZlcnRpY2FsJylcbiAgZ2V0IGlzVmVydGljYWwoKSB7XG4gICAgcmV0dXJuICF0aGlzLmlzSG9yaXpvbnRhbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgcHJpdmF0ZSBhdHRyUm9sZSA9ICd0YWJsaXN0JztcblxuICBnZXQgaGFzTm9uRGlzYWJsZWRUYWJzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNMaXN0LnNvbWUoKHRhYikgPT4gIXRhYi5kaXNhYmxlZCk7XG4gIH1cblxuICBnZXQgYWN0aXZlVGFiKCkge1xuICAgIHJldHVybiB0aGlzLmdldFRhYkJ5VmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBnZXRUYWJCeVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzTGlzdD8uZmluZCgodGFiKSA9PiB0YWIuc3RhdGVJZCA9PT0gdmFsdWUpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY29udHJvbGxlcj8ub25UYWJDb250YWluZXJDaGFuZ2VzKCk7XG4gICAgdGltZXIoMClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldEN1cnJlbnQoKSk7XG5cbiAgICB0aGlzLnRhYnNMaXN0LmNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbGxlcj8ub25UYWJDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudCgpO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5zdGF0ZUlkID09PSBudWxsICYmIHRoaXMuY29udHJvbGxlcikge1xuICAgICAgY29uc3QgaWQgPSB0aGlzLmNvbnRyb2xsZXIuZ2V0VGFiQ29udGFpbmVySW5kZXgodGhpcyk7XG4gICAgICB0aGlzLnN0YXRlSWQgPSBgdGFiLWNvbnRhaW5lci0ke2lkfWA7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RhdGUoKTogUmR0VGFiQ29udGFpbmVyU3RhdGUge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5zdGF0ZUlkLFxuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICB0YWJTdGF0ZXM6IHRoaXMudGFic0xpc3QubWFwKCh0YWIpID0+IHRhYi5nZXRTdGF0ZSgpKSxcbiAgICB9O1xuICB9XG5cbiAgYXBwbHlTdGF0ZShzdGF0ZTogUmR0VGFiQ29udGFpbmVyU3RhdGUpIHtcbiAgICB0aGlzLnZhbHVlID0gc3RhdGUudmFsdWU7XG4gICAgdGhpcy5zY3JvbGxDdXJyZW50QnV0dG9uSW50b1ZpZXcoKTtcblxuICAgIGNvbnN0IHN0YXRlczogKFJkdFRhYlN0YXRlIHwgbnVsbClbXSA9IFsuLi5zdGF0ZS50YWJTdGF0ZXNdO1xuICAgIGNvbnN0IHRhYnM6IChSZHRUYWJDb21wb25lbnQgfCBudWxsKVtdID0gdGhpcy50YWJzTGlzdC50b0FycmF5KCk7XG4gICAgY29uc3QgbWluTGVuID0gTWF0aC5taW4oc3RhdGVzLmxlbmd0aCwgdGFicy5sZW5ndGgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaW5MZW47IGkrKykge1xuICAgICAgaWYgKHRhYnNbaV0hLnN0YXRlSWQgPT09IHN0YXRlc1tpXSEuaWQpIHtcbiAgICAgICAgdGFic1tpXSEuYXBwbHlTdGF0ZShzdGF0ZXNbaV0hKTtcbiAgICAgICAgdGFic1tpXSA9IHN0YXRlc1tpXSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHRhYnMuZm9yRWFjaCgodGFiLCB0YWJJKSA9PiB7XG4gICAgICBpZiAoIXRhYikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBzdGF0ZXMubGVuZ3RoOyBvZmZzZXQrKykge1xuICAgICAgICBjb25zdCBwcmV2ID0gdGFiSSAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgbmV4dCA9IHRhYkkgKyBvZmZzZXQ7XG4gICAgICAgIGlmIChwcmV2ID4gMCAmJiBzdGF0ZXNbcHJldl0/LmlkID09PSB0YWIuc3RhdGVJZCkge1xuICAgICAgICAgIHRhYi5hcHBseVN0YXRlKHN0YXRlc1twcmV2XSEpO1xuICAgICAgICAgIHN0YXRlc1twcmV2XSA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKG5leHQgPCBzdGF0ZXMubGVuZ3RoICYmIHN0YXRlc1tuZXh0XT8uaWQgPT09IHRhYi5zdGF0ZUlkKSB7XG4gICAgICAgICAgdGFiLmFwcGx5U3RhdGUoc3RhdGVzW25leHRdISk7XG4gICAgICAgICAgc3RhdGVzW25leHRdID0gbnVsbDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNjcm9sbEludG9WaWV3KCkge1xuICAgIHRoaXMuZWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICB9XG5cbiAgYXN5bmMgYWN0aXZhdGVUYWIodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5leHRUYWIgPSB0aGlzLmdldFRhYkJ5VmFsdWUodmFsdWUpO1xuXG4gICAgY29uc3QgY2FuID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICBjYW5UcmFuc2l0aW9uJCh0aGlzLmFjdGl2ZVRhYj8uY29udERpciwgbmV4dFRhYj8uY29udERpcilcbiAgICApO1xuICAgIGlmIChjYW4pIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsQ3VycmVudEJ1dHRvbkludG9WaWV3KCkge1xuICAgIGlmICghdGhpcy50YWJzTGlzdCB8fCAhdGhpcy50YWJIZWFkZXJCdXR0b25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhYkluZGV4ID0gdGhpcy50YWJzTGlzdFxuICAgICAgLnRvQXJyYXkoKVxuICAgICAgLmZpbmRJbmRleCgodGFiKSA9PiB0YWIuc3RhdGVJZCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgY29uc3QgYnV0dG9uUmVmID0gdGhpcy50YWJIZWFkZXJCdXR0b25zLmdldCh0YWJJbmRleCk7XG4gICAgaWYgKGJ1dHRvblJlZikge1xuICAgICAgUmR0SFRNTFV0aWxzLnNjcm9sbEludG9WaWV3SG9yaXpvbnRhbGx5V2l0aGluUGFyZW50KFxuICAgICAgICBidXR0b25SZWYubmF0aXZlRWxlbWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25DbGljayhldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5jb250cm9sbGVyPy5hY3RpdmF0ZVRhYkNvbnRhaW5lckZyb21DbGljayh0aGlzLCBldmVudC50aW1lU3RhbXApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJyZW50KCkge1xuICAgIGlmICghdGhpcy50YWJzTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy52YWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGZpcnN0RW5hYmxlZCA9IHRoaXMuZ2V0Rmlyc3RFbmFibGVkVGFiKCk7XG4gICAgICBpZiAoZmlyc3RFbmFibGVkKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBmaXJzdEVuYWJsZWQuc3RhdGVJZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMudGFic0xpc3QuZmluZCgodGFiKSA9PiB0YWIuc3RhdGVJZCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgY29uc3QgZmlyc3QgPSB0aGlzLmdldEZpcnN0RW5hYmxlZFRhYigpO1xuICAgICAgaWYgKGZpcnN0KSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUYWIoZmlyc3Quc3RhdGVJZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ0FjdGl2ZSB0YWIgbm90IGZvdW5kLicsXG4gICAgICAgICAgdGhpcy50YWJzTGlzdC50b0FycmF5KCksXG4gICAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2V0VGFiKGZvdW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFiKHRhYjogUmR0VGFiQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFRhYiAhPT0gdGFiKSB7XG4gICAgICB0aGlzLnNvbGlkaWZ5VGFiQ29udGVudFNpemUoKTtcbiAgICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcbiAgICAgIHRoaXMuY3VycmVudFRlbXBsYXRlID0gdGFiLnRlbXBsYXRlUmVmO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIC8vdGFiLm9uVmlld1dpbGxFbnRlcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1BdXRvZm9jdXMgJiYgdGFiLmZvcm1BdXRvZm9jdXMpIHtcbiAgICAgIC8vIFdhaXQgdW50aWwgdGVtcGxhdGUgaXMgYXR0YWNoZWQgdG8gRE9NXG4gICAgICB0aW1lcigwKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGFiLmRlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0YWIuZm9jdXNGb3JtKCkpO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWxlYXNlVGFiQ29udGVudFNpemUoKSk7XG4gIH1cblxuICAvLyBTd2FwcGluZyB0ZW1wbGF0ZSBpbiB0ZW1wbGF0ZSBvdXRsZXQgd2lsbCBjYXVzZSBsYXJnZSBjc3MgcmVjYWxjXG4gIC8vIGZpeCBzaXplIHRvIHByZXZpb3VzIHRhYiBhbmQgaW4gY2FzZSB0aGV5IGFyZSB0aGUgc2FtZSBzaXplXG4gIC8vIHRoZSByZWNhbGMgaXNuJ3Qgbm90aWNhYmxlXG4gIHByaXZhdGUgc29saWRpZnlUYWJDb250ZW50U2l6ZSgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudGFiQ29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGJiID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ3dpZHRoJywgYmIud2lkdGggKyAncHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnaGVpZ2h0JywgYmIuaGVpZ2h0ICsgJ3B4Jyk7XG4gIH1cblxuICBwcml2YXRlIHJlbGVhc2VUYWJDb250ZW50U2l6ZSgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudGFiQ29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZWwsICd3aWR0aCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZWwsICdoZWlnaHQnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rmlyc3RFbmFibGVkVGFiKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNMaXN0LmZpbmQoKHQpID0+ICF0LmRpc2FibGVkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYi1oZWFkZXItcGFuZWxcIiAqbmdJZj1cInRhYnNMaXN0XCI+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNMaXN0XCJcbiAgICAjaGVhZGVyQnV0dG9uXG4gICAgY2xhc3M9XCJweC0yIHB5LTEgdGFiLWhlYWRlci1idXR0b25cIlxuICAgIChjbGljayk9XCJhY3RpdmF0ZVRhYih0YWIuc3RhdGVJZClcIlxuICAgIFtjbGFzcy5hY3RpdmVdPVwidmFsdWUgPT09IHRhYi5zdGF0ZUlkXCJcbiAgICBbZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkXCJcbiAgICBbaGlkZGVuXT1cIiF0YWIudmlzaWJsZVwiXG4gICAgcm9sZT1cInRhYlwiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gdGFiLnN0YXRlSWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3BhbmVsLScgKyB0YWIuc3RhdGVJZFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidmFsdWUgPT09IHRhYi5zdGF0ZUlkID8gMCA6IC0xXCJcbiAgICBbaWRdPVwiJ3RhYi0nICsgdGFiLnN0YXRlSWRcIlxuICAgIFtjbGFzc109XCJ0YWIuYnV0dG9uQ2xhc3NcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICA+XG4gICAge3sgdGFiLmxhYmVsIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwidGFiLWNvbnRlbnRcIlxuICByb2xlPVwidGFicGFuZWxcIlxuICBbaWRdPVwiJ3BhbmVsLScgKyB2YWx1ZVwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyB2YWx1ZVwiXG4gICN0YWJDb250ZW50XG4+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXJyZW50VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=","export var RdtTabMode;\n(function (RdtTabMode) {\n})(RdtTabMode || (RdtTabMode = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMtbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9yZHQtdGFicy1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxDQUFOLElBQVksVUFBYTtBQUF6QixXQUFZLFVBQVU7QUFBRSxDQUFDLEVBQWIsVUFBVSxLQUFWLFVBQVUsUUFBRyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUmR0VGFiQ29udGFpbmVyU3RhdGUge1xuICBpZDogYW55O1xuICB2YWx1ZTogYW55O1xuICB0YWJTdGF0ZXM6IFJkdFRhYlN0YXRlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR0VGFiU3RhdGUge1xuICBpZDogYW55O1xuICBjb250YWluZXJTdGF0ZXM6IFJkdFRhYkNvbnRhaW5lclN0YXRlW107XG59XG5cbmV4cG9ydCBlbnVtIFJkdFRhYk1vZGUge31cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RdtTabContainerComponent } from './components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from './components/tab/rdt-tab.component';\nimport { RdtDestroyInactiveDirective } from './directives/rdt-destroy-inactive.directive';\nimport { RdtTabControllerDirective } from './directives/rdt-tab-controller.directive';\nimport * as i0 from \"@angular/core\";\nexport class RdtTabsModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, declarations: [RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective], imports: [CommonModule], exports: [RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n exports: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9yZHQtdGFicy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQWlCdEYsTUFBTSxPQUFPLGFBQWE7dUdBQWIsYUFBYTt3R0FBYixhQUFhLGlCQWJ0QixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6QiwyQkFBMkIsYUFRbkIsWUFBWSxhQUxwQixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6QiwyQkFBMkI7d0dBSWxCLGFBQWEsWUFGZCxZQUFZOzsyRkFFWCxhQUFhO2tCQWZ6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWItY29udGFpbmVyL3JkdC10YWItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZHRUYWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFiL3JkdC10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZHQtZGVzdHJveS1pbmFjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZHQtdGFiLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmR0VGFiQ29tcG9uZW50LFxuICAgIFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgIFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJkdFRhYkNvbXBvbmVudCxcbiAgICBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICBSZHREZXN0cm95SW5hY3RpdmVEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRUYWJzTW9kdWxlIHt9XG4iXX0=","export class StaticRdtTabsShortcutStrategy {\n config;\n constructor(config) {\n this.config = config;\n }\n updateShortcuts() {\n return Array.from(this.config.shortcuts.keys());\n }\n onShortcut(shortcut, ctrl) {\n const value = this.config.shortcuts.get(shortcut);\n const tab = ctrl.getTabByValue(value);\n if (tab) {\n ctrl.activateTab(tab);\n ctrl.activateTabContainer(tab.tabContainer);\n }\n else {\n console.warn(`Registered shortcut has been detected,\n but there is no tab with appropriate value.\n Shortcut: ${shortcut}, value: ${value}`);\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXJkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9zdHJhdGVnaWVzL3N0YXRpYy1yZHQtdGFicy1zaG9ydGN1dC1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sNkJBQTZCO0lBQ3BCO0lBQXBCLFlBQW9CLE1BQTJCO1FBQTNCLFdBQU0sR0FBTixNQUFNLENBQXFCO0lBQUcsQ0FBQztJQUVuRCxlQUFlO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFxQixFQUFFLElBQStCO1FBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUNWOztzQkFFYyxRQUFRLFlBQVksS0FBSyxFQUFFLENBQzFDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2hvcnRjdXQgfSBmcm9tICdAbmdyZHQvc2hvcnRjdXRzJztcbmltcG9ydCB7IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JkdC10YWItY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kgfSBmcm9tICcuL3JkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5JztcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNSZHRUYWJzQ29uZmlnIHtcbiAgc2hvcnRjdXRzOiBNYXA8UmR0U2hvcnRjdXQsIHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0aWNSZHRUYWJzU2hvcnRjdXRTdHJhdGVneSBpbXBsZW1lbnRzIFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IFN0YXRpY1JkdFRhYnNDb25maWcpIHt9XG5cbiAgdXBkYXRlU2hvcnRjdXRzKCk6IFJkdFNob3J0Y3V0W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29uZmlnLnNob3J0Y3V0cy5rZXlzKCkpO1xuICB9XG5cbiAgb25TaG9ydGN1dChzaG9ydGN1dDogUmR0U2hvcnRjdXQsIGN0cmw6IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29uZmlnLnNob3J0Y3V0cy5nZXQoc2hvcnRjdXQpITtcbiAgICBjb25zdCB0YWIgPSBjdHJsLmdldFRhYkJ5VmFsdWUodmFsdWUpO1xuICAgIGlmICh0YWIpIHtcbiAgICAgIGN0cmwuYWN0aXZhdGVUYWIodGFiKTtcbiAgICAgIGN0cmwuYWN0aXZhdGVUYWJDb250YWluZXIodGFiLnRhYkNvbnRhaW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFJlZ2lzdGVyZWQgc2hvcnRjdXQgaGFzIGJlZW4gZGV0ZWN0ZWQsXG4gICAgICAgICAgYnV0IHRoZXJlIGlzIG5vIHRhYiB3aXRoIGFwcHJvcHJpYXRlIHZhbHVlLlxuICAgICAgICAgIFNob3J0Y3V0OiAke3Nob3J0Y3V0fSwgdmFsdWU6ICR7dmFsdWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtdGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0BuZ3JkdC90YWJzL3NyYy9uZ3JkdC10YWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngrdt-tabs.mjs","sources":["../tmp-esm2022/lib/directives/rdt-destroy-inactive.directive.js","../tmp-esm2022/lib/components/tab/rdt-tab.component.js","../tmp-esm2022/lib/strategies/rdt-tabs-shortcut-strategy.js","../tmp-esm2022/lib/strategies/auto-rdt-tabs-shortcut-strategy.js","../tmp-esm2022/lib/directives/rdt-tab-controller.directive.js","../tmp-esm2022/lib/components/tab-container/rdt-tab-container.component.js","../tmp-esm2022/lib/rdt-tabs-models.js","../tmp-esm2022/lib/rdt-tabs.module.js","../tmp-esm2022/lib/strategies/static-rdt-tabs-shortcut-strategy.js","../tmp-esm2022/ngrdt-tabs.js"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdtDestroyInactiveDirective {\n template = inject(TemplateRef);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDestroyInactiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtDestroyInactiveDirective, isStandalone: false, selector: \"[rdtDestroyInactive]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDestroyInactiveDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtDestroyInactive]',\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlc3Ryb3ktaW5hY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9kaXJlY3RpdmVzL3JkdC1kZXN0cm95LWluYWN0aXZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTS9ELE1BQU0sT0FBTywyQkFBMkI7SUFDdEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQzt1R0FEcEMsMkJBQTJCOzJGQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZHREZXN0cm95SW5hY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSB7XG4gIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG4iXX0=","import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, DestroyRef, inject, Injector, Input, TemplateRef, ViewChild, } from '@angular/core';\nimport { RDT_GUARDED_COMPONENT, RdtContainerDirective, } from '@ngrdt/core';\nimport { RdtDestroyInactiveDirective } from '../../directives/rdt-destroy-inactive.directive';\nimport { RdtTabContainerComponent } from '../tab-container/rdt-tab-container.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrdt/core\";\nexport class RdtTabComponent {\n injector = inject(Injector);\n destroyRef = inject(DestroyRef);\n _contDir;\n get contDir() {\n return this._contDir;\n }\n get stateId() {\n if (this._stateId === null) {\n if (this.label !== '') {\n this._stateId = this.label;\n }\n else {\n const index = this.tabContainer?.tabsList?.toArray().indexOf(this);\n this._stateId = `tab-${index}`;\n }\n }\n return this._stateId;\n }\n set stateId(value) {\n this._stateId = value;\n }\n _stateId = null;\n disabled = false;\n visible = true;\n label;\n formAutofocus = true;\n buttonClass = null;\n implicitContent;\n explicitContent;\n get templateRef() {\n return this.explicitContent ?? this.implicitContent;\n }\n tabContainer = inject(RdtTabContainerComponent);\n //get forms() {\n // return this.getChildrenByClass(RdtBaseFormComponent);\n //}\n get childContainers() {\n return this.contDir.getChildrenByClass(RdtTabContainerComponent);\n }\n rdtIsActive() {\n return (this.visible && !this.disabled && this.tabContainer.activeTab === this);\n }\n ngOnInit() {\n this._contDir = this.injector.get(RdtContainerDirective);\n }\n ngOnChanges(changes) {\n if ('label' in changes ||\n 'value' in changes ||\n 'visible' in changes ||\n 'stateId' in changes) {\n this.tabContainer.cd.markForCheck();\n }\n }\n get isTopLevel() {\n return this.tabContainer.isTopLevel;\n }\n getState() {\n return {\n id: this.stateId,\n containerStates: this.childContainers.map((cont) => cont.getState()),\n };\n }\n applyState(state) {\n const states = [...state.containerStates];\n const conts = this.childContainers;\n const minLen = Math.min(states.length, conts.length);\n for (let i = 0; i < minLen; i++) {\n if (conts[i].stateId === states[i].id) {\n conts[i].applyState(states[i]);\n conts[i] = states[i] = null;\n }\n }\n conts.forEach((cont, contI) => {\n if (!cont) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = contI - offset;\n const next = contI + offset;\n if (prev > 0 && states[prev]?.id === cont.stateId) {\n cont.applyState(states[prev]);\n states[prev] = null;\n return;\n }\n else if (next < states.length && states[next]?.id === cont.stateId) {\n cont.applyState(states[next]);\n states[next] = null;\n return;\n }\n }\n });\n }\n focusForm() {\n //TODO: getRdtAutofocusable(this.forms)?.focus();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"20.0.0\", type: RdtTabComponent, isStandalone: false, selector: \"rdt-tab\", inputs: { stateId: \"stateId\", disabled: [\"disabled\", \"disabled\", booleanAttribute], visible: [\"visible\", \"visible\", booleanAttribute], label: \"label\", formAutofocus: [\"formAutofocus\", \"formAutofocus\", booleanAttribute], buttonClass: \"buttonClass\" }, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabComponent,\n },\n ], queries: [{ propertyName: \"explicitContent\", first: true, predicate: RdtDestroyInactiveDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: \"implicitContent\", first: true, predicate: TemplateRef, descendants: true, static: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.RdtContainerDirective }], ngImport: i0, template: \"<ng-template>\\n <ng-content></ng-content>\\n</ng-template>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rdt-tab', changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabComponent,\n },\n ], hostDirectives: [RdtContainerDirective], standalone: false, template: \"<ng-template>\\n <ng-content></ng-content>\\n</ng-template>\\n\" }]\n }], propDecorators: { stateId: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], visible: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], label: [{\n type: Input,\n args: [{ required: true }]\n }], formAutofocus: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], buttonClass: [{\n type: Input\n }], implicitContent: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }], explicitContent: [{\n type: ContentChild,\n args: [RdtDestroyInactiveDirective, {\n read: TemplateRef,\n static: true,\n }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvdGFicy9zcmMvbGliL2NvbXBvbmVudHMvdGFiL3JkdC10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9jb21wb25lbnRzL3RhYi9yZHQtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsR0FFdEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7OztBQWV4RixNQUFNLE9BQU8sZUFBZTtJQUNULFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqQyxRQUFRLENBQXlCO0lBQ3pDLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFN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Z0IsNENBNUN6QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSxlQUFlO2FBQzdCO1NBQ0YsdUVBZ0RhLDJCQUEyQiwyQkFDakMsV0FBVyw0RkFKUixXQUFXLDhJQy9FeEIsOERBR0E7OzJGRG1DYSxlQUFlO2tCQWIzQixTQUFTOytCQUNFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0Ysa0JBQ2UsQ0FBQyxxQkFBcUIsQ0FBQyxjQUMzQixLQUFLOzhCQVliLE9BQU87c0JBRFYsS0FBSztnQkFrQk4sUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxPQUFPO3NCQUROLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLEtBQUs7c0JBREosS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSXpCLGFBQWE7c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEMsV0FBVztzQkFEVixLQUFLO2dCQUlXLGVBQWU7c0JBRC9CLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPdkIsZUFBZTtzQkFKL0IsWUFBWTt1QkFBQywyQkFBMkIsRUFBRTt3QkFDekMsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICBSZHRDb250YWluZXJEaXJlY3RpdmUsXG4gIFJkdElzQWN0aXZlLFxufSBmcm9tICdAbmdyZHQvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBSZHREZXN0cm95SW5hY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JkdC1kZXN0cm95LWluYWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHRUYWJDb250YWluZXJTdGF0ZSwgUmR0VGFiU3RhdGUgfSBmcm9tICcuLi8uLi9yZHQtdGFicy1tb2RlbHMnO1xuaW1wb3J0IHsgUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiLWNvbnRhaW5lci9yZHQtdGFiLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyZHQtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JkdC10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICAgICAgdXNlRXhpc3Rpbmc6IFJkdFRhYkNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW1JkdENvbnRhaW5lckRpcmVjdGl2ZV0sXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgUmR0SXNBY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwcml2YXRlIF9jb250RGlyITogUmR0Q29udGFpbmVyRGlyZWN0aXZlO1xuICBnZXQgY29udERpcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udERpcjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBzdGF0ZUlkKCkge1xuICAgIGlmICh0aGlzLl9zdGF0ZUlkID09PSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5sYWJlbCAhPT0gJycpIHtcbiAgICAgICAgdGhpcy5fc3RhdGVJZCA9IHRoaXMubGFiZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudGFiQ29udGFpbmVyPy50YWJzTGlzdD8udG9BcnJheSgpLmluZGV4T2YodGhpcyk7XG4gICAgICAgIHRoaXMuX3N0YXRlSWQgPSBgdGFiLSR7aW5kZXh9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSWQ7XG4gIH1cbiAgc2V0IHN0YXRlSWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3N0YXRlSWQgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9zdGF0ZUlkOiBzdHJpbmcgPSBudWxsIGFzIHVua25vd24gYXMgc3RyaW5nO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICB2aXNpYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBsYWJlbCE6IHN0cmluZztcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZm9ybUF1dG9mb2N1cyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgYnV0dG9uQ2xhc3M6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgaW1wbGljaXRDb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSByZWFkb25seSBleHBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCB0ZW1wbGF0ZVJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdENvbnRlbnQgPz8gdGhpcy5pbXBsaWNpdENvbnRlbnQ7XG4gIH1cblxuICByZWFkb25seSB0YWJDb250YWluZXIgPSBpbmplY3QoUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KTtcblxuICAvL2dldCBmb3JtcygpIHtcbiAgLy8gIHJldHVybiB0aGlzLmdldENoaWxkcmVuQnlDbGFzcyhSZHRCYXNlRm9ybUNvbXBvbmVudCk7XG4gIC8vfVxuXG4gIGdldCBjaGlsZENvbnRhaW5lcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udERpci5nZXRDaGlsZHJlbkJ5Q2xhc3MoUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIHJkdElzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnZpc2libGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy50YWJDb250YWluZXIuYWN0aXZlVGFiID09PSB0aGlzXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2NvbnREaXIgPSB0aGlzLmluamVjdG9yLmdldChSZHRDb250YWluZXJEaXJlY3RpdmUpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChcbiAgICAgICdsYWJlbCcgaW4gY2hhbmdlcyB8fFxuICAgICAgJ3ZhbHVlJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAndmlzaWJsZScgaW4gY2hhbmdlcyB8fFxuICAgICAgJ3N0YXRlSWQnIGluIGNoYW5nZXNcbiAgICApIHtcbiAgICAgIHRoaXMudGFiQ29udGFpbmVyLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc1RvcExldmVsKCkge1xuICAgIHJldHVybiB0aGlzLnRhYkNvbnRhaW5lci5pc1RvcExldmVsO1xuICB9XG5cbiAgZ2V0U3RhdGUoKTogUmR0VGFiU3RhdGUge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5zdGF0ZUlkLFxuICAgICAgY29udGFpbmVyU3RhdGVzOiB0aGlzLmNoaWxkQ29udGFpbmVycy5tYXAoKGNvbnQpID0+IGNvbnQuZ2V0U3RhdGUoKSksXG4gICAgfTtcbiAgfVxuXG4gIGFwcGx5U3RhdGUoc3RhdGU6IFJkdFRhYlN0YXRlKSB7XG4gICAgY29uc3Qgc3RhdGVzOiAoUmR0VGFiQ29udGFpbmVyU3RhdGUgfCBudWxsKVtdID0gWy4uLnN0YXRlLmNvbnRhaW5lclN0YXRlc107XG4gICAgY29uc3QgY29udHM6IChSZHRUYWJDb250YWluZXJDb21wb25lbnQgfCBudWxsKVtdID0gdGhpcy5jaGlsZENvbnRhaW5lcnM7XG4gICAgY29uc3QgbWluTGVuID0gTWF0aC5taW4oc3RhdGVzLmxlbmd0aCwgY29udHMubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWluTGVuOyBpKyspIHtcbiAgICAgIGlmIChjb250c1tpXSEuc3RhdGVJZCA9PT0gc3RhdGVzW2ldIS5pZCkge1xuICAgICAgICBjb250c1tpXSEuYXBwbHlTdGF0ZShzdGF0ZXNbaV0hKTtcbiAgICAgICAgY29udHNbaV0gPSBzdGF0ZXNbaV0gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBjb250cy5mb3JFYWNoKChjb250LCBjb250SSkgPT4ge1xuICAgICAgaWYgKCFjb250KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IHN0YXRlcy5sZW5ndGg7IG9mZnNldCsrKSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBjb250SSAtIG9mZnNldDtcbiAgICAgICAgY29uc3QgbmV4dCA9IGNvbnRJICsgb2Zmc2V0O1xuICAgICAgICBpZiAocHJldiA+IDAgJiYgc3RhdGVzW3ByZXZdPy5pZCA9PT0gY29udC5zdGF0ZUlkKSB7XG4gICAgICAgICAgY29udC5hcHBseVN0YXRlKHN0YXRlc1twcmV2XSEpO1xuICAgICAgICAgIHN0YXRlc1twcmV2XSA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKG5leHQgPCBzdGF0ZXMubGVuZ3RoICYmIHN0YXRlc1tuZXh0XT8uaWQgPT09IGNvbnQuc3RhdGVJZCkge1xuICAgICAgICAgIGNvbnQuYXBwbHlTdGF0ZShzdGF0ZXNbbmV4dF0hKTtcbiAgICAgICAgICBzdGF0ZXNbbmV4dF0gPSBudWxsO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZm9jdXNGb3JtKCkge1xuICAgIC8vVE9ETzogZ2V0UmR0QXV0b2ZvY3VzYWJsZSh0aGlzLmZvcm1zKT8uZm9jdXMoKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19","export class RdtTabsShortcutStrategy {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMtc2hvcnRjdXQtc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvdGFicy9zcmMvbGliL3N0cmF0ZWdpZXMvcmR0LXRhYnMtc2hvcnRjdXQtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQix1QkFBdUI7Q0FnQjVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2hvcnRjdXQgfSBmcm9tICdAbmdyZHQvc2hvcnRjdXRzJztcbmltcG9ydCB7IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JkdC10YWItY29udHJvbGxlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kge1xuICAvKipcbiAgICogR2V0cyBjYWxsZWQgb25Jbml0IGFuZCB3aGVuZXZlciB0YWJzIGFyZSBhZGRlZC9yZW1vdmVkIGZyb20gQ29udHJvbGxlci5cbiAgICogQHBhcmFtIGN0cmwgQ29udHJvbGxlciB1c2luZyB0aGlzIHN0cmF0ZWd5LlxuICAgKiBAcmV0dXJucyBMaXN0IG9mIHNob3J0Y3V0cyB0byByZWdpc3Rlci5cbiAgICovXG4gIGFic3RyYWN0IHVwZGF0ZVNob3J0Y3V0cyhjdHJsOiBSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlKTogUmR0U2hvcnRjdXRbXTtcbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIHdoZW5ldmVyIGhvdGtleXMgZGV0ZWN0cyBvbmUgb2YgdGhlIHJlZ2lzdGVyZWQgc2hvcnRjdXRzLlxuICAgKiBAcGFyYW0gc2hvcnRjdXQgUmVnaXN0ZXJlZCBzaG9ydGN1dC5cbiAgICogQHBhcmFtIGN0cmwgQ29udHJvbGxlciB1c2luZyB0aGlzIHN0cmF0ZWd5LlxuICAgKi9cbiAgYWJzdHJhY3Qgb25TaG9ydGN1dChcbiAgICBzaG9ydGN1dDogUmR0U2hvcnRjdXQsXG4gICAgY3RybDogUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZVxuICApOiB2b2lkO1xufVxuIl19","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabsShortcutStrategy } from './rdt-tabs-shortcut-strategy';\nconst TAB_BASE = 'alt';\nconst TAB_KEY_SETS = [\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\n ['+', 'ě', 'š', 'č', 'ř', 'ž', 'ý', 'á', 'í', 'é'],\n];\nconst NEXT_CONTAINER = RdtShortcut.create('alt', 's');\nconst PREV_CONTAINER = RdtShortcut.create('alt', 'w');\nconst LEVEL_UP = RdtShortcut.create('ctrl', 'alt', 'up');\nconst LEVEL_DOWN = RdtShortcut.create('ctrl', 'alt', 'down');\nconst NEXT_TAB = RdtShortcut.create('ctrl', 'alt', 'right');\nconst PREV_TAB = RdtShortcut.create('ctrl', 'alt', 'left');\nexport class AutoRdtTabsShortcutStrategy extends RdtTabsShortcutStrategy {\n updateShortcuts() {\n return AutoRdtTabsShortcutStrategy.shortcuts;\n }\n onShortcut(shortcut, ctrl) {\n const key = shortcut.lastKey;\n if (!key) {\n throw new Error('Key should not be undefined!');\n }\n const action = AutoRdtTabsShortcutStrategy.actions[key];\n if (!action) {\n throw new Error(`Unknown action for key ${key}`);\n }\n action(ctrl);\n }\n static generateActions() {\n const actions = {\n [LEVEL_UP.lastKey]: (ctrl) => ctrl.goLevelUp(),\n [LEVEL_DOWN.lastKey]: (ctrl) => ctrl.goLevelDown(),\n [NEXT_CONTAINER.lastKey]: (ctrl) => ctrl.goToNextContainer(),\n [PREV_CONTAINER.lastKey]: (ctrl) => ctrl.goToPrevContainer(),\n [NEXT_TAB.lastKey]: (ctrl) => ctrl.goToNextTab(),\n [PREV_TAB.lastKey]: (ctrl) => ctrl.goToPrevTab(),\n };\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((char, i) => {\n actions[char] = (ctrl) => ctrl.goToTabWithIndex(i);\n });\n });\n return actions;\n }\n static generateShortcuts() {\n const shortcuts = [\n LEVEL_UP,\n LEVEL_DOWN,\n NEXT_CONTAINER,\n PREV_CONTAINER,\n NEXT_TAB,\n PREV_TAB,\n ];\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((tabKey) => {\n shortcuts.push(RdtShortcut.create(TAB_BASE, tabKey));\n });\n });\n return shortcuts;\n }\n static shortcuts = AutoRdtTabsShortcutStrategy.generateShortcuts();\n static actions = AutoRdtTabsShortcutStrategy.generateActions();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZHQtdGFicy1zaG9ydGN1dC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC90YWJzL3NyYy9saWIvc3RyYXRlZ2llcy9hdXRvLXJkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDdkIsTUFBTSxZQUFZLEdBQUc7SUFDbkIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDbEQsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7Q0FDbkQsQ0FBQztBQUNGLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDN0QsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUs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QUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdFNob3J0Y3V0IH0gZnJvbSAnQG5ncmR0L3Nob3J0Y3V0cyc7XG5pbXBvcnQgeyBSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZHQtdGFiLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5IH0gZnJvbSAnLi9yZHQtdGFicy1zaG9ydGN1dC1zdHJhdGVneSc7XG5cbmNvbnN0IFRBQl9CQVNFID0gJ2FsdCc7XG5jb25zdCBUQUJfS0VZX1NFVFMgPSBbXG4gIFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLCAnMCddLFxuICBbJysnLCAnxJsnLCAnxaEnLCAnxI0nLCAnxZknLCAnxb4nLCAnw70nLCAnw6EnLCAnw60nLCAnw6knXSxcbl07XG5jb25zdCBORVhUX0NPTlRBSU5FUiA9IFJkdFNob3J0Y3V0LmNyZWF0ZSgnYWx0JywgJ3MnKTtcbmNvbnN0IFBSRVZfQ09OVEFJTkVSID0gUmR0U2hvcnRjdXQuY3JlYXRlKCdhbHQnLCAndycpO1xuY29uc3QgTEVWRUxfVVAgPSBSZHRTaG9ydGN1dC5jcmVhdGUoJ2N0cmwnLCAnYWx0JywgJ3VwJyk7XG5jb25zdCBMRVZFTF9ET1dOID0gUmR0U2hvcnRjdXQuY3JlYXRlKCdjdHJsJywgJ2FsdCcsICdkb3duJyk7XG5jb25zdCBORVhUX1RBQiA9IFJkdFNob3J0Y3V0LmNyZWF0ZSgnY3RybCcsICdhbHQnLCAncmlnaHQnKTtcbmNvbnN0IFBSRVZfVEFCID0gUmR0U2hvcnRjdXQuY3JlYXRlKCdjdHJsJywgJ2FsdCcsICdsZWZ0Jyk7XG5cbmludGVyZmFjZSBSZHRTaG9ydGN1dEFjdGlvbnMge1xuICBba2V5OiBzdHJpbmddOiAoY3RybDogUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9SZHRUYWJzU2hvcnRjdXRTdHJhdGVneSBleHRlbmRzIFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5IHtcbiAgb3ZlcnJpZGUgdXBkYXRlU2hvcnRjdXRzKCk6IFJkdFNob3J0Y3V0W10ge1xuICAgIHJldHVybiBBdXRvUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kuc2hvcnRjdXRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25TaG9ydGN1dChcbiAgICBzaG9ydGN1dDogUmR0U2hvcnRjdXQsXG4gICAgY3RybDogUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSBzaG9ydGN1dC5sYXN0S2V5O1xuICAgIGlmICgha2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0tleSBzaG91bGQgbm90IGJlIHVuZGVmaW5lZCEnKTtcbiAgICB9XG4gICAgY29uc3QgYWN0aW9uID0gQXV0b1JkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5LmFjdGlvbnNba2V5XTtcbiAgICBpZiAoIWFjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFjdGlvbiBmb3Iga2V5ICR7a2V5fWApO1xuICAgIH1cbiAgICBhY3Rpb24oY3RybCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZW5lcmF0ZUFjdGlvbnMoKSB7XG4gICAgY29uc3QgYWN0aW9uczogUmR0U2hvcnRjdXRBY3Rpb25zID0ge1xuICAgICAgW0xFVkVMX1VQLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb0xldmVsVXAoKSxcbiAgICAgIFtMRVZFTF9ET1dOLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb0xldmVsRG93bigpLFxuICAgICAgW05FWFRfQ09OVEFJTkVSLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvTmV4dENvbnRhaW5lcigpLFxuICAgICAgW1BSRVZfQ09OVEFJTkVSLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvUHJldkNvbnRhaW5lcigpLFxuICAgICAgW05FWFRfVEFCLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvTmV4dFRhYigpLFxuICAgICAgW1BSRVZfVEFCLmxhc3RLZXldOiAoY3RybCkgPT4gY3RybC5nb1RvUHJldlRhYigpLFxuICAgIH07XG5cbiAgICBUQUJfS0VZX1NFVFMuZm9yRWFjaCgoc2V0KSA9PiB7XG4gICAgICBzZXQuZm9yRWFjaCgoY2hhciwgaSkgPT4ge1xuICAgICAgICBhY3Rpb25zW2NoYXJdID0gKGN0cmwpID0+IGN0cmwuZ29Ub1RhYldpdGhJbmRleChpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBhY3Rpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2VuZXJhdGVTaG9ydGN1dHMoKSB7XG4gICAgY29uc3Qgc2hvcnRjdXRzOiBSZHRTaG9ydGN1dFtdID0gW1xuICAgICAgTEVWRUxfVVAsXG4gICAgICBMRVZFTF9ET1dOLFxuICAgICAgTkVYVF9DT05UQUlORVIsXG4gICAgICBQUkVWX0NPTlRBSU5FUixcbiAgICAgIE5FWFRfVEFCLFxuICAgICAgUFJFVl9UQUIsXG4gICAgXTtcblxuICAgIFRBQl9LRVlfU0VUUy5mb3JFYWNoKChzZXQpID0+IHtcbiAgICAgIHNldC5mb3JFYWNoKCh0YWJLZXkpID0+IHtcbiAgICAgICAgc2hvcnRjdXRzLnB1c2goUmR0U2hvcnRjdXQuY3JlYXRlKFRBQl9CQVNFLCB0YWJLZXkpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNob3J0Y3V0cztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNob3J0Y3V0czogUmR0U2hvcnRjdXRbXSA9XG4gICAgQXV0b1JkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5LmdlbmVyYXRlU2hvcnRjdXRzKCk7XG4gIHByaXZhdGUgc3RhdGljIGFjdGlvbnMgPSBBdXRvUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kuZ2VuZXJhdGVBY3Rpb25zKCk7XG59XG4iXX0=","import { ContentChildren, DestroyRef, Directive, inject, Injector, Input, QueryList, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { canTransition$, RDT_GUARDED_COMPONENT, RdtContainerDirective, } from '@ngrdt/core';\nimport { RdtShortcutService } from '@ngrdt/shortcuts';\nimport { firstValueFrom, Subscription, takeWhile } from 'rxjs';\nimport { RdtTabContainerComponent } from '../components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from '../components/tab/rdt-tab.component';\nimport { AutoRdtTabsShortcutStrategy } from '../strategies/auto-rdt-tabs-shortcut-strategy';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrdt/core\";\nexport class RdtTabControllerDirective {\n destroyRef = inject(DestroyRef);\n injector = inject(Injector);\n shortcutService = inject(RdtShortcutService);\n shortcutSub = new Subscription();\n // String value lets you use the directive without param.\n set rdtTabController(value) {\n if (value && typeof value !== 'string') {\n this._strategy = value;\n this.updateShortcuts();\n }\n }\n get tabContainers() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter((ch) => ch instanceof RdtTabContainerComponent);\n }\n get tabs() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter((ch) => ch instanceof RdtTabComponent);\n }\n childControllers;\n get strategy() {\n return this._strategy;\n }\n _strategy = new AutoRdtTabsShortcutStrategy();\n _lastActiveTabContainer = null;\n _contentWasInit = false;\n get disabled() {\n return this._disabled;\n }\n _disabled = false;\n get shortcuts() {\n return this._shortcuts;\n }\n set shortcuts(value) {\n const oldSet = new Set(this._shortcuts.map((s) => s.hotkeysValue));\n this._shortcuts = value;\n if (oldSet.size !== value.length ||\n value.some((s) => !oldSet.has(s.hotkeysValue))) {\n this.bindAll();\n }\n }\n _shortcuts = [];\n get activeContainer() {\n return this._lastActiveTabContainer?.container;\n }\n containerDirective;\n ngOnInit() {\n this.containerDirective = this.injector.get(RdtContainerDirective, undefined, {\n self: true,\n });\n this.updateShortcuts();\n }\n ngAfterContentInit() {\n this.setDefaultActive();\n this.disableSelfWhenChildCtrlExists();\n this._contentWasInit = true;\n if (this.tabs.length > 0) {\n this.onTabChanges();\n }\n if (this.tabContainers.length > 0) {\n this.onTabContainerChanges();\n }\n }\n ngOnDestroy() {\n this.unbindAll();\n this._shortcuts.length = 0;\n }\n getTabContainerIndex(cont) {\n const level = this.getSameLevelContainers(cont);\n return level.indexOf(cont);\n }\n /**\n * Activates first parent container of current container\n * that is not disabled and has any non disabled tabs.\n */\n goLevelUp() {\n let cont = this.activeContainer;\n while (cont) {\n cont = cont.parentTab?.tabContainer;\n if (cont && !cont.disabled && cont.hasNonDisabledTabs) {\n this.activateTabContainer(cont);\n return true;\n }\n }\n return false;\n }\n /**\n * Activates first container under current tab which\n * is not disabled and has any non disabled tabs.\n */\n goLevelDown() {\n const cont = this.activeContainer;\n if (!cont || cont.disabled) {\n return false;\n }\n let tab = cont.tabsList.find((t) => t.stateId === cont.value);\n if (!tab || tab.disabled) {\n tab = cont.tabsList.find((t) => !t.disabled);\n }\n if (!tab) {\n return false;\n }\n const targetCont = tab.childContainers.find((c) => !c.disabled && c.hasNonDisabledTabs);\n if (targetCont) {\n this.activateTabContainer(targetCont);\n return true;\n }\n return false;\n }\n /**\n * Activates next container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToNextContainer() {\n return this.goToAdjacentContainer(1);\n }\n /**\n * Activates previous container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToPrevContainer() {\n return this.goToAdjacentContainer(-1);\n }\n /**\n * Activates tab within active container at the index of argument.\n */\n goToTabWithIndex(index) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const tab = cont.tabsList.get(index);\n if (!tab) {\n return false;\n }\n this.activateTab(tab);\n return true;\n }\n /**\n * Activates next tab within active container. Is cyclic.\n */\n goToNextTab() {\n return this.goToAdjacentTab(1);\n }\n /**\n * Activates previous tab within active container. Is cyclic.\n */\n goToPrevTab() {\n return this.goToAdjacentTab(-1);\n }\n goToAdjacentContainer(dir) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const level = this.getSameLevelContainers(cont);\n if (!level) {\n return false;\n }\n const currentIndex = level.indexOf(cont);\n if (currentIndex < 0) {\n throw new Error('Current container is not within its own level?');\n }\n for (let i = (currentIndex + dir + level.length) % level.length; i !== currentIndex; i = (i + dir + level.length) % level.length) {\n const next = level[i];\n if (!next.disabled && next.hasNonDisabledTabs) {\n this.activateTabContainer(next);\n return true;\n }\n }\n return false;\n }\n goToAdjacentTab(dir) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const tabs = cont.tabsList.toArray();\n const currentIndex = tabs.findIndex((tab) => tab.stateId === cont.value);\n if (currentIndex < 0) {\n throw new Error('Current tab is not found in its container?!');\n }\n for (let i = (currentIndex + dir + tabs.length) % tabs.length; i !== currentIndex; i = (i + dir + tabs.length) % tabs.length) {\n const next = tabs[i];\n if (!next.disabled) {\n this.activateTab(next);\n return true;\n }\n }\n return false;\n }\n getSameLevelContainers(cont) {\n if (cont.parentTab) {\n return cont.parentTab.childContainers;\n }\n else {\n return this.tabContainers.filter((cont) => cont.isTopLevel);\n }\n }\n getTabByValue(value) {\n for (const container of this.tabContainers) {\n const tab = container.tabsList.find((ch) => ch.stateId === value);\n if (tab) {\n return tab;\n }\n }\n return null;\n }\n activateTabContainer(tabs, scrollIntoView = true) {\n if (this._lastActiveTabContainer) {\n this._lastActiveTabContainer.container.active = false;\n }\n tabs.active = true;\n if (scrollIntoView) {\n tabs.scrollIntoView();\n }\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp: null,\n };\n }\n activateTabContainerFromClick(tabs, timestamp) {\n if (this._lastActiveTabContainer) {\n if (this._lastActiveTabContainer.timestamp !== null &&\n this._lastActiveTabContainer.timestamp >= timestamp) {\n return;\n }\n this._lastActiveTabContainer.container.active = false;\n }\n tabs.active = true;\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp,\n };\n }\n async activateTab(tab) {\n if (!this.canActivateTab(tab)) {\n console.warn('Trying to activate disabled tab.');\n return;\n }\n const formsCheck = await this.canActivateTabForms(tab);\n if (!formsCheck) {\n console.warn('Trying to activate tab while current tab has unsaved forms');\n return;\n }\n let current = tab;\n do {\n const container = current.tabContainer;\n container.value = current.stateId;\n current = container.parentTab;\n } while (current !== null);\n }\n canActivateTab(tab) {\n let current = tab;\n do {\n const container = current.tabContainer;\n if (current.disabled || container.disabled) {\n return false;\n }\n current = container.parentTab;\n } while (current !== null);\n return true;\n }\n async canActivateTabForms(tab) {\n const container = tab.tabContainer;\n return firstValueFrom(canTransition$(container.activeTab?.contDir, tab?.contDir));\n }\n onTabChanges() {\n this.updateShortcuts();\n }\n onTabContainerChanges() {\n this.setDefaultActiveWhenAvailable();\n }\n disableSelfWhenChildCtrlExists() {\n this.childControllers.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val) => {\n this._disabled = val.length > 0;\n if (this._disabled) {\n this.unbindAll();\n }\n else {\n this.bindAll();\n }\n });\n }\n setDefaultActive() {\n if (this.tabContainers) {\n const defaultCont = this.tabContainers.find(this.canContainerBeDefault);\n if (defaultCont) {\n this.activateTabContainer(defaultCont, false);\n }\n }\n }\n setDefaultActiveWhenAvailable() {\n const active = this.activeContainer;\n if (active && this.tabContainers.some((cont) => cont === active)) {\n return;\n }\n const newDefault = this.tabContainers.find(this.canContainerBeDefault);\n if (newDefault) {\n this.activateTabContainer(newDefault, false);\n }\n }\n canContainerBeDefault(c) {\n return c.isTopLevel && !c.disabled && c.hasNonDisabledTabs;\n }\n updateShortcuts() {\n this.shortcuts = this._strategy.updateShortcuts(this);\n }\n bindAll() {\n this.shortcutSub.unsubscribe();\n if (!this._disabled) {\n this.shortcutSub = this.shortcutService\n .listen(this._shortcuts)\n .pipe(takeWhile(() => !this._disabled))\n .subscribe((event) => {\n this._strategy.onShortcut(event.shortcut, this);\n });\n }\n }\n unbindAll() {\n this.shortcutSub.unsubscribe();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtTabControllerDirective, isStandalone: false, selector: \"[rdtTabController]\", inputs: { rdtTabController: \"rdtTabController\" }, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabControllerDirective,\n },\n ], queries: [{ propertyName: \"childControllers\", predicate: RdtTabControllerDirective, descendants: true }], hostDirectives: [{ directive: i1.RdtContainerDirective }], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabControllerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtTabController]',\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabControllerDirective,\n },\n ],\n hostDirectives: [RdtContainerDirective],\n standalone: false,\n }]\n }], propDecorators: { rdtTabController: [{\n type: Input\n }], childControllers: [{\n type: ContentChildren,\n args: [RdtTabControllerDirective, { descendants: true }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYi1jb250cm9sbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC90YWJzL3NyYy9saWIvZGlyZWN0aXZlcy9yZHQtdGFiLWNvbnRyb2xsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBZSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0NBQStDLENBQUM7OztBQWM1RixNQUFNLE9BQU8seUJBQXlCO0lBR25CLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixlQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFekMseURBQXlEO0lBQ3pELElBQ0ksZ0JBQWdCLENBQUMsS0FBOEM7UUFDakUsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtB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SyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7dUdBbGFVLHlCQUF5QjsyRkFBekIseUJBQXlCLG9IQVR6QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSx5QkFBeUI7YUFDdkM7U0FDRiwyREFvQ2dCLHlCQUF5Qjs7MkZBaEMvQix5QkFBeUI7a0JBWHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsMkJBQTJCO3lCQUN2QztxQkFDRjtvQkFDRCxjQUFjLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDdkMsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzhCQVdLLGdCQUFnQjtzQkFEbkIsS0FBSztnQkF3QkksZ0JBQWdCO3NCQUR6QixlQUFlO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBjYW5UcmFuc2l0aW9uJCxcbiAgUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICBSZHRDb250YWluZXJEaXJlY3RpdmUsXG59IGZyb20gJ0BuZ3JkdC9jb3JlJztcbmltcG9ydCB7IFJkdFNob3J0Y3V0LCBSZHRTaG9ydGN1dFNlcnZpY2UgfSBmcm9tICdAbmdyZHQvc2hvcnRjdXRzJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBTdWJzY3JpcHRpb24sIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWItY29udGFpbmVyL3JkdC10YWItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZHRUYWJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3RhYi9yZHQtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL2F1dG8tcmR0LXRhYnMtc2hvcnRjdXQtc3RyYXRlZ3knO1xuaW1wb3J0IHsgUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL3JkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JkdFRhYkNvbnRyb2xsZXJdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUkRUX0dVQVJERURfQ09NUE9ORU5ULFxuICAgICAgdXNlRXhpc3Rpbmc6IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtSZHRDb250YWluZXJEaXJlY3RpdmVdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvcnRjdXRTZXJ2aWNlID0gaW5qZWN0KFJkdFNob3J0Y3V0U2VydmljZSk7XG4gIHByaXZhdGUgc2hvcnRjdXRTdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLy8gU3RyaW5nIHZhbHVlIGxldHMgeW91IHVzZSB0aGUgZGlyZWN0aXZlIHdpdGhvdXQgcGFyYW0uXG4gIEBJbnB1dCgpXG4gIHNldCByZHRUYWJDb250cm9sbGVyKHZhbHVlOiBSZHRUYWJzU2hvcnRjdXRTdHJhdGVneSB8IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fc3RyYXRlZ3kgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlU2hvcnRjdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0YWJDb250YWluZXJzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lckRpcmVjdGl2ZVxuICAgICAgLmdldENoaWxkcmVuUmVjdXJzaXZlKClcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjaCkgPT4gY2ggaW5zdGFuY2VvZiBSZHRUYWJDb250YWluZXJDb21wb25lbnRcbiAgICAgICkgYXMgdW5rbm93biBhcyBSZHRUYWJDb250YWluZXJDb21wb25lbnRbXTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHRhYnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyRGlyZWN0aXZlXG4gICAgICAuZ2V0Q2hpbGRyZW5SZWN1cnNpdmUoKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGNoKSA9PiBjaCBpbnN0YW5jZW9mIFJkdFRhYkNvbXBvbmVudFxuICAgICAgKSBhcyB1bmtub3duIGFzIFJkdFRhYkNvbXBvbmVudFtdO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBjaGlsZENvbnRyb2xsZXJzITogUXVlcnlMaXN0PFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmU+O1xuXG4gIGdldCBzdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RyYXRlZ3k7XG4gIH1cbiAgcHJpdmF0ZSBfc3RyYXRlZ3k6IFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5ID1cbiAgICBuZXcgQXV0b1JkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5KCk7XG5cbiAgcHJpdmF0ZSBfbGFzdEFjdGl2ZVRhYkNvbnRhaW5lcjoge1xuICAgIHRpbWVzdGFtcDogbnVtYmVyIHwgbnVsbDtcbiAgICBjb250YWluZXI6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudDtcbiAgfSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2NvbnRlbnRXYXNJbml0ID0gZmFsc2U7XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGdldCBzaG9ydGN1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3J0Y3V0cztcbiAgfVxuICBzZXQgc2hvcnRjdXRzKHZhbHVlOiBSZHRTaG9ydGN1dFtdKSB7XG4gICAgY29uc3Qgb2xkU2V0ID0gbmV3IFNldDxzdHJpbmc+KHRoaXMuX3Nob3J0Y3V0cy5tYXAoKHMpID0+IHMuaG90a2V5c1ZhbHVlKSk7XG4gICAgdGhpcy5fc2hvcnRjdXRzID0gdmFsdWU7XG5cbiAgICBpZiAoXG4gICAgICBvbGRTZXQuc2l6ZSAhPT0gdmFsdWUubGVuZ3RoIHx8XG4gICAgICB2YWx1ZS5zb21lKChzKSA9PiAhb2xkU2V0LmhhcyhzLmhvdGtleXNWYWx1ZSkpXG4gICAgKSB7XG4gICAgICB0aGlzLmJpbmRBbGwoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc2hvcnRjdXRzOiBSZHRTaG9ydGN1dFtdID0gW107XG5cbiAgZ2V0IGFjdGl2ZUNvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFzdEFjdGl2ZVRhYkNvbnRhaW5lcj8uY29udGFpbmVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnRhaW5lckRpcmVjdGl2ZSE6IFJkdENvbnRhaW5lckRpcmVjdGl2ZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbnRhaW5lckRpcmVjdGl2ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFxuICAgICAgUmR0Q29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBzZWxmOiB0cnVlLFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy51cGRhdGVTaG9ydGN1dHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNldERlZmF1bHRBY3RpdmUoKTtcbiAgICB0aGlzLmRpc2FibGVTZWxmV2hlbkNoaWxkQ3RybEV4aXN0cygpO1xuICAgIHRoaXMuX2NvbnRlbnRXYXNJbml0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy50YWJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25UYWJDaGFuZ2VzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRhYkNvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vblRhYkNvbnRhaW5lckNoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEFsbCgpO1xuICAgIHRoaXMuX3Nob3J0Y3V0cy5sZW5ndGggPSAwO1xuICB9XG5cbiAgZ2V0VGFiQ29udGFpbmVySW5kZXgoY29udDogUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBsZXZlbCA9IHRoaXMuZ2V0U2FtZUxldmVsQ29udGFpbmVycyhjb250KTtcbiAgICByZXR1cm4gbGV2ZWwuaW5kZXhPZihjb250KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgZmlyc3QgcGFyZW50IGNvbnRhaW5lciBvZiBjdXJyZW50IGNvbnRhaW5lclxuICAgKiB0aGF0IGlzIG5vdCBkaXNhYmxlZCBhbmQgaGFzIGFueSBub24gZGlzYWJsZWQgdGFicy5cbiAgICovXG4gIGdvTGV2ZWxVcCgpOiBib29sZWFuIHtcbiAgICBsZXQgY29udCA9IHRoaXMuYWN0aXZlQ29udGFpbmVyO1xuICAgIHdoaWxlIChjb250KSB7XG4gICAgICBjb250ID0gY29udC5wYXJlbnRUYWI/LnRhYkNvbnRhaW5lcjtcbiAgICAgIGlmIChjb250ICYmICFjb250LmRpc2FibGVkICYmIGNvbnQuaGFzTm9uRGlzYWJsZWRUYWJzKSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUYWJDb250YWluZXIoY29udCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIGZpcnN0IGNvbnRhaW5lciB1bmRlciBjdXJyZW50IHRhYiB3aGljaFxuICAgKiBpcyBub3QgZGlzYWJsZWQgYW5kIGhhcyBhbnkgbm9uIGRpc2FibGVkIHRhYnMuXG4gICAqL1xuICBnb0xldmVsRG93bigpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250ID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKCFjb250IHx8IGNvbnQuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHRhYiA9IGNvbnQudGFic0xpc3QuZmluZCgodCkgPT4gdC5zdGF0ZUlkID09PSBjb250LnZhbHVlKTtcbiAgICBpZiAoIXRhYiB8fCB0YWIuZGlzYWJsZWQpIHtcbiAgICAgIHRhYiA9IGNvbnQudGFic0xpc3QuZmluZCgodCkgPT4gIXQuZGlzYWJsZWQpO1xuICAgIH1cbiAgICBpZiAoIXRhYikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXRDb250ID0gdGFiLmNoaWxkQ29udGFpbmVycy5maW5kKFxuICAgICAgKGMpID0+ICFjLmRpc2FibGVkICYmIGMuaGFzTm9uRGlzYWJsZWRUYWJzXG4gICAgKTtcbiAgICBpZiAodGFyZ2V0Q29udCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZVRhYkNvbnRhaW5lcih0YXJnZXRDb250KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIG5leHQgY29udGFpbmVyIG9uIGN1cnJlbnQgbGV2ZWxcbiAgICogKHVuZGVyIHBhcmVudCBjb250YWluZXIgb2YgY3VycmVudGx5IGFjdGl2ZSBjb250YWluZXIpLlxuICAgKiBJcyBjeWNsaWMuXG4gICAqL1xuICBnb1RvTmV4dENvbnRhaW5lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nb1RvQWRqYWNlbnRDb250YWluZXIoMSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHByZXZpb3VzIGNvbnRhaW5lciBvbiBjdXJyZW50IGxldmVsXG4gICAqICh1bmRlciBwYXJlbnQgY29udGFpbmVyIG9mIGN1cnJlbnRseSBhY3RpdmUgY29udGFpbmVyKS5cbiAgICogSXMgY3ljbGljLlxuICAgKi9cbiAgZ29Ub1ByZXZDb250YWluZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ29Ub0FkamFjZW50Q29udGFpbmVyKC0xKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGFiIHdpdGhpbiBhY3RpdmUgY29udGFpbmVyIGF0IHRoZSBpbmRleCBvZiBhcmd1bWVudC5cbiAgICovXG4gIGdvVG9UYWJXaXRoSW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnQgPSB0aGlzLmFjdGl2ZUNvbnRhaW5lcjtcbiAgICBpZiAoIWNvbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gY29udC50YWJzTGlzdC5nZXQoaW5kZXgpO1xuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZhdGVUYWIodGFiKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgbmV4dCB0YWIgd2l0aGluIGFjdGl2ZSBjb250YWluZXIuIElzIGN5Y2xpYy5cbiAgICovXG4gIGdvVG9OZXh0VGFiKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdvVG9BZGphY2VudFRhYigxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgcHJldmlvdXMgdGFiIHdpdGhpbiBhY3RpdmUgY29udGFpbmVyLiBJcyBjeWNsaWMuXG4gICAqL1xuICBnb1RvUHJldlRhYigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nb1RvQWRqYWNlbnRUYWIoLTEpO1xuICB9XG5cbiAgcHJpdmF0ZSBnb1RvQWRqYWNlbnRDb250YWluZXIoZGlyOiAtMSB8IDEpIHtcbiAgICBjb25zdCBjb250ID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKCFjb250KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGV2ZWwgPSB0aGlzLmdldFNhbWVMZXZlbENvbnRhaW5lcnMoY29udCk7XG4gICAgaWYgKCFsZXZlbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGxldmVsLmluZGV4T2YoY29udCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3VycmVudCBjb250YWluZXIgaXMgbm90IHdpdGhpbiBpdHMgb3duIGxldmVsPycpO1xuICAgIH1cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSAoY3VycmVudEluZGV4ICsgZGlyICsgbGV2ZWwubGVuZ3RoKSAlIGxldmVsLmxlbmd0aDtcbiAgICAgIGkgIT09IGN1cnJlbnRJbmRleDtcbiAgICAgIGkgPSAoaSArIGRpciArIGxldmVsLmxlbmd0aCkgJSBsZXZlbC5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNvbnN0IG5leHQgPSBsZXZlbFtpXTtcbiAgICAgIGlmICghbmV4dC5kaXNhYmxlZCAmJiBuZXh0Lmhhc05vbkRpc2FibGVkVGFicykge1xuICAgICAgICB0aGlzLmFjdGl2YXRlVGFiQ29udGFpbmVyKG5leHQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnb1RvQWRqYWNlbnRUYWIoZGlyOiAtMSB8IDEpIHtcbiAgICBjb25zdCBjb250ID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKCFjb250KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdGFicyA9IGNvbnQudGFic0xpc3QudG9BcnJheSgpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRhYnMuZmluZEluZGV4KCh0YWIpID0+IHRhYi5zdGF0ZUlkID09PSBjb250LnZhbHVlKTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDdXJyZW50IHRhYiBpcyBub3QgZm91bmQgaW4gaXRzIGNvbnRhaW5lcj8hJyk7XG4gICAgfVxuXG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gKGN1cnJlbnRJbmRleCArIGRpciArIHRhYnMubGVuZ3RoKSAlIHRhYnMubGVuZ3RoO1xuICAgICAgaSAhPT0gY3VycmVudEluZGV4O1xuICAgICAgaSA9IChpICsgZGlyICsgdGFicy5sZW5ndGgpICUgdGFicy5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNvbnN0IG5leHQgPSB0YWJzW2ldO1xuICAgICAgaWYgKCFuZXh0LmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUYWIobmV4dCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldFNhbWVMZXZlbENvbnRhaW5lcnMoY29udDogUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50KSB7XG4gICAgaWYgKGNvbnQucGFyZW50VGFiKSB7XG4gICAgICByZXR1cm4gY29udC5wYXJlbnRUYWIuY2hpbGRDb250YWluZXJzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJDb250YWluZXJzLmZpbHRlcigoY29udCkgPT4gY29udC5pc1RvcExldmVsKTtcbiAgICB9XG4gIH1cblxuICBnZXRUYWJCeVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IGNvbnRhaW5lciBvZiB0aGlzLnRhYkNvbnRhaW5lcnMpIHtcbiAgICAgIGNvbnN0IHRhYiA9IGNvbnRhaW5lci50YWJzTGlzdC5maW5kKChjaCkgPT4gY2guc3RhdGVJZCA9PT0gdmFsdWUpO1xuICAgICAgaWYgKHRhYikge1xuICAgICAgICByZXR1cm4gdGFiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFjdGl2YXRlVGFiQ29udGFpbmVyKHRhYnM6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCwgc2Nyb2xsSW50b1ZpZXcgPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVUYWJDb250YWluZXIpIHtcbiAgICAgIHRoaXMuX2xhc3RBY3RpdmVUYWJDb250YWluZXIuY29udGFpbmVyLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRhYnMuYWN0aXZlID0gdHJ1ZTtcbiAgICBpZiAoc2Nyb2xsSW50b1ZpZXcpIHtcbiAgICAgIHRhYnMuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9sYXN0QWN0aXZlVGFiQ29udGFpbmVyID0ge1xuICAgICAgY29udGFpbmVyOiB0YWJzLFxuICAgICAgdGltZXN0YW1wOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBhY3RpdmF0ZVRhYkNvbnRhaW5lckZyb21DbGljayhcbiAgICB0YWJzOiBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXJcbiAgKSB7XG4gICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVUYWJDb250YWluZXIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZVRhYkNvbnRhaW5lci50aW1lc3RhbXAgIT09IG51bGwgJiZcbiAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZVRhYkNvbnRhaW5lci50aW1lc3RhbXAgPj0gdGltZXN0YW1wXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9sYXN0QWN0aXZlVGFiQ29udGFpbmVyLmNvbnRhaW5lci5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0YWJzLmFjdGl2ZSA9IHRydWU7XG5cbiAgICB0aGlzLl9sYXN0QWN0aXZlVGFiQ29udGFpbmVyID0ge1xuICAgICAgY29udGFpbmVyOiB0YWJzLFxuICAgICAgdGltZXN0YW1wLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBhY3RpdmF0ZVRhYih0YWI6IFJkdFRhYkNvbXBvbmVudCkge1xuICAgIGlmICghdGhpcy5jYW5BY3RpdmF0ZVRhYih0YWIpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RyeWluZyB0byBhY3RpdmF0ZSBkaXNhYmxlZCB0YWIuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybXNDaGVjayA9IGF3YWl0IHRoaXMuY2FuQWN0aXZhdGVUYWJGb3Jtcyh0YWIpO1xuICAgIGlmICghZm9ybXNDaGVjaykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVHJ5aW5nIHRvIGFjdGl2YXRlIHRhYiB3aGlsZSBjdXJyZW50IHRhYiBoYXMgdW5zYXZlZCBmb3JtcydcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGN1cnJlbnQ6IFJkdFRhYkNvbXBvbmVudCB8IG51bGwgPSB0YWI7XG5cbiAgICBkbyB7XG4gICAgICBjb25zdCBjb250YWluZXI6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCA9IGN1cnJlbnQhLnRhYkNvbnRhaW5lcjtcbiAgICAgIGNvbnRhaW5lci52YWx1ZSA9IGN1cnJlbnQhLnN0YXRlSWQ7XG4gICAgICBjdXJyZW50ID0gY29udGFpbmVyLnBhcmVudFRhYjtcbiAgICB9IHdoaWxlIChjdXJyZW50ICE9PSBudWxsKTtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlVGFiKHRhYjogUmR0VGFiQ29tcG9uZW50KSB7XG4gICAgbGV0IGN1cnJlbnQ6IFJkdFRhYkNvbXBvbmVudCB8IG51bGwgPSB0YWI7XG5cbiAgICBkbyB7XG4gICAgICBjb25zdCBjb250YWluZXI6IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCA9IGN1cnJlbnQudGFiQ29udGFpbmVyO1xuICAgICAgaWYgKGN1cnJlbnQuZGlzYWJsZWQgfHwgY29udGFpbmVyLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnQgPSBjb250YWluZXIucGFyZW50VGFiO1xuICAgIH0gd2hpbGUgKGN1cnJlbnQgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBjYW5BY3RpdmF0ZVRhYkZvcm1zKHRhYjogUmR0VGFiQ29tcG9uZW50KSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGFiLnRhYkNvbnRhaW5lcjtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICBjYW5UcmFuc2l0aW9uJChjb250YWluZXIuYWN0aXZlVGFiPy5jb250RGlyLCB0YWI/LmNvbnREaXIpXG4gICAgKTtcbiAgfVxuXG4gIG9uVGFiQ2hhbmdlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVNob3J0Y3V0cygpO1xuICB9XG5cbiAgb25UYWJDb250YWluZXJDaGFuZ2VzKCkge1xuICAgIHRoaXMuc2V0RGVmYXVsdEFjdGl2ZVdoZW5BdmFpbGFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZVNlbGZXaGVuQ2hpbGRDdHJsRXhpc3RzKCkge1xuICAgIHRoaXMuY2hpbGRDb250cm9sbGVycy5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbDogUXVlcnlMaXN0PFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmU+KSA9PiB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy51bmJpbmRBbGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmJpbmRBbGwoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRBY3RpdmUoKSB7XG4gICAgaWYgKHRoaXMudGFiQ29udGFpbmVycykge1xuICAgICAgY29uc3QgZGVmYXVsdENvbnQgPSB0aGlzLnRhYkNvbnRhaW5lcnMuZmluZCh0aGlzLmNhbkNvbnRhaW5lckJlRGVmYXVsdCk7XG4gICAgICBpZiAoZGVmYXVsdENvbnQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVRhYkNvbnRhaW5lcihkZWZhdWx0Q29udCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdEFjdGl2ZVdoZW5BdmFpbGFibGUoKSB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmVDb250YWluZXI7XG4gICAgaWYgKGFjdGl2ZSAmJiB0aGlzLnRhYkNvbnRhaW5lcnMuc29tZSgoY29udCkgPT4gY29udCA9PT0gYWN0aXZlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdEZWZhdWx0ID0gdGhpcy50YWJDb250YWluZXJzLmZpbmQodGhpcy5jYW5Db250YWluZXJCZURlZmF1bHQpO1xuICAgIGlmIChuZXdEZWZhdWx0KSB7XG4gICAgICB0aGlzLmFjdGl2YXRlVGFiQ29udGFpbmVyKG5ld0RlZmF1bHQsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbkNvbnRhaW5lckJlRGVmYXVsdChjOiBSZHRUYWJDb250YWluZXJDb21wb25lbnQpIHtcbiAgICByZXR1cm4gYy5pc1RvcExldmVsICYmICFjLmRpc2FibGVkICYmIGMuaGFzTm9uRGlzYWJsZWRUYWJzO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTaG9ydGN1dHMoKSB7XG4gICAgdGhpcy5zaG9ydGN1dHMgPSB0aGlzLl9zdHJhdGVneS51cGRhdGVTaG9ydGN1dHModGhpcyk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRBbGwoKSB7XG4gICAgdGhpcy5zaG9ydGN1dFN1Yi51bnN1YnNjcmliZSgpO1xuICAgIGlmICghdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2hvcnRjdXRTdWIgPSB0aGlzLnNob3J0Y3V0U2VydmljZVxuICAgICAgICAubGlzdGVuKHRoaXMuX3Nob3J0Y3V0cylcbiAgICAgICAgLnBpcGUodGFrZVdoaWxlKCgpID0+ICF0aGlzLl9kaXNhYmxlZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RyYXRlZ3kub25TaG9ydGN1dChldmVudC5zaG9ydGN1dCwgdGhpcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kQWxsKCkge1xuICAgIHRoaXMuc2hvcnRjdXRTdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, EventEmitter, HostBinding, HostListener, inject, Input, Output, QueryList, Renderer2, ViewChild, ViewChildren, ViewEncapsulation, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { canTransition$, RDT_GUARDED_COMPONENT, RdtChildDirective, } from '@ngrdt/core';\nimport { RdtHTMLUtils } from '@ngrdt/utils';\nimport { firstValueFrom, timer } from 'rxjs';\nimport { RdtTabControllerDirective } from '../../directives/rdt-tab-controller.directive';\nimport { RdtTabComponent } from '../tab/rdt-tab.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrdt/core\";\nimport * as i2 from \"@angular/common\";\nexport class RdtTabContainerComponent {\n destroyRef = inject(DestroyRef);\n stateId = null;\n set value(val) {\n if (this.activeTab && this.activeTab.stateId !== val) {\n // TODO\n //this.activeTab.onViewWillLeave();\n }\n this._value = val;\n this.setCurrent();\n }\n get value() {\n return this._value;\n }\n _value;\n disabled = false;\n formAutofocus = true;\n panelPosition = 'top';\n valueChange = new EventEmitter();\n tabsList;\n tabHeaderButtons;\n tabContent;\n _active = false;\n get active() {\n return this._active;\n }\n set active(value) {\n this._active = value;\n this.cd.markForCheck();\n }\n get isTopLevel() {\n return !this.parentTab;\n }\n parentTab = inject(RdtTabComponent, { optional: true });\n controller = inject(RdtTabControllerDirective, {\n optional: true,\n });\n cd = inject(ChangeDetectorRef);\n elRef = inject(ElementRef);\n renderer = inject(Renderer2);\n currentTemplate = null;\n currentTab = null;\n get classes() {\n return `dp3-tab-container panel-${this.panelPosition}`;\n }\n get isHorizontal() {\n return this.panelPosition === 'top' || this.panelPosition === 'bottom';\n }\n get isVertical() {\n return !this.isHorizontal;\n }\n attrRole = 'tablist';\n get hasNonDisabledTabs() {\n return this.tabsList.some((tab) => !tab.disabled);\n }\n get activeTab() {\n return this.getTabByValue(this.value);\n }\n getTabByValue(value) {\n return this.tabsList?.find((tab) => tab.stateId === value);\n }\n ngAfterContentInit() {\n this.controller?.onTabContainerChanges();\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setCurrent());\n this.tabsList.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.controller?.onTabChanges();\n this.setCurrent();\n this.cd.markForCheck();\n });\n if (this.stateId === null && this.controller) {\n const id = this.controller.getTabContainerIndex(this);\n this.stateId = `tab-container-${id}`;\n }\n }\n getState() {\n return {\n id: this.stateId,\n value: this.value,\n tabStates: this.tabsList.map((tab) => tab.getState()),\n };\n }\n applyState(state) {\n this.value = state.value;\n this.scrollCurrentButtonIntoView();\n const states = [...state.tabStates];\n const tabs = this.tabsList.toArray();\n const minLen = Math.min(states.length, tabs.length);\n for (let i = 0; i < minLen; i++) {\n if (tabs[i].stateId === states[i].id) {\n tabs[i].applyState(states[i]);\n tabs[i] = states[i] = null;\n }\n }\n tabs.forEach((tab, tabI) => {\n if (!tab) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = tabI - offset;\n const next = tabI + offset;\n if (prev > 0 && states[prev]?.id === tab.stateId) {\n tab.applyState(states[prev]);\n states[prev] = null;\n return;\n }\n else if (next < states.length && states[next]?.id === tab.stateId) {\n tab.applyState(states[next]);\n states[next] = null;\n return;\n }\n }\n });\n }\n scrollIntoView() {\n this.elRef?.nativeElement?.scrollIntoView({ behavior: 'smooth' });\n }\n async activateTab(value) {\n const nextTab = this.getTabByValue(value);\n const can = await firstValueFrom(canTransition$(this.activeTab?.contDir, nextTab?.contDir));\n if (can) {\n this.value = value;\n this.valueChange.emit(value);\n }\n }\n scrollCurrentButtonIntoView() {\n if (!this.tabsList || !this.tabHeaderButtons) {\n return;\n }\n const tabIndex = this.tabsList\n .toArray()\n .findIndex((tab) => tab.stateId === this.value);\n const buttonRef = this.tabHeaderButtons.get(tabIndex);\n if (buttonRef) {\n RdtHTMLUtils.scrollIntoViewHorizontallyWithinParent(buttonRef.nativeElement);\n }\n }\n onClick(event) {\n this.controller?.activateTabContainerFromClick(this, event.timeStamp);\n }\n setCurrent() {\n if (!this.tabsList) {\n return;\n }\n if (this.value == undefined) {\n const firstEnabled = this.getFirstEnabledTab();\n if (firstEnabled) {\n this.value = firstEnabled.stateId;\n }\n else {\n return;\n }\n }\n const found = this.tabsList.find((tab) => tab.stateId === this.value);\n if (!found) {\n const first = this.getFirstEnabledTab();\n if (first) {\n this.activateTab(first.stateId);\n return;\n }\n else {\n console.error('Active tab not found.', this.tabsList.toArray(), this.value);\n return;\n }\n }\n this.setTab(found);\n }\n setTab(tab) {\n if (this.currentTab !== tab) {\n this.solidifyTabContentSize();\n this.currentTab = tab;\n this.currentTemplate = tab.templateRef;\n this.cd.markForCheck();\n //tab.onViewWillEnter();\n }\n if (this.formAutofocus && tab.formAutofocus) {\n // Wait until template is attached to DOM\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntilDestroyed(tab.destroyRef))\n .subscribe(() => tab.focusForm());\n }\n setTimeout(() => this.releaseTabContentSize());\n }\n // Swapping template in template outlet will cause large css recalc\n // fix size to previous tab and in case they are the same size\n // the recalc isn't noticable\n solidifyTabContentSize() {\n const el = this.tabContent.nativeElement;\n const bb = el.getBoundingClientRect();\n this.renderer.setStyle(el, 'width', bb.width + 'px');\n this.renderer.setStyle(el, 'height', bb.height + 'px');\n }\n releaseTabContentSize() {\n const el = this.tabContent.nativeElement;\n this.renderer.removeStyle(el, 'width');\n this.renderer.removeStyle(el, 'height');\n }\n getFirstEnabledTab() {\n return this.tabsList.find((t) => !t.disabled);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtTabContainerComponent, isStandalone: false, selector: \"rdt-tab-container\", inputs: { stateId: \"stateId\", value: \"value\", disabled: \"disabled\", formAutofocus: \"formAutofocus\", panelPosition: \"panelPosition\" }, outputs: { valueChange: \"valueChange\" }, host: { listeners: { \"click\": \"onClick($event)\" }, properties: { \"class.active\": \"this._active\", \"class\": \"this.classes\", \"class.panel-horizontal\": \"this.isHorizontal\", \"class.panel-vertical\": \"this.isVertical\", \"attr.role\": \"this.attrRole\" } }, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabContainerComponent,\n },\n ], queries: [{ propertyName: \"tabsList\", predicate: RdtTabComponent }], viewQueries: [{ propertyName: \"tabContent\", first: true, predicate: [\"tabContent\"], descendants: true, static: true }, { propertyName: \"tabHeaderButtons\", predicate: [\"headerButton\"], descendants: true }], hostDirectives: [{ directive: i1.RdtChildDirective }], ngImport: i0, template: \"<div class=\\\"tab-header-panel\\\" *ngIf=\\\"tabsList\\\">\\n <button\\n *ngFor=\\\"let tab of tabsList\\\"\\n #headerButton\\n class=\\\"px-2 py-1 tab-header-button\\\"\\n (click)=\\\"activateTab(tab.stateId)\\\"\\n [class.active]=\\\"value === tab.stateId\\\"\\n [disabled]=\\\"tab.disabled\\\"\\n [hidden]=\\\"!tab.visible\\\"\\n role=\\\"tab\\\"\\n [attr.aria-selected]=\\\"value === tab.stateId\\\"\\n [attr.aria-controls]=\\\"'panel-' + tab.stateId\\\"\\n [attr.tabindex]=\\\"value === tab.stateId ? 0 : -1\\\"\\n [id]=\\\"'tab-' + tab.stateId\\\"\\n [class]=\\\"tab.buttonClass\\\"\\n type=\\\"button\\\"\\n >\\n {{ tab.label }}\\n </button>\\n</div>\\n<div\\n class=\\\"tab-content\\\"\\n role=\\\"tabpanel\\\"\\n [id]=\\\"'panel-' + value\\\"\\n [attr.aria-labelledby]=\\\"'tab-' + value\\\"\\n #tabContent\\n>\\n <ng-template [ngTemplateOutlet]=\\\"currentTemplate\\\"></ng-template>\\n</div>\\n\", styles: [\"dp3-tab-container{--tab-header-border-height: 2px;--tab-header-border-color: #e2e8f0;--tab-text-color: rgb(100, 116, 139);--active-tab-text-color: var(--primary-blue);--active-tab-border-color: var(--primary-blue);--disabled-tab-text-color: #b1b9c5;--tab-vertical-button-width: 200px;display:block;position:relative}dp3-tab-container.active>.tab-header-panel{background-color:var(--hover-blue)}dp3-tab-container.panel-vertical{display:flex}dp3-tab-container.panel-vertical>.tab-header-panel{position:absolute;top:0;height:100%;width:var(--tab-vertical-button-width);overflow-y:auto}dp3-tab-container.panel-vertical>.tab-header-panel>button{text-align:left;width:100%;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}dp3-tab-container.panel-vertical>.tab-content{width:calc(100% - var(--tab-vertical-button-width))}dp3-tab-container.panel-right{flex-direction:row-reverse}dp3-tab-container.panel-right>.tab-header-panel{right:0}dp3-tab-container.panel-left>.tab-header-panel{left:0}dp3-tab-container.panel-left>.tab-content{margin-left:var(--tab-vertical-button-width)}dp3-tab-container.panel-horizontal>.tab-header-panel{width:100%;white-space:nowrap;overflow-x:auto}dp3-tab-container.panel-bottom{display:flex;flex-direction:column-reverse}dp3-tab-container .tab-header-panel{position:relative;background-color:rgba(var(--primary-blue-rgb),.045)}dp3-tab-container .tab-header-panel:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--tab-header-border-color);margin-top:var(--tab-header-border-height);bottom:0;left:0;z-index:-1}dp3-tab-container .dot{position:absolute;width:.85rem;height:.85rem;padding:0 .1rem;background-color:var(--primary-blue);color:var(--white);font-size:x-small;border-radius:100%;top:.25rem;right:0rem}dp3-tab-container .tab-header-button{position:relative;background:none;font:inherit;outline:inherit;border:none;color:var(--tab-text-color);font-weight:700;font-size:1.1rem}dp3-tab-container .tab-header-button.active{position:relative;color:var(--active-tab-text-color)}dp3-tab-container .tab-header-button.active:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--active-tab-text-color);margin-top:var(--tab-header-border-height);bottom:0;left:0}dp3-tab-container .tab-header-button:disabled{color:var(--disabled-tab-text-color)}dp3-tab-container .tab-header-button.padding-small{padding-right:1.1rem!important}dp3-tab-container .tab-header-button.padding-large{padding-right:1.3rem!important}dp3-tab-container>.tab-content{min-width:0;width:100%;padding:.5rem}dp3-tab-container>.tab-content:has(>.dp3-tab-container){padding:0}dp3-tab-container>.tab-content>.dp3-tab-container{width:100%;height:100%}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rdt-tab-container', changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabContainerComponent,\n },\n ], hostDirectives: [RdtChildDirective], encapsulation: ViewEncapsulation.None, standalone: false, template: \"<div class=\\\"tab-header-panel\\\" *ngIf=\\\"tabsList\\\">\\n <button\\n *ngFor=\\\"let tab of tabsList\\\"\\n #headerButton\\n class=\\\"px-2 py-1 tab-header-button\\\"\\n (click)=\\\"activateTab(tab.stateId)\\\"\\n [class.active]=\\\"value === tab.stateId\\\"\\n [disabled]=\\\"tab.disabled\\\"\\n [hidden]=\\\"!tab.visible\\\"\\n role=\\\"tab\\\"\\n [attr.aria-selected]=\\\"value === tab.stateId\\\"\\n [attr.aria-controls]=\\\"'panel-' + tab.stateId\\\"\\n [attr.tabindex]=\\\"value === tab.stateId ? 0 : -1\\\"\\n [id]=\\\"'tab-' + tab.stateId\\\"\\n [class]=\\\"tab.buttonClass\\\"\\n type=\\\"button\\\"\\n >\\n {{ tab.label }}\\n </button>\\n</div>\\n<div\\n class=\\\"tab-content\\\"\\n role=\\\"tabpanel\\\"\\n [id]=\\\"'panel-' + value\\\"\\n [attr.aria-labelledby]=\\\"'tab-' + value\\\"\\n #tabContent\\n>\\n <ng-template [ngTemplateOutlet]=\\\"currentTemplate\\\"></ng-template>\\n</div>\\n\", styles: [\"dp3-tab-container{--tab-header-border-height: 2px;--tab-header-border-color: #e2e8f0;--tab-text-color: rgb(100, 116, 139);--active-tab-text-color: var(--primary-blue);--active-tab-border-color: var(--primary-blue);--disabled-tab-text-color: #b1b9c5;--tab-vertical-button-width: 200px;display:block;position:relative}dp3-tab-container.active>.tab-header-panel{background-color:var(--hover-blue)}dp3-tab-container.panel-vertical{display:flex}dp3-tab-container.panel-vertical>.tab-header-panel{position:absolute;top:0;height:100%;width:var(--tab-vertical-button-width);overflow-y:auto}dp3-tab-container.panel-vertical>.tab-header-panel>button{text-align:left;width:100%;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}dp3-tab-container.panel-vertical>.tab-content{width:calc(100% - var(--tab-vertical-button-width))}dp3-tab-container.panel-right{flex-direction:row-reverse}dp3-tab-container.panel-right>.tab-header-panel{right:0}dp3-tab-container.panel-left>.tab-header-panel{left:0}dp3-tab-container.panel-left>.tab-content{margin-left:var(--tab-vertical-button-width)}dp3-tab-container.panel-horizontal>.tab-header-panel{width:100%;white-space:nowrap;overflow-x:auto}dp3-tab-container.panel-bottom{display:flex;flex-direction:column-reverse}dp3-tab-container .tab-header-panel{position:relative;background-color:rgba(var(--primary-blue-rgb),.045)}dp3-tab-container .tab-header-panel:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--tab-header-border-color);margin-top:var(--tab-header-border-height);bottom:0;left:0;z-index:-1}dp3-tab-container .dot{position:absolute;width:.85rem;height:.85rem;padding:0 .1rem;background-color:var(--primary-blue);color:var(--white);font-size:x-small;border-radius:100%;top:.25rem;right:0rem}dp3-tab-container .tab-header-button{position:relative;background:none;font:inherit;outline:inherit;border:none;color:var(--tab-text-color);font-weight:700;font-size:1.1rem}dp3-tab-container .tab-header-button.active{position:relative;color:var(--active-tab-text-color)}dp3-tab-container .tab-header-button.active:after{content:\\\"\\\";position:absolute;width:100%;height:var(--tab-header-border-height);background-color:var(--active-tab-text-color);margin-top:var(--tab-header-border-height);bottom:0;left:0}dp3-tab-container .tab-header-button:disabled{color:var(--disabled-tab-text-color)}dp3-tab-container .tab-header-button.padding-small{padding-right:1.1rem!important}dp3-tab-container .tab-header-button.padding-large{padding-right:1.3rem!important}dp3-tab-container>.tab-content{min-width:0;width:100%;padding:.5rem}dp3-tab-container>.tab-content:has(>.dp3-tab-container){padding:0}dp3-tab-container>.tab-content>.dp3-tab-container{width:100%;height:100%}\\n\"] }]\n }], propDecorators: { stateId: [{\n type: Input\n }], value: [{\n type: Input\n }], disabled: [{\n type: Input\n }], formAutofocus: [{\n type: Input\n }], panelPosition: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], tabsList: [{\n type: ContentChildren,\n args: [RdtTabComponent]\n }], tabHeaderButtons: [{\n type: ViewChildren,\n args: ['headerButton']\n }], tabContent: [{\n type: ViewChild,\n args: ['tabContent', { static: true }]\n }], _active: [{\n type: HostBinding,\n args: ['class.active']\n }], classes: [{\n type: HostBinding,\n args: ['class']\n }], isHorizontal: [{\n type: HostBinding,\n args: ['class.panel-horizontal']\n }], isVertical: [{\n type: HostBinding,\n args: ['class.panel-vertical']\n }], attrRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9jb21wb25lbnRzL3RhYi1jb250YWluZXIvcmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9jb21wb25lbnRzL3RhYi1jb250YWluZXIvcmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsaUJBQWlCLEdBQ2xCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBaUIzRCxNQUFNLE9BQU8sd0JBQXdCO0lBQzFCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFHekMsT0FBTyxHQUFRLElBQUksQ0FBQztJ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LEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxPQUFPO1lBQ1QsQ0FBQztZQUNELEtBQUssSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQzNCLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQztvQkFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDcEIsT0FBTztnQkFDVCxDQUFDO3FCQUFNLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3BFLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBRSxDQUFDLENBQUM7b0JBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQ3BCLE9BQU87Z0JBQ1QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sY0FBYyxDQUM5QixjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUMxRCxDQUFDO1FBQ0YsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUTthQUMzQixPQUFPLEVBQUU7YUFDVCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFlBQVksQ0FBQyxzQ0FBc0MsQ0FDakQsU0FBUyxDQUFDLGFBQWEsQ0FDeEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQUUsNkJBQTZCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQy9DLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUNwQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTztZQUNULENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2hDLE9BQU87WUFDVCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FDWCx1QkFBdUIsRUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO2dCQUNGLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFvQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7WUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsd0JBQXdCO1FBQzFCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzVDLHlDQUF5QztZQUN6QyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNMLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ25DLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDbkM7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLDhEQUE4RDtJQUM5RCw2QkFBNkI7SUFDckIsc0JBQXNCO1FBQzVCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQzt1R0F6UVUsd0JBQXdCOzJGQUF4Qix3QkFBd0Isc2VBVnhCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsV0FBVyxFQUFFLHdCQUF3QjthQUN0QztTQUNGLG1EQXFDZ0IsZUFBZSxrU0NoRmxDLHExQkE2QkE7OzJGRG1CYSx3QkFBd0I7a0JBZnBDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVywwQkFBMEI7eUJBQ3RDO3FCQUNGLGtCQUNlLENBQUMsaUJBQWlCLENBQUMsaUJBQ3BCLGlCQUFpQixDQUFDLElBQUksY0FDekIsS0FBSzs4QkFNakIsT0FBTztzQkFETixLQUFLO2dCQUlGLEtBQUs7c0JBRFIsS0FBSztnQkFlTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxlQUFlO3VCQUFDLGVBQWU7Z0JBSWhDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLGNBQWM7Z0JBSTVCLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlsQyxPQUFPO3NCQURiLFdBQVc7dUJBQUMsY0FBYztnQkEwQnZCLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxPQUFPO2dCQU1oQixZQUFZO3NCQURmLFdBQVc7dUJBQUMsd0JBQXdCO2dCQU1qQyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsc0JBQXNCO2dCQU01QixRQUFRO3NCQURkLFdBQVc7dUJBQUMsV0FBVztnQkE2R3hCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgY2FuVHJhbnNpdGlvbiQsXG4gIFJEVF9HVUFSREVEX0NPTVBPTkVOVCxcbiAgUmR0Q2hpbGREaXJlY3RpdmUsXG59IGZyb20gJ0BuZ3JkdC9jb3JlJztcbmltcG9ydCB7IFJkdEhUTUxVdGlscyB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JkdC10YWItY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR0VGFiQ29udGFpbmVyU3RhdGUsIFJkdFRhYlN0YXRlIH0gZnJvbSAnLi4vLi4vcmR0LXRhYnMtbW9kZWxzJztcbmltcG9ydCB7IFJkdFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi9yZHQtdGFiLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JkdC10YWItY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JkdC10YWItY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmR0LXRhYi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJEVF9HVUFSREVEX0NPTVBPTkVOVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtSZHRDaGlsZERpcmVjdGl2ZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRUYWJDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBASW5wdXQoKVxuICBzdGF0ZUlkOiBhbnkgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYiAmJiB0aGlzLmFjdGl2ZVRhYi5zdGF0ZUlkICE9PSB2YWwpIHtcbiAgICAgIC8vIFRPRE9cbiAgICAgIC8vdGhpcy5hY3RpdmVUYWIub25WaWV3V2lsbExlYXZlKCk7XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xuICAgIHRoaXMuc2V0Q3VycmVudCgpO1xuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWUhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmb3JtQXV0b2ZvY3VzID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwYW5lbFBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICd0b3AnO1xuXG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAQ29udGVudENoaWxkcmVuKFJkdFRhYkNvbXBvbmVudClcbiAgdGFic0xpc3QhOiBRdWVyeUxpc3Q8UmR0VGFiQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkcmVuKCdoZWFkZXJCdXR0b24nKVxuICB0YWJIZWFkZXJCdXR0b25zPzogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICBAVmlld0NoaWxkKCd0YWJDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgdGFiQ29udGVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgcHVibGljIF9hY3RpdmUgPSBmYWxzZTtcbiAgZ2V0IGFjdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICB9XG4gIHNldCBhY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hY3RpdmUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0IGlzVG9wTGV2ZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFRhYjtcbiAgfVxuXG4gIHJlYWRvbmx5IHBhcmVudFRhYiA9IGluamVjdChSZHRUYWJDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHJlYWRvbmx5IGNvbnRyb2xsZXIgPSBpbmplY3QoUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSBlbFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgY3VycmVudFRhYjogUmR0VGFiQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBjbGFzc2VzKCkge1xuICAgIHJldHVybiBgZHAzLXRhYi1jb250YWluZXIgcGFuZWwtJHt0aGlzLnBhbmVsUG9zaXRpb259YDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFuZWwtaG9yaXpvbnRhbCcpXG4gIGdldCBpc0hvcml6b250YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFuZWxQb3NpdGlvbiA9PT0gJ3RvcCcgfHwgdGhpcy5wYW5lbFBvc2l0aW9uID09PSAnYm90dG9tJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucGFuZWwtdmVydGljYWwnKVxuICBnZXQgaXNWZXJ0aWNhbCgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNIb3Jpem9udGFsO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBwdWJsaWMgYXR0clJvbGUgPSAndGFibGlzdCc7XG5cbiAgZ2V0IGhhc05vbkRpc2FibGVkVGFicygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzTGlzdC5zb21lKCh0YWIpID0+ICF0YWIuZGlzYWJsZWQpO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVRhYigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUYWJCeVZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgZ2V0VGFiQnlWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic0xpc3Q/LmZpbmQoKHRhYikgPT4gdGFiLnN0YXRlSWQgPT09IHZhbHVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmNvbnRyb2xsZXI/Lm9uVGFiQ29udGFpbmVyQ2hhbmdlcygpO1xuICAgIHRpbWVyKDApXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRDdXJyZW50KCkpO1xuXG4gICAgdGhpcy50YWJzTGlzdC5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXI/Lm9uVGFiQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnQoKTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc3RhdGVJZCA9PT0gbnVsbCAmJiB0aGlzLmNvbnRyb2xsZXIpIHtcbiAgICAgIGNvbnN0IGlkID0gdGhpcy5jb250cm9sbGVyLmdldFRhYkNvbnRhaW5lckluZGV4KHRoaXMpO1xuICAgICAgdGhpcy5zdGF0ZUlkID0gYHRhYi1jb250YWluZXItJHtpZH1gO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0YXRlKCk6IFJkdFRhYkNvbnRhaW5lclN0YXRlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuc3RhdGVJZCxcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgdGFiU3RhdGVzOiB0aGlzLnRhYnNMaXN0Lm1hcCgodGFiKSA9PiB0YWIuZ2V0U3RhdGUoKSksXG4gICAgfTtcbiAgfVxuXG4gIGFwcGx5U3RhdGUoc3RhdGU6IFJkdFRhYkNvbnRhaW5lclN0YXRlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHN0YXRlLnZhbHVlO1xuICAgIHRoaXMuc2Nyb2xsQ3VycmVudEJ1dHRvbkludG9WaWV3KCk7XG5cbiAgICBjb25zdCBzdGF0ZXM6IChSZHRUYWJTdGF0ZSB8IG51bGwpW10gPSBbLi4uc3RhdGUudGFiU3RhdGVzXTtcbiAgICBjb25zdCB0YWJzOiAoUmR0VGFiQ29tcG9uZW50IHwgbnVsbClbXSA9IHRoaXMudGFic0xpc3QudG9BcnJheSgpO1xuICAgIGNvbnN0IG1pbkxlbiA9IE1hdGgubWluKHN0YXRlcy5sZW5ndGgsIHRhYnMubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWluTGVuOyBpKyspIHtcbiAgICAgIGlmICh0YWJzW2ldIS5zdGF0ZUlkID09PSBzdGF0ZXNbaV0hLmlkKSB7XG4gICAgICAgIHRhYnNbaV0hLmFwcGx5U3RhdGUoc3RhdGVzW2ldISk7XG4gICAgICAgIHRhYnNbaV0gPSBzdGF0ZXNbaV0gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICB0YWJzLmZvckVhY2goKHRhYiwgdGFiSSkgPT4ge1xuICAgICAgaWYgKCF0YWIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgc3RhdGVzLmxlbmd0aDsgb2Zmc2V0KyspIHtcbiAgICAgICAgY29uc3QgcHJldiA9IHRhYkkgLSBvZmZzZXQ7XG4gICAgICAgIGNvbnN0IG5leHQgPSB0YWJJICsgb2Zmc2V0O1xuICAgICAgICBpZiAocHJldiA+IDAgJiYgc3RhdGVzW3ByZXZdPy5pZCA9PT0gdGFiLnN0YXRlSWQpIHtcbiAgICAgICAgICB0YWIuYXBwbHlTdGF0ZShzdGF0ZXNbcHJldl0hKTtcbiAgICAgICAgICBzdGF0ZXNbcHJldl0gPSBudWxsO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChuZXh0IDwgc3RhdGVzLmxlbmd0aCAmJiBzdGF0ZXNbbmV4dF0/LmlkID09PSB0YWIuc3RhdGVJZCkge1xuICAgICAgICAgIHRhYi5hcHBseVN0YXRlKHN0YXRlc1tuZXh0XSEpO1xuICAgICAgICAgIHN0YXRlc1tuZXh0XSA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzY3JvbGxJbnRvVmlldygpIHtcbiAgICB0aGlzLmVsUmVmPy5uYXRpdmVFbGVtZW50Py5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfVxuXG4gIGFzeW5jIGFjdGl2YXRlVGFiKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXh0VGFiID0gdGhpcy5nZXRUYWJCeVZhbHVlKHZhbHVlKTtcblxuICAgIGNvbnN0IGNhbiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgY2FuVHJhbnNpdGlvbiQodGhpcy5hY3RpdmVUYWI/LmNvbnREaXIsIG5leHRUYWI/LmNvbnREaXIpXG4gICAgKTtcbiAgICBpZiAoY2FuKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEN1cnJlbnRCdXR0b25JbnRvVmlldygpIHtcbiAgICBpZiAoIXRoaXMudGFic0xpc3QgfHwgIXRoaXMudGFiSGVhZGVyQnV0dG9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0YWJJbmRleCA9IHRoaXMudGFic0xpc3RcbiAgICAgIC50b0FycmF5KClcbiAgICAgIC5maW5kSW5kZXgoKHRhYikgPT4gdGFiLnN0YXRlSWQgPT09IHRoaXMudmFsdWUpO1xuICAgIGNvbnN0IGJ1dHRvblJlZiA9IHRoaXMudGFiSGVhZGVyQnV0dG9ucy5nZXQodGFiSW5kZXgpO1xuICAgIGlmIChidXR0b25SZWYpIHtcbiAgICAgIFJkdEhUTUxVdGlscy5zY3JvbGxJbnRvVmlld0hvcml6b250YWxseVdpdGhpblBhcmVudChcbiAgICAgICAgYnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyPy5hY3RpdmF0ZVRhYkNvbnRhaW5lckZyb21DbGljayh0aGlzLCBldmVudC50aW1lU3RhbXApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJyZW50KCkge1xuICAgIGlmICghdGhpcy50YWJzTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy52YWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGZpcnN0RW5hYmxlZCA9IHRoaXMuZ2V0Rmlyc3RFbmFibGVkVGFiKCk7XG4gICAgICBpZiAoZmlyc3RFbmFibGVkKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBmaXJzdEVuYWJsZWQuc3RhdGVJZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMudGFic0xpc3QuZmluZCgodGFiKSA9PiB0YWIuc3RhdGVJZCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgY29uc3QgZmlyc3QgPSB0aGlzLmdldEZpcnN0RW5hYmxlZFRhYigpO1xuICAgICAgaWYgKGZpcnN0KSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVUYWIoZmlyc3Quc3RhdGVJZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ0FjdGl2ZSB0YWIgbm90IGZvdW5kLicsXG4gICAgICAgICAgdGhpcy50YWJzTGlzdC50b0FycmF5KCksXG4gICAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2V0VGFiKGZvdW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFiKHRhYjogUmR0VGFiQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFRhYiAhPT0gdGFiKSB7XG4gICAgICB0aGlzLnNvbGlkaWZ5VGFiQ29udGVudFNpemUoKTtcbiAgICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcbiAgICAgIHRoaXMuY3VycmVudFRlbXBsYXRlID0gdGFiLnRlbXBsYXRlUmVmO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIC8vdGFiLm9uVmlld1dpbGxFbnRlcigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1BdXRvZm9jdXMgJiYgdGFiLmZvcm1BdXRvZm9jdXMpIHtcbiAgICAgIC8vIFdhaXQgdW50aWwgdGVtcGxhdGUgaXMgYXR0YWNoZWQgdG8gRE9NXG4gICAgICB0aW1lcigwKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGFiLmRlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0YWIuZm9jdXNGb3JtKCkpO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWxlYXNlVGFiQ29udGVudFNpemUoKSk7XG4gIH1cblxuICAvLyBTd2FwcGluZyB0ZW1wbGF0ZSBpbiB0ZW1wbGF0ZSBvdXRsZXQgd2lsbCBjYXVzZSBsYXJnZSBjc3MgcmVjYWxjXG4gIC8vIGZpeCBzaXplIHRvIHByZXZpb3VzIHRhYiBhbmQgaW4gY2FzZSB0aGV5IGFyZSB0aGUgc2FtZSBzaXplXG4gIC8vIHRoZSByZWNhbGMgaXNuJ3Qgbm90aWNhYmxlXG4gIHByaXZhdGUgc29saWRpZnlUYWJDb250ZW50U2l6ZSgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudGFiQ29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGJiID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ3dpZHRoJywgYmIud2lkdGggKyAncHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnaGVpZ2h0JywgYmIuaGVpZ2h0ICsgJ3B4Jyk7XG4gIH1cblxuICBwcml2YXRlIHJlbGVhc2VUYWJDb250ZW50U2l6ZSgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudGFiQ29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZWwsICd3aWR0aCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZWwsICdoZWlnaHQnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rmlyc3RFbmFibGVkVGFiKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNMaXN0LmZpbmQoKHQpID0+ICF0LmRpc2FibGVkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYi1oZWFkZXItcGFuZWxcIiAqbmdJZj1cInRhYnNMaXN0XCI+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNMaXN0XCJcbiAgICAjaGVhZGVyQnV0dG9uXG4gICAgY2xhc3M9XCJweC0yIHB5LTEgdGFiLWhlYWRlci1idXR0b25cIlxuICAgIChjbGljayk9XCJhY3RpdmF0ZVRhYih0YWIuc3RhdGVJZClcIlxuICAgIFtjbGFzcy5hY3RpdmVdPVwidmFsdWUgPT09IHRhYi5zdGF0ZUlkXCJcbiAgICBbZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkXCJcbiAgICBbaGlkZGVuXT1cIiF0YWIudmlzaWJsZVwiXG4gICAgcm9sZT1cInRhYlwiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ2YWx1ZSA9PT0gdGFiLnN0YXRlSWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3BhbmVsLScgKyB0YWIuc3RhdGVJZFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidmFsdWUgPT09IHRhYi5zdGF0ZUlkID8gMCA6IC0xXCJcbiAgICBbaWRdPVwiJ3RhYi0nICsgdGFiLnN0YXRlSWRcIlxuICAgIFtjbGFzc109XCJ0YWIuYnV0dG9uQ2xhc3NcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICA+XG4gICAge3sgdGFiLmxhYmVsIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwidGFiLWNvbnRlbnRcIlxuICByb2xlPVwidGFicGFuZWxcIlxuICBbaWRdPVwiJ3BhbmVsLScgKyB2YWx1ZVwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyB2YWx1ZVwiXG4gICN0YWJDb250ZW50XG4+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXJyZW50VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=","export var RdtTabMode;\n(function (RdtTabMode) {\n})(RdtTabMode || (RdtTabMode = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMtbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9yZHQtdGFicy1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxDQUFOLElBQVksVUFBYTtBQUF6QixXQUFZLFVBQVU7QUFBRSxDQUFDLEVBQWIsVUFBVSxLQUFWLFVBQVUsUUFBRyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUmR0VGFiQ29udGFpbmVyU3RhdGUge1xuICBpZDogYW55O1xuICB2YWx1ZTogYW55O1xuICB0YWJTdGF0ZXM6IFJkdFRhYlN0YXRlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR0VGFiU3RhdGUge1xuICBpZDogYW55O1xuICBjb250YWluZXJTdGF0ZXM6IFJkdFRhYkNvbnRhaW5lclN0YXRlW107XG59XG5cbmV4cG9ydCBlbnVtIFJkdFRhYk1vZGUge31cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RdtTabContainerComponent } from './components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from './components/tab/rdt-tab.component';\nimport { RdtDestroyInactiveDirective } from './directives/rdt-destroy-inactive.directive';\nimport { RdtTabControllerDirective } from './directives/rdt-tab-controller.directive';\nimport * as i0 from \"@angular/core\";\nexport class RdtTabsModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, declarations: [RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective], imports: [CommonModule], exports: [RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTabsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n exports: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9yZHQtdGFicy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQWlCdEYsTUFBTSxPQUFPLGFBQWE7dUdBQWIsYUFBYTt3R0FBYixhQUFhLGlCQWJ0QixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6QiwyQkFBMkIsYUFRbkIsWUFBWSxhQUxwQixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6QiwyQkFBMkI7d0dBSWxCLGFBQWEsWUFGZCxZQUFZOzsyRkFFWCxhQUFhO2tCQWZ6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWItY29udGFpbmVyL3JkdC10YWItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZHRUYWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFiL3JkdC10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZHQtZGVzdHJveS1pbmFjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZHQtdGFiLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmR0VGFiQ29tcG9uZW50LFxuICAgIFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgIFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJkdFRhYkNvbXBvbmVudCxcbiAgICBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICBSZHREZXN0cm95SW5hY3RpdmVEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRUYWJzTW9kdWxlIHt9XG4iXX0=","export class StaticRdtTabsShortcutStrategy {\n config;\n constructor(config) {\n this.config = config;\n }\n updateShortcuts() {\n return Array.from(this.config.shortcuts.keys());\n }\n onShortcut(shortcut, ctrl) {\n const value = this.config.shortcuts.get(shortcut);\n const tab = ctrl.getTabByValue(value);\n if (tab) {\n ctrl.activateTab(tab);\n ctrl.activateTabContainer(tab.tabContainer);\n }\n else {\n console.warn(`Registered shortcut has been detected,\n but there is no tab with appropriate value.\n Shortcut: ${shortcut}, value: ${value}`);\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXJkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9zdHJhdGVnaWVzL3N0YXRpYy1yZHQtdGFicy1zaG9ydGN1dC1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sNkJBQTZCO0lBQ3BCO0lBQXBCLFlBQW9CLE1BQTJCO1FBQTNCLFdBQU0sR0FBTixNQUFNLENBQXFCO0lBQUcsQ0FBQztJQUVuRCxlQUFlO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFxQixFQUFFLElBQStCO1FBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUNWOztzQkFFYyxRQUFRLFlBQVksS0FBSyxFQUFFLENBQzFDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2hvcnRjdXQgfSBmcm9tICdAbmdyZHQvc2hvcnRjdXRzJztcbmltcG9ydCB7IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JkdC10YWItY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR0VGFic1Nob3J0Y3V0U3RyYXRlZ3kgfSBmcm9tICcuL3JkdC10YWJzLXNob3J0Y3V0LXN0cmF0ZWd5JztcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNSZHRUYWJzQ29uZmlnIHtcbiAgc2hvcnRjdXRzOiBNYXA8UmR0U2hvcnRjdXQsIHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0aWNSZHRUYWJzU2hvcnRjdXRTdHJhdGVneSBpbXBsZW1lbnRzIFJkdFRhYnNTaG9ydGN1dFN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IFN0YXRpY1JkdFRhYnNDb25maWcpIHt9XG5cbiAgdXBkYXRlU2hvcnRjdXRzKCk6IFJkdFNob3J0Y3V0W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29uZmlnLnNob3J0Y3V0cy5rZXlzKCkpO1xuICB9XG5cbiAgb25TaG9ydGN1dChzaG9ydGN1dDogUmR0U2hvcnRjdXQsIGN0cmw6IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29uZmlnLnNob3J0Y3V0cy5nZXQoc2hvcnRjdXQpITtcbiAgICBjb25zdCB0YWIgPSBjdHJsLmdldFRhYkJ5VmFsdWUodmFsdWUpO1xuICAgIGlmICh0YWIpIHtcbiAgICAgIGN0cmwuYWN0aXZhdGVUYWIodGFiKTtcbiAgICAgIGN0cmwuYWN0aXZhdGVUYWJDb250YWluZXIodGFiLnRhYkNvbnRhaW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFJlZ2lzdGVyZWQgc2hvcnRjdXQgaGFzIGJlZW4gZGV0ZWN0ZWQsXG4gICAgICAgICAgYnV0IHRoZXJlIGlzIG5vIHRhYiB3aXRoIGFwcHJvcHJpYXRlIHZhbHVlLlxuICAgICAgICAgIFNob3J0Y3V0OiAke3Nob3J0Y3V0fSwgdmFsdWU6ICR7dmFsdWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtdGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0BuZ3JkdC90YWJzL3NyYy9uZ3JkdC10YWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;;;;;AAEO,MAAM,2BAA2B,CAAC;AACzC,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC9L;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,sBAAsB;AACpD,oBAAoB,UAAU,EAAE,KAAK;AACrC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACPN,MAAM,eAAe,CAAC;AAC7B,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC/B,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,IAAI,QAAQ;AACZ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;AACnC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK;AAC1C;AACA,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AAClF,gBAAgB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B;AACA,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B;AACA,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,KAAK;AACT,IAAI,aAAa,GAAG,IAAI;AACxB,IAAI,WAAW,GAAG,IAAI;AACtB,IAAI,eAAe;AACnB,IAAI,eAAe;AACnB,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;AAC3D;AACA,IAAI,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACnD;AACA;AACA;AACA,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,wBAAwB,CAAC;AACxE;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,KAAK,IAAI;AACtF;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAChE;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,OAAO,IAAI,OAAO;AAC9B,YAAY,OAAO,IAAI,OAAO;AAC9B,YAAY,SAAS,IAAI,OAAO;AAChC,YAAY,SAAS,IAAI,OAAO,EAAE;AAClC,YAAY,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE;AAC/C;AACA;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU;AAC3C;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO;AACf,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO;AAC5B,YAAY,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChF,SAAS;AACT;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC;AACjD,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe;AAC1C,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;AAC5D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnD,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,gBAAgB,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;AAC3C;AACA;AACA,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;AACvC,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAgB;AAChB;AACA,YAAY,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;AACnE,gBAAgB,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM;AAC3C,gBAAgB,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM;AAC3C,gBAAgB,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;AACnE,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;AACvC,oBAAoB;AACpB;AACA,qBAAqB,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;AACpF,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;AACvC,oBAAoB;AACpB;AACA;AACA,SAAS,CAAC;AACV;AACA,IAAI,SAAS,GAAG;AAChB;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACzK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE;AAC3Z,YAAY;AACZ,gBAAgB,OAAO,EAAE,qBAAqB;AAC9C,gBAAgB,WAAW,EAAE,eAAe;AAC5C,aAAa;AACb,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,2BAA2B,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,8DAA8D,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;AAC3f;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE;AACtG,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,qBAAqB;AAC1D,4BAA4B,WAAW,EAAE,eAAe;AACxD,yBAAyB;AACzB,qBAAqB,EAAE,cAAc,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,8DAA8D,EAAE;AAC7J,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACtD,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACtD,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACzC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACtD,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AACpD,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,2BAA2B,EAAE;AACpD,wBAAwB,IAAI,EAAE,WAAW;AACzC,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB;AACrB,aAAa,CAAC,EAAE,EAAE,CAAC;;AC/IZ,MAAM,uBAAuB,CAAC;AACrC;;ACCA,MAAM,QAAQ,GAAG,KAAK;AACtB,MAAM,YAAY,GAAG;AACrB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtD,CAAC;AACD,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AACrD,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AACrD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;AACxD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AAC5D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;AAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AACnD,MAAM,2BAA2B,SAAS,uBAAuB,CAAC;AACzE,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,2BAA2B,CAAC,SAAS;AACpD;AACA,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC/B,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO;AACpC,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA,QAAQ,MAAM,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAC;AAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE;AAC1D,YAAY,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC9D,YAAY,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACxE,YAAY,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACxE,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC5D,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC5D,SAAS;AACT,QAAQ,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACtC,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACrC,gBAAgB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAClE,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB;AACA,IAAI,OAAO,iBAAiB,GAAG;AAC/B,QAAQ,MAAM,SAAS,GAAG;AAC1B,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,cAAc;AAC1B,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,SAAS;AACT,QAAQ,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACtC,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACpC,gBAAgB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpE,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,SAAS,GAAG,2BAA2B,CAAC,iBAAiB,EAAE;AACtE,IAAI,OAAO,OAAO,GAAG,2BAA2B,CAAC,eAAe,EAAE;AAClE;;ACpDO,MAAM,yBAAyB,CAAC;AACvC,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC/B,IAAI,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAChD,IAAI,WAAW,GAAG,IAAI,YAAY,EAAE;AACpC;AACA,IAAI,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAChC,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChD,YAAY,IAAI,CAAC,SAAS,GAAG,KAAK;AAClC,YAAY,IAAI,CAAC,eAAe,EAAE;AAClC;AACA;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,oBAAoB;AACjC,aAAa,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,wBAAwB,CAAC;AACnE;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,oBAAoB;AACjC,aAAa,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,eAAe,CAAC;AAC1D;AACA,IAAI,gBAAgB;AACpB,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B;AACA,IAAI,SAAS,GAAG,IAAI,2BAA2B,EAAE;AACjD,IAAI,uBAAuB,GAAG,IAAI;AAClC,IAAI,eAAe,GAAG,KAAK;AAC3B,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B;AACA,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;AAC/B,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;AACxC,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE;AAC5D,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B;AACA;AACA,IAAI,UAAU,GAAG,EAAE;AACnB,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,uBAAuB,EAAE,SAAS;AACtD;AACA,IAAI,kBAAkB;AACtB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,EAAE;AACtF,YAAY,IAAI,EAAE,IAAI;AACtB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,QAAQ,IAAI,CAAC,8BAA8B,EAAE;AAC7C,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B;AACA,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,YAAY,IAAI,CAAC,qBAAqB,EAAE;AACxC;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;AAClC;AACA,IAAI,oBAAoB,CAAC,IAAI,EAAE;AAC/B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;AACvD,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe;AACvC,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY;AAC/C,YAAY,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACnE,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC/C,gBAAgB,OAAO,IAAI;AAC3B;AACA;AACA,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe;AACzC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC;AACrE,QAAQ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE;AAClC,YAAY,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD;AACA,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,kBAAkB,CAAC;AAC/F,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;AACjD,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC7C;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe;AACzC,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5C,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAC7B,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACtC;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACvC;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE;AAC/B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe;AACzC,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;AACvD,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,YAAY,GAAG,CAAC,EAAE;AAC9B,YAAY,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC;AAC7E;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1I,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3D,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC/C,gBAAgB,OAAO,IAAI;AAC3B;AACA;AACA,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,eAAe,CAAC,GAAG,EAAE;AACzB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe;AACzC,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC5C,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC;AAChF,QAAQ,IAAI,YAAY,GAAG,CAAC,EAAE;AAC9B,YAAY,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AAC1E;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACtI,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAChC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChC,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACtC,gBAAgB,OAAO,IAAI;AAC3B;AACA;AACA,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,sBAAsB,CAAC,IAAI,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe;AACjD;AACA,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;AACvE;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE;AACpD,YAAY,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC;AAC7E,YAAY,IAAI,GAAG,EAAE;AACrB,gBAAgB,OAAO,GAAG;AAC1B;AACA;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE;AACtD,QAAQ,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC1C,YAAY,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK;AACjE;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC;AACA,QAAQ,IAAI,CAAC,uBAAuB,GAAG;AACvC,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,SAAS,EAAE,IAAI;AAC3B,SAAS;AACT;AACA,IAAI,6BAA6B,CAAC,IAAI,EAAE,SAAS,EAAE;AACnD,QAAQ,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC1C,YAAY,IAAI,IAAI,CAAC,uBAAuB,CAAC,SAAS,KAAK,IAAI;AAC/D,gBAAgB,IAAI,CAAC,uBAAuB,CAAC,SAAS,IAAI,SAAS,EAAE;AACrE,gBAAgB;AAChB;AACA,YAAY,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK;AACjE;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,CAAC,uBAAuB,GAAG;AACvC,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,SAAS;AACrB,SAAS;AACT;AACA,IAAI,MAAM,WAAW,CAAC,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACvC,YAAY,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC;AAC5D,YAAY;AACZ;AACA,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;AAC9D,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC;AACtF,YAAY;AACZ;AACA,QAAQ,IAAI,OAAO,GAAG,GAAG;AACzB,QAAQ,GAAG;AACX,YAAY,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY;AAClD,YAAY,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO;AAC7C,YAAY,OAAO,GAAG,SAAS,CAAC,SAAS;AACzC,SAAS,QAAQ,OAAO,KAAK,IAAI;AACjC;AACA,IAAI,cAAc,CAAC,GAAG,EAAE;AACxB,QAAQ,IAAI,OAAO,GAAG,GAAG;AACzB,QAAQ,GAAG;AACX,YAAY,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY;AAClD,YAAY,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;AACxD,gBAAgB,OAAO,KAAK;AAC5B;AACA,YAAY,OAAO,GAAG,SAAS,CAAC,SAAS;AACzC,SAAS,QAAQ,OAAO,KAAK,IAAI;AACjC,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,mBAAmB,CAAC,GAAG,EAAE;AACnC,QAAQ,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY;AAC1C,QAAQ,OAAO,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACzF;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,IAAI,CAAC,6BAA6B,EAAE;AAC5C;AACA,IAAI,8BAA8B,GAAG;AACrC,QAAQ,IAAI,CAAC,gBAAgB,CAAC;AAC9B,aAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,aAAa,SAAS,CAAC,CAAC,GAAG,KAAK;AAChC,YAAY,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAC3C,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,OAAO,EAAE;AAC9B;AACA,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACnF,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC;AAC7D;AACA;AACA;AACA,IAAI,6BAA6B,GAAG;AACpC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe;AAC3C,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,MAAM,CAAC,EAAE;AAC1E,YAAY;AACZ;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAC9E,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC;AACxD;AACA;AACA,IAAI,qBAAqB,CAAC,CAAC,EAAE;AAC7B,QAAQ,OAAO,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,kBAAkB;AAClE;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;AAC7D;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AACtC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAY,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACpC,iBAAiB,MAAM,CAAC,IAAI,CAAC,UAAU;AACvC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACtD,iBAAiB,SAAS,CAAC,CAAC,KAAK,KAAK;AACtC,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC/D,aAAa,CAAC;AACd;AACA;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AACtC;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE;AACxO,YAAY;AACZ,gBAAgB,OAAO,EAAE,qBAAqB;AAC9C,gBAAgB,WAAW,EAAE,yBAAyB;AACtD,aAAa;AACb,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,yBAAyB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC/L;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,oBAAoB;AAClD,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,qBAAqB;AAC1D,4BAA4B,WAAW,EAAE,yBAAyB;AAClE,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,cAAc,EAAE,CAAC,qBAAqB,CAAC;AAC3D,oBAAoB,UAAU,EAAE,KAAK;AACrC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC;AACjD,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,eAAe;AACrC,gBAAgB,IAAI,EAAE,CAAC,yBAAyB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;AACvE,aAAa,CAAC,EAAE,EAAE,CAAC;;ACnWZ,MAAM,wBAAwB,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,GAAG,EAAE;AAC9D;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,GAAG;AACzB,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B;AACA,IAAI,MAAM;AACV,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,aAAa,GAAG,IAAI;AACxB,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,WAAW,GAAG,IAAI,YAAY,EAAE;AACpC,IAAI,QAAQ;AACZ,IAAI,gBAAgB;AACpB,IAAI,UAAU;AACd,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B;AACA,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAQ,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AAC9B;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS;AAC9B;AACA,IAAI,SAAS,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC3D,IAAI,UAAU,GAAG,MAAM,CAAC,yBAAyB,EAAE;AACnD,QAAQ,QAAQ,EAAE,IAAI;AACtB,KAAK,CAAC;AACN,IAAI,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClC,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAChC,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,UAAU,GAAG,IAAI;AACrB,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9D;AACA,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ;AAC9E;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,YAAY;AACjC;AACA,IAAI,QAAQ,GAAG,SAAS;AACxB,IAAI,IAAI,kBAAkB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzD;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;AAClE;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE;AAChD,QAAQ,KAAK,CAAC,CAAC;AACf,aAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,aAAa,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,QAAQ,CAAC;AACtB,aAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,aAAa,SAAS,CAAC,MAAM;AAC7B,YAAY,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE;AAC3C,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AAClC,SAAS,CAAC;AACV,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACtD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC;AACjE,YAAY,IAAI,CAAC,OAAO,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAChD;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO;AACf,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO;AAC5B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;AACjE,SAAS;AACT;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AAChC,QAAQ,IAAI,CAAC,2BAA2B,EAAE;AAC1C,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;AAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC5C,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AAClD,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7C,gBAAgB,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;AAC1C;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACpC,YAAY,IAAI,CAAC,GAAG,EAAE;AACtB,gBAAgB;AAChB;AACA,YAAY,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;AACnE,gBAAgB,MAAM,IAAI,GAAG,IAAI,GAAG,MAAM;AAC1C,gBAAgB,MAAM,IAAI,GAAG,IAAI,GAAG,MAAM;AAC1C,gBAAgB,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAClE,oBAAoB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAChD,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;AACvC,oBAAoB;AACpB;AACA,qBAAqB,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AACnF,oBAAoB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAChD,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;AACvC,oBAAoB;AACpB;AACA;AACA,SAAS,CAAC;AACV;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzE;AACA,IAAI,MAAM,WAAW,CAAC,KAAK,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACjD,QAAQ,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACnG,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC;AACA;AACA,IAAI,2BAA2B,GAAG;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACtD,YAAY;AACZ;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC9B,aAAa,OAAO;AACpB,aAAa,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC;AAC3D,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7D,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,YAAY,CAAC,sCAAsC,CAAC,SAAS,CAAC,aAAa,CAAC;AACxF;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,IAAI,CAAC,UAAU,EAAE,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;AAC7E;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY;AACZ;AACA,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;AACrC,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC1D,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO;AACjD;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC;AAC7E,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACnD,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/C,gBAAgB;AAChB;AACA,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3F,gBAAgB;AAChB;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC1B;AACA,IAAI,MAAM,CAAC,GAAG,EAAE;AAChB,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE;AACrC,YAAY,IAAI,CAAC,sBAAsB,EAAE;AACzC,YAAY,IAAI,CAAC,UAAU,GAAG,GAAG;AACjC,YAAY,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,WAAW;AAClD,YAAY,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AAClC;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,EAAE;AACrD;AACA,YAAY,KAAK,CAAC,CAAC;AACnB,iBAAiB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AAC7F,iBAAiB,SAAS,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC;AACjD;AACA,QAAQ,UAAU,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACtD;AACA;AACA;AACA;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAChD,QAAQ,MAAM,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;AAC7C,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;AAC9D;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAChD,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC;AAC/C;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE;AACzlB,YAAY;AACZ,gBAAgB,OAAO,EAAE,qBAAqB;AAC9C,gBAAgB,WAAW,EAAE,wBAAwB;AACrD,aAAa;AACb,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,q1BAAq1B,EAAE,MAAM,EAAE,CAAC,0sFAA0sF,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACj5I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE;AAChH,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,qBAAqB;AAC1D,4BAA4B,WAAW,EAAE,wBAAwB;AACjE,yBAAyB;AACzB,qBAAqB,EAAE,cAAc,EAAE,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,q1BAAq1B,EAAE,MAAM,EAAE,CAAC,0sFAA0sF,CAAC,EAAE;AAC7qH,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,eAAe;AACrC,gBAAgB,IAAI,EAAE,CAAC,eAAe;AACtC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,cAAc;AACrC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AACrD,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,cAAc;AACrC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,wBAAwB;AAC/C,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,sBAAsB;AAC7C,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,WAAW;AAClC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;AAC1C,aAAa,CAAC,EAAE,EAAE,CAAC;;AC5QT,IAAC;AACX,CAAC,UAAU,UAAU,EAAE;AACvB,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;;ACK5B,MAAM,aAAa,CAAC;AAC3B,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACtK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,eAAe;AACrJ,YAAY,wBAAwB;AACpC,YAAY,yBAAyB;AACrC,YAAY,2BAA2B,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe;AAC5F,YAAY,wBAAwB;AACpC,YAAY,yBAAyB;AACrC,YAAY,2BAA2B,CAAC,EAAE,CAAC;AAC3C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACjJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,YAAY,EAAE;AAClC,wBAAwB,eAAe;AACvC,wBAAwB,wBAAwB;AAChD,wBAAwB,yBAAyB;AACjD,wBAAwB,2BAA2B;AACnD,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,eAAe;AACvC,wBAAwB,wBAAwB;AAChD,wBAAwB,yBAAyB;AACjD,wBAAwB,2BAA2B;AACnD,qBAAqB;AACrB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACnCN,MAAM,6BAA6B,CAAC;AAC3C,IAAI,MAAM;AACV,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACvD;AACA,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC/B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzD,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7C,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACjC,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC;AACvD;AACA,aAAa;AACb,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1B;AACA,oBAAoB,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAClD;AACA;AACA;;ACrBA;AACA;AACA;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -158,7 +158,7 @@ declare class RdtTabContainerComponent implements AfterContentInit {
|
|
|
158
158
|
tabsList: QueryList<RdtTabComponent>;
|
|
159
159
|
tabHeaderButtons?: QueryList<ElementRef<HTMLElement>>;
|
|
160
160
|
tabContent: ElementRef<HTMLElement>;
|
|
161
|
-
|
|
161
|
+
_active: boolean;
|
|
162
162
|
get active(): boolean;
|
|
163
163
|
set active(value: boolean);
|
|
164
164
|
get isTopLevel(): boolean;
|
|
@@ -172,7 +172,7 @@ declare class RdtTabContainerComponent implements AfterContentInit {
|
|
|
172
172
|
get classes(): string;
|
|
173
173
|
get isHorizontal(): boolean;
|
|
174
174
|
get isVertical(): boolean;
|
|
175
|
-
|
|
175
|
+
attrRole: string;
|
|
176
176
|
get hasNonDisabledTabs(): boolean;
|
|
177
177
|
get activeTab(): RdtTabComponent | undefined;
|
|
178
178
|
getTabByValue(value: string): RdtTabComponent | undefined;
|
|
@@ -182,7 +182,7 @@ declare class RdtTabContainerComponent implements AfterContentInit {
|
|
|
182
182
|
scrollIntoView(): void;
|
|
183
183
|
activateTab(value: string): Promise<void>;
|
|
184
184
|
scrollCurrentButtonIntoView(): void;
|
|
185
|
-
|
|
185
|
+
onClick(event: MouseEvent): void;
|
|
186
186
|
private setCurrent;
|
|
187
187
|
private setTab;
|
|
188
188
|
private solidifyTabContentSize;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngrdt/tabs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.81",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=18.2.0",
|
|
6
6
|
"@angular/core": ">=18.2.0",
|
|
7
7
|
"rxjs": ">=7.0.0",
|
|
8
|
-
"@ngrdt/core": "^0.0.
|
|
9
|
-
"@ngrdt/utils": "^0.0.
|
|
10
|
-
"@ngrdt/shortcuts": "^0.0.
|
|
8
|
+
"@ngrdt/core": "^0.0.81",
|
|
9
|
+
"@ngrdt/utils": "^0.0.81",
|
|
10
|
+
"@ngrdt/shortcuts": "^0.0.81"
|
|
11
11
|
},
|
|
12
12
|
"sideEffects": false,
|
|
13
13
|
"module": "fesm2022/ngrdt-tabs.mjs",
|