@acontplus/ng-components 1.0.7 → 1.0.8
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/acontplus-ng-components.mjs +2 -2
- package/fesm2022/acontplus-ng-components.mjs.map +1 -1
- package/index.d.ts +1 -3
- package/package.json +9 -9
- package/src/styles/_custom-buttons.scss +469 -0
- package/src/styles/_custom-dialog.scss +37 -0
- package/src/styles/_mixins.scss +12 -0
- package/src/styles/_variables.scss +23 -0
- package/src/styles/index.scss +15 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acontplus-ng-components.mjs","sources":["../tmp-esm2022/lib/components/cards/mat-dynamic-card/mat-dynamic-card.component.js","../tmp-esm2022/lib/components/dialog-wrapper/dialog-wrapper.component.js","../tmp-esm2022/lib/components/icons/icon-user/icon-user.component.js","../tmp-esm2022/lib/components/icons/svg-icon/svg-icon.component.js","../tmp-esm2022/lib/components/mat-input-chip/mat-input-chip.component.js","../tmp-esm2022/lib/components/mat-theme-button/mat-theme-button.component.js","../tmp-esm2022/lib/components/spinner/spinner.component.js","../tmp-esm2022/lib/components/tables/custom-tabulator/custom-tabulator.component.js","../tmp-esm2022/lib/pipes/get-total.pipe.js","../tmp-esm2022/lib/pipes/status-display.pipe.js","../tmp-esm2022/lib/components/tables/mat-dynamic-table/mat-dynamic-table.component.js","../tmp-esm2022/lib/services/dialog/advanced-dialog.service.js","../tmp-esm2022/lib/services/overlay.service.js","../tmp-esm2022/lib/services/theme.service.js","../tmp-esm2022/lib/models/autocomplete-wrapper.model.js","../tmp-esm2022/lib/services/autocomplete-wrapper.service.js","../tmp-esm2022/lib/components/theme-toggle/theme-toggle.component.js","../tmp-esm2022/lib/models/mat-table-models/field-definition.model.js","../tmp-esm2022/lib/models/mat-table-models/column-definition.model.js","../tmp-esm2022/lib/models/mat-table-models/table-cell-index.model.js","../tmp-esm2022/lib/models/pagination.model.js","../tmp-esm2022/lib/components/autocomplete-wrapper/autocomplete-wrapper.component.js","../tmp-esm2022/lib/directives/to-upper-case.directive.js","../tmp-esm2022/lib/inputs/dynamic-input.js","../tmp-esm2022/lib/interceptors/spinner.interceptor.js","../tmp-esm2022/acontplus-ng-components.js"],"sourcesContent":["import { Component, input, output, booleanAttribute } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/card\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/icon\";\n/**\n * A versatile card component that wraps Angular Material's mat-card with additional functionality\n * and customization options. This component provides a consistent card layout with configurable\n * header, content, and action areas.\n *\n * @example\n * <acp-mat-dynamic-card\n * [cardTitle]=\"'Card Title'\"\n * [cardSubtitle]=\"'Card Subtitle'\"\n * [isHeaderVisible]=\"true\"\n * [areActionsVisible]=\"true\"\n * (primaryButtonClicked)=\"onPrimaryAction()\">\n * Card content goes here\n * </acp-mat-dynamic-card>\n */\nexport class MatDynamicCardComponent {\n // Header inputs\n /**\n * The title text to display in the card header.\n * @default null\n */\n cardTitle = input(null, ...(ngDevMode ? [{ debugName: \"cardTitle\" }] : []));\n /**\n * The subtitle text to display in the card header.\n * @default null\n */\n cardSubtitle = input(null, ...(ngDevMode ? [{ debugName: \"cardSubtitle\" }] : []));\n /**\n * URL for the avatar image to display in the card header.\n * @default null\n */\n avatarImageUrl = input(null, ...(ngDevMode ? [{ debugName: \"avatarImageUrl\" }] : []));\n /**\n * Whether to show the card header section.\n * @default false\n */\n isHeaderVisible = input(false, ...(ngDevMode ? [{ debugName: \"isHeaderVisible\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n // Content inputs\n /**\n * CSS padding value for the card content area.\n * @default '1rem'\n */\n contentPadding = input('1rem', ...(ngDevMode ? [{ debugName: \"contentPadding\" }] : []));\n /**\n * Whether to show a divider between the header and content sections.\n * @default false\n */\n hasDivider = input(false, ...(ngDevMode ? [{ debugName: \"hasDivider\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n // Action inputs\n /**\n * Whether to show the action buttons section.\n * @default false\n */\n areActionsVisible = input(false, ...(ngDevMode ? [{ debugName: \"areActionsVisible\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Text for the primary action button.\n * @default 'Confirm'\n */\n primaryButtonText = input('Confirm', ...(ngDevMode ? [{ debugName: \"primaryButtonText\" }] : []));\n /**\n * Text for the secondary action button.\n * @default 'Cancel'\n */\n secondaryButtonText = input('Cancel', ...(ngDevMode ? [{ debugName: \"secondaryButtonText\" }] : []));\n /**\n * Material icon name for the primary button.\n * @default null\n */\n primaryButtonIcon = input(null, ...(ngDevMode ? [{ debugName: \"primaryButtonIcon\" }] : []));\n /**\n * Material icon name for the secondary button.\n * @default null\n */\n secondaryButtonIcon = input(null, ...(ngDevMode ? [{ debugName: \"secondaryButtonIcon\" }] : []));\n /**\n * Alignment of the action buttons.\n * @default 'end'\n */\n buttonsPosition = input('end', ...(ngDevMode ? [{ debugName: \"buttonsPosition\" }] : []));\n // Output events\n /**\n * Event emitted when the primary button is clicked.\n */\n primaryButtonClicked = output();\n /**\n * Event emitted when the secondary button is clicked.\n */\n secondaryButtonClicked = output();\n /**\n * Event emitted when the card is clicked.\n */\n cardClicked = output();\n // Methods\n /**\n * Handles the primary button click event.\n * Stops event propagation and emits the primaryButtonClicked event.\n * @param event The click event\n */\n handlePrimaryButtonClick(event) {\n event.stopPropagation();\n this.primaryButtonClicked.emit();\n }\n /**\n * Handles the secondary button click event.\n * Stops event propagation and emits the secondaryButtonClicked event.\n * @param event The click event\n */\n handleSecondaryButtonClick(event) {\n event.stopPropagation();\n this.secondaryButtonClicked.emit();\n }\n /**\n * Handles the card click event.\n * Emits the cardClicked event with the original event.\n * @param event The click event\n */\n handleCardClick(event) {\n this.cardClicked.emit(event);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatDynamicCardComponent, isStandalone: true, selector: \"acp-mat-dynamic-card\", inputs: { cardTitle: { classPropertyName: \"cardTitle\", publicName: \"cardTitle\", isSignal: true, isRequired: false, transformFunction: null }, cardSubtitle: { classPropertyName: \"cardSubtitle\", publicName: \"cardSubtitle\", isSignal: true, isRequired: false, transformFunction: null }, avatarImageUrl: { classPropertyName: \"avatarImageUrl\", publicName: \"avatarImageUrl\", isSignal: true, isRequired: false, transformFunction: null }, isHeaderVisible: { classPropertyName: \"isHeaderVisible\", publicName: \"isHeaderVisible\", isSignal: true, isRequired: false, transformFunction: null }, contentPadding: { classPropertyName: \"contentPadding\", publicName: \"contentPadding\", isSignal: true, isRequired: false, transformFunction: null }, hasDivider: { classPropertyName: \"hasDivider\", publicName: \"hasDivider\", isSignal: true, isRequired: false, transformFunction: null }, areActionsVisible: { classPropertyName: \"areActionsVisible\", publicName: \"areActionsVisible\", isSignal: true, isRequired: false, transformFunction: null }, primaryButtonText: { classPropertyName: \"primaryButtonText\", publicName: \"primaryButtonText\", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonText: { classPropertyName: \"secondaryButtonText\", publicName: \"secondaryButtonText\", isSignal: true, isRequired: false, transformFunction: null }, primaryButtonIcon: { classPropertyName: \"primaryButtonIcon\", publicName: \"primaryButtonIcon\", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonIcon: { classPropertyName: \"secondaryButtonIcon\", publicName: \"secondaryButtonIcon\", isSignal: true, isRequired: false, transformFunction: null }, buttonsPosition: { classPropertyName: \"buttonsPosition\", publicName: \"buttonsPosition\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { primaryButtonClicked: \"primaryButtonClicked\", secondaryButtonClicked: \"secondaryButtonClicked\", cardClicked: \"cardClicked\" }, ngImport: i0, template: \"<mat-card\\n appearance=\\\"outlined\\\"\\n (click)=\\\"handleCardClick($event)\\\"\\n [class.mat-card-divider]=\\\"hasDivider()\\\"\\n>\\n @if (isHeaderVisible()) {\\n <mat-card-header>\\n @if (avatarImageUrl()) {\\n <img mat-card-avatar [src]=\\\"avatarImageUrl()\\\" alt=\\\"Card avatar\\\" />\\n }\\n @if (cardTitle()) {\\n <mat-card-title>{{ cardTitle() }}</mat-card-title>\\n }\\n @if (cardSubtitle()) {\\n <mat-card-subtitle>{{ cardSubtitle() }}</mat-card-subtitle>\\n }\\n </mat-card-header>\\n }\\n\\n <mat-card-content [style.padding]=\\\"contentPadding()\\\">\\n <ng-content></ng-content>\\n </mat-card-content>\\n\\n @if (areActionsVisible()) {\\n <mat-card-actions [align]=\\\"buttonsPosition()\\\">\\n @if (secondaryButtonText()) {\\n <button mat-button color=\\\"warn\\\" (click)=\\\"handleSecondaryButtonClick($event)\\\">\\n @if (secondaryButtonIcon()) {\\n <mat-icon>{{ secondaryButtonIcon() }}</mat-icon>\\n }\\n {{ secondaryButtonText() }}\\n </button>\\n }\\n\\n @if (primaryButtonText()) {\\n <button mat-button color=\\\"primary\\\" (click)=\\\"handlePrimaryButtonClick($event)\\\">\\n @if (primaryButtonIcon()) {\\n <mat-icon>{{ primaryButtonIcon() }}</mat-icon>\\n }\\n {{ primaryButtonText() }}\\n </button>\\n }\\n </mat-card-actions>\\n }\\n</mat-card>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatCardModule }, { kind: \"component\", type: i1.MatCard, selector: \"mat-card\", inputs: [\"appearance\"], exportAs: [\"matCard\"] }, { kind: \"directive\", type: i1.MatCardActions, selector: \"mat-card-actions\", inputs: [\"align\"], exportAs: [\"matCardActions\"] }, { kind: \"directive\", type: i1.MatCardAvatar, selector: \"[mat-card-avatar], [matCardAvatar]\" }, { kind: \"directive\", type: i1.MatCardContent, selector: \"mat-card-content\" }, { kind: \"component\", type: i1.MatCardHeader, selector: \"mat-card-header\" }, { kind: \"directive\", type: i1.MatCardSubtitle, selector: \"mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]\" }, { kind: \"directive\", type: i1.MatCardTitle, selector: \"mat-card-title, [mat-card-title], [matCardTitle]\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicCardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-dynamic-card', standalone: true, imports: [MatCardModule, MatButtonModule, MatIconModule], template: \"<mat-card\\n appearance=\\\"outlined\\\"\\n (click)=\\\"handleCardClick($event)\\\"\\n [class.mat-card-divider]=\\\"hasDivider()\\\"\\n>\\n @if (isHeaderVisible()) {\\n <mat-card-header>\\n @if (avatarImageUrl()) {\\n <img mat-card-avatar [src]=\\\"avatarImageUrl()\\\" alt=\\\"Card avatar\\\" />\\n }\\n @if (cardTitle()) {\\n <mat-card-title>{{ cardTitle() }}</mat-card-title>\\n }\\n @if (cardSubtitle()) {\\n <mat-card-subtitle>{{ cardSubtitle() }}</mat-card-subtitle>\\n }\\n </mat-card-header>\\n }\\n\\n <mat-card-content [style.padding]=\\\"contentPadding()\\\">\\n <ng-content></ng-content>\\n </mat-card-content>\\n\\n @if (areActionsVisible()) {\\n <mat-card-actions [align]=\\\"buttonsPosition()\\\">\\n @if (secondaryButtonText()) {\\n <button mat-button color=\\\"warn\\\" (click)=\\\"handleSecondaryButtonClick($event)\\\">\\n @if (secondaryButtonIcon()) {\\n <mat-icon>{{ secondaryButtonIcon() }}</mat-icon>\\n }\\n {{ secondaryButtonText() }}\\n </button>\\n }\\n\\n @if (primaryButtonText()) {\\n <button mat-button color=\\\"primary\\\" (click)=\\\"handlePrimaryButtonClick($event)\\\">\\n @if (primaryButtonIcon()) {\\n <mat-icon>{{ primaryButtonIcon() }}</mat-icon>\\n }\\n {{ primaryButtonText() }}\\n </button>\\n }\\n </mat-card-actions>\\n }\\n</mat-card>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWR5bmFtaWMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkcy9tYXQtZHluYW1pYy1jYXJkL21hdC1keW5hbWljLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2FyZHMvbWF0LWR5bmFtaWMtY2FyZC9tYXQtZHluYW1pYy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGdCQUFnQjtJQUNoQjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxDQUFnQixJQUFJLHFEQUFDLENBQUM7SUFFdkM7OztPQUdHO0lBQ0gsWUFBWSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSx3REFBQyxDQUFDO0lBRTFDOzs7T0FHRztJQUNILGNBQWMsR0FBRyxLQUFLLENBQWdCLElBQUksMERBQUMsQ0FBQztJQUU1Qzs7O09BR0c7SUFDSCxlQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssbURBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7SUFFaEUsaUJBQWlCO0lBQ2pCOzs7T0FHRztJQUNILGNBQWMsR0FBRyxLQUFLLENBQVMsTUFBTSwwREFBQyxDQUFDO0lBRXZDOzs7T0FHRztJQUNILFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyw4Q0FBSSxTQUFTLEVBQUUsZ0JBQWdCLE9BQTdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEdBQUMsQ0FBQztJQUUzRCxnQkFBZ0I7SUFDaEI7OztPQUdHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLEtBQUsscURBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7SUFFbEU7OztPQUdHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFNBQVMsNkRBQUMsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxtQkFBbUIsR0FBRyxLQUFLLENBQUMsUUFBUSwrREFBQyxDQUFDO0lBRXRDOzs7T0FHRztJQUNILGlCQUFpQixHQUFHLEtBQUssQ0FBZ0IsSUFBSSw2REFBQyxDQUFDO0lBRS9DOzs7T0FHRztJQUNILG1CQUFtQixHQUFHLEtBQUssQ0FBZ0IsSUFBSSwrREFBQyxDQUFDO0lBRWpEOzs7T0FHRztJQUNILGVBQWUsR0FBRyxLQUFLLENBQWtCLEtBQUssMkRBQUMsQ0FBQztJQUVoRCxnQkFBZ0I7SUFDaEI7O09BRUc7SUFDSCxvQkFBb0IsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV0Qzs7T0FFRztJQUNILHNCQUFzQixHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRXhDOztPQUVHO0lBQ0gsV0FBVyxHQUFHLE1BQU0sRUFBUyxDQUFDO0lBRTlCLFVBQVU7SUFDVjs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsS0FBWTtRQUNuQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsMEJBQTBCLENBQUMsS0FBWTtRQUNyQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZUFBZSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt1R0F4SFUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsdStEQzNCcEMsbTNDQTZDQSx5RER0QlksYUFBYSx3dUJBQUUsZUFBZSxtWEFBRSxhQUFhOzsyRkFJNUMsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuLyoqXG4gKiBBIHZlcnNhdGlsZSBjYXJkIGNvbXBvbmVudCB0aGF0IHdyYXBzIEFuZ3VsYXIgTWF0ZXJpYWwncyBtYXQtY2FyZCB3aXRoIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICogYW5kIGN1c3RvbWl6YXRpb24gb3B0aW9ucy4gVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSBjb25zaXN0ZW50IGNhcmQgbGF5b3V0IHdpdGggY29uZmlndXJhYmxlXG4gKiBoZWFkZXIsIGNvbnRlbnQsIGFuZCBhY3Rpb24gYXJlYXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDxhY3AtbWF0LWR5bmFtaWMtY2FyZFxuICogICBbY2FyZFRpdGxlXT1cIidDYXJkIFRpdGxlJ1wiXG4gKiAgIFtjYXJkU3VidGl0bGVdPVwiJ0NhcmQgU3VidGl0bGUnXCJcbiAqICAgW2lzSGVhZGVyVmlzaWJsZV09XCJ0cnVlXCJcbiAqICAgW2FyZUFjdGlvbnNWaXNpYmxlXT1cInRydWVcIlxuICogICAocHJpbWFyeUJ1dHRvbkNsaWNrZWQpPVwib25QcmltYXJ5QWN0aW9uKClcIj5cbiAqICAgQ2FyZCBjb250ZW50IGdvZXMgaGVyZVxuICogPC9hY3AtbWF0LWR5bmFtaWMtY2FyZD5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLW1hdC1keW5hbWljLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0Q2FyZE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdC1keW5hbWljLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbWF0LWR5bmFtaWMtY2FyZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE1hdER5bmFtaWNDYXJkQ29tcG9uZW50IHtcbiAgLy8gSGVhZGVyIGlucHV0c1xuICAvKipcbiAgICogVGhlIHRpdGxlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgY2FyZCBoZWFkZXIuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGNhcmRUaXRsZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBUaGUgc3VidGl0bGUgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBjYXJkIGhlYWRlci5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgY2FyZFN1YnRpdGxlID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFVSTCBmb3IgdGhlIGF2YXRhciBpbWFnZSB0byBkaXNwbGF5IGluIHRoZSBjYXJkIGhlYWRlci5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgYXZhdGFySW1hZ2VVcmwgPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBjYXJkIGhlYWRlciBzZWN0aW9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaXNIZWFkZXJWaXNpYmxlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8vIENvbnRlbnQgaW5wdXRzXG4gIC8qKlxuICAgKiBDU1MgcGFkZGluZyB2YWx1ZSBmb3IgdGhlIGNhcmQgY29udGVudCBhcmVhLlxuICAgKiBAZGVmYXVsdCAnMXJlbSdcbiAgICovXG4gIGNvbnRlbnRQYWRkaW5nID0gaW5wdXQ8c3RyaW5nPignMXJlbScpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSBkaXZpZGVyIGJldHdlZW4gdGhlIGhlYWRlciBhbmQgY29udGVudCBzZWN0aW9ucy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGhhc0RpdmlkZXIgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLy8gQWN0aW9uIGlucHV0c1xuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBhY3Rpb24gYnV0dG9ucyBzZWN0aW9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgYXJlQWN0aW9uc1Zpc2libGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIFRleHQgZm9yIHRoZSBwcmltYXJ5IGFjdGlvbiBidXR0b24uXG4gICAqIEBkZWZhdWx0ICdDb25maXJtJ1xuICAgKi9cbiAgcHJpbWFyeUJ1dHRvblRleHQgPSBpbnB1dCgnQ29uZmlybScpO1xuXG4gIC8qKlxuICAgKiBUZXh0IGZvciB0aGUgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b24uXG4gICAqIEBkZWZhdWx0ICdDYW5jZWwnXG4gICAqL1xuICBzZWNvbmRhcnlCdXR0b25UZXh0ID0gaW5wdXQoJ0NhbmNlbCcpO1xuXG4gIC8qKlxuICAgKiBNYXRlcmlhbCBpY29uIG5hbWUgZm9yIHRoZSBwcmltYXJ5IGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgcHJpbWFyeUJ1dHRvbkljb24gPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogTWF0ZXJpYWwgaWNvbiBuYW1lIGZvciB0aGUgc2Vjb25kYXJ5IGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgc2Vjb25kYXJ5QnV0dG9uSWNvbiA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBBbGlnbm1lbnQgb2YgdGhlIGFjdGlvbiBidXR0b25zLlxuICAgKiBAZGVmYXVsdCAnZW5kJ1xuICAgKi9cbiAgYnV0dG9uc1Bvc2l0aW9uID0gaW5wdXQ8J3N0YXJ0JyB8ICdlbmQnPignZW5kJyk7XG5cbiAgLy8gT3V0cHV0IGV2ZW50c1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWNvbmRhcnkgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBzZWNvbmRhcnlCdXR0b25DbGlja2VkID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBpcyBjbGlja2VkLlxuICAgKi9cbiAgY2FyZENsaWNrZWQgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgLy8gTWV0aG9kc1xuICAvKipcbiAgICogSGFuZGxlcyB0aGUgcHJpbWFyeSBidXR0b24gY2xpY2sgZXZlbnQuXG4gICAqIFN0b3BzIGV2ZW50IHByb3BhZ2F0aW9uIGFuZCBlbWl0cyB0aGUgcHJpbWFyeUJ1dHRvbkNsaWNrZWQgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIGhhbmRsZVByaW1hcnlCdXR0b25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnByaW1hcnlCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBzZWNvbmRhcnkgYnV0dG9uIGNsaWNrIGV2ZW50LlxuICAgKiBTdG9wcyBldmVudCBwcm9wYWdhdGlvbiBhbmQgZW1pdHMgdGhlIHNlY29uZGFyeUJ1dHRvbkNsaWNrZWQgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIGhhbmRsZVNlY29uZGFyeUJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2Vjb25kYXJ5QnV0dG9uQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgY2FyZCBjbGljayBldmVudC5cbiAgICogRW1pdHMgdGhlIGNhcmRDbGlja2VkIGV2ZW50IHdpdGggdGhlIG9yaWdpbmFsIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBoYW5kbGVDYXJkQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkXG4gIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiXG4gIChjbGljayk9XCJoYW5kbGVDYXJkQ2xpY2soJGV2ZW50KVwiXG4gIFtjbGFzcy5tYXQtY2FyZC1kaXZpZGVyXT1cImhhc0RpdmlkZXIoKVwiXG4+XG4gIEBpZiAoaXNIZWFkZXJWaXNpYmxlKCkpIHtcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgQGlmIChhdmF0YXJJbWFnZVVybCgpKSB7XG4gICAgICAgIDxpbWcgbWF0LWNhcmQtYXZhdGFyIFtzcmNdPVwiYXZhdGFySW1hZ2VVcmwoKVwiIGFsdD1cIkNhcmQgYXZhdGFyXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY2FyZFRpdGxlKCkpIHtcbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPnt7IGNhcmRUaXRsZSgpIH19PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY2FyZFN1YnRpdGxlKCkpIHtcbiAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlPnt7IGNhcmRTdWJ0aXRsZSgpIH19PC9tYXQtY2FyZC1zdWJ0aXRsZT5cbiAgICAgIH1cbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgfVxuXG4gIDxtYXQtY2FyZC1jb250ZW50IFtzdHlsZS5wYWRkaW5nXT1cImNvbnRlbnRQYWRkaW5nKClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cblxuICBAaWYgKGFyZUFjdGlvbnNWaXNpYmxlKCkpIHtcbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBbYWxpZ25dPVwiYnV0dG9uc1Bvc2l0aW9uKClcIj5cbiAgICAgIEBpZiAoc2Vjb25kYXJ5QnV0dG9uVGV4dCgpKSB7XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwiaGFuZGxlU2Vjb25kYXJ5QnV0dG9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIEBpZiAoc2Vjb25kYXJ5QnV0dG9uSWNvbigpKSB7XG4gICAgICAgICAgICA8bWF0LWljb24+e3sgc2Vjb25kYXJ5QnV0dG9uSWNvbigpIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAge3sgc2Vjb25kYXJ5QnV0dG9uVGV4dCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByaW1hcnlCdXR0b25UZXh0KCkpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJoYW5kbGVQcmltYXJ5QnV0dG9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIEBpZiAocHJpbWFyeUJ1dHRvbkljb24oKSkge1xuICAgICAgICAgICAgPG1hdC1pY29uPnt7IHByaW1hcnlCdXR0b25JY29uKCkgfX08L21hdC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBwcmltYXJ5QnV0dG9uVGV4dCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgfVxuPC9tYXQtY2FyZD5cbiJdfQ==","import { Component, ViewChild, ViewContainerRef, ChangeDetectionStrategy, inject, } from '@angular/core';\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"@angular/material/icon\";\nimport * as i3 from \"@angular/material/button\";\n/**\n * A wrapper component for Angular Material dialogs that provides a consistent look and feel,\n * including a draggable header and the ability to dynamically create components inside the dialog.\n *\n * This component is typically used with the AdvancedDialogService's openInWrapper method.\n *\n * @example\n * // In your service or component:\n * this.dialogService.openInWrapper({\n * component: YourDialogContentComponent,\n * title: 'Dialog Title',\n * icon: 'info',\n * data: { message: 'This is some data passed to the dialog content component' }\n * });\n */\nexport class DialogWrapperComponent {\n dialogRef = inject(MatDialogRef);\n config = inject(MAT_DIALOG_DATA);\n /**\n * A template reference that acts as an anchor for dynamic content.\n * This is where the component specified in the config will be rendered.\n */\n contentHost;\n /**\n * A reference to the header element for the z-index focus logic.\n * Used to bring the dialog to the front when clicked.\n */\n header;\n /**\n * Static counter to track the highest z-index for multiple dialogs.\n * Ensures that the most recently clicked dialog appears on top.\n */\n static lastZIndex = 1000;\n /**\n * Creates an instance of DialogWrapperComponent.\n *\n * @param dialogRef Reference to the dialog opened via the Material Dialog service\n * @param config Configuration for the dialog wrapper, injected from MAT_DIALOG_DATA\n */\n constructor() { }\n /**\n * Lifecycle hook that initializes the dynamic content after the view is ready.\n * Creates the component specified in the config and passes data to it.\n */\n ngAfterViewInit() {\n // Dynamically create the content component after the view is ready.\n this.contentHost.clear();\n const componentRef = this.contentHost.createComponent(this.config.component);\n // Pass the provided data directly to the new component's instance.\n // This requires the content component to have an @Input() property named 'data'.\n if (this.config.data && componentRef.instance) {\n componentRef.instance.data = this.config.data;\n }\n }\n /**\n * Closes the dialog.\n * Called when the close button in the header is clicked.\n */\n onClose() {\n this.dialogRef.close();\n }\n /**\n * Brings the dialog to the front by adjusting its z-index.\n * Called when the dialog header is clicked.\n */\n bringToFront() {\n const pane = this.header?.nativeElement.closest('.cdk-overlay-pane');\n if (pane) {\n pane.style.zIndex = (++DialogWrapperComponent.lastZIndex).toString();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: DialogWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: DialogWrapperComponent, isStandalone: true, selector: \"acp-dialog-wrapper\", viewQueries: [{ propertyName: \"contentHost\", first: true, predicate: [\"contentHost\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"header\", first: true, predicate: [\"dialogHeader\"], descendants: true }], ngImport: i0, template: \"@if (!config.hideHeader) {\\n <div\\n class=\\\"dialog-header\\\"\\n cdkDrag\\n cdkDragRootElement=\\\".cdk-overlay-pane\\\"\\n cdkDragHandle\\n #dialogHeader\\n (mousedown)=\\\"bringToFront()\\\"\\n >\\n <h6 mat-dialog-title>\\n @if (config.icon) {\\n <mat-icon class=\\\"title-icon\\\" aria-hidden=\\\"true\\\">{{ config.icon }}</mat-icon>\\n }\\n <span>{{ config.title }}</span>\\n <button mat-icon-button class=\\\"close-button\\\" (click)=\\\"onClose()\\\" aria-label=\\\"Cerrar di\\u00E1logo\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </h6>\\n </div>\\n}\\n\\n<ng-template #contentHost></ng-template>\\n\", styles: [\".dialog-header{cursor:move;padding:12px 24px;border-bottom:1px solid #dee2e6;color:#212529}h6[mat-dialog-title]{display:flex;align-items:center;font-size:1.2rem;font-weight:500;margin:0;width:100%}.title-icon{margin-right:12px;vertical-align:middle}h6[mat-dialog-title] span{flex-grow:1}.close-button{margin-left:auto}mat-dialog-content{padding:24px}\\n\"], dependencies: [{ kind: \"directive\", type: CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"directive\", type: CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: [\"cdkDragHandleDisabled\"] }, { kind: \"ngmodule\", type: MatDialogModule }, { kind: \"directive\", type: i1.MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: DialogWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-dialog-wrapper', standalone: true, imports: [CdkDrag, CdkDragHandle, MatDialogModule, MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"@if (!config.hideHeader) {\\n <div\\n class=\\\"dialog-header\\\"\\n cdkDrag\\n cdkDragRootElement=\\\".cdk-overlay-pane\\\"\\n cdkDragHandle\\n #dialogHeader\\n (mousedown)=\\\"bringToFront()\\\"\\n >\\n <h6 mat-dialog-title>\\n @if (config.icon) {\\n <mat-icon class=\\\"title-icon\\\" aria-hidden=\\\"true\\\">{{ config.icon }}</mat-icon>\\n }\\n <span>{{ config.title }}</span>\\n <button mat-icon-button class=\\\"close-button\\\" (click)=\\\"onClose()\\\" aria-label=\\\"Cerrar di\\u00E1logo\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </h6>\\n </div>\\n}\\n\\n<ng-template #contentHost></ng-template>\\n\", styles: [\".dialog-header{cursor:move;padding:12px 24px;border-bottom:1px solid #dee2e6;color:#212529}h6[mat-dialog-title]{display:flex;align-items:center;font-size:1.2rem;font-weight:500;margin:0;width:100%}.title-icon{margin-right:12px;vertical-align:middle}h6[mat-dialog-title] span{flex-grow:1}.close-button{margin-left:auto}mat-dialog-content{padding:24px}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { contentHost: [{\n type: ViewChild,\n args: ['contentHost', { read: ViewContainerRef, static: true }]\n }], header: [{\n type: ViewChild,\n args: ['dialogHeader', { static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZ0JBQWdCLEVBR2hCLHVCQUF1QixFQUN2QixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUczRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBdUMsWUFBWSxDQUFDLENBQUM7SUFDdkUsTUFBTSxHQUFHLE1BQU0sQ0FBc0IsZUFBZSxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBRUgsV0FBVyxDQUFvQjtJQUUvQjs7O09BR0c7SUFDMkMsTUFBTSxDQUFjO0lBRWxFOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBS2pDOzs7OztPQUtHO0lBQ0gsZ0JBQWUsQ0FBQztJQUVoQjs7O09BR0c7SUFDSCxlQUFlO1FBQ2Isb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RSxtRUFBbUU7UUFDbkUsaUZBQWlGO1FBQ2pGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLFlBQVksQ0FBQyxRQUFnQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFnQixDQUFDO1FBQ3BGLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7dUdBbkVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHFLQVFDLGdCQUFnQixvSUMvQ3BELHNuQkFzQkEsMFpEWVksT0FBTyx3Y0FBRSxhQUFhLDhGQUFFLGVBQWUsOEtBQUUsYUFBYSxtTEFBRSxlQUFlOzsyRkFLdEUsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLG1CQUdqRSx1QkFBdUIsQ0FBQyxNQUFNO3dEQVcvQyxXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBT3BCLE1BQU07c0JBQW5ELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0hhbmRsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRGlhbG9nV3JhcHBlckNvbmZpZyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgY29tcG9uZW50IGZvciBBbmd1bGFyIE1hdGVyaWFsIGRpYWxvZ3MgdGhhdCBwcm92aWRlcyBhIGNvbnNpc3RlbnQgbG9vayBhbmQgZmVlbCxcbiAqIGluY2x1ZGluZyBhIGRyYWdnYWJsZSBoZWFkZXIgYW5kIHRoZSBhYmlsaXR5IHRvIGR5bmFtaWNhbGx5IGNyZWF0ZSBjb21wb25lbnRzIGluc2lkZSB0aGUgZGlhbG9nLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGlzIHR5cGljYWxseSB1c2VkIHdpdGggdGhlIEFkdmFuY2VkRGlhbG9nU2VydmljZSdzIG9wZW5JbldyYXBwZXIgbWV0aG9kLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJbiB5b3VyIHNlcnZpY2Ugb3IgY29tcG9uZW50OlxuICogdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5JbldyYXBwZXIoe1xuICogICBjb21wb25lbnQ6IFlvdXJEaWFsb2dDb250ZW50Q29tcG9uZW50LFxuICogICB0aXRsZTogJ0RpYWxvZyBUaXRsZScsXG4gKiAgIGljb246ICdpbmZvJyxcbiAqICAgZGF0YTogeyBtZXNzYWdlOiAnVGhpcyBpcyBzb21lIGRhdGEgcGFzc2VkIHRvIHRoZSBkaWFsb2cgY29udGVudCBjb21wb25lbnQnIH1cbiAqIH0pO1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3AtZGlhbG9nLXdyYXBwZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2RrRHJhZywgQ2RrRHJhZ0hhbmRsZSwgTWF0RGlhbG9nTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBkaWFsb2dSZWYgPSBpbmplY3Q8TWF0RGlhbG9nUmVmPERpYWxvZ1dyYXBwZXJDb21wb25lbnQ+PihNYXREaWFsb2dSZWYpO1xuICBjb25maWcgPSBpbmplY3Q8RGlhbG9nV3JhcHBlckNvbmZpZz4oTUFUX0RJQUxPR19EQVRBKTtcblxuICAvKipcbiAgICogQSB0ZW1wbGF0ZSByZWZlcmVuY2UgdGhhdCBhY3RzIGFzIGFuIGFuY2hvciBmb3IgZHluYW1pYyBjb250ZW50LlxuICAgKiBUaGlzIGlzIHdoZXJlIHRoZSBjb21wb25lbnQgc3BlY2lmaWVkIGluIHRoZSBjb25maWcgd2lsbCBiZSByZW5kZXJlZC5cbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRIb3N0JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgY29udGVudEhvc3QhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgaGVhZGVyIGVsZW1lbnQgZm9yIHRoZSB6LWluZGV4IGZvY3VzIGxvZ2ljLlxuICAgKiBVc2VkIHRvIGJyaW5nIHRoZSBkaWFsb2cgdG8gdGhlIGZyb250IHdoZW4gY2xpY2tlZC5cbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ0hlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBoZWFkZXI/OiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBTdGF0aWMgY291bnRlciB0byB0cmFjayB0aGUgaGlnaGVzdCB6LWluZGV4IGZvciBtdWx0aXBsZSBkaWFsb2dzLlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIG1vc3QgcmVjZW50bHkgY2xpY2tlZCBkaWFsb2cgYXBwZWFycyBvbiB0b3AuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBsYXN0WkluZGV4ID0gMTAwMDtcblxuICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IHVua25vd25bXSk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nV3JhcHBlckNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpYWxvZ1JlZiBSZWZlcmVuY2UgdG8gdGhlIGRpYWxvZyBvcGVuZWQgdmlhIHRoZSBNYXRlcmlhbCBEaWFsb2cgc2VydmljZVxuICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkaWFsb2cgd3JhcHBlciwgaW5qZWN0ZWQgZnJvbSBNQVRfRElBTE9HX0RBVEFcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdGhhdCBpbml0aWFsaXplcyB0aGUgZHluYW1pYyBjb250ZW50IGFmdGVyIHRoZSB2aWV3IGlzIHJlYWR5LlxuICAgKiBDcmVhdGVzIHRoZSBjb21wb25lbnQgc3BlY2lmaWVkIGluIHRoZSBjb25maWcgYW5kIHBhc3NlcyBkYXRhIHRvIGl0LlxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIER5bmFtaWNhbGx5IGNyZWF0ZSB0aGUgY29udGVudCBjb21wb25lbnQgYWZ0ZXIgdGhlIHZpZXcgaXMgcmVhZHkuXG4gICAgdGhpcy5jb250ZW50SG9zdC5jbGVhcigpO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29udGVudEhvc3QuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29uZmlnLmNvbXBvbmVudCk7XG5cbiAgICAvLyBQYXNzIHRoZSBwcm92aWRlZCBkYXRhIGRpcmVjdGx5IHRvIHRoZSBuZXcgY29tcG9uZW50J3MgaW5zdGFuY2UuXG4gICAgLy8gVGhpcyByZXF1aXJlcyB0aGUgY29udGVudCBjb21wb25lbnQgdG8gaGF2ZSBhbiBASW5wdXQoKSBwcm9wZXJ0eSBuYW1lZCAnZGF0YScuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGEgJiYgY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XG4gICAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSkuZGF0YSA9IHRoaXMuY29uZmlnLmRhdGE7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZGlhbG9nLlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIgaXMgY2xpY2tlZC5cbiAgICovXG4gIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmluZ3MgdGhlIGRpYWxvZyB0byB0aGUgZnJvbnQgYnkgYWRqdXN0aW5nIGl0cyB6LWluZGV4LlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZGlhbG9nIGhlYWRlciBpcyBjbGlja2VkLlxuICAgKi9cbiAgYnJpbmdUb0Zyb250KCk6IHZvaWQge1xuICAgIGNvbnN0IHBhbmUgPSB0aGlzLmhlYWRlcj8ubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuY2RrLW92ZXJsYXktcGFuZScpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmIChwYW5lKSB7XG4gICAgICBwYW5lLnN0eWxlLnpJbmRleCA9ICgrK0RpYWxvZ1dyYXBwZXJDb21wb25lbnQubGFzdFpJbmRleCkudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoIWNvbmZpZy5oaWRlSGVhZGVyKSB7XG4gIDxkaXZcbiAgICBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIlxuICAgIGNka0RyYWdcbiAgICBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuY2RrLW92ZXJsYXktcGFuZVwiXG4gICAgY2RrRHJhZ0hhbmRsZVxuICAgICNkaWFsb2dIZWFkZXJcbiAgICAobW91c2Vkb3duKT1cImJyaW5nVG9Gcm9udCgpXCJcbiAgPlxuICAgIDxoNiBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgQGlmIChjb25maWcuaWNvbikge1xuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ0aXRsZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3sgY29uZmlnLmljb24gfX08L21hdC1pY29uPlxuICAgICAgfVxuICAgICAgPHNwYW4+e3sgY29uZmlnLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwib25DbG9zZSgpXCIgYXJpYS1sYWJlbD1cIkNlcnJhciBkacOhbG9nb1wiPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9oNj5cbiAgPC9kaXY+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudEhvc3Q+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class IconUserComponent {\n size = input('35', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: IconUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.1\", type: IconUserComponent, isStandalone: true, selector: \"acp-icon-user\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<svg\\n [attr.width]=\\\"size()\\\"\\n [attr.height]=\\\"size()\\\"\\n version=\\\"1.1\\\"\\n id=\\\"Capa_1\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n viewBox=\\\"0 0 480 480\\\"\\n xml:space=\\\"preserve\\\"\\n fill=\\\"#000000\\\"\\n>\\n <g id=\\\"SVGRepo_bgCarrier\\\" stroke-width=\\\"0\\\"></g>\\n <g id=\\\"SVGRepo_tracerCarrier\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"></g>\\n <g id=\\\"SVGRepo_iconCarrier\\\">\\n <g>\\n <g>\\n <circle style=\\\"fill: #b8bac0\\\" cx=\\\"240\\\" cy=\\\"240\\\" r=\\\"240\\\"></circle>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M240,360.07c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611 c2.02,1.235,3.588,3.262,3.894,5.784c3.992,32.484,34.781,56.977,71.625,56.977c36.836,0,67.625-24.496,71.625-56.977 c0.31-2.525,1.844-4.549,3.895-5.78c-3.08-12.233-3.503-28.999-3.517-40.615C293.297,348.079,267.944,360.07,240,360.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #d7dbe0\\\"\\n d=\\\"M310.44,330.174c-18.549,18.477-43.242,29.896-70.44,29.896 c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611c2.02,1.235,3.588,3.262,3.894,5.784 c1.765,14.359,8.778,27.144,19.223,36.954C235.766,405.265,290.437,357.702,310.44,330.174z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M312,160.07H176c-22.055,0-40,17.945-40,40v48c0,61.758,46.656,112,104,112s104-50.242,104-112 v-56C344,174.426,329.648,160.07,312,160.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M296,72.07H192c-15.047,0-27.695,10.438-31.102,24.449C133.359,100.02,112,123.598,112,152.07v40 c0,20.617,8.752,39.851,24,53.52v-45.52c0-22.055,17.945-40,40-40h136c17.648,0,32,14.355,32,32v53.511 c15.251-13.667,24-32.899,24-53.511v-48C368,104.371,335.703,72.07,296,72.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M61.632,400.544C105.562,449.319,169.191,480,240,480s134.438-30.681,178.368-79.456 c-7.66-10.356-18.462-18.77-32.352-22.659c-0.32-0.09-0.641-0.16-0.969-0.207l-63.859-9.582c-0.391-0.059-1.227-0.09-1.625-0.09 c-4.039,0-7.445,3.012-7.938,7.023c-4,32.48-34.789,56.977-71.625,56.977c-36.844,0-67.633-24.492-71.625-56.977 c-0.5-4.129-4.219-7.234-8.141-7.02c-0.469-0.027-0.93,0.012-1.422,0.086l-63.859,9.582c-0.328,0.047-0.648,0.117-0.969,0.207 C80.094,381.775,69.292,390.188,61.632,400.544z\\\"\\n ></path>\\n </g>\\n </g>\\n </g>\\n</svg>\\n\", styles: [\"\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: IconUserComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-icon-user', imports: [], template: \"<svg\\n [attr.width]=\\\"size()\\\"\\n [attr.height]=\\\"size()\\\"\\n version=\\\"1.1\\\"\\n id=\\\"Capa_1\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n viewBox=\\\"0 0 480 480\\\"\\n xml:space=\\\"preserve\\\"\\n fill=\\\"#000000\\\"\\n>\\n <g id=\\\"SVGRepo_bgCarrier\\\" stroke-width=\\\"0\\\"></g>\\n <g id=\\\"SVGRepo_tracerCarrier\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"></g>\\n <g id=\\\"SVGRepo_iconCarrier\\\">\\n <g>\\n <g>\\n <circle style=\\\"fill: #b8bac0\\\" cx=\\\"240\\\" cy=\\\"240\\\" r=\\\"240\\\"></circle>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M240,360.07c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611 c2.02,1.235,3.588,3.262,3.894,5.784c3.992,32.484,34.781,56.977,71.625,56.977c36.836,0,67.625-24.496,71.625-56.977 c0.31-2.525,1.844-4.549,3.895-5.78c-3.08-12.233-3.503-28.999-3.517-40.615C293.297,348.079,267.944,360.07,240,360.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #d7dbe0\\\"\\n d=\\\"M310.44,330.174c-18.549,18.477-43.242,29.896-70.44,29.896 c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611c2.02,1.235,3.588,3.262,3.894,5.784 c1.765,14.359,8.778,27.144,19.223,36.954C235.766,405.265,290.437,357.702,310.44,330.174z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M312,160.07H176c-22.055,0-40,17.945-40,40v48c0,61.758,46.656,112,104,112s104-50.242,104-112 v-56C344,174.426,329.648,160.07,312,160.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M296,72.07H192c-15.047,0-27.695,10.438-31.102,24.449C133.359,100.02,112,123.598,112,152.07v40 c0,20.617,8.752,39.851,24,53.52v-45.52c0-22.055,17.945-40,40-40h136c17.648,0,32,14.355,32,32v53.511 c15.251-13.667,24-32.899,24-53.511v-48C368,104.371,335.703,72.07,296,72.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M61.632,400.544C105.562,449.319,169.191,480,240,480s134.438-30.681,178.368-79.456 c-7.66-10.356-18.462-18.77-32.352-22.659c-0.32-0.09-0.641-0.16-0.969-0.207l-63.859-9.582c-0.391-0.059-1.227-0.09-1.625-0.09 c-4.039,0-7.445,3.012-7.938,7.023c-4,32.48-34.789,56.977-71.625,56.977c-36.844,0-67.633-24.492-71.625-56.977 c-0.5-4.129-4.219-7.234-8.141-7.02c-0.469-0.027-0.93,0.012-1.422,0.086l-63.859,9.582c-0.328,0.047-0.648,0.117-0.969,0.207 C80.094,381.775,69.292,390.188,61.632,400.544z\\\"\\n ></path>\\n </g>\\n </g>\\n </g>\\n</svg>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb25zL2ljb24tdXNlci9pY29uLXVzZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaWNvbnMvaWNvbi11c2VyL2ljb24tdXNlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRakQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksZ0RBQUMsQ0FBQzt1R0FEUixpQkFBaUI7MkZBQWpCLGlCQUFpQiwwTUNSOUIsZ3JGQTJEQTs7MkZEbkRhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxlQUFlLFdBQ2hCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1pY29uLXVzZXInLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdXNlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pY29uLXVzZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uVXNlckNvbXBvbmVudCB7XG4gIHNpemUgPSBpbnB1dCgnMzUnKTtcbn1cbiIsIjxzdmdcbiAgW2F0dHIud2lkdGhdPVwic2l6ZSgpXCJcbiAgW2F0dHIuaGVpZ2h0XT1cInNpemUoKVwiXG4gIHZlcnNpb249XCIxLjFcIlxuICBpZD1cIkNhcGFfMVwiXG4gIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICB2aWV3Qm94PVwiMCAwIDQ4MCA0ODBcIlxuICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiXG4gIGZpbGw9XCIjMDAwMDAwXCJcbj5cbiAgPGcgaWQ9XCJTVkdSZXBvX2JnQ2FycmllclwiIHN0cm9rZS13aWR0aD1cIjBcIj48L2c+XG4gIDxnIGlkPVwiU1ZHUmVwb190cmFjZXJDYXJyaWVyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9nPlxuICA8ZyBpZD1cIlNWR1JlcG9faWNvbkNhcnJpZXJcIj5cbiAgICA8Zz5cbiAgICAgIDxnPlxuICAgICAgICA8Y2lyY2xlIHN0eWxlPVwiZmlsbDogI2I4YmFjMFwiIGN4PVwiMjQwXCIgY3k9XCIyNDBcIiByPVwiMjQwXCI+PC9jaXJjbGU+XG4gICAgICA8L2c+XG4gICAgICA8Zz5cbiAgICAgICAgPGc+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogI2ZmZmZmZlwiXG4gICAgICAgICAgICBkPVwiTTI0MCwzNjAuMDdjLTI3Ljk0NCwwLTUzLjI5Ny0xMS45OTEtNzIuMDAzLTMxLjM3MmMtMC4wMTQsMTEuNjE1LTAuNDM2LDI4LjM3OS0zLjUxNiw0MC42MTEgYzIuMDIsMS4yMzUsMy41ODgsMy4yNjIsMy44OTQsNS43ODRjMy45OTIsMzIuNDg0LDM0Ljc4MSw1Ni45NzcsNzEuNjI1LDU2Ljk3N2MzNi44MzYsMCw2Ny42MjUtMjQuNDk2LDcxLjYyNS01Ni45NzcgYzAuMzEtMi41MjUsMS44NDQtNC41NDksMy44OTUtNS43OGMtMy4wOC0xMi4yMzMtMy41MDMtMjguOTk5LTMuNTE3LTQwLjYxNUMyOTMuMjk3LDM0OC4wNzksMjY3Ljk0NCwzNjAuMDcsMjQwLDM2MC4wN3pcIlxuICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvZz5cbiAgICAgIDxnPlxuICAgICAgICA8Zz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjZDdkYmUwXCJcbiAgICAgICAgICAgIGQ9XCJNMzEwLjQ0LDMzMC4xNzRjLTE4LjU0OSwxOC40NzctNDMuMjQyLDI5Ljg5Ni03MC40NCwyOS44OTYgYy0yNy45NDQsMC01My4yOTctMTEuOTkxLTcyLjAwMy0zMS4zNzJjLTAuMDE0LDExLjYxNS0wLjQzNiwyOC4zNzktMy41MTYsNDAuNjExYzIuMDIsMS4yMzUsMy41ODgsMy4yNjIsMy44OTQsNS43ODQgYzEuNzY1LDE0LjM1OSw4Ljc3OCwyNy4xNDQsMTkuMjIzLDM2Ljk1NEMyMzUuNzY2LDQwNS4yNjUsMjkwLjQzNywzNTcuNzAyLDMxMC40NCwzMzAuMTc0elwiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgICAgPGc+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICNmZmZmZmZcIlxuICAgICAgICAgICAgZD1cIk0zMTIsMTYwLjA3SDE3NmMtMjIuMDU1LDAtNDAsMTcuOTQ1LTQwLDQwdjQ4YzAsNjEuNzU4LDQ2LjY1NiwxMTIsMTA0LDExMnMxMDQtNTAuMjQyLDEwNC0xMTIgdi01NkMzNDQsMTc0LjQyNiwzMjkuNjQ4LDE2MC4wNywzMTIsMTYwLjA3elwiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgICAgPGc+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICM1YzU0NmFcIlxuICAgICAgICAgICAgZD1cIk0yOTYsNzIuMDdIMTkyYy0xNS4wNDcsMC0yNy42OTUsMTAuNDM4LTMxLjEwMiwyNC40NDlDMTMzLjM1OSwxMDAuMDIsMTEyLDEyMy41OTgsMTEyLDE1Mi4wN3Y0MCBjMCwyMC42MTcsOC43NTIsMzkuODUxLDI0LDUzLjUydi00NS41MmMwLTIyLjA1NSwxNy45NDUtNDAsNDAtNDBoMTM2YzE3LjY0OCwwLDMyLDE0LjM1NSwzMiwzMnY1My41MTEgYzE1LjI1MS0xMy42NjcsMjQtMzIuODk5LDI0LTUzLjUxMXYtNDhDMzY4LDEwNC4zNzEsMzM1LjcwMyw3Mi4wNywyOTYsNzIuMDd6XCJcbiAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgICA8Zz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBzdHlsZT1cImZpbGw6ICM1YzU0NmFcIlxuICAgICAgICAgIGQ9XCJNNjEuNjMyLDQwMC41NDRDMTA1LjU2Miw0NDkuMzE5LDE2OS4xOTEsNDgwLDI0MCw0ODBzMTM0LjQzOC0zMC42ODEsMTc4LjM2OC03OS40NTYgYy03LjY2LTEwLjM1Ni0xOC40NjItMTguNzctMzIuMzUyLTIyLjY1OWMtMC4zMi0wLjA5LTAuNjQxLTAuMTYtMC45NjktMC4yMDdsLTYzLjg1OS05LjU4MmMtMC4zOTEtMC4wNTktMS4yMjctMC4wOS0xLjYyNS0wLjA5IGMtNC4wMzksMC03LjQ0NSwzLjAxMi03LjkzOCw3LjAyM2MtNCwzMi40OC0zNC43ODksNTYuOTc3LTcxLjYyNSw1Ni45NzdjLTM2Ljg0NCwwLTY3LjYzMy0yNC40OTItNzEuNjI1LTU2Ljk3NyBjLTAuNS00LjEyOS00LjIxOS03LjIzNC04LjE0MS03LjAyYy0wLjQ2OS0wLjAyNy0wLjkzLDAuMDEyLTEuNDIyLDAuMDg2bC02My44NTksOS41ODJjLTAuMzI4LDAuMDQ3LTAuNjQ4LDAuMTE3LTAuOTY5LDAuMjA3IEM4MC4wOTQsMzgxLjc3NSw2OS4yOTIsMzkwLjE4OCw2MS42MzIsNDAwLjU0NHpcIlxuICAgICAgICA+PC9wYXRoPlxuICAgICAgPC9nPlxuICAgIDwvZz5cbiAgPC9nPlxuPC9zdmc+XG4iXX0=","import { Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SvgIconComponent {\n id = input('', ...(ngDevMode ? [{ debugName: \"id\" }] : []));\n width = input('40px', ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n height = input('40px', ...(ngDevMode ? [{ debugName: \"height\" }] : []));\n color = input('#414141', ...(ngDevMode ? [{ debugName: \"color\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SvgIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.1\", type: SvgIconComponent, isStandalone: true, selector: \"acp-svg-icon\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: \"height\", publicName: \"height\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<svg [attr.width]=\\\"width()\\\" [attr.height]=\\\"height()\\\" [style.color]=\\\"color()\\\">\\n <use [attr.xlink:href]=\\\"'./svg-sprite.svg#' + id()\\\"></use>\\n</svg>\\n\", styles: [\"\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SvgIconComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-svg-icon', imports: [], template: \"<svg [attr.width]=\\\"width()\\\" [attr.height]=\\\"height()\\\" [style.color]=\\\"color()\\\">\\n <use [attr.xlink:href]=\\\"'./svg-sprite.svg#' + id()\\\"></use>\\n</svg>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaWNvbnMvc3ZnLWljb24vc3ZnLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaWNvbnMvc3ZnLWljb24vc3ZnLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUWpELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLDhDQUFDLENBQUM7SUFDZixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0saURBQUMsQ0FBQztJQUN0QixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sa0RBQUMsQ0FBQztJQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsaURBQUMsQ0FBQzt1R0FKZCxnQkFBZ0I7MkZBQWhCLGdCQUFnQiw4aUJDUjdCLCtKQUdBOzsyRkRLYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsY0FBYyxXQUNmLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1zdmctaWNvbicsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3ZnLWljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3ZnLWljb24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTdmdJY29uQ29tcG9uZW50IHtcbiAgaWQgPSBpbnB1dCgnJyk7XG4gIHdpZHRoID0gaW5wdXQoJzQwcHgnKTtcbiAgaGVpZ2h0ID0gaW5wdXQoJzQwcHgnKTtcbiAgY29sb3IgPSBpbnB1dCgnIzQxNDE0MScpO1xufVxuIiwiPHN2ZyBbYXR0ci53aWR0aF09XCJ3aWR0aCgpXCIgW2F0dHIuaGVpZ2h0XT1cImhlaWdodCgpXCIgW3N0eWxlLmNvbG9yXT1cImNvbG9yKClcIj5cbiAgPHVzZSBbYXR0ci54bGluazpocmVmXT1cIicuL3N2Zy1zcHJpdGUuc3ZnIycgKyBpZCgpXCI+PC91c2U+XG48L3N2Zz5cbiJdfQ==","import { Component, inject, input } from '@angular/core';\nimport { MatChipGrid, MatChipInput, MatChipRow, } from '@angular/material/chips';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatLabel } from '@angular/material/form-field';\nimport { MatHint } from '@angular/material/form-field';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport * as i0 from \"@angular/core\";\nexport class MatInputChipComponent {\n chips = input.required(...(ngDevMode ? [{ debugName: \"chips\" }] : []));\n labelText = input.required(...(ngDevMode ? [{ debugName: \"labelText\" }] : []));\n placelholder = input('', ...(ngDevMode ? [{ debugName: \"placelholder\" }] : []));\n addOnBlur = true;\n separatorKeysCodes = [ENTER, COMMA];\n announcer = inject(LiveAnnouncer);\n add(event) {\n const value = (event.value || '').trim();\n // Add our fruit\n if (value) {\n this.chips().push(value);\n }\n // Clear the input value\n event.chipInput.clear();\n }\n remove(value) {\n const index = this.chips().indexOf(value);\n if (index >= 0) {\n this.chips().splice(index, 1);\n this.announcer.announce(`Removed ${value}`);\n }\n }\n edit(inputRaw, event) {\n const value = event.value.trim();\n // Remove fruit if it no longer has a name\n if (!value) {\n this.remove(inputRaw);\n return;\n }\n // Edit existing fruit\n const index = this.chips().indexOf(inputRaw);\n if (index >= 0) {\n this.chips()[index] = value.replace(/\\s+/g, '');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatInputChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatInputChipComponent, isStandalone: true, selector: \"acp-mat-input-chip\", inputs: { chips: { classPropertyName: \"chips\", publicName: \"chips\", isSignal: true, isRequired: true, transformFunction: null }, labelText: { classPropertyName: \"labelText\", publicName: \"labelText\", isSignal: true, isRequired: true, transformFunction: null }, placelholder: { classPropertyName: \"placelholder\", publicName: \"placelholder\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<mat-form-field class=\\\"w-100\\\" appearance=\\\"outline\\\">\\n <mat-label>{{ labelText() }}</mat-label>\\n <mat-chip-grid #chipGrid aria-label=\\\"Enter fruits\\\">\\n @for (chip of chips(); track $index) {\\n <mat-chip-row\\n (removed)=\\\"remove(chip)\\\"\\n [editable]=\\\"true\\\"\\n (edited)=\\\"edit(chip, $event)\\\"\\n [aria-description]=\\\"'press enter to edit ' + chip\\\"\\n >\\n {{ chip }}\\n <button matChipRemove [attr.aria-label]=\\\"'remove ' + chip\\\">\\n <mat-icon>cancel</mat-icon>\\n </button>\\n </mat-chip-row>\\n }\\n <input\\n [placeholder]=\\\"placelholder()\\\"\\n [matChipInputFor]=\\\"chipGrid\\\"\\n [matChipInputSeparatorKeyCodes]=\\\"separatorKeysCodes\\\"\\n [matChipInputAddOnBlur]=\\\"addOnBlur\\\"\\n (matChipInputTokenEnd)=\\\"add($event)\\\"\\n />\\n </mat-chip-grid>\\n <mat-hint align=\\\"start\\\"\\n ><strong>Ingrese {{ labelText() }} y dale \\\"Enter\\\"</strong>\\n </mat-hint>\\n</mat-form-field>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: MatLabel, selector: \"mat-label\" }, { kind: \"component\", type: MatChipRow, selector: \"mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]\", inputs: [\"editable\"], outputs: [\"edited\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: MatHint, selector: \"mat-hint\", inputs: [\"align\", \"id\"] }, { kind: \"component\", type: MatChipGrid, selector: \"mat-chip-grid\", inputs: [\"disabled\", \"placeholder\", \"required\", \"value\", \"errorStateMatcher\"], outputs: [\"change\", \"valueChange\"] }, { kind: \"directive\", type: MatChipInput, selector: \"input[matChipInputFor]\", inputs: [\"matChipInputFor\", \"matChipInputAddOnBlur\", \"matChipInputSeparatorKeyCodes\", \"placeholder\", \"id\", \"disabled\", \"readonly\", \"matChipInputDisabledInteractive\"], outputs: [\"matChipInputTokenEnd\"], exportAs: [\"matChipInput\", \"matChipInputFor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatInputChipComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-input-chip', imports: [MatFormField, MatLabel, MatChipRow, MatIcon, MatHint, MatChipGrid, MatChipInput], template: \"<mat-form-field class=\\\"w-100\\\" appearance=\\\"outline\\\">\\n <mat-label>{{ labelText() }}</mat-label>\\n <mat-chip-grid #chipGrid aria-label=\\\"Enter fruits\\\">\\n @for (chip of chips(); track $index) {\\n <mat-chip-row\\n (removed)=\\\"remove(chip)\\\"\\n [editable]=\\\"true\\\"\\n (edited)=\\\"edit(chip, $event)\\\"\\n [aria-description]=\\\"'press enter to edit ' + chip\\\"\\n >\\n {{ chip }}\\n <button matChipRemove [attr.aria-label]=\\\"'remove ' + chip\\\">\\n <mat-icon>cancel</mat-icon>\\n </button>\\n </mat-chip-row>\\n }\\n <input\\n [placeholder]=\\\"placelholder()\\\"\\n [matChipInputFor]=\\\"chipGrid\\\"\\n [matChipInputSeparatorKeyCodes]=\\\"separatorKeysCodes\\\"\\n [matChipInputAddOnBlur]=\\\"addOnBlur\\\"\\n (matChipInputTokenEnd)=\\\"add($event)\\\"\\n />\\n </mat-chip-grid>\\n <mat-hint align=\\\"start\\\"\\n ><strong>Ingrese {{ labelText() }} y dale \\\"Enter\\\"</strong>\\n </mat-hint>\\n</mat-form-field>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWlucHV0LWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWF0LWlucHV0LWNoaXAvbWF0LWlucHV0LWNoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWF0LWlucHV0LWNoaXAvbWF0LWlucHV0LWNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFFTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLFVBQVUsR0FDWCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFRckQsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsZ0RBQVksQ0FBQztJQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsb0RBQVUsQ0FBQztJQUNyQyxZQUFZLEdBQUcsS0FBSyxDQUFTLEVBQUUsd0RBQUMsQ0FBQztJQUNqQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ1Isa0JBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7SUFFdEQsU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsQyxHQUFHLENBQUMsS0FBd0I7UUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpDLGdCQUFnQjtRQUNoQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLEtBQUssQ0FBQyxTQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsUUFBZ0IsRUFBRSxLQUF5QjtRQUM5QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpDLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsc0JBQXNCO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7dUdBN0NVLHFCQUFxQjsyRkFBckIscUJBQXFCLGllQ3JCbEMscTlCQTRCQSwwRERYWSxZQUFZLDRMQUFFLFFBQVEsc0RBQUUsVUFBVSw4SkFBRSxPQUFPLDJJQUFFLE9BQU8sOEVBQUUsV0FBVyw2S0FBRSxZQUFZOzsyRkFJOUUscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLG9CQUFvQixXQUNyQixDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWF0Q2hpcEVkaXRlZEV2ZW50LFxuICBNYXRDaGlwR3JpZCxcbiAgTWF0Q2hpcElucHV0LFxuICBNYXRDaGlwSW5wdXRFdmVudCxcbiAgTWF0Q2hpcFJvdyxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SGludCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1tYXQtaW5wdXQtY2hpcCcsXG4gIGltcG9ydHM6IFtNYXRGb3JtRmllbGQsIE1hdExhYmVsLCBNYXRDaGlwUm93LCBNYXRJY29uLCBNYXRIaW50LCBNYXRDaGlwR3JpZCwgTWF0Q2hpcElucHV0XSxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdC1pbnB1dC1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21hdC1pbnB1dC1jaGlwLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0SW5wdXRDaGlwQ29tcG9uZW50IHtcbiAgY2hpcHMgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmdbXT4oKTtcbiAgbGFiZWxUZXh0ID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBwbGFjZWxob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgYWRkT25CbHVyID0gdHJ1ZTtcbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzID0gW0VOVEVSLCBDT01NQV0gYXMgY29uc3Q7XG5cbiAgYW5ub3VuY2VyID0gaW5qZWN0KExpdmVBbm5vdW5jZXIpO1xuXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgLy8gQWRkIG91ciBmcnVpdFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jaGlwcygpLnB1c2godmFsdWUpO1xuICAgIH1cblxuICAgIC8vIENsZWFyIHRoZSBpbnB1dCB2YWx1ZVxuICAgIGV2ZW50LmNoaXBJbnB1dCEuY2xlYXIoKTtcbiAgfVxuXG4gIHJlbW92ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBzKCkuaW5kZXhPZih2YWx1ZSk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5jaGlwcygpLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIHRoaXMuYW5ub3VuY2VyLmFubm91bmNlKGBSZW1vdmVkICR7dmFsdWV9YCk7XG4gICAgfVxuICB9XG5cbiAgZWRpdChpbnB1dFJhdzogc3RyaW5nLCBldmVudDogTWF0Q2hpcEVkaXRlZEV2ZW50KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZS50cmltKCk7XG5cbiAgICAvLyBSZW1vdmUgZnJ1aXQgaWYgaXQgbm8gbG9uZ2VyIGhhcyBhIG5hbWVcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnJlbW92ZShpbnB1dFJhdyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRWRpdCBleGlzdGluZyBmcnVpdFxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlwcygpLmluZGV4T2YoaW5wdXRSYXcpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLmNoaXBzKClbaW5kZXhdID0gdmFsdWUucmVwbGFjZSgvXFxzKy9nLCAnJyk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWw+e3sgbGFiZWxUZXh0KCkgfX08L21hdC1sYWJlbD5cbiAgPG1hdC1jaGlwLWdyaWQgI2NoaXBHcmlkIGFyaWEtbGFiZWw9XCJFbnRlciBmcnVpdHNcIj5cbiAgICBAZm9yIChjaGlwIG9mIGNoaXBzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPG1hdC1jaGlwLXJvd1xuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUoY2hpcClcIlxuICAgICAgICBbZWRpdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIChlZGl0ZWQpPVwiZWRpdChjaGlwLCAkZXZlbnQpXCJcbiAgICAgICAgW2FyaWEtZGVzY3JpcHRpb25dPVwiJ3ByZXNzIGVudGVyIHRvIGVkaXQgJyArIGNoaXBcIlxuICAgICAgPlxuICAgICAgICB7eyBjaGlwIH19XG4gICAgICAgIDxidXR0b24gbWF0Q2hpcFJlbW92ZSBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZW1vdmUgJyArIGNoaXBcIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICB9XG4gICAgPGlucHV0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VsaG9sZGVyKClcIlxuICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwR3JpZFwiXG4gICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCJcbiAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwiYWRkT25CbHVyXCJcbiAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGQoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9tYXQtY2hpcC1ncmlkPlxuICA8bWF0LWhpbnQgYWxpZ249XCJzdGFydFwiXG4gICAgPjxzdHJvbmc+SW5ncmVzZSB7eyBsYWJlbFRleHQoKSB9fSB5IGRhbGUgXCJFbnRlclwiPC9zdHJvbmc+XG4gIDwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19","import { Component, input, output } from '@angular/core';\nimport { MatButton, MatFabButton, MatIconButton, MatMiniFabButton } from '@angular/material/button';\nimport { NgClass } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nexport class MatThemeButtonComponent {\n variant = input('primary', ...(ngDevMode ? [{ debugName: \"variant\" }] : []));\n text = input('', ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n icon = input('', ...(ngDevMode ? [{ debugName: \"icon\" }] : []));\n outlined = input(false, ...(ngDevMode ? [{ debugName: \"outlined\" }] : []));\n disabled = input(false, ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n useThemeColor = input(false, ...(ngDevMode ? [{ debugName: \"useThemeColor\" }] : [])); // Use theme color based on variant\n type = input('button', ...(ngDevMode ? [{ debugName: \"type\" }] : []));\n matStyle = input('raised', ...(ngDevMode ? [{ debugName: \"matStyle\" }] : []));\n // Additional common button properties\n title = input('', ...(ngDevMode ? [{ debugName: \"title\" }] : [])); // Tooltip text shown on hover\n ariaLabel = input('', ...(ngDevMode ? [{ debugName: \"ariaLabel\" }] : [])); // Accessibility label\n name = input('', ...(ngDevMode ? [{ debugName: \"name\" }] : [])); // Name attribute for form submission\n id = input('', ...(ngDevMode ? [{ debugName: \"id\" }] : [])); // ID for element reference\n form = input('', ...(ngDevMode ? [{ debugName: \"form\" }] : [])); // Associated form ID\n tabIndex = input(0, ...(ngDevMode ? [{ debugName: \"tabIndex\" }] : [])); // Tab order\n testId = input('', ...(ngDevMode ? [{ debugName: \"testId\" }] : [])); // For testing purposes\n handleClick = output();\n getButtonClasses() {\n return {\n [`btn-${this.variant()}`]: true,\n 'btn-outlined': this.outlined() && this.matStyle() !== 'stroked', // Stroked buttons are already outlined\n };\n }\n getThemeColor() {\n if (!this.useThemeColor)\n return null;\n switch (this.variant()) {\n case 'primary':\n return 'primary';\n case 'secondary':\n return 'accent';\n case 'danger':\n return 'warn';\n default:\n return null;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatThemeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatThemeButtonComponent, isStandalone: true, selector: \"acp-mat-theme-button\", inputs: { variant: { classPropertyName: \"variant\", publicName: \"variant\", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: \"icon\", publicName: \"icon\", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: \"outlined\", publicName: \"outlined\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, useThemeColor: { classPropertyName: \"useThemeColor\", publicName: \"useThemeColor\", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, matStyle: { classPropertyName: \"matStyle\", publicName: \"matStyle\", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: \"ariaLabel\", publicName: \"ariaLabel\", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: \"form\", publicName: \"form\", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: true, isRequired: false, transformFunction: null }, testId: { classPropertyName: \"testId\", publicName: \"testId\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { handleClick: \"handleClick\" }, ngImport: i0, template: \"@if (matStyle() === 'basic') {\\n <button\\n mat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'raised') {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'flat') {\\n <button\\n mat-flat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'stroked') {\\n <button\\n mat-stroked-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'icon') {\\n <button\\n mat-icon-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'fab') {\\n <button\\n mat-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'mini-fab') {\\n <button\\n mat-mini-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: MatMiniFabButton, selector: \"button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatFabButton, selector: \"button[mat-fab], a[mat-fab], button[matFab], a[matFab]\", inputs: [\"extended\"], exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatThemeButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-theme-button', imports: [MatButton, NgClass, MatIcon, MatMiniFabButton, MatIconButton, MatFabButton], template: \"@if (matStyle() === 'basic') {\\n <button\\n mat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'raised') {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'flat') {\\n <button\\n mat-flat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'stroked') {\\n <button\\n mat-stroked-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'icon') {\\n <button\\n mat-icon-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'fab') {\\n <button\\n mat-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'mini-fab') {\\n <button\\n mat-mini-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXRoZW1lLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tYXQtdGhlbWUtYnV0dG9uL21hdC10aGVtZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWF0LXRoZW1lLWJ1dHRvbi9tYXQtdGhlbWUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQTZCakQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxPQUFPLEdBQUcsS0FBSyxDQUFnQixTQUFTLG1EQUFDLENBQUM7SUFDMUMsSUFBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLGdEQUFDLENBQUM7SUFDekIsSUFBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLGdEQUFDLENBQUM7SUFDekIsUUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLG9EQUFDLENBQUM7SUFDakMsUUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLG9EQUFDLENBQUM7SUFDakMsYUFBYSxHQUFHLEtBQUssQ0FBVSxLQUFLLHlEQUFDLENBQUMsQ0FBQyxtQ0FBbUM7SUFDMUUsSUFBSSxHQUFHLEtBQUssQ0FBYSxRQUFRLGdEQUFDLENBQUM7SUFDbkMsUUFBUSxHQUFHLEtBQUssQ0FBc0IsUUFBUSxvREFBQyxDQUFDO0lBRWhELHNDQUFzQztJQUN0QyxLQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsaURBQUMsQ0FBQyxDQUFDLDhCQUE4QjtJQUN6RCxTQUFTLEdBQUcsS0FBSyxDQUFTLEVBQUUscURBQUMsQ0FBQyxDQUFDLHNCQUFzQjtJQUNyRCxJQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsZ0RBQUMsQ0FBQyxDQUFDLHFDQUFxQztJQUMvRCxFQUFFLEdBQUcsS0FBSyxDQUFTLEVBQUUsOENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtJQUNuRCxJQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsZ0RBQUMsQ0FBQyxDQUFDLHFCQUFxQjtJQUMvQyxRQUFRLEdBQUcsS0FBSyxDQUFTLENBQUMsb0RBQUMsQ0FBQyxDQUFDLFlBQVk7SUFDekMsTUFBTSxHQUFHLEtBQUssQ0FBUyxFQUFFLGtEQUFDLENBQUMsQ0FBQyx1QkFBdUI7SUFFbkQsV0FBVyxHQUFHLE1BQU0sRUFBVyxDQUFDO0lBRWhDLGdCQUFnQjtRQUNkLE9BQU87WUFDTCxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJO1lBQy9CLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsRUFBRSx1Q0FBdUM7U0FDMUcsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFckMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN2QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxXQUFXO2dCQUNkLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssUUFBUTtnQkFDWCxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQzt1R0F6Q1UsdUJBQXVCOzJGQUF2Qix1QkFBdUIsczhEQ2pDcEMsbXRLQThMQSwwRERqS1ksU0FBUyx5VUFBRSxPQUFPLG9GQUFFLE9BQU8sMklBQUUsZ0JBQWdCLDJKQUFFLGFBQWEsdUtBQUUsWUFBWTs7MkZBSXpFLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxzQkFBc0IsV0FDdkIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbiwgTWF0RmFiQnV0dG9uLCBNYXRJY29uQnV0dG9uLCBNYXRNaW5pRmFiQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5leHBvcnQgdHlwZSBCdXR0b25WYXJpYW50ID1cbiAgfCAncHJpbWFyeSdcbiAgfCAnc2Vjb25kYXJ5J1xuICB8ICdzdWNjZXNzJ1xuICB8ICdkYW5nZXInXG4gIHwgJ3dhcm5pbmcnXG4gIHwgJ2luZm8nXG4gIHwgJ2xpZ2h0J1xuICB8ICdkYXJrJztcblxuZXhwb3J0IHR5cGUgQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnO1xuXG5leHBvcnQgdHlwZSBNYXRlcmlhbEJ1dHRvblN0eWxlID1cbiAgfCAnYmFzaWMnIC8vIG1hdC1idXR0b25cbiAgfCAncmFpc2VkJyAvLyBtYXQtcmFpc2VkLWJ1dHRvblxuICB8ICdmbGF0JyAvLyBtYXQtZmxhdC1idXR0b25cbiAgfCAnc3Ryb2tlZCcgLy8gbWF0LXN0cm9rZWQtYnV0dG9uXG4gIHwgJ2ljb24nIC8vIG1hdC1pY29uLWJ1dHRvblxuICB8ICdmYWInIC8vIG1hdC1mYWJcbiAgfCAnbWluaS1mYWInOyAvLyBtYXQtbWluaS1mYWJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLW1hdC10aGVtZS1idXR0b24nLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uLCBOZ0NsYXNzLCBNYXRJY29uLCBNYXRNaW5pRmFiQnV0dG9uLCBNYXRJY29uQnV0dG9uLCBNYXRGYWJCdXR0b25dLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0LXRoZW1lLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tYXQtdGhlbWUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0VGhlbWVCdXR0b25Db21wb25lbnQge1xuICB2YXJpYW50ID0gaW5wdXQ8QnV0dG9uVmFyaWFudD4oJ3ByaW1hcnknKTtcbiAgdGV4dCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBpY29uID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIG91dGxpbmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdXNlVGhlbWVDb2xvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTsgLy8gVXNlIHRoZW1lIGNvbG9yIGJhc2VkIG9uIHZhcmlhbnRcbiAgdHlwZSA9IGlucHV0PEJ1dHRvblR5cGU+KCdidXR0b24nKTtcbiAgbWF0U3R5bGUgPSBpbnB1dDxNYXRlcmlhbEJ1dHRvblN0eWxlPigncmFpc2VkJyk7XG5cbiAgLy8gQWRkaXRpb25hbCBjb21tb24gYnV0dG9uIHByb3BlcnRpZXNcbiAgdGl0bGUgPSBpbnB1dDxzdHJpbmc+KCcnKTsgLy8gVG9vbHRpcCB0ZXh0IHNob3duIG9uIGhvdmVyXG4gIGFyaWFMYWJlbCA9IGlucHV0PHN0cmluZz4oJycpOyAvLyBBY2Nlc3NpYmlsaXR5IGxhYmVsXG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KCcnKTsgLy8gTmFtZSBhdHRyaWJ1dGUgZm9yIGZvcm0gc3VibWlzc2lvblxuICBpZCA9IGlucHV0PHN0cmluZz4oJycpOyAvLyBJRCBmb3IgZWxlbWVudCByZWZlcmVuY2VcbiAgZm9ybSA9IGlucHV0PHN0cmluZz4oJycpOyAvLyBBc3NvY2lhdGVkIGZvcm0gSURcbiAgdGFiSW5kZXggPSBpbnB1dDxudW1iZXI+KDApOyAvLyBUYWIgb3JkZXJcbiAgdGVzdElkID0gaW5wdXQ8c3RyaW5nPignJyk7IC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzXG5cbiAgaGFuZGxlQ2xpY2sgPSBvdXRwdXQ8dW5rbm93bj4oKTtcblxuICBnZXRCdXR0b25DbGFzc2VzKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW2BidG4tJHt0aGlzLnZhcmlhbnQoKX1gXTogdHJ1ZSxcbiAgICAgICdidG4tb3V0bGluZWQnOiB0aGlzLm91dGxpbmVkKCkgJiYgdGhpcy5tYXRTdHlsZSgpICE9PSAnc3Ryb2tlZCcsIC8vIFN0cm9rZWQgYnV0dG9ucyBhcmUgYWxyZWFkeSBvdXRsaW5lZFxuICAgIH07XG4gIH1cblxuICBnZXRUaGVtZUNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB8IG51bGwge1xuICAgIGlmICghdGhpcy51c2VUaGVtZUNvbG9yKSByZXR1cm4gbnVsbDtcblxuICAgIHN3aXRjaCAodGhpcy52YXJpYW50KCkpIHtcbiAgICAgIGNhc2UgJ3ByaW1hcnknOlxuICAgICAgICByZXR1cm4gJ3ByaW1hcnknO1xuICAgICAgY2FzZSAnc2Vjb25kYXJ5JzpcbiAgICAgICAgcmV0dXJuICdhY2NlbnQnO1xuICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgcmV0dXJuICd3YXJuJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChtYXRTdHlsZSgpID09PSAnYmFzaWMnKSB7XG4gIDxidXR0b25cbiAgICBtYXQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIEBpZiAoaWNvbigpKSB7XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJidXR0b24taWNvblwiPnt7IGljb24oKSB9fTwvbWF0LWljb24+XG4gICAgfVxuICAgIEBpZiAodGV4dCgpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbi10ZXh0XCI+e3sgdGV4dCgpIH19PC9zcGFuPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSBpZiAobWF0U3R5bGUoKSA9PT0gJ3JhaXNlZCcpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInN2Z0ljb25cIj48L25nLWNvbnRlbnQ+XG4gICAgQGlmIChpY29uKCkpIHtcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImJ1dHRvbi1pY29uXCI+e3sgaWNvbigpIH19PC9tYXQtaWNvbj5cbiAgICB9XG4gICAgQGlmICh0ZXh0KCkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9uLXRleHRcIj57eyB0ZXh0KCkgfX08L3NwYW4+XG4gICAgfVxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9idXR0b24+XG59IEBlbHNlIGlmIChtYXRTdHlsZSgpID09PSAnZmxhdCcpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgIFtuZ0NsYXNzXT1cImdldEJ1dHRvbkNsYXNzZXMoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgIFtjb2xvcl09XCJnZXRUaGVtZUNvbG9yKClcIlxuICAgIFt0eXBlXT1cInR5cGUoKVwiXG4gICAgW3RpdGxlXT1cInRpdGxlKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsKCkgfHwgdGl0bGUoKVwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lKClcIlxuICAgIFthdHRyLmlkXT1cImlkKClcIlxuICAgIFthdHRyLmZvcm1dPVwiZm9ybSgpXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQoKVwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb24oKSkge1xuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYnV0dG9uLWljb25cIj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tdGV4dFwiPnt7IHRleHQoKSB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2J1dHRvbj5cbn0gQGVsc2UgaWYgKG1hdFN0eWxlKCkgPT09ICdzdHJva2VkJykge1xuICA8YnV0dG9uXG4gICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIEBpZiAoaWNvbigpKSB7XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJidXR0b24taWNvblwiPnt7IGljb24oKSB9fTwvbWF0LWljb24+XG4gICAgfVxuICAgIEBpZiAodGV4dCgpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbi10ZXh0XCI+e3sgdGV4dCgpIH19PC9zcGFuPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSBpZiAobWF0U3R5bGUoKSA9PT0gJ2ljb24nKSB7XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBbbmdDbGFzc109XCJnZXRCdXR0b25DbGFzc2VzKClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICBbY29sb3JdPVwiZ2V0VGhlbWVDb2xvcigpXCJcbiAgICBbdHlwZV09XCJ0eXBlKClcIlxuICAgIFt0aXRsZV09XCJ0aXRsZSgpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpIHx8IHRpdGxlKClcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZSgpXCJcbiAgICBbYXR0ci5pZF09XCJpZCgpXCJcbiAgICBbYXR0ci5mb3JtXT1cImZvcm0oKVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkKClcIlxuICAgIChjbGljayk9XCJoYW5kbGVDbGljay5lbWl0KCRldmVudClcIlxuICA+XG4gICAgQGlmIChpY29uKCkpIHtcbiAgICAgIDxtYXQtaWNvbj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSBpZiAobWF0U3R5bGUoKSA9PT0gJ2ZhYicpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1mYWJcbiAgICBbbmdDbGFzc109XCJnZXRCdXR0b25DbGFzc2VzKClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICBbY29sb3JdPVwiZ2V0VGhlbWVDb2xvcigpXCJcbiAgICBbdHlwZV09XCJ0eXBlKClcIlxuICAgIFt0aXRsZV09XCJ0aXRsZSgpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpIHx8IHRpdGxlKClcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZSgpXCJcbiAgICBbYXR0ci5pZF09XCJpZCgpXCJcbiAgICBbYXR0ci5mb3JtXT1cImZvcm0oKVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkKClcIlxuICAgIChjbGljayk9XCJoYW5kbGVDbGljay5lbWl0KCRldmVudClcIlxuICA+XG4gICAgQGlmIChpY29uKCkpIHtcbiAgICAgIDxtYXQtaWNvbj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tdGV4dFwiPnt7IHRleHQoKSB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2J1dHRvbj5cbn0gQGVsc2UgaWYgKG1hdFN0eWxlKCkgPT09ICdtaW5pLWZhYicpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1taW5pLWZhYlxuICAgIFtuZ0NsYXNzXT1cImdldEJ1dHRvbkNsYXNzZXMoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgIFtjb2xvcl09XCJnZXRUaGVtZUNvbG9yKClcIlxuICAgIFt0eXBlXT1cInR5cGUoKVwiXG4gICAgW3RpdGxlXT1cInRpdGxlKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsKCkgfHwgdGl0bGUoKVwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lKClcIlxuICAgIFthdHRyLmlkXT1cImlkKClcIlxuICAgIFthdHRyLmZvcm1dPVwiZm9ybSgpXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQoKVwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb24oKSkge1xuICAgICAgPG1hdC1pY29uPnt7IGljb24oKSB9fTwvbWF0LWljb24+XG4gICAgfVxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9idXR0b24+XG59IEBlbHNlIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInN2Z0ljb25cIj48L25nLWNvbnRlbnQ+XG5cbiAgICBAaWYgKGljb24oKSkge1xuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYnV0dG9uLWljb25cIj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tdGV4dFwiPnt7IHRleHQoKSB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2J1dHRvbj5cbn1cbiJdfQ==","import { Component } from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport * as i0 from \"@angular/core\";\nexport class SpinnerComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.1\", type: SpinnerComponent, isStandalone: true, selector: \"acp-spinner\", ngImport: i0, template: \"<mat-spinner></mat-spinner>\\n\", styles: [\":host{display:flex;justify-content:center;align-items:center;height:100%}\\n\"], dependencies: [{ kind: \"component\", type: MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SpinnerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-spinner', imports: [MatProgressSpinner], template: \"<mat-spinner></mat-spinner>\\n\", styles: [\":host{display:flex;justify-content:center;align-items:center;height:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBUXhFLE1BQU0sT0FBTyxnQkFBZ0I7dUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHVFQ1Q3QiwrQkFDQSxxSURJWSxrQkFBa0I7OzJGQUlqQixnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYSxXQUNkLENBQUMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3Atc3Bpbm5lcicsXG4gIGltcG9ydHM6IFtNYXRQcm9ncmVzc1NwaW5uZXJdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zcGlubmVyLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU3Bpbm5lckNvbXBvbmVudCB7fVxuIiwiPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XG4iXX0=","// custom-tabulator.component.ts\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PageModule, ReactiveDataModule, TabulatorFull as Tabulator } from 'tabulator-tables';\nimport * as i0 from \"@angular/core\";\nTabulator.registerModule([PageModule, ReactiveDataModule]);\nexport class CustomTabulatorComponent {\n // Data inputs\n data = [];\n columns = [];\n // Layout inputs\n height = '400px';\n layout = 'fitData';\n // Tree structure inputs\n dataTree = false;\n dataTreeChildField = 'children';\n dataTreeStartExpanded = false;\n dataTreeSelectPropagate = false;\n // Behavior inputs\n selectable = true;\n reactiveData = true;\n placeholder = 'No data available';\n autoResize = true;\n // Theme configuration\n theme = { name: 'default' };\n // Custom options\n options = {};\n // Events\n cellEdited = new EventEmitter();\n rowClick = new EventEmitter();\n rowSelected = new EventEmitter();\n tableReady = new EventEmitter();\n _tabulator;\n // Made public for template access\n containerId = `acp-tabulator-${Math.random().toString(36).substr(2, 9)}`;\n ngAfterViewInit() {\n this.initializeTable();\n }\n ngOnChanges(changes) {\n if (changes['data'] && !changes['data'].isFirstChange()) {\n this.updateData();\n }\n if (changes['columns'] && !changes['columns'].isFirstChange()) {\n this.updateColumns();\n }\n if (changes['theme'] && !changes['theme'].isFirstChange()) {\n this.applyTheme();\n }\n }\n ngOnDestroy() {\n this.destroyTable();\n }\n initializeTable() {\n if (this._tabulator) {\n this.destroyTable();\n }\n const container = document.getElementById(this.containerId);\n if (!container) {\n console.warn('Tabulator container not found');\n return;\n }\n const config = {\n data: this.data,\n columns: this.columns,\n height: this.height,\n layout: this.layout,\n dataTree: this.dataTree,\n dataTreeChildField: this.dataTreeChildField,\n dataTreeStartExpanded: this.dataTreeStartExpanded,\n dataTreeSelectPropagate: this.dataTreeSelectPropagate,\n reactiveData: this.reactiveData,\n placeholder: this.placeholder,\n autoResize: this.autoResize,\n selectable: this.selectable,\n renderVertical: 'virtual',\n renderVerticalBuffer: 300,\n ...this.options,\n };\n try {\n this._tabulator = new Tabulator(container, config);\n this.applyTheme();\n this.registerEvents();\n this.tableReady.emit(this._tabulator);\n }\n catch (error) {\n console.error('Error initializing Tabulator:', error);\n }\n }\n applyTheme() {\n const container = document.getElementById(this.containerId);\n if (container) {\n // Remove existing theme classes\n container.classList.remove('tabulator-default', 'tabulator-bootstrap5', 'tabulator-semanticui');\n // Add current theme class\n container.classList.add(`tabulator-${this.theme.name}`);\n }\n }\n registerEvents() {\n this._tabulator.on('cellEdited', cell => {\n this.cellEdited.emit(cell);\n });\n this._tabulator.on('rowClick', (e, row) => {\n this.rowClick.emit(row);\n });\n this._tabulator.on('rowSelected', row => {\n this.rowSelected.emit(row);\n });\n }\n updateData() {\n if (this._tabulator) {\n this._tabulator.replaceData(this.data);\n }\n }\n updateColumns() {\n if (this._tabulator) {\n this._tabulator.setColumns(this.columns);\n }\n }\n destroyTable() {\n if (this._tabulator) {\n this._tabulator.destroy();\n }\n }\n // Public API methods\n getInstance() {\n return this._tabulator;\n }\n redraw() {\n if (this._tabulator) {\n this._tabulator.redraw();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: CustomTabulatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.1\", type: CustomTabulatorComponent, isStandalone: true, selector: \"acp-tabulator\", inputs: { data: \"data\", columns: \"columns\", height: \"height\", layout: \"layout\", dataTree: \"dataTree\", dataTreeChildField: \"dataTreeChildField\", dataTreeStartExpanded: \"dataTreeStartExpanded\", dataTreeSelectPropagate: \"dataTreeSelectPropagate\", selectable: \"selectable\", reactiveData: \"reactiveData\", placeholder: \"placeholder\", autoResize: \"autoResize\", theme: \"theme\", options: \"options\" }, outputs: { cellEdited: \"cellEdited\", rowClick: \"rowClick\", rowSelected: \"rowSelected\", tableReady: \"tableReady\" }, usesOnChanges: true, ngImport: i0, template: \"<div [id]=\\\"containerId\\\" class=\\\"acp-tabulator-container\\\"></div>\", styles: [\".tabulator{background-color:#888;border:1px solid #999;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#e6e6e6;border-bottom:1px solid #999;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#e6e6e6;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#cdcdcd;border:1px solid #999;pointer-events:none;position:absolute}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#cdcdcd;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #aaa}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #aaa}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #999;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator-row.tabulator-moving{border-bottom:1px solid #aaa;border-top:1px solid #aaa;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-cell{border-right:1px solid #aaa;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#e6e6e6;border-bottom:1px solid #aaa;border-right:1px solid #999}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #aaa;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#aaa;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #aaa}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #aaa;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #aaa;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #aaa}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #aaa}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{border:1px solid #dee2e6;font-size:16px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#fff;border-bottom:1px solid #dee2e6;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#fff;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#e6e6e6;border:1px solid #dee2e6;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #aaa;display:flex;margin-right:-1px;overflow:hidden;position:relative}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#e6e6e6;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #aaa;border-top:1px solid #dee2e6;box-sizing:border-box;display:inline-block}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#dadfe4!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #dee2e6}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #dee2e6}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #dee2e6;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #dee2e6;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important;display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-5px}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:24px;position:relative}.tabulator-row.tabulator-row-even{background-color:#e9ecef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}}.tabulator-row.tabulator-moving{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse table{font-size:16px}.tabulator-row .tabulator-cell{border-right:1px solid #dee2e6;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:1px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#d00}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;color:#fff;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;border:1px solid #dee2e6;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:16px;overflow-y:auto;position:absolute;z-index:10000}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#e9ecef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#dee2e6;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #dee2e6}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:16px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #dee2e6;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #dee2e6;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #dee2e6;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #dee2e6}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #dee2e6}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{background-color:#fff;border:none}.tabulator .tabulator-header{border-bottom:2px solid #dee2e6;border-top:1px solid #dee2e6;color:inherit}.tabulator .tabulator-header .tabulator-col{background-color:#fff;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:12px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #dee2e6}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input{background-clip:padding-box;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#495057;font-size:1rem;line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input:focus{background-color:#fff;border:1px solid #1d68cd;color:#495057;outline:0}.tabulator .tabulator-header .tabulator-calcs-holder{border-bottom:1px solid #dee2e6;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder span{color:#000}.tabulator .tabulator-footer,.tabulator .tabulator-tableholder .tabulator-table{color:inherit}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{background-color:#fff;font-weight:400}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-paginator{color:inherit}.tabulator .tabulator-footer .tabulator-pages{margin:0}.tabulator .tabulator-footer .tabulator-page{margin:5px 0 0;padding:8px 12px}.tabulator .tabulator-footer .tabulator-page[data-page=first]{border-bottom-left-radius:4px;border-top-left-radius:4px}.tabulator .tabulator-footer .tabulator-page[data-page=last]{border:1px solid #dee2e6;border-bottom-right-radius:4px;border-top-right-radius:4px}.tabulator .tabulator-footer .tabulator-page.active{background-color:#0d6efd;border-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-page:disabled{background:#fff;border-color:#dee2e6;color:#6c757d}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{background:#e9ecef;border-color:#dee2e6;color:#0a58ca}}.tabulator.thead-dark .tabulator-header,.tabulator.thead-dark .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table{background-color:#fff}.tabulator.table:not(.thead-light) .tabulator-header,.tabulator.table:not(.thead-light) .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table .tabulator-tableholder{color:#212529}.tabulator.table .tabulator-row{background-color:#fff;border-color:#dee2e6;color:#212529}@media (hover:hover) and (pointer:fine){.tabulator.table .tabulator-row:hover{background-color:#dee2e6}.tabulator.table .tabulator-row:hover .tabulator-cell{background-color:#ced4da}}.tabulator.table .tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator.table .tabulator-footer{border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder{background:#fff!important;border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder .tabulator-row{background-color:#fff!important;border-color:#dee2e6!important;color:#212529!important}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even{background-color:#e9ecef}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator.table-striped.table .tabulator-row:nth-child(2n) .tabulator-cell{background-color:transparent}.tabulator.table-bordered{border:1px solid #dee2e6}.tabulator.table-bordered .tabulator-header .tabulator-col,.tabulator.table-bordered .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid #dee2e6}.tabulator.table-borderless .tabulator-header,.tabulator.table-borderless .tabulator-row{border:none}.tabulator.table-sm .tabulator-header .tabulator-col .tabulator-col-content{padding:5px!important}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row{min-height:26px}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:5px!important}.tabulator.table-sm .tabulator-row{padding-bottom:0;padding-top:0}.tabulator.table-sm .tabulator-col-resize-handle{padding:0}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-active{background:#6c757d!important}.tabulator-row{border-bottom:1px solid #dee2e6;min-height:40px}.tabulator-row .tabulator-cell{border-right:none;padding:12px}.tabulator-row .tabulator-cell.tabulator-row-header{background:#fff;border-bottom:none;border-right:1px solid #dee2e6}.tabulator-row .tabulator-cell .tabulator-data-tree-control{border:1px solid #ccc}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-edit-select-list .tabulator-edit-select-list-group,.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:initial;text-align:initial}.tabulator-print-table .tabulator-data-tree-control{color:inherit}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-popup-container{background:#fff}.tabulator-edit-list .tabulator-edit-list-item.active{color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{color:#fff}}.tabulator{background-color:#fff;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableholder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select,.tabulator.tabulator-ranges .tabulator-cell:not(.tabulator-editing){-webkit-user-select:none;user-select:none}.tabulator .tabulator-header{border-bottom:1px solid #999;box-sizing:border-box;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-header-contents{overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-header-contents .tabulator-headers{display:inline-block}.tabulator .tabulator-header .tabulator-col{background:#f9fafb;border-right:1px solid #ddd;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#dae1e7;border:1px solid #999;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-range-highlight{background-color:#d6d6d6;color:#000}.tabulator .tabulator-header .tabulator-col.tabulator-range-selected{background-color:#3876ca;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;padding:4px;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder{position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title.tabulator-col-title-wrap{text-overflow:clip;white-space:normal}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{background:#fff;border:1px solid #999;box-sizing:border-box;padding:1px;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-header-popup-button+.tabulator-title-editor{width:calc(100% - 22px)}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{align-items:center;bottom:0;display:flex;position:absolute;right:4px;top:0}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-left:6px solid transparent;border-right:6px solid transparent;height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #ddd;display:flex;margin-right:-1px;overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{box-sizing:border-box;margin-top:2px;position:relative;text-align:center;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#dae1e7;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter{color:#bbb}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #666;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-top:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:none;border-top:6px solid #666;color:#666}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{align-items:center;display:flex;justify-content:center;text-orientation:mixed;writing-mode:vertical-rl}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-bottom:20px;padding-right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-sorter{justify-content:center;inset:4px 0 auto}.tabulator .tabulator-header .tabulator-frozen{left:0;position:sticky;z-index:11}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{display:inline-block}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableholder{-webkit-overflow-scrolling:touch;overflow:auto;position:relative;white-space:nowrap;width:100%}.tabulator .tabulator-tableholder:focus{outline:none}.tabulator .tabulator-tableholder .tabulator-placeholder{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-width:100%;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%}.tabulator .tabulator-tableholder .tabulator-placeholder .tabulator-placeholder-contents{color:#ccc;display:inline-block;font-size:20px;font-weight:700;padding:10px;text-align:center;white-space:normal}.tabulator .tabulator-tableholder .tabulator-table{background-color:#fff;color:#333;display:inline-block;overflow:visible;position:relative;white-space:nowrap}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#e2e2e2!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-range-overlay{inset:0;pointer-events:none;position:absolute;z-index:10}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range{border:1px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;position:absolute;right:-3px;width:6px}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range-cell-active{border:2px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-footer{background-color:#fff;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-footer-contents{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:5px 10px}.tabulator .tabulator-footer .tabulator-footer-contents:empty{display:none}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:-5px;overflow-x:auto}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid rgba(34,36,38,.15);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab:hover{cursor:pointer;opacity:.7}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background:#fff}.tabulator .tabulator-footer .tabulator-calcs-holder{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px}.tabulator .tabulator-footer>*+.tabulator-page-counter{margin-left:10px}.tabulator .tabulator-footer .tabulator-page-counter{font-weight:400}.tabulator .tabulator-footer .tabulator-paginator{color:#555;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:right}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#0003;color:#fff;cursor:pointer}}.tabulator .tabulator-col-resize-handle{display:inline-block;margin-left:-3px;margin-right:-3px;position:relative;vertical-align:middle;width:6px;z-index:11}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}}.tabulator .tabulator-col-resize-handle:last-of-type{margin-right:0;width:3px}.tabulator .tabulator-col-resize-guide{background-color:#999;height:100%;margin-left:-.5px;opacity:.5;position:absolute;top:0;width:4px}.tabulator .tabulator-row-resize-guide{background-color:#999;height:4px;left:0;margin-top:-.5px;opacity:.5;position:absolute;width:100%}.tabulator .tabulator-alert{align-items:center;background:#0006;display:flex;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%;z-index:100}.tabulator .tabulator-alert .tabulator-alert-msg{background:#fff;border-radius:10px;display:inline-block;font-size:16px;font-weight:700;margin:0 auto;padding:10px 20px}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-msg{border:4px solid #333;color:#000}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-error{border:4px solid #d00;color:#590000}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:22px;position:relative}.tabulator-row.tabulator-row-even{background-color:#efefef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}}.tabulator-row.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator-row.tabulator-row-moving{background:#fff;border:1px solid #000}.tabulator-row.tabulator-moving{border-bottom:1px solid #ddd;border-top:1px solid #ddd;pointer-events:none;position:absolute;z-index:15}.tabulator-row.tabulator-range-highlight .tabulator-cell.tabulator-range-row-header{background-color:#d6d6d6;color:#000}.tabulator-row.tabulator-range-highlight.tabulator-range-selected .tabulator-cell.tabulator-range-row-header,.tabulator-row.tabulator-range-selected .tabulator-cell.tabulator-range-row-header{background-color:#3876ca;color:#fff}.tabulator-row .tabulator-row-resize-handle{bottom:0;height:5px;left:0;position:absolute;right:0}.tabulator-row .tabulator-row-resize-handle.prev{bottom:auto;top:0}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{border-right:1px solid #ddd;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#f9fafb;border-bottom:1px solid #ddd;border-right:1px solid rgba(34,36,38,.15)}.tabulator-row .tabulator-cell.tabulator-frozen{background-color:inherit;display:inline-block;left:0;position:sticky;z-index:11}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;outline:none;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{background:transparent;border:1px;outline:none}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #db2828}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#db2828}.tabulator-row .tabulator-cell.tabulator-row-handle{align-items:center;display:inline-flex;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{background:#666;height:3px;margin-top:2px;width:100%}.tabulator-row .tabulator-cell.tabulator-range-selected:not(.tabulator-range-only-cell-selected):not(.tabulator-range-row-header){background-color:#9abcea}.tabulator-row .tabulator-cell .tabulator-data-tree-branch-empty{display:inline-block;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{cursor:pointer;opacity:.7}}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open{display:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle svg{stroke:#fff}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{border-radius:14px;display:inline-block;height:14px;width:14px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-row.tabulator-group span{color:#d00;margin-left:10px}.tabulator-toggle{background:#dcdcdc;border:1px solid #ccc;box-sizing:border-box;display:flex;flex-direction:row}.tabulator-toggle.tabulator-toggle-on{background:#1c6cc2}.tabulator-toggle .tabulator-toggle-switch{background:#fff;border:1px solid #ccc;box-sizing:border-box}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #ddd;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-popup{border-radius:3px;padding:5px}.tabulator-tooltip{border-radius:2px;box-shadow:none;font-size:12px;max-width:Min(500px,100%);padding:3px 5px;pointer-events:none}.tabulator-menu .tabulator-menu-item{box-sizing:border-box;padding:5px 10px;position:relative;-webkit-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#efefef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu{padding-right:25px}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#ddd;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #ddd}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:14px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item{color:#333;outline:none;padding:4px}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd;color:#fff}.tabulator-edit-list .tabulator-edit-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-list .tabulator-edit-list-item.focused{outline:1px solid #1d68cd}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{background:#1d68cd;color:#fff;cursor:pointer}}.tabulator-edit-list .tabulator-edit-list-placeholder{color:#333;padding:4px;text-align:center}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #ddd;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-2,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-2{padding-left:12px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-3,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-3{padding-left:20px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-4,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-4{padding-left:28px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-5,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-5{padding-left:36px}.tabulator.tabulator-ltr{direction:ltr}.tabulator.tabulator-rtl{direction:rtl;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #ddd;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{margin-left:-1px;margin-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-left:25px;padding-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{left:8px;right:auto}.tabulator.tabulator-rtl .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;left:-3px;position:absolute;right:auto;width:6px}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #ddd;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #ddd;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-control{margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-col-resize-handle:last-of-type{margin-left:0;margin-right:-3px;width:3px}.tabulator.tabulator-rtl .tabulator-footer .tabulator-calcs-holder{text-align:initial}.tabulator-print-fullscreen{inset:0;position:absolute;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-print-table-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-print-table .tabulator-print-table-group span{color:#d00;margin-left:10px}.tabulator-print-table .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator{border:1px solid rgba(34,36,38,.15);border-radius:.28571rem;box-shadow:none;color:#000000de;margin:1em 0;width:100%}.tabulator .tabulator-header{border-bottom:1px solid rgba(34,36,38,.1);box-shadow:none;color:#000000de;font-style:none;font-weight:700;text-transform:none}.tabulator .tabulator-header,.tabulator .tabulator-header .tabulator-col{background-color:#f9fafb;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:.92857em .78571em}.tabulator .tabulator-tableholder .tabulator-table{background-color:transparent}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#f2f2f2!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #ddd}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #ddd}.tabulator .tabulator-footer{background:#f9fafb;border-top:1px solid rgba(34,36,38,.15);box-shadow:none;color:#000000de;font-style:normal;font-weight:400;padding:.78571em;text-align:right;text-transform:none}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#fff!important;margin:-.78571em -.78571em .78571em}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-.78571em}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:calc(-.78571em - 5px)}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{color:#d00}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive{background:#fcfff5!important;box-shadow:inset 0 0 #a3c293;color:#21ba45!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative:hover{background:#ffe7e7!important;color:#d41616!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error:hover{background:#ffe7e7!important;color:#d12323!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning{background:#fffaf3!important;box-shadow:inset 0 0 #c9ba9b;color:#f2c037!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning:hover{background:#fff4e4!important;color:#f1bb29!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{color:#0003;pointer-events:none}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.disabled:hover{color:#0003;pointer-events:none}}.tabulator.inverted{background:#333;border:none;color:#ffffffe6}.tabulator.inverted .tabulator-header{background-color:#00000026;color:#ffffffe6}.tabulator.inverted .tabulator-header,.tabulator.inverted .tabulator-header .tabulator-col{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row{border:none;color:#ffffffe6}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-footer{background:#fff}.tabulator.striped .tabulator-row:nth-child(2n){background-color:#f2f2f2}.tabulator.celled{border:1px solid rgba(34,36,38,.15)}.tabulator.celled .tabulator-header .tabulator-col,.tabulator.celled .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid rgba(34,36,38,.1)}.tabulator[class*=\\\"single line\\\"] .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:none}.tabulator.red{border-top:.2em solid #db2828}.tabulator.inverted.red{background-color:#db2828!important;color:#fff!important}.tabulator.orange{border-top:.2em solid #f2711c}.tabulator.inverted.orange{background-color:#f2711c!important;color:#fff!important}.tabulator.yellow{border-top:.2em solid #fbbd08}.tabulator.inverted.yellow{background-color:#fbbd08!important;color:#fff!important}.tabulator.olive{border-top:.2em solid #b5cc18}.tabulator.inverted.olive{background-color:#b5cc18!important;color:#fff!important}.tabulator.green{border-top:.2em solid #21ba45}.tabulator.inverted.green{background-color:#21ba45!important;color:#fff!important}.tabulator.teal{border-top:.2em solid #00b5ad}.tabulator.inverted.teal{background-color:#00b5ad!important;color:#fff!important}.tabulator.blue{border-top:.2em solid #2185d0}.tabulator.inverted.blue{background-color:#2185d0!important;color:#fff!important}.tabulator.violet{border-top:.2em solid #6435c9}.tabulator.inverted.violet{background-color:#6435c9!important;color:#fff!important}.tabulator.purple{border-top:.2em solid #a333c8}.tabulator.inverted.purple{background-color:#a333c8!important;color:#fff!important}.tabulator.pink{border-top:.2em solid #e03997}.tabulator.inverted.pink{background-color:#e03997!important;color:#fff!important}.tabulator.brown{border-top:.2em solid #a5673f}.tabulator.inverted.brown{background-color:#a5673f!important;color:#fff!important}.tabulator.grey{border-top:.2em solid #767676}.tabulator.inverted.grey{background-color:#767676!important;color:#fff!important}.tabulator.black{border-top:.2em solid #1b1c1d}.tabulator.inverted.black{background-color:#1b1c1d!important;color:#fff!important}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content{padding:1em}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:20px}.tabulator.padded .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content{padding:1.5em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:26px}.tabulator.padded.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1.5em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content{padding:.5em .7em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:12px}.tabulator.compact .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.5em .7em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content{padding:.4em .6em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:10px}.tabulator.compact.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.4em .6em}.tabulator-row{border-bottom:1px solid rgba(34,36,38,.1)}.tabulator-row.tabulator-row-even{background-color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}}.tabulator-row.tabulator-selected{background-color:#9abcea!important}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc!important;cursor:pointer}}.tabulator-row.tabulator-moving{pointer-events:none!important}.tabulator-row .tabulator-cell{border-right:none;padding:.78571em;vertical-align:middle}.tabulator-row .tabulator-cell:last-of-type{border-right:none}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{color:#fff}.tabulator-row.tabulator-group{background:#fafafa}.tabulator-row.tabulator-group span{color:#666}.tabulator-menu{background:#fff}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#f9fafb}}.tabulator-edit-select-list{background:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}@media (hover:hover) and (pointer:fine){.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{color:#fff}}.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator-print-table .tabulator-print-table-group{background:#fafafa}.tabulator-print-table .tabulator-print-table-group span{color:#666}.acp-tabulator-container{width:100%}.acp-tabulator-container:not(.tabulator-bootstrap5):not(.tabulator-semanticui) .tabulator{display:block}.acp-tabulator-container.tabulator-bootstrap5 .tabulator{border-radius:.375rem}.acp-tabulator-container.tabulator-semanticui .tabulator{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.acp-tabulator-container .tabulator-row.tabulator-selectable:hover{background-color:#0000000a;cursor:pointer;transition:background-color .2s ease}.acp-tabulator-container .tabulator-row.tabulator-selected{background-color:#1976d21f}@media (max-width: 768px){.acp-tabulator-container .tabulator-header{font-size:.875rem}.acp-tabulator-container .tabulator-cell{font-size:.875rem;padding:8px 6px}}.acp-tabulator-container .tabulator-loader{background:#fffc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar{width:8px;height:8px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb:hover{background:#a8a8a8}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: CustomTabulatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-tabulator', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: \"<div [id]=\\\"containerId\\\" class=\\\"acp-tabulator-container\\\"></div>\", styles: [\".tabulator{background-color:#888;border:1px solid #999;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#e6e6e6;border-bottom:1px solid #999;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#e6e6e6;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#cdcdcd;border:1px solid #999;pointer-events:none;position:absolute}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#cdcdcd;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #aaa}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #aaa}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #999;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator-row.tabulator-moving{border-bottom:1px solid #aaa;border-top:1px solid #aaa;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-cell{border-right:1px solid #aaa;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#e6e6e6;border-bottom:1px solid #aaa;border-right:1px solid #999}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #aaa;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#aaa;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #aaa}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #aaa;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #aaa;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #aaa}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #aaa}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{border:1px solid #dee2e6;font-size:16px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#fff;border-bottom:1px solid #dee2e6;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#fff;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#e6e6e6;border:1px solid #dee2e6;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #aaa;display:flex;margin-right:-1px;overflow:hidden;position:relative}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#e6e6e6;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #aaa;border-top:1px solid #dee2e6;box-sizing:border-box;display:inline-block}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#dadfe4!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #dee2e6}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #dee2e6}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #dee2e6;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #dee2e6;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important;display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-5px}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:24px;position:relative}.tabulator-row.tabulator-row-even{background-color:#e9ecef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}}.tabulator-row.tabulator-moving{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse table{font-size:16px}.tabulator-row .tabulator-cell{border-right:1px solid #dee2e6;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:1px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#d00}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;color:#fff;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;border:1px solid #dee2e6;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:16px;overflow-y:auto;position:absolute;z-index:10000}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#e9ecef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#dee2e6;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #dee2e6}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:16px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #dee2e6;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #dee2e6;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #dee2e6;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #dee2e6}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #dee2e6}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{background-color:#fff;border:none}.tabulator .tabulator-header{border-bottom:2px solid #dee2e6;border-top:1px solid #dee2e6;color:inherit}.tabulator .tabulator-header .tabulator-col{background-color:#fff;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:12px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #dee2e6}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input{background-clip:padding-box;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#495057;font-size:1rem;line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input:focus{background-color:#fff;border:1px solid #1d68cd;color:#495057;outline:0}.tabulator .tabulator-header .tabulator-calcs-holder{border-bottom:1px solid #dee2e6;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder span{color:#000}.tabulator .tabulator-footer,.tabulator .tabulator-tableholder .tabulator-table{color:inherit}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{background-color:#fff;font-weight:400}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-paginator{color:inherit}.tabulator .tabulator-footer .tabulator-pages{margin:0}.tabulator .tabulator-footer .tabulator-page{margin:5px 0 0;padding:8px 12px}.tabulator .tabulator-footer .tabulator-page[data-page=first]{border-bottom-left-radius:4px;border-top-left-radius:4px}.tabulator .tabulator-footer .tabulator-page[data-page=last]{border:1px solid #dee2e6;border-bottom-right-radius:4px;border-top-right-radius:4px}.tabulator .tabulator-footer .tabulator-page.active{background-color:#0d6efd;border-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-page:disabled{background:#fff;border-color:#dee2e6;color:#6c757d}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{background:#e9ecef;border-color:#dee2e6;color:#0a58ca}}.tabulator.thead-dark .tabulator-header,.tabulator.thead-dark .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table{background-color:#fff}.tabulator.table:not(.thead-light) .tabulator-header,.tabulator.table:not(.thead-light) .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table .tabulator-tableholder{color:#212529}.tabulator.table .tabulator-row{background-color:#fff;border-color:#dee2e6;color:#212529}@media (hover:hover) and (pointer:fine){.tabulator.table .tabulator-row:hover{background-color:#dee2e6}.tabulator.table .tabulator-row:hover .tabulator-cell{background-color:#ced4da}}.tabulator.table .tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator.table .tabulator-footer{border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder{background:#fff!important;border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder .tabulator-row{background-color:#fff!important;border-color:#dee2e6!important;color:#212529!important}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even{background-color:#e9ecef}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator.table-striped.table .tabulator-row:nth-child(2n) .tabulator-cell{background-color:transparent}.tabulator.table-bordered{border:1px solid #dee2e6}.tabulator.table-bordered .tabulator-header .tabulator-col,.tabulator.table-bordered .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid #dee2e6}.tabulator.table-borderless .tabulator-header,.tabulator.table-borderless .tabulator-row{border:none}.tabulator.table-sm .tabulator-header .tabulator-col .tabulator-col-content{padding:5px!important}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row{min-height:26px}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:5px!important}.tabulator.table-sm .tabulator-row{padding-bottom:0;padding-top:0}.tabulator.table-sm .tabulator-col-resize-handle{padding:0}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-active{background:#6c757d!important}.tabulator-row{border-bottom:1px solid #dee2e6;min-height:40px}.tabulator-row .tabulator-cell{border-right:none;padding:12px}.tabulator-row .tabulator-cell.tabulator-row-header{background:#fff;border-bottom:none;border-right:1px solid #dee2e6}.tabulator-row .tabulator-cell .tabulator-data-tree-control{border:1px solid #ccc}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-edit-select-list .tabulator-edit-select-list-group,.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:initial;text-align:initial}.tabulator-print-table .tabulator-data-tree-control{color:inherit}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-popup-container{background:#fff}.tabulator-edit-list .tabulator-edit-list-item.active{color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{color:#fff}}.tabulator{background-color:#fff;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableholder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select,.tabulator.tabulator-ranges .tabulator-cell:not(.tabulator-editing){-webkit-user-select:none;user-select:none}.tabulator .tabulator-header{border-bottom:1px solid #999;box-sizing:border-box;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-header-contents{overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-header-contents .tabulator-headers{display:inline-block}.tabulator .tabulator-header .tabulator-col{background:#f9fafb;border-right:1px solid #ddd;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#dae1e7;border:1px solid #999;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-range-highlight{background-color:#d6d6d6;color:#000}.tabulator .tabulator-header .tabulator-col.tabulator-range-selected{background-color:#3876ca;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;padding:4px;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder{position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title.tabulator-col-title-wrap{text-overflow:clip;white-space:normal}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{background:#fff;border:1px solid #999;box-sizing:border-box;padding:1px;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-header-popup-button+.tabulator-title-editor{width:calc(100% - 22px)}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{align-items:center;bottom:0;display:flex;position:absolute;right:4px;top:0}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-left:6px solid transparent;border-right:6px solid transparent;height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #ddd;display:flex;margin-right:-1px;overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{box-sizing:border-box;margin-top:2px;position:relative;text-align:center;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#dae1e7;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter{color:#bbb}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #666;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-top:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:none;border-top:6px solid #666;color:#666}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{align-items:center;display:flex;justify-content:center;text-orientation:mixed;writing-mode:vertical-rl}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-bottom:20px;padding-right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-sorter{justify-content:center;inset:4px 0 auto}.tabulator .tabulator-header .tabulator-frozen{left:0;position:sticky;z-index:11}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{display:inline-block}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableholder{-webkit-overflow-scrolling:touch;overflow:auto;position:relative;white-space:nowrap;width:100%}.tabulator .tabulator-tableholder:focus{outline:none}.tabulator .tabulator-tableholder .tabulator-placeholder{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-width:100%;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%}.tabulator .tabulator-tableholder .tabulator-placeholder .tabulator-placeholder-contents{color:#ccc;display:inline-block;font-size:20px;font-weight:700;padding:10px;text-align:center;white-space:normal}.tabulator .tabulator-tableholder .tabulator-table{background-color:#fff;color:#333;display:inline-block;overflow:visible;position:relative;white-space:nowrap}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#e2e2e2!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-range-overlay{inset:0;pointer-events:none;position:absolute;z-index:10}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range{border:1px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;position:absolute;right:-3px;width:6px}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range-cell-active{border:2px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-footer{background-color:#fff;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-footer-contents{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:5px 10px}.tabulator .tabulator-footer .tabulator-footer-contents:empty{display:none}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:-5px;overflow-x:auto}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid rgba(34,36,38,.15);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab:hover{cursor:pointer;opacity:.7}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background:#fff}.tabulator .tabulator-footer .tabulator-calcs-holder{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px}.tabulator .tabulator-footer>*+.tabulator-page-counter{margin-left:10px}.tabulator .tabulator-footer .tabulator-page-counter{font-weight:400}.tabulator .tabulator-footer .tabulator-paginator{color:#555;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:right}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#0003;color:#fff;cursor:pointer}}.tabulator .tabulator-col-resize-handle{display:inline-block;margin-left:-3px;margin-right:-3px;position:relative;vertical-align:middle;width:6px;z-index:11}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}}.tabulator .tabulator-col-resize-handle:last-of-type{margin-right:0;width:3px}.tabulator .tabulator-col-resize-guide{background-color:#999;height:100%;margin-left:-.5px;opacity:.5;position:absolute;top:0;width:4px}.tabulator .tabulator-row-resize-guide{background-color:#999;height:4px;left:0;margin-top:-.5px;opacity:.5;position:absolute;width:100%}.tabulator .tabulator-alert{align-items:center;background:#0006;display:flex;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%;z-index:100}.tabulator .tabulator-alert .tabulator-alert-msg{background:#fff;border-radius:10px;display:inline-block;font-size:16px;font-weight:700;margin:0 auto;padding:10px 20px}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-msg{border:4px solid #333;color:#000}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-error{border:4px solid #d00;color:#590000}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:22px;position:relative}.tabulator-row.tabulator-row-even{background-color:#efefef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}}.tabulator-row.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator-row.tabulator-row-moving{background:#fff;border:1px solid #000}.tabulator-row.tabulator-moving{border-bottom:1px solid #ddd;border-top:1px solid #ddd;pointer-events:none;position:absolute;z-index:15}.tabulator-row.tabulator-range-highlight .tabulator-cell.tabulator-range-row-header{background-color:#d6d6d6;color:#000}.tabulator-row.tabulator-range-highlight.tabulator-range-selected .tabulator-cell.tabulator-range-row-header,.tabulator-row.tabulator-range-selected .tabulator-cell.tabulator-range-row-header{background-color:#3876ca;color:#fff}.tabulator-row .tabulator-row-resize-handle{bottom:0;height:5px;left:0;position:absolute;right:0}.tabulator-row .tabulator-row-resize-handle.prev{bottom:auto;top:0}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{border-right:1px solid #ddd;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#f9fafb;border-bottom:1px solid #ddd;border-right:1px solid rgba(34,36,38,.15)}.tabulator-row .tabulator-cell.tabulator-frozen{background-color:inherit;display:inline-block;left:0;position:sticky;z-index:11}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;outline:none;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{background:transparent;border:1px;outline:none}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #db2828}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#db2828}.tabulator-row .tabulator-cell.tabulator-row-handle{align-items:center;display:inline-flex;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{background:#666;height:3px;margin-top:2px;width:100%}.tabulator-row .tabulator-cell.tabulator-range-selected:not(.tabulator-range-only-cell-selected):not(.tabulator-range-row-header){background-color:#9abcea}.tabulator-row .tabulator-cell .tabulator-data-tree-branch-empty{display:inline-block;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{cursor:pointer;opacity:.7}}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open{display:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle svg{stroke:#fff}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{border-radius:14px;display:inline-block;height:14px;width:14px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-row.tabulator-group span{color:#d00;margin-left:10px}.tabulator-toggle{background:#dcdcdc;border:1px solid #ccc;box-sizing:border-box;display:flex;flex-direction:row}.tabulator-toggle.tabulator-toggle-on{background:#1c6cc2}.tabulator-toggle .tabulator-toggle-switch{background:#fff;border:1px solid #ccc;box-sizing:border-box}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #ddd;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-popup{border-radius:3px;padding:5px}.tabulator-tooltip{border-radius:2px;box-shadow:none;font-size:12px;max-width:Min(500px,100%);padding:3px 5px;pointer-events:none}.tabulator-menu .tabulator-menu-item{box-sizing:border-box;padding:5px 10px;position:relative;-webkit-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#efefef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu{padding-right:25px}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#ddd;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #ddd}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:14px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item{color:#333;outline:none;padding:4px}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd;color:#fff}.tabulator-edit-list .tabulator-edit-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-list .tabulator-edit-list-item.focused{outline:1px solid #1d68cd}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{background:#1d68cd;color:#fff;cursor:pointer}}.tabulator-edit-list .tabulator-edit-list-placeholder{color:#333;padding:4px;text-align:center}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #ddd;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-2,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-2{padding-left:12px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-3,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-3{padding-left:20px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-4,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-4{padding-left:28px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-5,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-5{padding-left:36px}.tabulator.tabulator-ltr{direction:ltr}.tabulator.tabulator-rtl{direction:rtl;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #ddd;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{margin-left:-1px;margin-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-left:25px;padding-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{left:8px;right:auto}.tabulator.tabulator-rtl .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;left:-3px;position:absolute;right:auto;width:6px}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #ddd;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #ddd;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-control{margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-col-resize-handle:last-of-type{margin-left:0;margin-right:-3px;width:3px}.tabulator.tabulator-rtl .tabulator-footer .tabulator-calcs-holder{text-align:initial}.tabulator-print-fullscreen{inset:0;position:absolute;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-print-table-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-print-table .tabulator-print-table-group span{color:#d00;margin-left:10px}.tabulator-print-table .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator{border:1px solid rgba(34,36,38,.15);border-radius:.28571rem;box-shadow:none;color:#000000de;margin:1em 0;width:100%}.tabulator .tabulator-header{border-bottom:1px solid rgba(34,36,38,.1);box-shadow:none;color:#000000de;font-style:none;font-weight:700;text-transform:none}.tabulator .tabulator-header,.tabulator .tabulator-header .tabulator-col{background-color:#f9fafb;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:.92857em .78571em}.tabulator .tabulator-tableholder .tabulator-table{background-color:transparent}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#f2f2f2!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #ddd}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #ddd}.tabulator .tabulator-footer{background:#f9fafb;border-top:1px solid rgba(34,36,38,.15);box-shadow:none;color:#000000de;font-style:normal;font-weight:400;padding:.78571em;text-align:right;text-transform:none}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#fff!important;margin:-.78571em -.78571em .78571em}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-.78571em}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:calc(-.78571em - 5px)}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{color:#d00}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive{background:#fcfff5!important;box-shadow:inset 0 0 #a3c293;color:#21ba45!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative:hover{background:#ffe7e7!important;color:#d41616!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error:hover{background:#ffe7e7!important;color:#d12323!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning{background:#fffaf3!important;box-shadow:inset 0 0 #c9ba9b;color:#f2c037!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning:hover{background:#fff4e4!important;color:#f1bb29!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{color:#0003;pointer-events:none}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.disabled:hover{color:#0003;pointer-events:none}}.tabulator.inverted{background:#333;border:none;color:#ffffffe6}.tabulator.inverted .tabulator-header{background-color:#00000026;color:#ffffffe6}.tabulator.inverted .tabulator-header,.tabulator.inverted .tabulator-header .tabulator-col{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row{border:none;color:#ffffffe6}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-footer{background:#fff}.tabulator.striped .tabulator-row:nth-child(2n){background-color:#f2f2f2}.tabulator.celled{border:1px solid rgba(34,36,38,.15)}.tabulator.celled .tabulator-header .tabulator-col,.tabulator.celled .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid rgba(34,36,38,.1)}.tabulator[class*=\\\"single line\\\"] .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:none}.tabulator.red{border-top:.2em solid #db2828}.tabulator.inverted.red{background-color:#db2828!important;color:#fff!important}.tabulator.orange{border-top:.2em solid #f2711c}.tabulator.inverted.orange{background-color:#f2711c!important;color:#fff!important}.tabulator.yellow{border-top:.2em solid #fbbd08}.tabulator.inverted.yellow{background-color:#fbbd08!important;color:#fff!important}.tabulator.olive{border-top:.2em solid #b5cc18}.tabulator.inverted.olive{background-color:#b5cc18!important;color:#fff!important}.tabulator.green{border-top:.2em solid #21ba45}.tabulator.inverted.green{background-color:#21ba45!important;color:#fff!important}.tabulator.teal{border-top:.2em solid #00b5ad}.tabulator.inverted.teal{background-color:#00b5ad!important;color:#fff!important}.tabulator.blue{border-top:.2em solid #2185d0}.tabulator.inverted.blue{background-color:#2185d0!important;color:#fff!important}.tabulator.violet{border-top:.2em solid #6435c9}.tabulator.inverted.violet{background-color:#6435c9!important;color:#fff!important}.tabulator.purple{border-top:.2em solid #a333c8}.tabulator.inverted.purple{background-color:#a333c8!important;color:#fff!important}.tabulator.pink{border-top:.2em solid #e03997}.tabulator.inverted.pink{background-color:#e03997!important;color:#fff!important}.tabulator.brown{border-top:.2em solid #a5673f}.tabulator.inverted.brown{background-color:#a5673f!important;color:#fff!important}.tabulator.grey{border-top:.2em solid #767676}.tabulator.inverted.grey{background-color:#767676!important;color:#fff!important}.tabulator.black{border-top:.2em solid #1b1c1d}.tabulator.inverted.black{background-color:#1b1c1d!important;color:#fff!important}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content{padding:1em}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:20px}.tabulator.padded .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content{padding:1.5em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:26px}.tabulator.padded.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1.5em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content{padding:.5em .7em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:12px}.tabulator.compact .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.5em .7em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content{padding:.4em .6em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:10px}.tabulator.compact.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.4em .6em}.tabulator-row{border-bottom:1px solid rgba(34,36,38,.1)}.tabulator-row.tabulator-row-even{background-color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}}.tabulator-row.tabulator-selected{background-color:#9abcea!important}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc!important;cursor:pointer}}.tabulator-row.tabulator-moving{pointer-events:none!important}.tabulator-row .tabulator-cell{border-right:none;padding:.78571em;vertical-align:middle}.tabulator-row .tabulator-cell:last-of-type{border-right:none}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{color:#fff}.tabulator-row.tabulator-group{background:#fafafa}.tabulator-row.tabulator-group span{color:#666}.tabulator-menu{background:#fff}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#f9fafb}}.tabulator-edit-select-list{background:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}@media (hover:hover) and (pointer:fine){.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{color:#fff}}.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator-print-table .tabulator-print-table-group{background:#fafafa}.tabulator-print-table .tabulator-print-table-group span{color:#666}.acp-tabulator-container{width:100%}.acp-tabulator-container:not(.tabulator-bootstrap5):not(.tabulator-semanticui) .tabulator{display:block}.acp-tabulator-container.tabulator-bootstrap5 .tabulator{border-radius:.375rem}.acp-tabulator-container.tabulator-semanticui .tabulator{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.acp-tabulator-container .tabulator-row.tabulator-selectable:hover{background-color:#0000000a;cursor:pointer;transition:background-color .2s ease}.acp-tabulator-container .tabulator-row.tabulator-selected{background-color:#1976d21f}@media (max-width: 768px){.acp-tabulator-container .tabulator-header{font-size:.875rem}.acp-tabulator-container .tabulator-cell{font-size:.875rem;padding:8px 6px}}.acp-tabulator-container .tabulator-loader{background:#fffc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar{width:8px;height:8px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb:hover{background:#a8a8a8}\\n\"] }]\n }], propDecorators: { data: [{\n type: Input\n }], columns: [{\n type: Input\n }], height: [{\n type: Input\n }], layout: [{\n type: Input\n }], dataTree: [{\n type: Input\n }], dataTreeChildField: [{\n type: Input\n }], dataTreeStartExpanded: [{\n type: Input\n }], dataTreeSelectPropagate: [{\n type: Input\n }], selectable: [{\n type: Input\n }], reactiveData: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], autoResize: [{\n type: Input\n }], theme: [{\n type: Input\n }], options: [{\n type: Input\n }], cellEdited: [{\n type: Output\n }], rowClick: [{\n type: Output\n }], rowSelected: [{\n type: Output\n }], tableReady: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYnVsYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvY3VzdG9tLXRhYnVsYXRvci9jdXN0b20tdGFidWxhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9jdXN0b20tdGFidWxhdG9yL2N1c3RvbS10YWJ1bGF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsSUFBSSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHOUYsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7QUFVM0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxjQUFjO0lBQ0wsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQVUsRUFBRSxDQUFDO0lBRTdCLGdCQUFnQjtJQUNQLE1BQU0sR0FBNEIsT0FBTyxDQUFDO0lBQzFDLE1BQU0sR0FBZ0UsU0FBUyxDQUFDO0lBRXpGLHdCQUF3QjtJQUNmLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUM5Qix1QkFBdUIsR0FBRyxLQUFLLENBQUM7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aEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGN1c3RvbS10YWJ1bGF0b3IuY29tcG9uZW50LnRzXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQYWdlTW9kdWxlLCBSZWFjdGl2ZURhdGFNb2R1bGUsIFRhYnVsYXRvckZ1bGwgYXMgVGFidWxhdG9yIH0gZnJvbSAndGFidWxhdG9yLXRhYmxlcyc7XG5pbXBvcnQgeyBUYWJ1bGF0b3JUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuVGFidWxhdG9yLnJlZ2lzdGVyTW9kdWxlKFtQYWdlTW9kdWxlLCBSZWFjdGl2ZURhdGFNb2R1bGVdKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLXRhYnVsYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRhYnVsYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS10YWJ1bGF0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGFidWxhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyBEYXRhIGlucHV0c1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zOiBhbnlbXSA9IFtdO1xuXG4gIC8vIExheW91dCBpbnB1dHNcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCBmYWxzZSA9ICc0MDBweCc7XG4gIEBJbnB1dCgpIGxheW91dDogJ2ZpdERhdGEnIHwgJ2ZpdENvbHVtbnMnIHwgJ2ZpdERhdGFGaWxsJyB8ICdmaXREYXRhU3RyZXRjaCcgPSAnZml0RGF0YSc7XG5cbiAgLy8gVHJlZSBzdHJ1Y3R1cmUgaW5wdXRzXG4gIEBJbnB1dCgpIGRhdGFUcmVlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRhdGFUcmVlQ2hpbGRGaWVsZCA9ICdjaGlsZHJlbic7XG4gIEBJbnB1dCgpIGRhdGFUcmVlU3RhcnRFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkYXRhVHJlZVNlbGVjdFByb3BhZ2F0ZSA9IGZhbHNlO1xuXG4gIC8vIEJlaGF2aW9yIGlucHV0c1xuICBASW5wdXQoKSBzZWxlY3RhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVhY3RpdmVEYXRhID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnTm8gZGF0YSBhdmFpbGFibGUnO1xuICBASW5wdXQoKSBhdXRvUmVzaXplID0gdHJ1ZTtcblxuICAvLyBUaGVtZSBjb25maWd1cmF0aW9uXG4gIEBJbnB1dCgpIHRoZW1lOiBUYWJ1bGF0b3JUaGVtZSA9IHsgbmFtZTogJ2RlZmF1bHQnIH07XG5cbiAgLy8gQ3VzdG9tIG9wdGlvbnNcbiAgQElucHV0KCkgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIC8vIEV2ZW50c1xuICBAT3V0cHV0KCkgY2VsbEVkaXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB0YWJsZVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJ1bGF0b3I+KCk7XG5cbiAgcHJpdmF0ZSBfdGFidWxhdG9yITogVGFidWxhdG9yO1xuXG4gIC8vIE1hZGUgcHVibGljIGZvciB0ZW1wbGF0ZSBhY2Nlc3NcbiAgcHVibGljIGNvbnRhaW5lcklkID0gYGFjcC10YWJ1bGF0b3ItJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplVGFibGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddICYmICFjaGFuZ2VzWydkYXRhJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snY29sdW1ucyddICYmICFjaGFuZ2VzWydjb2x1bW5zJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbHVtbnMoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1sndGhlbWUnXSAmJiAhY2hhbmdlc1sndGhlbWUnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVRhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUYWJsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdGFidWxhdG9yKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lUYWJsZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY29udGFpbmVySWQpO1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RhYnVsYXRvciBjb250YWluZXIgbm90IGZvdW5kJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnOiBhbnkgPSB7XG4gICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMsXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxuICAgICAgbGF5b3V0OiB0aGlzLmxheW91dCxcbiAgICAgIGRhdGFUcmVlOiB0aGlzLmRhdGFUcmVlLFxuICAgICAgZGF0YVRyZWVDaGlsZEZpZWxkOiB0aGlzLmRhdGFUcmVlQ2hpbGRGaWVsZCxcbiAgICAgIGRhdGFUcmVlU3RhcnRFeHBhbmRlZDogdGhpcy5kYXRhVHJlZVN0YXJ0RXhwYW5kZWQsXG4gICAgICBkYXRhVHJlZVNlbGVjdFByb3BhZ2F0ZTogdGhpcy5kYXRhVHJlZVNlbGVjdFByb3BhZ2F0ZSxcbiAgICAgIHJlYWN0aXZlRGF0YTogdGhpcy5yZWFjdGl2ZURhdGEsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy5wbGFjZWhvbGRlcixcbiAgICAgIGF1dG9SZXNpemU6IHRoaXMuYXV0b1Jlc2l6ZSxcbiAgICAgIHNlbGVjdGFibGU6IHRoaXMuc2VsZWN0YWJsZSxcbiAgICAgIHJlbmRlclZlcnRpY2FsOiAndmlydHVhbCcsXG4gICAgICByZW5kZXJWZXJ0aWNhbEJ1ZmZlcjogMzAwLFxuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5fdGFidWxhdG9yID0gbmV3IFRhYnVsYXRvcihjb250YWluZXIsIGNvbmZpZyk7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUoKTtcbiAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMoKTtcbiAgICAgIHRoaXMudGFibGVSZWFkeS5lbWl0KHRoaXMuX3RhYnVsYXRvcik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluaXRpYWxpemluZyBUYWJ1bGF0b3I6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUaGVtZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbnRhaW5lcklkKTtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAvLyBSZW1vdmUgZXhpc3RpbmcgdGhlbWUgY2xhc3Nlc1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICd0YWJ1bGF0b3ItZGVmYXVsdCcsXG4gICAgICAgICd0YWJ1bGF0b3ItYm9vdHN0cmFwNScsXG4gICAgICAgICd0YWJ1bGF0b3Itc2VtYW50aWN1aScsXG4gICAgICApO1xuXG4gICAgICAvLyBBZGQgY3VycmVudCB0aGVtZSBjbGFzc1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYHRhYnVsYXRvci0ke3RoaXMudGhlbWUubmFtZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RhYnVsYXRvci5vbignY2VsbEVkaXRlZCcsIGNlbGwgPT4ge1xuICAgICAgdGhpcy5jZWxsRWRpdGVkLmVtaXQoY2VsbCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl90YWJ1bGF0b3Iub24oJ3Jvd0NsaWNrJywgKGUsIHJvdykgPT4ge1xuICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHJvdyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl90YWJ1bGF0b3Iub24oJ3Jvd1NlbGVjdGVkJywgcm93ID0+IHtcbiAgICAgIHRoaXMucm93U2VsZWN0ZWQuZW1pdChyb3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRhKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90YWJ1bGF0b3IpIHtcbiAgICAgIHRoaXMuX3RhYnVsYXRvci5yZXBsYWNlRGF0YSh0aGlzLmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29sdW1ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdGFidWxhdG9yKSB7XG4gICAgICB0aGlzLl90YWJ1bGF0b3Iuc2V0Q29sdW1ucyh0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVRhYmxlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90YWJ1bGF0b3IpIHtcbiAgICAgIHRoaXMuX3RhYnVsYXRvci5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHVibGljIEFQSSBtZXRob2RzXG4gIHB1YmxpYyBnZXRJbnN0YW5jZSgpOiBUYWJ1bGF0b3Ige1xuICAgIHJldHVybiB0aGlzLl90YWJ1bGF0b3I7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90YWJ1bGF0b3IpIHtcbiAgICAgIHRoaXMuX3RhYnVsYXRvci5yZWRyYXcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2lkXT1cImNvbnRhaW5lcklkXCIgY2xhc3M9XCJhY3AtdGFidWxhdG9yLWNvbnRhaW5lclwiPjwvZGl2PiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class GetTotalPipe {\n transform(colName, dataSource) {\n return this.getTotal(colName, dataSource) || '';\n }\n /**\n * Calculate and return the total (sum) of all the column --> the column must be number\n */\n getTotal(colName, dataSource) {\n const total = dataSource\n .map(row => row[colName])\n .reduce((acc, value) => (value ? acc + Number(value) : acc), 0);\n return total?.toFixed(2);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: GetTotalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.1\", ngImport: i0, type: GetTotalPipe, isStandalone: true, name: \"getTotal\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: GetTotalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'getTotal',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRvdGFsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvcGlwZXMvZ2V0LXRvdGFsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFNBQVMsQ0FBQyxPQUFlLEVBQUUsVUFBaUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLE9BQWUsRUFBRSxVQUFpQjtRQUN6QyxNQUFNLEtBQUssR0FBRyxVQUFVO2FBQ3JCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7dUdBYlUsWUFBWTtxR0FBWixZQUFZOzsyRkFBWixZQUFZO2tCQUp4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO29CQUNoQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2dldFRvdGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgR2V0VG90YWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShjb2xOYW1lOiBzdHJpbmcsIGRhdGFTb3VyY2U6IGFueVtdKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRUb3RhbChjb2xOYW1lLCBkYXRhU291cmNlKSB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgYW5kIHJldHVybiB0aGUgdG90YWwgKHN1bSkgb2YgYWxsIHRoZSBjb2x1bW4gLS0+IHRoZSBjb2x1bW4gbXVzdCBiZSBudW1iZXJcbiAgICovXG4gIGdldFRvdGFsKGNvbE5hbWU6IHN0cmluZywgZGF0YVNvdXJjZTogYW55W10pOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gZGF0YVNvdXJjZVxuICAgICAgLm1hcChyb3cgPT4gcm93W2NvbE5hbWVdKVxuICAgICAgLnJlZHVjZSgoYWNjLCB2YWx1ZSkgPT4gKHZhbHVlID8gYWNjICsgTnVtYmVyKHZhbHVlKSA6IGFjYyksIDApO1xuICAgIHJldHVybiB0b3RhbD8udG9GaXhlZCgyKTtcbiAgfVxufVxuIl19","import { inject, Pipe } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { TranslocoService } from '@jsverse/transloco';\nimport * as i0 from \"@angular/core\";\nexport class StatusDisplayPipe {\n sanitizer = inject(DomSanitizer);\n transloco = inject(TranslocoService, { optional: true });\n transform(isActive, options = {}) {\n const { gender = 'neutral', showIcon = true, customActiveText, customInactiveText, textClass = '', iconClass = '', } = options;\n const text = this.getStatusText(isActive, gender, customActiveText, customInactiveText);\n const icon = isActive ? 'check_circle' : 'cancel';\n const colorClass = isActive ? 'text-green-500' : 'text-red-500';\n const combinedIconClass = `${colorClass} align-middle mr-1 ${iconClass}`.trim();\n const combinedTextClass = `align-middle ${textClass}`.trim();\n let html = '';\n if (showIcon) {\n html += `<mat-icon class=\"${combinedIconClass}\" fontIcon=\"${icon}\"></mat-icon>`;\n }\n html += `<span class=\"${combinedTextClass}\">${text}</span>`;\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n getStatusText(isActive, gender, customActive, customInactive) {\n if (customActive && isActive)\n return customActive;\n if (customInactive && !isActive)\n return customInactive;\n if (!this.transloco)\n return this.getFallbackText(isActive, gender);\n const translationKey = this.getTranslationKey(isActive, gender);\n const translation = this.transloco.translate(translationKey);\n return translation !== translationKey ? translation : this.getFallbackText(isActive, gender);\n }\n getTranslationKey(isActive, gender) {\n const base = isActive ? 'status.active' : 'status.inactive';\n return gender !== 'neutral'\n ? `${base}.${gender}`\n : base;\n }\n getFallbackText(isActive, gender) {\n const lang = this.transloco?.getActiveLang() || 'en';\n const isSpanish = lang.startsWith('es');\n if (!isSpanish) {\n return isActive ? 'Active' : 'Inactive';\n }\n if (isActive) {\n return gender === 'female' ? 'Activa' : 'Activo';\n }\n else {\n return gender === 'female' ? 'Inactiva' : 'Inactivo';\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: StatusDisplayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.1\", ngImport: i0, type: StatusDisplayPipe, isStandalone: true, name: \"statusDisplay\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: StatusDisplayPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'statusDisplay',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWRpc3BsYXkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9waXBlcy9zdGF0dXMtZGlzcGxheS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBd0J0RCxNQUFNLE9BQU8saUJBQWlCO0lBQ3BCLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRWpFLFNBQVMsQ0FBQyxRQUFpQixFQUFFLFVBQXlCLEVBQUU7UUFDdEQsTUFBTSxFQUNKLE1BQU0sR0FBRyxTQUFTLEVBQ2xCLFFBQVEsR0FBRyxJQUFJLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEdBQ2YsR0FBRyxPQUFPLENBQUM7UUFFWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN4RixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNoRSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsVUFBVSxzQkFBc0IsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEYsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0QsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksSUFBSSxvQkFBb0IsaUJBQWlCLGVBQWUsSUFBSSxlQUFlLENBQUM7UUFDbEYsQ0FBQztRQUVELElBQUksSUFBSSxnQkFBZ0IsaUJBQWlCLEtBQUssSUFBSSxTQUFTLENBQUM7UUFFNUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxhQUFhLENBQ25CLFFBQWlCLEVBQ2pCLE1BQW9CLEVBQ3BCLFlBQXFCLEVBQ3JCLGNBQXVCO1FBRXZCLElBQUksWUFBWSxJQUFJLFFBQVE7WUFBRSxPQUFPLFlBQVksQ0FBQztRQUNsRCxJQUFJLGNBQWMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLGNBQWMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0QsT0FBTyxXQUFXLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUFpQixFQUFFLE1BQW9CO1FBQy9ELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RCxPQUFPLE1BQU0sS0FBSyxTQUFTO1lBQ3pCLENBQUMsQ0FBRSxHQUFHLElBQUksSUFBSSxNQUFNLEVBQXFCO1lBQ3pDLENBQUMsQ0FBRSxJQUF1QixDQUFDO0lBQy9CLENBQUM7SUFFTyxlQUFlLENBQUMsUUFBaUIsRUFBRSxNQUFvQjtRQUM3RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQztRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO3VHQW5FVSxpQkFBaUI7cUdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG50eXBlIFN0YXR1c0dlbmRlciA9ICdtYWxlJyB8ICdmZW1hbGUnIHwgJ25ldXRyYWwnO1xuXG5pbnRlcmZhY2UgU3RhdHVzT3B0aW9ucyB7XG4gIGdlbmRlcj86IFN0YXR1c0dlbmRlcjtcbiAgc2hvd0ljb24/OiBib29sZWFuO1xuICBjdXN0b21BY3RpdmVUZXh0Pzogc3RyaW5nO1xuICBjdXN0b21JbmFjdGl2ZVRleHQ/OiBzdHJpbmc7XG4gIHRleHRDbGFzcz86IHN0cmluZztcbiAgaWNvbkNsYXNzPzogc3RyaW5nO1xufVxuXG50eXBlIFRyYW5zbGF0aW9uS2V5ID1cbiAgfCAnc3RhdHVzLmFjdGl2ZSdcbiAgfCAnc3RhdHVzLmluYWN0aXZlJ1xuICB8ICdzdGF0dXMuYWN0aXZlLm1hbGUnXG4gIHwgJ3N0YXR1cy5hY3RpdmUuZmVtYWxlJ1xuICB8ICdzdGF0dXMuaW5hY3RpdmUubWFsZSdcbiAgfCAnc3RhdHVzLmluYWN0aXZlLmZlbWFsZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3N0YXR1c0Rpc3BsYXknLFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNEaXNwbGF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIHRyYW5zbG9jbyA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHRyYW5zZm9ybShpc0FjdGl2ZTogYm9vbGVhbiwgb3B0aW9uczogU3RhdHVzT3B0aW9ucyA9IHt9KTogU2FmZUh0bWwge1xuICAgIGNvbnN0IHtcbiAgICAgIGdlbmRlciA9ICduZXV0cmFsJyxcbiAgICAgIHNob3dJY29uID0gdHJ1ZSxcbiAgICAgIGN1c3RvbUFjdGl2ZVRleHQsXG4gICAgICBjdXN0b21JbmFjdGl2ZVRleHQsXG4gICAgICB0ZXh0Q2xhc3MgPSAnJyxcbiAgICAgIGljb25DbGFzcyA9ICcnLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZ2V0U3RhdHVzVGV4dChpc0FjdGl2ZSwgZ2VuZGVyLCBjdXN0b21BY3RpdmVUZXh0LCBjdXN0b21JbmFjdGl2ZVRleHQpO1xuICAgIGNvbnN0IGljb24gPSBpc0FjdGl2ZSA/ICdjaGVja19jaXJjbGUnIDogJ2NhbmNlbCc7XG4gICAgY29uc3QgY29sb3JDbGFzcyA9IGlzQWN0aXZlID8gJ3RleHQtZ3JlZW4tNTAwJyA6ICd0ZXh0LXJlZC01MDAnO1xuICAgIGNvbnN0IGNvbWJpbmVkSWNvbkNsYXNzID0gYCR7Y29sb3JDbGFzc30gYWxpZ24tbWlkZGxlIG1yLTEgJHtpY29uQ2xhc3N9YC50cmltKCk7XG4gICAgY29uc3QgY29tYmluZWRUZXh0Q2xhc3MgPSBgYWxpZ24tbWlkZGxlICR7dGV4dENsYXNzfWAudHJpbSgpO1xuXG4gICAgbGV0IGh0bWwgPSAnJztcblxuICAgIGlmIChzaG93SWNvbikge1xuICAgICAgaHRtbCArPSBgPG1hdC1pY29uIGNsYXNzPVwiJHtjb21iaW5lZEljb25DbGFzc31cIiBmb250SWNvbj1cIiR7aWNvbn1cIj48L21hdC1pY29uPmA7XG4gICAgfVxuXG4gICAgaHRtbCArPSBgPHNwYW4gY2xhc3M9XCIke2NvbWJpbmVkVGV4dENsYXNzfVwiPiR7dGV4dH08L3NwYW4+YDtcblxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RhdHVzVGV4dChcbiAgICBpc0FjdGl2ZTogYm9vbGVhbixcbiAgICBnZW5kZXI6IFN0YXR1c0dlbmRlcixcbiAgICBjdXN0b21BY3RpdmU/OiBzdHJpbmcsXG4gICAgY3VzdG9tSW5hY3RpdmU/OiBzdHJpbmcsXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKGN1c3RvbUFjdGl2ZSAmJiBpc0FjdGl2ZSkgcmV0dXJuIGN1c3RvbUFjdGl2ZTtcbiAgICBpZiAoY3VzdG9tSW5hY3RpdmUgJiYgIWlzQWN0aXZlKSByZXR1cm4gY3VzdG9tSW5hY3RpdmU7XG4gICAgaWYgKCF0aGlzLnRyYW5zbG9jbykgcmV0dXJuIHRoaXMuZ2V0RmFsbGJhY2tUZXh0KGlzQWN0aXZlLCBnZW5kZXIpO1xuXG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSB0aGlzLmdldFRyYW5zbGF0aW9uS2V5KGlzQWN0aXZlLCBnZW5kZXIpO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKHRyYW5zbGF0aW9uS2V5KTtcblxuICAgIHJldHVybiB0cmFuc2xhdGlvbiAhPT0gdHJhbnNsYXRpb25LZXkgPyB0cmFuc2xhdGlvbiA6IHRoaXMuZ2V0RmFsbGJhY2tUZXh0KGlzQWN0aXZlLCBnZW5kZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvbktleShpc0FjdGl2ZTogYm9vbGVhbiwgZ2VuZGVyOiBTdGF0dXNHZW5kZXIpOiBUcmFuc2xhdGlvbktleSB7XG4gICAgY29uc3QgYmFzZSA9IGlzQWN0aXZlID8gJ3N0YXR1cy5hY3RpdmUnIDogJ3N0YXR1cy5pbmFjdGl2ZSc7XG4gICAgcmV0dXJuIGdlbmRlciAhPT0gJ25ldXRyYWwnXG4gICAgICA/IChgJHtiYXNlfS4ke2dlbmRlcn1gIGFzIFRyYW5zbGF0aW9uS2V5KVxuICAgICAgOiAoYmFzZSBhcyBUcmFuc2xhdGlvbktleSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZhbGxiYWNrVGV4dChpc0FjdGl2ZTogYm9vbGVhbiwgZ2VuZGVyOiBTdGF0dXNHZW5kZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLnRyYW5zbG9jbz8uZ2V0QWN0aXZlTGFuZygpIHx8ICdlbic7XG4gICAgY29uc3QgaXNTcGFuaXNoID0gbGFuZy5zdGFydHNXaXRoKCdlcycpO1xuXG4gICAgaWYgKCFpc1NwYW5pc2gpIHtcbiAgICAgIHJldHVybiBpc0FjdGl2ZSA/ICdBY3RpdmUnIDogJ0luYWN0aXZlJztcbiAgICB9XG5cbiAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgIHJldHVybiBnZW5kZXIgPT09ICdmZW1hbGUnID8gJ0FjdGl2YScgOiAnQWN0aXZvJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGdlbmRlciA9PT0gJ2ZlbWFsZScgPyAnSW5hY3RpdmEnIDogJ0luYWN0aXZvJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';\nimport { MatColumnDef, MatFooterRowDef, MatHeaderRowDef, MatNoDataRow, MatRowDef, MatTable, MatTableDataSource, MatTableModule, } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { DatePipe, DecimalPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { GetTotalPipe } from '../../../pipes';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/table\";\nimport * as i2 from \"@angular/material/checkbox\";\nimport * as i3 from \"@angular/material/sort\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/paginator\";\nexport class MatDynamicTableComponent {\n componentRefs = [];\n embeddedViews = [];\n cdr = inject(ChangeDetectorRef);\n showExpand = false;\n showFooter = false;\n locale = 'en-US';\n highlightRowIndex = 0;\n visibleColumns = [];\n columnDefinitions = [];\n showSelectBox = false;\n tableData = [];\n rowTemplate = null;\n expandedDetail = null;\n enablePagination = false;\n paginationConfig = null;\n isLoadingData = false;\n rowSelected = new EventEmitter();\n copyRow = new EventEmitter();\n showExpanded = new EventEmitter();\n hideExpanded = new EventEmitter();\n pageEvent = new EventEmitter();\n isNormalRow = (_, row) => this.expandedElement !== row;\n isExpandedRow = (_, row) => this.expandedElement === row;\n dataSource = new MatTableDataSource([]);\n selection = new SelectionModel(true, []);\n expandedElement = null;\n columnsToDisplayWithExpand = [];\n headerRowDefs;\n rowDefs;\n footerRowDefs;\n columnDefs;\n noDataRow;\n table;\n rows;\n ngOnInit() {\n this.updateColumnsToDisplay();\n this.initializeSelection();\n }\n ngOnChanges(changes) {\n if (changes['tableData']) {\n this.updateTableData();\n }\n if (changes['showExpand'] || changes['visibleColumns'] || changes['columnDefinitions']) {\n this.updateColumnsToDisplay();\n }\n // Trigger change detection for OnPush strategy\n this.cdr.markForCheck();\n }\n ngAfterContentInit() {\n this.registerTableContent();\n this.initializeTable();\n this.cdr.markForCheck();\n }\n ngOnDestroy() {\n this.cleanupDynamicComponents();\n }\n updateTableData() {\n // Clear selection when new data arrives\n this.selection.clear();\n // Update data source\n this.dataSource.data = this.tableData || [];\n // Reset expanded element if it's no longer in the new data\n if (this.expandedElement && !this.dataSource.data.includes(this.expandedElement)) {\n this.expandedElement = null;\n }\n // Trigger change detection\n this.cdr.markForCheck();\n }\n updateColumnsToDisplay() {\n if (!this.visibleColumns.length && this.columnDefinitions) {\n this.visibleColumns = this.columnDefinitions.map(col => col.key);\n this.columnDefinitions.forEach((col, index) => (col.index = index));\n }\n const newColumns = [...this.visibleColumns];\n if (this.showSelectBox && !newColumns.includes('select')) {\n newColumns.unshift('select');\n }\n if (this.showExpand && this.expandedDetail) {\n if (!this.columnDefinitions?.some(col => col.key === 'expand')) {\n this.columnDefinitions = [\n ...(this.columnDefinitions || []),\n {\n key: 'expand',\n label: '',\n type: 'expand',\n index: this.columnDefinitions?.length || 0,\n },\n ];\n }\n if (!newColumns.includes('expand')) {\n newColumns.push('expand');\n }\n }\n this.columnsToDisplayWithExpand = newColumns;\n }\n initializeSelection() {\n this.selection = new SelectionModel(true, []);\n }\n registerTableContent() {\n this.columnDefs.forEach(columnDef => this.table.addColumnDef(columnDef));\n this.rowDefs.forEach(rowDef => this.table.addRowDef(rowDef));\n this.headerRowDefs.forEach(headerRowDef => this.table.addHeaderRowDef(headerRowDef));\n if (this.showFooter) {\n this.footerRowDefs.forEach(footerRowDef => this.table.addFooterRowDef(footerRowDef));\n }\n else {\n this.footerRowDefs.forEach(footerRowDef => this.table.removeFooterRowDef(footerRowDef));\n }\n if (this.noDataRow) {\n this.table.setNoDataRow(this.noDataRow);\n }\n }\n initializeTable() {\n this.dataSource = new MatTableDataSource(this.tableData || []);\n }\n cleanupDynamicComponents() {\n this.componentRefs.forEach(ref => ref.destroy());\n this.embeddedViews.forEach(view => view.destroy());\n }\n isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.dataSource.data.length;\n return numSelected === numRows && numRows > 0;\n }\n masterToggle() {\n this.isAllSelected()\n ? this.selection.clear()\n : this.dataSource.data.forEach(row => this.selection.select(row));\n this.rowSelected.emit(this.selection.selected);\n this.cdr.markForCheck();\n }\n checkboxLabel(row) {\n if (!row) {\n return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\n }\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row`;\n }\n selectRow(row) {\n this.selection.toggle(row);\n this.rowSelected.emit(this.selection.selected);\n this.cdr.markForCheck();\n }\n onExpand(event, element) {\n event.stopPropagation();\n this.expandedElement = this.expandedElement === element ? null : element;\n this.expandedElement ? this.showExpanded.emit(element) : this.hideExpanded.emit(element);\n this.cdr.markForCheck();\n }\n getRowColor(element) {\n return element.colorRow ? { 'background-color': element.colorRow } : {};\n }\n handlePageEvent(e) {\n this.pageEvent.emit(e);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatDynamicTableComponent, isStandalone: true, selector: \"acp-mat-dynamic-table\", inputs: { showExpand: \"showExpand\", showFooter: \"showFooter\", locale: \"locale\", highlightRowIndex: \"highlightRowIndex\", visibleColumns: \"visibleColumns\", columnDefinitions: \"columnDefinitions\", showSelectBox: \"showSelectBox\", tableData: \"tableData\", rowTemplate: \"rowTemplate\", expandedDetail: \"expandedDetail\", enablePagination: \"enablePagination\", paginationConfig: \"paginationConfig\", isLoadingData: \"isLoadingData\" }, outputs: { rowSelected: \"rowSelected\", copyRow: \"copyRow\", showExpanded: \"showExpanded\", hideExpanded: \"hideExpanded\", pageEvent: \"pageEvent\" }, queries: [{ propertyName: \"noDataRow\", first: true, predicate: MatNoDataRow, descendants: true }, { propertyName: \"headerRowDefs\", predicate: MatHeaderRowDef }, { propertyName: \"rowDefs\", predicate: MatRowDef }, { propertyName: \"footerRowDefs\", predicate: MatFooterRowDef }, { propertyName: \"columnDefs\", predicate: MatColumnDef }, { propertyName: \"rows\", predicate: ViewContainerRef }], viewQueries: [{ propertyName: \"table\", first: true, predicate: MatTable, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: \"<div class=\\\"mat-table-container\\\">\\n <div class=\\\"table-container small-table\\\">\\n <table #sort=\\\"matSort\\\" [dataSource]=\\\"dataSource.data\\\" mat-table matSort>\\n @if (columnDefinitions) {\\n <!-- Checkbox Column -->\\n @if (showSelectBox) {\\n <ng-container matColumnDef=\\\"select\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? masterToggle() : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel()\\\"\\n [checked]=\\\"selection.hasValue() && isAllSelected()\\\"\\n [indeterminate]=\\\"selection.hasValue() && !isAllSelected()\\\"\\n ></mat-checkbox>\\n </th>\\n <td *matCellDef=\\\"let row\\\" mat-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? selection.toggle(row) : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel(row)\\\"\\n [checked]=\\\"selection.isSelected(row)\\\"\\n ></mat-checkbox>\\n </td>\\n <td *matFooterCellDef mat-footer-cell></td>\\n </ng-container>\\n }\\n\\n <!-- Dynamic Columns -->\\n @for (col of columnDefinitions; track col.key) {\\n <ng-container [matColumnDef]=\\\"col.key\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n {{ col.label }}\\n </th>\\n\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [ngClass]=\\\"{ highlighted: highlightRowIndex === i }\\\"\\n >\\n @if (col.key === 'op') {\\n <div class=\\\"d-flex flex-row gap-1\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"rowTemplate; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n } @else {\\n @switch (col.type) {\\n @case ('image') {\\n <img\\n [src]=\\\"element[col.key]\\\"\\n class=\\\"img-fluid img-thumbnail my-1\\\"\\n width=\\\"50\\\"\\n alt=\\\"\\\"\\n />\\n }\\n @case ('number') {\\n <div>{{ element[col.key] | number: '1.2' : locale }}</div>\\n }\\n @case ('date') {\\n <div>{{ element[col.key] | date: 'dd.MM.yyyy' }}</div>\\n }\\n @case ('expand') {\\n <button\\n mat-icon-button\\n aria-label=\\\"expand row\\\"\\n (click)=\\\"onExpand($event, element)\\\"\\n >\\n @if (expandedElement === element) {\\n <mat-icon>keyboard_arrow_up</mat-icon>\\n } @else {\\n <mat-icon>keyboard_arrow_down</mat-icon>\\n }\\n </button>\\n }\\n @case ('template') {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n col.templateOutlet;\\n context: { $implicit: element, index: i }\\n \\\"\\n ></ng-container>\\n }\\n @case ('custom') {\\n <ng-container #dynamicContent></ng-container>\\n }\\n @default {\\n <div>{{ element[col.key] }}</div>\\n }\\n }\\n }\\n </td>\\n\\n <td *matFooterCellDef mat-footer-cell>\\n @if (col.index === 0) {\\n <div>Total</div>\\n }\\n @if (col.hasFooter) {\\n <div>{{ col.key | getTotal: dataSource.data }}</div>\\n }\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Expanded Detail Row -->\\n @if (showExpand && expandedDetail) {\\n <ng-container matColumnDef=\\\"expandedDetail\\\">\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\"\\n >\\n <div\\n class=\\\"m-0 p-0\\\"\\n [@detailExpand]=\\\"element === expandedElement ? 'expanded' : 'collapsed'\\\"\\n >\\n <ng-container\\n *ngTemplateOutlet=\\\"expandedDetail; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Header -->\\n <tr\\n mat-header-row\\n *matHeaderRowDef=\\\"columnsToDisplayWithExpand; sticky: true\\\"\\n class=\\\"small-header\\\"\\n ></tr>\\n\\n <!-- Normal Rows -->\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: columnsToDisplayWithExpand; when: isNormalRow\\\"\\n [class.example-expanded-row]=\\\"expandedElement === row\\\"\\n (click)=\\\"selectRow(row)\\\"\\n [style]=\\\"getRowColor(row)\\\"\\n ></tr>\\n\\n <!-- Expanded Row -->\\n @if (showExpand && expandedDetail) {\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: ['expandedDetail']; when: isExpandedRow\\\"\\n class=\\\"example-detail-row\\\"\\n ></tr>\\n }\\n\\n <!-- No Data Row -->\\n <tr class=\\\"mat-row\\\" *matNoDataRow>\\n <td class=\\\"mat-cell text-center\\\" [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\">\\n No records found\\n </td>\\n </tr>\\n\\n <!-- Footer -->\\n @if (showFooter && dataSource.data.length > 0) {\\n <tr mat-footer-row *matFooterRowDef=\\\"columnsToDisplayWithExpand\\\"></tr>\\n }\\n }\\n </table>\\n </div>\\n\\n @if (enablePagination && paginationConfig) {\\n <mat-paginator\\n #paginator\\n [disabled]=\\\"isLoadingData\\\"\\n (page)=\\\"handlePageEvent($event)\\\"\\n [length]=\\\"paginationConfig.totalRecords\\\"\\n [pageSize]=\\\"paginationConfig.pageSize\\\"\\n [pageSizeOptions]=\\\"paginationConfig.pageSizeOptions || []\\\"\\n [showFirstLastButtons]=\\\"true\\\"\\n [pageIndex]=\\\"paginationConfig.pageIndex\\\"\\n aria-label=\\\"Select page\\\"\\n ></mat-paginator>\\n }\\n</div>\\n\", styles: [\".table-container{position:relative;min-height:200px;max-height:400px;overflow:auto}table{width:100%}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatTableModule }, { kind: \"component\", type: i1.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i1.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i1.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i1.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i1.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i1.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i1.MatFooterCellDef, selector: \"[matFooterCellDef]\" }, { kind: \"directive\", type: i1.MatFooterRowDef, selector: \"[matFooterRowDef]\", inputs: [\"matFooterRowDef\", \"matFooterRowDefSticky\"] }, { kind: \"directive\", type: i1.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i1.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"directive\", type: i1.MatFooterCell, selector: \"mat-footer-cell, td[mat-footer-cell]\" }, { kind: \"component\", type: i1.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i1.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"component\", type: i1.MatFooterRow, selector: \"mat-footer-row, tr[mat-footer-row]\", exportAs: [\"matFooterRow\"] }, { kind: \"directive\", type: i1.MatNoDataRow, selector: \"ng-template[matNoDataRow]\" }, { kind: \"ngmodule\", type: MatCheckboxModule }, { kind: \"component\", type: i2.MatCheckbox, selector: \"mat-checkbox\", inputs: [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-expanded\", \"aria-controls\", \"aria-owns\", \"id\", \"required\", \"labelPosition\", \"name\", \"value\", \"disableRipple\", \"tabIndex\", \"color\", \"disabledInteractive\", \"checked\", \"disabled\", \"indeterminate\"], outputs: [\"change\", \"indeterminateChange\"], exportAs: [\"matCheckbox\"] }, { kind: \"ngmodule\", type: MatSortModule }, { kind: \"directive\", type: i3.MatSort, selector: \"[matSort]\", inputs: [\"matSortActive\", \"matSortStart\", \"matSortDirection\", \"matSortDisableClear\", \"matSortDisabled\"], outputs: [\"matSortChange\"], exportAs: [\"matSort\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: i6.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: GetTotalPipe, name: \"getTotal\" }, { kind: \"pipe\", type: DatePipe, name: \"date\" }, { kind: \"pipe\", type: DecimalPipe, name: \"number\" }], animations: [\n trigger('detailExpand', [\n state('collapsed,void', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicTableComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-dynamic-table', standalone: true, imports: [\n MatTableModule,\n MatCheckboxModule,\n MatSortModule,\n MatIconModule,\n MatButtonModule,\n MatPaginatorModule,\n NgClass,\n GetTotalPipe,\n DatePipe,\n DecimalPipe,\n NgTemplateOutlet,\n ], animations: [\n trigger('detailExpand', [\n state('collapsed,void', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div class=\\\"mat-table-container\\\">\\n <div class=\\\"table-container small-table\\\">\\n <table #sort=\\\"matSort\\\" [dataSource]=\\\"dataSource.data\\\" mat-table matSort>\\n @if (columnDefinitions) {\\n <!-- Checkbox Column -->\\n @if (showSelectBox) {\\n <ng-container matColumnDef=\\\"select\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? masterToggle() : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel()\\\"\\n [checked]=\\\"selection.hasValue() && isAllSelected()\\\"\\n [indeterminate]=\\\"selection.hasValue() && !isAllSelected()\\\"\\n ></mat-checkbox>\\n </th>\\n <td *matCellDef=\\\"let row\\\" mat-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? selection.toggle(row) : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel(row)\\\"\\n [checked]=\\\"selection.isSelected(row)\\\"\\n ></mat-checkbox>\\n </td>\\n <td *matFooterCellDef mat-footer-cell></td>\\n </ng-container>\\n }\\n\\n <!-- Dynamic Columns -->\\n @for (col of columnDefinitions; track col.key) {\\n <ng-container [matColumnDef]=\\\"col.key\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n {{ col.label }}\\n </th>\\n\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [ngClass]=\\\"{ highlighted: highlightRowIndex === i }\\\"\\n >\\n @if (col.key === 'op') {\\n <div class=\\\"d-flex flex-row gap-1\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"rowTemplate; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n } @else {\\n @switch (col.type) {\\n @case ('image') {\\n <img\\n [src]=\\\"element[col.key]\\\"\\n class=\\\"img-fluid img-thumbnail my-1\\\"\\n width=\\\"50\\\"\\n alt=\\\"\\\"\\n />\\n }\\n @case ('number') {\\n <div>{{ element[col.key] | number: '1.2' : locale }}</div>\\n }\\n @case ('date') {\\n <div>{{ element[col.key] | date: 'dd.MM.yyyy' }}</div>\\n }\\n @case ('expand') {\\n <button\\n mat-icon-button\\n aria-label=\\\"expand row\\\"\\n (click)=\\\"onExpand($event, element)\\\"\\n >\\n @if (expandedElement === element) {\\n <mat-icon>keyboard_arrow_up</mat-icon>\\n } @else {\\n <mat-icon>keyboard_arrow_down</mat-icon>\\n }\\n </button>\\n }\\n @case ('template') {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n col.templateOutlet;\\n context: { $implicit: element, index: i }\\n \\\"\\n ></ng-container>\\n }\\n @case ('custom') {\\n <ng-container #dynamicContent></ng-container>\\n }\\n @default {\\n <div>{{ element[col.key] }}</div>\\n }\\n }\\n }\\n </td>\\n\\n <td *matFooterCellDef mat-footer-cell>\\n @if (col.index === 0) {\\n <div>Total</div>\\n }\\n @if (col.hasFooter) {\\n <div>{{ col.key | getTotal: dataSource.data }}</div>\\n }\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Expanded Detail Row -->\\n @if (showExpand && expandedDetail) {\\n <ng-container matColumnDef=\\\"expandedDetail\\\">\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\"\\n >\\n <div\\n class=\\\"m-0 p-0\\\"\\n [@detailExpand]=\\\"element === expandedElement ? 'expanded' : 'collapsed'\\\"\\n >\\n <ng-container\\n *ngTemplateOutlet=\\\"expandedDetail; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Header -->\\n <tr\\n mat-header-row\\n *matHeaderRowDef=\\\"columnsToDisplayWithExpand; sticky: true\\\"\\n class=\\\"small-header\\\"\\n ></tr>\\n\\n <!-- Normal Rows -->\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: columnsToDisplayWithExpand; when: isNormalRow\\\"\\n [class.example-expanded-row]=\\\"expandedElement === row\\\"\\n (click)=\\\"selectRow(row)\\\"\\n [style]=\\\"getRowColor(row)\\\"\\n ></tr>\\n\\n <!-- Expanded Row -->\\n @if (showExpand && expandedDetail) {\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: ['expandedDetail']; when: isExpandedRow\\\"\\n class=\\\"example-detail-row\\\"\\n ></tr>\\n }\\n\\n <!-- No Data Row -->\\n <tr class=\\\"mat-row\\\" *matNoDataRow>\\n <td class=\\\"mat-cell text-center\\\" [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\">\\n No records found\\n </td>\\n </tr>\\n\\n <!-- Footer -->\\n @if (showFooter && dataSource.data.length > 0) {\\n <tr mat-footer-row *matFooterRowDef=\\\"columnsToDisplayWithExpand\\\"></tr>\\n }\\n }\\n </table>\\n </div>\\n\\n @if (enablePagination && paginationConfig) {\\n <mat-paginator\\n #paginator\\n [disabled]=\\\"isLoadingData\\\"\\n (page)=\\\"handlePageEvent($event)\\\"\\n [length]=\\\"paginationConfig.totalRecords\\\"\\n [pageSize]=\\\"paginationConfig.pageSize\\\"\\n [pageSizeOptions]=\\\"paginationConfig.pageSizeOptions || []\\\"\\n [showFirstLastButtons]=\\\"true\\\"\\n [pageIndex]=\\\"paginationConfig.pageIndex\\\"\\n aria-label=\\\"Select page\\\"\\n ></mat-paginator>\\n }\\n</div>\\n\", styles: [\".table-container{position:relative;min-height:200px;max-height:400px;overflow:auto}table{width:100%}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}\\n\"] }]\n }], propDecorators: { showExpand: [{\n type: Input\n }], showFooter: [{\n type: Input\n }], locale: [{\n type: Input\n }], highlightRowIndex: [{\n type: Input\n }], visibleColumns: [{\n type: Input\n }], columnDefinitions: [{\n type: Input\n }], showSelectBox: [{\n type: Input\n }], tableData: [{\n type: Input\n }], rowTemplate: [{\n type: Input\n }], expandedDetail: [{\n type: Input\n }], enablePagination: [{\n type: Input\n }], paginationConfig: [{\n type: Input\n }], isLoadingData: [{\n type: Input\n }], rowSelected: [{\n type: Output\n }], copyRow: [{\n type: Output\n }], showExpanded: [{\n type: Output\n }], hideExpanded: [{\n type: Output\n }], pageEvent: [{\n type: Output\n }], headerRowDefs: [{\n type: ContentChildren,\n args: [MatHeaderRowDef]\n }], rowDefs: [{\n type: ContentChildren,\n args: [MatRowDef]\n }], footerRowDefs: [{\n type: ContentChildren,\n args: [MatFooterRowDef]\n }], columnDefs: [{\n type: ContentChildren,\n args: [MatColumnDef]\n }], noDataRow: [{\n type: ContentChild,\n args: [MatNoDataRow]\n }], table: [{\n type: ViewChild,\n args: [MatTable, { static: true }]\n }], rows: [{\n type: ContentChildren,\n args: [ViewContainerRef]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWR5bmFtaWMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL21hdC1keW5hbWljLXRhYmxlL21hdC1keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9tYXQtZHluYW1pYy10YWJsZS9tYXQtZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFJTCxNQUFNLEVBSU4sU0FBUyxFQUNULGdCQUFnQixHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWEsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRC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LEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQVUyQixhQUFhO3NCQUE5QyxlQUFlO3VCQUFDLGVBQWU7Z0JBQ0osT0FBTztzQkFBbEMsZUFBZTt1QkFBQyxTQUFTO2dCQUNRLGFBQWE7c0JBQTlDLGVBQWU7dUJBQUMsZUFBZTtnQkFDRCxVQUFVO3NCQUF4QyxlQUFlO3VCQUFDLFlBQVk7Z0JBQ0QsU0FBUztzQkFBcEMsWUFBWTt1QkFBQyxZQUFZO2dCQUVhLEtBQUs7c0JBQTNDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRixJQUFJO3NCQUF0QyxlQUFlO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdENvbHVtbkRlZixcbiAgTWF0Rm9vdGVyUm93RGVmLFxuICBNYXRIZWFkZXJSb3dEZWYsXG4gIE1hdE5vRGF0YVJvdyxcbiAgTWF0Um93RGVmLFxuICBNYXRUYWJsZSxcbiAgTWF0VGFibGVEYXRhU291cmNlLFxuICBNYXRUYWJsZU1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlLCBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgRGVjaW1hbFBpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgR2V0VG90YWxQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ29sdW1uRGVmaW5pdGlvbiwgUGFnaW5hdGlvbiwgVGFibGVDb250ZXh0LCBUYWJsZVJvdyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1tYXQtZHluYW1pYy10YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIEdldFRvdGFsUGlwZSxcbiAgICBEYXRlUGlwZSxcbiAgICBEZWNpbWFsUGlwZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0LWR5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbWF0LWR5bmFtaWMtdGFibGUuY29tcG9uZW50LmNzcycsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkZXRhaWxFeHBhbmQnLCBbXG4gICAgICBzdGF0ZSgnY29sbGFwc2VkLHZvaWQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIG1pbkhlaWdodDogJzAnIH0pKSxcbiAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpLFxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgICBdKSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdER5bmFtaWNUYWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgVGFibGVSb3c+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXdzOiBFbWJlZGRlZFZpZXdSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBASW5wdXQoKSBzaG93RXhwYW5kID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9jYWxlID0gJ2VuLVVTJztcbiAgQElucHV0KCkgaGlnaGxpZ2h0Um93SW5kZXggPSAwO1xuICBASW5wdXQoKSB2aXNpYmxlQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgY29sdW1uRGVmaW5pdGlvbnM6IENvbHVtbkRlZmluaXRpb248VD5bXSA9IFtdO1xuICBASW5wdXQoKSBzaG93U2VsZWN0Qm94ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogVFtdID0gW107XG4gIEBJbnB1dCgpIHJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUYWJsZUNvbnRleHQ8VD4+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGV4cGFuZGVkRGV0YWlsOiBUZW1wbGF0ZVJlZjxUYWJsZUNvbnRleHQ8VD4+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGVuYWJsZVBhZ2luYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpc0xvYWRpbmdEYXRhID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG4gIEBPdXRwdXQoKSBjb3B5Um93ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgc2hvd0V4cGFuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgaGlkZUV4cGFuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcGFnZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XG5cbiAgaXNOb3JtYWxSb3cgPSAoXzogbnVtYmVyLCByb3c6IFQpID0+IHRoaXMuZXhwYW5kZWRFbGVtZW50ICE9PSByb3c7XG4gIGlzRXhwYW5kZWRSb3cgPSAoXzogbnVtYmVyLCByb3c6IFQpID0+IHRoaXMuZXhwYW5kZWRFbGVtZW50ID09PSByb3c7XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VD4oW10pO1xuICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VD4odHJ1ZSwgW10pO1xuICBleHBhbmRlZEVsZW1lbnQ6IFQgfCBudWxsID0gbnVsbDtcbiAgY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQ6IHN0cmluZ1tdID0gW107XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRIZWFkZXJSb3dEZWYpIGhlYWRlclJvd0RlZnMhOiBRdWVyeUxpc3Q8TWF0SGVhZGVyUm93RGVmPjtcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRSb3dEZWYpIHJvd0RlZnMhOiBRdWVyeUxpc3Q8TWF0Um93RGVmPFQ+PjtcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRGb290ZXJSb3dEZWYpIGZvb3RlclJvd0RlZnMhOiBRdWVyeUxpc3Q8TWF0Rm9vdGVyUm93RGVmPjtcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRDb2x1bW5EZWYpIGNvbHVtbkRlZnMhOiBRdWVyeUxpc3Q8TWF0Q29sdW1uRGVmPjtcbiAgQENvbnRlbnRDaGlsZChNYXROb0RhdGFSb3cpIG5vRGF0YVJvdyE6IE1hdE5vRGF0YVJvdztcblxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZSE6IE1hdFRhYmxlPFQ+O1xuICBAQ29udGVudENoaWxkcmVuKFZpZXdDb250YWluZXJSZWYpIHJvd3MhOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDb2x1bW5zVG9EaXNwbGF5KCk7XG4gICAgdGhpcy5pbml0aWFsaXplU2VsZWN0aW9uKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3RhYmxlRGF0YSddKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRhYmxlRGF0YSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydzaG93RXhwYW5kJ10gfHwgY2hhbmdlc1sndmlzaWJsZUNvbHVtbnMnXSB8fCBjaGFuZ2VzWydjb2x1bW5EZWZpbml0aW9ucyddKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNUb0Rpc3BsYXkoKTtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gZm9yIE9uUHVzaCBzdHJhdGVneVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJUYWJsZUNvbnRlbnQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVUYWJsZSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhbnVwRHluYW1pY0NvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFibGVEYXRhKCk6IHZvaWQge1xuICAgIC8vIENsZWFyIHNlbGVjdGlvbiB3aGVuIG5ldyBkYXRhIGFycml2ZXNcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuXG4gICAgLy8gVXBkYXRlIGRhdGEgc291cmNlXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnRhYmxlRGF0YSB8fCBbXTtcblxuICAgIC8vIFJlc2V0IGV4cGFuZGVkIGVsZW1lbnQgaWYgaXQncyBubyBsb25nZXIgaW4gdGhlIG5ldyBkYXRhXG4gICAgaWYgKHRoaXMuZXhwYW5kZWRFbGVtZW50ICYmICF0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmNsdWRlcyh0aGlzLmV4cGFuZGVkRWxlbWVudCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWRFbGVtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29sdW1uc1RvRGlzcGxheSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZUNvbHVtbnMubGVuZ3RoICYmIHRoaXMuY29sdW1uRGVmaW5pdGlvbnMpIHtcbiAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMgPSB0aGlzLmNvbHVtbkRlZmluaXRpb25zLm1hcChjb2wgPT4gY29sLmtleSk7XG4gICAgICB0aGlzLmNvbHVtbkRlZmluaXRpb25zLmZvckVhY2goKGNvbCwgaW5kZXgpID0+IChjb2wuaW5kZXggPSBpbmRleCkpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0NvbHVtbnM6IHN0cmluZ1tdID0gWy4uLnRoaXMudmlzaWJsZUNvbHVtbnNdO1xuXG4gICAgaWYgKHRoaXMuc2hvd1NlbGVjdEJveCAmJiAhbmV3Q29sdW1ucy5pbmNsdWRlcygnc2VsZWN0JykpIHtcbiAgICAgIG5ld0NvbHVtbnMudW5zaGlmdCgnc2VsZWN0Jyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd0V4cGFuZCAmJiB0aGlzLmV4cGFuZGVkRGV0YWlsKSB7XG4gICAgICBpZiAoIXRoaXMuY29sdW1uRGVmaW5pdGlvbnM/LnNvbWUoY29sID0+IGNvbC5rZXkgPT09ICdleHBhbmQnKSkge1xuICAgICAgICB0aGlzLmNvbHVtbkRlZmluaXRpb25zID0gW1xuICAgICAgICAgIC4uLih0aGlzLmNvbHVtbkRlZmluaXRpb25zIHx8IFtdKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdleHBhbmQnLFxuICAgICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgICAgdHlwZTogJ2V4cGFuZCcsXG4gICAgICAgICAgICBpbmRleDogdGhpcy5jb2x1bW5EZWZpbml0aW9ucz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFuZXdDb2x1bW5zLmluY2x1ZGVzKCdleHBhbmQnKSkge1xuICAgICAgICBuZXdDb2x1bW5zLnB1c2goJ2V4cGFuZCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQgPSBuZXdDb2x1bW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRydWUsIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJUYWJsZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5EZWZzLmZvckVhY2goY29sdW1uRGVmID0+IHRoaXMudGFibGUuYWRkQ29sdW1uRGVmKGNvbHVtbkRlZikpO1xuICAgIHRoaXMucm93RGVmcy5mb3JFYWNoKHJvd0RlZiA9PiB0aGlzLnRhYmxlLmFkZFJvd0RlZihyb3dEZWYpKTtcbiAgICB0aGlzLmhlYWRlclJvd0RlZnMuZm9yRWFjaChoZWFkZXJSb3dEZWYgPT4gdGhpcy50YWJsZS5hZGRIZWFkZXJSb3dEZWYoaGVhZGVyUm93RGVmKSk7XG5cbiAgICBpZiAodGhpcy5zaG93Rm9vdGVyKSB7XG4gICAgICB0aGlzLmZvb3RlclJvd0RlZnMuZm9yRWFjaChmb290ZXJSb3dEZWYgPT4gdGhpcy50YWJsZS5hZGRGb290ZXJSb3dEZWYoZm9vdGVyUm93RGVmKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9vdGVyUm93RGVmcy5mb3JFYWNoKGZvb3RlclJvd0RlZiA9PiB0aGlzLnRhYmxlLnJlbW92ZUZvb3RlclJvd0RlZihmb290ZXJSb3dEZWYpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ub0RhdGFSb3cpIHtcbiAgICAgIHRoaXMudGFibGUuc2V0Tm9EYXRhUm93KHRoaXMubm9EYXRhUm93KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFQ+KHRoaXMudGFibGVEYXRhIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cER5bmFtaWNDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmcy5mb3JFYWNoKHJlZiA9PiByZWYuZGVzdHJveSgpKTtcbiAgICB0aGlzLmVtYmVkZGVkVmlld3MuZm9yRWFjaCh2aWV3ID0+IHZpZXcuZGVzdHJveSgpKTtcbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgY29uc3QgbnVtUm93cyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aDtcbiAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3MgJiYgbnVtUm93cyA+IDA7XG4gIH1cblxuICBtYXN0ZXJUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkKClcbiAgICAgID8gdGhpcy5zZWxlY3Rpb24uY2xlYXIoKVxuICAgICAgOiB0aGlzLmRhdGFTb3VyY2UuZGF0YS5mb3JFYWNoKHJvdyA9PiB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KSk7XG4gICAgdGhpcy5yb3dTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNoZWNrYm94TGFiZWwocm93PzogVCk6IHN0cmluZyB7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/ICdkZXNlbGVjdCcgOiAnc2VsZWN0J30gYWxsYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSA/ICdkZXNlbGVjdCcgOiAnc2VsZWN0J30gcm93YDtcbiAgfVxuXG4gIHNlbGVjdFJvdyhyb3c6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbi50b2dnbGUocm93KTtcbiAgICB0aGlzLnJvd1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25FeHBhbmQoZXZlbnQ6IEV2ZW50LCBlbGVtZW50OiBUKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5leHBhbmRlZEVsZW1lbnQgPSB0aGlzLmV4cGFuZGVkRWxlbWVudCA9PT0gZWxlbWVudCA/IG51bGwgOiBlbGVtZW50O1xuICAgIHRoaXMuZXhwYW5kZWRFbGVtZW50ID8gdGhpcy5zaG93RXhwYW5kZWQuZW1pdChlbGVtZW50KSA6IHRoaXMuaGlkZUV4cGFuZGVkLmVtaXQoZWxlbWVudCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXRSb3dDb2xvcihlbGVtZW50OiBUKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIGVsZW1lbnQuY29sb3JSb3cgPyB7ICdiYWNrZ3JvdW5kLWNvbG9yJzogZWxlbWVudC5jb2xvclJvdyB9IDoge307XG4gIH1cblxuICBoYW5kbGVQYWdlRXZlbnQoZTogUGFnZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlRXZlbnQuZW1pdChlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC10YWJsZS1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBzbWFsbC10YWJsZVwiPlxuICAgIDx0YWJsZSAjc29ydD1cIm1hdFNvcnRcIiBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlLmRhdGFcIiBtYXQtdGFibGUgbWF0U29ydD5cbiAgICAgIEBpZiAoY29sdW1uRGVmaW5pdGlvbnMpIHtcbiAgICAgICAgPCEtLSBDaGVja2JveCBDb2x1bW4gLS0+XG4gICAgICAgIEBpZiAoc2hvd1NlbGVjdEJveCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgICAgICA8dGggKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cImNoZWNrYm94TGFiZWwoKVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBtYXQtY2VsbD5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShyb3cpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiY2hlY2tib3hMYWJlbChyb3cpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRHluYW1pYyBDb2x1bW5zIC0tPlxuICAgICAgICBAZm9yIChjb2wgb2YgY29sdW1uRGVmaW5pdGlvbnM7IHRyYWNrIGNvbC5rZXkpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sLmtleVwiPlxuICAgICAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgICAge3sgY29sLmxhYmVsIH19XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGlnaGxpZ2h0ZWQ6IGhpZ2hsaWdodFJvd0luZGV4ID09PSBpIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKGNvbC5rZXkgPT09ICdvcCcpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBlbGVtZW50LCBpbmRleDogaSB9XCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQHN3aXRjaCAoY29sLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVsZW1lbnRbY29sLmtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGltZy10aHVtYm5haWwgbXktMVwiXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGVsZW1lbnRbY29sLmtleV0gfCBudW1iZXI6ICcxLjInIDogbG9jYWxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ2RhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZWxlbWVudFtjb2wua2V5XSB8IGRhdGU6ICdkZC5NTS55eXl5JyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdleHBhbmQnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiZXhwYW5kIHJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kKCRldmVudCwgZWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChleHBhbmRlZEVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd191cDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgndGVtcGxhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sLnRlbXBsYXRlT3V0bGV0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGVsZW1lbnQsIGluZGV4OiBpIH1cbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ2N1c3RvbScpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjZHluYW1pY0NvbnRlbnQ+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZWxlbWVudFtjb2wua2V5XSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD5cbiAgICAgICAgICAgICAgQGlmIChjb2wuaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlRvdGFsPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChjb2wuaGFzRm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgPGRpdj57eyBjb2wua2V5IHwgZ2V0VG90YWw6IGRhdGFTb3VyY2UuZGF0YSB9fTwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBFeHBhbmRlZCBEZXRhaWwgUm93IC0tPlxuICAgICAgICBAaWYgKHNob3dFeHBhbmQgJiYgZXhwYW5kZWREZXRhaWwpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImV4cGFuZGVkRGV0YWlsXCI+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwiY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibS0wIHAtMFwiXG4gICAgICAgICAgICAgICAgW0BkZXRhaWxFeHBhbmRdPVwiZWxlbWVudCA9PT0gZXhwYW5kZWRFbGVtZW50ID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXhwYW5kZWREZXRhaWw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBlbGVtZW50LCBpbmRleDogaSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICAgICA8dHJcbiAgICAgICAgICBtYXQtaGVhZGVyLXJvd1xuICAgICAgICAgICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5zVG9EaXNwbGF5V2l0aEV4cGFuZDsgc3RpY2t5OiB0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsLWhlYWRlclwiXG4gICAgICAgID48L3RyPlxuXG4gICAgICAgIDwhLS0gTm9ybWFsIFJvd3MgLS0+XG4gICAgICAgIDx0clxuICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQ7IHdoZW46IGlzTm9ybWFsUm93XCJcbiAgICAgICAgICBbY2xhc3MuZXhhbXBsZS1leHBhbmRlZC1yb3ddPVwiZXhwYW5kZWRFbGVtZW50ID09PSByb3dcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSb3cocm93KVwiXG4gICAgICAgICAgW3N0eWxlXT1cImdldFJvd0NvbG9yKHJvdylcIlxuICAgICAgICA+PC90cj5cblxuICAgICAgICA8IS0tIEV4cGFuZGVkIFJvdyAtLT5cbiAgICAgICAgQGlmIChzaG93RXhwYW5kICYmIGV4cGFuZGVkRGV0YWlsKSB7XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICBtYXQtcm93XG4gICAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydleHBhbmRlZERldGFpbCddOyB3aGVuOiBpc0V4cGFuZGVkUm93XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhhbXBsZS1kZXRhaWwtcm93XCJcbiAgICAgICAgICA+PC90cj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTm8gRGF0YSBSb3cgLS0+XG4gICAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbWF0Tm9EYXRhUm93PlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsIHRleHQtY2VudGVyXCIgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zVG9EaXNwbGF5V2l0aEV4cGFuZC5sZW5ndGhcIj5cbiAgICAgICAgICAgIE5vIHJlY29yZHMgZm91bmRcbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuXG4gICAgICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgICAgICBAaWYgKHNob3dGb290ZXIgJiYgZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICA8dHIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cImNvbHVtbnNUb0Rpc3BsYXlXaXRoRXhwYW5kXCI+PC90cj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuXG4gIEBpZiAoZW5hYmxlUGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgICNwYWdpbmF0b3JcbiAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdEYXRhXCJcbiAgICAgIChwYWdlKT1cImhhbmRsZVBhZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtsZW5ndGhdPVwicGFnaW5hdGlvbkNvbmZpZy50b3RhbFJlY29yZHNcIlxuICAgICAgW3BhZ2VTaXplXT1cInBhZ2luYXRpb25Db25maWcucGFnZVNpemVcIlxuICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdpbmF0aW9uQ29uZmlnLnBhZ2VTaXplT3B0aW9ucyB8fCBbXVwiXG4gICAgICBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICBbcGFnZUluZGV4XT1cInBhZ2luYXRpb25Db25maWcucGFnZUluZGV4XCJcbiAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgcGFnZVwiXG4gICAgPjwvbWF0LXBhZ2luYXRvcj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { firstValueFrom, map } from 'rxjs';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { DialogWrapperComponent } from '../../components/dialog-wrapper/dialog-wrapper.component';\nimport * as i0 from \"@angular/core\";\nexport class AdvancedDialogService {\n dialog = inject(MatDialog);\n overlay = inject(Overlay);\n breakpointObserver = inject(BreakpointObserver);\n // An observable that emits true if the viewport matches mobile dimensions.\n isMobile$ = this.breakpointObserver\n .observe([Breakpoints.HandsetPortrait, Breakpoints.HandsetLandscape])\n .pipe(map(result => result.matches));\n /**\n * Main method to open any component in a dialog.\n * This provides maximum flexibility.\n * @param component The component to render.\n * @param config The detailed configuration for the dialog.\n * @returns A MatDialogRef instance.\n */\n async open(component, config = {}) {\n const dialogConfig = await this.buildDialogConfig(config);\n return this.dialog.open(component, dialogConfig);\n }\n /**\n * A powerful helper to open a component inside our standard, branded \"wrapper\".\n * This provides maximum consistency.\n * @param wrapperConfig Configuration for the title, icon, and the content component.\n * @param matDialogConfig Standard MatDialog configuration (size, position, etc.).\n * @returns A MatDialogRef instance pointing to the wrapper.\n */\n async openInWrapper(wrapperConfig, matDialogConfig = {}) {\n // Package the wrapper config into the `data` property for the DialogWrapperComponent to consume.\n const configWithWrapperData = {\n ...matDialogConfig,\n data: wrapperConfig,\n };\n const dialogConfig = await this.buildDialogConfig(configWithWrapperData);\n return this.dialog.open(DialogWrapperComponent, dialogConfig);\n }\n /**\n * Helper to open a dialog and only get an observable of the result.\n */\n async openAndGetResult(component, config = {}) {\n const dialogRef = await this.open(component, config);\n return firstValueFrom(dialogRef.afterClosed());\n }\n /**\n * Closes all currently open dialogs.\n */\n closeAll() {\n this.dialog.closeAll();\n }\n // --- Private Configuration Builder ---\n async buildDialogConfig(config) {\n const dialogConfig = new MatDialogConfig();\n // Asynchronously check for mobile state to prevent memory leaks from dangling subscriptions.\n const isMobile = await firstValueFrom(this.isMobile$);\n // Apply fullscreen if 'full' size is set OR if mobile fullscreen is enabled on a mobile device.\n if (config.size === 'full' || (config.isMobileFullScreen && isMobile)) {\n this.applyFullScreenConfig(dialogConfig);\n }\n else {\n this.applyStandardConfig(dialogConfig, config);\n }\n // Apply all other common configurations.\n this.applyCommonConfig(dialogConfig, config);\n return dialogConfig;\n }\n applyFullScreenConfig(dialogConfig) {\n dialogConfig.width = '100vw';\n dialogConfig.height = '100vh';\n dialogConfig.maxWidth = '100vw';\n dialogConfig.panelClass = ['full-screen-dialog'];\n }\n applyStandardConfig(dialogConfig, config) {\n dialogConfig.width = config.width ?? this.getDialogWidth(config.size);\n dialogConfig.height = config.height;\n dialogConfig.minWidth = config.minWidth;\n dialogConfig.maxWidth = config.maxWidth ?? '95vw';\n dialogConfig.maxHeight = config.maxHeight ?? 'auto';\n dialogConfig.position = config.position;\n }\n applyCommonConfig(dialogConfig, config) {\n dialogConfig.data = config.data;\n dialogConfig.hasBackdrop = config.hasBackdrop ?? true;\n dialogConfig.backdropClass = config.backdropClass;\n const panelClasses = Array.isArray(config.panelClass)\n ? [...config.panelClass]\n : config.panelClass\n ? [config.panelClass]\n : [];\n if (config.size) {\n panelClasses.push(`dialog-${config.size}`);\n }\n dialogConfig.panelClass = panelClasses;\n dialogConfig.disableClose = !(config.backdropClickClosable ?? true);\n // Note: escapeKeyClosable is handled by MatDialog separately and doesn't affect disableClose directly.\n dialogConfig.autoFocus = config.autoFocus ?? 'first-tabbable';\n dialogConfig.scrollStrategy = config.scrollStrategy ?? this.overlay.scrollStrategies.block();\n dialogConfig.enterAnimationDuration = config.enterAnimationDuration ?? '300ms';\n dialogConfig.exitAnimationDuration = config.exitAnimationDuration ?? '200ms';\n dialogConfig.ariaLabel = config.ariaLabel;\n dialogConfig.ariaLabelledBy = config.ariaLabelledBy;\n dialogConfig.ariaDescribedBy = config.ariaDescribedBy;\n dialogConfig.role = config.role;\n }\n getDialogWidth(size = 'md') {\n const sizeMap = {\n xs: '320px',\n sm: '450px',\n md: '600px',\n lg: '800px',\n xl: '1000px',\n xxl: '1280px',\n full: '100vw',\n };\n return sizeMap[size];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AdvancedDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AdvancedDialogService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AdvancedDialogService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvZGlhbG9nL2FkdmFuY2VkLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7O0FBS2xHLE1BQU0sT0FBTyxxQkFBcUI7SUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFakUsMkVBQTJFO0lBQzFELFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCO1NBQ2pELE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZDOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQ1IsU0FBMkIsRUFDM0IsU0FBbUMsRUFBRTtR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O1FBQzFDLFlBQVksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNwRCxZQUFZLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDdEQsWUFBWSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsT0FBbUIsSUFBSTtRQUM1QyxNQUFNLE9BQU8sR0FBK0I7WUFDMUMsRUFBRSxFQUFFLE9BQU87WUFDWCxFQUFFLEVBQUUsT0FBTztZQUNYLEVBQUUsRUFBRSxPQUFPO1lBQ1gsRUFBRSxFQUFFLE9BQU87WUFDWCxFQUFFLEVBQUUsUUFBUTtZQUNaLEdBQUcsRUFBRSxRQUFRO1lBQ2IsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQzt1R0FySlUscUJBQXFCOzJHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuXG5pbXBvcnQgeyBNYXRDdXN0b21EaWFsb2dDb25maWcsIERpYWxvZ1NpemUsIERpYWxvZ1dyYXBwZXJDb25maWcgfSBmcm9tICcuL2RpYWxvZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7IERpYWxvZ1dyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2RpYWxvZy13cmFwcGVyL2RpYWxvZy13cmFwcGVyLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZERpYWxvZ1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG5cbiAgLy8gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRydWUgaWYgdGhlIHZpZXdwb3J0IG1hdGNoZXMgbW9iaWxlIGRpbWVuc2lvbnMuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUkID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcbiAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuSGFuZHNldFBvcnRyYWl0LCBCcmVha3BvaW50cy5IYW5kc2V0TGFuZHNjYXBlXSlcbiAgICAucGlwZShtYXAocmVzdWx0ID0+IHJlc3VsdC5tYXRjaGVzKSk7XG5cbiAgLyoqXG4gICAqIE1haW4gbWV0aG9kIHRvIG9wZW4gYW55IGNvbXBvbmVudCBpbiBhIGRpYWxvZy5cbiAgICogVGhpcyBwcm92aWRlcyBtYXhpbXVtIGZsZXhpYmlsaXR5LlxuICAgKiBAcGFyYW0gY29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gcmVuZGVyLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBkZXRhaWxlZCBjb25maWd1cmF0aW9uIGZvciB0aGUgZGlhbG9nLlxuICAgKiBAcmV0dXJucyBBIE1hdERpYWxvZ1JlZiBpbnN0YW5jZS5cbiAgICovXG4gIGFzeW5jIG9wZW48VCwgRCA9IGFueSwgUiA9IGFueT4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LFxuICAgIGNvbmZpZzogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPEQ+ID0ge30sXG4gICk6IFByb21pc2U8TWF0RGlhbG9nUmVmPFQsIFI+PiB7XG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gYXdhaXQgdGhpcy5idWlsZERpYWxvZ0NvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5vcGVuPFQsIEQsIFI+KGNvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHBvd2VyZnVsIGhlbHBlciB0byBvcGVuIGEgY29tcG9uZW50IGluc2lkZSBvdXIgc3RhbmRhcmQsIGJyYW5kZWQgXCJ3cmFwcGVyXCIuXG4gICAqIFRoaXMgcHJvdmlkZXMgbWF4aW11bSBjb25zaXN0ZW5jeS5cbiAgICogQHBhcmFtIHdyYXBwZXJDb25maWcgQ29uZmlndXJhdGlvbiBmb3IgdGhlIHRpdGxlLCBpY29uLCBhbmQgdGhlIGNvbnRlbnQgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gbWF0RGlhbG9nQ29uZmlnIFN0YW5kYXJkIE1hdERpYWxvZyBjb25maWd1cmF0aW9uIChzaXplLCBwb3NpdGlvbiwgZXRjLikuXG4gICAqIEByZXR1cm5zIEEgTWF0RGlhbG9nUmVmIGluc3RhbmNlIHBvaW50aW5nIHRvIHRoZSB3cmFwcGVyLlxuICAgKi9cbiAgYXN5bmMgb3BlbkluV3JhcHBlcjxULCBSID0gYW55PihcbiAgICB3cmFwcGVyQ29uZmlnOiBEaWFsb2dXcmFwcGVyQ29uZmlnPFQ+LFxuICAgIG1hdERpYWxvZ0NvbmZpZzogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPFQ+ID0ge30sXG4gICk6IFByb21pc2U8TWF0RGlhbG9nUmVmPERpYWxvZ1dyYXBwZXJDb21wb25lbnQsIFI+PiB7XG4gICAgLy8gUGFja2FnZSB0aGUgd3JhcHBlciBjb25maWcgaW50byB0aGUgYGRhdGFgIHByb3BlcnR5IGZvciB0aGUgRGlhbG9nV3JhcHBlckNvbXBvbmVudCB0byBjb25zdW1lLlxuICAgIGNvbnN0IGNvbmZpZ1dpdGhXcmFwcGVyRGF0YTogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPERpYWxvZ1dyYXBwZXJDb25maWc8VD4+ID0ge1xuICAgICAgLi4ubWF0RGlhbG9nQ29uZmlnLFxuICAgICAgZGF0YTogd3JhcHBlckNvbmZpZyxcbiAgICB9O1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IGF3YWl0IHRoaXMuYnVpbGREaWFsb2dDb25maWcoY29uZmlnV2l0aFdyYXBwZXJEYXRhKTtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cub3BlbjxEaWFsb2dXcmFwcGVyQ29tcG9uZW50LCBEaWFsb2dXcmFwcGVyQ29uZmlnPFQ+LCBSPihcbiAgICAgIERpYWxvZ1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBkaWFsb2dDb25maWcsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gb3BlbiBhIGRpYWxvZyBhbmQgb25seSBnZXQgYW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgb3BlbkFuZEdldFJlc3VsdDxULCBEID0gYW55LCBSID0gYW55PihcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sXG4gICAgY29uZmlnOiBNYXRDdXN0b21EaWFsb2dDb25maWc8RD4gPSB7fSxcbiAgKTogUHJvbWlzZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gYXdhaXQgdGhpcy5vcGVuKGNvbXBvbmVudCwgY29uZmlnKTtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhbGwgY3VycmVudGx5IG9wZW4gZGlhbG9ncy5cbiAgICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gIH1cblxuICAvLyAtLS0gUHJpdmF0ZSBDb25maWd1cmF0aW9uIEJ1aWxkZXIgLS0tXG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZERpYWxvZ0NvbmZpZzxEPihcbiAgICBjb25maWc6IE1hdEN1c3RvbURpYWxvZ0NvbmZpZzxEPixcbiAgKTogUHJvbWlzZTxNYXREaWFsb2dDb25maWc8RD4+IHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnPEQ+KCk7XG5cbiAgICAvLyBBc3luY2hyb25vdXNseSBjaGVjayBmb3IgbW9iaWxlIHN0YXRlIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzIGZyb20gZGFuZ2xpbmcgc3Vic2NyaXB0aW9ucy5cbiAgICBjb25zdCBpc01vYmlsZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaXNNb2JpbGUkKTtcblxuICAgIC8vIEFwcGx5IGZ1bGxzY3JlZW4gaWYgJ2Z1bGwnIHNpemUgaXMgc2V0IE9SIGlmIG1vYmlsZSBmdWxsc2NyZWVuIGlzIGVuYWJsZWQgb24gYSBtb2JpbGUgZGV2aWNlLlxuICAgIGlmIChjb25maWcuc2l6ZSA9PT0gJ2Z1bGwnIHx8IChjb25maWcuaXNNb2JpbGVGdWxsU2NyZWVuICYmIGlzTW9iaWxlKSkge1xuICAgICAgdGhpcy5hcHBseUZ1bGxTY3JlZW5Db25maWcoZGlhbG9nQ29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcHBseVN0YW5kYXJkQ29uZmlnKGRpYWxvZ0NvbmZpZywgY29uZmlnKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBhbGwgb3RoZXIgY29tbW9uIGNvbmZpZ3VyYXRpb25zLlxuICAgIHRoaXMuYXBwbHlDb21tb25Db25maWcoZGlhbG9nQ29uZmlnLCBjb25maWcpO1xuXG4gICAgcmV0dXJuIGRpYWxvZ0NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGdWxsU2NyZWVuQ29uZmlnKGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnKTogdm9pZCB7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzEwMHZ3JztcbiAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJzEwMHZoJztcbiAgICBkaWFsb2dDb25maWcubWF4V2lkdGggPSAnMTAwdncnO1xuICAgIGRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzID0gWydmdWxsLXNjcmVlbi1kaWFsb2cnXTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTdGFuZGFyZENvbmZpZzxEPihcbiAgICBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxEPixcbiAgICBjb25maWc6IE1hdEN1c3RvbURpYWxvZ0NvbmZpZzxEPixcbiAgKTogdm9pZCB7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gY29uZmlnLndpZHRoID8/IHRoaXMuZ2V0RGlhbG9nV2lkdGgoY29uZmlnLnNpemUpO1xuICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSBjb25maWcuaGVpZ2h0O1xuICAgIGRpYWxvZ0NvbmZpZy5taW5XaWR0aCA9IGNvbmZpZy5taW5XaWR0aDtcbiAgICBkaWFsb2dDb25maWcubWF4V2lkdGggPSBjb25maWcubWF4V2lkdGggPz8gJzk1dncnO1xuICAgIGRpYWxvZ0NvbmZpZy5tYXhIZWlnaHQgPSBjb25maWcubWF4SGVpZ2h0ID8/ICdhdXRvJztcbiAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSBjb25maWcucG9zaXRpb247XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29tbW9uQ29uZmlnPEQ+KFxuICAgIGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnPEQ+LFxuICAgIGNvbmZpZzogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPEQ+LFxuICApOiB2b2lkIHtcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IGNvbmZpZy5kYXRhO1xuICAgIGRpYWxvZ0NvbmZpZy5oYXNCYWNrZHJvcCA9IGNvbmZpZy5oYXNCYWNrZHJvcCA/PyB0cnVlO1xuICAgIGRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzID0gY29uZmlnLmJhY2tkcm9wQ2xhc3M7XG5cbiAgICBjb25zdCBwYW5lbENsYXNzZXMgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5wYW5lbENsYXNzKVxuICAgICAgPyBbLi4uY29uZmlnLnBhbmVsQ2xhc3NdXG4gICAgICA6IGNvbmZpZy5wYW5lbENsYXNzXG4gICAgICAgID8gW2NvbmZpZy5wYW5lbENsYXNzXVxuICAgICAgICA6IFtdO1xuICAgIGlmIChjb25maWcuc2l6ZSkge1xuICAgICAgcGFuZWxDbGFzc2VzLnB1c2goYGRpYWxvZy0ke2NvbmZpZy5zaXplfWApO1xuICAgIH1cbiAgICBkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9IHBhbmVsQ2xhc3NlcztcblxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSAhKGNvbmZpZy5iYWNrZHJvcENsaWNrQ2xvc2FibGUgPz8gdHJ1ZSk7XG4gICAgLy8gTm90ZTogZXNjYXBlS2V5Q2xvc2FibGUgaXMgaGFuZGxlZCBieSBNYXREaWFsb2cgc2VwYXJhdGVseSBhbmQgZG9lc24ndCBhZmZlY3QgZGlzYWJsZUNsb3NlIGRpcmVjdGx5LlxuICAgIGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSBjb25maWcuYXV0b0ZvY3VzID8/ICdmaXJzdC10YWJiYWJsZSc7XG4gICAgZGlhbG9nQ29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29uZmlnLnNjcm9sbFN0cmF0ZWd5ID8/IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XG4gICAgZGlhbG9nQ29uZmlnLmVudGVyQW5pbWF0aW9uRHVyYXRpb24gPSBjb25maWcuZW50ZXJBbmltYXRpb25EdXJhdGlvbiA/PyAnMzAwbXMnO1xuICAgIGRpYWxvZ0NvbmZpZy5leGl0QW5pbWF0aW9uRHVyYXRpb24gPSBjb25maWcuZXhpdEFuaW1hdGlvbkR1cmF0aW9uID8/ICcyMDBtcyc7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9IGNvbmZpZy5hcmlhTGFiZWw7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbGxlZEJ5ID0gY29uZmlnLmFyaWFMYWJlbGxlZEJ5O1xuICAgIGRpYWxvZ0NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgPSBjb25maWcuYXJpYURlc2NyaWJlZEJ5O1xuICAgIGRpYWxvZ0NvbmZpZy5yb2xlID0gY29uZmlnLnJvbGU7XG4gIH1cblxuICBwcml2YXRlIGdldERpYWxvZ1dpZHRoKHNpemU6IERpYWxvZ1NpemUgPSAnbWQnKTogc3RyaW5nIHtcbiAgICBjb25zdCBzaXplTWFwOiBSZWNvcmQ8RGlhbG9nU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICAgIHhzOiAnMzIwcHgnLFxuICAgICAgc206ICc0NTBweCcsXG4gICAgICBtZDogJzYwMHB4JyxcbiAgICAgIGxnOiAnODAwcHgnLFxuICAgICAgeGw6ICcxMDAwcHgnLFxuICAgICAgeHhsOiAnMTI4MHB4JyxcbiAgICAgIGZ1bGw6ICcxMDB2dycsXG4gICAgfTtcbiAgICByZXR1cm4gc2l6ZU1hcFtzaXplXTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { SpinnerComponent } from '../components/spinner/spinner.component';\nimport * as i0 from \"@angular/core\";\nexport class OverlayService {\n overlay = inject(Overlay);\n overlayRef;\n constructor() { }\n showSpinner() {\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n });\n const spinnerPortal = new ComponentPortal(SpinnerComponent);\n this.overlayRef.attach(spinnerPortal);\n }\n }\n hideSpinner() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef = null;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: OverlayService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: OverlayService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUkzRSxNQUFNLE9BQU8sY0FBYztJQUNqQixPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTFCLFVBQVUsQ0FBYztJQUtoQyxnQkFBZSxDQUFDO0lBRWhCLFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUU7YUFDM0YsQ0FBQyxDQUFDO1lBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO3VHQTNCVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheVNlcnZpY2Uge1xuICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmITogT3ZlcmxheVJlZjtcblxuICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IHVua25vd25bXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNob3dTcGlubmVyKCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzcGlubmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChTcGlubmVyQ29tcG9uZW50KTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2goc3Bpbm5lclBvcnRhbCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZVNwaW5uZXIoKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbCE7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class ThemeService {\n _darkMode = new BehaviorSubject(false);\n isDarkMode$ = this._darkMode.asObservable();\n loadMode() {\n const savedTheme = localStorage.getItem('theme');\n if (savedTheme) {\n this._darkMode.next(savedTheme === 'dark');\n this.applyTheme(savedTheme === 'dark');\n }\n else {\n // Check system preference\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n this._darkMode.next(prefersDark);\n this.applyTheme(prefersDark);\n }\n }\n toggleDarkMode() {\n const newValue = !this._darkMode.value;\n this._darkMode.next(newValue);\n this.applyTheme(newValue);\n localStorage.setItem('theme', newValue ? 'dark' : 'light');\n }\n applyTheme(isDark) {\n if (isDark) {\n document.body.classList.add('dark-theme');\n }\n else {\n document.body.classList.remove('dark-theme');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLFlBQVk7SUFDTixTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakUsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFNUMsUUFBUTtRQUNOLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNOLDBCQUEwQjtZQUMxQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzlFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQWU7UUFDaEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQzt1R0E5QlUsWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRoZW1lU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhcmtNb2RlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzRGFya01vZGUkID0gdGhpcy5fZGFya01vZGUuYXNPYnNlcnZhYmxlKCk7XG5cbiAgbG9hZE1vZGUoKSB7XG4gICAgY29uc3Qgc2F2ZWRUaGVtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0aGVtZScpO1xuICAgIGlmIChzYXZlZFRoZW1lKSB7XG4gICAgICB0aGlzLl9kYXJrTW9kZS5uZXh0KHNhdmVkVGhlbWUgPT09ICdkYXJrJyk7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUoc2F2ZWRUaGVtZSA9PT0gJ2RhcmsnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2hlY2sgc3lzdGVtIHByZWZlcmVuY2VcbiAgICAgIGNvbnN0IHByZWZlcnNEYXJrID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzO1xuICAgICAgdGhpcy5fZGFya01vZGUubmV4dChwcmVmZXJzRGFyayk7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUocHJlZmVyc0RhcmspO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURhcmtNb2RlKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gIXRoaXMuX2RhcmtNb2RlLnZhbHVlO1xuICAgIHRoaXMuX2RhcmtNb2RlLm5leHQobmV3VmFsdWUpO1xuICAgIHRoaXMuYXBwbHlUaGVtZShuZXdWYWx1ZSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RoZW1lJywgbmV3VmFsdWUgPyAnZGFyaycgOiAnbGlnaHQnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUaGVtZShpc0Rhcms6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEYXJrKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2RhcmstdGhlbWUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdkYXJrLXRoZW1lJyk7XG4gICAgfVxuICB9XG59XG4iXX0=","// Configuraciones predefinidas mejoradas\nexport const AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG = {\n placeholder: 'Buscar...',\n disabled: false,\n debounceTime: 300,\n minSearchLength: 2,\n maxHistoryItems: 10,\n itemsPerPage: 10,\n enableStockFilter: true,\n stockProperty: 'stock',\n enablePagination: true,\n enableFilters: true,\n enableFooterActions: true,\n overlayWidth: '100%',\n overlayMaxHeight: '500px',\n noResultsText: 'No se encontraron resultados',\n sectionTitle: 'Resultados',\n searchMode: 'remote',\n searchFields: [\n { value: 'description', label: 'Descripción', property: 'description' },\n { value: 'code', label: 'Código', property: 'code' },\n { value: 'barcode', label: 'Código de Barras', property: 'barcode' },\n { value: 'auxCode', label: 'Código Auxiliar', property: 'auxCode' },\n ],\n stockOptions: [\n { value: 'all', label: 'Todos' },\n { value: 'with-stock', label: 'Con Stock' },\n { value: 'without-stock', label: 'Sin Stock' },\n ],\n};\nexport const AUTOCOMPLETE_WRAPPER_PRODUCT_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n placeholder: 'Buscar productos...',\n enableStockFilter: true,\n enableFooterActions: true,\n sectionTitle: 'Productos',\n noResultsText: 'No se encontraron productos',\n};\nexport const AUTOCOMPLETE_WRAPPER_CUSTOMER_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n placeholder: 'Buscar clientes...',\n enableStockFilter: false,\n enableFooterActions: false,\n sectionTitle: 'Clientes',\n noResultsText: 'No se encontraron clientes',\n searchFields: [\n { value: 'name', label: 'Nombre', property: 'name' },\n { value: 'email', label: 'Email', property: 'email' },\n { value: 'phone', label: 'Teléfono', property: 'phone' },\n { value: 'document', label: 'Documento', property: 'document' },\n ],\n};\nexport const AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n placeholder: 'Buscar...',\n enableStockFilter: false,\n enableFilters: false,\n enableFooterActions: false,\n enablePagination: false,\n itemsPerPage: 50,\n sectionTitle: 'Resultados',\n overlayMaxHeight: '300px',\n};\n// Configuración para búsqueda local\nexport const AUTOCOMPLETE_WRAPPER_LOCAL_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG,\n searchMode: 'local',\n debounceTime: 150, // Menos tiempo para búsqueda local\n minSearchLength: 1,\n};\n// Configuración para listas grandes con paginación\nexport const AUTOCOMPLETE_WRAPPER_PAGINATED_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n itemsPerPage: 20,\n enablePagination: true,\n overlayMaxHeight: '400px',\n};\n// Helper para crear configuración personalizada\nexport function createAutocompleteWrapperConfig(overrides) {\n return {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n ...overrides,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvbW9kZWxzL2F1dG9jb21wbGV0ZS13cmFwcGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdLQSx5Q0FBeUM7QUFDekMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQThCO0lBQzVFLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsWUFBWSxFQUFFLEdBQUc7SUFDakIsZUFBZSxFQUFFLENBQUM7SUFDbEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsWUFBWSxFQUFFLEVBQUU7SUFDaEIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixhQUFhLEVBQUUsT0FBTztJQUN0QixnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLG1CQUFtQixFQUFFLElBQUk7SUFDekIsWUFBWSxFQUFFLE1BQU07SUFDcEIsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixhQUFhLEVBQUUsOEJBQThCO0lBQzdDLFlBQVksRUFBRSxZQUFZO0lBQzFCLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLFlBQVksRUFBRTtRQUNaLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7UUFDdkUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUNwRCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7UUFDcEUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO0tBQ3BFO0lBQ0QsWUFBWSxFQUFFO1FBQ1osRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDaEMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7UUFDM0MsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7S0FDL0M7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQThCO0lBQzVFLEdBQUcsbUNBQW1DO0lBQ3RDLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLFlBQVksRUFBRSxXQUFXO0lBQ3pCLGFBQWEsRUFBRSw2QkFBNkI7Q0FDN0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUE4QjtJQUM3RSxHQUFHLG1DQUFtQztJQUN0QyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixZQUFZLEVBQUUsVUFBVTtJQUN4QixhQUFhLEVBQUUsNEJBQTRCO0lBQzNDLFlBQVksRUFBRTtRQUNaLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7UUFDcEQsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtRQUNyRCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO1FBQ3hELEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7S0FDaEU7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQThCO0lBQzNFLEdBQUcsbUNBQW1DO0lBQ3RDLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFlBQVksRUFBRSxZQUFZO0lBQzFCLGdCQUFnQixFQUFFLE9BQU87Q0FDMUIsQ0FBQztBQUVGLG9DQUFvQztBQUNwQyxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBOEI7SUFDMUUsR0FBRyxrQ0FBa0M7SUFDckMsVUFBVSxFQUFFLE9BQU87SUFDbkIsWUFBWSxFQUFFLEdBQUcsRUFBRSxtQ0FBbUM7SUFDdEQsZUFBZSxFQUFFLENBQUM7Q0FDbkIsQ0FBQztBQUVGLG1EQUFtRDtBQUNuRCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBOEI7SUFDOUUsR0FBRyxtQ0FBbUM7SUFDdEMsWUFBWSxFQUFFLEVBQUU7SUFDaEIsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixnQkFBZ0IsRUFBRSxPQUFPO0NBQzFCLENBQUM7QUFFRixnREFBZ0Q7QUFDaEQsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxTQUE2QztJQUU3QyxPQUFPO1FBQ0wsR0FBRyxtQ0FBbUM7UUFDdEMsR0FBRyxTQUFTO0tBQ2IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0ge1xuICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nOyAvLyBQYXJhIG1vc3RyYXIgZW4gZWwgdGVtcGxhdGUgcG9yIGRlZmVjdG9cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQge1xuICBpdGVtczogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXTtcbiAgdG90YWxDb3VudDogbnVtYmVyO1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZ1bmN0aW9uID0gKFxuICBxdWVyeTogc3RyaW5nLFxuICBmaWx0ZXJzOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycyxcbiAgcGFnZT86IG51bWJlcixcbiAgcGFnZVNpemU/OiBudW1iZXIsXG4pID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaFJlc3VsdD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyB7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjbGVhcklucHV0PzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBkZWJvdW5jZVRpbWU/OiBudW1iZXI7XG4gIG1pblNlYXJjaExlbmd0aD86IG51bWJlcjtcbiAgbWF4SGlzdG9yeUl0ZW1zPzogbnVtYmVyO1xuICBpdGVtc1BlclBhZ2U/OiBudW1iZXI7XG4gIGVuYWJsZVN0b2NrRmlsdGVyPzogYm9vbGVhbjtcbiAgc3RvY2tQcm9wZXJ0eT86IHN0cmluZztcbiAgZW5hYmxlUGFnaW5hdGlvbj86IGJvb2xlYW47XG4gIGVuYWJsZUZpbHRlcnM/OiBib29sZWFuO1xuICBlbmFibGVGb290ZXJBY3Rpb25zPzogYm9vbGVhbjtcbiAgc2VhcmNoRmllbGRzPzogQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZpZWxkW107XG4gIHN0b2NrT3B0aW9ucz86IEF1dG9jb21wbGV0ZVdyYXBwZXJTdG9ja09wdGlvbltdO1xuXG4gIC8vIENvbmZpZ3VyYWNpw7NuIGRlbCBvdmVybGF5XG4gIG92ZXJsYXlXaWR0aD86IHN0cmluZyB8IG51bWJlcjtcbiAgb3ZlcmxheU1heEhlaWdodD86IHN0cmluZyB8IG51bWJlcjtcblxuICAvLyBGdW5jacOzbiBkZSBiw7pzcXVlZGEgcGVyc29uYWxpemFkYVxuICBzZWFyY2hGdW5jdGlvbj86IEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hGdW5jdGlvbjtcblxuICAvLyBNb2RvIGRlIGLDunNxdWVkYVxuICBzZWFyY2hNb2RlPzogJ2xvY2FsJyB8ICdyZW1vdGUnIHwgJ2h5YnJpZCc7XG5cbiAgLy8gQ29uZmlndXJhY2nDs24gZGUgZGF0b3MgbG9jYWxlcyAocGFyYSBzZWFyY2hNb2RlICdsb2NhbCcgbyAnaHlicmlkJylcbiAgbG9jYWxEYXRhPzogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXTtcblxuICAvLyBUZXh0byBwZXJzb25hbGl6YWJsZVxuICBub1Jlc3VsdHNUZXh0Pzogc3RyaW5nO1xuICBzZWN0aW9uVGl0bGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZpZWxkIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJvcGVydHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVXcmFwcGVyU3RvY2tPcHRpb24ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzIHtcbiAgc2VhcmNoQnk6IHN0cmluZztcbiAgc3RvY2tGaWx0ZXI6IHN0cmluZztcbn1cblxuLy8gRXZlbnRvcyBxdWUgZW1pdGUgZWwgY29tcG9uZW50ZVxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVXcmFwcGVyRXZlbnRzIHtcbiAgaXRlbVNlbGVjdGVkOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbTtcbiAgc2VhcmNoQ2hhbmdlZDogc3RyaW5nO1xuICBwYWdlQ2hhbmdlZDogbnVtYmVyO1xuICBmaWx0ZXJDaGFuZ2VkOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycztcbiAgYWR2YW5jZWRTZWFyY2hDbGlja2VkOiB2b2lkO1xuICBhbGxSZXN1bHRzQ2xpY2tlZDogc3RyaW5nO1xuICBjcmVhdGVOZXdDbGlja2VkOiBzdHJpbmc7IC8vIEFsaW5lYWRvIGNvbiBvbkNyZWF0ZU5ldyBkZWwgSFRNTFxuICBoaXN0b3J5Q2xlYXJlZDogdm9pZDtcbiAgaGlzdG9yeUl0ZW1SZW1vdmVkOiB7IGl0ZW06IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtOyBpbmRleDogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlclBhZ2luYXRpb25JbmZvIHtcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBzdGFydEl0ZW06IG51bWJlcjtcbiAgZW5kSXRlbTogbnVtYmVyO1xuICBoYXNOZXh0UGFnZTogYm9vbGVhbjtcbiAgaGFzUHJldmlvdXNQYWdlOiBib29sZWFuO1xufVxuXG4vLyBFc3RhZG8gaW50ZXJubyBkZWwgY29tcG9uZW50ZSAocGFyYSB1c2FyIGNvbiBzaWduYWxzKVxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVXcmFwcGVyU3RhdGUge1xuICBxdWVyeTogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIG92ZXJsYXlPcGVuOiBib29sZWFuO1xuICBzZWxlY3RlZEluZGV4OiBudW1iZXI7XG4gIHBhZ2luYXRpb246IEF1dG9jb21wbGV0ZVdyYXBwZXJQYWdpbmF0aW9uSW5mbztcbiAgaGFzUmVzdWx0czogYm9vbGVhbjtcbiAgaXNIaXN0b3J5VmlzaWJsZTogYm9vbGVhbjtcbiAgaGlzdG9yeUNvdW50OiBudW1iZXI7XG4gIGZpbHRlcnM6IEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzO1xuXG4gIC8vIEVzdGFkb3MgYWRpY2lvbmFsZXMgcXVlIGFwYXJlY2VuIGVuIGVsIEhUTUxcbiAgLy8gdG90YWxJdGVtczogbnVtYmVyO1xuICAvLyBjdXJyZW50UGFnZUl0ZW1zOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdO1xuICAvLyBoaXN0b3J5TGlzdDogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXTtcbiAgLy8gbm9SZXN1bHRzOiBib29sZWFuO1xufVxuXG4vLyBQYXJhIG3DqXRvZG9zIGRlbCBjb21wb25lbnRlIHF1ZSBhcGFyZWNlbiBlbiBlbCBIVE1MXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVdyYXBwZXJBY3Rpb25zIHtcbiAgLy8gSW5wdXQgYWN0aW9uc1xuICBvbklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQ7XG4gIHNob3dPdmVybGF5KCk6IHZvaWQ7XG4gIGhpZGVPdmVybGF5KCk6IHZvaWQ7XG4gIGNsZWFyU2VhcmNoKCk6IHZvaWQ7XG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG5cbiAgLy8gSXRlbSBhY3Rpb25zXG4gIHNlbGVjdEl0ZW0oaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0pOiB2b2lkO1xuICBnZXRJdGVtRGlzcGxheVRleHQoaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0pOiBzdHJpbmc7XG5cbiAgLy8gSGlzdG9yeSBhY3Rpb25zXG4gIGNsZWFySGlzdG9yeSgpOiB2b2lkO1xuICByZW1vdmVIaXN0b3J5SXRlbShpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpOiB2b2lkO1xuXG4gIC8vIFBhZ2luYXRpb24gYWN0aW9uc1xuICBnb1RvRmlyc3RQYWdlKCk6IHZvaWQ7XG4gIGdvVG9QcmV2aW91c1BhZ2UoKTogdm9pZDtcbiAgZ29Ub05leHRQYWdlKCk6IHZvaWQ7XG4gIGdvVG9MYXN0UGFnZSgpOiB2b2lkO1xuICBnb1RvUGFnZShldmVudDogRXZlbnQpOiB2b2lkO1xuXG4gIC8vIEZpbHRlciBhY3Rpb25zXG4gIG9uRmlsdGVyQ2hhbmdlKCk6IHZvaWQ7XG5cbiAgLy8gRm9vdGVyIGFjdGlvbnNcbiAgb25DcmVhdGVOZXcoZXZlbnQ6IEV2ZW50KTogdm9pZDtcbiAgb25BZHZhbmNlZFNlYXJjaCgpOiB2b2lkO1xuICBvblNob3dBbGxSZXN1bHRzKCk6IHZvaWQ7XG5cbiAgLy8gU3RhdGUgZ2V0dGVycyAocGFyYSB1c2FyIGNvbiBzaWduYWxzKVxuICBvdmVybGF5T3BlbigpOiBib29sZWFuO1xuICBpc0xvYWRpbmcoKTogYm9vbGVhbjtcbiAgaXNIaXN0b3J5VmlzaWJsZSgpOiBib29sZWFuO1xuICBoaXN0b3J5TGlzdCgpOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdO1xuICBzZWxlY3RlZEluZGV4KCk6IG51bWJlcjtcbiAgY3VycmVudFBhZ2VJdGVtcygpOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdO1xuICB0b3RhbEl0ZW1zKCk6IG51bWJlcjtcbiAgdG90YWxQYWdlcygpOiBudW1iZXI7XG4gIGN1cnJlbnRQYWdlKCk6IG51bWJlcjtcbiAgdG90YWxDb3VudCgpOiBudW1iZXI7XG4gIHN0YXJ0SXRlbSgpOiBudW1iZXI7XG4gIGVuZEl0ZW0oKTogbnVtYmVyO1xuICBzZWN0aW9uVGl0bGUoKTogc3RyaW5nO1xuICBub1Jlc3VsdHNUZXh0KCk6IHN0cmluZztcbiAgaXNOb1Jlc3VsdHMoKTogYm9vbGVhbjtcbiAgb3ZlcmxheVdpZHRoKCk6IHN0cmluZyB8IG51bWJlcjtcbiAgb3ZlcmxheU1heEhlaWdodCgpOiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbi8vIENvbmZpZ3VyYWNpb25lcyBwcmVkZWZpbmlkYXMgbWVqb3JhZGFzXG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX1dSQVBQRVJfREVGQVVMVF9DT05GSUc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSB7XG4gIHBsYWNlaG9sZGVyOiAnQnVzY2FyLi4uJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBkZWJvdW5jZVRpbWU6IDMwMCxcbiAgbWluU2VhcmNoTGVuZ3RoOiAyLFxuICBtYXhIaXN0b3J5SXRlbXM6IDEwLFxuICBpdGVtc1BlclBhZ2U6IDEwLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogdHJ1ZSxcbiAgc3RvY2tQcm9wZXJ0eTogJ3N0b2NrJyxcbiAgZW5hYmxlUGFnaW5hdGlvbjogdHJ1ZSxcbiAgZW5hYmxlRmlsdGVyczogdHJ1ZSxcbiAgZW5hYmxlRm9vdGVyQWN0aW9uczogdHJ1ZSxcbiAgb3ZlcmxheVdpZHRoOiAnMTAwJScsXG4gIG92ZXJsYXlNYXhIZWlnaHQ6ICc1MDBweCcsXG4gIG5vUmVzdWx0c1RleHQ6ICdObyBzZSBlbmNvbnRyYXJvbiByZXN1bHRhZG9zJyxcbiAgc2VjdGlvblRpdGxlOiAnUmVzdWx0YWRvcycsXG4gIHNlYXJjaE1vZGU6ICdyZW1vdGUnLFxuICBzZWFyY2hGaWVsZHM6IFtcbiAgICB7IHZhbHVlOiAnZGVzY3JpcHRpb24nLCBsYWJlbDogJ0Rlc2NyaXBjacOzbicsIHByb3BlcnR5OiAnZGVzY3JpcHRpb24nIH0sXG4gICAgeyB2YWx1ZTogJ2NvZGUnLCBsYWJlbDogJ0PDs2RpZ28nLCBwcm9wZXJ0eTogJ2NvZGUnIH0sXG4gICAgeyB2YWx1ZTogJ2JhcmNvZGUnLCBsYWJlbDogJ0PDs2RpZ28gZGUgQmFycmFzJywgcHJvcGVydHk6ICdiYXJjb2RlJyB9LFxuICAgIHsgdmFsdWU6ICdhdXhDb2RlJywgbGFiZWw6ICdDw7NkaWdvIEF1eGlsaWFyJywgcHJvcGVydHk6ICdhdXhDb2RlJyB9LFxuICBdLFxuICBzdG9ja09wdGlvbnM6IFtcbiAgICB7IHZhbHVlOiAnYWxsJywgbGFiZWw6ICdUb2RvcycgfSxcbiAgICB7IHZhbHVlOiAnd2l0aC1zdG9jaycsIGxhYmVsOiAnQ29uIFN0b2NrJyB9LFxuICAgIHsgdmFsdWU6ICd3aXRob3V0LXN0b2NrJywgbGFiZWw6ICdTaW4gU3RvY2snIH0sXG4gIF0sXG59O1xuXG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX1dSQVBQRVJfUFJPRFVDVF9DT05GSUc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSB7XG4gIC4uLkFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHLFxuICBwbGFjZWhvbGRlcjogJ0J1c2NhciBwcm9kdWN0b3MuLi4nLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogdHJ1ZSxcbiAgZW5hYmxlRm9vdGVyQWN0aW9uczogdHJ1ZSxcbiAgc2VjdGlvblRpdGxlOiAnUHJvZHVjdG9zJyxcbiAgbm9SZXN1bHRzVGV4dDogJ05vIHNlIGVuY29udHJhcm9uIHByb2R1Y3RvcycsXG59O1xuXG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX1dSQVBQRVJfQ1VTVE9NRVJfQ09ORklHOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0ge1xuICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgcGxhY2Vob2xkZXI6ICdCdXNjYXIgY2xpZW50ZXMuLi4nLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogZmFsc2UsXG4gIGVuYWJsZUZvb3RlckFjdGlvbnM6IGZhbHNlLFxuICBzZWN0aW9uVGl0bGU6ICdDbGllbnRlcycsXG4gIG5vUmVzdWx0c1RleHQ6ICdObyBzZSBlbmNvbnRyYXJvbiBjbGllbnRlcycsXG4gIHNlYXJjaEZpZWxkczogW1xuICAgIHsgdmFsdWU6ICduYW1lJywgbGFiZWw6ICdOb21icmUnLCBwcm9wZXJ0eTogJ25hbWUnIH0sXG4gICAgeyB2YWx1ZTogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCcsIHByb3BlcnR5OiAnZW1haWwnIH0sXG4gICAgeyB2YWx1ZTogJ3Bob25lJywgbGFiZWw6ICdUZWzDqWZvbm8nLCBwcm9wZXJ0eTogJ3Bob25lJyB9LFxuICAgIHsgdmFsdWU6ICdkb2N1bWVudCcsIGxhYmVsOiAnRG9jdW1lbnRvJywgcHJvcGVydHk6ICdkb2N1bWVudCcgfSxcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfV1JBUFBFUl9TSU1QTEVfQ09ORklHOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0ge1xuICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgcGxhY2Vob2xkZXI6ICdCdXNjYXIuLi4nLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogZmFsc2UsXG4gIGVuYWJsZUZpbHRlcnM6IGZhbHNlLFxuICBlbmFibGVGb290ZXJBY3Rpb25zOiBmYWxzZSxcbiAgZW5hYmxlUGFnaW5hdGlvbjogZmFsc2UsXG4gIGl0ZW1zUGVyUGFnZTogNTAsXG4gIHNlY3Rpb25UaXRsZTogJ1Jlc3VsdGFkb3MnLFxuICBvdmVybGF5TWF4SGVpZ2h0OiAnMzAwcHgnLFxufTtcblxuLy8gQ29uZmlndXJhY2nDs24gcGFyYSBiw7pzcXVlZGEgbG9jYWxcbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfV1JBUFBFUl9MT0NBTF9DT05GSUc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSB7XG4gIC4uLkFVVE9DT01QTEVURV9XUkFQUEVSX1NJTVBMRV9DT05GSUcsXG4gIHNlYXJjaE1vZGU6ICdsb2NhbCcsXG4gIGRlYm91bmNlVGltZTogMTUwLCAvLyBNZW5vcyB0aWVtcG8gcGFyYSBiw7pzcXVlZGEgbG9jYWxcbiAgbWluU2VhcmNoTGVuZ3RoOiAxLFxufTtcblxuLy8gQ29uZmlndXJhY2nDs24gcGFyYSBsaXN0YXMgZ3JhbmRlcyBjb24gcGFnaW5hY2nDs25cbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfV1JBUFBFUl9QQUdJTkFURURfQ09ORklHOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0ge1xuICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgaXRlbXNQZXJQYWdlOiAyMCxcbiAgZW5hYmxlUGFnaW5hdGlvbjogdHJ1ZSxcbiAgb3ZlcmxheU1heEhlaWdodDogJzQwMHB4Jyxcbn07XG5cbi8vIEhlbHBlciBwYXJhIGNyZWFyIGNvbmZpZ3VyYWNpw7NuIHBlcnNvbmFsaXphZGFcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnKFxuICBvdmVycmlkZXM6IFBhcnRpYWw8QXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZz4sXG4pOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgICAuLi5vdmVycmlkZXMsXG4gIH07XG59XG5cbi8vIFRpcG9zIHBhcmEgZWwgY29tcG9uZW50ZSBBbmd1bGFyXG5leHBvcnQgaW50ZXJmYWNlIFJldXNhYmxlQXV0b2NvbXBsZXRlV3JhcHBlckNvbXBvbmVudCBleHRlbmRzIEF1dG9jb21wbGV0ZVdyYXBwZXJBY3Rpb25zIHtcbiAgY29uZmlnOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnO1xuICBmaWx0ZXJzOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycztcbiAgcXVlcnk6IHN0cmluZztcbn1cblxuLy8gVGlwb3MgZGUgdXRpbGlkYWQgZXNwZWPDrWZpY29zIGRlbCB3cmFwcGVyXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoTW9kZSA9ICdsb2NhbCcgfCAncmVtb3RlJyB8ICdoeWJyaWQnO1xuXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVXcmFwcGVySXRlbVByb3BlcnR5ID0ga2V5b2YgQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW07XG5cbmV4cG9ydCB0eXBlIEF1dG9jb21wbGV0ZVdyYXBwZXJFdmVudEhhbmRsZXI8VCA9IGFueT4gPSAoZXZlbnQ6IFQpID0+IHZvaWQ7XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, of, delay, map } from 'rxjs';\nimport { AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, } from '../models/autocomplete-wrapper.model';\nimport * as i0 from \"@angular/core\";\nexport class AutocompleteWrapperService {\n historySubject = new BehaviorSubject([]);\n history$ = this.historySubject.asObservable();\n constructor() {\n this.loadHistoryFromStorage();\n }\n // Búsqueda local (sin API)\n searchLocal(items, query, filters, config) {\n const filtered = this.filterItems(items, query, filters, config);\n const page = 1; // Para búsqueda local, asumimos página 1\n const pageSize = config.itemsPerPage || 10;\n const startIndex = (page - 1) * pageSize;\n const pageItems = filtered.slice(startIndex, startIndex + pageSize);\n return of({\n items: pageItems,\n totalCount: filtered.length,\n hasMore: filtered.length > startIndex + pageSize,\n });\n }\n // Filtrar elementos basado en query y filtros\n filterItems(items, query, filters, config = AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG) {\n if (!query || query.length < (config.minSearchLength || 2)) {\n return [];\n }\n let filteredItems = items.filter(item => {\n if (item && typeof item === 'string') {\n return true;\n }\n // Buscar por el campo seleccionado\n const searchValue = this.getSearchValue(item, filters.searchBy, config);\n return searchValue.toLowerCase().includes(query.toLowerCase());\n });\n // Aplicar filtro de stock si está habilitado\n if (config.enableStockFilter && filters.stockFilter !== 'all') {\n filteredItems = filteredItems.filter(item => {\n if (typeof item === 'string')\n return true;\n const stockValue = item[config.stockProperty || 'stock'];\n const hasStock = stockValue !== undefined && stockValue !== null && stockValue > 0;\n return filters.stockFilter === 'with-stock' ? hasStock : !hasStock;\n });\n }\n return filteredItems;\n }\n // Simular búsqueda asíncrona\n searchAsync(items, query, filters, config = AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG) {\n const results = this.filterItems(items, query, filters, config);\n return of(results).pipe(delay(100)); // Simular delay de API\n }\n // Obtener valor de búsqueda según el campo seleccionado\n getSearchValue(item, searchBy, config) {\n const searchField = config.searchFields?.find(field => field.value === searchBy);\n if (searchField) {\n return item[searchField.property] || '';\n }\n // Fallback a la lógica anterior\n switch (searchBy) {\n case 'description':\n return item['description'] || '';\n case 'code':\n return item['code'] || item.id?.toString() || '';\n case 'barcode':\n return item['barcode'] || '';\n case 'auxCode':\n return item['auxCode'] || '';\n case 'email':\n return item['email'] || '';\n case 'phone':\n return item['phone'] || '';\n case 'document':\n return item['document'] || '';\n case 'name':\n default:\n return item.name || item.value || '';\n }\n }\n // Gestión de historial específico del wrapper\n addToHistory(item, maxItems = 10) {\n const currentHistory = this.historySubject.value;\n // Remover si ya existe\n const filteredHistory = currentHistory.filter(historyItem => {\n if (typeof item === 'string' && typeof historyItem === 'string') {\n return item !== historyItem;\n }\n else if (typeof item === 'object' && typeof historyItem === 'object') {\n return (item.id || item.name) !== (historyItem.id || historyItem.name);\n }\n return true;\n });\n // Agregar al inicio\n const newHistory = [item, ...filteredHistory].slice(0, maxItems);\n this.historySubject.next(newHistory);\n this.saveHistoryToStorage(newHistory);\n }\n removeFromHistory(index) {\n const currentHistory = this.historySubject.value;\n currentHistory.splice(index, 1);\n this.historySubject.next([...currentHistory]);\n this.saveHistoryToStorage(currentHistory);\n }\n clearHistory() {\n this.historySubject.next([]);\n this.saveHistoryToStorage([]);\n }\n getHistory() {\n return this.historySubject.value;\n }\n // Gestión de almacenamiento específico del wrapper\n loadHistoryFromStorage() {\n try {\n const stored = localStorage.getItem('autocomplete_wrapper_history');\n if (stored) {\n const history = JSON.parse(stored);\n this.historySubject.next(history);\n }\n }\n catch (error) {\n console.warn('Error loading autocomplete wrapper history:', error);\n }\n }\n saveHistoryToStorage(history) {\n try {\n localStorage.setItem('autocomplete_wrapper_history', JSON.stringify(history));\n }\n catch (error) {\n console.warn('Error saving autocomplete wrapper history:', error);\n }\n }\n // Paginación\n paginateItems(items, page, itemsPerPage) {\n const startIndex = (page - 1) * itemsPerPage;\n const endIndex = startIndex + itemsPerPage;\n return items.slice(startIndex, endIndex);\n }\n getTotalPages(totalItems, itemsPerPage) {\n return Math.ceil(totalItems / itemsPerPage) || 1;\n }\n // Validaciones\n isValidPage(page, totalPages) {\n return page >= 1 && page <= totalPages;\n }\n // Utilidades para templates\n highlightText(text, query) {\n if (!query || !text)\n return text;\n const regex = new RegExp(`(${query})`, 'gi');\n return text.replace(regex, '<mark>$1</mark>');\n }\n getItemDisplayText(item, displayField = 'nombre') {\n if (typeof item === 'string')\n return item;\n return item[displayField] || item.name || item.value || item.id?.toString() || '';\n }\n // Configuración dinámica\n mergeConfig(userConfig) {\n return { ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, ...userConfig };\n }\n // Factory para crear función de búsqueda genérica\n createGenericSearchFunction(config) {\n return (query, filters, page = 1, pageSize = 10) => {\n const { searchBy, ...rest } = filters;\n const params = {\n [config.queryParam || 'q']: query,\n [config.searchByParam || 'searchBy']: searchBy,\n [config.pageParam || 'page']: page,\n [config.pageSizeParam || 'pageSize']: pageSize,\n ...rest,\n };\n return config.search(params).pipe(map(response => {\n if (config.responseMapper) {\n return config.responseMapper(response);\n }\n // Mapper por defecto\n const items = response.data || response.items || response;\n const totalRecords = response.totalRecords || response.totalCount || response.total || 0;\n return {\n items,\n totalCount: totalRecords,\n hasMore: response.hasMore || false,\n };\n }));\n };\n }\n // Función para crear datos de ejemplo/mock específicos del wrapper\n createMockData() {\n return [\n {\n id: 1,\n name: 'iPhone 14 Pro 128GB',\n description: 'Smartphone Apple con chip A16 Bionic y cámara Pro',\n code: 'IP14P-128',\n barcode: '1234567890123',\n auxCode: 'APL-IP14P-128',\n stock: 15,\n category: 'Smartphones',\n brand: 'Apple',\n unit: 'unidad',\n prices: [\n {\n id: 1,\n type: 'retail',\n label: 'Público',\n value: 999,\n currency: 'USD',\n includesTax: true,\n isDefault: true,\n isActive: true,\n },\n {\n id: 2,\n type: 'wholesale',\n label: 'Mayorista',\n value: 850,\n currency: 'USD',\n minQuantity: 5,\n includesTax: false,\n isActive: true,\n },\n {\n id: 3,\n type: 'vip',\n label: 'VIP',\n value: 899,\n currency: 'USD',\n includesTax: true,\n isActive: true,\n },\n {\n id: 4,\n type: 'promotional',\n label: 'Black Friday',\n value: 749,\n currency: 'USD',\n validFrom: new Date('2024-11-24'),\n validTo: new Date('2024-11-30'),\n includesTax: true,\n isActive: true,\n },\n ],\n },\n {\n id: 2,\n name: 'Samsung Galaxy S23 256GB',\n description: 'Flagship Android con cámara de 200MP',\n code: 'SGS23-256',\n barcode: '2345678901234',\n auxCode: 'SAM-GS23-256',\n stock: 0,\n category: 'Smartphones',\n brand: 'Samsung',\n unit: 'unidad',\n images: [\n {\n id: 1,\n url: 'https://images.unsplash.com/photo-1592750475338-74b7b21085ab?w=400',\n thumbnailUrl: 'https://images.unsplash.com/photo-1592750475338-74b7b21085ab?w=200',\n alt: 'Samsung Galaxy S23 frontal',\n type: 'main',\n isPrimary: true,\n order: 1,\n },\n {\n id: 2,\n url: 'https://images.unsplash.com/photo-1574755393849-623942496936?w=400',\n thumbnailUrl: 'https://images.unsplash.com/photo-1574755393849-623942496936?w=200',\n alt: 'Samsung Galaxy S23 trasero',\n type: 'gallery',\n order: 2,\n },\n ],\n badges: [{ type: 'new', text: 'NUEVO' }, { type: 'bestseller' }],\n prices: [\n {\n id: 5,\n type: 'retail',\n label: 'Público',\n value: 799,\n currency: 'USD',\n includesTax: true,\n isDefault: true,\n isActive: true,\n },\n {\n id: 6,\n type: 'wholesale',\n label: 'Mayorista',\n value: 679,\n currency: 'USD',\n minQuantity: 3,\n includesTax: false,\n isActive: true,\n },\n ],\n },\n ];\n }\n // Métodos específicos para diferentes tipos de búsqueda\n searchProducts(query, filters = {}) {\n const defaultFilters = {\n searchBy: 'description',\n stockFilter: 'all',\n ...filters,\n };\n const mockData = this.createMockData();\n return this.searchLocal(mockData, query, defaultFilters, AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG);\n }\n // Crear configuración específica para diferentes casos de uso\n createProductSearchConfig() {\n return this.mergeConfig({\n placeholder: 'Buscar productos...',\n enableStockFilter: true,\n enableFooterActions: true,\n sectionTitle: 'Productos',\n searchFields: [\n { value: 'description', label: 'Descripción', property: 'description' },\n { value: 'code', label: 'Código', property: 'code' },\n { value: 'barcode', label: 'Código de Barras', property: 'barcode' },\n { value: 'auxCode', label: 'Código Auxiliar', property: 'auxCode' },\n ],\n });\n }\n createCustomerSearchConfig() {\n return this.mergeConfig({\n placeholder: 'Buscar clientes...',\n enableStockFilter: false,\n enableFooterActions: false,\n sectionTitle: 'Clientes',\n searchFields: [\n { value: 'name', label: 'Nombre', property: 'name' },\n { value: 'email', label: 'Email', property: 'email' },\n { value: 'phone', label: 'Teléfono', property: 'phone' },\n { value: 'document', label: 'Documento', property: 'document' },\n ],\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AutocompleteWrapperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AutocompleteWrapperService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AutocompleteWrapperService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9hdXRvY29tcGxldGUtd3JhcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQ0wsbUNBQW1DLEdBTXBDLE1BQU0sc0NBQXNDLENBQUM7O0FBSzlDLE1BQU0sT0FBTywwQkFBMEI7SUFDN0IsY0FBYyxHQUFHLElBQUksZUFBZSxDQUE0QixFQUFFLENBQUMsQ0FBQztJQUNyRSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVyRDtRQUNFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsV0FBVyxDQUNULEtBQWdDLEVBQ2hDLEtBQWEsRUFDYixPQUFtQyxFQUNuQyxNQUFpQztRQUVqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztRQUN6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLFFBQVEs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QUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7Z0JBQ3BELEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQ3JELEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQ3hELEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7YUFDaEU7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTVZVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgZGVsYXksIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQVVUT0NPTVBMRVRFX1dSQVBQRVJfREVGQVVMVF9DT05GSUcsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzLFxuICBBdXRvY29tcGxldGVXcmFwcGVySXRlbSxcbiAgQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZ1bmN0aW9uLFxuICBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoUmVzdWx0LFxufSBmcm9tICcuLi9tb2RlbHMvYXV0b2NvbXBsZXRlLXdyYXBwZXIubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlV3JhcHBlclNlcnZpY2Uge1xuICBwcml2YXRlIGhpc3RvcnlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdPihbXSk7XG4gIHB1YmxpYyBoaXN0b3J5JCA9IHRoaXMuaGlzdG9yeVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2FkSGlzdG9yeUZyb21TdG9yYWdlKCk7XG4gIH1cblxuICAvLyBCw7pzcXVlZGEgbG9jYWwgKHNpbiBBUEkpXG4gIHNlYXJjaExvY2FsKFxuICAgIGl0ZW1zOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgZmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMsXG4gICAgY29uZmlnOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnLFxuICApOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQ+IHtcbiAgICBjb25zdCBmaWx0ZXJlZCA9IHRoaXMuZmlsdGVySXRlbXMoaXRlbXMsIHF1ZXJ5LCBmaWx0ZXJzLCBjb25maWcpO1xuICAgIGNvbnN0IHBhZ2UgPSAxOyAvLyBQYXJhIGLDunNxdWVkYSBsb2NhbCwgYXN1bWltb3MgcMOhZ2luYSAxXG4gICAgY29uc3QgcGFnZVNpemUgPSBjb25maWcuaXRlbXNQZXJQYWdlIHx8IDEwO1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZSAtIDEpICogcGFnZVNpemU7XG4gICAgY29uc3QgcGFnZUl0ZW1zID0gZmlsdGVyZWQuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIHBhZ2VTaXplKTtcblxuICAgIHJldHVybiBvZih7XG4gICAgICBpdGVtczogcGFnZUl0ZW1zLFxuICAgICAgdG90YWxDb3VudDogZmlsdGVyZWQubGVuZ3RoLFxuICAgICAgaGFzTW9yZTogZmlsdGVyZWQubGVuZ3RoID4gc3RhcnRJbmRleCArIHBhZ2VTaXplLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gRmlsdHJhciBlbGVtZW50b3MgYmFzYWRvIGVuIHF1ZXJ5IHkgZmlsdHJvc1xuICBmaWx0ZXJJdGVtcyhcbiAgICBpdGVtczogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXSxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIGZpbHRlcnM6IEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzLFxuICAgIGNvbmZpZzogQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyA9IEFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHLFxuICApOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdIHtcbiAgICBpZiAoIXF1ZXJ5IHx8IHF1ZXJ5Lmxlbmd0aCA8IChjb25maWcubWluU2VhcmNoTGVuZ3RoIHx8IDIpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlcmVkSXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEJ1c2NhciBwb3IgZWwgY2FtcG8gc2VsZWNjaW9uYWRvXG4gICAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMuZ2V0U2VhcmNoVmFsdWUoaXRlbSwgZmlsdGVycy5zZWFyY2hCeSwgY29uZmlnKTtcbiAgICAgIHJldHVybiBzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgLy8gQXBsaWNhciBmaWx0cm8gZGUgc3RvY2sgc2kgZXN0w6EgaGFiaWxpdGFkb1xuICAgIGlmIChjb25maWcuZW5hYmxlU3RvY2tGaWx0ZXIgJiYgZmlsdGVycy5zdG9ja0ZpbHRlciAhPT0gJ2FsbCcpIHtcbiAgICAgIGZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZEl0ZW1zLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgY29uc3Qgc3RvY2tWYWx1ZSA9IGl0ZW1bY29uZmlnLnN0b2NrUHJvcGVydHkgfHwgJ3N0b2NrJ107XG4gICAgICAgIGNvbnN0IGhhc1N0b2NrID0gc3RvY2tWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHN0b2NrVmFsdWUgIT09IG51bGwgJiYgc3RvY2tWYWx1ZSA+IDA7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuc3RvY2tGaWx0ZXIgPT09ICd3aXRoLXN0b2NrJyA/IGhhc1N0b2NrIDogIWhhc1N0b2NrO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkSXRlbXM7XG4gIH1cblxuICAvLyBTaW11bGFyIGLDunNxdWVkYSBhc8OtbmNyb25hXG4gIHNlYXJjaEFzeW5jKFxuICAgIGl0ZW1zOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgZmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMsXG4gICAgY29uZmlnOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0gQVVUT0NPTVBMRVRFX1dSQVBQRVJfREVGQVVMVF9DT05GSUcsXG4gICk6IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSB0aGlzLmZpbHRlckl0ZW1zKGl0ZW1zLCBxdWVyeSwgZmlsdGVycywgY29uZmlnKTtcbiAgICByZXR1cm4gb2YocmVzdWx0cykucGlwZShkZWxheSgxMDApKTsgLy8gU2ltdWxhciBkZWxheSBkZSBBUElcbiAgfVxuXG4gIC8vIE9idGVuZXIgdmFsb3IgZGUgYsO6c3F1ZWRhIHNlZ8O6biBlbCBjYW1wbyBzZWxlY2Npb25hZG9cbiAgcHJpdmF0ZSBnZXRTZWFyY2hWYWx1ZShcbiAgICBpdGVtOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbSxcbiAgICBzZWFyY2hCeTogc3RyaW5nLFxuICAgIGNvbmZpZzogQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWFyY2hGaWVsZCA9IGNvbmZpZy5zZWFyY2hGaWVsZHM/LmZpbmQoZmllbGQgPT4gZmllbGQudmFsdWUgPT09IHNlYXJjaEJ5KTtcbiAgICBpZiAoc2VhcmNoRmllbGQpIHtcbiAgICAgIHJldHVybiBpdGVtW3NlYXJjaEZpZWxkLnByb3BlcnR5XSB8fCAnJztcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBhIGxhIGzDs2dpY2EgYW50ZXJpb3JcbiAgICBzd2l0Y2ggKHNlYXJjaEJ5KSB7XG4gICAgICBjYXNlICdkZXNjcmlwdGlvbic6XG4gICAgICAgIHJldHVybiBpdGVtWydkZXNjcmlwdGlvbiddIHx8ICcnO1xuICAgICAgY2FzZSAnY29kZSc6XG4gICAgICAgIHJldHVybiBpdGVtWydjb2RlJ10gfHwgaXRlbS5pZD8udG9TdHJpbmcoKSB8fCAnJztcbiAgICAgIGNhc2UgJ2JhcmNvZGUnOlxuICAgICAgICByZXR1cm4gaXRlbVsnYmFyY29kZSddIHx8ICcnO1xuICAgICAgY2FzZSAnYXV4Q29kZSc6XG4gICAgICAgIHJldHVybiBpdGVtWydhdXhDb2RlJ10gfHwgJyc7XG4gICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgIHJldHVybiBpdGVtWydlbWFpbCddIHx8ICcnO1xuICAgICAgY2FzZSAncGhvbmUnOlxuICAgICAgICByZXR1cm4gaXRlbVsncGhvbmUnXSB8fCAnJztcbiAgICAgIGNhc2UgJ2RvY3VtZW50JzpcbiAgICAgICAgcmV0dXJuIGl0ZW1bJ2RvY3VtZW50J10gfHwgJyc7XG4gICAgICBjYXNlICduYW1lJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBpdGVtLm5hbWUgfHwgaXRlbS52YWx1ZSB8fCAnJztcbiAgICB9XG4gIH1cblxuICAvLyBHZXN0acOzbiBkZSBoaXN0b3JpYWwgZXNwZWPDrWZpY28gZGVsIHdyYXBwZXJcbiAgYWRkVG9IaXN0b3J5KGl0ZW06IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtLCBtYXhJdGVtcyA9IDEwKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEhpc3RvcnkgPSB0aGlzLmhpc3RvcnlTdWJqZWN0LnZhbHVlO1xuXG4gICAgLy8gUmVtb3ZlciBzaSB5YSBleGlzdGVcbiAgICBjb25zdCBmaWx0ZXJlZEhpc3RvcnkgPSBjdXJyZW50SGlzdG9yeS5maWx0ZXIoaGlzdG9yeUl0ZW0gPT4ge1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgaGlzdG9yeUl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBpdGVtICE9PSBoaXN0b3J5SXRlbTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIHR5cGVvZiBoaXN0b3J5SXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIChpdGVtLmlkIHx8IGl0ZW0ubmFtZSkgIT09IChoaXN0b3J5SXRlbS5pZCB8fCBoaXN0b3J5SXRlbS5uYW1lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgLy8gQWdyZWdhciBhbCBpbmljaW9cbiAgICBjb25zdCBuZXdIaXN0b3J5ID0gW2l0ZW0sIC4uLmZpbHRlcmVkSGlzdG9yeV0uc2xpY2UoMCwgbWF4SXRlbXMpO1xuXG4gICAgdGhpcy5oaXN0b3J5U3ViamVjdC5uZXh0KG5ld0hpc3RvcnkpO1xuICAgIHRoaXMuc2F2ZUhpc3RvcnlUb1N0b3JhZ2UobmV3SGlzdG9yeSk7XG4gIH1cblxuICByZW1vdmVGcm9tSGlzdG9yeShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEhpc3RvcnkgPSB0aGlzLmhpc3RvcnlTdWJqZWN0LnZhbHVlO1xuICAgIGN1cnJlbnRIaXN0b3J5LnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5oaXN0b3J5U3ViamVjdC5uZXh0KFsuLi5jdXJyZW50SGlzdG9yeV0pO1xuICAgIHRoaXMuc2F2ZUhpc3RvcnlUb1N0b3JhZ2UoY3VycmVudEhpc3RvcnkpO1xuICB9XG5cbiAgY2xlYXJIaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuaGlzdG9yeVN1YmplY3QubmV4dChbXSk7XG4gICAgdGhpcy5zYXZlSGlzdG9yeVRvU3RvcmFnZShbXSk7XG4gIH1cblxuICBnZXRIaXN0b3J5KCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgLy8gR2VzdGnDs24gZGUgYWxtYWNlbmFtaWVudG8gZXNwZWPDrWZpY28gZGVsIHdyYXBwZXJcbiAgcHJpdmF0ZSBsb2FkSGlzdG9yeUZyb21TdG9yYWdlKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYXV0b2NvbXBsZXRlX3dyYXBwZXJfaGlzdG9yeScpO1xuICAgICAgaWYgKHN0b3JlZCkge1xuICAgICAgICBjb25zdCBoaXN0b3J5ID0gSlNPTi5wYXJzZShzdG9yZWQpO1xuICAgICAgICB0aGlzLmhpc3RvcnlTdWJqZWN0Lm5leHQoaGlzdG9yeSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRXJyb3IgbG9hZGluZyBhdXRvY29tcGxldGUgd3JhcHBlciBoaXN0b3J5OicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVIaXN0b3J5VG9TdG9yYWdlKGhpc3Rvcnk6IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtW10pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2F1dG9jb21wbGV0ZV93cmFwcGVyX2hpc3RvcnknLCBKU09OLnN0cmluZ2lmeShoaXN0b3J5KSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRXJyb3Igc2F2aW5nIGF1dG9jb21wbGV0ZSB3cmFwcGVyIGhpc3Rvcnk6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2luYWNpw7NuXG4gIHBhZ2luYXRlSXRlbXM8VD4oaXRlbXM6IFRbXSwgcGFnZTogbnVtYmVyLCBpdGVtc1BlclBhZ2U6IG51bWJlcik6IFRbXSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChwYWdlIC0gMSkgKiBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgaXRlbXNQZXJQYWdlO1xuICAgIHJldHVybiBpdGVtcy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gIH1cblxuICBnZXRUb3RhbFBhZ2VzKHRvdGFsSXRlbXM6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmNlaWwodG90YWxJdGVtcyAvIGl0ZW1zUGVyUGFnZSkgfHwgMTtcbiAgfVxuXG4gIC8vIFZhbGlkYWNpb25lc1xuICBpc1ZhbGlkUGFnZShwYWdlOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYWdlID49IDEgJiYgcGFnZSA8PSB0b3RhbFBhZ2VzO1xuICB9XG5cbiAgLy8gVXRpbGlkYWRlcyBwYXJhIHRlbXBsYXRlc1xuICBoaWdobGlnaHRUZXh0KHRleHQ6IHN0cmluZywgcXVlcnk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFxdWVyeSB8fCAhdGV4dCkgcmV0dXJuIHRleHQ7XG5cbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCgke3F1ZXJ5fSlgLCAnZ2knKTtcbiAgICByZXR1cm4gdGV4dC5yZXBsYWNlKHJlZ2V4LCAnPG1hcms+JDE8L21hcms+Jyk7XG4gIH1cblxuICBnZXRJdGVtRGlzcGxheVRleHQoaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0sIGRpc3BsYXlGaWVsZCA9ICdub21icmUnKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSByZXR1cm4gaXRlbTtcbiAgICByZXR1cm4gaXRlbVtkaXNwbGF5RmllbGRdIHx8IGl0ZW0ubmFtZSB8fCBpdGVtLnZhbHVlIHx8IGl0ZW0uaWQ/LnRvU3RyaW5nKCkgfHwgJyc7XG4gIH1cblxuICAvLyBDb25maWd1cmFjacOzbiBkaW7DoW1pY2FcbiAgbWVyZ2VDb25maWcodXNlckNvbmZpZzogUGFydGlhbDxBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnPik6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcge1xuICAgIHJldHVybiB7IC4uLkFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHLCAuLi51c2VyQ29uZmlnIH07XG4gIH1cblxuICAvLyBGYWN0b3J5IHBhcmEgY3JlYXIgZnVuY2nDs24gZGUgYsO6c3F1ZWRhIGdlbsOpcmljYVxuICBjcmVhdGVHZW5lcmljU2VhcmNoRnVuY3Rpb24oY29uZmlnOiB7XG4gICAgc2VhcmNoOiAocGFyYW1zOiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcbiAgICBxdWVyeVBhcmFtPzogc3RyaW5nO1xuICAgIHNlYXJjaEJ5UGFyYW0/OiBzdHJpbmc7XG4gICAgcGFnZVBhcmFtPzogc3RyaW5nO1xuICAgIHBhZ2VTaXplUGFyYW0/OiBzdHJpbmc7XG4gICAgcmVzcG9uc2VNYXBwZXI/OiAocmVzcG9uc2U6IGFueSkgPT4gQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaFJlc3VsdDtcbiAgfSk6IEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hGdW5jdGlvbiB7XG4gICAgcmV0dXJuIChxdWVyeTogc3RyaW5nLCBmaWx0ZXJzOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycywgcGFnZSA9IDEsIHBhZ2VTaXplID0gMTApID0+IHtcbiAgICAgIGNvbnN0IHsgc2VhcmNoQnksIC4uLnJlc3QgfSA9IGZpbHRlcnM7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIFtjb25maWcucXVlcnlQYXJhbSB8fCAncSddOiBxdWVyeSxcbiAgICAgICAgW2NvbmZpZy5zZWFyY2hCeVBhcmFtIHx8ICdzZWFyY2hCeSddOiBzZWFyY2hCeSxcbiAgICAgICAgW2NvbmZpZy5wYWdlUGFyYW0gfHwgJ3BhZ2UnXTogcGFnZSxcbiAgICAgICAgW2NvbmZpZy5wYWdlU2l6ZVBhcmFtIHx8ICdwYWdlU2l6ZSddOiBwYWdlU2l6ZSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBjb25maWcuc2VhcmNoKHBhcmFtcykucGlwZShcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnLnJlc3BvbnNlTWFwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gY29uZmlnLnJlc3BvbnNlTWFwcGVyKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBNYXBwZXIgcG9yIGRlZmVjdG9cbiAgICAgICAgICBjb25zdCBpdGVtcyA9IHJlc3BvbnNlLmRhdGEgfHwgcmVzcG9uc2UuaXRlbXMgfHwgcmVzcG9uc2U7XG4gICAgICAgICAgY29uc3QgdG90YWxSZWNvcmRzID0gcmVzcG9uc2UudG90YWxSZWNvcmRzIHx8IHJlc3BvbnNlLnRvdGFsQ291bnQgfHwgcmVzcG9uc2UudG90YWwgfHwgMDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgICB0b3RhbENvdW50OiB0b3RhbFJlY29yZHMsXG4gICAgICAgICAgICBoYXNNb3JlOiByZXNwb25zZS5oYXNNb3JlIHx8IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gRnVuY2nDs24gcGFyYSBjcmVhciBkYXRvcyBkZSBlamVtcGxvL21vY2sgZXNwZWPDrWZpY29zIGRlbCB3cmFwcGVyXG4gIGNyZWF0ZU1vY2tEYXRhKCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAxLFxuICAgICAgICBuYW1lOiAnaVBob25lIDE0IFBybyAxMjhHQicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU21hcnRwaG9uZSBBcHBsZSBjb24gY2hpcCBBMTYgQmlvbmljIHkgY8OhbWFyYSBQcm8nLFxuICAgICAgICBjb2RlOiAnSVAxNFAtMTI4JyxcbiAgICAgICAgYmFyY29kZTogJzEyMzQ1Njc4OTAxMjMnLFxuICAgICAgICBhdXhDb2RlOiAnQVBMLUlQMTRQLTEyOCcsXG4gICAgICAgIHN0b2NrOiAxNSxcbiAgICAgICAgY2F0ZWdvcnk6ICdTbWFydHBob25lcycsXG4gICAgICAgIGJyYW5kOiAnQXBwbGUnLFxuICAgICAgICB1bml0OiAndW5pZGFkJyxcbiAgICAgICAgcHJpY2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgICB0eXBlOiAncmV0YWlsJyxcbiAgICAgICAgICAgIGxhYmVsOiAnUMO6YmxpY28nLFxuICAgICAgICAgICAgdmFsdWU6IDk5OSxcbiAgICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICAgIGluY2x1ZGVzVGF4OiB0cnVlLFxuICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogMixcbiAgICAgICAgICAgIHR5cGU6ICd3aG9sZXNhbGUnLFxuICAgICAgICAgICAgbGFiZWw6ICdNYXlvcmlzdGEnLFxuICAgICAgICAgICAgdmFsdWU6IDg1MCxcbiAgICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICAgIG1pblF1YW50aXR5OiA1LFxuICAgICAgICAgICAgaW5jbHVkZXNUYXg6IGZhbHNlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogMyxcbiAgICAgICAgICAgIHR5cGU6ICd2aXAnLFxuICAgICAgICAgICAgbGFiZWw6ICdWSVAnLFxuICAgICAgICAgICAgdmFsdWU6IDg5OSxcbiAgICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICAgIGluY2x1ZGVzVGF4OiB0cnVlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogNCxcbiAgICAgICAgICAgIHR5cGU6ICdwcm9tb3Rpb25hbCcsXG4gICAgICAgICAgICBsYWJlbDogJ0JsYWNrIEZyaWRheScsXG4gICAgICAgICAgICB2YWx1ZTogNzQ5LFxuICAgICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgICAgdmFsaWRGcm9tOiBuZXcgRGF0ZSgnMjAyNC0xMS0yNCcpLFxuICAgICAgICAgICAgdmFsaWRUbzogbmV3IERhdGUoJzIwMjQtMTEtMzAnKSxcbiAgICAgICAgICAgIGluY2x1ZGVzVGF4OiB0cnVlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAyLFxuICAgICAgICBuYW1lOiAnU2Ftc3VuZyBHYWxheHkgUzIzIDI1NkdCJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGbGFnc2hpcCBBbmRyb2lkIGNvbiBjw6FtYXJhIGRlIDIwME1QJyxcbiAgICAgICAgY29kZTogJ1NHUzIzLTI1NicsXG4gICAgICAgIGJhcmNvZGU6ICcyMzQ1Njc4OTAxMjM0JyxcbiAgICAgICAgYXV4Q29kZTogJ1NBTS1HUzIzLTI1NicsXG4gICAgICAgIHN0b2NrOiAwLFxuICAgICAgICBjYXRlZ29yeTogJ1NtYXJ0cGhvbmVzJyxcbiAgICAgICAgYnJhbmQ6ICdTYW1zdW5nJyxcbiAgICAgICAgdW5pdDogJ3VuaWRhZCcsXG4gICAgICAgIGltYWdlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1OTI3NTA0NzUzMzgtNzRiN2IyMTA4NWFiP3c9NDAwJyxcbiAgICAgICAgICAgIHRodW1ibmFpbFVybDogJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTkyNzUwNDc1MzM4LTc0YjdiMjEwODVhYj93PTIwMCcsXG4gICAgICAgICAgICBhbHQ6ICdTYW1zdW5nIEdhbGF4eSBTMjMgZnJvbnRhbCcsXG4gICAgICAgICAgICB0eXBlOiAnbWFpbicsXG4gICAgICAgICAgICBpc1ByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAyLFxuICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1NzQ3NTUzOTM4NDktNjIzOTQyNDk2OTM2P3c9NDAwJyxcbiAgICAgICAgICAgIHRodW1ibmFpbFVybDogJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTc0NzU1MzkzODQ5LTYyMzk0MjQ5NjkzNj93PTIwMCcsXG4gICAgICAgICAgICBhbHQ6ICdTYW1zdW5nIEdhbGF4eSBTMjMgdHJhc2VybycsXG4gICAgICAgICAgICB0eXBlOiAnZ2FsbGVyeScsXG4gICAgICAgICAgICBvcmRlcjogMixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBiYWRnZXM6IFt7IHR5cGU6ICduZXcnLCB0ZXh0OiAnTlVFVk8nIH0sIHsgdHlwZTogJ2Jlc3RzZWxsZXInIH1dLFxuICAgICAgICBwcmljZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogNSxcbiAgICAgICAgICAgIHR5cGU6ICdyZXRhaWwnLFxuICAgICAgICAgICAgbGFiZWw6ICdQw7pibGljbycsXG4gICAgICAgICAgICB2YWx1ZTogNzk5LFxuICAgICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgICAgaW5jbHVkZXNUYXg6IHRydWUsXG4gICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiA2LFxuICAgICAgICAgICAgdHlwZTogJ3dob2xlc2FsZScsXG4gICAgICAgICAgICBsYWJlbDogJ01heW9yaXN0YScsXG4gICAgICAgICAgICB2YWx1ZTogNjc5LFxuICAgICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgICAgbWluUXVhbnRpdHk6IDMsXG4gICAgICAgICAgICBpbmNsdWRlc1RheDogZmFsc2UsXG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLy8gTcOpdG9kb3MgZXNwZWPDrWZpY29zIHBhcmEgZGlmZXJlbnRlcyB0aXBvcyBkZSBiw7pzcXVlZGFcbiAgc2VhcmNoUHJvZHVjdHMoXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBmaWx0ZXJzOiBQYXJ0aWFsPEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzPiA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQ+IHtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMgPSB7XG4gICAgICBzZWFyY2hCeTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgIHN0b2NrRmlsdGVyOiAnYWxsJyxcbiAgICAgIC4uLmZpbHRlcnMsXG4gICAgfTtcblxuICAgIGNvbnN0IG1vY2tEYXRhID0gdGhpcy5jcmVhdGVNb2NrRGF0YSgpO1xuICAgIHJldHVybiB0aGlzLnNlYXJjaExvY2FsKG1vY2tEYXRhLCBxdWVyeSwgZGVmYXVsdEZpbHRlcnMsIEFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHKTtcbiAgfVxuXG4gIC8vIENyZWFyIGNvbmZpZ3VyYWNpw7NuIGVzcGVjw61maWNhIHBhcmEgZGlmZXJlbnRlcyBjYXNvcyBkZSB1c29cbiAgY3JlYXRlUHJvZHVjdFNlYXJjaENvbmZpZygpOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5tZXJnZUNvbmZpZyh7XG4gICAgICBwbGFjZWhvbGRlcjogJ0J1c2NhciBwcm9kdWN0b3MuLi4nLFxuICAgICAgZW5hYmxlU3RvY2tGaWx0ZXI6IHRydWUsXG4gICAgICBlbmFibGVGb290ZXJBY3Rpb25zOiB0cnVlLFxuICAgICAgc2VjdGlvblRpdGxlOiAnUHJvZHVjdG9zJyxcbiAgICAgIHNlYXJjaEZpZWxkczogW1xuICAgICAgICB7IHZhbHVlOiAnZGVzY3JpcHRpb24nLCBsYWJlbDogJ0Rlc2NyaXBjacOzbicsIHByb3BlcnR5OiAnZGVzY3JpcHRpb24nIH0sXG4gICAgICAgIHsgdmFsdWU6ICdjb2RlJywgbGFiZWw6ICdDw7NkaWdvJywgcHJvcGVydHk6ICdjb2RlJyB9LFxuICAgICAgICB7IHZhbHVlOiAnYmFyY29kZScsIGxhYmVsOiAnQ8OzZGlnbyBkZSBCYXJyYXMnLCBwcm9wZXJ0eTogJ2JhcmNvZGUnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdhdXhDb2RlJywgbGFiZWw6ICdDw7NkaWdvIEF1eGlsaWFyJywgcHJvcGVydHk6ICdhdXhDb2RlJyB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUN1c3RvbWVyU2VhcmNoQ29uZmlnKCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLm1lcmdlQ29uZmlnKHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnQnVzY2FyIGNsaWVudGVzLi4uJyxcbiAgICAgIGVuYWJsZVN0b2NrRmlsdGVyOiBmYWxzZSxcbiAgICAgIGVuYWJsZUZvb3RlckFjdGlvbnM6IGZhbHNlLFxuICAgICAgc2VjdGlvblRpdGxlOiAnQ2xpZW50ZXMnLFxuICAgICAgc2VhcmNoRmllbGRzOiBbXG4gICAgICAgIHsgdmFsdWU6ICduYW1lJywgbGFiZWw6ICdOb21icmUnLCBwcm9wZXJ0eTogJ25hbWUnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdlbWFpbCcsIGxhYmVsOiAnRW1haWwnLCBwcm9wZXJ0eTogJ2VtYWlsJyB9LFxuICAgICAgICB7IHZhbHVlOiAncGhvbmUnLCBsYWJlbDogJ1RlbMOpZm9ubycsIHByb3BlcnR5OiAncGhvbmUnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdkb2N1bWVudCcsIGxhYmVsOiAnRG9jdW1lbnRvJywgcHJvcGVydHk6ICdkb2N1bWVudCcgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { ThemeService } from '../../services';\nimport { MatIconButton } from '@angular/material/button';\nimport { AsyncPipe } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nexport class ThemeToggleComponent {\n themeService = inject(ThemeService);\n darkMode$;\n constructor() {\n this.darkMode$ = this.themeService.isDarkMode$;\n }\n toggleDarkMode() {\n this.themeService.toggleDarkMode();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.1\", type: ThemeToggleComponent, isStandalone: true, selector: \"acp-theme-toggle\", ngImport: i0, template: \"<button\\n mat-icon-button\\n (click)=\\\"toggleDarkMode()\\\"\\n title=\\\"{{ (darkMode$ | async) ? 'Modo D\\u00EDa' : 'Modo Noche' }}\\\"\\n>\\n <mat-icon>{{ (darkMode$ | async) ? 'light_mode' : 'dark_mode' }}</mat-icon>\\n</button>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeToggleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-theme-toggle', imports: [MatIconButton, MatIcon, AsyncPipe], template: \"<button\\n mat-icon-button\\n (click)=\\\"toggleDarkMode()\\\"\\n title=\\\"{{ (darkMode$ | async) ? 'Modo D\\u00EDa' : 'Modo Noche' }}\\\"\\n>\\n <mat-icon>{{ (darkMode$ | async) ? 'light_mode' : 'dark_mode' }}</mat-icon>\\n</button>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RoZW1lLXRvZ2dsZS90aGVtZS10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGhlbWUtdG9nZ2xlL3RoZW1lLXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBUWpELE1BQU0sT0FBTyxvQkFBb0I7SUFDdkIsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU1QyxTQUFTLENBQXNCO0lBSy9CO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckMsQ0FBQzt1R0FiVSxvQkFBb0I7MkZBQXBCLG9CQUFvQiw0RUNiakMsbU9BT0EsMERERVksYUFBYSx1S0FBRSxPQUFPLHNJQUFFLFNBQVM7OzJGQUloQyxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLFdBQ25CLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3AtdGhlbWUtdG9nZ2xlJyxcbiAgaW1wb3J0czogW01hdEljb25CdXR0b24sIE1hdEljb24sIEFzeW5jUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90aGVtZS10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGhlbWUtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVUb2dnbGVDb21wb25lbnQge1xuICBwcml2YXRlIHRoZW1lU2VydmljZSA9IGluamVjdChUaGVtZVNlcnZpY2UpO1xuXG4gIGRhcmtNb2RlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IHVua25vd25bXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kYXJrTW9kZSQgPSB0aGlzLnRoZW1lU2VydmljZS5pc0RhcmtNb2RlJDtcbiAgfVxuICB0b2dnbGVEYXJrTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRoZW1lU2VydmljZS50b2dnbGVEYXJrTW9kZSgpO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gIG1hdC1pY29uLWJ1dHRvblxuICAoY2xpY2spPVwidG9nZ2xlRGFya01vZGUoKVwiXG4gIHRpdGxlPVwie3sgKGRhcmtNb2RlJCB8IGFzeW5jKSA/ICdNb2RvIETDrWEnIDogJ01vZG8gTm9jaGUnIH19XCJcbj5cbiAgPG1hdC1pY29uPnt7IChkYXJrTW9kZSQgfCBhc3luYykgPyAnbGlnaHRfbW9kZScgOiAnZGFya19tb2RlJyB9fTwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==","export class FieldDefinition {\n value;\n valueLabel;\n defaultValue;\n defaultValueLabel;\n key;\n label;\n dateRangeConfig;\n isDefaultSearchField;\n required;\n disabled;\n order;\n icon;\n controlType = 'textbox';\n type = 'string';\n editor; // this attribut is for Kendo-Grid\n options;\n valueOptions;\n valuePrimitive; // for kendo dropdown\n textField; // for kendo dropdown\n valueField; // for kendo dropdown\n errorMessage;\n width;\n valueChangeCallback;\n columnType;\n body;\n constructor(options = {}) {\n this.value = options.value;\n this.valueLabel = options.valueLabel;\n this.defaultValue = options.defaultValue;\n this.defaultValueLabel = options.defaultValueLabel;\n this.key = options.key || '';\n this.label = options.label || '';\n this.dateRangeConfig = options.dateRangeConfig;\n this.isDefaultSearchField = options.isDefaultSearchField;\n this.required = !!options.required;\n this.disabled = options.disabled;\n this.order = options.order === undefined ? 1 : options.order;\n this.icon = options.icon;\n this.controlType = options.controlType || 'textbox';\n this.type = options.type || 'string';\n this.editor = options.editor || '';\n this.options = options.options || [];\n this.valueOptions = options.valueOptions || [];\n this.valuePrimitive = options.valuePrimitive;\n this.textField = options.textField;\n this.valueField = options.valueField;\n this.errorMessage = options.errorMessage || '';\n this.width = options.width;\n this.valueChangeCallback = options.valueChangeCallback;\n this.columnType = options.columnType;\n this.body = options.body;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZGVmaW5pdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RlbHMvbWF0LXRhYmxlLW1vZGVscy9maWVsZC1kZWZpbml0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDQSxNQUFNLE9BQU8sZUFBZTtJQUMxQixLQUFLLENBQUs7SUFDVixVQUFVLENBQVU7SUFDcEIsWUFBWSxDQUFLO0lBQ2pCLGlCQUFpQixDQUFVO0lBQzNCLEdBQUcsQ0FBUztJQUNaLEtBQUssQ0FBUztJQUNkLGVBQWUsQ0FBc0I7SUFDckMsb0JBQW9CLENBQVc7SUFDL0IsUUFBUSxDQUFXO0lBQ25CLFFBQVEsQ0FBVztJQUNuQixLQUFLLENBQVU7SUFDZixJQUFJLENBQVU7SUFDZCxXQUFXLEdBQWlCLFNBQVMsQ0FBQztJQUN0QyxJQUFJLEdBQWUsUUFBUSxDQUFDO0lBQzVCLE1BQU0sQ0FBOEIsQ0FBQyxrQ0FBa0M7SUFDdkUsT0FBTyxDQUFpQztJQUN4QyxZQUFZLENBQVk7SUFDeEIsY0FBYyxDQUFXLENBQUMscUJBQXFCO0lBQy9DLFNBQVMsQ0FBVSxDQUFDLHFCQUFxQjtJQUN6QyxVQUFVLENBQVUsQ0FBQyxxQkFBcUI7SUFDMUMsWUFBWSxDQUFVO0lBQ3RCLEtBQUssQ0FBVTtJQUNmLG1CQUFtQixDQUFzQjtJQUN6QyxVQUFVLENBQWM7SUFDeEIsSUFBSSxDQUFPO0lBRVgsWUFBWSxVQUF1QyxFQUFFO1FBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLFNBQVMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERhdGVSYW5nZUNvbmZpZzxUID0gYW55PiB7XG4gIHN0YXJ0RGF0ZTogRmllbGREZWZpbml0aW9uPFQ+O1xuICBlbmREYXRlOiBGaWVsZERlZmluaXRpb248VD47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29udHJvbFR5cGUgPVxuICB8ICd0ZXh0Ym94J1xuICB8ICdrdGV4dGJveCdcbiAgfCAnY29tYm9ib3gnXG4gIHwgJ3RleHRib3hOdW0nXG4gIHwgJ2Ryb3Bkb3duJ1xuICB8ICdkcm9wZG93bmxpc3QnXG4gIHwgJ211bHRpc2VsZWN0J1xuICB8ICdhdXRvY29tcGxldGUnXG4gIHwgJ2NoZWNrYm94J1xuICB8ICdyYWRpb2J1dHRvbidcbiAgfCAnaW5xdWlyeUluRGlhbG9nJ1xuICB8ICd0aW1lcGlja2VyJ1xuICB8ICdkYXRlcGlja2VyJ1xuICB8ICdkYXRlcmFuZ2UnXG4gIHwgJ3RleHRhcmVhJ1xuICB8ICdzbGlkZVRvZ2dsZSdcbiAgfCAnc2xpZGVyJ1xuICB8ICdzd2l0Y2gnXG4gIHwgJ2J1dHRvblRvZ2dsZUdyb3VwJztcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGaWVsZFR5cGUgPVxuICB8ICdudW1iZXInXG4gIHwgJ3N0cmluZydcbiAgfCAnYm9vbGVhbidcbiAgfCAnZGF0ZSdcbiAgfCAnbW9udGgnXG4gIHwgJ2VtYWlsJ1xuICB8ICdwYXNzd29yZCdcbiAgfCAndGVsJ1xuICB8ICdoaWRkZW4nXG4gIHwgJ2ltYWdlJ1xuICB8ICd1cmwnXG4gIHwgJ3dlZWsnXG4gIHwgJ3NlYXJjaCdcbiAgfCAncmVzZXQnXG4gIHwgJ3RlbXBsYXRlJ1xuICB8ICdjdXN0b20nXG4gIHwgJ2V4cGFuZCc7XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29sdW1uVHlwZSA9ICd0ZXh0JyB8ICdjb21wb25lbnQnIHwgJ2h0bWwnIHwgJ3RlbXBsYXRlJztcblxuZXhwb3J0IGNsYXNzIEZpZWxkRGVmaW5pdGlvbjxUID0gYW55PiB7XG4gIHZhbHVlPzogVDtcbiAgdmFsdWVMYWJlbD86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogVDtcbiAgZGVmYXVsdFZhbHVlTGFiZWw/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBkYXRlUmFuZ2VDb25maWc/OiBEYXRlUmFuZ2VDb25maWc8VD47XG4gIGlzRGVmYXVsdFNlYXJjaEZpZWxkPzogYm9vbGVhbjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG9yZGVyPzogbnVtYmVyO1xuICBpY29uPzogc3RyaW5nO1xuICBjb250cm9sVHlwZT86IENvbnRyb2xUeXBlID0gJ3RleHRib3gnO1xuICB0eXBlPzogRmllbGRUeXBlID0gJ3N0cmluZyc7XG4gIGVkaXRvcj86ICdudW1lcmljJyB8ICdib29sZWFuJyB8ICcnOyAvLyB0aGlzIGF0dHJpYnV0IGlzIGZvciBLZW5kby1HcmlkXG4gIG9wdGlvbnM/OiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBUIH1bXTtcbiAgdmFsdWVPcHRpb25zPzogc3RyaW5nW107XG4gIHZhbHVlUHJpbWl0aXZlPzogYm9vbGVhbjsgLy8gZm9yIGtlbmRvIGRyb3Bkb3duXG4gIHRleHRGaWVsZD86IHN0cmluZzsgLy8gZm9yIGtlbmRvIGRyb3Bkb3duXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7IC8vIGZvciBrZW5kbyBkcm9wZG93blxuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZUNhbGxiYWNrPzogKHZhbHVlOiBUKSA9PiB2b2lkO1xuICBjb2x1bW5UeXBlPzogQ29sdW1uVHlwZTtcbiAgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZpZWxkRGVmaW5pdGlvbjxUPj4gPSB7fSkge1xuICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xuICAgIHRoaXMudmFsdWVMYWJlbCA9IG9wdGlvbnMudmFsdWVMYWJlbDtcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlTGFiZWwgPSBvcHRpb25zLmRlZmF1bHRWYWx1ZUxhYmVsO1xuICAgIHRoaXMua2V5ID0gb3B0aW9ucy5rZXkgfHwgJyc7XG4gICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWwgfHwgJyc7XG4gICAgdGhpcy5kYXRlUmFuZ2VDb25maWcgPSBvcHRpb25zLmRhdGVSYW5nZUNvbmZpZztcbiAgICB0aGlzLmlzRGVmYXVsdFNlYXJjaEZpZWxkID0gb3B0aW9ucy5pc0RlZmF1bHRTZWFyY2hGaWVsZDtcbiAgICB0aGlzLnJlcXVpcmVkID0gISFvcHRpb25zLnJlcXVpcmVkO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBvcHRpb25zLmRpc2FibGVkO1xuICAgIHRoaXMub3JkZXIgPSBvcHRpb25zLm9yZGVyID09PSB1bmRlZmluZWQgPyAxIDogb3B0aW9ucy5vcmRlcjtcbiAgICB0aGlzLmljb24gPSBvcHRpb25zLmljb247XG4gICAgdGhpcy5jb250cm9sVHlwZSA9IG9wdGlvbnMuY29udHJvbFR5cGUgfHwgJ3RleHRib3gnO1xuICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnc3RyaW5nJztcbiAgICB0aGlzLmVkaXRvciA9IG9wdGlvbnMuZWRpdG9yIHx8ICcnO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB0aGlzLnZhbHVlT3B0aW9ucyA9IG9wdGlvbnMudmFsdWVPcHRpb25zIHx8IFtdO1xuICAgIHRoaXMudmFsdWVQcmltaXRpdmUgPSBvcHRpb25zLnZhbHVlUHJpbWl0aXZlO1xuICAgIHRoaXMudGV4dEZpZWxkID0gb3B0aW9ucy50ZXh0RmllbGQ7XG4gICAgdGhpcy52YWx1ZUZpZWxkID0gb3B0aW9ucy52YWx1ZUZpZWxkO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gb3B0aW9ucy5lcnJvck1lc3NhZ2UgfHwgJyc7XG4gICAgdGhpcy53aWR0aCA9IG9wdGlvbnMud2lkdGg7XG4gICAgdGhpcy52YWx1ZUNoYW5nZUNhbGxiYWNrID0gb3B0aW9ucy52YWx1ZUNoYW5nZUNhbGxiYWNrO1xuICAgIHRoaXMuY29sdW1uVHlwZSA9IG9wdGlvbnMuY29sdW1uVHlwZTtcbiAgICB0aGlzLmJvZHkgPSBvcHRpb25zLmJvZHk7XG4gIH1cbn1cbiJdfQ==","import { FieldDefinition } from './field-definition.model';\nexport class ColumnDefinition extends FieldDefinition {\n index; // if the list of columns will be displayed in material edit-grid (angular material grid), index must be given\n format; // it could be: { style: 'currency', currency: 'EUR' }, { date: 'short' }\n hasFooter;\n hideInOverlay;\n // optionsAttribut is used in stock-receipt maintenance: StockReceiptItem.Unit has options for StockReceiptItem.Birimi\n optionsAttribut; // name of the attribut that has the options list for dropdown\n templateOutlet;\n constructor(options = {}) {\n super(options);\n this.index = options.index;\n this.format = options.format;\n this.hasFooter = options.hasFooter;\n this.hideInOverlay = options.hideInOverlay;\n this.optionsAttribut = options.optionsAttribut;\n this.templateOutlet = options.templateOutlet;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZmluaXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvbW9kZWxzL21hdC10YWJsZS1tb2RlbHMvY29sdW1uLWRlZmluaXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBUzNELE1BQU0sT0FBTyxnQkFBMEIsU0FBUSxlQUFrQjtJQUMvRCxLQUFLLENBQVUsQ0FBQyw4R0FBOEc7SUFDOUgsTUFBTSxDQUFPLENBQUMseUVBQXlFO0lBQ3ZGLFNBQVMsQ0FBVztJQUNwQixhQUFhLENBQVc7SUFFeEIsc0hBQXNIO0lBQ3RILGVBQWUsQ0FBVSxDQUFDLDhEQUE4RDtJQUN4RixjQUFjLENBQWdDO0lBQzlDLFlBQVksVUFBd0MsRUFBRTtRQUNwRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZERlZmluaXRpb24gfSBmcm9tICcuL2ZpZWxkLWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gY29sdW1uLWRlZmluaXRpb24ubW9kZWwudHNcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb250ZXh0PFQgPSBhbnk+IHtcbiAgJGltcGxpY2l0OiBUO1xuICBpbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbkRlZmluaXRpb248VCA9IGFueT4gZXh0ZW5kcyBGaWVsZERlZmluaXRpb248VD4ge1xuICBpbmRleD86IG51bWJlcjsgLy8gaWYgdGhlIGxpc3Qgb2YgY29sdW1ucyB3aWxsIGJlIGRpc3BsYXllZCBpbiBtYXRlcmlhbCBlZGl0LWdyaWQgKGFuZ3VsYXIgbWF0ZXJpYWwgZ3JpZCksIGluZGV4IG11c3QgYmUgZ2l2ZW5cbiAgZm9ybWF0PzogYW55OyAvLyBpdCBjb3VsZCBiZTogeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6ICdFVVInIH0sIHsgZGF0ZTogJ3Nob3J0JyB9XG4gIGhhc0Zvb3Rlcj86IGJvb2xlYW47XG4gIGhpZGVJbk92ZXJsYXk/OiBib29sZWFuO1xuXG4gIC8vIG9wdGlvbnNBdHRyaWJ1dCBpcyB1c2VkIGluIHN0b2NrLXJlY2VpcHQgbWFpbnRlbmFuY2U6IFN0b2NrUmVjZWlwdEl0ZW0uVW5pdCBoYXMgb3B0aW9ucyBmb3IgU3RvY2tSZWNlaXB0SXRlbS5CaXJpbWlcbiAgb3B0aW9uc0F0dHJpYnV0Pzogc3RyaW5nOyAvLyBuYW1lIG9mIHRoZSBhdHRyaWJ1dCB0aGF0IGhhcyB0aGUgb3B0aW9ucyBsaXN0IGZvciBkcm9wZG93blxuICB0ZW1wbGF0ZU91dGxldD86IFRlbXBsYXRlUmVmPFRhYmxlQ29udGV4dDxUPj47XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8Q29sdW1uRGVmaW5pdGlvbjxUPj4gPSB7fSkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMuaW5kZXggPSBvcHRpb25zLmluZGV4O1xuICAgIHRoaXMuZm9ybWF0ID0gb3B0aW9ucy5mb3JtYXQ7XG4gICAgdGhpcy5oYXNGb290ZXIgPSBvcHRpb25zLmhhc0Zvb3RlcjtcbiAgICB0aGlzLmhpZGVJbk92ZXJsYXkgPSBvcHRpb25zLmhpZGVJbk92ZXJsYXk7XG4gICAgdGhpcy5vcHRpb25zQXR0cmlidXQgPSBvcHRpb25zLm9wdGlvbnNBdHRyaWJ1dDtcbiAgICB0aGlzLnRlbXBsYXRlT3V0bGV0ID0gb3B0aW9ucy50ZW1wbGF0ZU91dGxldDtcbiAgfVxufVxuIl19","export class TableCellIndex {\n row;\n column;\n constructor(row, column) {\n this.row = row;\n this.column = column;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1pbmRleC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RlbHMvbWF0LXRhYmxlLW1vZGVscy90YWJsZS1jZWxsLWluZGV4Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEdBQUcsQ0FBUztJQUNaLE1BQU0sQ0FBUztJQUVmLFlBQVksR0FBVyxFQUFFLE1BQWM7UUFDckMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVGFibGVDZWxsSW5kZXgge1xuICByb3c6IG51bWJlcjtcbiAgY29sdW1uOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Iocm93OiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgdGhpcy5yb3cgPSByb3c7XG4gICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47XG4gIH1cbn1cbiJdfQ==","export class Pagination {\n pageIndex;\n pageSize;\n maxSize;\n totalRecords;\n pageSizeOptions;\n /**\n * @param pageIndex Current page index (0-based for MatPagination compatibility)\n * @param pageSize Number of records per page\n * @param maxSize Maximum number of pages displayed in the pagination control\n * @param totalRecords Total number of records\n * @param pageSizeOptions Available page size options\n */\n constructor(pageIndex = 0, // MatPagination starts at 0\n pageSize = 25, maxSize = 5, totalRecords = 0, pageSizeOptions = [25, 50, 75, 100]) {\n this.pageIndex = pageIndex;\n this.pageSize = pageSize;\n this.maxSize = maxSize;\n this.totalRecords = totalRecords;\n this.pageSizeOptions = pageSizeOptions;\n }\n /**\n * Calculates the total number of pages.\n */\n getTotalPages() {\n return Math.ceil(this.totalRecords / this.pageSize);\n }\n /**\n * Updates the page size and resets the page index to the first page.\n * @param newPageSize The new page size\n */\n updatePageSize(newPageSize) {\n if (this.pageSizeOptions.includes(newPageSize)) {\n this.pageSize = newPageSize;\n this.pageIndex = 0; // Reset to first page\n }\n else {\n throw new Error(`Invalid page size: ${newPageSize}`);\n }\n }\n /**\n * Updates pagination data based on paginator event.\n * @param event MatPaginator event\n */\n updateFromPaginatorEvent(event) {\n this.pageIndex = event.pageIndex;\n this.pageSize = event.pageSize;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNyQixTQUFTLENBQVM7SUFDbEIsUUFBUSxDQUFTO0lBQ2pCLE9BQU8sQ0FBUztJQUNoQixZQUFZLENBQVM7SUFDckIsZUFBZSxDQUFXO0lBRTFCOzs7Ozs7T0FNRztJQUNILFlBQ0UsU0FBUyxHQUFHLENBQUMsRUFBRSw0QkFBNEI7SUFDM0MsUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEdBQUcsQ0FBQyxFQUNYLFlBQVksR0FBRyxDQUFDLEVBQ2hCLGtCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztRQUU3QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsV0FBbUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILHdCQUF3QixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGFnaW5hdGlvbiB7XG4gIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICBtYXhTaXplOiBudW1iZXI7XG4gIHRvdGFsUmVjb3JkczogbnVtYmVyO1xuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcGFnZUluZGV4IEN1cnJlbnQgcGFnZSBpbmRleCAoMC1iYXNlZCBmb3IgTWF0UGFnaW5hdGlvbiBjb21wYXRpYmlsaXR5KVxuICAgKiBAcGFyYW0gcGFnZVNpemUgTnVtYmVyIG9mIHJlY29yZHMgcGVyIHBhZ2VcbiAgICogQHBhcmFtIG1heFNpemUgTWF4aW11bSBudW1iZXIgb2YgcGFnZXMgZGlzcGxheWVkIGluIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xcbiAgICogQHBhcmFtIHRvdGFsUmVjb3JkcyBUb3RhbCBudW1iZXIgb2YgcmVjb3Jkc1xuICAgKiBAcGFyYW0gcGFnZVNpemVPcHRpb25zIEF2YWlsYWJsZSBwYWdlIHNpemUgb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcGFnZUluZGV4ID0gMCwgLy8gTWF0UGFnaW5hdGlvbiBzdGFydHMgYXQgMFxuICAgIHBhZ2VTaXplID0gMjUsXG4gICAgbWF4U2l6ZSA9IDUsXG4gICAgdG90YWxSZWNvcmRzID0gMCxcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzI1LCA1MCwgNzUsIDEwMF0sXG4gICkge1xuICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZUluZGV4O1xuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICB0aGlzLm1heFNpemUgPSBtYXhTaXplO1xuICAgIHRoaXMudG90YWxSZWNvcmRzID0gdG90YWxSZWNvcmRzO1xuICAgIHRoaXMucGFnZVNpemVPcHRpb25zID0gcGFnZVNpemVPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcy5cbiAgICovXG4gIGdldFRvdGFsUGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMudG90YWxSZWNvcmRzIC8gdGhpcy5wYWdlU2l6ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGFnZSBzaXplIGFuZCByZXNldHMgdGhlIHBhZ2UgaW5kZXggdG8gdGhlIGZpcnN0IHBhZ2UuXG4gICAqIEBwYXJhbSBuZXdQYWdlU2l6ZSBUaGUgbmV3IHBhZ2Ugc2l6ZVxuICAgKi9cbiAgdXBkYXRlUGFnZVNpemUobmV3UGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhZ2VTaXplT3B0aW9ucy5pbmNsdWRlcyhuZXdQYWdlU2l6ZSkpIHtcbiAgICAgIHRoaXMucGFnZVNpemUgPSBuZXdQYWdlU2l6ZTtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gMDsgLy8gUmVzZXQgdG8gZmlyc3QgcGFnZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFnZSBzaXplOiAke25ld1BhZ2VTaXplfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHBhZ2luYXRpb24gZGF0YSBiYXNlZCBvbiBwYWdpbmF0b3IgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBNYXRQYWdpbmF0b3IgZXZlbnRcbiAgICovXG4gIHVwZGF0ZUZyb21QYWdpbmF0b3JFdmVudChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlSW5kZXggPSBldmVudC5wYWdlSW5kZXg7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xuICB9XG59XG4iXX0=","import { Component, Input, ViewChild, computed, signal, inject, output, input, } from '@angular/core';\nimport { Subject, takeUntil, debounceTime, of } from 'rxjs';\nimport { MatIcon } from '@angular/material/icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconButton } from '@angular/material/button';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, } from '../../models';\nimport { AutocompleteWrapperService } from '../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/overlay\";\nimport * as i2 from \"@angular/forms\";\nexport class ReusableAutocompleteComponent {\n dataSource = []; // Para búsqueda local\n config = AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG;\n itemTemplate;\n searchFunction;\n notFoundTemplate;\n overlayWidth = input('auto', ...(ngDevMode ? [{ debugName: \"overlayWidth\" }] : []));\n overlayMaxHeight = input('400px', ...(ngDevMode ? [{ debugName: \"overlayMaxHeight\" }] : []));\n itemSelected = output();\n searchChanged = output();\n searchRequested = output(); // Nuevo evento\n pageChanged = output();\n filterChanged = output();\n advancedSearchClicked = output();\n allResultsClicked = output();\n createClicked = output();\n searchInput;\n historyListElement;\n resultsListElement;\n // State\n query = '';\n isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n overlayOpen = signal(false, ...(ngDevMode ? [{ debugName: \"overlayOpen\" }] : []));\n selectedIndex = signal(-1, ...(ngDevMode ? [{ debugName: \"selectedIndex\" }] : []));\n currentPage = signal(1, ...(ngDevMode ? [{ debugName: \"currentPage\" }] : []));\n filteredItems = signal([], ...(ngDevMode ? [{ debugName: \"filteredItems\" }] : []));\n historyList = signal([], ...(ngDevMode ? [{ debugName: \"historyList\" }] : []));\n totalCount = signal(0, ...(ngDevMode ? [{ debugName: \"totalCount\" }] : []));\n // Filters\n filters = {\n searchBy: 'name',\n stockFilter: 'all',\n };\n // Computed properties\n isHistoryVisible = computed(() => {\n return this.query.length < (this.config.minSearchLength || 2) && this.historyList().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"isHistoryVisible\" }] : []));\n totalItems = computed(() => this.filteredItems().length, ...(ngDevMode ? [{ debugName: \"totalItems\" }] : []));\n totalPages = computed(() => {\n const total = this.totalCount();\n return total > 0 ? Math.ceil(total / (this.config.itemsPerPage || 10)) : 1;\n }, ...(ngDevMode ? [{ debugName: \"totalPages\" }] : []));\n currentPageItems = computed(() => {\n // if (!this.config.enablePagination) {\n // }\n return this.filteredItems();\n // return this.autocompleteService.paginateItems(\n // this.filteredItems(),\n // this.currentPage(),\n // this.config.itemsPerPage || 10\n // );\n }, ...(ngDevMode ? [{ debugName: \"currentPageItems\" }] : []));\n startItem = computed(() => {\n const total = this.totalItems();\n if (total === 0)\n return 0;\n return (this.currentPage() - 1) * (this.config.itemsPerPage || 10) + 1;\n }, ...(ngDevMode ? [{ debugName: \"startItem\" }] : []));\n endItem = computed(() => {\n const total = this.totalItems();\n const calculated = this.currentPage() * (this.config.itemsPerPage || 10);\n return Math.min(calculated, total);\n }, ...(ngDevMode ? [{ debugName: \"endItem\" }] : []));\n sectionTitle = computed(() => {\n const total = this.totalItems();\n return `Resultados (${total})`;\n }, ...(ngDevMode ? [{ debugName: \"sectionTitle\" }] : []));\n isNoResults = computed(() => {\n return (this.totalItems() === 0 &&\n !this.isLoading() &&\n this.query.length >= (this.config.minSearchLength || 2));\n }, ...(ngDevMode ? [{ debugName: \"isNoResults\" }] : []));\n // Private\n destroy$ = new Subject();\n searchSubject = new Subject();\n autocompleteService = inject(AutocompleteWrapperService);\n ngOnInit() {\n this.mergeDefaultConfig();\n this.setupSearch();\n this.loadHistory();\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n mergeDefaultConfig() {\n this.config = this.autocompleteService.mergeConfig(this.config);\n this.filters.searchBy = this.config.searchFields?.[0]?.value || 'name';\n this.filters.stockFilter = this.config.stockOptions?.[0]?.value || 'all';\n }\n setupSearch() {\n this.filteredItems.set([]);\n this.searchSubject\n .pipe(debounceTime(this.config.debounceTime || 300), \n // distinctUntilChanged(),\n // distinctUntilChanged((prev, curr) => {\n // console.log(prev);\n // console.log(curr);\n // return prev.query === curr.query &&\n // JSON.stringify(prev.filters) === JSON.stringify(curr.filters) &&\n // prev.page === curr.page\n //\n // }\n //\n // ),\n takeUntil(this.destroy$), switchMap(({ query }) => this.performSearch(query)))\n .subscribe(result => {\n this.filteredItems.set(result.items);\n this.totalCount.set(result.totalCount);\n this.isLoading.set(false);\n });\n }\n performSearch(query) {\n if (query.length < (this.config.minSearchLength || 2)) {\n return of({ items: [], totalCount: 0 });\n }\n // ESTRATEGIA A: Función de búsqueda personalizada\n if (this.searchFunction) {\n return this.searchFunction(query, this.filters, this.currentPage(), this.config.itemsPerPage || 10).pipe(catchError(() => of({ items: [], totalCount: 0 })));\n }\n // ESTRATEGIA B: Emit evento para que el padre maneje\n if (this.config.searchMode === 'remote') {\n this.searchRequested.emit({\n query,\n filters: this.filters,\n page: this.currentPage(),\n });\n return of({ items: [], totalCount: 0 }); // El padre actualizará los datos\n }\n // ESTRATEGIA C: Búsqueda local (fallback)\n return this.autocompleteService.searchLocal(this.dataSource, query, this.filters, this.config);\n }\n loadHistory() {\n this.autocompleteService.history$.pipe(takeUntil(this.destroy$)).subscribe(history => {\n this.historyList.set(history);\n });\n }\n searchSubjectNext() {\n this.searchSubject.next({\n query: this.query,\n filters: this.filters,\n page: this.currentPage(),\n });\n }\n // Event Handlers\n onInput(event) {\n const target = event.target;\n this.query = target.value;\n this.selectedIndex.set(-1);\n this.currentPage.set(1);\n if (this.query.length >= (this.config.minSearchLength || 2)) {\n this.isLoading.set(true);\n this.searchSubjectNext();\n }\n else {\n this.filteredItems.set([]);\n this.isLoading.set(false);\n }\n this.showOverlay();\n this.searchChanged.emit(this.query);\n }\n onKeyDown(event) {\n const currentList = this.isHistoryVisible() ? this.historyList() : this.currentPageItems();\n const maxIndex = currentList.length - 1;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (maxIndex >= 0) {\n const nextIndex = this.selectedIndex() < maxIndex ? this.selectedIndex() + 1 : 0;\n this.selectedIndex.set(nextIndex);\n this.scrollToSelected();\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (maxIndex >= 0) {\n const prevIndex = this.selectedIndex() > 0 ? this.selectedIndex() - 1 : maxIndex;\n this.selectedIndex.set(prevIndex);\n this.scrollToSelected();\n }\n break;\n case 'Enter':\n event.preventDefault();\n if (this.selectedIndex() >= 0 && this.selectedIndex() <= maxIndex) {\n this.selectItem(currentList[this.selectedIndex()]);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.hideOverlay();\n break;\n case 'PageDown':\n event.preventDefault();\n if (!this.isHistoryVisible() && this.config.enablePagination) {\n this.goToNextPage();\n }\n break;\n case 'PageUp':\n event.preventDefault();\n if (!this.isHistoryVisible() && this.config.enablePagination) {\n this.goToPreviousPage();\n }\n break;\n }\n }\n onFilterChange() {\n this.currentPage.set(1);\n if (this.query.length >= (this.config.minSearchLength || 2)) {\n this.performSearch(this.query);\n this.searchSubjectNext();\n }\n // this.filterChanged.emit(this.filters);\n }\n // Método público para actualizar resultados desde el padre\n updateSearchResults(result) {\n this.filteredItems.set(result.items);\n this.totalCount.set(result.totalCount);\n this.isLoading.set(false);\n }\n // Overlay Methods\n showOverlay() {\n this.overlayOpen.set(true);\n }\n hideOverlay() {\n this.overlayOpen.set(false);\n this.selectedIndex.set(-1);\n }\n isType(item) {\n return typeof item === 'string';\n }\n // Selection Methods\n selectItem(item) {\n if (this.config.clearInput) {\n this.query = '';\n }\n else {\n this.query = this.getItemDisplayText(item);\n }\n this.hideOverlay();\n this.currentPage.set(1);\n this.autocompleteService.addToHistory(item, this.config.maxHistoryItems);\n this.itemSelected.emit(item);\n setTimeout(() => {\n this.searchInput?.nativeElement?.focus();\n }, 100);\n }\n clearSearch() {\n this.query = '';\n this.filteredItems.set([]);\n this.selectedIndex.set(-1);\n this.currentPage.set(1);\n this.searchInput?.nativeElement?.focus();\n this.searchChanged.emit('');\n }\n // History Methods\n removeHistoryItem(index, event) {\n event.stopPropagation();\n this.autocompleteService.removeFromHistory(index);\n }\n clearHistory() {\n this.autocompleteService.clearHistory();\n }\n // Pagination Methods\n goToPage(event) {\n const target = event.target;\n const page = parseInt(target.value);\n if (this.autocompleteService.isValidPage(page, this.totalPages())) {\n this.currentPage.set(page);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(page);\n this.searchSubjectNext();\n }\n else {\n target.value = this.currentPage().toString();\n }\n }\n goToFirstPage() {\n if (this.currentPage() !== 1) {\n this.currentPage.set(1);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(1);\n this.searchSubjectNext();\n }\n }\n goToPreviousPage() {\n const prevPage = this.currentPage() - 1;\n if (prevPage >= 1) {\n this.currentPage.set(prevPage);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(prevPage);\n this.searchSubjectNext();\n }\n }\n goToNextPage() {\n const nextPage = this.currentPage() + 1;\n if (nextPage <= this.totalPages()) {\n this.currentPage.set(nextPage);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(nextPage);\n this.searchSubjectNext();\n }\n }\n goToLastPage() {\n const lastPage = this.totalPages();\n if (this.currentPage() !== lastPage) {\n this.currentPage.set(lastPage);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(lastPage);\n this.searchSubjectNext();\n }\n }\n // Footer Actions\n onCreateNew($event) {\n //$event.stopPropagation();\n // this.hideOverlay();\n this.createClicked.emit(this.query);\n }\n onAdvancedSearch() {\n this.hideOverlay();\n this.advancedSearchClicked.emit();\n }\n onShowAllResults() {\n this.hideOverlay();\n this.allResultsClicked.emit(this.query);\n }\n // Utility Methods\n getItemDisplayText(item) {\n return this.autocompleteService.getItemDisplayText(item);\n }\n noResultsText() {\n return `No se encontraron resultados para \"${this.query}\"`;\n }\n scrollToSelected() {\n const listElement = this.isHistoryVisible()\n ? this.historyListElement?.nativeElement\n : this.resultsListElement?.nativeElement;\n if (listElement) {\n const selectedElement = listElement.children[this.selectedIndex()];\n if (selectedElement) {\n selectedElement.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n }\n // Public API\n getState() {\n return {\n query: this.query,\n isLoading: this.isLoading(),\n overlayOpen: this.overlayOpen(),\n selectedIndex: this.selectedIndex(),\n pagination: {\n currentPage: this.currentPage(),\n totalPages: this.totalPages(),\n totalItems: this.totalItems(),\n itemsPerPage: this.config.itemsPerPage || 10,\n startItem: this.startItem(),\n endItem: this.endItem(),\n hasNextPage: this.currentPage() < this.totalPages(),\n hasPreviousPage: this.currentPage() > 1,\n },\n hasResults: this.totalItems() > 0,\n isHistoryVisible: this.isHistoryVisible(),\n historyCount: this.historyList().length,\n filters: this.filters,\n };\n }\n setQuery(query) {\n this.query = query;\n this.currentPage.set(1);\n if (query.length >= (this.config.minSearchLength || 2)) {\n this.performSearch(query);\n this.showOverlay();\n }\n else {\n this.filteredItems.set([]);\n if (query.length === 0) {\n this.hideOverlay();\n }\n }\n this.searchChanged.emit(query);\n }\n focus() {\n this.searchInput?.nativeElement?.focus();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ReusableAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: ReusableAutocompleteComponent, isStandalone: true, selector: \"acp-autocomplete-wrapper\", inputs: { dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: false, isRequired: false, transformFunction: null }, config: { classPropertyName: \"config\", publicName: \"config\", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, searchFunction: { classPropertyName: \"searchFunction\", publicName: \"searchFunction\", isSignal: false, isRequired: false, transformFunction: null }, notFoundTemplate: { classPropertyName: \"notFoundTemplate\", publicName: \"notFoundTemplate\", isSignal: false, isRequired: false, transformFunction: null }, overlayWidth: { classPropertyName: \"overlayWidth\", publicName: \"overlayWidth\", isSignal: true, isRequired: false, transformFunction: null }, overlayMaxHeight: { classPropertyName: \"overlayMaxHeight\", publicName: \"overlayMaxHeight\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelected: \"itemSelected\", searchChanged: \"searchChanged\", searchRequested: \"searchRequested\", pageChanged: \"pageChanged\", filterChanged: \"filterChanged\", advancedSearchClicked: \"advancedSearchClicked\", allResultsClicked: \"allResultsClicked\", createClicked: \"createClicked\" }, viewQueries: [{ propertyName: \"searchInput\", first: true, predicate: [\"searchInput\"], descendants: true }, { propertyName: \"historyListElement\", first: true, predicate: [\"historyListElement\"], descendants: true }, { propertyName: \"resultsListElement\", first: true, predicate: [\"resultsListElement\"], descendants: true }], ngImport: i0, template: \"<div class=\\\"autocomplete-wrapper-wrapper\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <!-- Input Container -->\\n <div\\n class=\\\"autocomplete-wrapper-input-container\\\"\\n cdkOverlayOrigin\\n #overlayPosition=\\\"cdkOverlayOrigin\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-input-wrapper\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-search-icon\\\">search</mat-icon>\\n <input\\n #searchInput\\n type=\\\"text\\\"\\n class=\\\"autocomplete-wrapper-input-field\\\"\\n [placeholder]=\\\"config.placeholder\\\"\\n [(ngModel)]=\\\"query\\\"\\n (input)=\\\"onInput($event)\\\"\\n (click)=\\\"showOverlay()\\\"\\n (keydown)=\\\"onKeyDown($event)\\\"\\n [disabled]=\\\"config.disabled || false\\\"\\n autocomplete=\\\"off\\\"\\n />\\n @if (query && query.length > 0 && !isLoading()) {\\n <button\\n mat-icon-button\\n (click)=\\\"clearSearch()\\\"\\n type=\\\"button\\\"\\n class=\\\"autocomplete-wrapper-clear-button\\\"\\n >\\n <mat-icon>clear</mat-icon>\\n </button>\\n }\\n <button mat-icon-button type=\\\"button\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n </div>\\n\\n @if (isLoading()) {\\n <div class=\\\"autocomplete-wrapper-loading-spinner\\\">\\n <mat-spinner diameter=\\\"20\\\"></mat-spinner>\\n </div>\\n }\\n </div>\\n\\n <!-- Overlay -->\\n <ng-template\\n cdkConnectedOverlay\\n [cdkConnectedOverlayOrigin]=\\\"overlayPosition\\\"\\n [cdkConnectedOverlayOpen]=\\\"overlayOpen()\\\"\\n [cdkConnectedOverlayWidth]=\\\"overlayWidth()\\\"\\n [cdkConnectedOverlayHeight]=\\\"overlayMaxHeight()\\\"\\n (overlayOutsideClick)=\\\"hideOverlay()\\\"\\n (backdropClick)=\\\"hideOverlay()\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-dropdown\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <div class=\\\"autocomplete-wrapper-dropdown-content\\\">\\n <!-- History Section -->\\n @if (isHistoryVisible() && historyList().length > 0) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">B\\u00FAsquedas recientes</span>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n (click)=\\\"clearHistory()\\\"\\n class=\\\"autocomplete-wrapper-clear-history-button\\\"\\n >\\n <mat-icon>delete_outline</mat-icon>\\n </button>\\n </div>\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #historyListElement\\n >\\n @for (item of historyList(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-history-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <mat-icon class=\\\"autocomplete-wrapper-history-icon\\\">history</mat-icon>\\n <div class=\\\"autocomplete-wrapper-item-details\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n class=\\\"autocomplete-wrapper-remove-button\\\"\\n (click)=\\\"removeHistoryItem($index, $event)\\\"\\n >\\n <mat-icon>close</mat-icon>\\n </button>\\n </li>\\n }\\n </ul>\\n </div>\\n }\\n\\n <!-- Results Section -->\\n @if (!isHistoryVisible()) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <!-- Header with filters and pagination -->\\n @if (config.enableFilters || config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n\\n <!-- Filters -->\\n @if (config.enableFilters) {\\n <div class=\\\"autocomplete-wrapper-filter-controls\\\">\\n @if (config.searchFields && config.searchFields.length > 1) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Buscar por:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.searchBy\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (field of config.searchFields; track $index) {\\n <option [value]=\\\"field.value\\\">{{ field.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n\\n @if (config.enableStockFilter && config.stockOptions) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Stock:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.stockFilter\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (option of config.stockOptions; track $index) {\\n <option [value]=\\\"option.value\\\">{{ option.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Pagination Controls -->\\n @if (config.enablePagination && totalPages() > 1) {\\n <div class=\\\"autocomplete-wrapper-pagination-header\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-info\\\">\\n <span>P\\u00E1gina {{ currentPage() }} de {{ totalPages() }}</span>\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToFirstPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>first_page</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <input\\n type=\\\"number\\\"\\n class=\\\"autocomplete-wrapper-page-input\\\"\\n [value]=\\\"currentPage()\\\"\\n [min]=\\\"1\\\"\\n [max]=\\\"totalPages()\\\"\\n (change)=\\\"goToPage($event)\\\"\\n />\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToLastPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>last_page</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n </div>\\n }\\n\\n <!-- Items List -->\\n @if (totalItems()) {\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #resultsListElement\\n >\\n @for (item of currentPageItems(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-result-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-item-info\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n </li>\\n }\\n </ul>\\n }\\n </div>\\n }\\n\\n <!-- No Results -->\\n @if (!isLoading() && isNoResults()) {\\n <div class=\\\"autocomplete-wrapper-no-results\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-no-results-icon\\\">search_off</mat-icon>\\n <div class=\\\"autocomplete-wrapper-no-results-content\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n notFoundTemplate || defaultNotFoundTemplate;\\n context: { $implicit: noResultsText() }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n }\\n\\n <!-- Footer -->\\n @if (overlayOpen() && totalItems() > 0) {\\n <div class=\\\"autocomplete-wrapper-footer\\\">\\n @if (!isHistoryVisible() && totalItems() > 0 && config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-pagination-footer\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-summary\\\">\\n Mostrando {{ startItem() }}-{{ endItem() }} de {{ totalCount() }} resultados\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls-footer\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <span class=\\\"autocomplete-wrapper-page-indicator\\\"\\n >{{ currentPage() }} / {{ totalPages() }}</span\\n >\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n\\n @if (config.enableFooterActions) {\\n <div class=\\\"autocomplete-wrapper-footer-actions\\\">\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-create-button\\\"\\n (click)=\\\"onCreateNew($event)\\\"\\n >\\n <mat-icon>add</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Crear</span>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-search-button\\\"\\n (click)=\\\"onAdvancedSearch()\\\"\\n >\\n <mat-icon>tune</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Avanzada</span>\\n </button>\\n @if (!isHistoryVisible() && totalItems() > 0) {\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-results-button\\\"\\n (click)=\\\"onShowAllResults()\\\"\\n >\\n <mat-icon>list</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Todos</span>\\n </button>\\n }\\n </div>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n </ng-template>\\n\\n <!-- Default Templates -->\\n <ng-template #defaultItemTemplate let-item>\\n <div class=\\\"autocomplete-wrapper-default-item\\\">\\n <div class=\\\"autocomplete-wrapper-item-name\\\">{{ getItemDisplayText(item) }}</div>\\n @if (item.description && typeof item === 'object') {\\n <div class=\\\"autocomplete-wrapper-item-description\\\">{{ item.description }}</div>\\n }\\n </div>\\n </ng-template>\\n\\n <ng-template #defaultNotFoundTemplate let-text>\\n <div class=\\\"autocomplete-wrapper-default-no-results\\\">\\n <p>{{ text }}</p>\\n <p>Intenta con otros t\\u00E9rminos de b\\u00FAsqueda</p>\\n </div>\\n </ng-template>\\n</div>\\n\", styles: [\".autocomplete-wrapper{position:relative;width:100%;max-width:100%}.autocomplete-wrapper.autocomplete-wrapper-active .autocomplete-wrapper-input-wrapper{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-input-container{position:relative;width:100%}.autocomplete-wrapper-input-wrapper{position:relative;display:flex;align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:0 12px;transition:all .3s ease}.autocomplete-wrapper-input-wrapper:focus-within{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-search-icon{color:#666;margin-right:8px;font-size:20px}.autocomplete-wrapper-input-field{flex:1;border:none;outline:none;font-size:16px;padding:7px 0;background:transparent;color:#333}.autocomplete-wrapper-input-field::placeholder{color:#999}.autocomplete-wrapper-input-field:disabled{opacity:.6;cursor:not-allowed}.autocomplete-wrapper-clear-button{margin-left:8px;color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-loading-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.autocomplete-wrapper-dropdown{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;border:1px solid #e0e0e0;overflow:hidden;max-height:500px;min-width:300px;display:flex;flex-direction:column}.autocomplete-wrapper-dropdown.autocomplete-wrapper-active{animation:reusableAutocompleteSlideIn .2s ease-out}@keyframes reusableAutocompleteSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.autocomplete-wrapper-dropdown-content{display:flex;flex-direction:column;height:100%;max-height:500px}.autocomplete-wrapper-section{display:flex;flex-direction:column;height:100%;min-height:0}.autocomplete-wrapper-section-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 8px;border-bottom:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;min-height:56px;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-section-title{font-size:13px;font-weight:500;color:#666;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.autocomplete-wrapper-clear-history-button{color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-history-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-filter-controls{display:flex;align-items:center;gap:16px;flex:1;justify-content:center}.autocomplete-wrapper-filter-group{display:flex;align-items:center;gap:6px}.autocomplete-wrapper-filter-label{font-size:12px;color:#666;font-weight:500;white-space:nowrap}.autocomplete-wrapper-filter-select{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;background:#fff;color:#333;cursor:pointer;min-width:120px}.autocomplete-wrapper-filter-select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 1px #1976d233}.autocomplete-wrapper-filter-select:hover{border-color:#bbb}.autocomplete-wrapper-pagination-header{display:flex;align-items:center;gap:12px;margin-left:auto}.autocomplete-wrapper-pagination-info{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls{display:flex;align-items:center;gap:4px}.autocomplete-wrapper-pagination-button{min-width:32px;height:32px;line-height:32px;padding:0;color:#666;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.autocomplete-wrapper-pagination-button:hover:not(:disabled){background-color:#0000000a;color:#333}.autocomplete-wrapper-pagination-button:disabled{opacity:.5;cursor:not-allowed}.autocomplete-wrapper-pagination-button mat-icon{font-size:18px;width:18px;height:18px}.autocomplete-wrapper-page-input{width:50px;height:32px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:12px;padding:4px;margin:0 4px}.autocomplete-wrapper-page-input:focus{outline:none;border-color:#1976d2}.autocomplete-wrapper-items-list{list-style:none;margin:0;padding:0;flex:1;min-height:0}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{overflow-y:auto}.autocomplete-wrapper-list-item{display:flex;align-items:center;border-bottom:1px solid #f5f5f5;transition:background-color .2s ease}.autocomplete-wrapper-list-item:last-child{border-bottom:none}.autocomplete-wrapper-list-item:hover{background-color:#f8f9fa}.autocomplete-wrapper-item-content{flex:1;display:flex;align-items:center;padding:12px 16px;cursor:pointer;min-height:48px;transition:all .2s ease}.autocomplete-wrapper-item-content.autocomplete-wrapper-selected{background-color:#e3f2fd;color:#1976d2}.autocomplete-wrapper-history-item .autocomplete-wrapper-item-content{padding-left:12px}.autocomplete-wrapper-history-icon{color:#999;margin-right:12px;font-size:18px}.autocomplete-wrapper-item-details{flex:1;display:flex;align-items:center}.autocomplete-wrapper-remove-button{margin-right:8px}.autocomplete-wrapper-result-item{position:relative}.autocomplete-wrapper-item-info{flex:1;display:flex;align-items:center}.autocomplete-wrapper-default-item{flex:1}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-name{font-weight:500;font-size:14px;margin-bottom:2px;color:#333}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-description{font-size:12px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-wrapper-no-results{display:flex;flex-direction:column;align-items:center;padding:32px 16px;text-align:center;color:#666}.autocomplete-wrapper-no-results-icon{font-size:48px;color:#ccc;margin-bottom:16px;width:45px;height:45px}.autocomplete-wrapper-no-results-content{font-size:14px;line-height:1.5}.autocomplete-wrapper-default-no-results{text-align:center}.autocomplete-wrapper-default-no-results p:first-child{font-weight:500;margin-bottom:8px}.autocomplete-wrapper-footer{border-top:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;padding:12px 16px;display:flex;flex-direction:column;gap:12px}.autocomplete-wrapper-pagination-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}.autocomplete-wrapper-pagination-summary{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls-footer{display:flex;align-items:center;gap:8px}.autocomplete-wrapper-page-indicator{font-size:12px;color:#666;min-width:40px;text-align:center}.autocomplete-wrapper-footer-actions{display:flex;gap:8px;flex-wrap:wrap}.autocomplete-wrapper-footer-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;font-size:13px;text-transform:none;white-space:nowrap;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px 12px;transition:all .2s ease}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button{background-color:#4caf500a;border-color:#4caf50;color:#4caf50}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button:hover{background-color:#4caf5014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button{background-color:#ff98000a;border-color:#ff9800;color:#ff9800}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button:hover{background-color:#ff980014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button{background-color:#3f51b50a;border-color:#3f51b5;color:#3f51b5}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button:hover{background-color:#3f51b514}.autocomplete-wrapper-button-text{display:inline}.autocomplete-wrapper-items-list::-webkit-scrollbar{width:6px}.autocomplete-wrapper-items-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.autocomplete-wrapper-dropdown{min-width:280px;max-height:60vh}.autocomplete-wrapper-dropdown-content{max-height:60vh}.autocomplete-wrapper-input-field{font-size:16px}.autocomplete-wrapper-footer{padding:8px 12px}.autocomplete-wrapper-footer-actions{flex-direction:column;gap:6px}.autocomplete-wrapper-footer-button{width:100%;min-height:44px}.autocomplete-wrapper-pagination-footer{flex-direction:column;gap:8px}.autocomplete-wrapper-section-header{flex-direction:column;align-items:flex-start;min-height:80px;gap:8px}.autocomplete-wrapper-filter-controls{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-filter-select{min-width:100px;font-size:11px}.autocomplete-wrapper-filter-label{font-size:11px}.autocomplete-wrapper-pagination-header{width:100%;justify-content:space-between}.autocomplete-wrapper-pagination-header .autocomplete-wrapper-pagination-info{display:none}.autocomplete-wrapper-pagination-controls{gap:2px}.autocomplete-wrapper-page-input{width:40px}.autocomplete-wrapper-item-content{padding:16px 12px;min-height:52px}.autocomplete-wrapper-button-text{font-size:12px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:250px}}@media (max-width: 480px){.autocomplete-wrapper-dropdown{min-width:260px;max-height:50vh}.autocomplete-wrapper-section-header{padding:8px 12px 6px;min-height:70px;gap:6px}.autocomplete-wrapper-filter-controls{gap:8px}.autocomplete-wrapper-filter-group{gap:4px}.autocomplete-wrapper-filter-select{min-width:90px;padding:3px 6px}.autocomplete-wrapper-item-content{padding:14px 12px}.autocomplete-wrapper-pagination-header{gap:8px}.autocomplete-wrapper-pagination-button{min-width:28px;height:28px}.autocomplete-wrapper-page-input{width:35px;height:28px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:200px}.autocomplete-wrapper-footer-actions{gap:4px}.autocomplete-wrapper-footer-button{font-size:12px;padding:8px 12px;min-height:40px}.autocomplete-wrapper-button-text{display:none}}\\n\"], dependencies: [{ kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"directive\", type: i1.CdkConnectedOverlay, selector: \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", inputs: [\"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayPositionStrategy\", \"cdkConnectedOverlayOffsetX\", \"cdkConnectedOverlayOffsetY\", \"cdkConnectedOverlayWidth\", \"cdkConnectedOverlayHeight\", \"cdkConnectedOverlayMinWidth\", \"cdkConnectedOverlayMinHeight\", \"cdkConnectedOverlayBackdropClass\", \"cdkConnectedOverlayPanelClass\", \"cdkConnectedOverlayViewportMargin\", \"cdkConnectedOverlayScrollStrategy\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayDisableClose\", \"cdkConnectedOverlayTransformOriginOn\", \"cdkConnectedOverlayHasBackdrop\", \"cdkConnectedOverlayLockPosition\", \"cdkConnectedOverlayFlexibleDimensions\", \"cdkConnectedOverlayGrowAfterOpen\", \"cdkConnectedOverlayPush\", \"cdkConnectedOverlayDisposeOnNavigation\"], outputs: [\"backdropClick\", \"positionChange\", \"attach\", \"detach\", \"overlayKeydown\", \"overlayOutsideClick\"], exportAs: [\"cdkConnectedOverlay\"] }, { kind: \"directive\", type: i1.CdkOverlayOrigin, selector: \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", exportAs: [\"cdkOverlayOrigin\"] }, { kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i2.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.SelectControlValueAccessor, selector: \"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]\", inputs: [\"compareWith\"] }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ReusableAutocompleteComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-autocomplete-wrapper', imports: [\n MatIcon,\n NgTemplateOutlet,\n OverlayModule,\n MatProgressBarModule,\n MatProgressSpinner,\n FormsModule,\n MatIconButton,\n ], template: \"<div class=\\\"autocomplete-wrapper-wrapper\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <!-- Input Container -->\\n <div\\n class=\\\"autocomplete-wrapper-input-container\\\"\\n cdkOverlayOrigin\\n #overlayPosition=\\\"cdkOverlayOrigin\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-input-wrapper\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-search-icon\\\">search</mat-icon>\\n <input\\n #searchInput\\n type=\\\"text\\\"\\n class=\\\"autocomplete-wrapper-input-field\\\"\\n [placeholder]=\\\"config.placeholder\\\"\\n [(ngModel)]=\\\"query\\\"\\n (input)=\\\"onInput($event)\\\"\\n (click)=\\\"showOverlay()\\\"\\n (keydown)=\\\"onKeyDown($event)\\\"\\n [disabled]=\\\"config.disabled || false\\\"\\n autocomplete=\\\"off\\\"\\n />\\n @if (query && query.length > 0 && !isLoading()) {\\n <button\\n mat-icon-button\\n (click)=\\\"clearSearch()\\\"\\n type=\\\"button\\\"\\n class=\\\"autocomplete-wrapper-clear-button\\\"\\n >\\n <mat-icon>clear</mat-icon>\\n </button>\\n }\\n <button mat-icon-button type=\\\"button\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n </div>\\n\\n @if (isLoading()) {\\n <div class=\\\"autocomplete-wrapper-loading-spinner\\\">\\n <mat-spinner diameter=\\\"20\\\"></mat-spinner>\\n </div>\\n }\\n </div>\\n\\n <!-- Overlay -->\\n <ng-template\\n cdkConnectedOverlay\\n [cdkConnectedOverlayOrigin]=\\\"overlayPosition\\\"\\n [cdkConnectedOverlayOpen]=\\\"overlayOpen()\\\"\\n [cdkConnectedOverlayWidth]=\\\"overlayWidth()\\\"\\n [cdkConnectedOverlayHeight]=\\\"overlayMaxHeight()\\\"\\n (overlayOutsideClick)=\\\"hideOverlay()\\\"\\n (backdropClick)=\\\"hideOverlay()\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-dropdown\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <div class=\\\"autocomplete-wrapper-dropdown-content\\\">\\n <!-- History Section -->\\n @if (isHistoryVisible() && historyList().length > 0) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">B\\u00FAsquedas recientes</span>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n (click)=\\\"clearHistory()\\\"\\n class=\\\"autocomplete-wrapper-clear-history-button\\\"\\n >\\n <mat-icon>delete_outline</mat-icon>\\n </button>\\n </div>\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #historyListElement\\n >\\n @for (item of historyList(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-history-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <mat-icon class=\\\"autocomplete-wrapper-history-icon\\\">history</mat-icon>\\n <div class=\\\"autocomplete-wrapper-item-details\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n class=\\\"autocomplete-wrapper-remove-button\\\"\\n (click)=\\\"removeHistoryItem($index, $event)\\\"\\n >\\n <mat-icon>close</mat-icon>\\n </button>\\n </li>\\n }\\n </ul>\\n </div>\\n }\\n\\n <!-- Results Section -->\\n @if (!isHistoryVisible()) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <!-- Header with filters and pagination -->\\n @if (config.enableFilters || config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n\\n <!-- Filters -->\\n @if (config.enableFilters) {\\n <div class=\\\"autocomplete-wrapper-filter-controls\\\">\\n @if (config.searchFields && config.searchFields.length > 1) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Buscar por:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.searchBy\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (field of config.searchFields; track $index) {\\n <option [value]=\\\"field.value\\\">{{ field.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n\\n @if (config.enableStockFilter && config.stockOptions) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Stock:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.stockFilter\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (option of config.stockOptions; track $index) {\\n <option [value]=\\\"option.value\\\">{{ option.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Pagination Controls -->\\n @if (config.enablePagination && totalPages() > 1) {\\n <div class=\\\"autocomplete-wrapper-pagination-header\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-info\\\">\\n <span>P\\u00E1gina {{ currentPage() }} de {{ totalPages() }}</span>\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToFirstPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>first_page</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <input\\n type=\\\"number\\\"\\n class=\\\"autocomplete-wrapper-page-input\\\"\\n [value]=\\\"currentPage()\\\"\\n [min]=\\\"1\\\"\\n [max]=\\\"totalPages()\\\"\\n (change)=\\\"goToPage($event)\\\"\\n />\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToLastPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>last_page</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n </div>\\n }\\n\\n <!-- Items List -->\\n @if (totalItems()) {\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #resultsListElement\\n >\\n @for (item of currentPageItems(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-result-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-item-info\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n </li>\\n }\\n </ul>\\n }\\n </div>\\n }\\n\\n <!-- No Results -->\\n @if (!isLoading() && isNoResults()) {\\n <div class=\\\"autocomplete-wrapper-no-results\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-no-results-icon\\\">search_off</mat-icon>\\n <div class=\\\"autocomplete-wrapper-no-results-content\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n notFoundTemplate || defaultNotFoundTemplate;\\n context: { $implicit: noResultsText() }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n }\\n\\n <!-- Footer -->\\n @if (overlayOpen() && totalItems() > 0) {\\n <div class=\\\"autocomplete-wrapper-footer\\\">\\n @if (!isHistoryVisible() && totalItems() > 0 && config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-pagination-footer\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-summary\\\">\\n Mostrando {{ startItem() }}-{{ endItem() }} de {{ totalCount() }} resultados\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls-footer\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <span class=\\\"autocomplete-wrapper-page-indicator\\\"\\n >{{ currentPage() }} / {{ totalPages() }}</span\\n >\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n\\n @if (config.enableFooterActions) {\\n <div class=\\\"autocomplete-wrapper-footer-actions\\\">\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-create-button\\\"\\n (click)=\\\"onCreateNew($event)\\\"\\n >\\n <mat-icon>add</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Crear</span>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-search-button\\\"\\n (click)=\\\"onAdvancedSearch()\\\"\\n >\\n <mat-icon>tune</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Avanzada</span>\\n </button>\\n @if (!isHistoryVisible() && totalItems() > 0) {\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-results-button\\\"\\n (click)=\\\"onShowAllResults()\\\"\\n >\\n <mat-icon>list</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Todos</span>\\n </button>\\n }\\n </div>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n </ng-template>\\n\\n <!-- Default Templates -->\\n <ng-template #defaultItemTemplate let-item>\\n <div class=\\\"autocomplete-wrapper-default-item\\\">\\n <div class=\\\"autocomplete-wrapper-item-name\\\">{{ getItemDisplayText(item) }}</div>\\n @if (item.description && typeof item === 'object') {\\n <div class=\\\"autocomplete-wrapper-item-description\\\">{{ item.description }}</div>\\n }\\n </div>\\n </ng-template>\\n\\n <ng-template #defaultNotFoundTemplate let-text>\\n <div class=\\\"autocomplete-wrapper-default-no-results\\\">\\n <p>{{ text }}</p>\\n <p>Intenta con otros t\\u00E9rminos de b\\u00FAsqueda</p>\\n </div>\\n </ng-template>\\n</div>\\n\", styles: [\".autocomplete-wrapper{position:relative;width:100%;max-width:100%}.autocomplete-wrapper.autocomplete-wrapper-active .autocomplete-wrapper-input-wrapper{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-input-container{position:relative;width:100%}.autocomplete-wrapper-input-wrapper{position:relative;display:flex;align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:0 12px;transition:all .3s ease}.autocomplete-wrapper-input-wrapper:focus-within{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-search-icon{color:#666;margin-right:8px;font-size:20px}.autocomplete-wrapper-input-field{flex:1;border:none;outline:none;font-size:16px;padding:7px 0;background:transparent;color:#333}.autocomplete-wrapper-input-field::placeholder{color:#999}.autocomplete-wrapper-input-field:disabled{opacity:.6;cursor:not-allowed}.autocomplete-wrapper-clear-button{margin-left:8px;color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-loading-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.autocomplete-wrapper-dropdown{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;border:1px solid #e0e0e0;overflow:hidden;max-height:500px;min-width:300px;display:flex;flex-direction:column}.autocomplete-wrapper-dropdown.autocomplete-wrapper-active{animation:reusableAutocompleteSlideIn .2s ease-out}@keyframes reusableAutocompleteSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.autocomplete-wrapper-dropdown-content{display:flex;flex-direction:column;height:100%;max-height:500px}.autocomplete-wrapper-section{display:flex;flex-direction:column;height:100%;min-height:0}.autocomplete-wrapper-section-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 8px;border-bottom:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;min-height:56px;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-section-title{font-size:13px;font-weight:500;color:#666;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.autocomplete-wrapper-clear-history-button{color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-history-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-filter-controls{display:flex;align-items:center;gap:16px;flex:1;justify-content:center}.autocomplete-wrapper-filter-group{display:flex;align-items:center;gap:6px}.autocomplete-wrapper-filter-label{font-size:12px;color:#666;font-weight:500;white-space:nowrap}.autocomplete-wrapper-filter-select{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;background:#fff;color:#333;cursor:pointer;min-width:120px}.autocomplete-wrapper-filter-select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 1px #1976d233}.autocomplete-wrapper-filter-select:hover{border-color:#bbb}.autocomplete-wrapper-pagination-header{display:flex;align-items:center;gap:12px;margin-left:auto}.autocomplete-wrapper-pagination-info{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls{display:flex;align-items:center;gap:4px}.autocomplete-wrapper-pagination-button{min-width:32px;height:32px;line-height:32px;padding:0;color:#666;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.autocomplete-wrapper-pagination-button:hover:not(:disabled){background-color:#0000000a;color:#333}.autocomplete-wrapper-pagination-button:disabled{opacity:.5;cursor:not-allowed}.autocomplete-wrapper-pagination-button mat-icon{font-size:18px;width:18px;height:18px}.autocomplete-wrapper-page-input{width:50px;height:32px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:12px;padding:4px;margin:0 4px}.autocomplete-wrapper-page-input:focus{outline:none;border-color:#1976d2}.autocomplete-wrapper-items-list{list-style:none;margin:0;padding:0;flex:1;min-height:0}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{overflow-y:auto}.autocomplete-wrapper-list-item{display:flex;align-items:center;border-bottom:1px solid #f5f5f5;transition:background-color .2s ease}.autocomplete-wrapper-list-item:last-child{border-bottom:none}.autocomplete-wrapper-list-item:hover{background-color:#f8f9fa}.autocomplete-wrapper-item-content{flex:1;display:flex;align-items:center;padding:12px 16px;cursor:pointer;min-height:48px;transition:all .2s ease}.autocomplete-wrapper-item-content.autocomplete-wrapper-selected{background-color:#e3f2fd;color:#1976d2}.autocomplete-wrapper-history-item .autocomplete-wrapper-item-content{padding-left:12px}.autocomplete-wrapper-history-icon{color:#999;margin-right:12px;font-size:18px}.autocomplete-wrapper-item-details{flex:1;display:flex;align-items:center}.autocomplete-wrapper-remove-button{margin-right:8px}.autocomplete-wrapper-result-item{position:relative}.autocomplete-wrapper-item-info{flex:1;display:flex;align-items:center}.autocomplete-wrapper-default-item{flex:1}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-name{font-weight:500;font-size:14px;margin-bottom:2px;color:#333}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-description{font-size:12px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-wrapper-no-results{display:flex;flex-direction:column;align-items:center;padding:32px 16px;text-align:center;color:#666}.autocomplete-wrapper-no-results-icon{font-size:48px;color:#ccc;margin-bottom:16px;width:45px;height:45px}.autocomplete-wrapper-no-results-content{font-size:14px;line-height:1.5}.autocomplete-wrapper-default-no-results{text-align:center}.autocomplete-wrapper-default-no-results p:first-child{font-weight:500;margin-bottom:8px}.autocomplete-wrapper-footer{border-top:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;padding:12px 16px;display:flex;flex-direction:column;gap:12px}.autocomplete-wrapper-pagination-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}.autocomplete-wrapper-pagination-summary{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls-footer{display:flex;align-items:center;gap:8px}.autocomplete-wrapper-page-indicator{font-size:12px;color:#666;min-width:40px;text-align:center}.autocomplete-wrapper-footer-actions{display:flex;gap:8px;flex-wrap:wrap}.autocomplete-wrapper-footer-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;font-size:13px;text-transform:none;white-space:nowrap;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px 12px;transition:all .2s ease}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button{background-color:#4caf500a;border-color:#4caf50;color:#4caf50}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button:hover{background-color:#4caf5014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button{background-color:#ff98000a;border-color:#ff9800;color:#ff9800}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button:hover{background-color:#ff980014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button{background-color:#3f51b50a;border-color:#3f51b5;color:#3f51b5}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button:hover{background-color:#3f51b514}.autocomplete-wrapper-button-text{display:inline}.autocomplete-wrapper-items-list::-webkit-scrollbar{width:6px}.autocomplete-wrapper-items-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.autocomplete-wrapper-dropdown{min-width:280px;max-height:60vh}.autocomplete-wrapper-dropdown-content{max-height:60vh}.autocomplete-wrapper-input-field{font-size:16px}.autocomplete-wrapper-footer{padding:8px 12px}.autocomplete-wrapper-footer-actions{flex-direction:column;gap:6px}.autocomplete-wrapper-footer-button{width:100%;min-height:44px}.autocomplete-wrapper-pagination-footer{flex-direction:column;gap:8px}.autocomplete-wrapper-section-header{flex-direction:column;align-items:flex-start;min-height:80px;gap:8px}.autocomplete-wrapper-filter-controls{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-filter-select{min-width:100px;font-size:11px}.autocomplete-wrapper-filter-label{font-size:11px}.autocomplete-wrapper-pagination-header{width:100%;justify-content:space-between}.autocomplete-wrapper-pagination-header .autocomplete-wrapper-pagination-info{display:none}.autocomplete-wrapper-pagination-controls{gap:2px}.autocomplete-wrapper-page-input{width:40px}.autocomplete-wrapper-item-content{padding:16px 12px;min-height:52px}.autocomplete-wrapper-button-text{font-size:12px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:250px}}@media (max-width: 480px){.autocomplete-wrapper-dropdown{min-width:260px;max-height:50vh}.autocomplete-wrapper-section-header{padding:8px 12px 6px;min-height:70px;gap:6px}.autocomplete-wrapper-filter-controls{gap:8px}.autocomplete-wrapper-filter-group{gap:4px}.autocomplete-wrapper-filter-select{min-width:90px;padding:3px 6px}.autocomplete-wrapper-item-content{padding:14px 12px}.autocomplete-wrapper-pagination-header{gap:8px}.autocomplete-wrapper-pagination-button{min-width:28px;height:28px}.autocomplete-wrapper-page-input{width:35px;height:28px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:200px}.autocomplete-wrapper-footer-actions{gap:4px}.autocomplete-wrapper-footer-button{font-size:12px;padding:8px 12px;min-height:40px}.autocomplete-wrapper-button-text{display:none}}\\n\"] }]\n }], propDecorators: { dataSource: [{\n type: Input\n }], config: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }], searchFunction: [{\n type: Input\n }], notFoundTemplate: [{\n type: Input\n }], searchInput: [{\n type: ViewChild,\n args: ['searchInput']\n }], historyListElement: [{\n type: ViewChild,\n args: ['historyListElement']\n }], resultsListElement: [{\n type: ViewChild,\n args: ['resultsListElement']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXdyYXBwZXIvYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXdyYXBwZXIvYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFP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O3FCQUNkOzhCQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBY29CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDUyxrQkFBa0I7c0JBQWxELFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNFLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxuICBpbmplY3QsXG4gIG91dHB1dCxcbiAgaW5wdXQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgZGVib3VuY2VUaW1lLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBBVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyxcbiAgQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtLFxuICBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoRnVuY3Rpb24sXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJTdGF0ZSxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZVdyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLWF1dG9jb21wbGV0ZS13cmFwcGVyJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb24sXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uQnV0dG9uLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXVzYWJsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXSA9IFtdOyAvLyBQYXJhIGLDunNxdWVkYSBsb2NhbFxuICBASW5wdXQoKSBjb25maWc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSBBVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRztcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2VhcmNoRnVuY3Rpb24/OiBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoRnVuY3Rpb247XG5cbiAgQElucHV0KCkgbm90Rm91bmRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgb3ZlcmxheVdpZHRoID0gaW5wdXQoJ2F1dG8nKTtcbiAgb3ZlcmxheU1heEhlaWdodCA9IGlucHV0KCc0MDBweCcpO1xuXG4gIGl0ZW1TZWxlY3RlZCA9IG91dHB1dDxBdXRvY29tcGxldGVXcmFwcGVySXRlbT4oKTtcbiAgc2VhcmNoQ2hhbmdlZCA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHNlYXJjaFJlcXVlc3RlZCA9IG91dHB1dDx7IHF1ZXJ5OiBzdHJpbmc7IGZpbHRlcnM6IEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzOyBwYWdlOiBudW1iZXIgfT4oKTsgLy8gTnVldm8gZXZlbnRvXG4gIHBhZ2VDaGFuZ2VkID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgZmlsdGVyQ2hhbmdlZCA9IG91dHB1dDxBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycz4oKTtcbiAgYWR2YW5jZWRTZWFyY2hDbGlja2VkID0gb3V0cHV0PHZvaWQ+KCk7XG4gIGFsbFJlc3VsdHNDbGlja2VkID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgY3JlYXRlQ2xpY2tlZCA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBzZWFyY2hJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2hpc3RvcnlMaXN0RWxlbWVudCcpIGhpc3RvcnlMaXN0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3Jlc3VsdHNMaXN0RWxlbWVudCcpIHJlc3VsdHNMaXN0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XG5cbiAgLy8gU3RhdGVcbiAgcXVlcnkgPSAnJztcbiAgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgb3ZlcmxheU9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBzZWxlY3RlZEluZGV4ID0gc2lnbmFsKC0xKTtcbiAgY3VycmVudFBhZ2UgPSBzaWduYWwoMSk7XG4gIGZpbHRlcmVkSXRlbXMgPSBzaWduYWw8QXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXT4oW10pO1xuICBoaXN0b3J5TGlzdCA9IHNpZ25hbDxBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdPihbXSk7XG4gIHRvdGFsQ291bnQgPSBzaWduYWwoMCk7XG4gIC8vIEZpbHRlcnNcbiAgZmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMgPSB7XG4gICAgc2VhcmNoQnk6ICduYW1lJyxcbiAgICBzdG9ja0ZpbHRlcjogJ2FsbCcsXG4gIH07XG5cbiAgLy8gQ29tcHV0ZWQgcHJvcGVydGllc1xuICBpc0hpc3RvcnlWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5Lmxlbmd0aCA8ICh0aGlzLmNvbmZpZy5taW5TZWFyY2hMZW5ndGggfHwgMikgJiYgdGhpcy5oaXN0b3J5TGlzdCgpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHRvdGFsSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZpbHRlcmVkSXRlbXMoKS5sZW5ndGgpO1xuXG4gIHRvdGFsUGFnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnRvdGFsQ291bnQoKTtcbiAgICByZXR1cm4gdG90YWwgPiAwID8gTWF0aC5jZWlsKHRvdGFsIC8gKHRoaXMuY29uZmlnLml0ZW1zUGVyUGFnZSB8fCAxMCkpIDogMTtcbiAgfSk7XG5cbiAgY3VycmVudFBhZ2VJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAvLyBpZiAoIXRoaXMuY29uZmlnLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAvLyB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJdGVtcygpO1xuICAgIC8vIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UucGFnaW5hdGVJdGVtcyhcbiAgICAvLyAgIHRoaXMuZmlsdGVyZWRJdGVtcygpLFxuICAgIC8vICAgdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgIC8vICAgdGhpcy5jb25maWcuaXRlbXNQZXJQYWdlIHx8IDEwXG4gICAgLy8gKTtcbiAgfSk7XG5cbiAgc3RhcnRJdGVtID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b3RhbEl0ZW1zKCk7XG4gICAgaWYgKHRvdGFsID09PSAwKSByZXR1cm4gMDtcbiAgICByZXR1cm4gKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpICogKHRoaXMuY29uZmlnLml0ZW1zUGVyUGFnZSB8fCAxMCkgKyAxO1xuICB9KTtcblxuICBlbmRJdGVtID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b3RhbEl0ZW1zKCk7XG4gICAgY29uc3QgY2FsY3VsYXRlZCA9IHRoaXMuY3VycmVudFBhZ2UoKSAqICh0aGlzLmNvbmZpZy5pdGVtc1BlclBhZ2UgfHwgMTApO1xuICAgIHJldHVybiBNYXRoLm1pbihjYWxjdWxhdGVkLCB0b3RhbCk7XG4gIH0pO1xuXG4gIHNlY3Rpb25UaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxJdGVtcygpO1xuICAgIHJldHVybiBgUmVzdWx0YWRvcyAoJHt0b3RhbH0pYDtcbiAgfSk7XG5cbiAgaXNOb1Jlc3VsdHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG90YWxJdGVtcygpID09PSAwICYmXG4gICAgICAhdGhpcy5pc0xvYWRpbmcoKSAmJlxuICAgICAgdGhpcy5xdWVyeS5sZW5ndGggPj0gKHRoaXMuY29uZmlnLm1pblNlYXJjaExlbmd0aCB8fCAyKVxuICAgICk7XG4gIH0pO1xuXG4gIC8vIFByaXZhdGVcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHsgcXVlcnk6IHN0cmluZzsgZmlsdGVyczogYW55OyBwYWdlOiBudW1iZXIgfT4oKTtcbiAgcHJpdmF0ZSBhdXRvY29tcGxldGVTZXJ2aWNlID0gaW5qZWN0KEF1dG9jb21wbGV0ZVdyYXBwZXJTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1lcmdlRGVmYXVsdENvbmZpZygpO1xuICAgIHRoaXMuc2V0dXBTZWFyY2goKTtcbiAgICB0aGlzLmxvYWRIaXN0b3J5KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlRGVmYXVsdENvbmZpZygpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZS5tZXJnZUNvbmZpZyh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5maWx0ZXJzLnNlYXJjaEJ5ID0gdGhpcy5jb25maWcuc2VhcmNoRmllbGRzPy5bMF0/LnZhbHVlIHx8ICduYW1lJztcbiAgICB0aGlzLmZpbHRlcnMuc3RvY2tGaWx0ZXIgPSB0aGlzLmNvbmZpZy5zdG9ja09wdGlvbnM/LlswXT8udmFsdWUgfHwgJ2FsbCc7XG4gIH1cblxuICBwcml2YXRlIHNldHVwU2VhcmNoKCkge1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcy5zZXQoW10pO1xuICAgIHRoaXMuc2VhcmNoU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZy5kZWJvdW5jZVRpbWUgfHwgMzAwKSxcbiAgICAgICAgLy8gZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgLy8gIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIC8vICAgIGNvbnNvbGUubG9nKHByZXYpO1xuICAgICAgICAvLyAgICBjb25zb2xlLmxvZyhjdXJyKTtcbiAgICAgICAgLy8gICAgICByZXR1cm4gIHByZXYucXVlcnkgPT09IGN1cnIucXVlcnkgJiZcbiAgICAgICAgLy8gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZXYuZmlsdGVycykgPT09IEpTT04uc3RyaW5naWZ5KGN1cnIuZmlsdGVycykgJiZcbiAgICAgICAgLy8gICAgICAgIHByZXYucGFnZSA9PT0gY3Vyci5wYWdlXG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgLy8gICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgc3dpdGNoTWFwKCh7IHF1ZXJ5IH0pID0+IHRoaXMucGVyZm9ybVNlYXJjaChxdWVyeSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KHJlc3VsdC5pdGVtcyk7XG4gICAgICAgIHRoaXMudG90YWxDb3VudC5zZXQocmVzdWx0LnRvdGFsQ291bnQpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBlcmZvcm1TZWFyY2gocXVlcnk6IHN0cmluZyk6IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaFJlc3VsdD4ge1xuICAgIGlmIChxdWVyeS5sZW5ndGggPCAodGhpcy5jb25maWcubWluU2VhcmNoTGVuZ3RoIHx8IDIpKSB7XG4gICAgICByZXR1cm4gb2YoeyBpdGVtczogW10sIHRvdGFsQ291bnQ6IDAgfSk7XG4gICAgfVxuXG4gICAgLy8gRVNUUkFURUdJQSBBOiBGdW5jacOzbiBkZSBiw7pzcXVlZGEgcGVyc29uYWxpemFkYVxuICAgIGlmICh0aGlzLnNlYXJjaEZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hGdW5jdGlvbihcbiAgICAgICAgcXVlcnksXG4gICAgICAgIHRoaXMuZmlsdGVycyxcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgICAgICB0aGlzLmNvbmZpZy5pdGVtc1BlclBhZ2UgfHwgMTAsXG4gICAgICApLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZih7IGl0ZW1zOiBbXSwgdG90YWxDb3VudDogMCB9KSkpO1xuICAgIH1cblxuICAgIC8vIEVTVFJBVEVHSUEgQjogRW1pdCBldmVudG8gcGFyYSBxdWUgZWwgcGFkcmUgbWFuZWplXG4gICAgaWYgKHRoaXMuY29uZmlnLnNlYXJjaE1vZGUgPT09ICdyZW1vdGUnKSB7XG4gICAgICB0aGlzLnNlYXJjaFJlcXVlc3RlZC5lbWl0KHtcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVycyxcbiAgICAgICAgcGFnZTogdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gb2YoeyBpdGVtczogW10sIHRvdGFsQ291bnQ6IDAgfSk7IC8vIEVsIHBhZHJlIGFjdHVhbGl6YXLDoSBsb3MgZGF0b3NcbiAgICB9XG5cbiAgICAvLyBFU1RSQVRFR0lBIEM6IELDunNxdWVkYSBsb2NhbCAoZmFsbGJhY2spXG4gICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZS5zZWFyY2hMb2NhbCh0aGlzLmRhdGFTb3VyY2UsIHF1ZXJ5LCB0aGlzLmZpbHRlcnMsIHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEhpc3RvcnkoKSB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmhpc3RvcnkkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoaGlzdG9yeSA9PiB7XG4gICAgICB0aGlzLmhpc3RvcnlMaXN0LnNldChoaXN0b3J5KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdE5leHQoKSB7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQoe1xuICAgICAgcXVlcnk6IHRoaXMucXVlcnksXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsXG4gICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlKCksXG4gICAgfSk7XG4gIH1cblxuICAvLyBFdmVudCBIYW5kbGVyc1xuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMucXVlcnkgPSB0YXJnZXQudmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgtMSk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG5cbiAgICBpZiAodGhpcy5xdWVyeS5sZW5ndGggPj0gKHRoaXMuY29uZmlnLm1pblNlYXJjaExlbmd0aCB8fCAyKSkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0TmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KFtdKTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgIHRoaXMuc2VhcmNoQ2hhbmdlZC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgY3VycmVudExpc3QgPSB0aGlzLmlzSGlzdG9yeVZpc2libGUoKSA/IHRoaXMuaGlzdG9yeUxpc3QoKSA6IHRoaXMuY3VycmVudFBhZ2VJdGVtcygpO1xuICAgIGNvbnN0IG1heEluZGV4ID0gY3VycmVudExpc3QubGVuZ3RoIC0gMTtcblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAobWF4SW5kZXggPj0gMCkge1xuICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleCgpIDwgbWF4SW5kZXggPyB0aGlzLnNlbGVjdGVkSW5kZXgoKSArIDEgOiAwO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQobmV4dEluZGV4KTtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChtYXhJbmRleCA+PSAwKSB7XG4gICAgICAgICAgY29uc3QgcHJldkluZGV4ID0gdGhpcy5zZWxlY3RlZEluZGV4KCkgPiAwID8gdGhpcy5zZWxlY3RlZEluZGV4KCkgLSAxIDogbWF4SW5kZXg7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldChwcmV2SW5kZXgpO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXgoKSA+PSAwICYmIHRoaXMuc2VsZWN0ZWRJbmRleCgpIDw9IG1heEluZGV4KSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGN1cnJlbnRMaXN0W3RoaXMuc2VsZWN0ZWRJbmRleCgpXSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzSGlzdG9yeVZpc2libGUoKSAmJiB0aGlzLmNvbmZpZy5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5nb1RvTmV4dFBhZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzSGlzdG9yeVZpc2libGUoKSAmJiB0aGlzLmNvbmZpZy5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5nb1RvUHJldmlvdXNQYWdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25GaWx0ZXJDaGFuZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG4gICAgaWYgKHRoaXMucXVlcnkubGVuZ3RoID49ICh0aGlzLmNvbmZpZy5taW5TZWFyY2hMZW5ndGggfHwgMikpIHtcbiAgICAgIHRoaXMucGVyZm9ybVNlYXJjaCh0aGlzLnF1ZXJ5KTtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdE5leHQoKTtcbiAgICB9XG4gICAgLy8gdGhpcy5maWx0ZXJDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcMO6YmxpY28gcGFyYSBhY3R1YWxpemFyIHJlc3VsdGFkb3MgZGVzZGUgZWwgcGFkcmVcbiAgcHVibGljIHVwZGF0ZVNlYXJjaFJlc3VsdHMocmVzdWx0OiBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zLnNldChyZXN1bHQuaXRlbXMpO1xuICAgIHRoaXMudG90YWxDb3VudC5zZXQocmVzdWx0LnRvdGFsQ291bnQpO1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gIH1cblxuICAvLyBPdmVybGF5IE1ldGhvZHNcbiAgc2hvd092ZXJsYXkoKSB7XG4gICAgdGhpcy5vdmVybGF5T3Blbi5zZXQodHJ1ZSk7XG4gIH1cblxuICBoaWRlT3ZlcmxheSgpIHtcbiAgICB0aGlzLm92ZXJsYXlPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgtMSk7XG4gIH1cblxuICBpc1R5cGUoaXRlbTogYW55KTogaXRlbSBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICAvLyBTZWxlY3Rpb24gTWV0aG9kc1xuICBzZWxlY3RJdGVtKGl0ZW06IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNsZWFySW5wdXQpIHtcbiAgICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZ2V0SXRlbURpc3BsYXlUZXh0KGl0ZW0pO1xuICAgIH1cbiAgICB0aGlzLmhpZGVPdmVybGF5KCk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmFkZFRvSGlzdG9yeShpdGVtLCB0aGlzLmNvbmZpZy5tYXhIaXN0b3J5SXRlbXMpO1xuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoaXRlbSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCkge1xuICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KFtdKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KC0xKTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCgxKTtcbiAgICB0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIHRoaXMuc2VhcmNoQ2hhbmdlZC5lbWl0KCcnKTtcbiAgfVxuXG4gIC8vIEhpc3RvcnkgTWV0aG9kc1xuICByZW1vdmVIaXN0b3J5SXRlbShpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UucmVtb3ZlRnJvbUhpc3RvcnkoaW5kZXgpO1xuICB9XG5cbiAgY2xlYXJIaXN0b3J5KCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZS5jbGVhckhpc3RvcnkoKTtcbiAgfVxuXG4gIC8vIFBhZ2luYXRpb24gTWV0aG9kc1xuICBnb1RvUGFnZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQodGFyZ2V0LnZhbHVlKTtcbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmlzVmFsaWRQYWdlKHBhZ2UsIHRoaXMudG90YWxQYWdlcygpKSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQocGFnZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KC0xKTtcbiAgICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChwYWdlKTtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdE5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0LnZhbHVlID0gdGhpcy5jdXJyZW50UGFnZSgpLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub0ZpcnN0UGFnZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSgpICE9PSAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCgxKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQoLTEpO1xuICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KDEpO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0TmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIGdvVG9QcmV2aW91c1BhZ2UoKSB7XG4gICAgY29uc3QgcHJldlBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgLSAxO1xuICAgIGlmIChwcmV2UGFnZSA+PSAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnNldChwcmV2UGFnZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KC0xKTtcbiAgICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChwcmV2UGFnZSk7XG4gICAgICB0aGlzLnNlYXJjaFN1YmplY3ROZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub05leHRQYWdlKCkge1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpICsgMTtcbiAgICBpZiAobmV4dFBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzKCkpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KG5leHRQYWdlKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQoLTEpO1xuICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KG5leHRQYWdlKTtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdE5leHQoKTtcbiAgICB9XG4gIH1cblxuICBnb1RvTGFzdFBhZ2UoKSB7XG4gICAgY29uc3QgbGFzdFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXMoKTtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSgpICE9PSBsYXN0UGFnZSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQobGFzdFBhZ2UpO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgtMSk7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQobGFzdFBhZ2UpO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0TmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvb3RlciBBY3Rpb25zXG4gIG9uQ3JlYXRlTmV3KCRldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICB0aGlzLmNyZWF0ZUNsaWNrZWQuZW1pdCh0aGlzLnF1ZXJ5KTtcbiAgfVxuXG4gIG9uQWR2YW5jZWRTZWFyY2goKSB7XG4gICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hDbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2hvd0FsbFJlc3VsdHMoKSB7XG4gICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIHRoaXMuYWxsUmVzdWx0c0NsaWNrZWQuZW1pdCh0aGlzLnF1ZXJ5KTtcbiAgfVxuXG4gIC8vIFV0aWxpdHkgTWV0aG9kc1xuICBnZXRJdGVtRGlzcGxheVRleHQoaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UuZ2V0SXRlbURpc3BsYXlUZXh0KGl0ZW0pO1xuICB9XG5cbiAgbm9SZXN1bHRzVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgTm8gc2UgZW5jb250cmFyb24gcmVzdWx0YWRvcyBwYXJhIFwiJHt0aGlzLnF1ZXJ5fVwiYDtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9TZWxlY3RlZCgpIHtcbiAgICBjb25zdCBsaXN0RWxlbWVudCA9IHRoaXMuaXNIaXN0b3J5VmlzaWJsZSgpXG4gICAgICA/IHRoaXMuaGlzdG9yeUxpc3RFbGVtZW50Py5uYXRpdmVFbGVtZW50XG4gICAgICA6IHRoaXMucmVzdWx0c0xpc3RFbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGxpc3RFbGVtZW50KSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSBsaXN0RWxlbWVudC5jaGlsZHJlblt0aGlzLnNlbGVjdGVkSW5kZXgoKV0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50KSB7XG4gICAgICAgIHNlbGVjdGVkRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFB1YmxpYyBBUElcbiAgcHVibGljIGdldFN0YXRlKCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJTdGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHF1ZXJ5OiB0aGlzLnF1ZXJ5LFxuICAgICAgaXNMb2FkaW5nOiB0aGlzLmlzTG9hZGluZygpLFxuICAgICAgb3ZlcmxheU9wZW46IHRoaXMub3ZlcmxheU9wZW4oKSxcbiAgICAgIHNlbGVjdGVkSW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCgpLFxuICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgICAgICB0b3RhbFBhZ2VzOiB0aGlzLnRvdGFsUGFnZXMoKSxcbiAgICAgICAgdG90YWxJdGVtczogdGhpcy50b3RhbEl0ZW1zKCksXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5jb25maWcuaXRlbXNQZXJQYWdlIHx8IDEwLFxuICAgICAgICBzdGFydEl0ZW06IHRoaXMuc3RhcnRJdGVtKCksXG4gICAgICAgIGVuZEl0ZW06IHRoaXMuZW5kSXRlbSgpLFxuICAgICAgICBoYXNOZXh0UGFnZTogdGhpcy5jdXJyZW50UGFnZSgpIDwgdGhpcy50b3RhbFBhZ2VzKCksXG4gICAgICAgIGhhc1ByZXZpb3VzUGFnZTogdGhpcy5jdXJyZW50UGFnZSgpID4gMSxcbiAgICAgIH0sXG4gICAgICBoYXNSZXN1bHRzOiB0aGlzLnRvdGFsSXRlbXMoKSA+IDAsXG4gICAgICBpc0hpc3RvcnlWaXNpYmxlOiB0aGlzLmlzSGlzdG9yeVZpc2libGUoKSxcbiAgICAgIGhpc3RvcnlDb3VudDogdGhpcy5oaXN0b3J5TGlzdCgpLmxlbmd0aCxcbiAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVycyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldFF1ZXJ5KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG4gICAgaWYgKHF1ZXJ5Lmxlbmd0aCA+PSAodGhpcy5jb25maWcubWluU2VhcmNoTGVuZ3RoIHx8IDIpKSB7XG4gICAgICB0aGlzLnBlcmZvcm1TZWFyY2gocXVlcnkpO1xuICAgICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KFtdKTtcbiAgICAgIGlmIChxdWVyeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlYXJjaENoYW5nZWQuZW1pdChxdWVyeSk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXdyYXBwZXJcIiBbY2xhc3MuYXV0b2NvbXBsZXRlLXdyYXBwZXItYWN0aXZlXT1cIm92ZXJsYXlPcGVuKClcIj5cbiAgPCEtLSBJbnB1dCBDb250YWluZXIgLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWlucHV0LWNvbnRhaW5lclwiXG4gICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICNvdmVybGF5UG9zaXRpb249XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pbnB1dC13cmFwcGVyXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1zZWFyY2gtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI3NlYXJjaElucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pbnB1dC1maWVsZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInF1ZXJ5XCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChjbGljayk9XCJzaG93T3ZlcmxheSgpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIC8+XG4gICAgICBAaWYgKHF1ZXJ5ICYmIHF1ZXJ5Lmxlbmd0aCA+IDAgJiYgIWlzTG9hZGluZygpKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1jbGVhci1idXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItbG9hZGluZy1zcGlubmVyXCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjIwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPCEtLSBPdmVybGF5IC0tPlxuICA8bmctdGVtcGxhdGVcbiAgICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3ZlcmxheVBvc2l0aW9uXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3ZlcmxheU9wZW4oKVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJvdmVybGF5V2lkdGgoKVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIZWlnaHRdPVwib3ZlcmxheU1heEhlaWdodCgpXCJcbiAgICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJoaWRlT3ZlcmxheSgpXCJcbiAgICAoYmFja2Ryb3BDbGljayk9XCJoaWRlT3ZlcmxheSgpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1kcm9wZG93blwiIFtjbGFzcy5hdXRvY29tcGxldGUtd3JhcHBlci1hY3RpdmVdPVwib3ZlcmxheU9wZW4oKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWRyb3Bkb3duLWNvbnRlbnRcIj5cbiAgICAgICAgPCEtLSBIaXN0b3J5IFNlY3Rpb24gLS0+XG4gICAgICAgIEBpZiAoaXNIaXN0b3J5VmlzaWJsZSgpICYmIGhpc3RvcnlMaXN0KCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1zZWN0aW9uLXRpdGxlXCI+QsO6c3F1ZWRhcyByZWNpZW50ZXM8L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJIaXN0b3J5KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItY2xlYXItaGlzdG9yeS1idXR0b25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWl0ZW1zLWxpc3QgYXV0b2NvbXBsZXRlLXdyYXBwZXItc2Nyb2xsYWJsZS1saXN0XCJcbiAgICAgICAgICAgICAgI2hpc3RvcnlMaXN0RWxlbWVudFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGhpc3RvcnlMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWxpc3QtaXRlbSBhdXRvY29tcGxldGUtd3JhcHBlci1oaXN0b3J5LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pdGVtLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VsZWN0ZWRdPVwiJGluZGV4ID09PSBzZWxlY3RlZEluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWhpc3RvcnktaWNvblwiPmhpc3Rvcnk8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItaXRlbS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcmVtb3ZlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVIaXN0b3J5SXRlbSgkaW5kZXgsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gUmVzdWx0cyBTZWN0aW9uIC0tPlxuICAgICAgICBAaWYgKCFpc0hpc3RvcnlWaXNpYmxlKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgPCEtLSBIZWFkZXIgd2l0aCBmaWx0ZXJzIGFuZCBwYWdpbmF0aW9uIC0tPlxuICAgICAgICAgICAgQGlmIChjb25maWcuZW5hYmxlRmlsdGVycyB8fCBjb25maWcuZW5hYmxlUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXNlY3Rpb24tdGl0bGVcIj57eyBzZWN0aW9uVGl0bGUoKSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDwhLS0gRmlsdGVycyAtLT5cbiAgICAgICAgICAgICAgICBAaWYgKGNvbmZpZy5lbmFibGVGaWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLWNvbnRyb2xzXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoY29uZmlnLnNlYXJjaEZpZWxkcyAmJiBjb25maWcuc2VhcmNoRmllbGRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1maWx0ZXItbGFiZWxcIj5CdXNjYXIgcG9yOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5zZWFyY2hCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWx0ZXJDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGNvbmZpZy5zZWFyY2hGaWVsZHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCI+e3sgZmllbGQubGFiZWwgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbmZpZy5lbmFibGVTdG9ja0ZpbHRlciAmJiBjb25maWcuc3RvY2tPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWZpbHRlci1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLWxhYmVsXCI+U3RvY2s6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1maWx0ZXItc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnN0b2NrRmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGNvbmZpZy5zdG9ja09wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBQYWdpbmF0aW9uIENvbnRyb2xzIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoY29uZmlnLmVuYWJsZVBhZ2luYXRpb24gJiYgdG90YWxQYWdlcygpID4gMSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1wYWdpbmF0aW9uLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Qw6FnaW5hIHt7IGN1cnJlbnRQYWdlKCkgfX0gZGUge3sgdG90YWxQYWdlcygpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tY29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5maXJzdF9wYWdlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2UtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImN1cnJlbnRQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwidG90YWxQYWdlcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvTmV4dFBhZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gdG90YWxQYWdlcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1wYWdpbmF0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0xhc3RQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IHRvdGFsUGFnZXMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxhc3RfcGFnZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXNlY3Rpb24tdGl0bGVcIj57eyBzZWN0aW9uVGl0bGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gSXRlbXMgTGlzdCAtLT5cbiAgICAgICAgICAgIEBpZiAodG90YWxJdGVtcygpKSB7XG4gICAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItaXRlbXMtbGlzdCBhdXRvY29tcGxldGUtd3JhcHBlci1zY3JvbGxhYmxlLWxpc3RcIlxuICAgICAgICAgICAgICAgICNyZXN1bHRzTGlzdEVsZW1lbnRcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY3VycmVudFBhZ2VJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWxpc3QtaXRlbSBhdXRvY29tcGxldGUtd3JhcHBlci1yZXN1bHQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pdGVtLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hdXRvY29tcGxldGUtd3JhcHBlci1zZWxlY3RlZF09XCIkaW5kZXggPT09IHNlbGVjdGVkSW5kZXgoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWl0ZW0taW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBObyBSZXN1bHRzIC0tPlxuICAgICAgICBAaWYgKCFpc0xvYWRpbmcoKSAmJiBpc05vUmVzdWx0cygpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLW5vLXJlc3VsdHNcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLW5vLXJlc3VsdHMtaWNvblwiPnNlYXJjaF9vZmY8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLW5vLXJlc3VsdHMtY29udGVudFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgIG5vdEZvdW5kVGVtcGxhdGUgfHwgZGVmYXVsdE5vdEZvdW5kVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9SZXN1bHRzVGV4dCgpIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEZvb3RlciAtLT5cbiAgICAgICAgQGlmIChvdmVybGF5T3BlbigpICYmIHRvdGFsSXRlbXMoKSA+IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZm9vdGVyXCI+XG4gICAgICAgICAgICBAaWYgKCFpc0hpc3RvcnlWaXNpYmxlKCkgJiYgdG90YWxJdGVtcygpID4gMCAmJiBjb25maWcuZW5hYmxlUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1zdW1tYXJ5XCI+XG4gICAgICAgICAgICAgICAgICBNb3N0cmFuZG8ge3sgc3RhcnRJdGVtKCkgfX0te3sgZW5kSXRlbSgpIH19IGRlIHt7IHRvdGFsQ291bnQoKSB9fSByZXN1bHRhZG9zXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tY29udHJvbHMtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1wYWdlLWluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgICAgID57eyBjdXJyZW50UGFnZSgpIH19IC8ge3sgdG90YWxQYWdlcygpIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gdG90YWxQYWdlcygpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5lbmFibGVGb290ZXJBY3Rpb25zKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1mb290ZXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZm9vdGVyLWJ1dHRvbiBhdXRvY29tcGxldGUtd3JhcHBlci1jcmVhdGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNyZWF0ZU5ldygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItYnV0dG9uLXRleHRcIj5DcmVhcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWZvb3Rlci1idXR0b24gYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VhcmNoLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZHZhbmNlZFNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+dHVuZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWJ1dHRvbi10ZXh0XCI+QXZhbnphZGE8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgQGlmICghaXNIaXN0b3J5VmlzaWJsZSgpICYmIHRvdGFsSXRlbXMoKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1mb290ZXItYnV0dG9uIGF1dG9jb21wbGV0ZS13cmFwcGVyLXJlc3VsdHMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0FsbFJlc3VsdHMoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5saXN0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1idXR0b24tdGV4dFwiPlRvZG9zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBEZWZhdWx0IFRlbXBsYXRlcyAtLT5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlIGxldC1pdGVtPlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1kZWZhdWx0LWl0ZW1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pdGVtLW5hbWVcIj57eyBnZXRJdGVtRGlzcGxheVRleHQoaXRlbSkgfX08L2Rpdj5cbiAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbiAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWl0ZW0tZGVzY3JpcHRpb25cIj57eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Tm90Rm91bmRUZW1wbGF0ZSBsZXQtdGV4dD5cbiAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZGVmYXVsdC1uby1yZXN1bHRzXCI+XG4gICAgICA8cD57eyB0ZXh0IH19PC9wPlxuICAgICAgPHA+SW50ZW50YSBjb24gb3Ryb3MgdMOpcm1pbm9zIGRlIGLDunNxdWVkYTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19","import { Directive, ElementRef, HostListener, inject, Renderer2 } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class ToUpperCaseDirective {\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n onInput() {\n const value = this.el.nativeElement.value;\n this.el.nativeElement.value = value.toUpperCase();\n this.onChange(value.toUpperCase()); // Llamar a la función que actualiza el valor del modelo\n }\n // Funciones de ControlValueAccessor\n onChange = (_) => { };\n onTouched = () => { };\n writeValue(value) {\n if (value) {\n this.el.nativeElement.value = value.toUpperCase();\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ToUpperCaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.1\", type: ToUpperCaseDirective, isStandalone: true, selector: \"[acpToUpperCase]\", host: { listeners: { \"input\": \"onInput()\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: ToUpperCaseDirective,\n multi: true,\n },\n ], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ToUpperCaseDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[acpToUpperCase]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: ToUpperCaseDirective,\n multi: true,\n },\n ],\n }]\n }], propDecorators: { onInput: [{\n type: HostListener,\n args: ['input']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tdXBwZXItY2FzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy90by11cHBlci1jYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBWXpFLE1BQU0sT0FBTyxvQkFBb0I7SUFDdkIsRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWQsT0FBTztRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDMUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0RBQXdEO0lBQzlGLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsUUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVyQixVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt1R0ExQlUsb0JBQW9COzJGQUFwQixvQkFBb0IsOEdBUnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLG9CQUFvQjtnQkFDakMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGOzsyRkFFVSxvQkFBb0I7a0JBVmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsc0JBQXNCOzRCQUNqQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFLd0IsT0FBTztzQkFBN0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY3BUb1VwcGVyQ2FzZV0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBUb1VwcGVyQ2FzZURpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvVXBwZXJDYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnKSBvbklucHV0KCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZS50b1VwcGVyQ2FzZSgpKTsgLy8gTGxhbWFyIGEgbGEgZnVuY2nDs24gcXVlIGFjdHVhbGl6YSBlbCB2YWxvciBkZWwgbW9kZWxvXG4gIH1cblxuICAvLyBGdW5jaW9uZXMgZGUgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\n/*\n InjectionToken is a generic class provided by Angular for creating custom injection tokens.\n*/\nexport const DYNAMIC_INPUT = new InjectionToken('DYNAMIC_INPUT');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9pbnB1dHMvZHluYW1pYy1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOztFQUVFO0FBQ0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLypcbiAgSW5qZWN0aW9uVG9rZW4gaXMgYSBnZW5lcmljIGNsYXNzIHByb3ZpZGVkIGJ5IEFuZ3VsYXIgZm9yIGNyZWF0aW5nIGN1c3RvbSBpbmplY3Rpb24gdG9rZW5zLlxuKi9cbmV4cG9ydCBjb25zdCBEWU5BTUlDX0lOUFVUID0gbmV3IEluamVjdGlvblRva2VuKCdEWU5BTUlDX0lOUFVUJyk7XG4iXX0=","import { HttpContext, HttpContextToken, } from '@angular/common/http';\nimport { finalize } from 'rxjs/operators';\nimport { inject } from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport { OverlayService } from '../services';\nimport * as i0 from \"@angular/core\";\n/**\n * Token to determine if a request should show spinner\n * Default is true (show spinner for all requests)\n */\nconst SHOW_SPINNER = new HttpContextToken(() => true);\nconst requests = [];\n/**\n * Helper function to disable spinner for specific requests\n * @returns HttpContext with spinner disabled\n */\nexport function withoutSpinner() {\n return new HttpContext().set(SHOW_SPINNER, false);\n}\n/**\n * Service to track active HTTP requests\n */\nexport class ActiveRequestsTracker {\n get count() {\n return requests.length;\n }\n add(request) {\n requests.push(request);\n }\n remove(request) {\n const index = requests.indexOf(request);\n if (index >= 0) {\n requests.splice(index, 1);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ActiveRequestsTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ActiveRequestsTracker, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ActiveRequestsTracker, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n/**\n * Interceptor that shows/hides a loading spinner based on active HTTP requests\n */\nexport const spinnerInterceptor = (req, next) => {\n // Track active requests requiring spinner\n console.log(requests);\n const activeRequests = inject(ActiveRequestsTracker);\n const overlayService = inject(OverlayService);\n // Skip spinner if disabled for this request\n if (!req.context.get(SHOW_SPINNER)) {\n return next(req);\n }\n // Add request to tracking\n activeRequests.add(req);\n // Show spinner if this is the first active request\n if (activeRequests.count === 1) {\n overlayService.showSpinner();\n }\n return next(req).pipe(finalize(() => {\n // Remove request and hide spinner if no more active requests\n activeRequests.remove(req);\n if (activeRequests.count === 0) {\n overlayService.hideSpinner();\n }\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9pbnRlcmNlcHRvcnMvc3Bpbm5lci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGdCQUFnQixHQUdqQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFDN0M7OztHQUdHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUUvRCxNQUFNLFFBQVEsR0FBdUIsRUFBRSxDQUFDO0FBRXhDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjO0lBQzVCLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7R0FFRztBQUlILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBeUI7UUFDM0IsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXlCO1FBQzlCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQzt1R0FkVSxxQkFBcUI7MkdBQXJCLHFCQUFxQixjQUZwQixNQUFNOzsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQWtCRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNqRSwwQ0FBMEM7SUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNyRCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUMsNENBQTRDO0lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4QixtREFBbUQ7SUFDbkQsSUFBSSxjQUFjLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNuQixRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ1osNkRBQTZEO1FBQzdELGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxjQUFjLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBDb250ZXh0LFxuICBIdHRwQ29udGV4dFRva2VuLFxuICBIdHRwSW50ZXJjZXB0b3JGbixcbiAgSHR0cFJlcXVlc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuLyoqXG4gKiBUb2tlbiB0byBkZXRlcm1pbmUgaWYgYSByZXF1ZXN0IHNob3VsZCBzaG93IHNwaW5uZXJcbiAqIERlZmF1bHQgaXMgdHJ1ZSAoc2hvdyBzcGlubmVyIGZvciBhbGwgcmVxdWVzdHMpXG4gKi9cbmNvbnN0IFNIT1dfU1BJTk5FUiA9IG5ldyBIdHRwQ29udGV4dFRva2VuPGJvb2xlYW4+KCgpID0+IHRydWUpO1xuXG5jb25zdCByZXF1ZXN0czogSHR0cFJlcXVlc3Q8YW55PltdID0gW107XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRpc2FibGUgc3Bpbm5lciBmb3Igc3BlY2lmaWMgcmVxdWVzdHNcbiAqIEByZXR1cm5zIEh0dHBDb250ZXh0IHdpdGggc3Bpbm5lciBkaXNhYmxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dFNwaW5uZXIoKSB7XG4gIHJldHVybiBuZXcgSHR0cENvbnRleHQoKS5zZXQoU0hPV19TUElOTkVSLCBmYWxzZSk7XG59XG5cbi8qKlxuICogU2VydmljZSB0byB0cmFjayBhY3RpdmUgSFRUUCByZXF1ZXN0c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZlUmVxdWVzdHNUcmFja2VyIHtcbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHJlcXVlc3RzLmxlbmd0aDtcbiAgfVxuXG4gIGFkZChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogdm9pZCB7XG4gICAgcmVxdWVzdHMucHVzaChyZXF1ZXN0KTtcbiAgfVxuXG4gIHJlbW92ZShyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSByZXF1ZXN0cy5pbmRleE9mKHJlcXVlc3QpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICByZXF1ZXN0cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEludGVyY2VwdG9yIHRoYXQgc2hvd3MvaGlkZXMgYSBsb2FkaW5nIHNwaW5uZXIgYmFzZWQgb24gYWN0aXZlIEhUVFAgcmVxdWVzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IHNwaW5uZXJJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAocmVxLCBuZXh0KSA9PiB7XG4gIC8vIFRyYWNrIGFjdGl2ZSByZXF1ZXN0cyByZXF1aXJpbmcgc3Bpbm5lclxuICBjb25zb2xlLmxvZyhyZXF1ZXN0cyk7XG4gIGNvbnN0IGFjdGl2ZVJlcXVlc3RzID0gaW5qZWN0KEFjdGl2ZVJlcXVlc3RzVHJhY2tlcik7XG4gIGNvbnN0IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcblxuICAvLyBTa2lwIHNwaW5uZXIgaWYgZGlzYWJsZWQgZm9yIHRoaXMgcmVxdWVzdFxuICBpZiAoIXJlcS5jb250ZXh0LmdldChTSE9XX1NQSU5ORVIpKSB7XG4gICAgcmV0dXJuIG5leHQocmVxKTtcbiAgfVxuXG4gIC8vIEFkZCByZXF1ZXN0IHRvIHRyYWNraW5nXG4gIGFjdGl2ZVJlcXVlc3RzLmFkZChyZXEpO1xuXG4gIC8vIFNob3cgc3Bpbm5lciBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhY3RpdmUgcmVxdWVzdFxuICBpZiAoYWN0aXZlUmVxdWVzdHMuY291bnQgPT09IDEpIHtcbiAgICBvdmVybGF5U2VydmljZS5zaG93U3Bpbm5lcigpO1xuICB9XG5cbiAgcmV0dXJuIG5leHQocmVxKS5waXBlKFxuICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgIC8vIFJlbW92ZSByZXF1ZXN0IGFuZCBoaWRlIHNwaW5uZXIgaWYgbm8gbW9yZSBhY3RpdmUgcmVxdWVzdHNcbiAgICAgIGFjdGl2ZVJlcXVlc3RzLnJlbW92ZShyZXEpO1xuICAgICAgaWYgKGFjdGl2ZVJlcXVlc3RzLmNvdW50ID09PSAwKSB7XG4gICAgICAgIG92ZXJsYXlTZXJ2aWNlLmhpZGVTcGlubmVyKCk7XG4gICAgICB9XG4gICAgfSksXG4gICk7XG59O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9hY29udHBsdXMtbmctY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2","i3","Tabulator","i4","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acontplus-ng-components.mjs","sources":["../tmp-esm2022/lib/components/cards/mat-dynamic-card/mat-dynamic-card.component.js","../tmp-esm2022/lib/components/dialog-wrapper/dialog-wrapper.component.js","../tmp-esm2022/lib/components/icons/icon-user/icon-user.component.js","../tmp-esm2022/lib/components/icons/svg-icon/svg-icon.component.js","../tmp-esm2022/lib/components/mat-input-chip/mat-input-chip.component.js","../tmp-esm2022/lib/components/mat-theme-button/mat-theme-button.component.js","../tmp-esm2022/lib/components/spinner/spinner.component.js","../tmp-esm2022/lib/components/tables/custom-tabulator/custom-tabulator.component.js","../tmp-esm2022/lib/pipes/get-total.pipe.js","../tmp-esm2022/lib/pipes/status-display.pipe.js","../tmp-esm2022/lib/components/tables/mat-dynamic-table/mat-dynamic-table.component.js","../tmp-esm2022/lib/services/dialog/advanced-dialog.service.js","../tmp-esm2022/lib/services/overlay.service.js","../tmp-esm2022/lib/services/theme.service.js","../tmp-esm2022/lib/models/autocomplete-wrapper.model.js","../tmp-esm2022/lib/services/autocomplete-wrapper.service.js","../tmp-esm2022/lib/components/theme-toggle/theme-toggle.component.js","../tmp-esm2022/lib/models/mat-table-models/field-definition.model.js","../tmp-esm2022/lib/models/mat-table-models/column-definition.model.js","../tmp-esm2022/lib/models/mat-table-models/table-cell-index.model.js","../tmp-esm2022/lib/models/pagination.model.js","../tmp-esm2022/lib/components/autocomplete-wrapper/autocomplete-wrapper.component.js","../tmp-esm2022/lib/directives/to-upper-case.directive.js","../tmp-esm2022/lib/inputs/dynamic-input.js","../tmp-esm2022/lib/interceptors/spinner.interceptor.js","../tmp-esm2022/acontplus-ng-components.js"],"sourcesContent":["import { Component, input, output, booleanAttribute } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/card\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/icon\";\n/**\n * A versatile card component that wraps Angular Material's mat-card with additional functionality\n * and customization options. This component provides a consistent card layout with configurable\n * header, content, and action areas.\n *\n * @example\n * <acp-mat-dynamic-card\n * [cardTitle]=\"'Card Title'\"\n * [cardSubtitle]=\"'Card Subtitle'\"\n * [isHeaderVisible]=\"true\"\n * [areActionsVisible]=\"true\"\n * (primaryButtonClicked)=\"onPrimaryAction()\">\n * Card content goes here\n * </acp-mat-dynamic-card>\n */\nexport class MatDynamicCardComponent {\n // Header inputs\n /**\n * The title text to display in the card header.\n * @default null\n */\n cardTitle = input(null, ...(ngDevMode ? [{ debugName: \"cardTitle\" }] : []));\n /**\n * The subtitle text to display in the card header.\n * @default null\n */\n cardSubtitle = input(null, ...(ngDevMode ? [{ debugName: \"cardSubtitle\" }] : []));\n /**\n * URL for the avatar image to display in the card header.\n * @default null\n */\n avatarImageUrl = input(null, ...(ngDevMode ? [{ debugName: \"avatarImageUrl\" }] : []));\n /**\n * Whether to show the card header section.\n * @default false\n */\n isHeaderVisible = input(false, ...(ngDevMode ? [{ debugName: \"isHeaderVisible\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n // Content inputs\n /**\n * CSS padding value for the card content area.\n * @default '1rem'\n */\n contentPadding = input('1rem', ...(ngDevMode ? [{ debugName: \"contentPadding\" }] : []));\n /**\n * Whether to show a divider between the header and content sections.\n * @default false\n */\n hasDivider = input(false, ...(ngDevMode ? [{ debugName: \"hasDivider\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n // Action inputs\n /**\n * Whether to show the action buttons section.\n * @default false\n */\n areActionsVisible = input(false, ...(ngDevMode ? [{ debugName: \"areActionsVisible\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Text for the primary action button.\n * @default 'Confirm'\n */\n primaryButtonText = input('Confirm', ...(ngDevMode ? [{ debugName: \"primaryButtonText\" }] : []));\n /**\n * Text for the secondary action button.\n * @default 'Cancel'\n */\n secondaryButtonText = input('Cancel', ...(ngDevMode ? [{ debugName: \"secondaryButtonText\" }] : []));\n /**\n * Material icon name for the primary button.\n * @default null\n */\n primaryButtonIcon = input(null, ...(ngDevMode ? [{ debugName: \"primaryButtonIcon\" }] : []));\n /**\n * Material icon name for the secondary button.\n * @default null\n */\n secondaryButtonIcon = input(null, ...(ngDevMode ? [{ debugName: \"secondaryButtonIcon\" }] : []));\n /**\n * Alignment of the action buttons.\n * @default 'end'\n */\n buttonsPosition = input('end', ...(ngDevMode ? [{ debugName: \"buttonsPosition\" }] : []));\n // Output events\n /**\n * Event emitted when the primary button is clicked.\n */\n primaryButtonClicked = output();\n /**\n * Event emitted when the secondary button is clicked.\n */\n secondaryButtonClicked = output();\n /**\n * Event emitted when the card is clicked.\n */\n cardClicked = output();\n // Methods\n /**\n * Handles the primary button click event.\n * Stops event propagation and emits the primaryButtonClicked event.\n * @param event The click event\n */\n handlePrimaryButtonClick(event) {\n event.stopPropagation();\n this.primaryButtonClicked.emit();\n }\n /**\n * Handles the secondary button click event.\n * Stops event propagation and emits the secondaryButtonClicked event.\n * @param event The click event\n */\n handleSecondaryButtonClick(event) {\n event.stopPropagation();\n this.secondaryButtonClicked.emit();\n }\n /**\n * Handles the card click event.\n * Emits the cardClicked event with the original event.\n * @param event The click event\n */\n handleCardClick(event) {\n this.cardClicked.emit(event);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatDynamicCardComponent, isStandalone: true, selector: \"acp-mat-dynamic-card\", inputs: { cardTitle: { classPropertyName: \"cardTitle\", publicName: \"cardTitle\", isSignal: true, isRequired: false, transformFunction: null }, cardSubtitle: { classPropertyName: \"cardSubtitle\", publicName: \"cardSubtitle\", isSignal: true, isRequired: false, transformFunction: null }, avatarImageUrl: { classPropertyName: \"avatarImageUrl\", publicName: \"avatarImageUrl\", isSignal: true, isRequired: false, transformFunction: null }, isHeaderVisible: { classPropertyName: \"isHeaderVisible\", publicName: \"isHeaderVisible\", isSignal: true, isRequired: false, transformFunction: null }, contentPadding: { classPropertyName: \"contentPadding\", publicName: \"contentPadding\", isSignal: true, isRequired: false, transformFunction: null }, hasDivider: { classPropertyName: \"hasDivider\", publicName: \"hasDivider\", isSignal: true, isRequired: false, transformFunction: null }, areActionsVisible: { classPropertyName: \"areActionsVisible\", publicName: \"areActionsVisible\", isSignal: true, isRequired: false, transformFunction: null }, primaryButtonText: { classPropertyName: \"primaryButtonText\", publicName: \"primaryButtonText\", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonText: { classPropertyName: \"secondaryButtonText\", publicName: \"secondaryButtonText\", isSignal: true, isRequired: false, transformFunction: null }, primaryButtonIcon: { classPropertyName: \"primaryButtonIcon\", publicName: \"primaryButtonIcon\", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonIcon: { classPropertyName: \"secondaryButtonIcon\", publicName: \"secondaryButtonIcon\", isSignal: true, isRequired: false, transformFunction: null }, buttonsPosition: { classPropertyName: \"buttonsPosition\", publicName: \"buttonsPosition\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { primaryButtonClicked: \"primaryButtonClicked\", secondaryButtonClicked: \"secondaryButtonClicked\", cardClicked: \"cardClicked\" }, ngImport: i0, template: \"<mat-card\\n appearance=\\\"outlined\\\"\\n (click)=\\\"handleCardClick($event)\\\"\\n [class.mat-card-divider]=\\\"hasDivider()\\\"\\n>\\n @if (isHeaderVisible()) {\\n <mat-card-header>\\n @if (avatarImageUrl()) {\\n <img mat-card-avatar [src]=\\\"avatarImageUrl()\\\" alt=\\\"Card avatar\\\" />\\n }\\n @if (cardTitle()) {\\n <mat-card-title>{{ cardTitle() }}</mat-card-title>\\n }\\n @if (cardSubtitle()) {\\n <mat-card-subtitle>{{ cardSubtitle() }}</mat-card-subtitle>\\n }\\n </mat-card-header>\\n }\\n\\n <mat-card-content [style.padding]=\\\"contentPadding()\\\">\\n <ng-content></ng-content>\\n </mat-card-content>\\n\\n @if (areActionsVisible()) {\\n <mat-card-actions [align]=\\\"buttonsPosition()\\\">\\n @if (secondaryButtonText()) {\\n <button mat-button color=\\\"warn\\\" (click)=\\\"handleSecondaryButtonClick($event)\\\">\\n @if (secondaryButtonIcon()) {\\n <mat-icon>{{ secondaryButtonIcon() }}</mat-icon>\\n }\\n {{ secondaryButtonText() }}\\n </button>\\n }\\n\\n @if (primaryButtonText()) {\\n <button mat-button color=\\\"primary\\\" (click)=\\\"handlePrimaryButtonClick($event)\\\">\\n @if (primaryButtonIcon()) {\\n <mat-icon>{{ primaryButtonIcon() }}</mat-icon>\\n }\\n {{ primaryButtonText() }}\\n </button>\\n }\\n </mat-card-actions>\\n }\\n</mat-card>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatCardModule }, { kind: \"component\", type: i1.MatCard, selector: \"mat-card\", inputs: [\"appearance\"], exportAs: [\"matCard\"] }, { kind: \"directive\", type: i1.MatCardActions, selector: \"mat-card-actions\", inputs: [\"align\"], exportAs: [\"matCardActions\"] }, { kind: \"directive\", type: i1.MatCardAvatar, selector: \"[mat-card-avatar], [matCardAvatar]\" }, { kind: \"directive\", type: i1.MatCardContent, selector: \"mat-card-content\" }, { kind: \"component\", type: i1.MatCardHeader, selector: \"mat-card-header\" }, { kind: \"directive\", type: i1.MatCardSubtitle, selector: \"mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]\" }, { kind: \"directive\", type: i1.MatCardTitle, selector: \"mat-card-title, [mat-card-title], [matCardTitle]\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicCardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-dynamic-card', standalone: true, imports: [MatCardModule, MatButtonModule, MatIconModule], template: \"<mat-card\\n appearance=\\\"outlined\\\"\\n (click)=\\\"handleCardClick($event)\\\"\\n [class.mat-card-divider]=\\\"hasDivider()\\\"\\n>\\n @if (isHeaderVisible()) {\\n <mat-card-header>\\n @if (avatarImageUrl()) {\\n <img mat-card-avatar [src]=\\\"avatarImageUrl()\\\" alt=\\\"Card avatar\\\" />\\n }\\n @if (cardTitle()) {\\n <mat-card-title>{{ cardTitle() }}</mat-card-title>\\n }\\n @if (cardSubtitle()) {\\n <mat-card-subtitle>{{ cardSubtitle() }}</mat-card-subtitle>\\n }\\n </mat-card-header>\\n }\\n\\n <mat-card-content [style.padding]=\\\"contentPadding()\\\">\\n <ng-content></ng-content>\\n </mat-card-content>\\n\\n @if (areActionsVisible()) {\\n <mat-card-actions [align]=\\\"buttonsPosition()\\\">\\n @if (secondaryButtonText()) {\\n <button mat-button color=\\\"warn\\\" (click)=\\\"handleSecondaryButtonClick($event)\\\">\\n @if (secondaryButtonIcon()) {\\n <mat-icon>{{ secondaryButtonIcon() }}</mat-icon>\\n }\\n {{ secondaryButtonText() }}\\n </button>\\n }\\n\\n @if (primaryButtonText()) {\\n <button mat-button color=\\\"primary\\\" (click)=\\\"handlePrimaryButtonClick($event)\\\">\\n @if (primaryButtonIcon()) {\\n <mat-icon>{{ primaryButtonIcon() }}</mat-icon>\\n }\\n {{ primaryButtonText() }}\\n </button>\\n }\\n </mat-card-actions>\\n }\\n</mat-card>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWR5bmFtaWMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkcy9tYXQtZHluYW1pYy1jYXJkL21hdC1keW5hbWljLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2FyZHMvbWF0LWR5bmFtaWMtY2FyZC9tYXQtZHluYW1pYy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLGdCQUFnQjtJQUNoQjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxDQUFnQixJQUFJLHFEQUFDLENBQUM7SUFFdkM7OztPQUdHO0lBQ0gsWUFBWSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSx3REFBQyxDQUFDO0lBRTFDOzs7T0FHRztJQUNILGNBQWMsR0FBRyxLQUFLLENBQWdCLElBQUksMERBQUMsQ0FBQztJQUU1Qzs7O09BR0c7SUFDSCxlQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssbURBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7SUFFaEUsaUJBQWlCO0lBQ2pCOzs7T0FHRztJQUNILGNBQWMsR0FBRyxLQUFLLENBQVMsTUFBTSwwREFBQyxDQUFDO0lBRXZDOzs7T0FHRztJQUNILFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyw4Q0FBSSxTQUFTLEVBQUUsZ0JBQWdCLE9BQTdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEdBQUMsQ0FBQztJQUUzRCxnQkFBZ0I7SUFDaEI7OztPQUdHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLEtBQUsscURBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7SUFFbEU7OztPQUdHO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFNBQVMsNkRBQUMsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxtQkFBbUIsR0FBRyxLQUFLLENBQUMsUUFBUSwrREFBQyxDQUFDO0lBRXRDOzs7T0FHRztJQUNILGlCQUFpQixHQUFHLEtBQUssQ0FBZ0IsSUFBSSw2REFBQyxDQUFDO0lBRS9DOzs7T0FHRztJQUNILG1CQUFtQixHQUFHLEtBQUssQ0FBZ0IsSUFBSSwrREFBQyxDQUFDO0lBRWpEOzs7T0FHRztJQUNILGVBQWUsR0FBRyxLQUFLLENBQWtCLEtBQUssMkRBQUMsQ0FBQztJQUVoRCxnQkFBZ0I7SUFDaEI7O09BRUc7SUFDSCxvQkFBb0IsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV0Qzs7T0FFRztJQUNILHNCQUFzQixHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRXhDOztPQUVHO0lBQ0gsV0FBVyxHQUFHLE1BQU0sRUFBUyxDQUFDO0lBRTlCLFVBQVU7SUFDVjs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsS0FBWTtRQUNuQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsMEJBQTBCLENBQUMsS0FBWTtRQUNyQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZUFBZSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt1R0F4SFUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsdStEQzNCcEMsbTNDQTZDQSx5RER0QlksYUFBYSx3dUJBQUUsZUFBZSxtWEFBRSxhQUFhOzsyRkFJNUMsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuLyoqXG4gKiBBIHZlcnNhdGlsZSBjYXJkIGNvbXBvbmVudCB0aGF0IHdyYXBzIEFuZ3VsYXIgTWF0ZXJpYWwncyBtYXQtY2FyZCB3aXRoIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICogYW5kIGN1c3RvbWl6YXRpb24gb3B0aW9ucy4gVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSBjb25zaXN0ZW50IGNhcmQgbGF5b3V0IHdpdGggY29uZmlndXJhYmxlXG4gKiBoZWFkZXIsIGNvbnRlbnQsIGFuZCBhY3Rpb24gYXJlYXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDxhY3AtbWF0LWR5bmFtaWMtY2FyZFxuICogICBbY2FyZFRpdGxlXT1cIidDYXJkIFRpdGxlJ1wiXG4gKiAgIFtjYXJkU3VidGl0bGVdPVwiJ0NhcmQgU3VidGl0bGUnXCJcbiAqICAgW2lzSGVhZGVyVmlzaWJsZV09XCJ0cnVlXCJcbiAqICAgW2FyZUFjdGlvbnNWaXNpYmxlXT1cInRydWVcIlxuICogICAocHJpbWFyeUJ1dHRvbkNsaWNrZWQpPVwib25QcmltYXJ5QWN0aW9uKClcIj5cbiAqICAgQ2FyZCBjb250ZW50IGdvZXMgaGVyZVxuICogPC9hY3AtbWF0LWR5bmFtaWMtY2FyZD5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLW1hdC1keW5hbWljLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0Q2FyZE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdC1keW5hbWljLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbWF0LWR5bmFtaWMtY2FyZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE1hdER5bmFtaWNDYXJkQ29tcG9uZW50IHtcbiAgLy8gSGVhZGVyIGlucHV0c1xuICAvKipcbiAgICogVGhlIHRpdGxlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgY2FyZCBoZWFkZXIuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGNhcmRUaXRsZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBUaGUgc3VidGl0bGUgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBjYXJkIGhlYWRlci5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgY2FyZFN1YnRpdGxlID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFVSTCBmb3IgdGhlIGF2YXRhciBpbWFnZSB0byBkaXNwbGF5IGluIHRoZSBjYXJkIGhlYWRlci5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgYXZhdGFySW1hZ2VVcmwgPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBjYXJkIGhlYWRlciBzZWN0aW9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaXNIZWFkZXJWaXNpYmxlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8vIENvbnRlbnQgaW5wdXRzXG4gIC8qKlxuICAgKiBDU1MgcGFkZGluZyB2YWx1ZSBmb3IgdGhlIGNhcmQgY29udGVudCBhcmVhLlxuICAgKiBAZGVmYXVsdCAnMXJlbSdcbiAgICovXG4gIGNvbnRlbnRQYWRkaW5nID0gaW5wdXQ8c3RyaW5nPignMXJlbScpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSBkaXZpZGVyIGJldHdlZW4gdGhlIGhlYWRlciBhbmQgY29udGVudCBzZWN0aW9ucy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGhhc0RpdmlkZXIgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLy8gQWN0aW9uIGlucHV0c1xuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBhY3Rpb24gYnV0dG9ucyBzZWN0aW9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgYXJlQWN0aW9uc1Zpc2libGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIFRleHQgZm9yIHRoZSBwcmltYXJ5IGFjdGlvbiBidXR0b24uXG4gICAqIEBkZWZhdWx0ICdDb25maXJtJ1xuICAgKi9cbiAgcHJpbWFyeUJ1dHRvblRleHQgPSBpbnB1dCgnQ29uZmlybScpO1xuXG4gIC8qKlxuICAgKiBUZXh0IGZvciB0aGUgc2Vjb25kYXJ5IGFjdGlvbiBidXR0b24uXG4gICAqIEBkZWZhdWx0ICdDYW5jZWwnXG4gICAqL1xuICBzZWNvbmRhcnlCdXR0b25UZXh0ID0gaW5wdXQoJ0NhbmNlbCcpO1xuXG4gIC8qKlxuICAgKiBNYXRlcmlhbCBpY29uIG5hbWUgZm9yIHRoZSBwcmltYXJ5IGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgcHJpbWFyeUJ1dHRvbkljb24gPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogTWF0ZXJpYWwgaWNvbiBuYW1lIGZvciB0aGUgc2Vjb25kYXJ5IGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgc2Vjb25kYXJ5QnV0dG9uSWNvbiA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBBbGlnbm1lbnQgb2YgdGhlIGFjdGlvbiBidXR0b25zLlxuICAgKiBAZGVmYXVsdCAnZW5kJ1xuICAgKi9cbiAgYnV0dG9uc1Bvc2l0aW9uID0gaW5wdXQ8J3N0YXJ0JyB8ICdlbmQnPignZW5kJyk7XG5cbiAgLy8gT3V0cHV0IGV2ZW50c1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWNvbmRhcnkgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBzZWNvbmRhcnlCdXR0b25DbGlja2VkID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBpcyBjbGlja2VkLlxuICAgKi9cbiAgY2FyZENsaWNrZWQgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgLy8gTWV0aG9kc1xuICAvKipcbiAgICogSGFuZGxlcyB0aGUgcHJpbWFyeSBidXR0b24gY2xpY2sgZXZlbnQuXG4gICAqIFN0b3BzIGV2ZW50IHByb3BhZ2F0aW9uIGFuZCBlbWl0cyB0aGUgcHJpbWFyeUJ1dHRvbkNsaWNrZWQgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIGhhbmRsZVByaW1hcnlCdXR0b25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnByaW1hcnlCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBzZWNvbmRhcnkgYnV0dG9uIGNsaWNrIGV2ZW50LlxuICAgKiBTdG9wcyBldmVudCBwcm9wYWdhdGlvbiBhbmQgZW1pdHMgdGhlIHNlY29uZGFyeUJ1dHRvbkNsaWNrZWQgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIGhhbmRsZVNlY29uZGFyeUJ1dHRvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2Vjb25kYXJ5QnV0dG9uQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgY2FyZCBjbGljayBldmVudC5cbiAgICogRW1pdHMgdGhlIGNhcmRDbGlja2VkIGV2ZW50IHdpdGggdGhlIG9yaWdpbmFsIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBoYW5kbGVDYXJkQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkXG4gIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiXG4gIChjbGljayk9XCJoYW5kbGVDYXJkQ2xpY2soJGV2ZW50KVwiXG4gIFtjbGFzcy5tYXQtY2FyZC1kaXZpZGVyXT1cImhhc0RpdmlkZXIoKVwiXG4+XG4gIEBpZiAoaXNIZWFkZXJWaXNpYmxlKCkpIHtcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgQGlmIChhdmF0YXJJbWFnZVVybCgpKSB7XG4gICAgICAgIDxpbWcgbWF0LWNhcmQtYXZhdGFyIFtzcmNdPVwiYXZhdGFySW1hZ2VVcmwoKVwiIGFsdD1cIkNhcmQgYXZhdGFyXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY2FyZFRpdGxlKCkpIHtcbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPnt7IGNhcmRUaXRsZSgpIH19PC9tYXQtY2FyZC10aXRsZT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY2FyZFN1YnRpdGxlKCkpIHtcbiAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlPnt7IGNhcmRTdWJ0aXRsZSgpIH19PC9tYXQtY2FyZC1zdWJ0aXRsZT5cbiAgICAgIH1cbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgfVxuXG4gIDxtYXQtY2FyZC1jb250ZW50IFtzdHlsZS5wYWRkaW5nXT1cImNvbnRlbnRQYWRkaW5nKClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cblxuICBAaWYgKGFyZUFjdGlvbnNWaXNpYmxlKCkpIHtcbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBbYWxpZ25dPVwiYnV0dG9uc1Bvc2l0aW9uKClcIj5cbiAgICAgIEBpZiAoc2Vjb25kYXJ5QnV0dG9uVGV4dCgpKSB7XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwiaGFuZGxlU2Vjb25kYXJ5QnV0dG9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIEBpZiAoc2Vjb25kYXJ5QnV0dG9uSWNvbigpKSB7XG4gICAgICAgICAgICA8bWF0LWljb24+e3sgc2Vjb25kYXJ5QnV0dG9uSWNvbigpIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAge3sgc2Vjb25kYXJ5QnV0dG9uVGV4dCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByaW1hcnlCdXR0b25UZXh0KCkpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJoYW5kbGVQcmltYXJ5QnV0dG9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIEBpZiAocHJpbWFyeUJ1dHRvbkljb24oKSkge1xuICAgICAgICAgICAgPG1hdC1pY29uPnt7IHByaW1hcnlCdXR0b25JY29uKCkgfX08L21hdC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBwcmltYXJ5QnV0dG9uVGV4dCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgfVxuPC9tYXQtY2FyZD5cbiJdfQ==","import { Component, ViewChild, ViewContainerRef, ChangeDetectionStrategy, inject, } from '@angular/core';\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"@angular/material/icon\";\nimport * as i3 from \"@angular/material/button\";\n/**\n * A wrapper component for Angular Material dialogs that provides a consistent look and feel,\n * including a draggable header and the ability to dynamically create components inside the dialog.\n *\n * This component is typically used with the AdvancedDialogService's openInWrapper method.\n *\n * @example\n * // In your service or component:\n * this.dialogService.openInWrapper({\n * component: YourDialogContentComponent,\n * title: 'Dialog Title',\n * icon: 'info',\n * data: { message: 'This is some data passed to the dialog content component' }\n * });\n */\nexport class DialogWrapperComponent {\n dialogRef = inject(MatDialogRef);\n config = inject(MAT_DIALOG_DATA);\n /**\n * A template reference that acts as an anchor for dynamic content.\n * This is where the component specified in the config will be rendered.\n */\n contentHost;\n /**\n * A reference to the header element for the z-index focus logic.\n * Used to bring the dialog to the front when clicked.\n */\n header;\n /**\n * Static counter to track the highest z-index for multiple dialogs.\n * Ensures that the most recently clicked dialog appears on top.\n */\n static lastZIndex = 1000;\n /**\n * Creates an instance of DialogWrapperComponent.\n *\n * @param dialogRef Reference to the dialog opened via the Material Dialog service\n * @param config Configuration for the dialog wrapper, injected from MAT_DIALOG_DATA\n */\n constructor() { }\n /**\n * Lifecycle hook that initializes the dynamic content after the view is ready.\n * Creates the component specified in the config and passes data to it.\n */\n ngAfterViewInit() {\n // Dynamically create the content component after the view is ready.\n this.contentHost.clear();\n const componentRef = this.contentHost.createComponent(this.config.component);\n // Pass the provided data directly to the new component's instance.\n // This requires the content component to have an @Input() property named 'data'.\n if (this.config.data && componentRef.instance) {\n componentRef.instance.data = this.config.data;\n }\n }\n /**\n * Closes the dialog.\n * Called when the close button in the header is clicked.\n */\n onClose() {\n this.dialogRef.close();\n }\n /**\n * Brings the dialog to the front by adjusting its z-index.\n * Called when the dialog header is clicked.\n */\n bringToFront() {\n const pane = this.header?.nativeElement.closest('.cdk-overlay-pane');\n if (pane) {\n pane.style.zIndex = (++DialogWrapperComponent.lastZIndex).toString();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: DialogWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: DialogWrapperComponent, isStandalone: true, selector: \"acp-dialog-wrapper\", viewQueries: [{ propertyName: \"contentHost\", first: true, predicate: [\"contentHost\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"header\", first: true, predicate: [\"dialogHeader\"], descendants: true }], ngImport: i0, template: \"@if (!config.hideHeader) {\\n <div\\n class=\\\"dialog-header\\\"\\n cdkDrag\\n cdkDragRootElement=\\\".cdk-overlay-pane\\\"\\n cdkDragHandle\\n #dialogHeader\\n (mousedown)=\\\"bringToFront()\\\"\\n >\\n <h6 mat-dialog-title>\\n @if (config.icon) {\\n <mat-icon class=\\\"title-icon\\\" aria-hidden=\\\"true\\\">{{ config.icon }}</mat-icon>\\n }\\n <span>{{ config.title }}</span>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n class=\\\"close-button\\\"\\n (click)=\\\"onClose()\\\"\\n aria-label=\\\"Cerrar di\\u00E1logo\\\"\\n >\\n <mat-icon>close</mat-icon>\\n </button>\\n </h6>\\n </div>\\n}\\n\\n<ng-template #contentHost></ng-template>\\n\", styles: [\".dialog-header{cursor:move;padding:12px 24px;border-bottom:1px solid #dee2e6;color:#212529}h6[mat-dialog-title]{display:flex;align-items:center;font-size:1.2rem;font-weight:500;margin:0;width:100%}.title-icon{margin-right:12px;vertical-align:middle}h6[mat-dialog-title] span{flex-grow:1}.close-button{margin-left:auto}mat-dialog-content{padding:24px}\\n\"], dependencies: [{ kind: \"directive\", type: CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"directive\", type: CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: [\"cdkDragHandleDisabled\"] }, { kind: \"ngmodule\", type: MatDialogModule }, { kind: \"directive\", type: i1.MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: DialogWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-dialog-wrapper', standalone: true, imports: [CdkDrag, CdkDragHandle, MatDialogModule, MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"@if (!config.hideHeader) {\\n <div\\n class=\\\"dialog-header\\\"\\n cdkDrag\\n cdkDragRootElement=\\\".cdk-overlay-pane\\\"\\n cdkDragHandle\\n #dialogHeader\\n (mousedown)=\\\"bringToFront()\\\"\\n >\\n <h6 mat-dialog-title>\\n @if (config.icon) {\\n <mat-icon class=\\\"title-icon\\\" aria-hidden=\\\"true\\\">{{ config.icon }}</mat-icon>\\n }\\n <span>{{ config.title }}</span>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n class=\\\"close-button\\\"\\n (click)=\\\"onClose()\\\"\\n aria-label=\\\"Cerrar di\\u00E1logo\\\"\\n >\\n <mat-icon>close</mat-icon>\\n </button>\\n </h6>\\n </div>\\n}\\n\\n<ng-template #contentHost></ng-template>\\n\", styles: [\".dialog-header{cursor:move;padding:12px 24px;border-bottom:1px solid #dee2e6;color:#212529}h6[mat-dialog-title]{display:flex;align-items:center;font-size:1.2rem;font-weight:500;margin:0;width:100%}.title-icon{margin-right:12px;vertical-align:middle}h6[mat-dialog-title] span{flex-grow:1}.close-button{margin-left:auto}mat-dialog-content{padding:24px}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { contentHost: [{\n type: ViewChild,\n args: ['contentHost', { read: ViewContainerRef, static: true }]\n }], header: [{\n type: ViewChild,\n args: ['dialogHeader', { static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZ0JBQWdCLEVBR2hCLHVCQUF1QixFQUN2QixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUczRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBdUMsWUFBWSxDQUFDLENBQUM7SUFDdkUsTUFBTSxHQUFHLE1BQU0sQ0FBc0IsZUFBZSxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBRUgsV0FBVyxDQUFvQjtJQUUvQjs7O09BR0c7SUFDMkMsTUFBTSxDQUFjO0lBRWxFOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBS2pDOzs7OztPQUtHO0lBQ0gsZ0JBQWUsQ0FBQztJQUVoQjs7O09BR0c7SUFDSCxlQUFlO1FBQ2Isb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RSxtRUFBbUU7UUFDbkUsaUZBQWlGO1FBQ2pGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLFlBQVksQ0FBQyxRQUFnQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFnQixDQUFDO1FBQ3BGLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7dUdBbkVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHFLQVFDLGdCQUFnQixvSUMvQ3BELDJyQkE0QkEsMFpETVksT0FBTyx3Y0FBRSxhQUFhLDhGQUFFLGVBQWUsOEtBQUUsYUFBYSxtTEFBRSxlQUFlOzsyRkFLdEUsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLG1CQUdqRSx1QkFBdUIsQ0FBQyxNQUFNO3dEQVcvQyxXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBT3BCLE1BQU07c0JBQW5ELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0hhbmRsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRGlhbG9nV3JhcHBlckNvbmZpZyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgY29tcG9uZW50IGZvciBBbmd1bGFyIE1hdGVyaWFsIGRpYWxvZ3MgdGhhdCBwcm92aWRlcyBhIGNvbnNpc3RlbnQgbG9vayBhbmQgZmVlbCxcbiAqIGluY2x1ZGluZyBhIGRyYWdnYWJsZSBoZWFkZXIgYW5kIHRoZSBhYmlsaXR5IHRvIGR5bmFtaWNhbGx5IGNyZWF0ZSBjb21wb25lbnRzIGluc2lkZSB0aGUgZGlhbG9nLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGlzIHR5cGljYWxseSB1c2VkIHdpdGggdGhlIEFkdmFuY2VkRGlhbG9nU2VydmljZSdzIG9wZW5JbldyYXBwZXIgbWV0aG9kLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJbiB5b3VyIHNlcnZpY2Ugb3IgY29tcG9uZW50OlxuICogdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5JbldyYXBwZXIoe1xuICogICBjb21wb25lbnQ6IFlvdXJEaWFsb2dDb250ZW50Q29tcG9uZW50LFxuICogICB0aXRsZTogJ0RpYWxvZyBUaXRsZScsXG4gKiAgIGljb246ICdpbmZvJyxcbiAqICAgZGF0YTogeyBtZXNzYWdlOiAnVGhpcyBpcyBzb21lIGRhdGEgcGFzc2VkIHRvIHRoZSBkaWFsb2cgY29udGVudCBjb21wb25lbnQnIH1cbiAqIH0pO1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3AtZGlhbG9nLXdyYXBwZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2RrRHJhZywgQ2RrRHJhZ0hhbmRsZSwgTWF0RGlhbG9nTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBkaWFsb2dSZWYgPSBpbmplY3Q8TWF0RGlhbG9nUmVmPERpYWxvZ1dyYXBwZXJDb21wb25lbnQ+PihNYXREaWFsb2dSZWYpO1xuICBjb25maWcgPSBpbmplY3Q8RGlhbG9nV3JhcHBlckNvbmZpZz4oTUFUX0RJQUxPR19EQVRBKTtcblxuICAvKipcbiAgICogQSB0ZW1wbGF0ZSByZWZlcmVuY2UgdGhhdCBhY3RzIGFzIGFuIGFuY2hvciBmb3IgZHluYW1pYyBjb250ZW50LlxuICAgKiBUaGlzIGlzIHdoZXJlIHRoZSBjb21wb25lbnQgc3BlY2lmaWVkIGluIHRoZSBjb25maWcgd2lsbCBiZSByZW5kZXJlZC5cbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRIb3N0JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgY29udGVudEhvc3QhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgaGVhZGVyIGVsZW1lbnQgZm9yIHRoZSB6LWluZGV4IGZvY3VzIGxvZ2ljLlxuICAgKiBVc2VkIHRvIGJyaW5nIHRoZSBkaWFsb2cgdG8gdGhlIGZyb250IHdoZW4gY2xpY2tlZC5cbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ0hlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBoZWFkZXI/OiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBTdGF0aWMgY291bnRlciB0byB0cmFjayB0aGUgaGlnaGVzdCB6LWluZGV4IGZvciBtdWx0aXBsZSBkaWFsb2dzLlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIG1vc3QgcmVjZW50bHkgY2xpY2tlZCBkaWFsb2cgYXBwZWFycyBvbiB0b3AuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBsYXN0WkluZGV4ID0gMTAwMDtcblxuICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IHVua25vd25bXSk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nV3JhcHBlckNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGRpYWxvZ1JlZiBSZWZlcmVuY2UgdG8gdGhlIGRpYWxvZyBvcGVuZWQgdmlhIHRoZSBNYXRlcmlhbCBEaWFsb2cgc2VydmljZVxuICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkaWFsb2cgd3JhcHBlciwgaW5qZWN0ZWQgZnJvbSBNQVRfRElBTE9HX0RBVEFcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdGhhdCBpbml0aWFsaXplcyB0aGUgZHluYW1pYyBjb250ZW50IGFmdGVyIHRoZSB2aWV3IGlzIHJlYWR5LlxuICAgKiBDcmVhdGVzIHRoZSBjb21wb25lbnQgc3BlY2lmaWVkIGluIHRoZSBjb25maWcgYW5kIHBhc3NlcyBkYXRhIHRvIGl0LlxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIER5bmFtaWNhbGx5IGNyZWF0ZSB0aGUgY29udGVudCBjb21wb25lbnQgYWZ0ZXIgdGhlIHZpZXcgaXMgcmVhZHkuXG4gICAgdGhpcy5jb250ZW50SG9zdC5jbGVhcigpO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29udGVudEhvc3QuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29uZmlnLmNvbXBvbmVudCk7XG5cbiAgICAvLyBQYXNzIHRoZSBwcm92aWRlZCBkYXRhIGRpcmVjdGx5IHRvIHRoZSBuZXcgY29tcG9uZW50J3MgaW5zdGFuY2UuXG4gICAgLy8gVGhpcyByZXF1aXJlcyB0aGUgY29udGVudCBjb21wb25lbnQgdG8gaGF2ZSBhbiBASW5wdXQoKSBwcm9wZXJ0eSBuYW1lZCAnZGF0YScuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGEgJiYgY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XG4gICAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSkuZGF0YSA9IHRoaXMuY29uZmlnLmRhdGE7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZGlhbG9nLlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIgaXMgY2xpY2tlZC5cbiAgICovXG4gIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmluZ3MgdGhlIGRpYWxvZyB0byB0aGUgZnJvbnQgYnkgYWRqdXN0aW5nIGl0cyB6LWluZGV4LlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZGlhbG9nIGhlYWRlciBpcyBjbGlja2VkLlxuICAgKi9cbiAgYnJpbmdUb0Zyb250KCk6IHZvaWQge1xuICAgIGNvbnN0IHBhbmUgPSB0aGlzLmhlYWRlcj8ubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuY2RrLW92ZXJsYXktcGFuZScpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmIChwYW5lKSB7XG4gICAgICBwYW5lLnN0eWxlLnpJbmRleCA9ICgrK0RpYWxvZ1dyYXBwZXJDb21wb25lbnQubGFzdFpJbmRleCkudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoIWNvbmZpZy5oaWRlSGVhZGVyKSB7XG4gIDxkaXZcbiAgICBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIlxuICAgIGNka0RyYWdcbiAgICBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuY2RrLW92ZXJsYXktcGFuZVwiXG4gICAgY2RrRHJhZ0hhbmRsZVxuICAgICNkaWFsb2dIZWFkZXJcbiAgICAobW91c2Vkb3duKT1cImJyaW5nVG9Gcm9udCgpXCJcbiAgPlxuICAgIDxoNiBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgQGlmIChjb25maWcuaWNvbikge1xuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ0aXRsZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3sgY29uZmlnLmljb24gfX08L21hdC1pY29uPlxuICAgICAgfVxuICAgICAgPHNwYW4+e3sgY29uZmlnLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDZXJyYXIgZGnDoWxvZ29cIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9oNj5cbiAgPC9kaXY+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudEhvc3Q+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class IconUserComponent {\n size = input('35', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: IconUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.1\", type: IconUserComponent, isStandalone: true, selector: \"acp-icon-user\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<svg\\n [attr.width]=\\\"size()\\\"\\n [attr.height]=\\\"size()\\\"\\n version=\\\"1.1\\\"\\n id=\\\"Capa_1\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n viewBox=\\\"0 0 480 480\\\"\\n xml:space=\\\"preserve\\\"\\n fill=\\\"#000000\\\"\\n>\\n <g id=\\\"SVGRepo_bgCarrier\\\" stroke-width=\\\"0\\\"></g>\\n <g id=\\\"SVGRepo_tracerCarrier\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"></g>\\n <g id=\\\"SVGRepo_iconCarrier\\\">\\n <g>\\n <g>\\n <circle style=\\\"fill: #b8bac0\\\" cx=\\\"240\\\" cy=\\\"240\\\" r=\\\"240\\\"></circle>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M240,360.07c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611 c2.02,1.235,3.588,3.262,3.894,5.784c3.992,32.484,34.781,56.977,71.625,56.977c36.836,0,67.625-24.496,71.625-56.977 c0.31-2.525,1.844-4.549,3.895-5.78c-3.08-12.233-3.503-28.999-3.517-40.615C293.297,348.079,267.944,360.07,240,360.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #d7dbe0\\\"\\n d=\\\"M310.44,330.174c-18.549,18.477-43.242,29.896-70.44,29.896 c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611c2.02,1.235,3.588,3.262,3.894,5.784 c1.765,14.359,8.778,27.144,19.223,36.954C235.766,405.265,290.437,357.702,310.44,330.174z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M312,160.07H176c-22.055,0-40,17.945-40,40v48c0,61.758,46.656,112,104,112s104-50.242,104-112 v-56C344,174.426,329.648,160.07,312,160.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M296,72.07H192c-15.047,0-27.695,10.438-31.102,24.449C133.359,100.02,112,123.598,112,152.07v40 c0,20.617,8.752,39.851,24,53.52v-45.52c0-22.055,17.945-40,40-40h136c17.648,0,32,14.355,32,32v53.511 c15.251-13.667,24-32.899,24-53.511v-48C368,104.371,335.703,72.07,296,72.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M61.632,400.544C105.562,449.319,169.191,480,240,480s134.438-30.681,178.368-79.456 c-7.66-10.356-18.462-18.77-32.352-22.659c-0.32-0.09-0.641-0.16-0.969-0.207l-63.859-9.582c-0.391-0.059-1.227-0.09-1.625-0.09 c-4.039,0-7.445,3.012-7.938,7.023c-4,32.48-34.789,56.977-71.625,56.977c-36.844,0-67.633-24.492-71.625-56.977 c-0.5-4.129-4.219-7.234-8.141-7.02c-0.469-0.027-0.93,0.012-1.422,0.086l-63.859,9.582c-0.328,0.047-0.648,0.117-0.969,0.207 C80.094,381.775,69.292,390.188,61.632,400.544z\\\"\\n ></path>\\n </g>\\n </g>\\n </g>\\n</svg>\\n\", styles: [\"\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: IconUserComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-icon-user', imports: [], template: \"<svg\\n [attr.width]=\\\"size()\\\"\\n [attr.height]=\\\"size()\\\"\\n version=\\\"1.1\\\"\\n id=\\\"Capa_1\\\"\\n xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n viewBox=\\\"0 0 480 480\\\"\\n xml:space=\\\"preserve\\\"\\n fill=\\\"#000000\\\"\\n>\\n <g id=\\\"SVGRepo_bgCarrier\\\" stroke-width=\\\"0\\\"></g>\\n <g id=\\\"SVGRepo_tracerCarrier\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"></g>\\n <g id=\\\"SVGRepo_iconCarrier\\\">\\n <g>\\n <g>\\n <circle style=\\\"fill: #b8bac0\\\" cx=\\\"240\\\" cy=\\\"240\\\" r=\\\"240\\\"></circle>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M240,360.07c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611 c2.02,1.235,3.588,3.262,3.894,5.784c3.992,32.484,34.781,56.977,71.625,56.977c36.836,0,67.625-24.496,71.625-56.977 c0.31-2.525,1.844-4.549,3.895-5.78c-3.08-12.233-3.503-28.999-3.517-40.615C293.297,348.079,267.944,360.07,240,360.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #d7dbe0\\\"\\n d=\\\"M310.44,330.174c-18.549,18.477-43.242,29.896-70.44,29.896 c-27.944,0-53.297-11.991-72.003-31.372c-0.014,11.615-0.436,28.379-3.516,40.611c2.02,1.235,3.588,3.262,3.894,5.784 c1.765,14.359,8.778,27.144,19.223,36.954C235.766,405.265,290.437,357.702,310.44,330.174z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #ffffff\\\"\\n d=\\\"M312,160.07H176c-22.055,0-40,17.945-40,40v48c0,61.758,46.656,112,104,112s104-50.242,104-112 v-56C344,174.426,329.648,160.07,312,160.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M296,72.07H192c-15.047,0-27.695,10.438-31.102,24.449C133.359,100.02,112,123.598,112,152.07v40 c0,20.617,8.752,39.851,24,53.52v-45.52c0-22.055,17.945-40,40-40h136c17.648,0,32,14.355,32,32v53.511 c15.251-13.667,24-32.899,24-53.511v-48C368,104.371,335.703,72.07,296,72.07z\\\"\\n ></path>\\n </g>\\n </g>\\n <g>\\n <path\\n style=\\\"fill: #5c546a\\\"\\n d=\\\"M61.632,400.544C105.562,449.319,169.191,480,240,480s134.438-30.681,178.368-79.456 c-7.66-10.356-18.462-18.77-32.352-22.659c-0.32-0.09-0.641-0.16-0.969-0.207l-63.859-9.582c-0.391-0.059-1.227-0.09-1.625-0.09 c-4.039,0-7.445,3.012-7.938,7.023c-4,32.48-34.789,56.977-71.625,56.977c-36.844,0-67.633-24.492-71.625-56.977 c-0.5-4.129-4.219-7.234-8.141-7.02c-0.469-0.027-0.93,0.012-1.422,0.086l-63.859,9.582c-0.328,0.047-0.648,0.117-0.969,0.207 C80.094,381.775,69.292,390.188,61.632,400.544z\\\"\\n ></path>\\n </g>\\n </g>\\n </g>\\n</svg>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb25zL2ljb24tdXNlci9pY29uLXVzZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaWNvbnMvaWNvbi11c2VyL2ljb24tdXNlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRakQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksZ0RBQUMsQ0FBQzt1R0FEUixpQkFBaUI7MkZBQWpCLGlCQUFpQiwwTUNSOUIsZ3JGQTJEQTs7MkZEbkRhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxlQUFlLFdBQ2hCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1pY29uLXVzZXInLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdXNlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pY29uLXVzZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uVXNlckNvbXBvbmVudCB7XG4gIHNpemUgPSBpbnB1dCgnMzUnKTtcbn1cbiIsIjxzdmdcbiAgW2F0dHIud2lkdGhdPVwic2l6ZSgpXCJcbiAgW2F0dHIuaGVpZ2h0XT1cInNpemUoKVwiXG4gIHZlcnNpb249XCIxLjFcIlxuICBpZD1cIkNhcGFfMVwiXG4gIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICB2aWV3Qm94PVwiMCAwIDQ4MCA0ODBcIlxuICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiXG4gIGZpbGw9XCIjMDAwMDAwXCJcbj5cbiAgPGcgaWQ9XCJTVkdSZXBvX2JnQ2FycmllclwiIHN0cm9rZS13aWR0aD1cIjBcIj48L2c+XG4gIDxnIGlkPVwiU1ZHUmVwb190cmFjZXJDYXJyaWVyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9nPlxuICA8ZyBpZD1cIlNWR1JlcG9faWNvbkNhcnJpZXJcIj5cbiAgICA8Zz5cbiAgICAgIDxnPlxuICAgICAgICA8Y2lyY2xlIHN0eWxlPVwiZmlsbDogI2I4YmFjMFwiIGN4PVwiMjQwXCIgY3k9XCIyNDBcIiByPVwiMjQwXCI+PC9jaXJjbGU+XG4gICAgICA8L2c+XG4gICAgICA8Zz5cbiAgICAgICAgPGc+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0eWxlPVwiZmlsbDogI2ZmZmZmZlwiXG4gICAgICAgICAgICBkPVwiTTI0MCwzNjAuMDdjLTI3Ljk0NCwwLTUzLjI5Ny0xMS45OTEtNzIuMDAzLTMxLjM3MmMtMC4wMTQsMTEuNjE1LTAuNDM2LDI4LjM3OS0zLjUxNiw0MC42MTEgYzIuMDIsMS4yMzUsMy41ODgsMy4yNjIsMy44OTQsNS43ODRjMy45OTIsMzIuNDg0LDM0Ljc4MSw1Ni45NzcsNzEuNjI1LDU2Ljk3N2MzNi44MzYsMCw2Ny42MjUtMjQuNDk2LDcxLjYyNS01Ni45NzcgYzAuMzEtMi41MjUsMS44NDQtNC41NDksMy44OTUtNS43OGMtMy4wOC0xMi4yMzMtMy41MDMtMjguOTk5LTMuNTE3LTQwLjYxNUMyOTMuMjk3LDM0OC4wNzksMjY3Ljk0NCwzNjAuMDcsMjQwLDM2MC4wN3pcIlxuICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvZz5cbiAgICAgIDxnPlxuICAgICAgICA8Zz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3R5bGU9XCJmaWxsOiAjZDdkYmUwXCJcbiAgICAgICAgICAgIGQ9XCJNMzEwLjQ0LDMzMC4xNzRjLTE4LjU0OSwxOC40NzctNDMuMjQyLDI5Ljg5Ni03MC40NCwyOS44OTYgYy0yNy45NDQsMC01My4yOTctMTEuOTkxLTcyLjAwMy0zMS4zNzJjLTAuMDE0LDExLjYxNS0wLjQzNiwyOC4zNzktMy41MTYsNDAuNjExYzIuMDIsMS4yMzUsMy41ODgsMy4yNjIsMy44OTQsNS43ODQgYzEuNzY1LDE0LjM1OSw4Ljc3OCwyNy4xNDQsMTkuMjIzLDM2Ljk1NEMyMzUuNzY2LDQwNS4yNjUsMjkwLjQzNywzNTcuNzAyLDMxMC40NCwzMzAuMTc0elwiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgICAgPGc+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICNmZmZmZmZcIlxuICAgICAgICAgICAgZD1cIk0zMTIsMTYwLjA3SDE3NmMtMjIuMDU1LDAtNDAsMTcuOTQ1LTQwLDQwdjQ4YzAsNjEuNzU4LDQ2LjY1NiwxMTIsMTA0LDExMnMxMDQtNTAuMjQyLDEwNC0xMTIgdi01NkMzNDQsMTc0LjQyNiwzMjkuNjQ4LDE2MC4wNywzMTIsMTYwLjA3elwiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgICAgPGc+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHlsZT1cImZpbGw6ICM1YzU0NmFcIlxuICAgICAgICAgICAgZD1cIk0yOTYsNzIuMDdIMTkyYy0xNS4wNDcsMC0yNy42OTUsMTAuNDM4LTMxLjEwMiwyNC40NDlDMTMzLjM1OSwxMDAuMDIsMTEyLDEyMy41OTgsMTEyLDE1Mi4wN3Y0MCBjMCwyMC42MTcsOC43NTIsMzkuODUxLDI0LDUzLjUydi00NS41MmMwLTIyLjA1NSwxNy45NDUtNDAsNDAtNDBoMTM2YzE3LjY0OCwwLDMyLDE0LjM1NSwzMiwzMnY1My41MTEgYzE1LjI1MS0xMy42NjcsMjQtMzIuODk5LDI0LTUzLjUxMXYtNDhDMzY4LDEwNC4zNzEsMzM1LjcwMyw3Mi4wNywyOTYsNzIuMDd6XCJcbiAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgICA8Zz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBzdHlsZT1cImZpbGw6ICM1YzU0NmFcIlxuICAgICAgICAgIGQ9XCJNNjEuNjMyLDQwMC41NDRDMTA1LjU2Miw0NDkuMzE5LDE2OS4xOTEsNDgwLDI0MCw0ODBzMTM0LjQzOC0zMC42ODEsMTc4LjM2OC03OS40NTYgYy03LjY2LTEwLjM1Ni0xOC40NjItMTguNzctMzIuMzUyLTIyLjY1OWMtMC4zMi0wLjA5LTAuNjQxLTAuMTYtMC45NjktMC4yMDdsLTYzLjg1OS05LjU4MmMtMC4zOTEtMC4wNTktMS4yMjctMC4wOS0xLjYyNS0wLjA5IGMtNC4wMzksMC03LjQ0NSwzLjAxMi03LjkzOCw3LjAyM2MtNCwzMi40OC0zNC43ODksNTYuOTc3LTcxLjYyNSw1Ni45NzdjLTM2Ljg0NCwwLTY3LjYzMy0yNC40OTItNzEuNjI1LTU2Ljk3NyBjLTAuNS00LjEyOS00LjIxOS03LjIzNC04LjE0MS03LjAyYy0wLjQ2OS0wLjAyNy0wLjkzLDAuMDEyLTEuNDIyLDAuMDg2bC02My44NTksOS41ODJjLTAuMzI4LDAuMDQ3LTAuNjQ4LDAuMTE3LTAuOTY5LDAuMjA3IEM4MC4wOTQsMzgxLjc3NSw2OS4yOTIsMzkwLjE4OCw2MS42MzIsNDAwLjU0NHpcIlxuICAgICAgICA+PC9wYXRoPlxuICAgICAgPC9nPlxuICAgIDwvZz5cbiAgPC9nPlxuPC9zdmc+XG4iXX0=","import { Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SvgIconComponent {\n id = input('', ...(ngDevMode ? [{ debugName: \"id\" }] : []));\n width = input('40px', ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n height = input('40px', ...(ngDevMode ? [{ debugName: \"height\" }] : []));\n color = input('#414141', ...(ngDevMode ? [{ debugName: \"color\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SvgIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.1\", type: SvgIconComponent, isStandalone: true, selector: \"acp-svg-icon\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: \"height\", publicName: \"height\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<svg [attr.width]=\\\"width()\\\" [attr.height]=\\\"height()\\\" [style.color]=\\\"color()\\\">\\n <use [attr.xlink:href]=\\\"'./svg-sprite.svg#' + id()\\\"></use>\\n</svg>\\n\", styles: [\"\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SvgIconComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-svg-icon', imports: [], template: \"<svg [attr.width]=\\\"width()\\\" [attr.height]=\\\"height()\\\" [style.color]=\\\"color()\\\">\\n <use [attr.xlink:href]=\\\"'./svg-sprite.svg#' + id()\\\"></use>\\n</svg>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaWNvbnMvc3ZnLWljb24vc3ZnLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaWNvbnMvc3ZnLWljb24vc3ZnLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUWpELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLDhDQUFDLENBQUM7SUFDZixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0saURBQUMsQ0FBQztJQUN0QixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sa0RBQUMsQ0FBQztJQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsaURBQUMsQ0FBQzt1R0FKZCxnQkFBZ0I7MkZBQWhCLGdCQUFnQiw4aUJDUjdCLCtKQUdBOzsyRkRLYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsY0FBYyxXQUNmLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1zdmctaWNvbicsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3ZnLWljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3ZnLWljb24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTdmdJY29uQ29tcG9uZW50IHtcbiAgaWQgPSBpbnB1dCgnJyk7XG4gIHdpZHRoID0gaW5wdXQoJzQwcHgnKTtcbiAgaGVpZ2h0ID0gaW5wdXQoJzQwcHgnKTtcbiAgY29sb3IgPSBpbnB1dCgnIzQxNDE0MScpO1xufVxuIiwiPHN2ZyBbYXR0ci53aWR0aF09XCJ3aWR0aCgpXCIgW2F0dHIuaGVpZ2h0XT1cImhlaWdodCgpXCIgW3N0eWxlLmNvbG9yXT1cImNvbG9yKClcIj5cbiAgPHVzZSBbYXR0ci54bGluazpocmVmXT1cIicuL3N2Zy1zcHJpdGUuc3ZnIycgKyBpZCgpXCI+PC91c2U+XG48L3N2Zz5cbiJdfQ==","import { Component, inject, input } from '@angular/core';\nimport { MatChipGrid, MatChipInput, MatChipRow, } from '@angular/material/chips';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatLabel } from '@angular/material/form-field';\nimport { MatHint } from '@angular/material/form-field';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport * as i0 from \"@angular/core\";\nexport class MatInputChipComponent {\n chips = input.required(...(ngDevMode ? [{ debugName: \"chips\" }] : []));\n labelText = input.required(...(ngDevMode ? [{ debugName: \"labelText\" }] : []));\n placelholder = input('', ...(ngDevMode ? [{ debugName: \"placelholder\" }] : []));\n addOnBlur = true;\n separatorKeysCodes = [ENTER, COMMA];\n announcer = inject(LiveAnnouncer);\n add(event) {\n const value = (event.value || '').trim();\n // Add our fruit\n if (value) {\n this.chips().push(value);\n }\n // Clear the input value\n event.chipInput.clear();\n }\n remove(value) {\n const index = this.chips().indexOf(value);\n if (index >= 0) {\n this.chips().splice(index, 1);\n this.announcer.announce(`Removed ${value}`);\n }\n }\n edit(inputRaw, event) {\n const value = event.value.trim();\n // Remove fruit if it no longer has a name\n if (!value) {\n this.remove(inputRaw);\n return;\n }\n // Edit existing fruit\n const index = this.chips().indexOf(inputRaw);\n if (index >= 0) {\n this.chips()[index] = value.replace(/\\s+/g, '');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatInputChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatInputChipComponent, isStandalone: true, selector: \"acp-mat-input-chip\", inputs: { chips: { classPropertyName: \"chips\", publicName: \"chips\", isSignal: true, isRequired: true, transformFunction: null }, labelText: { classPropertyName: \"labelText\", publicName: \"labelText\", isSignal: true, isRequired: true, transformFunction: null }, placelholder: { classPropertyName: \"placelholder\", publicName: \"placelholder\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<mat-form-field class=\\\"w-100\\\" appearance=\\\"outline\\\">\\n <mat-label>{{ labelText() }}</mat-label>\\n <mat-chip-grid #chipGrid aria-label=\\\"Enter fruits\\\">\\n @for (chip of chips(); track $index) {\\n <mat-chip-row\\n (removed)=\\\"remove(chip)\\\"\\n [editable]=\\\"true\\\"\\n (edited)=\\\"edit(chip, $event)\\\"\\n [aria-description]=\\\"'press enter to edit ' + chip\\\"\\n >\\n {{ chip }}\\n <button matChipRemove [attr.aria-label]=\\\"'remove ' + chip\\\">\\n <mat-icon>cancel</mat-icon>\\n </button>\\n </mat-chip-row>\\n }\\n <input\\n [placeholder]=\\\"placelholder()\\\"\\n [matChipInputFor]=\\\"chipGrid\\\"\\n [matChipInputSeparatorKeyCodes]=\\\"separatorKeysCodes\\\"\\n [matChipInputAddOnBlur]=\\\"addOnBlur\\\"\\n (matChipInputTokenEnd)=\\\"add($event)\\\"\\n />\\n </mat-chip-grid>\\n <mat-hint align=\\\"start\\\"\\n ><strong>Ingrese {{ labelText() }} y dale \\\"Enter\\\"</strong>\\n </mat-hint>\\n</mat-form-field>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: MatLabel, selector: \"mat-label\" }, { kind: \"component\", type: MatChipRow, selector: \"mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]\", inputs: [\"editable\"], outputs: [\"edited\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: MatHint, selector: \"mat-hint\", inputs: [\"align\", \"id\"] }, { kind: \"component\", type: MatChipGrid, selector: \"mat-chip-grid\", inputs: [\"disabled\", \"placeholder\", \"required\", \"value\", \"errorStateMatcher\"], outputs: [\"change\", \"valueChange\"] }, { kind: \"directive\", type: MatChipInput, selector: \"input[matChipInputFor]\", inputs: [\"matChipInputFor\", \"matChipInputAddOnBlur\", \"matChipInputSeparatorKeyCodes\", \"placeholder\", \"id\", \"disabled\", \"readonly\", \"matChipInputDisabledInteractive\"], outputs: [\"matChipInputTokenEnd\"], exportAs: [\"matChipInput\", \"matChipInputFor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatInputChipComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-input-chip', imports: [MatFormField, MatLabel, MatChipRow, MatIcon, MatHint, MatChipGrid, MatChipInput], template: \"<mat-form-field class=\\\"w-100\\\" appearance=\\\"outline\\\">\\n <mat-label>{{ labelText() }}</mat-label>\\n <mat-chip-grid #chipGrid aria-label=\\\"Enter fruits\\\">\\n @for (chip of chips(); track $index) {\\n <mat-chip-row\\n (removed)=\\\"remove(chip)\\\"\\n [editable]=\\\"true\\\"\\n (edited)=\\\"edit(chip, $event)\\\"\\n [aria-description]=\\\"'press enter to edit ' + chip\\\"\\n >\\n {{ chip }}\\n <button matChipRemove [attr.aria-label]=\\\"'remove ' + chip\\\">\\n <mat-icon>cancel</mat-icon>\\n </button>\\n </mat-chip-row>\\n }\\n <input\\n [placeholder]=\\\"placelholder()\\\"\\n [matChipInputFor]=\\\"chipGrid\\\"\\n [matChipInputSeparatorKeyCodes]=\\\"separatorKeysCodes\\\"\\n [matChipInputAddOnBlur]=\\\"addOnBlur\\\"\\n (matChipInputTokenEnd)=\\\"add($event)\\\"\\n />\\n </mat-chip-grid>\\n <mat-hint align=\\\"start\\\"\\n ><strong>Ingrese {{ labelText() }} y dale \\\"Enter\\\"</strong>\\n </mat-hint>\\n</mat-form-field>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWlucHV0LWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWF0LWlucHV0LWNoaXAvbWF0LWlucHV0LWNoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWF0LWlucHV0LWNoaXAvbWF0LWlucHV0LWNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFFTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLFVBQVUsR0FDWCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFRckQsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsZ0RBQVksQ0FBQztJQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsb0RBQVUsQ0FBQztJQUNyQyxZQUFZLEdBQUcsS0FBSyxDQUFTLEVBQUUsd0RBQUMsQ0FBQztJQUNqQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ1Isa0JBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7SUFFdEQsU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsQyxHQUFHLENBQUMsS0FBd0I7UUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpDLGdCQUFnQjtRQUNoQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLEtBQUssQ0FBQyxTQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsUUFBZ0IsRUFBRSxLQUF5QjtRQUM5QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpDLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsc0JBQXNCO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7dUdBN0NVLHFCQUFxQjsyRkFBckIscUJBQXFCLGllQ3JCbEMscTlCQTRCQSwwRERYWSxZQUFZLDRMQUFFLFFBQVEsc0RBQUUsVUFBVSw4SkFBRSxPQUFPLDJJQUFFLE9BQU8sOEVBQUUsV0FBVyw2S0FBRSxZQUFZOzsyRkFJOUUscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLG9CQUFvQixXQUNyQixDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWF0Q2hpcEVkaXRlZEV2ZW50LFxuICBNYXRDaGlwR3JpZCxcbiAgTWF0Q2hpcElucHV0LFxuICBNYXRDaGlwSW5wdXRFdmVudCxcbiAgTWF0Q2hpcFJvdyxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SGludCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1tYXQtaW5wdXQtY2hpcCcsXG4gIGltcG9ydHM6IFtNYXRGb3JtRmllbGQsIE1hdExhYmVsLCBNYXRDaGlwUm93LCBNYXRJY29uLCBNYXRIaW50LCBNYXRDaGlwR3JpZCwgTWF0Q2hpcElucHV0XSxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdC1pbnB1dC1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21hdC1pbnB1dC1jaGlwLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0SW5wdXRDaGlwQ29tcG9uZW50IHtcbiAgY2hpcHMgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmdbXT4oKTtcbiAgbGFiZWxUZXh0ID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBwbGFjZWxob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgYWRkT25CbHVyID0gdHJ1ZTtcbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzID0gW0VOVEVSLCBDT01NQV0gYXMgY29uc3Q7XG5cbiAgYW5ub3VuY2VyID0gaW5qZWN0KExpdmVBbm5vdW5jZXIpO1xuXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgLy8gQWRkIG91ciBmcnVpdFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jaGlwcygpLnB1c2godmFsdWUpO1xuICAgIH1cblxuICAgIC8vIENsZWFyIHRoZSBpbnB1dCB2YWx1ZVxuICAgIGV2ZW50LmNoaXBJbnB1dCEuY2xlYXIoKTtcbiAgfVxuXG4gIHJlbW92ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBzKCkuaW5kZXhPZih2YWx1ZSk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5jaGlwcygpLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIHRoaXMuYW5ub3VuY2VyLmFubm91bmNlKGBSZW1vdmVkICR7dmFsdWV9YCk7XG4gICAgfVxuICB9XG5cbiAgZWRpdChpbnB1dFJhdzogc3RyaW5nLCBldmVudDogTWF0Q2hpcEVkaXRlZEV2ZW50KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZS50cmltKCk7XG5cbiAgICAvLyBSZW1vdmUgZnJ1aXQgaWYgaXQgbm8gbG9uZ2VyIGhhcyBhIG5hbWVcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnJlbW92ZShpbnB1dFJhdyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRWRpdCBleGlzdGluZyBmcnVpdFxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlwcygpLmluZGV4T2YoaW5wdXRSYXcpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLmNoaXBzKClbaW5kZXhdID0gdmFsdWUucmVwbGFjZSgvXFxzKy9nLCAnJyk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWw+e3sgbGFiZWxUZXh0KCkgfX08L21hdC1sYWJlbD5cbiAgPG1hdC1jaGlwLWdyaWQgI2NoaXBHcmlkIGFyaWEtbGFiZWw9XCJFbnRlciBmcnVpdHNcIj5cbiAgICBAZm9yIChjaGlwIG9mIGNoaXBzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPG1hdC1jaGlwLXJvd1xuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUoY2hpcClcIlxuICAgICAgICBbZWRpdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIChlZGl0ZWQpPVwiZWRpdChjaGlwLCAkZXZlbnQpXCJcbiAgICAgICAgW2FyaWEtZGVzY3JpcHRpb25dPVwiJ3ByZXNzIGVudGVyIHRvIGVkaXQgJyArIGNoaXBcIlxuICAgICAgPlxuICAgICAgICB7eyBjaGlwIH19XG4gICAgICAgIDxidXR0b24gbWF0Q2hpcFJlbW92ZSBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZW1vdmUgJyArIGNoaXBcIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICB9XG4gICAgPGlucHV0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VsaG9sZGVyKClcIlxuICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwR3JpZFwiXG4gICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCJcbiAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwiYWRkT25CbHVyXCJcbiAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGQoJGV2ZW50KVwiXG4gICAgLz5cbiAgPC9tYXQtY2hpcC1ncmlkPlxuICA8bWF0LWhpbnQgYWxpZ249XCJzdGFydFwiXG4gICAgPjxzdHJvbmc+SW5ncmVzZSB7eyBsYWJlbFRleHQoKSB9fSB5IGRhbGUgXCJFbnRlclwiPC9zdHJvbmc+XG4gIDwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19","import { Component, input, output } from '@angular/core';\nimport { MatButton, MatFabButton, MatIconButton, MatMiniFabButton } from '@angular/material/button';\nimport { NgClass } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nexport class MatThemeButtonComponent {\n variant = input('primary', ...(ngDevMode ? [{ debugName: \"variant\" }] : []));\n text = input('', ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n icon = input('', ...(ngDevMode ? [{ debugName: \"icon\" }] : []));\n outlined = input(false, ...(ngDevMode ? [{ debugName: \"outlined\" }] : []));\n disabled = input(false, ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n useThemeColor = input(false, ...(ngDevMode ? [{ debugName: \"useThemeColor\" }] : [])); // Use theme color based on variant\n type = input('button', ...(ngDevMode ? [{ debugName: \"type\" }] : []));\n matStyle = input('raised', ...(ngDevMode ? [{ debugName: \"matStyle\" }] : []));\n // Additional common button properties\n title = input('', ...(ngDevMode ? [{ debugName: \"title\" }] : [])); // Tooltip text shown on hover\n ariaLabel = input('', ...(ngDevMode ? [{ debugName: \"ariaLabel\" }] : [])); // Accessibility label\n name = input('', ...(ngDevMode ? [{ debugName: \"name\" }] : [])); // Name attribute for form submission\n id = input('', ...(ngDevMode ? [{ debugName: \"id\" }] : [])); // ID for element reference\n form = input('', ...(ngDevMode ? [{ debugName: \"form\" }] : [])); // Associated form ID\n tabIndex = input(0, ...(ngDevMode ? [{ debugName: \"tabIndex\" }] : [])); // Tab order\n testId = input('', ...(ngDevMode ? [{ debugName: \"testId\" }] : [])); // For testing purposes\n handleClick = output();\n getButtonClasses() {\n return {\n [`btn-${this.variant()}`]: true,\n 'btn-outlined': this.outlined() && this.matStyle() !== 'stroked', // Stroked buttons are already outlined\n };\n }\n getThemeColor() {\n if (!this.useThemeColor)\n return null;\n switch (this.variant()) {\n case 'primary':\n return 'primary';\n case 'secondary':\n return 'accent';\n case 'danger':\n return 'warn';\n default:\n return null;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatThemeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatThemeButtonComponent, isStandalone: true, selector: \"acp-mat-theme-button\", inputs: { variant: { classPropertyName: \"variant\", publicName: \"variant\", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: \"icon\", publicName: \"icon\", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: \"outlined\", publicName: \"outlined\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, useThemeColor: { classPropertyName: \"useThemeColor\", publicName: \"useThemeColor\", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, matStyle: { classPropertyName: \"matStyle\", publicName: \"matStyle\", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: \"ariaLabel\", publicName: \"ariaLabel\", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: \"form\", publicName: \"form\", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: true, isRequired: false, transformFunction: null }, testId: { classPropertyName: \"testId\", publicName: \"testId\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { handleClick: \"handleClick\" }, ngImport: i0, template: \"@if (matStyle() === 'basic') {\\n <button\\n mat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'raised') {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'flat') {\\n <button\\n mat-flat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'stroked') {\\n <button\\n mat-stroked-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'icon') {\\n <button\\n mat-icon-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'fab') {\\n <button\\n mat-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'mini-fab') {\\n <button\\n mat-mini-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: MatMiniFabButton, selector: \"button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatFabButton, selector: \"button[mat-fab], a[mat-fab], button[matFab], a[matFab]\", inputs: [\"extended\"], exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatThemeButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-theme-button', imports: [MatButton, NgClass, MatIcon, MatMiniFabButton, MatIconButton, MatFabButton], template: \"@if (matStyle() === 'basic') {\\n <button\\n mat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'raised') {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'flat') {\\n <button\\n mat-flat-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'stroked') {\\n <button\\n mat-stroked-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'icon') {\\n <button\\n mat-icon-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'fab') {\\n <button\\n mat-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else if (matStyle() === 'mini-fab') {\\n <button\\n mat-mini-fab\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n @if (icon()) {\\n <mat-icon>{{ icon() }}</mat-icon>\\n }\\n <ng-content></ng-content>\\n </button>\\n} @else {\\n <button\\n mat-raised-button\\n [ngClass]=\\\"getButtonClasses()\\\"\\n [disabled]=\\\"disabled()\\\"\\n [color]=\\\"getThemeColor()\\\"\\n [type]=\\\"type()\\\"\\n [title]=\\\"title()\\\"\\n [attr.aria-label]=\\\"ariaLabel() || title()\\\"\\n [attr.name]=\\\"name()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.form]=\\\"form()\\\"\\n [attr.tabindex]=\\\"tabIndex()\\\"\\n [attr.data-testid]=\\\"testId()\\\"\\n (click)=\\\"handleClick.emit($event)\\\"\\n >\\n <ng-content select=\\\"svgIcon\\\"></ng-content>\\n\\n @if (icon()) {\\n <mat-icon class=\\\"button-icon\\\">{{ icon() }}</mat-icon>\\n }\\n @if (text()) {\\n <span class=\\\"button-text\\\">{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </button>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXRoZW1lLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tYXQtdGhlbWUtYnV0dG9uL21hdC10aGVtZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWF0LXRoZW1lLWJ1dHRvbi9tYXQtdGhlbWUtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQTZCakQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxPQUFPLEdBQUcsS0FBSyxDQUFnQixTQUFTLG1EQUFDLENBQUM7SUFDMUMsSUFBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLGdEQUFDLENBQUM7SUFDekIsSUFBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLGdEQUFDLENBQUM7SUFDekIsUUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLG9EQUFDLENBQUM7SUFDakMsUUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLG9EQUFDLENBQUM7SUFDakMsYUFBYSxHQUFHLEtBQUssQ0FBVSxLQUFLLHlEQUFDLENBQUMsQ0FBQyxtQ0FBbUM7SUFDMUUsSUFBSSxHQUFHLEtBQUssQ0FBYSxRQUFRLGdEQUFDLENBQUM7SUFDbkMsUUFBUSxHQUFHLEtBQUssQ0FBc0IsUUFBUSxvREFBQyxDQUFDO0lBRWhELHNDQUFzQztJQUN0QyxLQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsaURBQUMsQ0FBQyxDQUFDLDhCQUE4QjtJQUN6RCxTQUFTLEdBQUcsS0FBSyxDQUFTLEVBQUUscURBQUMsQ0FBQyxDQUFDLHNCQUFzQjtJQUNyRCxJQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsZ0RBQUMsQ0FBQyxDQUFDLHFDQUFxQztJQUMvRCxFQUFFLEdBQUcsS0FBSyxDQUFTLEVBQUUsOENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtJQUNuRCxJQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsZ0RBQUMsQ0FBQyxDQUFDLHFCQUFxQjtJQUMvQyxRQUFRLEdBQUcsS0FBSyxDQUFTLENBQUMsb0RBQUMsQ0FBQyxDQUFDLFlBQVk7SUFDekMsTUFBTSxHQUFHLEtBQUssQ0FBUyxFQUFFLGtEQUFDLENBQUMsQ0FBQyx1QkFBdUI7SUFFbkQsV0FBVyxHQUFHLE1BQU0sRUFBVyxDQUFDO0lBRWhDLGdCQUFnQjtRQUNkLE9BQU87WUFDTCxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJO1lBQy9CLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsRUFBRSx1Q0FBdUM7U0FDMUcsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFckMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN2QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxXQUFXO2dCQUNkLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssUUFBUTtnQkFDWCxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQzt1R0F6Q1UsdUJBQXVCOzJGQUF2Qix1QkFBdUIsczhEQ2pDcEMsbXRLQThMQSwwRERqS1ksU0FBUyx5VUFBRSxPQUFPLG9GQUFFLE9BQU8sMklBQUUsZ0JBQWdCLDJKQUFFLGFBQWEsdUtBQUUsWUFBWTs7MkZBSXpFLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxzQkFBc0IsV0FDdkIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbiwgTWF0RmFiQnV0dG9uLCBNYXRJY29uQnV0dG9uLCBNYXRNaW5pRmFiQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5leHBvcnQgdHlwZSBCdXR0b25WYXJpYW50ID1cbiAgfCAncHJpbWFyeSdcbiAgfCAnc2Vjb25kYXJ5J1xuICB8ICdzdWNjZXNzJ1xuICB8ICdkYW5nZXInXG4gIHwgJ3dhcm5pbmcnXG4gIHwgJ2luZm8nXG4gIHwgJ2xpZ2h0J1xuICB8ICdkYXJrJztcblxuZXhwb3J0IHR5cGUgQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnO1xuXG5leHBvcnQgdHlwZSBNYXRlcmlhbEJ1dHRvblN0eWxlID1cbiAgfCAnYmFzaWMnIC8vIG1hdC1idXR0b25cbiAgfCAncmFpc2VkJyAvLyBtYXQtcmFpc2VkLWJ1dHRvblxuICB8ICdmbGF0JyAvLyBtYXQtZmxhdC1idXR0b25cbiAgfCAnc3Ryb2tlZCcgLy8gbWF0LXN0cm9rZWQtYnV0dG9uXG4gIHwgJ2ljb24nIC8vIG1hdC1pY29uLWJ1dHRvblxuICB8ICdmYWInIC8vIG1hdC1mYWJcbiAgfCAnbWluaS1mYWInOyAvLyBtYXQtbWluaS1mYWJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLW1hdC10aGVtZS1idXR0b24nLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uLCBOZ0NsYXNzLCBNYXRJY29uLCBNYXRNaW5pRmFiQnV0dG9uLCBNYXRJY29uQnV0dG9uLCBNYXRGYWJCdXR0b25dLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0LXRoZW1lLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tYXQtdGhlbWUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0VGhlbWVCdXR0b25Db21wb25lbnQge1xuICB2YXJpYW50ID0gaW5wdXQ8QnV0dG9uVmFyaWFudD4oJ3ByaW1hcnknKTtcbiAgdGV4dCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBpY29uID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIG91dGxpbmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdXNlVGhlbWVDb2xvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTsgLy8gVXNlIHRoZW1lIGNvbG9yIGJhc2VkIG9uIHZhcmlhbnRcbiAgdHlwZSA9IGlucHV0PEJ1dHRvblR5cGU+KCdidXR0b24nKTtcbiAgbWF0U3R5bGUgPSBpbnB1dDxNYXRlcmlhbEJ1dHRvblN0eWxlPigncmFpc2VkJyk7XG5cbiAgLy8gQWRkaXRpb25hbCBjb21tb24gYnV0dG9uIHByb3BlcnRpZXNcbiAgdGl0bGUgPSBpbnB1dDxzdHJpbmc+KCcnKTsgLy8gVG9vbHRpcCB0ZXh0IHNob3duIG9uIGhvdmVyXG4gIGFyaWFMYWJlbCA9IGlucHV0PHN0cmluZz4oJycpOyAvLyBBY2Nlc3NpYmlsaXR5IGxhYmVsXG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KCcnKTsgLy8gTmFtZSBhdHRyaWJ1dGUgZm9yIGZvcm0gc3VibWlzc2lvblxuICBpZCA9IGlucHV0PHN0cmluZz4oJycpOyAvLyBJRCBmb3IgZWxlbWVudCByZWZlcmVuY2VcbiAgZm9ybSA9IGlucHV0PHN0cmluZz4oJycpOyAvLyBBc3NvY2lhdGVkIGZvcm0gSURcbiAgdGFiSW5kZXggPSBpbnB1dDxudW1iZXI+KDApOyAvLyBUYWIgb3JkZXJcbiAgdGVzdElkID0gaW5wdXQ8c3RyaW5nPignJyk7IC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzXG5cbiAgaGFuZGxlQ2xpY2sgPSBvdXRwdXQ8dW5rbm93bj4oKTtcblxuICBnZXRCdXR0b25DbGFzc2VzKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW2BidG4tJHt0aGlzLnZhcmlhbnQoKX1gXTogdHJ1ZSxcbiAgICAgICdidG4tb3V0bGluZWQnOiB0aGlzLm91dGxpbmVkKCkgJiYgdGhpcy5tYXRTdHlsZSgpICE9PSAnc3Ryb2tlZCcsIC8vIFN0cm9rZWQgYnV0dG9ucyBhcmUgYWxyZWFkeSBvdXRsaW5lZFxuICAgIH07XG4gIH1cblxuICBnZXRUaGVtZUNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB8IG51bGwge1xuICAgIGlmICghdGhpcy51c2VUaGVtZUNvbG9yKSByZXR1cm4gbnVsbDtcblxuICAgIHN3aXRjaCAodGhpcy52YXJpYW50KCkpIHtcbiAgICAgIGNhc2UgJ3ByaW1hcnknOlxuICAgICAgICByZXR1cm4gJ3ByaW1hcnknO1xuICAgICAgY2FzZSAnc2Vjb25kYXJ5JzpcbiAgICAgICAgcmV0dXJuICdhY2NlbnQnO1xuICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgcmV0dXJuICd3YXJuJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChtYXRTdHlsZSgpID09PSAnYmFzaWMnKSB7XG4gIDxidXR0b25cbiAgICBtYXQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIEBpZiAoaWNvbigpKSB7XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJidXR0b24taWNvblwiPnt7IGljb24oKSB9fTwvbWF0LWljb24+XG4gICAgfVxuICAgIEBpZiAodGV4dCgpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbi10ZXh0XCI+e3sgdGV4dCgpIH19PC9zcGFuPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSBpZiAobWF0U3R5bGUoKSA9PT0gJ3JhaXNlZCcpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInN2Z0ljb25cIj48L25nLWNvbnRlbnQ+XG4gICAgQGlmIChpY29uKCkpIHtcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImJ1dHRvbi1pY29uXCI+e3sgaWNvbigpIH19PC9tYXQtaWNvbj5cbiAgICB9XG4gICAgQGlmICh0ZXh0KCkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9uLXRleHRcIj57eyB0ZXh0KCkgfX08L3NwYW4+XG4gICAgfVxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9idXR0b24+XG59IEBlbHNlIGlmIChtYXRTdHlsZSgpID09PSAnZmxhdCcpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgIFtuZ0NsYXNzXT1cImdldEJ1dHRvbkNsYXNzZXMoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgIFtjb2xvcl09XCJnZXRUaGVtZUNvbG9yKClcIlxuICAgIFt0eXBlXT1cInR5cGUoKVwiXG4gICAgW3RpdGxlXT1cInRpdGxlKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsKCkgfHwgdGl0bGUoKVwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lKClcIlxuICAgIFthdHRyLmlkXT1cImlkKClcIlxuICAgIFthdHRyLmZvcm1dPVwiZm9ybSgpXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQoKVwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb24oKSkge1xuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYnV0dG9uLWljb25cIj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tdGV4dFwiPnt7IHRleHQoKSB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2J1dHRvbj5cbn0gQGVsc2UgaWYgKG1hdFN0eWxlKCkgPT09ICdzdHJva2VkJykge1xuICA8YnV0dG9uXG4gICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIEBpZiAoaWNvbigpKSB7XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJidXR0b24taWNvblwiPnt7IGljb24oKSB9fTwvbWF0LWljb24+XG4gICAgfVxuICAgIEBpZiAodGV4dCgpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbi10ZXh0XCI+e3sgdGV4dCgpIH19PC9zcGFuPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSBpZiAobWF0U3R5bGUoKSA9PT0gJ2ljb24nKSB7XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBbbmdDbGFzc109XCJnZXRCdXR0b25DbGFzc2VzKClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICBbY29sb3JdPVwiZ2V0VGhlbWVDb2xvcigpXCJcbiAgICBbdHlwZV09XCJ0eXBlKClcIlxuICAgIFt0aXRsZV09XCJ0aXRsZSgpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpIHx8IHRpdGxlKClcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZSgpXCJcbiAgICBbYXR0ci5pZF09XCJpZCgpXCJcbiAgICBbYXR0ci5mb3JtXT1cImZvcm0oKVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkKClcIlxuICAgIChjbGljayk9XCJoYW5kbGVDbGljay5lbWl0KCRldmVudClcIlxuICA+XG4gICAgQGlmIChpY29uKCkpIHtcbiAgICAgIDxtYXQtaWNvbj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSBpZiAobWF0U3R5bGUoKSA9PT0gJ2ZhYicpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1mYWJcbiAgICBbbmdDbGFzc109XCJnZXRCdXR0b25DbGFzc2VzKClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICBbY29sb3JdPVwiZ2V0VGhlbWVDb2xvcigpXCJcbiAgICBbdHlwZV09XCJ0eXBlKClcIlxuICAgIFt0aXRsZV09XCJ0aXRsZSgpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpIHx8IHRpdGxlKClcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZSgpXCJcbiAgICBbYXR0ci5pZF09XCJpZCgpXCJcbiAgICBbYXR0ci5mb3JtXT1cImZvcm0oKVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkKClcIlxuICAgIChjbGljayk9XCJoYW5kbGVDbGljay5lbWl0KCRldmVudClcIlxuICA+XG4gICAgQGlmIChpY29uKCkpIHtcbiAgICAgIDxtYXQtaWNvbj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tdGV4dFwiPnt7IHRleHQoKSB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2J1dHRvbj5cbn0gQGVsc2UgaWYgKG1hdFN0eWxlKCkgPT09ICdtaW5pLWZhYicpIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1taW5pLWZhYlxuICAgIFtuZ0NsYXNzXT1cImdldEJ1dHRvbkNsYXNzZXMoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgIFtjb2xvcl09XCJnZXRUaGVtZUNvbG9yKClcIlxuICAgIFt0eXBlXT1cInR5cGUoKVwiXG4gICAgW3RpdGxlXT1cInRpdGxlKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsKCkgfHwgdGl0bGUoKVwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lKClcIlxuICAgIFthdHRyLmlkXT1cImlkKClcIlxuICAgIFthdHRyLmZvcm1dPVwiZm9ybSgpXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQoKVwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb24oKSkge1xuICAgICAgPG1hdC1pY29uPnt7IGljb24oKSB9fTwvbWF0LWljb24+XG4gICAgfVxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9idXR0b24+XG59IEBlbHNlIHtcbiAgPGJ1dHRvblxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uQ2xhc3NlcygpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW2NvbG9yXT1cImdldFRoZW1lQ29sb3IoKVwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbdGl0bGVdPVwidGl0bGUoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCB0aXRsZSgpXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgW2F0dHIuZm9ybV09XCJmb3JtKClcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInN2Z0ljb25cIj48L25nLWNvbnRlbnQ+XG5cbiAgICBAaWYgKGljb24oKSkge1xuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYnV0dG9uLWljb25cIj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tdGV4dFwiPnt7IHRleHQoKSB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2J1dHRvbj5cbn1cbiJdfQ==","import { Component } from '@angular/core';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport * as i0 from \"@angular/core\";\nexport class SpinnerComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.1\", type: SpinnerComponent, isStandalone: true, selector: \"acp-spinner\", ngImport: i0, template: \"<mat-spinner></mat-spinner>\\n\", styles: [\":host{display:flex;justify-content:center;align-items:center;height:100%}\\n\"], dependencies: [{ kind: \"component\", type: MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: SpinnerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-spinner', imports: [MatProgressSpinner], template: \"<mat-spinner></mat-spinner>\\n\", styles: [\":host{display:flex;justify-content:center;align-items:center;height:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBUXhFLE1BQU0sT0FBTyxnQkFBZ0I7dUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHVFQ1Q3QiwrQkFDQSxxSURJWSxrQkFBa0I7OzJGQUlqQixnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYSxXQUNkLENBQUMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3Atc3Bpbm5lcicsXG4gIGltcG9ydHM6IFtNYXRQcm9ncmVzc1NwaW5uZXJdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zcGlubmVyLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU3Bpbm5lckNvbXBvbmVudCB7fVxuIiwiPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XG4iXX0=","// custom-tabulator.component.ts\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PageModule, ReactiveDataModule, TabulatorFull as Tabulator } from 'tabulator-tables';\nimport * as i0 from \"@angular/core\";\nTabulator.registerModule([PageModule, ReactiveDataModule]);\nexport class CustomTabulatorComponent {\n // Data inputs\n data = [];\n columns = [];\n // Layout inputs\n height = '400px';\n layout = 'fitData';\n // Tree structure inputs\n dataTree = false;\n dataTreeChildField = 'children';\n dataTreeStartExpanded = false;\n dataTreeSelectPropagate = false;\n // Behavior inputs\n selectable = true;\n reactiveData = true;\n placeholder = 'No data available';\n autoResize = true;\n // Theme configuration\n theme = { name: 'default' };\n // Custom options\n options = {};\n // Events\n cellEdited = new EventEmitter();\n rowClick = new EventEmitter();\n rowSelected = new EventEmitter();\n tableReady = new EventEmitter();\n _tabulator;\n // Made public for template access\n containerId = `acp-tabulator-${Math.random().toString(36).substr(2, 9)}`;\n ngAfterViewInit() {\n this.initializeTable();\n }\n ngOnChanges(changes) {\n if (changes['data'] && !changes['data'].isFirstChange()) {\n this.updateData();\n }\n if (changes['columns'] && !changes['columns'].isFirstChange()) {\n this.updateColumns();\n }\n if (changes['theme'] && !changes['theme'].isFirstChange()) {\n this.applyTheme();\n }\n }\n ngOnDestroy() {\n this.destroyTable();\n }\n initializeTable() {\n if (this._tabulator) {\n this.destroyTable();\n }\n const container = document.getElementById(this.containerId);\n if (!container) {\n console.warn('Tabulator container not found');\n return;\n }\n const config = {\n data: this.data,\n columns: this.columns,\n height: this.height,\n layout: this.layout,\n dataTree: this.dataTree,\n dataTreeChildField: this.dataTreeChildField,\n dataTreeStartExpanded: this.dataTreeStartExpanded,\n dataTreeSelectPropagate: this.dataTreeSelectPropagate,\n reactiveData: this.reactiveData,\n placeholder: this.placeholder,\n autoResize: this.autoResize,\n selectable: this.selectable,\n renderVertical: 'virtual',\n renderVerticalBuffer: 300,\n ...this.options,\n };\n try {\n this._tabulator = new Tabulator(container, config);\n this.applyTheme();\n this.registerEvents();\n this.tableReady.emit(this._tabulator);\n }\n catch (error) {\n console.error('Error initializing Tabulator:', error);\n }\n }\n applyTheme() {\n const container = document.getElementById(this.containerId);\n if (container) {\n // Remove existing theme classes\n container.classList.remove('tabulator-default', 'tabulator-bootstrap5', 'tabulator-semanticui');\n // Add current theme class\n container.classList.add(`tabulator-${this.theme.name}`);\n }\n }\n registerEvents() {\n this._tabulator.on('cellEdited', cell => {\n this.cellEdited.emit(cell);\n });\n this._tabulator.on('rowClick', (e, row) => {\n this.rowClick.emit(row);\n });\n this._tabulator.on('rowSelected', row => {\n this.rowSelected.emit(row);\n });\n }\n updateData() {\n if (this._tabulator) {\n this._tabulator.replaceData(this.data);\n }\n }\n updateColumns() {\n if (this._tabulator) {\n this._tabulator.setColumns(this.columns);\n }\n }\n destroyTable() {\n if (this._tabulator) {\n this._tabulator.destroy();\n }\n }\n // Public API methods\n getInstance() {\n return this._tabulator;\n }\n redraw() {\n if (this._tabulator) {\n this._tabulator.redraw();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: CustomTabulatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.1\", type: CustomTabulatorComponent, isStandalone: true, selector: \"acp-tabulator\", inputs: { data: \"data\", columns: \"columns\", height: \"height\", layout: \"layout\", dataTree: \"dataTree\", dataTreeChildField: \"dataTreeChildField\", dataTreeStartExpanded: \"dataTreeStartExpanded\", dataTreeSelectPropagate: \"dataTreeSelectPropagate\", selectable: \"selectable\", reactiveData: \"reactiveData\", placeholder: \"placeholder\", autoResize: \"autoResize\", theme: \"theme\", options: \"options\" }, outputs: { cellEdited: \"cellEdited\", rowClick: \"rowClick\", rowSelected: \"rowSelected\", tableReady: \"tableReady\" }, usesOnChanges: true, ngImport: i0, template: \"<div [id]=\\\"containerId\\\" class=\\\"acp-tabulator-container\\\"></div>\", styles: [\".tabulator{background-color:#888;border:1px solid #999;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#e6e6e6;border-bottom:1px solid #999;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#e6e6e6;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#cdcdcd;border:1px solid #999;pointer-events:none;position:absolute}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#cdcdcd;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #aaa}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #aaa}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #999;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator-row.tabulator-moving{border-bottom:1px solid #aaa;border-top:1px solid #aaa;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-cell{border-right:1px solid #aaa;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#e6e6e6;border-bottom:1px solid #aaa;border-right:1px solid #999}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #aaa;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#aaa;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #aaa}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #aaa;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #aaa;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #aaa}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #aaa}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{border:1px solid #dee2e6;font-size:16px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#fff;border-bottom:1px solid #dee2e6;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#fff;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#e6e6e6;border:1px solid #dee2e6;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #aaa;display:flex;margin-right:-1px;overflow:hidden;position:relative}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#e6e6e6;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #aaa;border-top:1px solid #dee2e6;box-sizing:border-box;display:inline-block}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#dadfe4!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #dee2e6}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #dee2e6}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #dee2e6;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #dee2e6;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important;display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-5px}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:24px;position:relative}.tabulator-row.tabulator-row-even{background-color:#e9ecef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}}.tabulator-row.tabulator-moving{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse table{font-size:16px}.tabulator-row .tabulator-cell{border-right:1px solid #dee2e6;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:1px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#d00}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;color:#fff;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;border:1px solid #dee2e6;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:16px;overflow-y:auto;position:absolute;z-index:10000}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#e9ecef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#dee2e6;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #dee2e6}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:16px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #dee2e6;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #dee2e6;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #dee2e6;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #dee2e6}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #dee2e6}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{background-color:#fff;border:none}.tabulator .tabulator-header{border-bottom:2px solid #dee2e6;border-top:1px solid #dee2e6;color:inherit}.tabulator .tabulator-header .tabulator-col{background-color:#fff;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:12px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #dee2e6}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input{background-clip:padding-box;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#495057;font-size:1rem;line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input:focus{background-color:#fff;border:1px solid #1d68cd;color:#495057;outline:0}.tabulator .tabulator-header .tabulator-calcs-holder{border-bottom:1px solid #dee2e6;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder span{color:#000}.tabulator .tabulator-footer,.tabulator .tabulator-tableholder .tabulator-table{color:inherit}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{background-color:#fff;font-weight:400}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-paginator{color:inherit}.tabulator .tabulator-footer .tabulator-pages{margin:0}.tabulator .tabulator-footer .tabulator-page{margin:5px 0 0;padding:8px 12px}.tabulator .tabulator-footer .tabulator-page[data-page=first]{border-bottom-left-radius:4px;border-top-left-radius:4px}.tabulator .tabulator-footer .tabulator-page[data-page=last]{border:1px solid #dee2e6;border-bottom-right-radius:4px;border-top-right-radius:4px}.tabulator .tabulator-footer .tabulator-page.active{background-color:#0d6efd;border-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-page:disabled{background:#fff;border-color:#dee2e6;color:#6c757d}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{background:#e9ecef;border-color:#dee2e6;color:#0a58ca}}.tabulator.thead-dark .tabulator-header,.tabulator.thead-dark .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table{background-color:#fff}.tabulator.table:not(.thead-light) .tabulator-header,.tabulator.table:not(.thead-light) .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table .tabulator-tableholder{color:#212529}.tabulator.table .tabulator-row{background-color:#fff;border-color:#dee2e6;color:#212529}@media (hover:hover) and (pointer:fine){.tabulator.table .tabulator-row:hover{background-color:#dee2e6}.tabulator.table .tabulator-row:hover .tabulator-cell{background-color:#ced4da}}.tabulator.table .tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator.table .tabulator-footer{border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder{background:#fff!important;border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder .tabulator-row{background-color:#fff!important;border-color:#dee2e6!important;color:#212529!important}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even{background-color:#e9ecef}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator.table-striped.table .tabulator-row:nth-child(2n) .tabulator-cell{background-color:transparent}.tabulator.table-bordered{border:1px solid #dee2e6}.tabulator.table-bordered .tabulator-header .tabulator-col,.tabulator.table-bordered .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid #dee2e6}.tabulator.table-borderless .tabulator-header,.tabulator.table-borderless .tabulator-row{border:none}.tabulator.table-sm .tabulator-header .tabulator-col .tabulator-col-content{padding:5px!important}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row{min-height:26px}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:5px!important}.tabulator.table-sm .tabulator-row{padding-bottom:0;padding-top:0}.tabulator.table-sm .tabulator-col-resize-handle{padding:0}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-active{background:#6c757d!important}.tabulator-row{border-bottom:1px solid #dee2e6;min-height:40px}.tabulator-row .tabulator-cell{border-right:none;padding:12px}.tabulator-row .tabulator-cell.tabulator-row-header{background:#fff;border-bottom:none;border-right:1px solid #dee2e6}.tabulator-row .tabulator-cell .tabulator-data-tree-control{border:1px solid #ccc}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-edit-select-list .tabulator-edit-select-list-group,.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:initial;text-align:initial}.tabulator-print-table .tabulator-data-tree-control{color:inherit}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-popup-container{background:#fff}.tabulator-edit-list .tabulator-edit-list-item.active{color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{color:#fff}}.tabulator{background-color:#fff;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableholder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select,.tabulator.tabulator-ranges .tabulator-cell:not(.tabulator-editing){-webkit-user-select:none;user-select:none}.tabulator .tabulator-header{border-bottom:1px solid #999;box-sizing:border-box;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-header-contents{overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-header-contents .tabulator-headers{display:inline-block}.tabulator .tabulator-header .tabulator-col{background:#f9fafb;border-right:1px solid #ddd;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#dae1e7;border:1px solid #999;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-range-highlight{background-color:#d6d6d6;color:#000}.tabulator .tabulator-header .tabulator-col.tabulator-range-selected{background-color:#3876ca;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;padding:4px;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder{position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title.tabulator-col-title-wrap{text-overflow:clip;white-space:normal}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{background:#fff;border:1px solid #999;box-sizing:border-box;padding:1px;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-header-popup-button+.tabulator-title-editor{width:calc(100% - 22px)}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{align-items:center;bottom:0;display:flex;position:absolute;right:4px;top:0}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-left:6px solid transparent;border-right:6px solid transparent;height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #ddd;display:flex;margin-right:-1px;overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{box-sizing:border-box;margin-top:2px;position:relative;text-align:center;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#dae1e7;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter{color:#bbb}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #666;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-top:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:none;border-top:6px solid #666;color:#666}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{align-items:center;display:flex;justify-content:center;text-orientation:mixed;writing-mode:vertical-rl}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-bottom:20px;padding-right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-sorter{justify-content:center;inset:4px 0 auto}.tabulator .tabulator-header .tabulator-frozen{left:0;position:sticky;z-index:11}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{display:inline-block}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableholder{-webkit-overflow-scrolling:touch;overflow:auto;position:relative;white-space:nowrap;width:100%}.tabulator .tabulator-tableholder:focus{outline:none}.tabulator .tabulator-tableholder .tabulator-placeholder{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-width:100%;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%}.tabulator .tabulator-tableholder .tabulator-placeholder .tabulator-placeholder-contents{color:#ccc;display:inline-block;font-size:20px;font-weight:700;padding:10px;text-align:center;white-space:normal}.tabulator .tabulator-tableholder .tabulator-table{background-color:#fff;color:#333;display:inline-block;overflow:visible;position:relative;white-space:nowrap}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#e2e2e2!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-range-overlay{inset:0;pointer-events:none;position:absolute;z-index:10}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range{border:1px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;position:absolute;right:-3px;width:6px}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range-cell-active{border:2px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-footer{background-color:#fff;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-footer-contents{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:5px 10px}.tabulator .tabulator-footer .tabulator-footer-contents:empty{display:none}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:-5px;overflow-x:auto}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid rgba(34,36,38,.15);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab:hover{cursor:pointer;opacity:.7}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background:#fff}.tabulator .tabulator-footer .tabulator-calcs-holder{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px}.tabulator .tabulator-footer>*+.tabulator-page-counter{margin-left:10px}.tabulator .tabulator-footer .tabulator-page-counter{font-weight:400}.tabulator .tabulator-footer .tabulator-paginator{color:#555;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:right}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#0003;color:#fff;cursor:pointer}}.tabulator .tabulator-col-resize-handle{display:inline-block;margin-left:-3px;margin-right:-3px;position:relative;vertical-align:middle;width:6px;z-index:11}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}}.tabulator .tabulator-col-resize-handle:last-of-type{margin-right:0;width:3px}.tabulator .tabulator-col-resize-guide{background-color:#999;height:100%;margin-left:-.5px;opacity:.5;position:absolute;top:0;width:4px}.tabulator .tabulator-row-resize-guide{background-color:#999;height:4px;left:0;margin-top:-.5px;opacity:.5;position:absolute;width:100%}.tabulator .tabulator-alert{align-items:center;background:#0006;display:flex;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%;z-index:100}.tabulator .tabulator-alert .tabulator-alert-msg{background:#fff;border-radius:10px;display:inline-block;font-size:16px;font-weight:700;margin:0 auto;padding:10px 20px}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-msg{border:4px solid #333;color:#000}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-error{border:4px solid #d00;color:#590000}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:22px;position:relative}.tabulator-row.tabulator-row-even{background-color:#efefef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}}.tabulator-row.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator-row.tabulator-row-moving{background:#fff;border:1px solid #000}.tabulator-row.tabulator-moving{border-bottom:1px solid #ddd;border-top:1px solid #ddd;pointer-events:none;position:absolute;z-index:15}.tabulator-row.tabulator-range-highlight .tabulator-cell.tabulator-range-row-header{background-color:#d6d6d6;color:#000}.tabulator-row.tabulator-range-highlight.tabulator-range-selected .tabulator-cell.tabulator-range-row-header,.tabulator-row.tabulator-range-selected .tabulator-cell.tabulator-range-row-header{background-color:#3876ca;color:#fff}.tabulator-row .tabulator-row-resize-handle{bottom:0;height:5px;left:0;position:absolute;right:0}.tabulator-row .tabulator-row-resize-handle.prev{bottom:auto;top:0}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{border-right:1px solid #ddd;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#f9fafb;border-bottom:1px solid #ddd;border-right:1px solid rgba(34,36,38,.15)}.tabulator-row .tabulator-cell.tabulator-frozen{background-color:inherit;display:inline-block;left:0;position:sticky;z-index:11}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;outline:none;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{background:transparent;border:1px;outline:none}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #db2828}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#db2828}.tabulator-row .tabulator-cell.tabulator-row-handle{align-items:center;display:inline-flex;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{background:#666;height:3px;margin-top:2px;width:100%}.tabulator-row .tabulator-cell.tabulator-range-selected:not(.tabulator-range-only-cell-selected):not(.tabulator-range-row-header){background-color:#9abcea}.tabulator-row .tabulator-cell .tabulator-data-tree-branch-empty{display:inline-block;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{cursor:pointer;opacity:.7}}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open{display:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle svg{stroke:#fff}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{border-radius:14px;display:inline-block;height:14px;width:14px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-row.tabulator-group span{color:#d00;margin-left:10px}.tabulator-toggle{background:#dcdcdc;border:1px solid #ccc;box-sizing:border-box;display:flex;flex-direction:row}.tabulator-toggle.tabulator-toggle-on{background:#1c6cc2}.tabulator-toggle .tabulator-toggle-switch{background:#fff;border:1px solid #ccc;box-sizing:border-box}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #ddd;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-popup{border-radius:3px;padding:5px}.tabulator-tooltip{border-radius:2px;box-shadow:none;font-size:12px;max-width:Min(500px,100%);padding:3px 5px;pointer-events:none}.tabulator-menu .tabulator-menu-item{box-sizing:border-box;padding:5px 10px;position:relative;-webkit-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#efefef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu{padding-right:25px}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#ddd;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #ddd}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:14px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item{color:#333;outline:none;padding:4px}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd;color:#fff}.tabulator-edit-list .tabulator-edit-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-list .tabulator-edit-list-item.focused{outline:1px solid #1d68cd}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{background:#1d68cd;color:#fff;cursor:pointer}}.tabulator-edit-list .tabulator-edit-list-placeholder{color:#333;padding:4px;text-align:center}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #ddd;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-2,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-2{padding-left:12px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-3,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-3{padding-left:20px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-4,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-4{padding-left:28px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-5,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-5{padding-left:36px}.tabulator.tabulator-ltr{direction:ltr}.tabulator.tabulator-rtl{direction:rtl;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #ddd;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{margin-left:-1px;margin-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-left:25px;padding-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{left:8px;right:auto}.tabulator.tabulator-rtl .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;left:-3px;position:absolute;right:auto;width:6px}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #ddd;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #ddd;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-control{margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-col-resize-handle:last-of-type{margin-left:0;margin-right:-3px;width:3px}.tabulator.tabulator-rtl .tabulator-footer .tabulator-calcs-holder{text-align:initial}.tabulator-print-fullscreen{inset:0;position:absolute;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-print-table-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-print-table .tabulator-print-table-group span{color:#d00;margin-left:10px}.tabulator-print-table .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator{border:1px solid rgba(34,36,38,.15);border-radius:.28571rem;box-shadow:none;color:#000000de;margin:1em 0;width:100%}.tabulator .tabulator-header{border-bottom:1px solid rgba(34,36,38,.1);box-shadow:none;color:#000000de;font-style:none;font-weight:700;text-transform:none}.tabulator .tabulator-header,.tabulator .tabulator-header .tabulator-col{background-color:#f9fafb;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:.92857em .78571em}.tabulator .tabulator-tableholder .tabulator-table{background-color:transparent}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#f2f2f2!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #ddd}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #ddd}.tabulator .tabulator-footer{background:#f9fafb;border-top:1px solid rgba(34,36,38,.15);box-shadow:none;color:#000000de;font-style:normal;font-weight:400;padding:.78571em;text-align:right;text-transform:none}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#fff!important;margin:-.78571em -.78571em .78571em}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-.78571em}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:calc(-.78571em - 5px)}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{color:#d00}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive{background:#fcfff5!important;box-shadow:inset 0 0 #a3c293;color:#21ba45!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative:hover{background:#ffe7e7!important;color:#d41616!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error:hover{background:#ffe7e7!important;color:#d12323!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning{background:#fffaf3!important;box-shadow:inset 0 0 #c9ba9b;color:#f2c037!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning:hover{background:#fff4e4!important;color:#f1bb29!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{color:#0003;pointer-events:none}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.disabled:hover{color:#0003;pointer-events:none}}.tabulator.inverted{background:#333;border:none;color:#ffffffe6}.tabulator.inverted .tabulator-header{background-color:#00000026;color:#ffffffe6}.tabulator.inverted .tabulator-header,.tabulator.inverted .tabulator-header .tabulator-col{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row{border:none;color:#ffffffe6}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-footer{background:#fff}.tabulator.striped .tabulator-row:nth-child(2n){background-color:#f2f2f2}.tabulator.celled{border:1px solid rgba(34,36,38,.15)}.tabulator.celled .tabulator-header .tabulator-col,.tabulator.celled .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid rgba(34,36,38,.1)}.tabulator[class*=\\\"single line\\\"] .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:none}.tabulator.red{border-top:.2em solid #db2828}.tabulator.inverted.red{background-color:#db2828!important;color:#fff!important}.tabulator.orange{border-top:.2em solid #f2711c}.tabulator.inverted.orange{background-color:#f2711c!important;color:#fff!important}.tabulator.yellow{border-top:.2em solid #fbbd08}.tabulator.inverted.yellow{background-color:#fbbd08!important;color:#fff!important}.tabulator.olive{border-top:.2em solid #b5cc18}.tabulator.inverted.olive{background-color:#b5cc18!important;color:#fff!important}.tabulator.green{border-top:.2em solid #21ba45}.tabulator.inverted.green{background-color:#21ba45!important;color:#fff!important}.tabulator.teal{border-top:.2em solid #00b5ad}.tabulator.inverted.teal{background-color:#00b5ad!important;color:#fff!important}.tabulator.blue{border-top:.2em solid #2185d0}.tabulator.inverted.blue{background-color:#2185d0!important;color:#fff!important}.tabulator.violet{border-top:.2em solid #6435c9}.tabulator.inverted.violet{background-color:#6435c9!important;color:#fff!important}.tabulator.purple{border-top:.2em solid #a333c8}.tabulator.inverted.purple{background-color:#a333c8!important;color:#fff!important}.tabulator.pink{border-top:.2em solid #e03997}.tabulator.inverted.pink{background-color:#e03997!important;color:#fff!important}.tabulator.brown{border-top:.2em solid #a5673f}.tabulator.inverted.brown{background-color:#a5673f!important;color:#fff!important}.tabulator.grey{border-top:.2em solid #767676}.tabulator.inverted.grey{background-color:#767676!important;color:#fff!important}.tabulator.black{border-top:.2em solid #1b1c1d}.tabulator.inverted.black{background-color:#1b1c1d!important;color:#fff!important}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content{padding:1em}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:20px}.tabulator.padded .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content{padding:1.5em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:26px}.tabulator.padded.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1.5em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content{padding:.5em .7em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:12px}.tabulator.compact .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.5em .7em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content{padding:.4em .6em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:10px}.tabulator.compact.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.4em .6em}.tabulator-row{border-bottom:1px solid rgba(34,36,38,.1)}.tabulator-row.tabulator-row-even{background-color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}}.tabulator-row.tabulator-selected{background-color:#9abcea!important}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc!important;cursor:pointer}}.tabulator-row.tabulator-moving{pointer-events:none!important}.tabulator-row .tabulator-cell{border-right:none;padding:.78571em;vertical-align:middle}.tabulator-row .tabulator-cell:last-of-type{border-right:none}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{color:#fff}.tabulator-row.tabulator-group{background:#fafafa}.tabulator-row.tabulator-group span{color:#666}.tabulator-menu{background:#fff}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#f9fafb}}.tabulator-edit-select-list{background:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}@media (hover:hover) and (pointer:fine){.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{color:#fff}}.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator-print-table .tabulator-print-table-group{background:#fafafa}.tabulator-print-table .tabulator-print-table-group span{color:#666}.acp-tabulator-container{width:100%}.acp-tabulator-container:not(.tabulator-bootstrap5):not(.tabulator-semanticui) .tabulator{display:block}.acp-tabulator-container.tabulator-bootstrap5 .tabulator{border-radius:.375rem}.acp-tabulator-container.tabulator-semanticui .tabulator{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.acp-tabulator-container .tabulator-row.tabulator-selectable:hover{background-color:#0000000a;cursor:pointer;transition:background-color .2s ease}.acp-tabulator-container .tabulator-row.tabulator-selected{background-color:#1976d21f}@media (max-width: 768px){.acp-tabulator-container .tabulator-header{font-size:.875rem}.acp-tabulator-container .tabulator-cell{font-size:.875rem;padding:8px 6px}}.acp-tabulator-container .tabulator-loader{background:#fffc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar{width:8px;height:8px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb:hover{background:#a8a8a8}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: CustomTabulatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-tabulator', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: \"<div [id]=\\\"containerId\\\" class=\\\"acp-tabulator-container\\\"></div>\", styles: [\".tabulator{background-color:#888;border:1px solid #999;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#e6e6e6;border-bottom:1px solid #999;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#e6e6e6;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#cdcdcd;border:1px solid #999;pointer-events:none;position:absolute}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#cdcdcd;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator .tabulator-header .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #aaa}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #aaa}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #999;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator-row.tabulator-moving{border-bottom:1px solid #aaa;border-top:1px solid #aaa;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #aaa;border-top:1px solid #aaa;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-cell{border-right:1px solid #aaa;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#e6e6e6;border-bottom:1px solid #aaa;border-right:1px solid #999}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #aaa}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #aaa}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #aaa;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#aaa;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #aaa}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #aaa;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #aaa;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #aaa}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #aaa}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #aaa;border-bottom-left-radius:1px;border-left:2px solid #aaa;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #aaa;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{border:1px solid #dee2e6;font-size:16px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator .tabulator-header{background-color:#fff;border-bottom:1px solid #dee2e6;box-sizing:border-box;color:#555;font-weight:700;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col{background:#fff;border-right:1px solid #aaa;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#e6e6e6;border:1px solid #dee2e6;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #aaa;display:flex;margin-right:-1px;overflow:hidden;position:relative}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#e6e6e6;cursor:pointer}}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #aaa;border-top:1px solid #dee2e6;box-sizing:border-box;display:inline-block}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#dadfe4!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #dee2e6}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #dee2e6}.tabulator .tabulator-footer{background-color:#e6e6e6;border-top:1px solid #dee2e6;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid #dee2e6;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#f3f3f3!important;border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#f3f3f3!important;display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-5px}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #dee2e6;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:24px;position:relative}.tabulator-row.tabulator-row-even{background-color:#e9ecef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}}.tabulator-row.tabulator-moving{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;pointer-events:none;position:absolute;z-index:15}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #dee2e6;border-top:1px solid #dee2e6;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse table{font-size:16px}.tabulator-row .tabulator-cell{border-right:1px solid #dee2e6;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:1px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #dee2e6}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #d00}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#d00}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;color:#fff;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator-popup-container{-webkit-overflow-scrolling:touch;border:1px solid #dee2e6;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:16px;overflow-y:auto;position:absolute;z-index:10000}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#e9ecef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#dee2e6;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #dee2e6}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:16px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #dee2e6;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #aaa;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #dee2e6;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #dee2e6;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #dee2e6}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #dee2e6}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #dee2e6;border-bottom-left-radius:1px;border-left:2px solid #dee2e6;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #dee2e6;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}.tabulator{background-color:#fff;border:none}.tabulator .tabulator-header{border-bottom:2px solid #dee2e6;border-top:1px solid #dee2e6;color:inherit}.tabulator .tabulator-header .tabulator-col{background-color:#fff;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:12px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #dee2e6}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input{background-clip:padding-box;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#495057;font-size:1rem;line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input:focus{background-color:#fff;border:1px solid #1d68cd;color:#495057;outline:0}.tabulator .tabulator-header .tabulator-calcs-holder{border-bottom:1px solid #dee2e6;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder span{color:#000}.tabulator .tabulator-footer,.tabulator .tabulator-tableholder .tabulator-table{color:inherit}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{background-color:#fff;font-weight:400}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-paginator{color:inherit}.tabulator .tabulator-footer .tabulator-pages{margin:0}.tabulator .tabulator-footer .tabulator-page{margin:5px 0 0;padding:8px 12px}.tabulator .tabulator-footer .tabulator-page[data-page=first]{border-bottom-left-radius:4px;border-top-left-radius:4px}.tabulator .tabulator-footer .tabulator-page[data-page=last]{border:1px solid #dee2e6;border-bottom-right-radius:4px;border-top-right-radius:4px}.tabulator .tabulator-footer .tabulator-page.active{background-color:#0d6efd;border-color:#0d6efd;color:#fff}.tabulator .tabulator-footer .tabulator-page:disabled{background:#fff;border-color:#dee2e6;color:#6c757d}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{background:#e9ecef;border-color:#dee2e6;color:#0a58ca}}.tabulator.thead-dark .tabulator-header,.tabulator.thead-dark .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table{background-color:#fff}.tabulator.table:not(.thead-light) .tabulator-header,.tabulator.table:not(.thead-light) .tabulator-header .tabulator-col{background-color:#fff;border-color:#dee2e6;color:#212529}.tabulator.table .tabulator-tableholder{color:#212529}.tabulator.table .tabulator-row{background-color:#fff;border-color:#dee2e6;color:#212529}@media (hover:hover) and (pointer:fine){.tabulator.table .tabulator-row:hover{background-color:#dee2e6}.tabulator.table .tabulator-row:hover .tabulator-cell{background-color:#ced4da}}.tabulator.table .tabulator-row.tabulator-selected{background-color:#9abcea}.tabulator.table .tabulator-footer{border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder{background:#fff!important;border-color:#dee2e6!important}.tabulator.table .tabulator-footer .tabulator-calcs-holder .tabulator-row{background-color:#fff!important;border-color:#dee2e6!important;color:#212529!important}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even{background-color:#e9ecef}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selectable:hover{background-color:#ced4da;cursor:pointer}.tabulator.table-striped:not(.table) .tabulator-row.tabulator-row-even.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator.table-striped.table .tabulator-row:nth-child(2n) .tabulator-cell{background-color:transparent}.tabulator.table-bordered{border:1px solid #dee2e6}.tabulator.table-bordered .tabulator-header .tabulator-col,.tabulator.table-bordered .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid #dee2e6}.tabulator.table-borderless .tabulator-header,.tabulator.table-borderless .tabulator-row{border:none}.tabulator.table-sm .tabulator-header .tabulator-col .tabulator-col-content{padding:5px!important}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row{min-height:26px}.tabulator.table-sm .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:5px!important}.tabulator.table-sm .tabulator-row{padding-bottom:0;padding-top:0}.tabulator.table-sm .tabulator-col-resize-handle{padding:0}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.bg-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.table-active{background:#6c757d!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-primary{background:#cfe2ff!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-secondary{background:#e2e3e5!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-success{background:#d1e7dd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-info{background:#cff4fc!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-warning{background:#fff3cd!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-danger{background:#f8d7da!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-light{background:#f8f9fa!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-dark{background:#212529!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.bg-active{background:#6c757d!important}.tabulator-row{border-bottom:1px solid #dee2e6;min-height:40px}.tabulator-row .tabulator-cell{border-right:none;padding:12px}.tabulator-row .tabulator-cell.tabulator-row-header{background:#fff;border-bottom:none;border-right:1px solid #dee2e6}.tabulator-row .tabulator-cell .tabulator-data-tree-control{border:1px solid #ccc}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-edit-select-list .tabulator-edit-select-list-group,.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:initial;text-align:initial}.tabulator-print-table .tabulator-data-tree-control{color:inherit}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand,.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#ccc}.tabulator-popup-container{background:#fff}.tabulator-edit-list .tabulator-edit-list-item.active{color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{color:#fff}}.tabulator{background-color:#fff;font-size:14px;overflow:hidden;position:relative;text-align:left;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.tabulator[tabulator-layout=fitDataFill] .tabulator-tableholder .tabulator-table{min-width:100%}.tabulator[tabulator-layout=fitDataTable]{display:inline-block}.tabulator.tabulator-block-select,.tabulator.tabulator-ranges .tabulator-cell:not(.tabulator-editing){-webkit-user-select:none;user-select:none}.tabulator .tabulator-header{border-bottom:1px solid #999;box-sizing:border-box;outline:none;overflow:hidden;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap;width:100%}.tabulator .tabulator-header.tabulator-header-hidden{display:none}.tabulator .tabulator-header .tabulator-header-contents{overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-header-contents .tabulator-headers{display:inline-block}.tabulator .tabulator-header .tabulator-col{background:#f9fafb;border-right:1px solid #ddd;box-sizing:border-box;display:inline-flex;flex-direction:column;justify-content:flex-start;overflow:hidden;position:relative;text-align:left;vertical-align:bottom}.tabulator .tabulator-header .tabulator-col.tabulator-moving{background:#dae1e7;border:1px solid #999;pointer-events:none;position:absolute}.tabulator .tabulator-header .tabulator-col.tabulator-range-highlight{background-color:#d6d6d6;color:#000}.tabulator .tabulator-header .tabulator-col.tabulator-range-selected{background-color:#3876ca;color:#fff}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{box-sizing:border-box;padding:4px;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button{padding:0 8px}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button:hover{cursor:pointer;opacity:.6}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder{position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title.tabulator-col-title-wrap{text-overflow:clip;white-space:normal}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor{background:#fff;border:1px solid #999;box-sizing:border-box;padding:1px;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-header-popup-button+.tabulator-title-editor{width:calc(100% - 22px)}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{align-items:center;bottom:0;display:flex;position:absolute;right:4px;top:0}.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-left:6px solid transparent;border-right:6px solid transparent;height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{border-top:1px solid #ddd;display:flex;margin-right:-1px;overflow:hidden;position:relative}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter{box-sizing:border-box;margin-top:2px;position:relative;text-align:center;width:100%}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea{height:auto!important}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg{margin-top:3px}.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear{height:0;width:0}.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:25px}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable.tabulator-col-sorter-element:hover{background-color:#dae1e7;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter{color:#bbb}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #bbb;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-bottom:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:6px solid #666;border-top:none}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter{color:#666}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter.tabulator-col-sorter-element .tabulator-arrow:hover{border-top:6px solid #555;cursor:pointer}}.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom:none;border-top:6px solid #666;color:#666}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title{align-items:center;display:flex;justify-content:center;text-orientation:mixed;writing-mode:vertical-rl}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title{transform:rotate(180deg)}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title{padding-right:0;padding-top:20px}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title{padding-bottom:20px;padding-right:0}.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-sorter{justify-content:center;inset:4px 0 auto}.tabulator .tabulator-header .tabulator-frozen{left:0;position:sticky;z-index:11}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator .tabulator-header .tabulator-calcs-holder{background:#fff!important;border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;display:inline-block}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-header .tabulator-frozen-rows-holder{display:inline-block}.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty{display:none}.tabulator .tabulator-tableholder{-webkit-overflow-scrolling:touch;overflow:auto;position:relative;white-space:nowrap;width:100%}.tabulator .tabulator-tableholder:focus{outline:none}.tabulator .tabulator-tableholder .tabulator-placeholder{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-width:100%;width:100%}.tabulator .tabulator-tableholder .tabulator-placeholder[tabulator-render-mode=virtual]{min-height:100%}.tabulator .tabulator-tableholder .tabulator-placeholder .tabulator-placeholder-contents{color:#ccc;display:inline-block;font-size:20px;font-weight:700;padding:10px;text-align:center;white-space:normal}.tabulator .tabulator-tableholder .tabulator-table{background-color:#fff;color:#333;display:inline-block;overflow:visible;position:relative;white-space:nowrap}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#e2e2e2!important;font-weight:700}.tabulator .tabulator-tableholder .tabulator-range-overlay{inset:0;pointer-events:none;position:absolute;z-index:10}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range{border:1px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;position:absolute;right:-3px;width:6px}.tabulator .tabulator-tableholder .tabulator-range-overlay .tabulator-range-cell-active{border:2px solid #2975dd;box-sizing:border-box;position:absolute}.tabulator .tabulator-footer{background-color:#fff;border-top:1px solid #999;color:#555;font-weight:700;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;white-space:nowrap}.tabulator .tabulator-footer .tabulator-footer-contents{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:5px 10px}.tabulator .tabulator-footer .tabulator-footer-contents:empty{display:none}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:-5px;overflow-x:auto}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab{border:1px solid rgba(34,36,38,.15);border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:none;display:inline-block;font-size:.9em;padding:5px}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab:hover{cursor:pointer;opacity:.7}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{background:#fff}.tabulator .tabulator-footer .tabulator-calcs-holder{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;overflow:hidden;text-align:left;width:100%}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{display:inline-block}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle{display:none}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{margin-bottom:-5px}.tabulator .tabulator-footer>*+.tabulator-page-counter{margin-left:10px}.tabulator .tabulator-footer .tabulator-page-counter{font-weight:400}.tabulator .tabulator-footer .tabulator-paginator{color:#555;flex:1;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:right}.tabulator .tabulator-footer .tabulator-page-size{border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 5px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-pages{margin:0 7px}.tabulator .tabulator-footer .tabulator-page{background:#fff3;border:1px solid #aaa;border-radius:3px;display:inline-block;margin:0 2px;padding:2px 5px}.tabulator .tabulator-footer .tabulator-page.active{color:#d00}.tabulator .tabulator-footer .tabulator-page:disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#0003;color:#fff;cursor:pointer}}.tabulator .tabulator-col-resize-handle{display:inline-block;margin-left:-3px;margin-right:-3px;position:relative;vertical-align:middle;width:6px;z-index:11}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-col-resize-handle:hover{cursor:ew-resize}}.tabulator .tabulator-col-resize-handle:last-of-type{margin-right:0;width:3px}.tabulator .tabulator-col-resize-guide{background-color:#999;height:100%;margin-left:-.5px;opacity:.5;position:absolute;top:0;width:4px}.tabulator .tabulator-row-resize-guide{background-color:#999;height:4px;left:0;margin-top:-.5px;opacity:.5;position:absolute;width:100%}.tabulator .tabulator-alert{align-items:center;background:#0006;display:flex;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%;z-index:100}.tabulator .tabulator-alert .tabulator-alert-msg{background:#fff;border-radius:10px;display:inline-block;font-size:16px;font-weight:700;margin:0 auto;padding:10px 20px}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-msg{border:4px solid #333;color:#000}.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-error{border:4px solid #d00;color:#590000}.tabulator-row{background-color:#fff;box-sizing:border-box;min-height:22px;position:relative}.tabulator-row.tabulator-row-even{background-color:#efefef}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background-color:#bbb;cursor:pointer}}.tabulator-row.tabulator-selected{background-color:#9abcea}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc;cursor:pointer}}.tabulator-row.tabulator-row-moving{background:#fff;border:1px solid #000}.tabulator-row.tabulator-moving{border-bottom:1px solid #ddd;border-top:1px solid #ddd;pointer-events:none;position:absolute;z-index:15}.tabulator-row.tabulator-range-highlight .tabulator-cell.tabulator-range-row-header{background-color:#d6d6d6;color:#000}.tabulator-row.tabulator-range-highlight.tabulator-range-selected .tabulator-cell.tabulator-range-row-header,.tabulator-row.tabulator-range-selected .tabulator-cell.tabulator-range-row-header{background-color:#3876ca;color:#fff}.tabulator-row .tabulator-row-resize-handle{bottom:0;height:5px;left:0;position:absolute;right:0}.tabulator-row .tabulator-row-resize-handle.prev{bottom:auto;top:0}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-row-resize-handle:hover{cursor:ns-resize}}.tabulator-row .tabulator-responsive-collapse{border-bottom:1px solid #ddd;border-top:1px solid #ddd;box-sizing:border-box;padding:5px}.tabulator-row .tabulator-responsive-collapse:empty{display:none}.tabulator-row .tabulator-responsive-collapse table{font-size:14px}.tabulator-row .tabulator-responsive-collapse table tr td{position:relative}.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type{padding-right:10px}.tabulator-row .tabulator-cell{border-right:1px solid #ddd;box-sizing:border-box;display:inline-block;outline:none;overflow:hidden;padding:4px;position:relative;text-overflow:ellipsis;white-space:nowrap}.tabulator-row .tabulator-cell.tabulator-row-header{background:#f9fafb;border-bottom:1px solid #ddd;border-right:1px solid rgba(34,36,38,.15)}.tabulator-row .tabulator-cell.tabulator-frozen{background-color:inherit;display:inline-block;left:0;position:sticky;z-index:11}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-right:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-left:2px solid #ddd}.tabulator-row .tabulator-cell.tabulator-editing{border:1px solid #1d68cd;outline:none;padding:0}.tabulator-row .tabulator-cell.tabulator-editing input,.tabulator-row .tabulator-cell.tabulator-editing select{background:transparent;border:1px;outline:none}.tabulator-row .tabulator-cell.tabulator-validation-fail{border:1px solid #db2828}.tabulator-row .tabulator-cell.tabulator-validation-fail input,.tabulator-row .tabulator-cell.tabulator-validation-fail select{background:transparent;border:1px;color:#db2828}.tabulator-row .tabulator-cell.tabulator-row-handle{align-items:center;display:inline-flex;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box{width:80%}.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar{background:#666;height:3px;margin-top:2px;width:100%}.tabulator-row .tabulator-cell.tabulator-range-selected:not(.tabulator-range-only-cell-selected):not(.tabulator-range-row-header){background-color:#9abcea}.tabulator-row .tabulator-cell .tabulator-data-tree-branch-empty{display:inline-block;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{align-items:center;background:#666;border-radius:20px;display:inline-flex;font-size:1.1em;font-weight:700;height:15px;justify-content:center;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;width:15px}@media (hover:hover) and (pointer:fine){.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover{cursor:pointer;opacity:.7}}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close{display:initial}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open{display:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle svg{stroke:#fff}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close{display:none}.tabulator-row .tabulator-cell .tabulator-traffic-light{border-radius:14px;display:inline-block;height:14px;width:14px}.tabulator-row.tabulator-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-row.tabulator-group.tabulator-group-level-1{padding-left:30px}.tabulator-row.tabulator-group.tabulator-group-level-2{padding-left:50px}.tabulator-row.tabulator-group.tabulator-group-level-3{padding-left:70px}.tabulator-row.tabulator-group.tabulator-group-level-4{padding-left:90px}.tabulator-row.tabulator-group.tabulator-group-level-5{padding-left:110px}.tabulator-row.tabulator-group .tabulator-group-toggle{display:inline-block}.tabulator-row.tabulator-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-row.tabulator-group span{color:#d00;margin-left:10px}.tabulator-toggle{background:#dcdcdc;border:1px solid #ccc;box-sizing:border-box;display:flex;flex-direction:row}.tabulator-toggle.tabulator-toggle-on{background:#1c6cc2}.tabulator-toggle .tabulator-toggle-switch{background:#fff;border:1px solid #ccc;box-sizing:border-box}.tabulator-popup-container{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #ddd;box-shadow:0 0 5px #0003;box-sizing:border-box;display:inline-block;font-size:14px;overflow-y:auto;position:absolute;z-index:10000}.tabulator-popup{border-radius:3px;padding:5px}.tabulator-tooltip{border-radius:2px;box-shadow:none;font-size:12px;max-width:Min(500px,100%);padding:3px 5px;pointer-events:none}.tabulator-menu .tabulator-menu-item{box-sizing:border-box;padding:5px 10px;position:relative;-webkit-user-select:none;user-select:none}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-disabled{opacity:.5}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#efefef;cursor:pointer}}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu{padding-right:25px}.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{border-color:#ddd;border-style:solid;border-width:1px 1px 0 0;content:\\\"\\\";display:inline-block;height:7px;position:absolute;right:10px;top:calc(5px + .4em);transform:rotate(45deg);vertical-align:top;width:7px}.tabulator-menu .tabulator-menu-separator{border-top:1px solid #ddd}.tabulator-edit-list{-webkit-overflow-scrolling:touch;font-size:14px;max-height:200px;overflow-y:auto}.tabulator-edit-list .tabulator-edit-list-item{color:#333;outline:none;padding:4px}.tabulator-edit-list .tabulator-edit-list-item.active{background:#1d68cd;color:#fff}.tabulator-edit-list .tabulator-edit-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}.tabulator-edit-list .tabulator-edit-list-item.focused{outline:1px solid #1d68cd}@media (hover:hover) and (pointer:fine){.tabulator-edit-list .tabulator-edit-list-item:hover{background:#1d68cd;color:#fff;cursor:pointer}}.tabulator-edit-list .tabulator-edit-list-placeholder{color:#333;padding:4px;text-align:center}.tabulator-edit-list .tabulator-edit-list-group{border-bottom:1px solid #ddd;color:#333;font-weight:700;padding:6px 4px 4px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-2,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-2{padding-left:12px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-3,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-3{padding-left:20px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-4,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-4{padding-left:28px}.tabulator-edit-list .tabulator-edit-list-group.tabulator-edit-list-group-level-5,.tabulator-edit-list .tabulator-edit-list-item.tabulator-edit-list-group-level-5{padding-left:36px}.tabulator.tabulator-ltr{direction:ltr}.tabulator.tabulator-rtl{direction:rtl;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col{border-left:1px solid #ddd;border-right:initial;text-align:initial}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols{margin-left:-1px;margin-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-left:25px;padding-right:0}.tabulator.tabulator-rtl .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{left:8px;right:auto}.tabulator.tabulator-rtl .tabulator-tableholder .tabulator-range-overlay .tabulator-range.tabulator-range-active:after{background-color:#2975dd;border-radius:999px;bottom:-3px;content:\\\"\\\";height:6px;left:-3px;position:absolute;right:auto;width:6px}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell{border-left:1px solid #ddd;border-right:initial}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-branch{border-bottom-left-radius:0;border-bottom-right-radius:1px;border-left:initial;border-right:2px solid #ddd;margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell .tabulator-data-tree-control{margin-left:5px;margin-right:0}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-left{border-left:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-cell.tabulator-frozen.tabulator-frozen-right{border-right:2px solid #ddd}.tabulator.tabulator-rtl .tabulator-row .tabulator-col-resize-handle:last-of-type{margin-left:0;margin-right:-3px;width:3px}.tabulator.tabulator-rtl .tabulator-footer .tabulator-calcs-holder{text-align:initial}.tabulator-print-fullscreen{inset:0;position:absolute;z-index:10000}body.tabulator-print-fullscreen-hide>:not(.tabulator-print-fullscreen){display:none!important}.tabulator-print-table{border-collapse:collapse}.tabulator-print-table .tabulator-data-tree-branch{border-bottom:2px solid #ddd;border-bottom-left-radius:1px;border-left:2px solid #ddd;display:inline-block;height:9px;margin-right:5px;margin-top:-9px;vertical-align:middle;width:7px}.tabulator-print-table .tabulator-print-table-group{background:#ccc;border-bottom:1px solid #999;border-right:1px solid #ddd;border-top:1px solid #999;box-sizing:border-box;font-weight:700;min-width:100%;padding:5px 5px 5px 10px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-print-table-group:hover{background-color:#0000001a;cursor:pointer}}.tabulator-print-table .tabulator-print-table-group.tabulator-group-visible .tabulator-arrow{border-bottom:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #666;margin-right:10px}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-1 td{padding-left:30px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-2 td{padding-left:50px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-3 td{padding-left:70px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-4 td{padding-left:90px!important}.tabulator-print-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-print-table .tabulator-print-table-group span{color:#d00;margin-left:10px}.tabulator-print-table .tabulator-data-tree-control{align-items:center;background:#0000001a;border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-data-tree-control:hover{background:#0003;cursor:pointer}}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:\\\"\\\";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator{border:1px solid rgba(34,36,38,.15);border-radius:.28571rem;box-shadow:none;color:#000000de;margin:1em 0;width:100%}.tabulator .tabulator-header{border-bottom:1px solid rgba(34,36,38,.1);box-shadow:none;color:#000000de;font-style:none;font-weight:700;text-transform:none}.tabulator .tabulator-header,.tabulator .tabulator-header .tabulator-col{background-color:#f9fafb;border-right:none}.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:.92857em .78571em}.tabulator .tabulator-tableholder .tabulator-table{background-color:transparent}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:#f2f2f2!important}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top{border-bottom:2px solid #ddd}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom{border-top:2px solid #ddd}.tabulator .tabulator-footer{background:#f9fafb;border-top:1px solid rgba(34,36,38,.15);box-shadow:none;color:#000000de;font-style:normal;font-weight:400;padding:.78571em;text-align:right;text-transform:none}.tabulator .tabulator-footer .tabulator-calcs-holder{background:#fff!important;margin:-.78571em -.78571em .78571em}.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row{background:#fff!important}.tabulator .tabulator-footer .tabulator-calcs-holder:only-child{border-bottom:none;margin-bottom:-.78571em}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs{margin-top:calc(-.78571em - 5px)}.tabulator .tabulator-footer .tabulator-spreadsheet-tabs .tabulator-spreadsheet-tab.tabulator-spreadsheet-tab-active{color:#d00}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive{background:#fcfff5!important;box-shadow:inset 0 0 #a3c293;color:#21ba45!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.positive:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.positive:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.negative:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.negative:hover{background:#ffe7e7!important;color:#d41616!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error{background:#fff6f6!important;box-shadow:inset 0 0 #e0b4b4;color:#db2828!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.error:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.error:hover{background:#ffe7e7!important;color:#d12323!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning{background:#fffaf3!important;box-shadow:inset 0 0 #c9ba9b;color:#f2c037!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.warning:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.warning:hover{background:#fff4e4!important;color:#f1bb29!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active:hover,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active:hover{background:#f7ffe6!important;color:#13ae38!important}}.tabulator .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell.active,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.active{color:#0003;pointer-events:none}@media (hover:hover) and (pointer:fine){.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.disabled:hover{color:#0003;pointer-events:none}}.tabulator.inverted{background:#333;border:none;color:#ffffffe6}.tabulator.inverted .tabulator-header{background-color:#00000026;color:#ffffffe6}.tabulator.inverted .tabulator-header,.tabulator.inverted .tabulator-header .tabulator-col{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row{border:none;color:#ffffffe6}.tabulator.inverted .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-color:#ffffff1a!important}.tabulator.inverted .tabulator-footer{background:#fff}.tabulator.striped .tabulator-row:nth-child(2n){background-color:#f2f2f2}.tabulator.celled{border:1px solid rgba(34,36,38,.15)}.tabulator.celled .tabulator-header .tabulator-col,.tabulator.celled .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:1px solid rgba(34,36,38,.1)}.tabulator[class*=\\\"single line\\\"] .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{border-right:none}.tabulator.red{border-top:.2em solid #db2828}.tabulator.inverted.red{background-color:#db2828!important;color:#fff!important}.tabulator.orange{border-top:.2em solid #f2711c}.tabulator.inverted.orange{background-color:#f2711c!important;color:#fff!important}.tabulator.yellow{border-top:.2em solid #fbbd08}.tabulator.inverted.yellow{background-color:#fbbd08!important;color:#fff!important}.tabulator.olive{border-top:.2em solid #b5cc18}.tabulator.inverted.olive{background-color:#b5cc18!important;color:#fff!important}.tabulator.green{border-top:.2em solid #21ba45}.tabulator.inverted.green{background-color:#21ba45!important;color:#fff!important}.tabulator.teal{border-top:.2em solid #00b5ad}.tabulator.inverted.teal{background-color:#00b5ad!important;color:#fff!important}.tabulator.blue{border-top:.2em solid #2185d0}.tabulator.inverted.blue{background-color:#2185d0!important;color:#fff!important}.tabulator.violet{border-top:.2em solid #6435c9}.tabulator.inverted.violet{background-color:#6435c9!important;color:#fff!important}.tabulator.purple{border-top:.2em solid #a333c8}.tabulator.inverted.purple{background-color:#a333c8!important;color:#fff!important}.tabulator.pink{border-top:.2em solid #e03997}.tabulator.inverted.pink{background-color:#e03997!important;color:#fff!important}.tabulator.brown{border-top:.2em solid #a5673f}.tabulator.inverted.brown{background-color:#a5673f!important;color:#fff!important}.tabulator.grey{border-top:.2em solid #767676}.tabulator.inverted.grey{background-color:#767676!important;color:#fff!important}.tabulator.black{border-top:.2em solid #1b1c1d}.tabulator.inverted.black{background-color:#1b1c1d!important;color:#fff!important}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content{padding:1em}.tabulator.padded .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:20px}.tabulator.padded .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content{padding:1.5em}.tabulator.padded.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:26px}.tabulator.padded.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:1.5em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content{padding:.5em .7em}.tabulator.compact .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:12px}.tabulator.compact .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.5em .7em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content{padding:.4em .6em}.tabulator.compact.very .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow{top:10px}.tabulator.compact.very .tabulator-tableholder .tabulator-table .tabulator-row .tabulator-cell{padding:.4em .6em}.tabulator-row{border-bottom:1px solid rgba(34,36,38,.1)}.tabulator-row.tabulator-row-even{background-color:#fff}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selectable:hover{background:#e0e0e0!important;box-shadow:inset 0 0 #000000de;color:#000000de!important}}.tabulator-row.tabulator-selected{background-color:#9abcea!important}@media (hover:hover) and (pointer:fine){.tabulator-row.tabulator-selected:hover{background-color:#769bcc!important;cursor:pointer}}.tabulator-row.tabulator-moving{pointer-events:none!important}.tabulator-row .tabulator-cell{border-right:none;padding:.78571em;vertical-align:middle}.tabulator-row .tabulator-cell:last-of-type{border-right:none}.tabulator-row .tabulator-cell.tabulator-row-header{border-bottom:none}.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle{color:#fff}.tabulator-row.tabulator-group{background:#fafafa}.tabulator-row.tabulator-group span{color:#666}.tabulator-menu{background:#fff}@media (hover:hover) and (pointer:fine){.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover{background:#f9fafb}}.tabulator-edit-select-list{background:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active{color:#fff}.tabulator-edit-select-list .tabulator-edit-select-list-item.active.focused{outline:1px solid hsla(0,0%,100%,.5)}@media (hover:hover) and (pointer:fine){.tabulator-edit-select-list .tabulator-edit-select-list-item:hover{color:#fff}}.tabulator-edit-select-list .tabulator-edit-select-list-notice{color:inherit}.tabulator-print-table .tabulator-print-table-group{background:#fafafa}.tabulator-print-table .tabulator-print-table-group span{color:#666}.acp-tabulator-container{width:100%}.acp-tabulator-container:not(.tabulator-bootstrap5):not(.tabulator-semanticui) .tabulator{display:block}.acp-tabulator-container.tabulator-bootstrap5 .tabulator{border-radius:.375rem}.acp-tabulator-container.tabulator-semanticui .tabulator{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}.acp-tabulator-container .tabulator-row.tabulator-selectable:hover{background-color:#0000000a;cursor:pointer;transition:background-color .2s ease}.acp-tabulator-container .tabulator-row.tabulator-selected{background-color:#1976d21f}@media (max-width: 768px){.acp-tabulator-container .tabulator-header{font-size:.875rem}.acp-tabulator-container .tabulator-cell{font-size:.875rem;padding:8px 6px}}.acp-tabulator-container .tabulator-loader{background:#fffc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar{width:8px;height:8px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.acp-tabulator-container .tabulator-tableholder::-webkit-scrollbar-thumb:hover{background:#a8a8a8}\\n\"] }]\n }], propDecorators: { data: [{\n type: Input\n }], columns: [{\n type: Input\n }], height: [{\n type: Input\n }], layout: [{\n type: Input\n }], dataTree: [{\n type: Input\n }], dataTreeChildField: [{\n type: Input\n }], dataTreeStartExpanded: [{\n type: Input\n }], dataTreeSelectPropagate: [{\n type: Input\n }], selectable: [{\n type: Input\n }], reactiveData: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], autoResize: [{\n type: Input\n }], theme: [{\n type: Input\n }], options: [{\n type: Input\n }], cellEdited: [{\n type: Output\n }], rowClick: [{\n type: Output\n }], rowSelected: [{\n type: Output\n }], tableReady: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYnVsYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvY3VzdG9tLXRhYnVsYXRvci9jdXN0b20tdGFidWxhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9jdXN0b20tdGFidWxhdG9yL2N1c3RvbS10YWJ1bGF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsSUFBSSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHOUYsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7QUFVM0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxjQUFjO0lBQ0wsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQVUsRUFBRSxDQUFDO0lBRTdCLGdCQUFnQjtJQUNQLE1BQU0sR0FBNEIsT0FBTyxDQUFDO0lBQzFDLE1BQU0sR0FBZ0UsU0FBUyxDQUFDO0lBRXpGLHdCQUF3QjtJQUNmLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUM5Qix1QkFBdUIsR0FBRyxLQUFLLENBQUM7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aEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGN1c3RvbS10YWJ1bGF0b3IuY29tcG9uZW50LnRzXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQYWdlTW9kdWxlLCBSZWFjdGl2ZURhdGFNb2R1bGUsIFRhYnVsYXRvckZ1bGwgYXMgVGFidWxhdG9yIH0gZnJvbSAndGFidWxhdG9yLXRhYmxlcyc7XG5pbXBvcnQgeyBUYWJ1bGF0b3JUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuVGFidWxhdG9yLnJlZ2lzdGVyTW9kdWxlKFtQYWdlTW9kdWxlLCBSZWFjdGl2ZURhdGFNb2R1bGVdKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLXRhYnVsYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRhYnVsYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS10YWJ1bGF0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGFidWxhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyBEYXRhIGlucHV0c1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zOiBhbnlbXSA9IFtdO1xuXG4gIC8vIExheW91dCBpbnB1dHNcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCBmYWxzZSA9ICc0MDBweCc7XG4gIEBJbnB1dCgpIGxheW91dDogJ2ZpdERhdGEnIHwgJ2ZpdENvbHVtbnMnIHwgJ2ZpdERhdGFGaWxsJyB8ICdmaXREYXRhU3RyZXRjaCcgPSAnZml0RGF0YSc7XG5cbiAgLy8gVHJlZSBzdHJ1Y3R1cmUgaW5wdXRzXG4gIEBJbnB1dCgpIGRhdGFUcmVlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRhdGFUcmVlQ2hpbGRGaWVsZCA9ICdjaGlsZHJlbic7XG4gIEBJbnB1dCgpIGRhdGFUcmVlU3RhcnRFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkYXRhVHJlZVNlbGVjdFByb3BhZ2F0ZSA9IGZhbHNlO1xuXG4gIC8vIEJlaGF2aW9yIGlucHV0c1xuICBASW5wdXQoKSBzZWxlY3RhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVhY3RpdmVEYXRhID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnTm8gZGF0YSBhdmFpbGFibGUnO1xuICBASW5wdXQoKSBhdXRvUmVzaXplID0gdHJ1ZTtcblxuICAvLyBUaGVtZSBjb25maWd1cmF0aW9uXG4gIEBJbnB1dCgpIHRoZW1lOiBUYWJ1bGF0b3JUaGVtZSA9IHsgbmFtZTogJ2RlZmF1bHQnIH07XG5cbiAgLy8gQ3VzdG9tIG9wdGlvbnNcbiAgQElucHV0KCkgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIC8vIEV2ZW50c1xuICBAT3V0cHV0KCkgY2VsbEVkaXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB0YWJsZVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJ1bGF0b3I+KCk7XG5cbiAgcHJpdmF0ZSBfdGFidWxhdG9yITogVGFidWxhdG9yO1xuXG4gIC8vIE1hZGUgcHVibGljIGZvciB0ZW1wbGF0ZSBhY2Nlc3NcbiAgcHVibGljIGNvbnRhaW5lcklkID0gYGFjcC10YWJ1bGF0b3ItJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplVGFibGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddICYmICFjaGFuZ2VzWydkYXRhJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snY29sdW1ucyddICYmICFjaGFuZ2VzWydjb2x1bW5zJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbHVtbnMoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1sndGhlbWUnXSAmJiAhY2hhbmdlc1sndGhlbWUnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVRhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUYWJsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdGFidWxhdG9yKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lUYWJsZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY29udGFpbmVySWQpO1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RhYnVsYXRvciBjb250YWluZXIgbm90IGZvdW5kJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnOiBhbnkgPSB7XG4gICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMsXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxuICAgICAgbGF5b3V0OiB0aGlzLmxheW91dCxcbiAgICAgIGRhdGFUcmVlOiB0aGlzLmRhdGFUcmVlLFxuICAgICAgZGF0YVRyZWVDaGlsZEZpZWxkOiB0aGlzLmRhdGFUcmVlQ2hpbGRGaWVsZCxcbiAgICAgIGRhdGFUcmVlU3RhcnRFeHBhbmRlZDogdGhpcy5kYXRhVHJlZVN0YXJ0RXhwYW5kZWQsXG4gICAgICBkYXRhVHJlZVNlbGVjdFByb3BhZ2F0ZTogdGhpcy5kYXRhVHJlZVNlbGVjdFByb3BhZ2F0ZSxcbiAgICAgIHJlYWN0aXZlRGF0YTogdGhpcy5yZWFjdGl2ZURhdGEsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy5wbGFjZWhvbGRlcixcbiAgICAgIGF1dG9SZXNpemU6IHRoaXMuYXV0b1Jlc2l6ZSxcbiAgICAgIHNlbGVjdGFibGU6IHRoaXMuc2VsZWN0YWJsZSxcbiAgICAgIHJlbmRlclZlcnRpY2FsOiAndmlydHVhbCcsXG4gICAgICByZW5kZXJWZXJ0aWNhbEJ1ZmZlcjogMzAwLFxuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5fdGFidWxhdG9yID0gbmV3IFRhYnVsYXRvcihjb250YWluZXIsIGNvbmZpZyk7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUoKTtcbiAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMoKTtcbiAgICAgIHRoaXMudGFibGVSZWFkeS5lbWl0KHRoaXMuX3RhYnVsYXRvcik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluaXRpYWxpemluZyBUYWJ1bGF0b3I6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUaGVtZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbnRhaW5lcklkKTtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAvLyBSZW1vdmUgZXhpc3RpbmcgdGhlbWUgY2xhc3Nlc1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICd0YWJ1bGF0b3ItZGVmYXVsdCcsXG4gICAgICAgICd0YWJ1bGF0b3ItYm9vdHN0cmFwNScsXG4gICAgICAgICd0YWJ1bGF0b3Itc2VtYW50aWN1aScsXG4gICAgICApO1xuXG4gICAgICAvLyBBZGQgY3VycmVudCB0aGVtZSBjbGFzc1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYHRhYnVsYXRvci0ke3RoaXMudGhlbWUubmFtZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3RhYnVsYXRvci5vbignY2VsbEVkaXRlZCcsIGNlbGwgPT4ge1xuICAgICAgdGhpcy5jZWxsRWRpdGVkLmVtaXQoY2VsbCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl90YWJ1bGF0b3Iub24oJ3Jvd0NsaWNrJywgKGUsIHJvdykgPT4ge1xuICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHJvdyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl90YWJ1bGF0b3Iub24oJ3Jvd1NlbGVjdGVkJywgcm93ID0+IHtcbiAgICAgIHRoaXMucm93U2VsZWN0ZWQuZW1pdChyb3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRhKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90YWJ1bGF0b3IpIHtcbiAgICAgIHRoaXMuX3RhYnVsYXRvci5yZXBsYWNlRGF0YSh0aGlzLmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29sdW1ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdGFidWxhdG9yKSB7XG4gICAgICB0aGlzLl90YWJ1bGF0b3Iuc2V0Q29sdW1ucyh0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVRhYmxlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90YWJ1bGF0b3IpIHtcbiAgICAgIHRoaXMuX3RhYnVsYXRvci5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHVibGljIEFQSSBtZXRob2RzXG4gIHB1YmxpYyBnZXRJbnN0YW5jZSgpOiBUYWJ1bGF0b3Ige1xuICAgIHJldHVybiB0aGlzLl90YWJ1bGF0b3I7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90YWJ1bGF0b3IpIHtcbiAgICAgIHRoaXMuX3RhYnVsYXRvci5yZWRyYXcoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2lkXT1cImNvbnRhaW5lcklkXCIgY2xhc3M9XCJhY3AtdGFidWxhdG9yLWNvbnRhaW5lclwiPjwvZGl2PiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class GetTotalPipe {\n transform(colName, dataSource) {\n return this.getTotal(colName, dataSource) || '';\n }\n /**\n * Calculate and return the total (sum) of all the column --> the column must be number\n */\n getTotal(colName, dataSource) {\n const total = dataSource\n .map(row => row[colName])\n .reduce((acc, value) => (value ? acc + Number(value) : acc), 0);\n return total?.toFixed(2);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: GetTotalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.1\", ngImport: i0, type: GetTotalPipe, isStandalone: true, name: \"getTotal\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: GetTotalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'getTotal',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRvdGFsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvcGlwZXMvZ2V0LXRvdGFsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFNBQVMsQ0FBQyxPQUFlLEVBQUUsVUFBaUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLE9BQWUsRUFBRSxVQUFpQjtRQUN6QyxNQUFNLEtBQUssR0FBRyxVQUFVO2FBQ3JCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7dUdBYlUsWUFBWTtxR0FBWixZQUFZOzsyRkFBWixZQUFZO2tCQUp4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO29CQUNoQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2dldFRvdGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgR2V0VG90YWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShjb2xOYW1lOiBzdHJpbmcsIGRhdGFTb3VyY2U6IGFueVtdKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRUb3RhbChjb2xOYW1lLCBkYXRhU291cmNlKSB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgYW5kIHJldHVybiB0aGUgdG90YWwgKHN1bSkgb2YgYWxsIHRoZSBjb2x1bW4gLS0+IHRoZSBjb2x1bW4gbXVzdCBiZSBudW1iZXJcbiAgICovXG4gIGdldFRvdGFsKGNvbE5hbWU6IHN0cmluZywgZGF0YVNvdXJjZTogYW55W10pOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gZGF0YVNvdXJjZVxuICAgICAgLm1hcChyb3cgPT4gcm93W2NvbE5hbWVdKVxuICAgICAgLnJlZHVjZSgoYWNjLCB2YWx1ZSkgPT4gKHZhbHVlID8gYWNjICsgTnVtYmVyKHZhbHVlKSA6IGFjYyksIDApO1xuICAgIHJldHVybiB0b3RhbD8udG9GaXhlZCgyKTtcbiAgfVxufVxuIl19","import { inject, Pipe } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { TranslocoService } from '@jsverse/transloco';\nimport * as i0 from \"@angular/core\";\nexport class StatusDisplayPipe {\n sanitizer = inject(DomSanitizer);\n transloco = inject(TranslocoService, { optional: true });\n transform(isActive, options = {}) {\n const { gender = 'neutral', showIcon = true, customActiveText, customInactiveText, textClass = '', iconClass = '', } = options;\n const text = this.getStatusText(isActive, gender, customActiveText, customInactiveText);\n const icon = isActive ? 'check_circle' : 'cancel';\n const colorClass = isActive ? 'text-green-500' : 'text-red-500';\n const combinedIconClass = `${colorClass} align-middle mr-1 ${iconClass}`.trim();\n const combinedTextClass = `align-middle ${textClass}`.trim();\n let html = '';\n if (showIcon) {\n html += `<mat-icon class=\"${combinedIconClass}\" fontIcon=\"${icon}\"></mat-icon>`;\n }\n html += `<span class=\"${combinedTextClass}\">${text}</span>`;\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n getStatusText(isActive, gender, customActive, customInactive) {\n if (customActive && isActive)\n return customActive;\n if (customInactive && !isActive)\n return customInactive;\n if (!this.transloco)\n return this.getFallbackText(isActive, gender);\n const translationKey = this.getTranslationKey(isActive, gender);\n const translation = this.transloco.translate(translationKey);\n return translation !== translationKey ? translation : this.getFallbackText(isActive, gender);\n }\n getTranslationKey(isActive, gender) {\n const base = isActive ? 'status.active' : 'status.inactive';\n return gender !== 'neutral'\n ? `${base}.${gender}`\n : base;\n }\n getFallbackText(isActive, gender) {\n const lang = this.transloco?.getActiveLang() || 'en';\n const isSpanish = lang.startsWith('es');\n if (!isSpanish) {\n return isActive ? 'Active' : 'Inactive';\n }\n if (isActive) {\n return gender === 'female' ? 'Activa' : 'Activo';\n }\n else {\n return gender === 'female' ? 'Inactiva' : 'Inactivo';\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: StatusDisplayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.1\", ngImport: i0, type: StatusDisplayPipe, isStandalone: true, name: \"statusDisplay\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: StatusDisplayPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'statusDisplay',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWRpc3BsYXkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9waXBlcy9zdGF0dXMtZGlzcGxheS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBd0J0RCxNQUFNLE9BQU8saUJBQWlCO0lBQ3BCLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRWpFLFNBQVMsQ0FBQyxRQUFpQixFQUFFLFVBQXlCLEVBQUU7UUFDdEQsTUFBTSxFQUNKLE1BQU0sR0FBRyxTQUFTLEVBQ2xCLFFBQVEsR0FBRyxJQUFJLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEdBQ2YsR0FBRyxPQUFPLENBQUM7UUFFWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN4RixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNoRSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsVUFBVSxzQkFBc0IsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEYsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0QsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksSUFBSSxvQkFBb0IsaUJBQWlCLGVBQWUsSUFBSSxlQUFlLENBQUM7UUFDbEYsQ0FBQztRQUVELElBQUksSUFBSSxnQkFBZ0IsaUJBQWlCLEtBQUssSUFBSSxTQUFTLENBQUM7UUFFNUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxhQUFhLENBQ25CLFFBQWlCLEVBQ2pCLE1BQW9CLEVBQ3BCLFlBQXFCLEVBQ3JCLGNBQXVCO1FBRXZCLElBQUksWUFBWSxJQUFJLFFBQVE7WUFBRSxPQUFPLFlBQVksQ0FBQztRQUNsRCxJQUFJLGNBQWMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLGNBQWMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0QsT0FBTyxXQUFXLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUFpQixFQUFFLE1BQW9CO1FBQy9ELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RCxPQUFPLE1BQU0sS0FBSyxTQUFTO1lBQ3pCLENBQUMsQ0FBRSxHQUFHLElBQUksSUFBSSxNQUFNLEVBQXFCO1lBQ3pDLENBQUMsQ0FBRSxJQUF1QixDQUFDO0lBQy9CLENBQUM7SUFFTyxlQUFlLENBQUMsUUFBaUIsRUFBRSxNQUFvQjtRQUM3RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQztRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO3VHQW5FVSxpQkFBaUI7cUdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG50eXBlIFN0YXR1c0dlbmRlciA9ICdtYWxlJyB8ICdmZW1hbGUnIHwgJ25ldXRyYWwnO1xuXG5pbnRlcmZhY2UgU3RhdHVzT3B0aW9ucyB7XG4gIGdlbmRlcj86IFN0YXR1c0dlbmRlcjtcbiAgc2hvd0ljb24/OiBib29sZWFuO1xuICBjdXN0b21BY3RpdmVUZXh0Pzogc3RyaW5nO1xuICBjdXN0b21JbmFjdGl2ZVRleHQ/OiBzdHJpbmc7XG4gIHRleHRDbGFzcz86IHN0cmluZztcbiAgaWNvbkNsYXNzPzogc3RyaW5nO1xufVxuXG50eXBlIFRyYW5zbGF0aW9uS2V5ID1cbiAgfCAnc3RhdHVzLmFjdGl2ZSdcbiAgfCAnc3RhdHVzLmluYWN0aXZlJ1xuICB8ICdzdGF0dXMuYWN0aXZlLm1hbGUnXG4gIHwgJ3N0YXR1cy5hY3RpdmUuZmVtYWxlJ1xuICB8ICdzdGF0dXMuaW5hY3RpdmUubWFsZSdcbiAgfCAnc3RhdHVzLmluYWN0aXZlLmZlbWFsZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3N0YXR1c0Rpc3BsYXknLFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNEaXNwbGF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIHRyYW5zbG9jbyA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHRyYW5zZm9ybShpc0FjdGl2ZTogYm9vbGVhbiwgb3B0aW9uczogU3RhdHVzT3B0aW9ucyA9IHt9KTogU2FmZUh0bWwge1xuICAgIGNvbnN0IHtcbiAgICAgIGdlbmRlciA9ICduZXV0cmFsJyxcbiAgICAgIHNob3dJY29uID0gdHJ1ZSxcbiAgICAgIGN1c3RvbUFjdGl2ZVRleHQsXG4gICAgICBjdXN0b21JbmFjdGl2ZVRleHQsXG4gICAgICB0ZXh0Q2xhc3MgPSAnJyxcbiAgICAgIGljb25DbGFzcyA9ICcnLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZ2V0U3RhdHVzVGV4dChpc0FjdGl2ZSwgZ2VuZGVyLCBjdXN0b21BY3RpdmVUZXh0LCBjdXN0b21JbmFjdGl2ZVRleHQpO1xuICAgIGNvbnN0IGljb24gPSBpc0FjdGl2ZSA/ICdjaGVja19jaXJjbGUnIDogJ2NhbmNlbCc7XG4gICAgY29uc3QgY29sb3JDbGFzcyA9IGlzQWN0aXZlID8gJ3RleHQtZ3JlZW4tNTAwJyA6ICd0ZXh0LXJlZC01MDAnO1xuICAgIGNvbnN0IGNvbWJpbmVkSWNvbkNsYXNzID0gYCR7Y29sb3JDbGFzc30gYWxpZ24tbWlkZGxlIG1yLTEgJHtpY29uQ2xhc3N9YC50cmltKCk7XG4gICAgY29uc3QgY29tYmluZWRUZXh0Q2xhc3MgPSBgYWxpZ24tbWlkZGxlICR7dGV4dENsYXNzfWAudHJpbSgpO1xuXG4gICAgbGV0IGh0bWwgPSAnJztcblxuICAgIGlmIChzaG93SWNvbikge1xuICAgICAgaHRtbCArPSBgPG1hdC1pY29uIGNsYXNzPVwiJHtjb21iaW5lZEljb25DbGFzc31cIiBmb250SWNvbj1cIiR7aWNvbn1cIj48L21hdC1pY29uPmA7XG4gICAgfVxuXG4gICAgaHRtbCArPSBgPHNwYW4gY2xhc3M9XCIke2NvbWJpbmVkVGV4dENsYXNzfVwiPiR7dGV4dH08L3NwYW4+YDtcblxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RhdHVzVGV4dChcbiAgICBpc0FjdGl2ZTogYm9vbGVhbixcbiAgICBnZW5kZXI6IFN0YXR1c0dlbmRlcixcbiAgICBjdXN0b21BY3RpdmU/OiBzdHJpbmcsXG4gICAgY3VzdG9tSW5hY3RpdmU/OiBzdHJpbmcsXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKGN1c3RvbUFjdGl2ZSAmJiBpc0FjdGl2ZSkgcmV0dXJuIGN1c3RvbUFjdGl2ZTtcbiAgICBpZiAoY3VzdG9tSW5hY3RpdmUgJiYgIWlzQWN0aXZlKSByZXR1cm4gY3VzdG9tSW5hY3RpdmU7XG4gICAgaWYgKCF0aGlzLnRyYW5zbG9jbykgcmV0dXJuIHRoaXMuZ2V0RmFsbGJhY2tUZXh0KGlzQWN0aXZlLCBnZW5kZXIpO1xuXG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSB0aGlzLmdldFRyYW5zbGF0aW9uS2V5KGlzQWN0aXZlLCBnZW5kZXIpO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKHRyYW5zbGF0aW9uS2V5KTtcblxuICAgIHJldHVybiB0cmFuc2xhdGlvbiAhPT0gdHJhbnNsYXRpb25LZXkgPyB0cmFuc2xhdGlvbiA6IHRoaXMuZ2V0RmFsbGJhY2tUZXh0KGlzQWN0aXZlLCBnZW5kZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvbktleShpc0FjdGl2ZTogYm9vbGVhbiwgZ2VuZGVyOiBTdGF0dXNHZW5kZXIpOiBUcmFuc2xhdGlvbktleSB7XG4gICAgY29uc3QgYmFzZSA9IGlzQWN0aXZlID8gJ3N0YXR1cy5hY3RpdmUnIDogJ3N0YXR1cy5pbmFjdGl2ZSc7XG4gICAgcmV0dXJuIGdlbmRlciAhPT0gJ25ldXRyYWwnXG4gICAgICA/IChgJHtiYXNlfS4ke2dlbmRlcn1gIGFzIFRyYW5zbGF0aW9uS2V5KVxuICAgICAgOiAoYmFzZSBhcyBUcmFuc2xhdGlvbktleSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZhbGxiYWNrVGV4dChpc0FjdGl2ZTogYm9vbGVhbiwgZ2VuZGVyOiBTdGF0dXNHZW5kZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLnRyYW5zbG9jbz8uZ2V0QWN0aXZlTGFuZygpIHx8ICdlbic7XG4gICAgY29uc3QgaXNTcGFuaXNoID0gbGFuZy5zdGFydHNXaXRoKCdlcycpO1xuXG4gICAgaWYgKCFpc1NwYW5pc2gpIHtcbiAgICAgIHJldHVybiBpc0FjdGl2ZSA/ICdBY3RpdmUnIDogJ0luYWN0aXZlJztcbiAgICB9XG5cbiAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgIHJldHVybiBnZW5kZXIgPT09ICdmZW1hbGUnID8gJ0FjdGl2YScgOiAnQWN0aXZvJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGdlbmRlciA9PT0gJ2ZlbWFsZScgPyAnSW5hY3RpdmEnIDogJ0luYWN0aXZvJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';\nimport { MatColumnDef, MatFooterRowDef, MatHeaderRowDef, MatNoDataRow, MatRowDef, MatTable, MatTableDataSource, MatTableModule, } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { DatePipe, DecimalPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { GetTotalPipe } from '../../../pipes';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/table\";\nimport * as i2 from \"@angular/material/checkbox\";\nimport * as i3 from \"@angular/material/sort\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/paginator\";\nexport class MatDynamicTableComponent {\n componentRefs = [];\n embeddedViews = [];\n cdr = inject(ChangeDetectorRef);\n showExpand = false;\n showFooter = false;\n locale = 'en-US';\n highlightRowIndex = 0;\n visibleColumns = [];\n columnDefinitions = [];\n showSelectBox = false;\n tableData = [];\n rowTemplate = null;\n expandedDetail = null;\n enablePagination = false;\n paginationConfig = null;\n isLoadingData = false;\n rowSelected = new EventEmitter();\n copyRow = new EventEmitter();\n showExpanded = new EventEmitter();\n hideExpanded = new EventEmitter();\n pageEvent = new EventEmitter();\n isNormalRow = (_, row) => this.expandedElement !== row;\n isExpandedRow = (_, row) => this.expandedElement === row;\n dataSource = new MatTableDataSource([]);\n selection = new SelectionModel(true, []);\n expandedElement = null;\n columnsToDisplayWithExpand = [];\n headerRowDefs;\n rowDefs;\n footerRowDefs;\n columnDefs;\n noDataRow;\n table;\n rows;\n ngOnInit() {\n this.updateColumnsToDisplay();\n this.initializeSelection();\n }\n ngOnChanges(changes) {\n if (changes['tableData']) {\n this.updateTableData();\n }\n if (changes['showExpand'] || changes['visibleColumns'] || changes['columnDefinitions']) {\n this.updateColumnsToDisplay();\n }\n // Trigger change detection for OnPush strategy\n this.cdr.markForCheck();\n }\n ngAfterContentInit() {\n this.registerTableContent();\n this.initializeTable();\n this.cdr.markForCheck();\n }\n ngOnDestroy() {\n this.cleanupDynamicComponents();\n }\n updateTableData() {\n // Clear selection when new data arrives\n this.selection.clear();\n // Update data source\n this.dataSource.data = this.tableData || [];\n // Reset expanded element if it's no longer in the new data\n if (this.expandedElement && !this.dataSource.data.includes(this.expandedElement)) {\n this.expandedElement = null;\n }\n // Trigger change detection\n this.cdr.markForCheck();\n }\n updateColumnsToDisplay() {\n if (!this.visibleColumns.length && this.columnDefinitions) {\n this.visibleColumns = this.columnDefinitions.map(col => col.key);\n this.columnDefinitions.forEach((col, index) => (col.index = index));\n }\n const newColumns = [...this.visibleColumns];\n if (this.showSelectBox && !newColumns.includes('select')) {\n newColumns.unshift('select');\n }\n if (this.showExpand && this.expandedDetail) {\n if (!this.columnDefinitions?.some(col => col.key === 'expand')) {\n this.columnDefinitions = [\n ...(this.columnDefinitions || []),\n {\n key: 'expand',\n label: '',\n type: 'expand',\n index: this.columnDefinitions?.length || 0,\n },\n ];\n }\n if (!newColumns.includes('expand')) {\n newColumns.push('expand');\n }\n }\n this.columnsToDisplayWithExpand = newColumns;\n }\n initializeSelection() {\n this.selection = new SelectionModel(true, []);\n }\n registerTableContent() {\n this.columnDefs.forEach(columnDef => this.table.addColumnDef(columnDef));\n this.rowDefs.forEach(rowDef => this.table.addRowDef(rowDef));\n this.headerRowDefs.forEach(headerRowDef => this.table.addHeaderRowDef(headerRowDef));\n if (this.showFooter) {\n this.footerRowDefs.forEach(footerRowDef => this.table.addFooterRowDef(footerRowDef));\n }\n else {\n this.footerRowDefs.forEach(footerRowDef => this.table.removeFooterRowDef(footerRowDef));\n }\n if (this.noDataRow) {\n this.table.setNoDataRow(this.noDataRow);\n }\n }\n initializeTable() {\n this.dataSource = new MatTableDataSource(this.tableData || []);\n }\n cleanupDynamicComponents() {\n this.componentRefs.forEach(ref => ref.destroy());\n this.embeddedViews.forEach(view => view.destroy());\n }\n isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.dataSource.data.length;\n return numSelected === numRows && numRows > 0;\n }\n masterToggle() {\n this.isAllSelected()\n ? this.selection.clear()\n : this.dataSource.data.forEach(row => this.selection.select(row));\n this.rowSelected.emit(this.selection.selected);\n this.cdr.markForCheck();\n }\n checkboxLabel(row) {\n if (!row) {\n return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\n }\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row`;\n }\n selectRow(row) {\n this.selection.toggle(row);\n this.rowSelected.emit(this.selection.selected);\n this.cdr.markForCheck();\n }\n onExpand(event, element) {\n event.stopPropagation();\n this.expandedElement = this.expandedElement === element ? null : element;\n this.expandedElement ? this.showExpanded.emit(element) : this.hideExpanded.emit(element);\n this.cdr.markForCheck();\n }\n getRowColor(element) {\n return element.colorRow ? { 'background-color': element.colorRow } : {};\n }\n handlePageEvent(e) {\n this.pageEvent.emit(e);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: MatDynamicTableComponent, isStandalone: true, selector: \"acp-mat-dynamic-table\", inputs: { showExpand: \"showExpand\", showFooter: \"showFooter\", locale: \"locale\", highlightRowIndex: \"highlightRowIndex\", visibleColumns: \"visibleColumns\", columnDefinitions: \"columnDefinitions\", showSelectBox: \"showSelectBox\", tableData: \"tableData\", rowTemplate: \"rowTemplate\", expandedDetail: \"expandedDetail\", enablePagination: \"enablePagination\", paginationConfig: \"paginationConfig\", isLoadingData: \"isLoadingData\" }, outputs: { rowSelected: \"rowSelected\", copyRow: \"copyRow\", showExpanded: \"showExpanded\", hideExpanded: \"hideExpanded\", pageEvent: \"pageEvent\" }, queries: [{ propertyName: \"noDataRow\", first: true, predicate: MatNoDataRow, descendants: true }, { propertyName: \"headerRowDefs\", predicate: MatHeaderRowDef }, { propertyName: \"rowDefs\", predicate: MatRowDef }, { propertyName: \"footerRowDefs\", predicate: MatFooterRowDef }, { propertyName: \"columnDefs\", predicate: MatColumnDef }, { propertyName: \"rows\", predicate: ViewContainerRef }], viewQueries: [{ propertyName: \"table\", first: true, predicate: MatTable, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: \"<div class=\\\"mat-table-container\\\">\\n <div class=\\\"table-container small-table\\\">\\n <table #sort=\\\"matSort\\\" [dataSource]=\\\"dataSource.data\\\" mat-table matSort>\\n @if (columnDefinitions) {\\n <!-- Checkbox Column -->\\n @if (showSelectBox) {\\n <ng-container matColumnDef=\\\"select\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? masterToggle() : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel()\\\"\\n [checked]=\\\"selection.hasValue() && isAllSelected()\\\"\\n [indeterminate]=\\\"selection.hasValue() && !isAllSelected()\\\"\\n ></mat-checkbox>\\n </th>\\n <td *matCellDef=\\\"let row\\\" mat-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? selection.toggle(row) : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel(row)\\\"\\n [checked]=\\\"selection.isSelected(row)\\\"\\n ></mat-checkbox>\\n </td>\\n <td *matFooterCellDef mat-footer-cell></td>\\n </ng-container>\\n }\\n\\n <!-- Dynamic Columns -->\\n @for (col of columnDefinitions; track col.key) {\\n <ng-container [matColumnDef]=\\\"col.key\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n {{ col.label }}\\n </th>\\n\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [ngClass]=\\\"{ highlighted: highlightRowIndex === i }\\\"\\n >\\n @if (col.key === 'op') {\\n <div class=\\\"d-flex flex-row gap-1\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"rowTemplate; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n } @else {\\n @switch (col.type) {\\n @case ('image') {\\n <img\\n [src]=\\\"element[col.key]\\\"\\n class=\\\"img-fluid img-thumbnail my-1\\\"\\n width=\\\"50\\\"\\n alt=\\\"\\\"\\n />\\n }\\n @case ('number') {\\n <div>{{ element[col.key] | number: '1.2' : locale }}</div>\\n }\\n @case ('date') {\\n <div>{{ element[col.key] | date: 'dd.MM.yyyy' }}</div>\\n }\\n @case ('expand') {\\n <button\\n mat-icon-button\\n aria-label=\\\"expand row\\\"\\n (click)=\\\"onExpand($event, element)\\\"\\n >\\n @if (expandedElement === element) {\\n <mat-icon>keyboard_arrow_up</mat-icon>\\n } @else {\\n <mat-icon>keyboard_arrow_down</mat-icon>\\n }\\n </button>\\n }\\n @case ('template') {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n col.templateOutlet;\\n context: { $implicit: element, index: i }\\n \\\"\\n ></ng-container>\\n }\\n @case ('custom') {\\n <ng-container #dynamicContent></ng-container>\\n }\\n @default {\\n <div>{{ element[col.key] }}</div>\\n }\\n }\\n }\\n </td>\\n\\n <td *matFooterCellDef mat-footer-cell>\\n @if (col.index === 0) {\\n <div>Total</div>\\n }\\n @if (col.hasFooter) {\\n <div>{{ col.key | getTotal: dataSource.data }}</div>\\n }\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Expanded Detail Row -->\\n @if (showExpand && expandedDetail) {\\n <ng-container matColumnDef=\\\"expandedDetail\\\">\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\"\\n >\\n <div\\n class=\\\"m-0 p-0\\\"\\n [@detailExpand]=\\\"element === expandedElement ? 'expanded' : 'collapsed'\\\"\\n >\\n <ng-container\\n *ngTemplateOutlet=\\\"expandedDetail; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Header -->\\n <tr\\n mat-header-row\\n *matHeaderRowDef=\\\"columnsToDisplayWithExpand; sticky: true\\\"\\n class=\\\"small-header\\\"\\n ></tr>\\n\\n <!-- Normal Rows -->\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: columnsToDisplayWithExpand; when: isNormalRow\\\"\\n [class.example-expanded-row]=\\\"expandedElement === row\\\"\\n (click)=\\\"selectRow(row)\\\"\\n [style]=\\\"getRowColor(row)\\\"\\n ></tr>\\n\\n <!-- Expanded Row -->\\n @if (showExpand && expandedDetail) {\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: ['expandedDetail']; when: isExpandedRow\\\"\\n class=\\\"example-detail-row\\\"\\n ></tr>\\n }\\n\\n <!-- No Data Row -->\\n <tr class=\\\"mat-row\\\" *matNoDataRow>\\n <td class=\\\"mat-cell text-center\\\" [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\">\\n No records found\\n </td>\\n </tr>\\n\\n <!-- Footer -->\\n @if (showFooter && dataSource.data.length > 0) {\\n <tr mat-footer-row *matFooterRowDef=\\\"columnsToDisplayWithExpand\\\"></tr>\\n }\\n }\\n </table>\\n </div>\\n\\n @if (enablePagination && paginationConfig) {\\n <mat-paginator\\n #paginator\\n [disabled]=\\\"isLoadingData\\\"\\n (page)=\\\"handlePageEvent($event)\\\"\\n [length]=\\\"paginationConfig.totalRecords\\\"\\n [pageSize]=\\\"paginationConfig.pageSize\\\"\\n [pageSizeOptions]=\\\"paginationConfig.pageSizeOptions || []\\\"\\n [showFirstLastButtons]=\\\"true\\\"\\n [pageIndex]=\\\"paginationConfig.pageIndex\\\"\\n aria-label=\\\"Select page\\\"\\n ></mat-paginator>\\n }\\n</div>\\n\", styles: [\".table-container{position:relative;min-height:200px;max-height:400px;overflow:auto}table{width:100%}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatTableModule }, { kind: \"component\", type: i1.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i1.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i1.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i1.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i1.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i1.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i1.MatFooterCellDef, selector: \"[matFooterCellDef]\" }, { kind: \"directive\", type: i1.MatFooterRowDef, selector: \"[matFooterRowDef]\", inputs: [\"matFooterRowDef\", \"matFooterRowDefSticky\"] }, { kind: \"directive\", type: i1.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i1.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"directive\", type: i1.MatFooterCell, selector: \"mat-footer-cell, td[mat-footer-cell]\" }, { kind: \"component\", type: i1.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i1.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"component\", type: i1.MatFooterRow, selector: \"mat-footer-row, tr[mat-footer-row]\", exportAs: [\"matFooterRow\"] }, { kind: \"directive\", type: i1.MatNoDataRow, selector: \"ng-template[matNoDataRow]\" }, { kind: \"ngmodule\", type: MatCheckboxModule }, { kind: \"component\", type: i2.MatCheckbox, selector: \"mat-checkbox\", inputs: [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-expanded\", \"aria-controls\", \"aria-owns\", \"id\", \"required\", \"labelPosition\", \"name\", \"value\", \"disableRipple\", \"tabIndex\", \"color\", \"disabledInteractive\", \"checked\", \"disabled\", \"indeterminate\"], outputs: [\"change\", \"indeterminateChange\"], exportAs: [\"matCheckbox\"] }, { kind: \"ngmodule\", type: MatSortModule }, { kind: \"directive\", type: i3.MatSort, selector: \"[matSort]\", inputs: [\"matSortActive\", \"matSortStart\", \"matSortDirection\", \"matSortDisableClear\", \"matSortDisabled\"], outputs: [\"matSortChange\"], exportAs: [\"matSort\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: i6.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: GetTotalPipe, name: \"getTotal\" }, { kind: \"pipe\", type: DatePipe, name: \"date\" }, { kind: \"pipe\", type: DecimalPipe, name: \"number\" }], animations: [\n trigger('detailExpand', [\n state('collapsed,void', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: MatDynamicTableComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-mat-dynamic-table', standalone: true, imports: [\n MatTableModule,\n MatCheckboxModule,\n MatSortModule,\n MatIconModule,\n MatButtonModule,\n MatPaginatorModule,\n NgClass,\n GetTotalPipe,\n DatePipe,\n DecimalPipe,\n NgTemplateOutlet,\n ], animations: [\n trigger('detailExpand', [\n state('collapsed,void', style({ height: '0px', minHeight: '0' })),\n state('expanded', style({ height: '*' })),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div class=\\\"mat-table-container\\\">\\n <div class=\\\"table-container small-table\\\">\\n <table #sort=\\\"matSort\\\" [dataSource]=\\\"dataSource.data\\\" mat-table matSort>\\n @if (columnDefinitions) {\\n <!-- Checkbox Column -->\\n @if (showSelectBox) {\\n <ng-container matColumnDef=\\\"select\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? masterToggle() : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel()\\\"\\n [checked]=\\\"selection.hasValue() && isAllSelected()\\\"\\n [indeterminate]=\\\"selection.hasValue() && !isAllSelected()\\\"\\n ></mat-checkbox>\\n </th>\\n <td *matCellDef=\\\"let row\\\" mat-cell>\\n <mat-checkbox\\n (change)=\\\"$event ? selection.toggle(row) : null\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n [aria-label]=\\\"checkboxLabel(row)\\\"\\n [checked]=\\\"selection.isSelected(row)\\\"\\n ></mat-checkbox>\\n </td>\\n <td *matFooterCellDef mat-footer-cell></td>\\n </ng-container>\\n }\\n\\n <!-- Dynamic Columns -->\\n @for (col of columnDefinitions; track col.key) {\\n <ng-container [matColumnDef]=\\\"col.key\\\">\\n <th *matHeaderCellDef mat-header-cell>\\n {{ col.label }}\\n </th>\\n\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [ngClass]=\\\"{ highlighted: highlightRowIndex === i }\\\"\\n >\\n @if (col.key === 'op') {\\n <div class=\\\"d-flex flex-row gap-1\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"rowTemplate; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n } @else {\\n @switch (col.type) {\\n @case ('image') {\\n <img\\n [src]=\\\"element[col.key]\\\"\\n class=\\\"img-fluid img-thumbnail my-1\\\"\\n width=\\\"50\\\"\\n alt=\\\"\\\"\\n />\\n }\\n @case ('number') {\\n <div>{{ element[col.key] | number: '1.2' : locale }}</div>\\n }\\n @case ('date') {\\n <div>{{ element[col.key] | date: 'dd.MM.yyyy' }}</div>\\n }\\n @case ('expand') {\\n <button\\n mat-icon-button\\n aria-label=\\\"expand row\\\"\\n (click)=\\\"onExpand($event, element)\\\"\\n >\\n @if (expandedElement === element) {\\n <mat-icon>keyboard_arrow_up</mat-icon>\\n } @else {\\n <mat-icon>keyboard_arrow_down</mat-icon>\\n }\\n </button>\\n }\\n @case ('template') {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n col.templateOutlet;\\n context: { $implicit: element, index: i }\\n \\\"\\n ></ng-container>\\n }\\n @case ('custom') {\\n <ng-container #dynamicContent></ng-container>\\n }\\n @default {\\n <div>{{ element[col.key] }}</div>\\n }\\n }\\n }\\n </td>\\n\\n <td *matFooterCellDef mat-footer-cell>\\n @if (col.index === 0) {\\n <div>Total</div>\\n }\\n @if (col.hasFooter) {\\n <div>{{ col.key | getTotal: dataSource.data }}</div>\\n }\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Expanded Detail Row -->\\n @if (showExpand && expandedDetail) {\\n <ng-container matColumnDef=\\\"expandedDetail\\\">\\n <td\\n mat-cell\\n *matCellDef=\\\"let element; let i = index\\\"\\n [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\"\\n >\\n <div\\n class=\\\"m-0 p-0\\\"\\n [@detailExpand]=\\\"element === expandedElement ? 'expanded' : 'collapsed'\\\"\\n >\\n <ng-container\\n *ngTemplateOutlet=\\\"expandedDetail; context: { $implicit: element, index: i }\\\"\\n ></ng-container>\\n </div>\\n </td>\\n </ng-container>\\n }\\n\\n <!-- Header -->\\n <tr\\n mat-header-row\\n *matHeaderRowDef=\\\"columnsToDisplayWithExpand; sticky: true\\\"\\n class=\\\"small-header\\\"\\n ></tr>\\n\\n <!-- Normal Rows -->\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: columnsToDisplayWithExpand; when: isNormalRow\\\"\\n [class.example-expanded-row]=\\\"expandedElement === row\\\"\\n (click)=\\\"selectRow(row)\\\"\\n [style]=\\\"getRowColor(row)\\\"\\n ></tr>\\n\\n <!-- Expanded Row -->\\n @if (showExpand && expandedDetail) {\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: ['expandedDetail']; when: isExpandedRow\\\"\\n class=\\\"example-detail-row\\\"\\n ></tr>\\n }\\n\\n <!-- No Data Row -->\\n <tr class=\\\"mat-row\\\" *matNoDataRow>\\n <td class=\\\"mat-cell text-center\\\" [attr.colspan]=\\\"columnsToDisplayWithExpand.length\\\">\\n No records found\\n </td>\\n </tr>\\n\\n <!-- Footer -->\\n @if (showFooter && dataSource.data.length > 0) {\\n <tr mat-footer-row *matFooterRowDef=\\\"columnsToDisplayWithExpand\\\"></tr>\\n }\\n }\\n </table>\\n </div>\\n\\n @if (enablePagination && paginationConfig) {\\n <mat-paginator\\n #paginator\\n [disabled]=\\\"isLoadingData\\\"\\n (page)=\\\"handlePageEvent($event)\\\"\\n [length]=\\\"paginationConfig.totalRecords\\\"\\n [pageSize]=\\\"paginationConfig.pageSize\\\"\\n [pageSizeOptions]=\\\"paginationConfig.pageSizeOptions || []\\\"\\n [showFirstLastButtons]=\\\"true\\\"\\n [pageIndex]=\\\"paginationConfig.pageIndex\\\"\\n aria-label=\\\"Select page\\\"\\n ></mat-paginator>\\n }\\n</div>\\n\", styles: [\".table-container{position:relative;min-height:200px;max-height:400px;overflow:auto}table{width:100%}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}\\n\"] }]\n }], propDecorators: { showExpand: [{\n type: Input\n }], showFooter: [{\n type: Input\n }], locale: [{\n type: Input\n }], highlightRowIndex: [{\n type: Input\n }], visibleColumns: [{\n type: Input\n }], columnDefinitions: [{\n type: Input\n }], showSelectBox: [{\n type: Input\n }], tableData: [{\n type: Input\n }], rowTemplate: [{\n type: Input\n }], expandedDetail: [{\n type: Input\n }], enablePagination: [{\n type: Input\n }], paginationConfig: [{\n type: Input\n }], isLoadingData: [{\n type: Input\n }], rowSelected: [{\n type: Output\n }], copyRow: [{\n type: Output\n }], showExpanded: [{\n type: Output\n }], hideExpanded: [{\n type: Output\n }], pageEvent: [{\n type: Output\n }], headerRowDefs: [{\n type: ContentChildren,\n args: [MatHeaderRowDef]\n }], rowDefs: [{\n type: ContentChildren,\n args: [MatRowDef]\n }], footerRowDefs: [{\n type: ContentChildren,\n args: [MatFooterRowDef]\n }], columnDefs: [{\n type: ContentChildren,\n args: [MatColumnDef]\n }], noDataRow: [{\n type: ContentChild,\n args: [MatNoDataRow]\n }], table: [{\n type: ViewChild,\n args: [MatTable, { static: true }]\n }], rows: [{\n type: ContentChildren,\n args: [ViewContainerRef]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWR5bmFtaWMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL21hdC1keW5hbWljLXRhYmxlL21hdC1keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9tYXQtZHluYW1pYy10YWJsZS9tYXQtZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFJTCxNQUFNLEVBSU4sU0FBUyxFQUNULGdCQUFnQixHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWEsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRC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LEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQVUyQixhQUFhO3NCQUE5QyxlQUFlO3VCQUFDLGVBQWU7Z0JBQ0osT0FBTztzQkFBbEMsZUFBZTt1QkFBQyxTQUFTO2dCQUNRLGFBQWE7c0JBQTlDLGVBQWU7dUJBQUMsZUFBZTtnQkFDRCxVQUFVO3NCQUF4QyxlQUFlO3VCQUFDLFlBQVk7Z0JBQ0QsU0FBUztzQkFBcEMsWUFBWTt1QkFBQyxZQUFZO2dCQUVhLEtBQUs7c0JBQTNDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRixJQUFJO3NCQUF0QyxlQUFlO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdENvbHVtbkRlZixcbiAgTWF0Rm9vdGVyUm93RGVmLFxuICBNYXRIZWFkZXJSb3dEZWYsXG4gIE1hdE5vRGF0YVJvdyxcbiAgTWF0Um93RGVmLFxuICBNYXRUYWJsZSxcbiAgTWF0VGFibGVEYXRhU291cmNlLFxuICBNYXRUYWJsZU1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlLCBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgRGVjaW1hbFBpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgR2V0VG90YWxQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ29sdW1uRGVmaW5pdGlvbiwgUGFnaW5hdGlvbiwgVGFibGVDb250ZXh0LCBUYWJsZVJvdyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1tYXQtZHluYW1pYy10YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIEdldFRvdGFsUGlwZSxcbiAgICBEYXRlUGlwZSxcbiAgICBEZWNpbWFsUGlwZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWF0LWR5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbWF0LWR5bmFtaWMtdGFibGUuY29tcG9uZW50LmNzcycsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkZXRhaWxFeHBhbmQnLCBbXG4gICAgICBzdGF0ZSgnY29sbGFwc2VkLHZvaWQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIG1pbkhlaWdodDogJzAnIH0pKSxcbiAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpLFxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgICBdKSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdER5bmFtaWNUYWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgVGFibGVSb3c+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcbiAgcHJpdmF0ZSBlbWJlZGRlZFZpZXdzOiBFbWJlZGRlZFZpZXdSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBASW5wdXQoKSBzaG93RXhwYW5kID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9jYWxlID0gJ2VuLVVTJztcbiAgQElucHV0KCkgaGlnaGxpZ2h0Um93SW5kZXggPSAwO1xuICBASW5wdXQoKSB2aXNpYmxlQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgY29sdW1uRGVmaW5pdGlvbnM6IENvbHVtbkRlZmluaXRpb248VD5bXSA9IFtdO1xuICBASW5wdXQoKSBzaG93U2VsZWN0Qm94ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogVFtdID0gW107XG4gIEBJbnB1dCgpIHJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUYWJsZUNvbnRleHQ8VD4+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGV4cGFuZGVkRGV0YWlsOiBUZW1wbGF0ZVJlZjxUYWJsZUNvbnRleHQ8VD4+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGVuYWJsZVBhZ2luYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpc0xvYWRpbmdEYXRhID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG4gIEBPdXRwdXQoKSBjb3B5Um93ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgc2hvd0V4cGFuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgaGlkZUV4cGFuZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcGFnZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XG5cbiAgaXNOb3JtYWxSb3cgPSAoXzogbnVtYmVyLCByb3c6IFQpID0+IHRoaXMuZXhwYW5kZWRFbGVtZW50ICE9PSByb3c7XG4gIGlzRXhwYW5kZWRSb3cgPSAoXzogbnVtYmVyLCByb3c6IFQpID0+IHRoaXMuZXhwYW5kZWRFbGVtZW50ID09PSByb3c7XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VD4oW10pO1xuICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VD4odHJ1ZSwgW10pO1xuICBleHBhbmRlZEVsZW1lbnQ6IFQgfCBudWxsID0gbnVsbDtcbiAgY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQ6IHN0cmluZ1tdID0gW107XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRIZWFkZXJSb3dEZWYpIGhlYWRlclJvd0RlZnMhOiBRdWVyeUxpc3Q8TWF0SGVhZGVyUm93RGVmPjtcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRSb3dEZWYpIHJvd0RlZnMhOiBRdWVyeUxpc3Q8TWF0Um93RGVmPFQ+PjtcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRGb290ZXJSb3dEZWYpIGZvb3RlclJvd0RlZnMhOiBRdWVyeUxpc3Q8TWF0Rm9vdGVyUm93RGVmPjtcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRDb2x1bW5EZWYpIGNvbHVtbkRlZnMhOiBRdWVyeUxpc3Q8TWF0Q29sdW1uRGVmPjtcbiAgQENvbnRlbnRDaGlsZChNYXROb0RhdGFSb3cpIG5vRGF0YVJvdyE6IE1hdE5vRGF0YVJvdztcblxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZSE6IE1hdFRhYmxlPFQ+O1xuICBAQ29udGVudENoaWxkcmVuKFZpZXdDb250YWluZXJSZWYpIHJvd3MhOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDb2x1bW5zVG9EaXNwbGF5KCk7XG4gICAgdGhpcy5pbml0aWFsaXplU2VsZWN0aW9uKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3RhYmxlRGF0YSddKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRhYmxlRGF0YSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydzaG93RXhwYW5kJ10gfHwgY2hhbmdlc1sndmlzaWJsZUNvbHVtbnMnXSB8fCBjaGFuZ2VzWydjb2x1bW5EZWZpbml0aW9ucyddKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNUb0Rpc3BsYXkoKTtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gZm9yIE9uUHVzaCBzdHJhdGVneVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJUYWJsZUNvbnRlbnQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVUYWJsZSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhbnVwRHluYW1pY0NvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFibGVEYXRhKCk6IHZvaWQge1xuICAgIC8vIENsZWFyIHNlbGVjdGlvbiB3aGVuIG5ldyBkYXRhIGFycml2ZXNcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuXG4gICAgLy8gVXBkYXRlIGRhdGEgc291cmNlXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnRhYmxlRGF0YSB8fCBbXTtcblxuICAgIC8vIFJlc2V0IGV4cGFuZGVkIGVsZW1lbnQgaWYgaXQncyBubyBsb25nZXIgaW4gdGhlIG5ldyBkYXRhXG4gICAgaWYgKHRoaXMuZXhwYW5kZWRFbGVtZW50ICYmICF0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmNsdWRlcyh0aGlzLmV4cGFuZGVkRWxlbWVudCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWRFbGVtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29sdW1uc1RvRGlzcGxheSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZUNvbHVtbnMubGVuZ3RoICYmIHRoaXMuY29sdW1uRGVmaW5pdGlvbnMpIHtcbiAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMgPSB0aGlzLmNvbHVtbkRlZmluaXRpb25zLm1hcChjb2wgPT4gY29sLmtleSk7XG4gICAgICB0aGlzLmNvbHVtbkRlZmluaXRpb25zLmZvckVhY2goKGNvbCwgaW5kZXgpID0+IChjb2wuaW5kZXggPSBpbmRleCkpO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0NvbHVtbnM6IHN0cmluZ1tdID0gWy4uLnRoaXMudmlzaWJsZUNvbHVtbnNdO1xuXG4gICAgaWYgKHRoaXMuc2hvd1NlbGVjdEJveCAmJiAhbmV3Q29sdW1ucy5pbmNsdWRlcygnc2VsZWN0JykpIHtcbiAgICAgIG5ld0NvbHVtbnMudW5zaGlmdCgnc2VsZWN0Jyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd0V4cGFuZCAmJiB0aGlzLmV4cGFuZGVkRGV0YWlsKSB7XG4gICAgICBpZiAoIXRoaXMuY29sdW1uRGVmaW5pdGlvbnM/LnNvbWUoY29sID0+IGNvbC5rZXkgPT09ICdleHBhbmQnKSkge1xuICAgICAgICB0aGlzLmNvbHVtbkRlZmluaXRpb25zID0gW1xuICAgICAgICAgIC4uLih0aGlzLmNvbHVtbkRlZmluaXRpb25zIHx8IFtdKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdleHBhbmQnLFxuICAgICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgICAgdHlwZTogJ2V4cGFuZCcsXG4gICAgICAgICAgICBpbmRleDogdGhpcy5jb2x1bW5EZWZpbml0aW9ucz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFuZXdDb2x1bW5zLmluY2x1ZGVzKCdleHBhbmQnKSkge1xuICAgICAgICBuZXdDb2x1bW5zLnB1c2goJ2V4cGFuZCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQgPSBuZXdDb2x1bW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRydWUsIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJUYWJsZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5EZWZzLmZvckVhY2goY29sdW1uRGVmID0+IHRoaXMudGFibGUuYWRkQ29sdW1uRGVmKGNvbHVtbkRlZikpO1xuICAgIHRoaXMucm93RGVmcy5mb3JFYWNoKHJvd0RlZiA9PiB0aGlzLnRhYmxlLmFkZFJvd0RlZihyb3dEZWYpKTtcbiAgICB0aGlzLmhlYWRlclJvd0RlZnMuZm9yRWFjaChoZWFkZXJSb3dEZWYgPT4gdGhpcy50YWJsZS5hZGRIZWFkZXJSb3dEZWYoaGVhZGVyUm93RGVmKSk7XG5cbiAgICBpZiAodGhpcy5zaG93Rm9vdGVyKSB7XG4gICAgICB0aGlzLmZvb3RlclJvd0RlZnMuZm9yRWFjaChmb290ZXJSb3dEZWYgPT4gdGhpcy50YWJsZS5hZGRGb290ZXJSb3dEZWYoZm9vdGVyUm93RGVmKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9vdGVyUm93RGVmcy5mb3JFYWNoKGZvb3RlclJvd0RlZiA9PiB0aGlzLnRhYmxlLnJlbW92ZUZvb3RlclJvd0RlZihmb290ZXJSb3dEZWYpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ub0RhdGFSb3cpIHtcbiAgICAgIHRoaXMudGFibGUuc2V0Tm9EYXRhUm93KHRoaXMubm9EYXRhUm93KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFQ+KHRoaXMudGFibGVEYXRhIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cER5bmFtaWNDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmcy5mb3JFYWNoKHJlZiA9PiByZWYuZGVzdHJveSgpKTtcbiAgICB0aGlzLmVtYmVkZGVkVmlld3MuZm9yRWFjaCh2aWV3ID0+IHZpZXcuZGVzdHJveSgpKTtcbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgY29uc3QgbnVtUm93cyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aDtcbiAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3MgJiYgbnVtUm93cyA+IDA7XG4gIH1cblxuICBtYXN0ZXJUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkKClcbiAgICAgID8gdGhpcy5zZWxlY3Rpb24uY2xlYXIoKVxuICAgICAgOiB0aGlzLmRhdGFTb3VyY2UuZGF0YS5mb3JFYWNoKHJvdyA9PiB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KSk7XG4gICAgdGhpcy5yb3dTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNoZWNrYm94TGFiZWwocm93PzogVCk6IHN0cmluZyB7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/ICdkZXNlbGVjdCcgOiAnc2VsZWN0J30gYWxsYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSA/ICdkZXNlbGVjdCcgOiAnc2VsZWN0J30gcm93YDtcbiAgfVxuXG4gIHNlbGVjdFJvdyhyb3c6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbi50b2dnbGUocm93KTtcbiAgICB0aGlzLnJvd1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25FeHBhbmQoZXZlbnQ6IEV2ZW50LCBlbGVtZW50OiBUKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5leHBhbmRlZEVsZW1lbnQgPSB0aGlzLmV4cGFuZGVkRWxlbWVudCA9PT0gZWxlbWVudCA/IG51bGwgOiBlbGVtZW50O1xuICAgIHRoaXMuZXhwYW5kZWRFbGVtZW50ID8gdGhpcy5zaG93RXhwYW5kZWQuZW1pdChlbGVtZW50KSA6IHRoaXMuaGlkZUV4cGFuZGVkLmVtaXQoZWxlbWVudCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXRSb3dDb2xvcihlbGVtZW50OiBUKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIGVsZW1lbnQuY29sb3JSb3cgPyB7ICdiYWNrZ3JvdW5kLWNvbG9yJzogZWxlbWVudC5jb2xvclJvdyB9IDoge307XG4gIH1cblxuICBoYW5kbGVQYWdlRXZlbnQoZTogUGFnZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlRXZlbnQuZW1pdChlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC10YWJsZS1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBzbWFsbC10YWJsZVwiPlxuICAgIDx0YWJsZSAjc29ydD1cIm1hdFNvcnRcIiBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlLmRhdGFcIiBtYXQtdGFibGUgbWF0U29ydD5cbiAgICAgIEBpZiAoY29sdW1uRGVmaW5pdGlvbnMpIHtcbiAgICAgICAgPCEtLSBDaGVja2JveCBDb2x1bW4gLS0+XG4gICAgICAgIEBpZiAoc2hvd1NlbGVjdEJveCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgICAgICA8dGggKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cImNoZWNrYm94TGFiZWwoKVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBtYXQtY2VsbD5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShyb3cpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiY2hlY2tib3hMYWJlbChyb3cpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRHluYW1pYyBDb2x1bW5zIC0tPlxuICAgICAgICBAZm9yIChjb2wgb2YgY29sdW1uRGVmaW5pdGlvbnM7IHRyYWNrIGNvbC5rZXkpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sLmtleVwiPlxuICAgICAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgICAge3sgY29sLmxhYmVsIH19XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGlnaGxpZ2h0ZWQ6IGhpZ2hsaWdodFJvd0luZGV4ID09PSBpIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKGNvbC5rZXkgPT09ICdvcCcpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBlbGVtZW50LCBpbmRleDogaSB9XCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQHN3aXRjaCAoY29sLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVsZW1lbnRbY29sLmtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGltZy10aHVtYm5haWwgbXktMVwiXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGVsZW1lbnRbY29sLmtleV0gfCBudW1iZXI6ICcxLjInIDogbG9jYWxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ2RhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZWxlbWVudFtjb2wua2V5XSB8IGRhdGU6ICdkZC5NTS55eXl5JyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdleHBhbmQnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiZXhwYW5kIHJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kKCRldmVudCwgZWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChleHBhbmRlZEVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd191cDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgndGVtcGxhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sLnRlbXBsYXRlT3V0bGV0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGVsZW1lbnQsIGluZGV4OiBpIH1cbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ2N1c3RvbScpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjZHluYW1pY0NvbnRlbnQ+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZWxlbWVudFtjb2wua2V5XSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD5cbiAgICAgICAgICAgICAgQGlmIChjb2wuaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlRvdGFsPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChjb2wuaGFzRm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgPGRpdj57eyBjb2wua2V5IHwgZ2V0VG90YWw6IGRhdGFTb3VyY2UuZGF0YSB9fTwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBFeHBhbmRlZCBEZXRhaWwgUm93IC0tPlxuICAgICAgICBAaWYgKHNob3dFeHBhbmQgJiYgZXhwYW5kZWREZXRhaWwpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImV4cGFuZGVkRGV0YWlsXCI+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwiY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibS0wIHAtMFwiXG4gICAgICAgICAgICAgICAgW0BkZXRhaWxFeHBhbmRdPVwiZWxlbWVudCA9PT0gZXhwYW5kZWRFbGVtZW50ID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXhwYW5kZWREZXRhaWw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBlbGVtZW50LCBpbmRleDogaSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICAgICA8dHJcbiAgICAgICAgICBtYXQtaGVhZGVyLXJvd1xuICAgICAgICAgICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5zVG9EaXNwbGF5V2l0aEV4cGFuZDsgc3RpY2t5OiB0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsLWhlYWRlclwiXG4gICAgICAgID48L3RyPlxuXG4gICAgICAgIDwhLS0gTm9ybWFsIFJvd3MgLS0+XG4gICAgICAgIDx0clxuICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogY29sdW1uc1RvRGlzcGxheVdpdGhFeHBhbmQ7IHdoZW46IGlzTm9ybWFsUm93XCJcbiAgICAgICAgICBbY2xhc3MuZXhhbXBsZS1leHBhbmRlZC1yb3ddPVwiZXhwYW5kZWRFbGVtZW50ID09PSByb3dcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSb3cocm93KVwiXG4gICAgICAgICAgW3N0eWxlXT1cImdldFJvd0NvbG9yKHJvdylcIlxuICAgICAgICA+PC90cj5cblxuICAgICAgICA8IS0tIEV4cGFuZGVkIFJvdyAtLT5cbiAgICAgICAgQGlmIChzaG93RXhwYW5kICYmIGV4cGFuZGVkRGV0YWlsKSB7XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICBtYXQtcm93XG4gICAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydleHBhbmRlZERldGFpbCddOyB3aGVuOiBpc0V4cGFuZGVkUm93XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhhbXBsZS1kZXRhaWwtcm93XCJcbiAgICAgICAgICA+PC90cj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTm8gRGF0YSBSb3cgLS0+XG4gICAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbWF0Tm9EYXRhUm93PlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsIHRleHQtY2VudGVyXCIgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zVG9EaXNwbGF5V2l0aEV4cGFuZC5sZW5ndGhcIj5cbiAgICAgICAgICAgIE5vIHJlY29yZHMgZm91bmRcbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuXG4gICAgICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgICAgICBAaWYgKHNob3dGb290ZXIgJiYgZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICA8dHIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cImNvbHVtbnNUb0Rpc3BsYXlXaXRoRXhwYW5kXCI+PC90cj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuXG4gIEBpZiAoZW5hYmxlUGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgICNwYWdpbmF0b3JcbiAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdEYXRhXCJcbiAgICAgIChwYWdlKT1cImhhbmRsZVBhZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtsZW5ndGhdPVwicGFnaW5hdGlvbkNvbmZpZy50b3RhbFJlY29yZHNcIlxuICAgICAgW3BhZ2VTaXplXT1cInBhZ2luYXRpb25Db25maWcucGFnZVNpemVcIlxuICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdpbmF0aW9uQ29uZmlnLnBhZ2VTaXplT3B0aW9ucyB8fCBbXVwiXG4gICAgICBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICBbcGFnZUluZGV4XT1cInBhZ2luYXRpb25Db25maWcucGFnZUluZGV4XCJcbiAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgcGFnZVwiXG4gICAgPjwvbWF0LXBhZ2luYXRvcj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { firstValueFrom, map } from 'rxjs';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { DialogWrapperComponent } from '../../components/dialog-wrapper/dialog-wrapper.component';\nimport * as i0 from \"@angular/core\";\nexport class AdvancedDialogService {\n dialog = inject(MatDialog);\n overlay = inject(Overlay);\n breakpointObserver = inject(BreakpointObserver);\n // An observable that emits true if the viewport matches mobile dimensions.\n isMobile$ = this.breakpointObserver\n .observe([Breakpoints.HandsetPortrait, Breakpoints.HandsetLandscape])\n .pipe(map(result => result.matches));\n /**\n * Main method to open any component in a dialog.\n * This provides maximum flexibility.\n * @param component The component to render.\n * @param config The detailed configuration for the dialog.\n * @returns A MatDialogRef instance.\n */\n async open(component, config = {}) {\n const dialogConfig = await this.buildDialogConfig(config);\n return this.dialog.open(component, dialogConfig);\n }\n /**\n * A powerful helper to open a component inside our standard, branded \"wrapper\".\n * This provides maximum consistency.\n * @param wrapperConfig Configuration for the title, icon, and the content component.\n * @param matDialogConfig Standard MatDialog configuration (size, position, etc.).\n * @returns A MatDialogRef instance pointing to the wrapper.\n */\n async openInWrapper(wrapperConfig, matDialogConfig = {}) {\n // Package the wrapper config into the `data` property for the DialogWrapperComponent to consume.\n const configWithWrapperData = {\n ...matDialogConfig,\n data: wrapperConfig,\n };\n const dialogConfig = await this.buildDialogConfig(configWithWrapperData);\n return this.dialog.open(DialogWrapperComponent, dialogConfig);\n }\n /**\n * Helper to open a dialog and only get an observable of the result.\n */\n async openAndGetResult(component, config = {}) {\n const dialogRef = await this.open(component, config);\n return firstValueFrom(dialogRef.afterClosed());\n }\n /**\n * Closes all currently open dialogs.\n */\n closeAll() {\n this.dialog.closeAll();\n }\n // --- Private Configuration Builder ---\n async buildDialogConfig(config) {\n const dialogConfig = new MatDialogConfig();\n // Asynchronously check for mobile state to prevent memory leaks from dangling subscriptions.\n const isMobile = await firstValueFrom(this.isMobile$);\n // Apply fullscreen if 'full' size is set OR if mobile fullscreen is enabled on a mobile device.\n if (config.size === 'full' || (config.isMobileFullScreen && isMobile)) {\n this.applyFullScreenConfig(dialogConfig);\n }\n else {\n this.applyStandardConfig(dialogConfig, config);\n }\n // Apply all other common configurations.\n this.applyCommonConfig(dialogConfig, config);\n return dialogConfig;\n }\n applyFullScreenConfig(dialogConfig) {\n dialogConfig.width = '100vw';\n dialogConfig.height = '100vh';\n dialogConfig.maxWidth = '100vw';\n dialogConfig.panelClass = ['full-screen-dialog'];\n }\n applyStandardConfig(dialogConfig, config) {\n dialogConfig.width = config.width ?? this.getDialogWidth(config.size);\n dialogConfig.height = config.height;\n dialogConfig.minWidth = config.minWidth;\n dialogConfig.maxWidth = config.maxWidth ?? '95vw';\n dialogConfig.maxHeight = config.maxHeight ?? 'auto';\n dialogConfig.position = config.position;\n }\n applyCommonConfig(dialogConfig, config) {\n dialogConfig.data = config.data;\n dialogConfig.hasBackdrop = config.hasBackdrop ?? true;\n dialogConfig.backdropClass = config.backdropClass;\n const panelClasses = Array.isArray(config.panelClass)\n ? [...config.panelClass]\n : config.panelClass\n ? [config.panelClass]\n : [];\n if (config.size) {\n panelClasses.push(`dialog-${config.size}`);\n }\n dialogConfig.panelClass = panelClasses;\n dialogConfig.disableClose = !(config.backdropClickClosable ?? true);\n // Note: escapeKeyClosable is handled by MatDialog separately and doesn't affect disableClose directly.\n dialogConfig.autoFocus = config.autoFocus ?? 'first-tabbable';\n dialogConfig.scrollStrategy = config.scrollStrategy ?? this.overlay.scrollStrategies.block();\n dialogConfig.enterAnimationDuration = config.enterAnimationDuration ?? '300ms';\n dialogConfig.exitAnimationDuration = config.exitAnimationDuration ?? '200ms';\n dialogConfig.ariaLabel = config.ariaLabel;\n dialogConfig.ariaLabelledBy = config.ariaLabelledBy;\n dialogConfig.ariaDescribedBy = config.ariaDescribedBy;\n dialogConfig.role = config.role;\n }\n getDialogWidth(size = 'md') {\n const sizeMap = {\n xs: '320px',\n sm: '450px',\n md: '600px',\n lg: '800px',\n xl: '1000px',\n xxl: '1280px',\n full: '100vw',\n };\n return sizeMap[size];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AdvancedDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AdvancedDialogService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AdvancedDialogService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvZGlhbG9nL2FkdmFuY2VkLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7O0FBS2xHLE1BQU0sT0FBTyxxQkFBcUI7SUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFakUsMkVBQTJFO0lBQzFELFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCO1NBQ2pELE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZDOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQ1IsU0FBMkIsRUFDM0IsU0FBbUMsRUFBRTtR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O1FBQzFDLFlBQVksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNwRCxZQUFZLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDdEQsWUFBWSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsT0FBbUIsSUFBSTtRQUM1QyxNQUFNLE9BQU8sR0FBK0I7WUFDMUMsRUFBRSxFQUFFLE9BQU87WUFDWCxFQUFFLEVBQUUsT0FBTztZQUNYLEVBQUUsRUFBRSxPQUFPO1lBQ1gsRUFBRSxFQUFFLE9BQU87WUFDWCxFQUFFLEVBQUUsUUFBUTtZQUNaLEdBQUcsRUFBRSxRQUFRO1lBQ2IsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQzt1R0FySlUscUJBQXFCOzJHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuXG5pbXBvcnQgeyBNYXRDdXN0b21EaWFsb2dDb25maWcsIERpYWxvZ1NpemUsIERpYWxvZ1dyYXBwZXJDb25maWcgfSBmcm9tICcuL2RpYWxvZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7IERpYWxvZ1dyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2RpYWxvZy13cmFwcGVyL2RpYWxvZy13cmFwcGVyLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZERpYWxvZ1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG5cbiAgLy8gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRydWUgaWYgdGhlIHZpZXdwb3J0IG1hdGNoZXMgbW9iaWxlIGRpbWVuc2lvbnMuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUkID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcbiAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuSGFuZHNldFBvcnRyYWl0LCBCcmVha3BvaW50cy5IYW5kc2V0TGFuZHNjYXBlXSlcbiAgICAucGlwZShtYXAocmVzdWx0ID0+IHJlc3VsdC5tYXRjaGVzKSk7XG5cbiAgLyoqXG4gICAqIE1haW4gbWV0aG9kIHRvIG9wZW4gYW55IGNvbXBvbmVudCBpbiBhIGRpYWxvZy5cbiAgICogVGhpcyBwcm92aWRlcyBtYXhpbXVtIGZsZXhpYmlsaXR5LlxuICAgKiBAcGFyYW0gY29tcG9uZW50IFRoZSBjb21wb25lbnQgdG8gcmVuZGVyLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBkZXRhaWxlZCBjb25maWd1cmF0aW9uIGZvciB0aGUgZGlhbG9nLlxuICAgKiBAcmV0dXJucyBBIE1hdERpYWxvZ1JlZiBpbnN0YW5jZS5cbiAgICovXG4gIGFzeW5jIG9wZW48VCwgRCA9IGFueSwgUiA9IGFueT4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LFxuICAgIGNvbmZpZzogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPEQ+ID0ge30sXG4gICk6IFByb21pc2U8TWF0RGlhbG9nUmVmPFQsIFI+PiB7XG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gYXdhaXQgdGhpcy5idWlsZERpYWxvZ0NvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5vcGVuPFQsIEQsIFI+KGNvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHBvd2VyZnVsIGhlbHBlciB0byBvcGVuIGEgY29tcG9uZW50IGluc2lkZSBvdXIgc3RhbmRhcmQsIGJyYW5kZWQgXCJ3cmFwcGVyXCIuXG4gICAqIFRoaXMgcHJvdmlkZXMgbWF4aW11bSBjb25zaXN0ZW5jeS5cbiAgICogQHBhcmFtIHdyYXBwZXJDb25maWcgQ29uZmlndXJhdGlvbiBmb3IgdGhlIHRpdGxlLCBpY29uLCBhbmQgdGhlIGNvbnRlbnQgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gbWF0RGlhbG9nQ29uZmlnIFN0YW5kYXJkIE1hdERpYWxvZyBjb25maWd1cmF0aW9uIChzaXplLCBwb3NpdGlvbiwgZXRjLikuXG4gICAqIEByZXR1cm5zIEEgTWF0RGlhbG9nUmVmIGluc3RhbmNlIHBvaW50aW5nIHRvIHRoZSB3cmFwcGVyLlxuICAgKi9cbiAgYXN5bmMgb3BlbkluV3JhcHBlcjxULCBSID0gYW55PihcbiAgICB3cmFwcGVyQ29uZmlnOiBEaWFsb2dXcmFwcGVyQ29uZmlnPFQ+LFxuICAgIG1hdERpYWxvZ0NvbmZpZzogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPFQ+ID0ge30sXG4gICk6IFByb21pc2U8TWF0RGlhbG9nUmVmPERpYWxvZ1dyYXBwZXJDb21wb25lbnQsIFI+PiB7XG4gICAgLy8gUGFja2FnZSB0aGUgd3JhcHBlciBjb25maWcgaW50byB0aGUgYGRhdGFgIHByb3BlcnR5IGZvciB0aGUgRGlhbG9nV3JhcHBlckNvbXBvbmVudCB0byBjb25zdW1lLlxuICAgIGNvbnN0IGNvbmZpZ1dpdGhXcmFwcGVyRGF0YTogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPERpYWxvZ1dyYXBwZXJDb25maWc8VD4+ID0ge1xuICAgICAgLi4ubWF0RGlhbG9nQ29uZmlnLFxuICAgICAgZGF0YTogd3JhcHBlckNvbmZpZyxcbiAgICB9O1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IGF3YWl0IHRoaXMuYnVpbGREaWFsb2dDb25maWcoY29uZmlnV2l0aFdyYXBwZXJEYXRhKTtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cub3BlbjxEaWFsb2dXcmFwcGVyQ29tcG9uZW50LCBEaWFsb2dXcmFwcGVyQ29uZmlnPFQ+LCBSPihcbiAgICAgIERpYWxvZ1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBkaWFsb2dDb25maWcsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gb3BlbiBhIGRpYWxvZyBhbmQgb25seSBnZXQgYW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgb3BlbkFuZEdldFJlc3VsdDxULCBEID0gYW55LCBSID0gYW55PihcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sXG4gICAgY29uZmlnOiBNYXRDdXN0b21EaWFsb2dDb25maWc8RD4gPSB7fSxcbiAgKTogUHJvbWlzZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gYXdhaXQgdGhpcy5vcGVuKGNvbXBvbmVudCwgY29uZmlnKTtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhbGwgY3VycmVudGx5IG9wZW4gZGlhbG9ncy5cbiAgICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gIH1cblxuICAvLyAtLS0gUHJpdmF0ZSBDb25maWd1cmF0aW9uIEJ1aWxkZXIgLS0tXG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZERpYWxvZ0NvbmZpZzxEPihcbiAgICBjb25maWc6IE1hdEN1c3RvbURpYWxvZ0NvbmZpZzxEPixcbiAgKTogUHJvbWlzZTxNYXREaWFsb2dDb25maWc8RD4+IHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnPEQ+KCk7XG5cbiAgICAvLyBBc3luY2hyb25vdXNseSBjaGVjayBmb3IgbW9iaWxlIHN0YXRlIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzIGZyb20gZGFuZ2xpbmcgc3Vic2NyaXB0aW9ucy5cbiAgICBjb25zdCBpc01vYmlsZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaXNNb2JpbGUkKTtcblxuICAgIC8vIEFwcGx5IGZ1bGxzY3JlZW4gaWYgJ2Z1bGwnIHNpemUgaXMgc2V0IE9SIGlmIG1vYmlsZSBmdWxsc2NyZWVuIGlzIGVuYWJsZWQgb24gYSBtb2JpbGUgZGV2aWNlLlxuICAgIGlmIChjb25maWcuc2l6ZSA9PT0gJ2Z1bGwnIHx8IChjb25maWcuaXNNb2JpbGVGdWxsU2NyZWVuICYmIGlzTW9iaWxlKSkge1xuICAgICAgdGhpcy5hcHBseUZ1bGxTY3JlZW5Db25maWcoZGlhbG9nQ29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcHBseVN0YW5kYXJkQ29uZmlnKGRpYWxvZ0NvbmZpZywgY29uZmlnKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBhbGwgb3RoZXIgY29tbW9uIGNvbmZpZ3VyYXRpb25zLlxuICAgIHRoaXMuYXBwbHlDb21tb25Db25maWcoZGlhbG9nQ29uZmlnLCBjb25maWcpO1xuXG4gICAgcmV0dXJuIGRpYWxvZ0NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGdWxsU2NyZWVuQ29uZmlnKGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnKTogdm9pZCB7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzEwMHZ3JztcbiAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJzEwMHZoJztcbiAgICBkaWFsb2dDb25maWcubWF4V2lkdGggPSAnMTAwdncnO1xuICAgIGRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzID0gWydmdWxsLXNjcmVlbi1kaWFsb2cnXTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTdGFuZGFyZENvbmZpZzxEPihcbiAgICBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxEPixcbiAgICBjb25maWc6IE1hdEN1c3RvbURpYWxvZ0NvbmZpZzxEPixcbiAgKTogdm9pZCB7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gY29uZmlnLndpZHRoID8/IHRoaXMuZ2V0RGlhbG9nV2lkdGgoY29uZmlnLnNpemUpO1xuICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSBjb25maWcuaGVpZ2h0O1xuICAgIGRpYWxvZ0NvbmZpZy5taW5XaWR0aCA9IGNvbmZpZy5taW5XaWR0aDtcbiAgICBkaWFsb2dDb25maWcubWF4V2lkdGggPSBjb25maWcubWF4V2lkdGggPz8gJzk1dncnO1xuICAgIGRpYWxvZ0NvbmZpZy5tYXhIZWlnaHQgPSBjb25maWcubWF4SGVpZ2h0ID8/ICdhdXRvJztcbiAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSBjb25maWcucG9zaXRpb247XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29tbW9uQ29uZmlnPEQ+KFxuICAgIGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnPEQ+LFxuICAgIGNvbmZpZzogTWF0Q3VzdG9tRGlhbG9nQ29uZmlnPEQ+LFxuICApOiB2b2lkIHtcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IGNvbmZpZy5kYXRhO1xuICAgIGRpYWxvZ0NvbmZpZy5oYXNCYWNrZHJvcCA9IGNvbmZpZy5oYXNCYWNrZHJvcCA/PyB0cnVlO1xuICAgIGRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzID0gY29uZmlnLmJhY2tkcm9wQ2xhc3M7XG5cbiAgICBjb25zdCBwYW5lbENsYXNzZXMgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5wYW5lbENsYXNzKVxuICAgICAgPyBbLi4uY29uZmlnLnBhbmVsQ2xhc3NdXG4gICAgICA6IGNvbmZpZy5wYW5lbENsYXNzXG4gICAgICAgID8gW2NvbmZpZy5wYW5lbENsYXNzXVxuICAgICAgICA6IFtdO1xuICAgIGlmIChjb25maWcuc2l6ZSkge1xuICAgICAgcGFuZWxDbGFzc2VzLnB1c2goYGRpYWxvZy0ke2NvbmZpZy5zaXplfWApO1xuICAgIH1cbiAgICBkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9IHBhbmVsQ2xhc3NlcztcblxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSAhKGNvbmZpZy5iYWNrZHJvcENsaWNrQ2xvc2FibGUgPz8gdHJ1ZSk7XG4gICAgLy8gTm90ZTogZXNjYXBlS2V5Q2xvc2FibGUgaXMgaGFuZGxlZCBieSBNYXREaWFsb2cgc2VwYXJhdGVseSBhbmQgZG9lc24ndCBhZmZlY3QgZGlzYWJsZUNsb3NlIGRpcmVjdGx5LlxuICAgIGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSBjb25maWcuYXV0b0ZvY3VzID8/ICdmaXJzdC10YWJiYWJsZSc7XG4gICAgZGlhbG9nQ29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29uZmlnLnNjcm9sbFN0cmF0ZWd5ID8/IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XG4gICAgZGlhbG9nQ29uZmlnLmVudGVyQW5pbWF0aW9uRHVyYXRpb24gPSBjb25maWcuZW50ZXJBbmltYXRpb25EdXJhdGlvbiA/PyAnMzAwbXMnO1xuICAgIGRpYWxvZ0NvbmZpZy5leGl0QW5pbWF0aW9uRHVyYXRpb24gPSBjb25maWcuZXhpdEFuaW1hdGlvbkR1cmF0aW9uID8/ICcyMDBtcyc7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9IGNvbmZpZy5hcmlhTGFiZWw7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbGxlZEJ5ID0gY29uZmlnLmFyaWFMYWJlbGxlZEJ5O1xuICAgIGRpYWxvZ0NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgPSBjb25maWcuYXJpYURlc2NyaWJlZEJ5O1xuICAgIGRpYWxvZ0NvbmZpZy5yb2xlID0gY29uZmlnLnJvbGU7XG4gIH1cblxuICBwcml2YXRlIGdldERpYWxvZ1dpZHRoKHNpemU6IERpYWxvZ1NpemUgPSAnbWQnKTogc3RyaW5nIHtcbiAgICBjb25zdCBzaXplTWFwOiBSZWNvcmQ8RGlhbG9nU2l6ZSwgc3RyaW5nPiA9IHtcbiAgICAgIHhzOiAnMzIwcHgnLFxuICAgICAgc206ICc0NTBweCcsXG4gICAgICBtZDogJzYwMHB4JyxcbiAgICAgIGxnOiAnODAwcHgnLFxuICAgICAgeGw6ICcxMDAwcHgnLFxuICAgICAgeHhsOiAnMTI4MHB4JyxcbiAgICAgIGZ1bGw6ICcxMDB2dycsXG4gICAgfTtcbiAgICByZXR1cm4gc2l6ZU1hcFtzaXplXTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { SpinnerComponent } from '../components/spinner/spinner.component';\nimport * as i0 from \"@angular/core\";\nexport class OverlayService {\n overlay = inject(Overlay);\n overlayRef;\n constructor() { }\n showSpinner() {\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n });\n const spinnerPortal = new ComponentPortal(SpinnerComponent);\n this.overlayRef.attach(spinnerPortal);\n }\n }\n hideSpinner() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef = null;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: OverlayService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: OverlayService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUkzRSxNQUFNLE9BQU8sY0FBYztJQUNqQixPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTFCLFVBQVUsQ0FBYztJQUtoQyxnQkFBZSxDQUFDO0lBRWhCLFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUU7YUFDM0YsQ0FBQyxDQUFDO1lBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO3VHQTNCVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheVNlcnZpY2Uge1xuICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmITogT3ZlcmxheVJlZjtcblxuICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IHVua25vd25bXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNob3dTcGlubmVyKCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzcGlubmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChTcGlubmVyQ29tcG9uZW50KTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2goc3Bpbm5lclBvcnRhbCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZVNwaW5uZXIoKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbCE7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class ThemeService {\n _darkMode = new BehaviorSubject(false);\n isDarkMode$ = this._darkMode.asObservable();\n loadMode() {\n const savedTheme = localStorage.getItem('theme');\n if (savedTheme) {\n this._darkMode.next(savedTheme === 'dark');\n this.applyTheme(savedTheme === 'dark');\n }\n else {\n // Check system preference\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n this._darkMode.next(prefersDark);\n this.applyTheme(prefersDark);\n }\n }\n toggleDarkMode() {\n const newValue = !this._darkMode.value;\n this._darkMode.next(newValue);\n this.applyTheme(newValue);\n localStorage.setItem('theme', newValue ? 'dark' : 'light');\n }\n applyTheme(isDark) {\n if (isDark) {\n document.body.classList.add('dark-theme');\n }\n else {\n document.body.classList.remove('dark-theme');\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLFlBQVk7SUFDTixTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakUsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFNUMsUUFBUTtRQUNOLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNOLDBCQUEwQjtZQUMxQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzlFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQWU7UUFDaEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQzt1R0E5QlUsWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRoZW1lU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhcmtNb2RlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzRGFya01vZGUkID0gdGhpcy5fZGFya01vZGUuYXNPYnNlcnZhYmxlKCk7XG5cbiAgbG9hZE1vZGUoKSB7XG4gICAgY29uc3Qgc2F2ZWRUaGVtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0aGVtZScpO1xuICAgIGlmIChzYXZlZFRoZW1lKSB7XG4gICAgICB0aGlzLl9kYXJrTW9kZS5uZXh0KHNhdmVkVGhlbWUgPT09ICdkYXJrJyk7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUoc2F2ZWRUaGVtZSA9PT0gJ2RhcmsnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2hlY2sgc3lzdGVtIHByZWZlcmVuY2VcbiAgICAgIGNvbnN0IHByZWZlcnNEYXJrID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzO1xuICAgICAgdGhpcy5fZGFya01vZGUubmV4dChwcmVmZXJzRGFyayk7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUocHJlZmVyc0RhcmspO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURhcmtNb2RlKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gIXRoaXMuX2RhcmtNb2RlLnZhbHVlO1xuICAgIHRoaXMuX2RhcmtNb2RlLm5leHQobmV3VmFsdWUpO1xuICAgIHRoaXMuYXBwbHlUaGVtZShuZXdWYWx1ZSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RoZW1lJywgbmV3VmFsdWUgPyAnZGFyaycgOiAnbGlnaHQnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUaGVtZShpc0Rhcms6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEYXJrKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2RhcmstdGhlbWUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdkYXJrLXRoZW1lJyk7XG4gICAgfVxuICB9XG59XG4iXX0=","// Configuraciones predefinidas mejoradas\nexport const AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG = {\n placeholder: 'Buscar...',\n disabled: false,\n debounceTime: 300,\n minSearchLength: 2,\n maxHistoryItems: 10,\n itemsPerPage: 10,\n enableStockFilter: true,\n stockProperty: 'stock',\n enablePagination: true,\n enableFilters: true,\n enableFooterActions: true,\n overlayWidth: '100%',\n overlayMaxHeight: '500px',\n noResultsText: 'No se encontraron resultados',\n sectionTitle: 'Resultados',\n searchMode: 'remote',\n searchFields: [\n { value: 'description', label: 'Descripción', property: 'description' },\n { value: 'code', label: 'Código', property: 'code' },\n { value: 'barcode', label: 'Código de Barras', property: 'barcode' },\n { value: 'auxCode', label: 'Código Auxiliar', property: 'auxCode' },\n ],\n stockOptions: [\n { value: 'all', label: 'Todos' },\n { value: 'with-stock', label: 'Con Stock' },\n { value: 'without-stock', label: 'Sin Stock' },\n ],\n};\nexport const AUTOCOMPLETE_WRAPPER_PRODUCT_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n placeholder: 'Buscar productos...',\n enableStockFilter: true,\n enableFooterActions: true,\n sectionTitle: 'Productos',\n noResultsText: 'No se encontraron productos',\n};\nexport const AUTOCOMPLETE_WRAPPER_CUSTOMER_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n placeholder: 'Buscar clientes...',\n enableStockFilter: false,\n enableFooterActions: false,\n sectionTitle: 'Clientes',\n noResultsText: 'No se encontraron clientes',\n searchFields: [\n { value: 'name', label: 'Nombre', property: 'name' },\n { value: 'email', label: 'Email', property: 'email' },\n { value: 'phone', label: 'Teléfono', property: 'phone' },\n { value: 'document', label: 'Documento', property: 'document' },\n ],\n};\nexport const AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n placeholder: 'Buscar...',\n enableStockFilter: false,\n enableFilters: false,\n enableFooterActions: false,\n enablePagination: false,\n itemsPerPage: 50,\n sectionTitle: 'Resultados',\n overlayMaxHeight: '300px',\n};\n// Configuración para búsqueda local\nexport const AUTOCOMPLETE_WRAPPER_LOCAL_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG,\n searchMode: 'local',\n debounceTime: 150, // Menos tiempo para búsqueda local\n minSearchLength: 1,\n};\n// Configuración para listas grandes con paginación\nexport const AUTOCOMPLETE_WRAPPER_PAGINATED_CONFIG = {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n itemsPerPage: 20,\n enablePagination: true,\n overlayMaxHeight: '400px',\n};\n// Helper para crear configuración personalizada\nexport function createAutocompleteWrapperConfig(overrides) {\n return {\n ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG,\n ...overrides,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvbW9kZWxzL2F1dG9jb21wbGV0ZS13cmFwcGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdLQSx5Q0FBeUM7QUFDekMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQThCO0lBQzVFLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsWUFBWSxFQUFFLEdBQUc7SUFDakIsZUFBZSxFQUFFLENBQUM7SUFDbEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsWUFBWSxFQUFFLEVBQUU7SUFDaEIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixhQUFhLEVBQUUsT0FBTztJQUN0QixnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLG1CQUFtQixFQUFFLElBQUk7SUFDekIsWUFBWSxFQUFFLE1BQU07SUFDcEIsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixhQUFhLEVBQUUsOEJBQThCO0lBQzdDLFlBQVksRUFBRSxZQUFZO0lBQzFCLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLFlBQVksRUFBRTtRQUNaLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7UUFDdkUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUNwRCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7UUFDcEUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO0tBQ3BFO0lBQ0QsWUFBWSxFQUFFO1FBQ1osRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDaEMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7UUFDM0MsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7S0FDL0M7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQThCO0lBQzVFLEdBQUcsbUNBQW1DO0lBQ3RDLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLFlBQVksRUFBRSxXQUFXO0lBQ3pCLGFBQWEsRUFBRSw2QkFBNkI7Q0FDN0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUE4QjtJQUM3RSxHQUFHLG1DQUFtQztJQUN0QyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixZQUFZLEVBQUUsVUFBVTtJQUN4QixhQUFhLEVBQUUsNEJBQTRCO0lBQzNDLFlBQVksRUFBRTtRQUNaLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7UUFDcEQsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtRQUNyRCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO1FBQ3hELEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7S0FDaEU7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQThCO0lBQzNFLEdBQUcsbUNBQW1DO0lBQ3RDLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFlBQVksRUFBRSxZQUFZO0lBQzFCLGdCQUFnQixFQUFFLE9BQU87Q0FDMUIsQ0FBQztBQUVGLG9DQUFvQztBQUNwQyxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBOEI7SUFDMUUsR0FBRyxrQ0FBa0M7SUFDckMsVUFBVSxFQUFFLE9BQU87SUFDbkIsWUFBWSxFQUFFLEdBQUcsRUFBRSxtQ0FBbUM7SUFDdEQsZUFBZSxFQUFFLENBQUM7Q0FDbkIsQ0FBQztBQUVGLG1EQUFtRDtBQUNuRCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBOEI7SUFDOUUsR0FBRyxtQ0FBbUM7SUFDdEMsWUFBWSxFQUFFLEVBQUU7SUFDaEIsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixnQkFBZ0IsRUFBRSxPQUFPO0NBQzFCLENBQUM7QUFFRixnREFBZ0Q7QUFDaEQsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxTQUE2QztJQUU3QyxPQUFPO1FBQ0wsR0FBRyxtQ0FBbUM7UUFDdEMsR0FBRyxTQUFTO0tBQ2IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0ge1xuICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nOyAvLyBQYXJhIG1vc3RyYXIgZW4gZWwgdGVtcGxhdGUgcG9yIGRlZmVjdG9cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQge1xuICBpdGVtczogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXTtcbiAgdG90YWxDb3VudDogbnVtYmVyO1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZ1bmN0aW9uID0gKFxuICBxdWVyeTogc3RyaW5nLFxuICBmaWx0ZXJzOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycyxcbiAgcGFnZT86IG51bWJlcixcbiAgcGFnZVNpemU/OiBudW1iZXIsXG4pID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaFJlc3VsdD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyB7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjbGVhcklucHV0PzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBkZWJvdW5jZVRpbWU/OiBudW1iZXI7XG4gIG1pblNlYXJjaExlbmd0aD86IG51bWJlcjtcbiAgbWF4SGlzdG9yeUl0ZW1zPzogbnVtYmVyO1xuICBpdGVtc1BlclBhZ2U/OiBudW1iZXI7XG4gIGVuYWJsZVN0b2NrRmlsdGVyPzogYm9vbGVhbjtcbiAgc3RvY2tQcm9wZXJ0eT86IHN0cmluZztcbiAgZW5hYmxlUGFnaW5hdGlvbj86IGJvb2xlYW47XG4gIGVuYWJsZUZpbHRlcnM/OiBib29sZWFuO1xuICBlbmFibGVGb290ZXJBY3Rpb25zPzogYm9vbGVhbjtcbiAgc2VhcmNoRmllbGRzPzogQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZpZWxkW107XG4gIHN0b2NrT3B0aW9ucz86IEF1dG9jb21wbGV0ZVdyYXBwZXJTdG9ja09wdGlvbltdO1xuXG4gIC8vIENvbmZpZ3VyYWNpw7NuIGRlbCBvdmVybGF5XG4gIG92ZXJsYXlXaWR0aD86IHN0cmluZyB8IG51bWJlcjtcbiAgb3ZlcmxheU1heEhlaWdodD86IHN0cmluZyB8IG51bWJlcjtcblxuICAvLyBGdW5jacOzbiBkZSBiw7pzcXVlZGEgcGVyc29uYWxpemFkYVxuICBzZWFyY2hGdW5jdGlvbj86IEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hGdW5jdGlvbjtcblxuICAvLyBNb2RvIGRlIGLDunNxdWVkYVxuICBzZWFyY2hNb2RlPzogJ2xvY2FsJyB8ICdyZW1vdGUnIHwgJ2h5YnJpZCc7XG5cbiAgLy8gQ29uZmlndXJhY2nDs24gZGUgZGF0b3MgbG9jYWxlcyAocGFyYSBzZWFyY2hNb2RlICdsb2NhbCcgbyAnaHlicmlkJylcbiAgbG9jYWxEYXRhPzogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXTtcblxuICAvLyBUZXh0byBwZXJzb25hbGl6YWJsZVxuICBub1Jlc3VsdHNUZXh0Pzogc3RyaW5nO1xuICBzZWN0aW9uVGl0bGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZpZWxkIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJvcGVydHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVXcmFwcGVyU3RvY2tPcHRpb24ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzIHtcbiAgc2VhcmNoQnk6IHN0cmluZztcbiAgc3RvY2tGaWx0ZXI6IHN0cmluZztcbn1cblxuLy8gRXZlbnRvcyBxdWUgZW1pdGUgZWwgY29tcG9uZW50ZVxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVXcmFwcGVyRXZlbnRzIHtcbiAgaXRlbVNlbGVjdGVkOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbTtcbiAgc2VhcmNoQ2hhbmdlZDogc3RyaW5nO1xuICBwYWdlQ2hhbmdlZDogbnVtYmVyO1xuICBmaWx0ZXJDaGFuZ2VkOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycztcbiAgYWR2YW5jZWRTZWFyY2hDbGlja2VkOiB2b2lkO1xuICBhbGxSZXN1bHRzQ2xpY2tlZDogc3RyaW5nO1xuICBjcmVhdGVOZXdDbGlja2VkOiBzdHJpbmc7IC8vIEFsaW5lYWRvIGNvbiBvbkNyZWF0ZU5ldyBkZWwgSFRNTFxuICBoaXN0b3J5Q2xlYXJlZDogdm9pZDtcbiAgaGlzdG9yeUl0ZW1SZW1vdmVkOiB7IGl0ZW06IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtOyBpbmRleDogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlV3JhcHBlclBhZ2luYXRpb25JbmZvIHtcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBzdGFydEl0ZW06IG51bWJlcjtcbiAgZW5kSXRlbTogbnVtYmVyO1xuICBoYXNOZXh0UGFnZTogYm9vbGVhbjtcbiAgaGFzUHJldmlvdXNQYWdlOiBib29sZWFuO1xufVxuXG4vLyBFc3RhZG8gaW50ZXJubyBkZWwgY29tcG9uZW50ZSAocGFyYSB1c2FyIGNvbiBzaWduYWxzKVxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVXcmFwcGVyU3RhdGUge1xuICBxdWVyeTogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIG92ZXJsYXlPcGVuOiBib29sZWFuO1xuICBzZWxlY3RlZEluZGV4OiBudW1iZXI7XG4gIHBhZ2luYXRpb246IEF1dG9jb21wbGV0ZVdyYXBwZXJQYWdpbmF0aW9uSW5mbztcbiAgaGFzUmVzdWx0czogYm9vbGVhbjtcbiAgaXNIaXN0b3J5VmlzaWJsZTogYm9vbGVhbjtcbiAgaGlzdG9yeUNvdW50OiBudW1iZXI7XG4gIGZpbHRlcnM6IEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzO1xuXG4gIC8vIEVzdGFkb3MgYWRpY2lvbmFsZXMgcXVlIGFwYXJlY2VuIGVuIGVsIEhUTUxcbiAgLy8gdG90YWxJdGVtczogbnVtYmVyO1xuICAvLyBjdXJyZW50UGFnZUl0ZW1zOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdO1xuICAvLyBoaXN0b3J5TGlzdDogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXTtcbiAgLy8gbm9SZXN1bHRzOiBib29sZWFuO1xufVxuXG4vLyBQYXJhIG3DqXRvZG9zIGRlbCBjb21wb25lbnRlIHF1ZSBhcGFyZWNlbiBlbiBlbCBIVE1MXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVdyYXBwZXJBY3Rpb25zIHtcbiAgLy8gSW5wdXQgYWN0aW9uc1xuICBvbklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQ7XG4gIHNob3dPdmVybGF5KCk6IHZvaWQ7XG4gIGhpZGVPdmVybGF5KCk6IHZvaWQ7XG4gIGNsZWFyU2VhcmNoKCk6IHZvaWQ7XG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG5cbiAgLy8gSXRlbSBhY3Rpb25zXG4gIHNlbGVjdEl0ZW0oaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0pOiB2b2lkO1xuICBnZXRJdGVtRGlzcGxheVRleHQoaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0pOiBzdHJpbmc7XG5cbiAgLy8gSGlzdG9yeSBhY3Rpb25zXG4gIGNsZWFySGlzdG9yeSgpOiB2b2lkO1xuICByZW1vdmVIaXN0b3J5SXRlbShpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpOiB2b2lkO1xuXG4gIC8vIFBhZ2luYXRpb24gYWN0aW9uc1xuICBnb1RvRmlyc3RQYWdlKCk6IHZvaWQ7XG4gIGdvVG9QcmV2aW91c1BhZ2UoKTogdm9pZDtcbiAgZ29Ub05leHRQYWdlKCk6IHZvaWQ7XG4gIGdvVG9MYXN0UGFnZSgpOiB2b2lkO1xuICBnb1RvUGFnZShldmVudDogRXZlbnQpOiB2b2lkO1xuXG4gIC8vIEZpbHRlciBhY3Rpb25zXG4gIG9uRmlsdGVyQ2hhbmdlKCk6IHZvaWQ7XG5cbiAgLy8gRm9vdGVyIGFjdGlvbnNcbiAgb25DcmVhdGVOZXcoZXZlbnQ6IEV2ZW50KTogdm9pZDtcbiAgb25BZHZhbmNlZFNlYXJjaCgpOiB2b2lkO1xuICBvblNob3dBbGxSZXN1bHRzKCk6IHZvaWQ7XG5cbiAgLy8gU3RhdGUgZ2V0dGVycyAocGFyYSB1c2FyIGNvbiBzaWduYWxzKVxuICBvdmVybGF5T3BlbigpOiBib29sZWFuO1xuICBpc0xvYWRpbmcoKTogYm9vbGVhbjtcbiAgaXNIaXN0b3J5VmlzaWJsZSgpOiBib29sZWFuO1xuICBoaXN0b3J5TGlzdCgpOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdO1xuICBzZWxlY3RlZEluZGV4KCk6IG51bWJlcjtcbiAgY3VycmVudFBhZ2VJdGVtcygpOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdO1xuICB0b3RhbEl0ZW1zKCk6IG51bWJlcjtcbiAgdG90YWxQYWdlcygpOiBudW1iZXI7XG4gIGN1cnJlbnRQYWdlKCk6IG51bWJlcjtcbiAgdG90YWxDb3VudCgpOiBudW1iZXI7XG4gIHN0YXJ0SXRlbSgpOiBudW1iZXI7XG4gIGVuZEl0ZW0oKTogbnVtYmVyO1xuICBzZWN0aW9uVGl0bGUoKTogc3RyaW5nO1xuICBub1Jlc3VsdHNUZXh0KCk6IHN0cmluZztcbiAgaXNOb1Jlc3VsdHMoKTogYm9vbGVhbjtcbiAgb3ZlcmxheVdpZHRoKCk6IHN0cmluZyB8IG51bWJlcjtcbiAgb3ZlcmxheU1heEhlaWdodCgpOiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbi8vIENvbmZpZ3VyYWNpb25lcyBwcmVkZWZpbmlkYXMgbWVqb3JhZGFzXG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX1dSQVBQRVJfREVGQVVMVF9DT05GSUc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSB7XG4gIHBsYWNlaG9sZGVyOiAnQnVzY2FyLi4uJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBkZWJvdW5jZVRpbWU6IDMwMCxcbiAgbWluU2VhcmNoTGVuZ3RoOiAyLFxuICBtYXhIaXN0b3J5SXRlbXM6IDEwLFxuICBpdGVtc1BlclBhZ2U6IDEwLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogdHJ1ZSxcbiAgc3RvY2tQcm9wZXJ0eTogJ3N0b2NrJyxcbiAgZW5hYmxlUGFnaW5hdGlvbjogdHJ1ZSxcbiAgZW5hYmxlRmlsdGVyczogdHJ1ZSxcbiAgZW5hYmxlRm9vdGVyQWN0aW9uczogdHJ1ZSxcbiAgb3ZlcmxheVdpZHRoOiAnMTAwJScsXG4gIG92ZXJsYXlNYXhIZWlnaHQ6ICc1MDBweCcsXG4gIG5vUmVzdWx0c1RleHQ6ICdObyBzZSBlbmNvbnRyYXJvbiByZXN1bHRhZG9zJyxcbiAgc2VjdGlvblRpdGxlOiAnUmVzdWx0YWRvcycsXG4gIHNlYXJjaE1vZGU6ICdyZW1vdGUnLFxuICBzZWFyY2hGaWVsZHM6IFtcbiAgICB7IHZhbHVlOiAnZGVzY3JpcHRpb24nLCBsYWJlbDogJ0Rlc2NyaXBjacOzbicsIHByb3BlcnR5OiAnZGVzY3JpcHRpb24nIH0sXG4gICAgeyB2YWx1ZTogJ2NvZGUnLCBsYWJlbDogJ0PDs2RpZ28nLCBwcm9wZXJ0eTogJ2NvZGUnIH0sXG4gICAgeyB2YWx1ZTogJ2JhcmNvZGUnLCBsYWJlbDogJ0PDs2RpZ28gZGUgQmFycmFzJywgcHJvcGVydHk6ICdiYXJjb2RlJyB9LFxuICAgIHsgdmFsdWU6ICdhdXhDb2RlJywgbGFiZWw6ICdDw7NkaWdvIEF1eGlsaWFyJywgcHJvcGVydHk6ICdhdXhDb2RlJyB9LFxuICBdLFxuICBzdG9ja09wdGlvbnM6IFtcbiAgICB7IHZhbHVlOiAnYWxsJywgbGFiZWw6ICdUb2RvcycgfSxcbiAgICB7IHZhbHVlOiAnd2l0aC1zdG9jaycsIGxhYmVsOiAnQ29uIFN0b2NrJyB9LFxuICAgIHsgdmFsdWU6ICd3aXRob3V0LXN0b2NrJywgbGFiZWw6ICdTaW4gU3RvY2snIH0sXG4gIF0sXG59O1xuXG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX1dSQVBQRVJfUFJPRFVDVF9DT05GSUc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSB7XG4gIC4uLkFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHLFxuICBwbGFjZWhvbGRlcjogJ0J1c2NhciBwcm9kdWN0b3MuLi4nLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogdHJ1ZSxcbiAgZW5hYmxlRm9vdGVyQWN0aW9uczogdHJ1ZSxcbiAgc2VjdGlvblRpdGxlOiAnUHJvZHVjdG9zJyxcbiAgbm9SZXN1bHRzVGV4dDogJ05vIHNlIGVuY29udHJhcm9uIHByb2R1Y3RvcycsXG59O1xuXG5leHBvcnQgY29uc3QgQVVUT0NPTVBMRVRFX1dSQVBQRVJfQ1VTVE9NRVJfQ09ORklHOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0ge1xuICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgcGxhY2Vob2xkZXI6ICdCdXNjYXIgY2xpZW50ZXMuLi4nLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogZmFsc2UsXG4gIGVuYWJsZUZvb3RlckFjdGlvbnM6IGZhbHNlLFxuICBzZWN0aW9uVGl0bGU6ICdDbGllbnRlcycsXG4gIG5vUmVzdWx0c1RleHQ6ICdObyBzZSBlbmNvbnRyYXJvbiBjbGllbnRlcycsXG4gIHNlYXJjaEZpZWxkczogW1xuICAgIHsgdmFsdWU6ICduYW1lJywgbGFiZWw6ICdOb21icmUnLCBwcm9wZXJ0eTogJ25hbWUnIH0sXG4gICAgeyB2YWx1ZTogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCcsIHByb3BlcnR5OiAnZW1haWwnIH0sXG4gICAgeyB2YWx1ZTogJ3Bob25lJywgbGFiZWw6ICdUZWzDqWZvbm8nLCBwcm9wZXJ0eTogJ3Bob25lJyB9LFxuICAgIHsgdmFsdWU6ICdkb2N1bWVudCcsIGxhYmVsOiAnRG9jdW1lbnRvJywgcHJvcGVydHk6ICdkb2N1bWVudCcgfSxcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfV1JBUFBFUl9TSU1QTEVfQ09ORklHOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0ge1xuICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgcGxhY2Vob2xkZXI6ICdCdXNjYXIuLi4nLFxuICBlbmFibGVTdG9ja0ZpbHRlcjogZmFsc2UsXG4gIGVuYWJsZUZpbHRlcnM6IGZhbHNlLFxuICBlbmFibGVGb290ZXJBY3Rpb25zOiBmYWxzZSxcbiAgZW5hYmxlUGFnaW5hdGlvbjogZmFsc2UsXG4gIGl0ZW1zUGVyUGFnZTogNTAsXG4gIHNlY3Rpb25UaXRsZTogJ1Jlc3VsdGFkb3MnLFxuICBvdmVybGF5TWF4SGVpZ2h0OiAnMzAwcHgnLFxufTtcblxuLy8gQ29uZmlndXJhY2nDs24gcGFyYSBiw7pzcXVlZGEgbG9jYWxcbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfV1JBUFBFUl9MT0NBTF9DT05GSUc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSB7XG4gIC4uLkFVVE9DT01QTEVURV9XUkFQUEVSX1NJTVBMRV9DT05GSUcsXG4gIHNlYXJjaE1vZGU6ICdsb2NhbCcsXG4gIGRlYm91bmNlVGltZTogMTUwLCAvLyBNZW5vcyB0aWVtcG8gcGFyYSBiw7pzcXVlZGEgbG9jYWxcbiAgbWluU2VhcmNoTGVuZ3RoOiAxLFxufTtcblxuLy8gQ29uZmlndXJhY2nDs24gcGFyYSBsaXN0YXMgZ3JhbmRlcyBjb24gcGFnaW5hY2nDs25cbmV4cG9ydCBjb25zdCBBVVRPQ09NUExFVEVfV1JBUFBFUl9QQUdJTkFURURfQ09ORklHOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0ge1xuICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgaXRlbXNQZXJQYWdlOiAyMCxcbiAgZW5hYmxlUGFnaW5hdGlvbjogdHJ1ZSxcbiAgb3ZlcmxheU1heEhlaWdodDogJzQwMHB4Jyxcbn07XG5cbi8vIEhlbHBlciBwYXJhIGNyZWFyIGNvbmZpZ3VyYWNpw7NuIHBlcnNvbmFsaXphZGFcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnKFxuICBvdmVycmlkZXM6IFBhcnRpYWw8QXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZz4sXG4pOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5BVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgICAuLi5vdmVycmlkZXMsXG4gIH07XG59XG5cbi8vIFRpcG9zIHBhcmEgZWwgY29tcG9uZW50ZSBBbmd1bGFyXG5leHBvcnQgaW50ZXJmYWNlIFJldXNhYmxlQXV0b2NvbXBsZXRlV3JhcHBlckNvbXBvbmVudCBleHRlbmRzIEF1dG9jb21wbGV0ZVdyYXBwZXJBY3Rpb25zIHtcbiAgY29uZmlnOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnO1xuICBmaWx0ZXJzOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycztcbiAgcXVlcnk6IHN0cmluZztcbn1cblxuLy8gVGlwb3MgZGUgdXRpbGlkYWQgZXNwZWPDrWZpY29zIGRlbCB3cmFwcGVyXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoTW9kZSA9ICdsb2NhbCcgfCAncmVtb3RlJyB8ICdoeWJyaWQnO1xuXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVXcmFwcGVySXRlbVByb3BlcnR5ID0ga2V5b2YgQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW07XG5cbmV4cG9ydCB0eXBlIEF1dG9jb21wbGV0ZVdyYXBwZXJFdmVudEhhbmRsZXI8VCA9IGFueT4gPSAoZXZlbnQ6IFQpID0+IHZvaWQ7XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, of, delay, map } from 'rxjs';\nimport { AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, } from '../models/autocomplete-wrapper.model';\nimport * as i0 from \"@angular/core\";\nexport class AutocompleteWrapperService {\n historySubject = new BehaviorSubject([]);\n history$ = this.historySubject.asObservable();\n constructor() {\n this.loadHistoryFromStorage();\n }\n // Búsqueda local (sin API)\n searchLocal(items, query, filters, config) {\n const filtered = this.filterItems(items, query, filters, config);\n const page = 1; // Para búsqueda local, asumimos página 1\n const pageSize = config.itemsPerPage || 10;\n const startIndex = (page - 1) * pageSize;\n const pageItems = filtered.slice(startIndex, startIndex + pageSize);\n return of({\n items: pageItems,\n totalCount: filtered.length,\n hasMore: filtered.length > startIndex + pageSize,\n });\n }\n // Filtrar elementos basado en query y filtros\n filterItems(items, query, filters, config = AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG) {\n if (!query || query.length < (config.minSearchLength || 2)) {\n return [];\n }\n let filteredItems = items.filter(item => {\n if (item && typeof item === 'string') {\n return true;\n }\n // Buscar por el campo seleccionado\n const searchValue = this.getSearchValue(item, filters.searchBy, config);\n return searchValue.toLowerCase().includes(query.toLowerCase());\n });\n // Aplicar filtro de stock si está habilitado\n if (config.enableStockFilter && filters.stockFilter !== 'all') {\n filteredItems = filteredItems.filter(item => {\n if (typeof item === 'string')\n return true;\n const stockValue = item[config.stockProperty || 'stock'];\n const hasStock = stockValue !== undefined && stockValue !== null && stockValue > 0;\n return filters.stockFilter === 'with-stock' ? hasStock : !hasStock;\n });\n }\n return filteredItems;\n }\n // Simular búsqueda asíncrona\n searchAsync(items, query, filters, config = AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG) {\n const results = this.filterItems(items, query, filters, config);\n return of(results).pipe(delay(100)); // Simular delay de API\n }\n // Obtener valor de búsqueda según el campo seleccionado\n getSearchValue(item, searchBy, config) {\n const searchField = config.searchFields?.find(field => field.value === searchBy);\n if (searchField) {\n return item[searchField.property] || '';\n }\n // Fallback a la lógica anterior\n switch (searchBy) {\n case 'description':\n return item['description'] || '';\n case 'code':\n return item['code'] || item.id?.toString() || '';\n case 'barcode':\n return item['barcode'] || '';\n case 'auxCode':\n return item['auxCode'] || '';\n case 'email':\n return item['email'] || '';\n case 'phone':\n return item['phone'] || '';\n case 'document':\n return item['document'] || '';\n case 'name':\n default:\n return item.name || item.value || '';\n }\n }\n // Gestión de historial específico del wrapper\n addToHistory(item, maxItems = 10) {\n const currentHistory = this.historySubject.value;\n // Remover si ya existe\n const filteredHistory = currentHistory.filter(historyItem => {\n if (typeof item === 'string' && typeof historyItem === 'string') {\n return item !== historyItem;\n }\n else if (typeof item === 'object' && typeof historyItem === 'object') {\n return (item.id || item.name) !== (historyItem.id || historyItem.name);\n }\n return true;\n });\n // Agregar al inicio\n const newHistory = [item, ...filteredHistory].slice(0, maxItems);\n this.historySubject.next(newHistory);\n this.saveHistoryToStorage(newHistory);\n }\n removeFromHistory(index) {\n const currentHistory = this.historySubject.value;\n currentHistory.splice(index, 1);\n this.historySubject.next([...currentHistory]);\n this.saveHistoryToStorage(currentHistory);\n }\n clearHistory() {\n this.historySubject.next([]);\n this.saveHistoryToStorage([]);\n }\n getHistory() {\n return this.historySubject.value;\n }\n // Gestión de almacenamiento específico del wrapper\n loadHistoryFromStorage() {\n try {\n const stored = localStorage.getItem('autocomplete_wrapper_history');\n if (stored) {\n const history = JSON.parse(stored);\n this.historySubject.next(history);\n }\n }\n catch (error) {\n console.warn('Error loading autocomplete wrapper history:', error);\n }\n }\n saveHistoryToStorage(history) {\n try {\n localStorage.setItem('autocomplete_wrapper_history', JSON.stringify(history));\n }\n catch (error) {\n console.warn('Error saving autocomplete wrapper history:', error);\n }\n }\n // Paginación\n paginateItems(items, page, itemsPerPage) {\n const startIndex = (page - 1) * itemsPerPage;\n const endIndex = startIndex + itemsPerPage;\n return items.slice(startIndex, endIndex);\n }\n getTotalPages(totalItems, itemsPerPage) {\n return Math.ceil(totalItems / itemsPerPage) || 1;\n }\n // Validaciones\n isValidPage(page, totalPages) {\n return page >= 1 && page <= totalPages;\n }\n // Utilidades para templates\n highlightText(text, query) {\n if (!query || !text)\n return text;\n const regex = new RegExp(`(${query})`, 'gi');\n return text.replace(regex, '<mark>$1</mark>');\n }\n getItemDisplayText(item, displayField = 'nombre') {\n if (typeof item === 'string')\n return item;\n return item[displayField] || item.name || item.value || item.id?.toString() || '';\n }\n // Configuración dinámica\n mergeConfig(userConfig) {\n return { ...AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, ...userConfig };\n }\n // Factory para crear función de búsqueda genérica\n createGenericSearchFunction(config) {\n return (query, filters, page = 1, pageSize = 10) => {\n const { searchBy, ...rest } = filters;\n const params = {\n [config.queryParam || 'q']: query,\n [config.searchByParam || 'searchBy']: searchBy,\n [config.pageParam || 'page']: page,\n [config.pageSizeParam || 'pageSize']: pageSize,\n ...rest,\n };\n return config.search(params).pipe(map(response => {\n if (config.responseMapper) {\n return config.responseMapper(response);\n }\n // Mapper por defecto\n const items = response.data || response.items || response;\n const totalRecords = response.totalRecords || response.totalCount || response.total || 0;\n return {\n items,\n totalCount: totalRecords,\n hasMore: response.hasMore || false,\n };\n }));\n };\n }\n // Función para crear datos de ejemplo/mock específicos del wrapper\n createMockData() {\n return [\n {\n id: 1,\n name: 'iPhone 14 Pro 128GB',\n description: 'Smartphone Apple con chip A16 Bionic y cámara Pro',\n code: 'IP14P-128',\n barcode: '1234567890123',\n auxCode: 'APL-IP14P-128',\n stock: 15,\n category: 'Smartphones',\n brand: 'Apple',\n unit: 'unidad',\n prices: [\n {\n id: 1,\n type: 'retail',\n label: 'Público',\n value: 999,\n currency: 'USD',\n includesTax: true,\n isDefault: true,\n isActive: true,\n },\n {\n id: 2,\n type: 'wholesale',\n label: 'Mayorista',\n value: 850,\n currency: 'USD',\n minQuantity: 5,\n includesTax: false,\n isActive: true,\n },\n {\n id: 3,\n type: 'vip',\n label: 'VIP',\n value: 899,\n currency: 'USD',\n includesTax: true,\n isActive: true,\n },\n {\n id: 4,\n type: 'promotional',\n label: 'Black Friday',\n value: 749,\n currency: 'USD',\n validFrom: new Date('2024-11-24'),\n validTo: new Date('2024-11-30'),\n includesTax: true,\n isActive: true,\n },\n ],\n },\n {\n id: 2,\n name: 'Samsung Galaxy S23 256GB',\n description: 'Flagship Android con cámara de 200MP',\n code: 'SGS23-256',\n barcode: '2345678901234',\n auxCode: 'SAM-GS23-256',\n stock: 0,\n category: 'Smartphones',\n brand: 'Samsung',\n unit: 'unidad',\n images: [\n {\n id: 1,\n url: 'https://images.unsplash.com/photo-1592750475338-74b7b21085ab?w=400',\n thumbnailUrl: 'https://images.unsplash.com/photo-1592750475338-74b7b21085ab?w=200',\n alt: 'Samsung Galaxy S23 frontal',\n type: 'main',\n isPrimary: true,\n order: 1,\n },\n {\n id: 2,\n url: 'https://images.unsplash.com/photo-1574755393849-623942496936?w=400',\n thumbnailUrl: 'https://images.unsplash.com/photo-1574755393849-623942496936?w=200',\n alt: 'Samsung Galaxy S23 trasero',\n type: 'gallery',\n order: 2,\n },\n ],\n badges: [{ type: 'new', text: 'NUEVO' }, { type: 'bestseller' }],\n prices: [\n {\n id: 5,\n type: 'retail',\n label: 'Público',\n value: 799,\n currency: 'USD',\n includesTax: true,\n isDefault: true,\n isActive: true,\n },\n {\n id: 6,\n type: 'wholesale',\n label: 'Mayorista',\n value: 679,\n currency: 'USD',\n minQuantity: 3,\n includesTax: false,\n isActive: true,\n },\n ],\n },\n ];\n }\n // Métodos específicos para diferentes tipos de búsqueda\n searchProducts(query, filters = {}) {\n const defaultFilters = {\n searchBy: 'description',\n stockFilter: 'all',\n ...filters,\n };\n const mockData = this.createMockData();\n return this.searchLocal(mockData, query, defaultFilters, AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG);\n }\n // Crear configuración específica para diferentes casos de uso\n createProductSearchConfig() {\n return this.mergeConfig({\n placeholder: 'Buscar productos...',\n enableStockFilter: true,\n enableFooterActions: true,\n sectionTitle: 'Productos',\n searchFields: [\n { value: 'description', label: 'Descripción', property: 'description' },\n { value: 'code', label: 'Código', property: 'code' },\n { value: 'barcode', label: 'Código de Barras', property: 'barcode' },\n { value: 'auxCode', label: 'Código Auxiliar', property: 'auxCode' },\n ],\n });\n }\n createCustomerSearchConfig() {\n return this.mergeConfig({\n placeholder: 'Buscar clientes...',\n enableStockFilter: false,\n enableFooterActions: false,\n sectionTitle: 'Clientes',\n searchFields: [\n { value: 'name', label: 'Nombre', property: 'name' },\n { value: 'email', label: 'Email', property: 'email' },\n { value: 'phone', label: 'Teléfono', property: 'phone' },\n { value: 'document', label: 'Documento', property: 'document' },\n ],\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AutocompleteWrapperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AutocompleteWrapperService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: AutocompleteWrapperService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9hdXRvY29tcGxldGUtd3JhcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQ0wsbUNBQW1DLEdBTXBDLE1BQU0sc0NBQXNDLENBQUM7O0FBSzlDLE1BQU0sT0FBTywwQkFBMEI7SUFDN0IsY0FBYyxHQUFHLElBQUksZUFBZSxDQUE0QixFQUFFLENBQUMsQ0FBQztJQUNyRSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVyRDtRQUNFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsV0FBVyxDQUNULEtBQWdDLEVBQ2hDLEtBQWEsRUFDYixPQUFtQyxFQUNuQyxNQUFpQztRQUVqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztRQUN6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLFFBQVEs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QUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7Z0JBQ3BELEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQ3JELEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQ3hELEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7YUFDaEU7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTVZVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgZGVsYXksIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQVVUT0NPTVBMRVRFX1dSQVBQRVJfREVGQVVMVF9DT05GSUcsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzLFxuICBBdXRvY29tcGxldGVXcmFwcGVySXRlbSxcbiAgQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaEZ1bmN0aW9uLFxuICBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoUmVzdWx0LFxufSBmcm9tICcuLi9tb2RlbHMvYXV0b2NvbXBsZXRlLXdyYXBwZXIubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlV3JhcHBlclNlcnZpY2Uge1xuICBwcml2YXRlIGhpc3RvcnlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdPihbXSk7XG4gIHB1YmxpYyBoaXN0b3J5JCA9IHRoaXMuaGlzdG9yeVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2FkSGlzdG9yeUZyb21TdG9yYWdlKCk7XG4gIH1cblxuICAvLyBCw7pzcXVlZGEgbG9jYWwgKHNpbiBBUEkpXG4gIHNlYXJjaExvY2FsKFxuICAgIGl0ZW1zOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgZmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMsXG4gICAgY29uZmlnOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnLFxuICApOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQ+IHtcbiAgICBjb25zdCBmaWx0ZXJlZCA9IHRoaXMuZmlsdGVySXRlbXMoaXRlbXMsIHF1ZXJ5LCBmaWx0ZXJzLCBjb25maWcpO1xuICAgIGNvbnN0IHBhZ2UgPSAxOyAvLyBQYXJhIGLDunNxdWVkYSBsb2NhbCwgYXN1bWltb3MgcMOhZ2luYSAxXG4gICAgY29uc3QgcGFnZVNpemUgPSBjb25maWcuaXRlbXNQZXJQYWdlIHx8IDEwO1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZSAtIDEpICogcGFnZVNpemU7XG4gICAgY29uc3QgcGFnZUl0ZW1zID0gZmlsdGVyZWQuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIHBhZ2VTaXplKTtcblxuICAgIHJldHVybiBvZih7XG4gICAgICBpdGVtczogcGFnZUl0ZW1zLFxuICAgICAgdG90YWxDb3VudDogZmlsdGVyZWQubGVuZ3RoLFxuICAgICAgaGFzTW9yZTogZmlsdGVyZWQubGVuZ3RoID4gc3RhcnRJbmRleCArIHBhZ2VTaXplLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gRmlsdHJhciBlbGVtZW50b3MgYmFzYWRvIGVuIHF1ZXJ5IHkgZmlsdHJvc1xuICBmaWx0ZXJJdGVtcyhcbiAgICBpdGVtczogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXSxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIGZpbHRlcnM6IEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzLFxuICAgIGNvbmZpZzogQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyA9IEFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHLFxuICApOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdIHtcbiAgICBpZiAoIXF1ZXJ5IHx8IHF1ZXJ5Lmxlbmd0aCA8IChjb25maWcubWluU2VhcmNoTGVuZ3RoIHx8IDIpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlcmVkSXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEJ1c2NhciBwb3IgZWwgY2FtcG8gc2VsZWNjaW9uYWRvXG4gICAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMuZ2V0U2VhcmNoVmFsdWUoaXRlbSwgZmlsdGVycy5zZWFyY2hCeSwgY29uZmlnKTtcbiAgICAgIHJldHVybiBzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgLy8gQXBsaWNhciBmaWx0cm8gZGUgc3RvY2sgc2kgZXN0w6EgaGFiaWxpdGFkb1xuICAgIGlmIChjb25maWcuZW5hYmxlU3RvY2tGaWx0ZXIgJiYgZmlsdGVycy5zdG9ja0ZpbHRlciAhPT0gJ2FsbCcpIHtcbiAgICAgIGZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZEl0ZW1zLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgY29uc3Qgc3RvY2tWYWx1ZSA9IGl0ZW1bY29uZmlnLnN0b2NrUHJvcGVydHkgfHwgJ3N0b2NrJ107XG4gICAgICAgIGNvbnN0IGhhc1N0b2NrID0gc3RvY2tWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHN0b2NrVmFsdWUgIT09IG51bGwgJiYgc3RvY2tWYWx1ZSA+IDA7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuc3RvY2tGaWx0ZXIgPT09ICd3aXRoLXN0b2NrJyA/IGhhc1N0b2NrIDogIWhhc1N0b2NrO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkSXRlbXM7XG4gIH1cblxuICAvLyBTaW11bGFyIGLDunNxdWVkYSBhc8OtbmNyb25hXG4gIHNlYXJjaEFzeW5jKFxuICAgIGl0ZW1zOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgZmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMsXG4gICAgY29uZmlnOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnID0gQVVUT0NPTVBMRVRFX1dSQVBQRVJfREVGQVVMVF9DT05GSUcsXG4gICk6IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSB0aGlzLmZpbHRlckl0ZW1zKGl0ZW1zLCBxdWVyeSwgZmlsdGVycywgY29uZmlnKTtcbiAgICByZXR1cm4gb2YocmVzdWx0cykucGlwZShkZWxheSgxMDApKTsgLy8gU2ltdWxhciBkZWxheSBkZSBBUElcbiAgfVxuXG4gIC8vIE9idGVuZXIgdmFsb3IgZGUgYsO6c3F1ZWRhIHNlZ8O6biBlbCBjYW1wbyBzZWxlY2Npb25hZG9cbiAgcHJpdmF0ZSBnZXRTZWFyY2hWYWx1ZShcbiAgICBpdGVtOiBBdXRvY29tcGxldGVXcmFwcGVySXRlbSxcbiAgICBzZWFyY2hCeTogc3RyaW5nLFxuICAgIGNvbmZpZzogQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWFyY2hGaWVsZCA9IGNvbmZpZy5zZWFyY2hGaWVsZHM/LmZpbmQoZmllbGQgPT4gZmllbGQudmFsdWUgPT09IHNlYXJjaEJ5KTtcbiAgICBpZiAoc2VhcmNoRmllbGQpIHtcbiAgICAgIHJldHVybiBpdGVtW3NlYXJjaEZpZWxkLnByb3BlcnR5XSB8fCAnJztcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBhIGxhIGzDs2dpY2EgYW50ZXJpb3JcbiAgICBzd2l0Y2ggKHNlYXJjaEJ5KSB7XG4gICAgICBjYXNlICdkZXNjcmlwdGlvbic6XG4gICAgICAgIHJldHVybiBpdGVtWydkZXNjcmlwdGlvbiddIHx8ICcnO1xuICAgICAgY2FzZSAnY29kZSc6XG4gICAgICAgIHJldHVybiBpdGVtWydjb2RlJ10gfHwgaXRlbS5pZD8udG9TdHJpbmcoKSB8fCAnJztcbiAgICAgIGNhc2UgJ2JhcmNvZGUnOlxuICAgICAgICByZXR1cm4gaXRlbVsnYmFyY29kZSddIHx8ICcnO1xuICAgICAgY2FzZSAnYXV4Q29kZSc6XG4gICAgICAgIHJldHVybiBpdGVtWydhdXhDb2RlJ10gfHwgJyc7XG4gICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgIHJldHVybiBpdGVtWydlbWFpbCddIHx8ICcnO1xuICAgICAgY2FzZSAncGhvbmUnOlxuICAgICAgICByZXR1cm4gaXRlbVsncGhvbmUnXSB8fCAnJztcbiAgICAgIGNhc2UgJ2RvY3VtZW50JzpcbiAgICAgICAgcmV0dXJuIGl0ZW1bJ2RvY3VtZW50J10gfHwgJyc7XG4gICAgICBjYXNlICduYW1lJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBpdGVtLm5hbWUgfHwgaXRlbS52YWx1ZSB8fCAnJztcbiAgICB9XG4gIH1cblxuICAvLyBHZXN0acOzbiBkZSBoaXN0b3JpYWwgZXNwZWPDrWZpY28gZGVsIHdyYXBwZXJcbiAgYWRkVG9IaXN0b3J5KGl0ZW06IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtLCBtYXhJdGVtcyA9IDEwKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEhpc3RvcnkgPSB0aGlzLmhpc3RvcnlTdWJqZWN0LnZhbHVlO1xuXG4gICAgLy8gUmVtb3ZlciBzaSB5YSBleGlzdGVcbiAgICBjb25zdCBmaWx0ZXJlZEhpc3RvcnkgPSBjdXJyZW50SGlzdG9yeS5maWx0ZXIoaGlzdG9yeUl0ZW0gPT4ge1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgaGlzdG9yeUl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBpdGVtICE9PSBoaXN0b3J5SXRlbTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIHR5cGVvZiBoaXN0b3J5SXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIChpdGVtLmlkIHx8IGl0ZW0ubmFtZSkgIT09IChoaXN0b3J5SXRlbS5pZCB8fCBoaXN0b3J5SXRlbS5uYW1lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgLy8gQWdyZWdhciBhbCBpbmljaW9cbiAgICBjb25zdCBuZXdIaXN0b3J5ID0gW2l0ZW0sIC4uLmZpbHRlcmVkSGlzdG9yeV0uc2xpY2UoMCwgbWF4SXRlbXMpO1xuXG4gICAgdGhpcy5oaXN0b3J5U3ViamVjdC5uZXh0KG5ld0hpc3RvcnkpO1xuICAgIHRoaXMuc2F2ZUhpc3RvcnlUb1N0b3JhZ2UobmV3SGlzdG9yeSk7XG4gIH1cblxuICByZW1vdmVGcm9tSGlzdG9yeShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEhpc3RvcnkgPSB0aGlzLmhpc3RvcnlTdWJqZWN0LnZhbHVlO1xuICAgIGN1cnJlbnRIaXN0b3J5LnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5oaXN0b3J5U3ViamVjdC5uZXh0KFsuLi5jdXJyZW50SGlzdG9yeV0pO1xuICAgIHRoaXMuc2F2ZUhpc3RvcnlUb1N0b3JhZ2UoY3VycmVudEhpc3RvcnkpO1xuICB9XG5cbiAgY2xlYXJIaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuaGlzdG9yeVN1YmplY3QubmV4dChbXSk7XG4gICAgdGhpcy5zYXZlSGlzdG9yeVRvU3RvcmFnZShbXSk7XG4gIH1cblxuICBnZXRIaXN0b3J5KCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgLy8gR2VzdGnDs24gZGUgYWxtYWNlbmFtaWVudG8gZXNwZWPDrWZpY28gZGVsIHdyYXBwZXJcbiAgcHJpdmF0ZSBsb2FkSGlzdG9yeUZyb21TdG9yYWdlKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYXV0b2NvbXBsZXRlX3dyYXBwZXJfaGlzdG9yeScpO1xuICAgICAgaWYgKHN0b3JlZCkge1xuICAgICAgICBjb25zdCBoaXN0b3J5ID0gSlNPTi5wYXJzZShzdG9yZWQpO1xuICAgICAgICB0aGlzLmhpc3RvcnlTdWJqZWN0Lm5leHQoaGlzdG9yeSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRXJyb3IgbG9hZGluZyBhdXRvY29tcGxldGUgd3JhcHBlciBoaXN0b3J5OicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVIaXN0b3J5VG9TdG9yYWdlKGhpc3Rvcnk6IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtW10pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2F1dG9jb21wbGV0ZV93cmFwcGVyX2hpc3RvcnknLCBKU09OLnN0cmluZ2lmeShoaXN0b3J5KSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRXJyb3Igc2F2aW5nIGF1dG9jb21wbGV0ZSB3cmFwcGVyIGhpc3Rvcnk6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2luYWNpw7NuXG4gIHBhZ2luYXRlSXRlbXM8VD4oaXRlbXM6IFRbXSwgcGFnZTogbnVtYmVyLCBpdGVtc1BlclBhZ2U6IG51bWJlcik6IFRbXSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChwYWdlIC0gMSkgKiBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgaXRlbXNQZXJQYWdlO1xuICAgIHJldHVybiBpdGVtcy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gIH1cblxuICBnZXRUb3RhbFBhZ2VzKHRvdGFsSXRlbXM6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmNlaWwodG90YWxJdGVtcyAvIGl0ZW1zUGVyUGFnZSkgfHwgMTtcbiAgfVxuXG4gIC8vIFZhbGlkYWNpb25lc1xuICBpc1ZhbGlkUGFnZShwYWdlOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYWdlID49IDEgJiYgcGFnZSA8PSB0b3RhbFBhZ2VzO1xuICB9XG5cbiAgLy8gVXRpbGlkYWRlcyBwYXJhIHRlbXBsYXRlc1xuICBoaWdobGlnaHRUZXh0KHRleHQ6IHN0cmluZywgcXVlcnk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFxdWVyeSB8fCAhdGV4dCkgcmV0dXJuIHRleHQ7XG5cbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCgke3F1ZXJ5fSlgLCAnZ2knKTtcbiAgICByZXR1cm4gdGV4dC5yZXBsYWNlKHJlZ2V4LCAnPG1hcms+JDE8L21hcms+Jyk7XG4gIH1cblxuICBnZXRJdGVtRGlzcGxheVRleHQoaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0sIGRpc3BsYXlGaWVsZCA9ICdub21icmUnKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSByZXR1cm4gaXRlbTtcbiAgICByZXR1cm4gaXRlbVtkaXNwbGF5RmllbGRdIHx8IGl0ZW0ubmFtZSB8fCBpdGVtLnZhbHVlIHx8IGl0ZW0uaWQ/LnRvU3RyaW5nKCkgfHwgJyc7XG4gIH1cblxuICAvLyBDb25maWd1cmFjacOzbiBkaW7DoW1pY2FcbiAgbWVyZ2VDb25maWcodXNlckNvbmZpZzogUGFydGlhbDxBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnPik6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcge1xuICAgIHJldHVybiB7IC4uLkFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHLCAuLi51c2VyQ29uZmlnIH07XG4gIH1cblxuICAvLyBGYWN0b3J5IHBhcmEgY3JlYXIgZnVuY2nDs24gZGUgYsO6c3F1ZWRhIGdlbsOpcmljYVxuICBjcmVhdGVHZW5lcmljU2VhcmNoRnVuY3Rpb24oY29uZmlnOiB7XG4gICAgc2VhcmNoOiAocGFyYW1zOiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcbiAgICBxdWVyeVBhcmFtPzogc3RyaW5nO1xuICAgIHNlYXJjaEJ5UGFyYW0/OiBzdHJpbmc7XG4gICAgcGFnZVBhcmFtPzogc3RyaW5nO1xuICAgIHBhZ2VTaXplUGFyYW0/OiBzdHJpbmc7XG4gICAgcmVzcG9uc2VNYXBwZXI/OiAocmVzcG9uc2U6IGFueSkgPT4gQXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaFJlc3VsdDtcbiAgfSk6IEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hGdW5jdGlvbiB7XG4gICAgcmV0dXJuIChxdWVyeTogc3RyaW5nLCBmaWx0ZXJzOiBBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycywgcGFnZSA9IDEsIHBhZ2VTaXplID0gMTApID0+IHtcbiAgICAgIGNvbnN0IHsgc2VhcmNoQnksIC4uLnJlc3QgfSA9IGZpbHRlcnM7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIFtjb25maWcucXVlcnlQYXJhbSB8fCAncSddOiBxdWVyeSxcbiAgICAgICAgW2NvbmZpZy5zZWFyY2hCeVBhcmFtIHx8ICdzZWFyY2hCeSddOiBzZWFyY2hCeSxcbiAgICAgICAgW2NvbmZpZy5wYWdlUGFyYW0gfHwgJ3BhZ2UnXTogcGFnZSxcbiAgICAgICAgW2NvbmZpZy5wYWdlU2l6ZVBhcmFtIHx8ICdwYWdlU2l6ZSddOiBwYWdlU2l6ZSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBjb25maWcuc2VhcmNoKHBhcmFtcykucGlwZShcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnLnJlc3BvbnNlTWFwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gY29uZmlnLnJlc3BvbnNlTWFwcGVyKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBNYXBwZXIgcG9yIGRlZmVjdG9cbiAgICAgICAgICBjb25zdCBpdGVtcyA9IHJlc3BvbnNlLmRhdGEgfHwgcmVzcG9uc2UuaXRlbXMgfHwgcmVzcG9uc2U7XG4gICAgICAgICAgY29uc3QgdG90YWxSZWNvcmRzID0gcmVzcG9uc2UudG90YWxSZWNvcmRzIHx8IHJlc3BvbnNlLnRvdGFsQ291bnQgfHwgcmVzcG9uc2UudG90YWwgfHwgMDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgICB0b3RhbENvdW50OiB0b3RhbFJlY29yZHMsXG4gICAgICAgICAgICBoYXNNb3JlOiByZXNwb25zZS5oYXNNb3JlIHx8IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gRnVuY2nDs24gcGFyYSBjcmVhciBkYXRvcyBkZSBlamVtcGxvL21vY2sgZXNwZWPDrWZpY29zIGRlbCB3cmFwcGVyXG4gIGNyZWF0ZU1vY2tEYXRhKCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAxLFxuICAgICAgICBuYW1lOiAnaVBob25lIDE0IFBybyAxMjhHQicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU21hcnRwaG9uZSBBcHBsZSBjb24gY2hpcCBBMTYgQmlvbmljIHkgY8OhbWFyYSBQcm8nLFxuICAgICAgICBjb2RlOiAnSVAxNFAtMTI4JyxcbiAgICAgICAgYmFyY29kZTogJzEyMzQ1Njc4OTAxMjMnLFxuICAgICAgICBhdXhDb2RlOiAnQVBMLUlQMTRQLTEyOCcsXG4gICAgICAgIHN0b2NrOiAxNSxcbiAgICAgICAgY2F0ZWdvcnk6ICdTbWFydHBob25lcycsXG4gICAgICAgIGJyYW5kOiAnQXBwbGUnLFxuICAgICAgICB1bml0OiAndW5pZGFkJyxcbiAgICAgICAgcHJpY2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgICB0eXBlOiAncmV0YWlsJyxcbiAgICAgICAgICAgIGxhYmVsOiAnUMO6YmxpY28nLFxuICAgICAgICAgICAgdmFsdWU6IDk5OSxcbiAgICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICAgIGluY2x1ZGVzVGF4OiB0cnVlLFxuICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogMixcbiAgICAgICAgICAgIHR5cGU6ICd3aG9sZXNhbGUnLFxuICAgICAgICAgICAgbGFiZWw6ICdNYXlvcmlzdGEnLFxuICAgICAgICAgICAgdmFsdWU6IDg1MCxcbiAgICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICAgIG1pblF1YW50aXR5OiA1LFxuICAgICAgICAgICAgaW5jbHVkZXNUYXg6IGZhbHNlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogMyxcbiAgICAgICAgICAgIHR5cGU6ICd2aXAnLFxuICAgICAgICAgICAgbGFiZWw6ICdWSVAnLFxuICAgICAgICAgICAgdmFsdWU6IDg5OSxcbiAgICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICAgIGluY2x1ZGVzVGF4OiB0cnVlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogNCxcbiAgICAgICAgICAgIHR5cGU6ICdwcm9tb3Rpb25hbCcsXG4gICAgICAgICAgICBsYWJlbDogJ0JsYWNrIEZyaWRheScsXG4gICAgICAgICAgICB2YWx1ZTogNzQ5LFxuICAgICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgICAgdmFsaWRGcm9tOiBuZXcgRGF0ZSgnMjAyNC0xMS0yNCcpLFxuICAgICAgICAgICAgdmFsaWRUbzogbmV3IERhdGUoJzIwMjQtMTEtMzAnKSxcbiAgICAgICAgICAgIGluY2x1ZGVzVGF4OiB0cnVlLFxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAyLFxuICAgICAgICBuYW1lOiAnU2Ftc3VuZyBHYWxheHkgUzIzIDI1NkdCJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGbGFnc2hpcCBBbmRyb2lkIGNvbiBjw6FtYXJhIGRlIDIwME1QJyxcbiAgICAgICAgY29kZTogJ1NHUzIzLTI1NicsXG4gICAgICAgIGJhcmNvZGU6ICcyMzQ1Njc4OTAxMjM0JyxcbiAgICAgICAgYXV4Q29kZTogJ1NBTS1HUzIzLTI1NicsXG4gICAgICAgIHN0b2NrOiAwLFxuICAgICAgICBjYXRlZ29yeTogJ1NtYXJ0cGhvbmVzJyxcbiAgICAgICAgYnJhbmQ6ICdTYW1zdW5nJyxcbiAgICAgICAgdW5pdDogJ3VuaWRhZCcsXG4gICAgICAgIGltYWdlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1OTI3NTA0NzUzMzgtNzRiN2IyMTA4NWFiP3c9NDAwJyxcbiAgICAgICAgICAgIHRodW1ibmFpbFVybDogJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTkyNzUwNDc1MzM4LTc0YjdiMjEwODVhYj93PTIwMCcsXG4gICAgICAgICAgICBhbHQ6ICdTYW1zdW5nIEdhbGF4eSBTMjMgZnJvbnRhbCcsXG4gICAgICAgICAgICB0eXBlOiAnbWFpbicsXG4gICAgICAgICAgICBpc1ByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAyLFxuICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1NzQ3NTUzOTM4NDktNjIzOTQyNDk2OTM2P3c9NDAwJyxcbiAgICAgICAgICAgIHRodW1ibmFpbFVybDogJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTc0NzU1MzkzODQ5LTYyMzk0MjQ5NjkzNj93PTIwMCcsXG4gICAgICAgICAgICBhbHQ6ICdTYW1zdW5nIEdhbGF4eSBTMjMgdHJhc2VybycsXG4gICAgICAgICAgICB0eXBlOiAnZ2FsbGVyeScsXG4gICAgICAgICAgICBvcmRlcjogMixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBiYWRnZXM6IFt7IHR5cGU6ICduZXcnLCB0ZXh0OiAnTlVFVk8nIH0sIHsgdHlwZTogJ2Jlc3RzZWxsZXInIH1dLFxuICAgICAgICBwcmljZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogNSxcbiAgICAgICAgICAgIHR5cGU6ICdyZXRhaWwnLFxuICAgICAgICAgICAgbGFiZWw6ICdQw7pibGljbycsXG4gICAgICAgICAgICB2YWx1ZTogNzk5LFxuICAgICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgICAgaW5jbHVkZXNUYXg6IHRydWUsXG4gICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiA2LFxuICAgICAgICAgICAgdHlwZTogJ3dob2xlc2FsZScsXG4gICAgICAgICAgICBsYWJlbDogJ01heW9yaXN0YScsXG4gICAgICAgICAgICB2YWx1ZTogNjc5LFxuICAgICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgICAgbWluUXVhbnRpdHk6IDMsXG4gICAgICAgICAgICBpbmNsdWRlc1RheDogZmFsc2UsXG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLy8gTcOpdG9kb3MgZXNwZWPDrWZpY29zIHBhcmEgZGlmZXJlbnRlcyB0aXBvcyBkZSBiw7pzcXVlZGFcbiAgc2VhcmNoUHJvZHVjdHMoXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBmaWx0ZXJzOiBQYXJ0aWFsPEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzPiA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQ+IHtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMgPSB7XG4gICAgICBzZWFyY2hCeTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgIHN0b2NrRmlsdGVyOiAnYWxsJyxcbiAgICAgIC4uLmZpbHRlcnMsXG4gICAgfTtcblxuICAgIGNvbnN0IG1vY2tEYXRhID0gdGhpcy5jcmVhdGVNb2NrRGF0YSgpO1xuICAgIHJldHVybiB0aGlzLnNlYXJjaExvY2FsKG1vY2tEYXRhLCBxdWVyeSwgZGVmYXVsdEZpbHRlcnMsIEFVVE9DT01QTEVURV9XUkFQUEVSX0RFRkFVTFRfQ09ORklHKTtcbiAgfVxuXG4gIC8vIENyZWFyIGNvbmZpZ3VyYWNpw7NuIGVzcGVjw61maWNhIHBhcmEgZGlmZXJlbnRlcyBjYXNvcyBkZSB1c29cbiAgY3JlYXRlUHJvZHVjdFNlYXJjaENvbmZpZygpOiBBdXRvY29tcGxldGVXcmFwcGVyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5tZXJnZUNvbmZpZyh7XG4gICAgICBwbGFjZWhvbGRlcjogJ0J1c2NhciBwcm9kdWN0b3MuLi4nLFxuICAgICAgZW5hYmxlU3RvY2tGaWx0ZXI6IHRydWUsXG4gICAgICBlbmFibGVGb290ZXJBY3Rpb25zOiB0cnVlLFxuICAgICAgc2VjdGlvblRpdGxlOiAnUHJvZHVjdG9zJyxcbiAgICAgIHNlYXJjaEZpZWxkczogW1xuICAgICAgICB7IHZhbHVlOiAnZGVzY3JpcHRpb24nLCBsYWJlbDogJ0Rlc2NyaXBjacOzbicsIHByb3BlcnR5OiAnZGVzY3JpcHRpb24nIH0sXG4gICAgICAgIHsgdmFsdWU6ICdjb2RlJywgbGFiZWw6ICdDw7NkaWdvJywgcHJvcGVydHk6ICdjb2RlJyB9LFxuICAgICAgICB7IHZhbHVlOiAnYmFyY29kZScsIGxhYmVsOiAnQ8OzZGlnbyBkZSBCYXJyYXMnLCBwcm9wZXJ0eTogJ2JhcmNvZGUnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdhdXhDb2RlJywgbGFiZWw6ICdDw7NkaWdvIEF1eGlsaWFyJywgcHJvcGVydHk6ICdhdXhDb2RlJyB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUN1c3RvbWVyU2VhcmNoQ29uZmlnKCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLm1lcmdlQ29uZmlnKHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnQnVzY2FyIGNsaWVudGVzLi4uJyxcbiAgICAgIGVuYWJsZVN0b2NrRmlsdGVyOiBmYWxzZSxcbiAgICAgIGVuYWJsZUZvb3RlckFjdGlvbnM6IGZhbHNlLFxuICAgICAgc2VjdGlvblRpdGxlOiAnQ2xpZW50ZXMnLFxuICAgICAgc2VhcmNoRmllbGRzOiBbXG4gICAgICAgIHsgdmFsdWU6ICduYW1lJywgbGFiZWw6ICdOb21icmUnLCBwcm9wZXJ0eTogJ25hbWUnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdlbWFpbCcsIGxhYmVsOiAnRW1haWwnLCBwcm9wZXJ0eTogJ2VtYWlsJyB9LFxuICAgICAgICB7IHZhbHVlOiAncGhvbmUnLCBsYWJlbDogJ1RlbMOpZm9ubycsIHByb3BlcnR5OiAncGhvbmUnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdkb2N1bWVudCcsIGxhYmVsOiAnRG9jdW1lbnRvJywgcHJvcGVydHk6ICdkb2N1bWVudCcgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { ThemeService } from '../../services';\nimport { MatIconButton } from '@angular/material/button';\nimport { AsyncPipe } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nexport class ThemeToggleComponent {\n themeService = inject(ThemeService);\n darkMode$;\n constructor() {\n this.darkMode$ = this.themeService.isDarkMode$;\n }\n toggleDarkMode() {\n this.themeService.toggleDarkMode();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.1\", type: ThemeToggleComponent, isStandalone: true, selector: \"acp-theme-toggle\", ngImport: i0, template: \"<button\\n mat-icon-button\\n (click)=\\\"toggleDarkMode()\\\"\\n title=\\\"{{ (darkMode$ | async) ? 'Modo D\\u00EDa' : 'Modo Noche' }}\\\"\\n>\\n <mat-icon>{{ (darkMode$ | async) ? 'light_mode' : 'dark_mode' }}</mat-icon>\\n</button>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ThemeToggleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-theme-toggle', imports: [MatIconButton, MatIcon, AsyncPipe], template: \"<button\\n mat-icon-button\\n (click)=\\\"toggleDarkMode()\\\"\\n title=\\\"{{ (darkMode$ | async) ? 'Modo D\\u00EDa' : 'Modo Noche' }}\\\"\\n>\\n <mat-icon>{{ (darkMode$ | async) ? 'light_mode' : 'dark_mode' }}</mat-icon>\\n</button>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RoZW1lLXRvZ2dsZS90aGVtZS10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGhlbWUtdG9nZ2xlL3RoZW1lLXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBUWpELE1BQU0sT0FBTyxvQkFBb0I7SUFDdkIsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU1QyxTQUFTLENBQXNCO0lBSy9CO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckMsQ0FBQzt1R0FiVSxvQkFBb0I7MkZBQXBCLG9CQUFvQiw0RUNiakMsbU9BT0EsMERERVksYUFBYSx1S0FBRSxPQUFPLHNJQUFFLFNBQVM7OzJGQUloQyxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLFdBQ25CLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3AtdGhlbWUtdG9nZ2xlJyxcbiAgaW1wb3J0czogW01hdEljb25CdXR0b24sIE1hdEljb24sIEFzeW5jUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90aGVtZS10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGhlbWUtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVUb2dnbGVDb21wb25lbnQge1xuICBwcml2YXRlIHRoZW1lU2VydmljZSA9IGluamVjdChUaGVtZVNlcnZpY2UpO1xuXG4gIGRhcmtNb2RlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IHVua25vd25bXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kYXJrTW9kZSQgPSB0aGlzLnRoZW1lU2VydmljZS5pc0RhcmtNb2RlJDtcbiAgfVxuICB0b2dnbGVEYXJrTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRoZW1lU2VydmljZS50b2dnbGVEYXJrTW9kZSgpO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gIG1hdC1pY29uLWJ1dHRvblxuICAoY2xpY2spPVwidG9nZ2xlRGFya01vZGUoKVwiXG4gIHRpdGxlPVwie3sgKGRhcmtNb2RlJCB8IGFzeW5jKSA/ICdNb2RvIETDrWEnIDogJ01vZG8gTm9jaGUnIH19XCJcbj5cbiAgPG1hdC1pY29uPnt7IChkYXJrTW9kZSQgfCBhc3luYykgPyAnbGlnaHRfbW9kZScgOiAnZGFya19tb2RlJyB9fTwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==","export class FieldDefinition {\n value;\n valueLabel;\n defaultValue;\n defaultValueLabel;\n key;\n label;\n dateRangeConfig;\n isDefaultSearchField;\n required;\n disabled;\n order;\n icon;\n controlType = 'textbox';\n type = 'string';\n editor; // this attribut is for Kendo-Grid\n options;\n valueOptions;\n valuePrimitive; // for kendo dropdown\n textField; // for kendo dropdown\n valueField; // for kendo dropdown\n errorMessage;\n width;\n valueChangeCallback;\n columnType;\n body;\n constructor(options = {}) {\n this.value = options.value;\n this.valueLabel = options.valueLabel;\n this.defaultValue = options.defaultValue;\n this.defaultValueLabel = options.defaultValueLabel;\n this.key = options.key || '';\n this.label = options.label || '';\n this.dateRangeConfig = options.dateRangeConfig;\n this.isDefaultSearchField = options.isDefaultSearchField;\n this.required = !!options.required;\n this.disabled = options.disabled;\n this.order = options.order === undefined ? 1 : options.order;\n this.icon = options.icon;\n this.controlType = options.controlType || 'textbox';\n this.type = options.type || 'string';\n this.editor = options.editor || '';\n this.options = options.options || [];\n this.valueOptions = options.valueOptions || [];\n this.valuePrimitive = options.valuePrimitive;\n this.textField = options.textField;\n this.valueField = options.valueField;\n this.errorMessage = options.errorMessage || '';\n this.width = options.width;\n this.valueChangeCallback = options.valueChangeCallback;\n this.columnType = options.columnType;\n this.body = options.body;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZGVmaW5pdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RlbHMvbWF0LXRhYmxlLW1vZGVscy9maWVsZC1kZWZpbml0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDQSxNQUFNLE9BQU8sZUFBZTtJQUMxQixLQUFLLENBQUs7SUFDVixVQUFVLENBQVU7SUFDcEIsWUFBWSxDQUFLO0lBQ2pCLGlCQUFpQixDQUFVO0lBQzNCLEdBQUcsQ0FBUztJQUNaLEtBQUssQ0FBUztJQUNkLGVBQWUsQ0FBc0I7SUFDckMsb0JBQW9CLENBQVc7SUFDL0IsUUFBUSxDQUFXO0lBQ25CLFFBQVEsQ0FBVztJQUNuQixLQUFLLENBQVU7SUFDZixJQUFJLENBQVU7SUFDZCxXQUFXLEdBQWlCLFNBQVMsQ0FBQztJQUN0QyxJQUFJLEdBQWUsUUFBUSxDQUFDO0lBQzVCLE1BQU0sQ0FBOEIsQ0FBQyxrQ0FBa0M7SUFDdkUsT0FBTyxDQUFpQztJQUN4QyxZQUFZLENBQVk7SUFDeEIsY0FBYyxDQUFXLENBQUMscUJBQXFCO0lBQy9DLFNBQVMsQ0FBVSxDQUFDLHFCQUFxQjtJQUN6QyxVQUFVLENBQVUsQ0FBQyxxQkFBcUI7SUFDMUMsWUFBWSxDQUFVO0lBQ3RCLEtBQUssQ0FBVTtJQUNmLG1CQUFtQixDQUFzQjtJQUN6QyxVQUFVLENBQWM7SUFDeEIsSUFBSSxDQUFPO0lBRVgsWUFBWSxVQUF1QyxFQUFFO1FBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLFNBQVMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERhdGVSYW5nZUNvbmZpZzxUID0gYW55PiB7XG4gIHN0YXJ0RGF0ZTogRmllbGREZWZpbml0aW9uPFQ+O1xuICBlbmREYXRlOiBGaWVsZERlZmluaXRpb248VD47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29udHJvbFR5cGUgPVxuICB8ICd0ZXh0Ym94J1xuICB8ICdrdGV4dGJveCdcbiAgfCAnY29tYm9ib3gnXG4gIHwgJ3RleHRib3hOdW0nXG4gIHwgJ2Ryb3Bkb3duJ1xuICB8ICdkcm9wZG93bmxpc3QnXG4gIHwgJ211bHRpc2VsZWN0J1xuICB8ICdhdXRvY29tcGxldGUnXG4gIHwgJ2NoZWNrYm94J1xuICB8ICdyYWRpb2J1dHRvbidcbiAgfCAnaW5xdWlyeUluRGlhbG9nJ1xuICB8ICd0aW1lcGlja2VyJ1xuICB8ICdkYXRlcGlja2VyJ1xuICB8ICdkYXRlcmFuZ2UnXG4gIHwgJ3RleHRhcmVhJ1xuICB8ICdzbGlkZVRvZ2dsZSdcbiAgfCAnc2xpZGVyJ1xuICB8ICdzd2l0Y2gnXG4gIHwgJ2J1dHRvblRvZ2dsZUdyb3VwJztcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGaWVsZFR5cGUgPVxuICB8ICdudW1iZXInXG4gIHwgJ3N0cmluZydcbiAgfCAnYm9vbGVhbidcbiAgfCAnZGF0ZSdcbiAgfCAnbW9udGgnXG4gIHwgJ2VtYWlsJ1xuICB8ICdwYXNzd29yZCdcbiAgfCAndGVsJ1xuICB8ICdoaWRkZW4nXG4gIHwgJ2ltYWdlJ1xuICB8ICd1cmwnXG4gIHwgJ3dlZWsnXG4gIHwgJ3NlYXJjaCdcbiAgfCAncmVzZXQnXG4gIHwgJ3RlbXBsYXRlJ1xuICB8ICdjdXN0b20nXG4gIHwgJ2V4cGFuZCc7XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29sdW1uVHlwZSA9ICd0ZXh0JyB8ICdjb21wb25lbnQnIHwgJ2h0bWwnIHwgJ3RlbXBsYXRlJztcblxuZXhwb3J0IGNsYXNzIEZpZWxkRGVmaW5pdGlvbjxUID0gYW55PiB7XG4gIHZhbHVlPzogVDtcbiAgdmFsdWVMYWJlbD86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogVDtcbiAgZGVmYXVsdFZhbHVlTGFiZWw/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBkYXRlUmFuZ2VDb25maWc/OiBEYXRlUmFuZ2VDb25maWc8VD47XG4gIGlzRGVmYXVsdFNlYXJjaEZpZWxkPzogYm9vbGVhbjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG9yZGVyPzogbnVtYmVyO1xuICBpY29uPzogc3RyaW5nO1xuICBjb250cm9sVHlwZT86IENvbnRyb2xUeXBlID0gJ3RleHRib3gnO1xuICB0eXBlPzogRmllbGRUeXBlID0gJ3N0cmluZyc7XG4gIGVkaXRvcj86ICdudW1lcmljJyB8ICdib29sZWFuJyB8ICcnOyAvLyB0aGlzIGF0dHJpYnV0IGlzIGZvciBLZW5kby1HcmlkXG4gIG9wdGlvbnM/OiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBUIH1bXTtcbiAgdmFsdWVPcHRpb25zPzogc3RyaW5nW107XG4gIHZhbHVlUHJpbWl0aXZlPzogYm9vbGVhbjsgLy8gZm9yIGtlbmRvIGRyb3Bkb3duXG4gIHRleHRGaWVsZD86IHN0cmluZzsgLy8gZm9yIGtlbmRvIGRyb3Bkb3duXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7IC8vIGZvciBrZW5kbyBkcm9wZG93blxuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZUNhbGxiYWNrPzogKHZhbHVlOiBUKSA9PiB2b2lkO1xuICBjb2x1bW5UeXBlPzogQ29sdW1uVHlwZTtcbiAgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZpZWxkRGVmaW5pdGlvbjxUPj4gPSB7fSkge1xuICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xuICAgIHRoaXMudmFsdWVMYWJlbCA9IG9wdGlvbnMudmFsdWVMYWJlbDtcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlTGFiZWwgPSBvcHRpb25zLmRlZmF1bHRWYWx1ZUxhYmVsO1xuICAgIHRoaXMua2V5ID0gb3B0aW9ucy5rZXkgfHwgJyc7XG4gICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWwgfHwgJyc7XG4gICAgdGhpcy5kYXRlUmFuZ2VDb25maWcgPSBvcHRpb25zLmRhdGVSYW5nZUNvbmZpZztcbiAgICB0aGlzLmlzRGVmYXVsdFNlYXJjaEZpZWxkID0gb3B0aW9ucy5pc0RlZmF1bHRTZWFyY2hGaWVsZDtcbiAgICB0aGlzLnJlcXVpcmVkID0gISFvcHRpb25zLnJlcXVpcmVkO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBvcHRpb25zLmRpc2FibGVkO1xuICAgIHRoaXMub3JkZXIgPSBvcHRpb25zLm9yZGVyID09PSB1bmRlZmluZWQgPyAxIDogb3B0aW9ucy5vcmRlcjtcbiAgICB0aGlzLmljb24gPSBvcHRpb25zLmljb247XG4gICAgdGhpcy5jb250cm9sVHlwZSA9IG9wdGlvbnMuY29udHJvbFR5cGUgfHwgJ3RleHRib3gnO1xuICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnc3RyaW5nJztcbiAgICB0aGlzLmVkaXRvciA9IG9wdGlvbnMuZWRpdG9yIHx8ICcnO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB0aGlzLnZhbHVlT3B0aW9ucyA9IG9wdGlvbnMudmFsdWVPcHRpb25zIHx8IFtdO1xuICAgIHRoaXMudmFsdWVQcmltaXRpdmUgPSBvcHRpb25zLnZhbHVlUHJpbWl0aXZlO1xuICAgIHRoaXMudGV4dEZpZWxkID0gb3B0aW9ucy50ZXh0RmllbGQ7XG4gICAgdGhpcy52YWx1ZUZpZWxkID0gb3B0aW9ucy52YWx1ZUZpZWxkO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gb3B0aW9ucy5lcnJvck1lc3NhZ2UgfHwgJyc7XG4gICAgdGhpcy53aWR0aCA9IG9wdGlvbnMud2lkdGg7XG4gICAgdGhpcy52YWx1ZUNoYW5nZUNhbGxiYWNrID0gb3B0aW9ucy52YWx1ZUNoYW5nZUNhbGxiYWNrO1xuICAgIHRoaXMuY29sdW1uVHlwZSA9IG9wdGlvbnMuY29sdW1uVHlwZTtcbiAgICB0aGlzLmJvZHkgPSBvcHRpb25zLmJvZHk7XG4gIH1cbn1cbiJdfQ==","import { FieldDefinition } from './field-definition.model';\nexport class ColumnDefinition extends FieldDefinition {\n index; // if the list of columns will be displayed in material edit-grid (angular material grid), index must be given\n format; // it could be: { style: 'currency', currency: 'EUR' }, { date: 'short' }\n hasFooter;\n hideInOverlay;\n // optionsAttribut is used in stock-receipt maintenance: StockReceiptItem.Unit has options for StockReceiptItem.Birimi\n optionsAttribut; // name of the attribut that has the options list for dropdown\n templateOutlet;\n constructor(options = {}) {\n super(options);\n this.index = options.index;\n this.format = options.format;\n this.hasFooter = options.hasFooter;\n this.hideInOverlay = options.hideInOverlay;\n this.optionsAttribut = options.optionsAttribut;\n this.templateOutlet = options.templateOutlet;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZmluaXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvbW9kZWxzL21hdC10YWJsZS1tb2RlbHMvY29sdW1uLWRlZmluaXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBUzNELE1BQU0sT0FBTyxnQkFBMEIsU0FBUSxlQUFrQjtJQUMvRCxLQUFLLENBQVUsQ0FBQyw4R0FBOEc7SUFDOUgsTUFBTSxDQUFPLENBQUMseUVBQXlFO0lBQ3ZGLFNBQVMsQ0FBVztJQUNwQixhQUFhLENBQVc7SUFFeEIsc0hBQXNIO0lBQ3RILGVBQWUsQ0FBVSxDQUFDLDhEQUE4RDtJQUN4RixjQUFjLENBQWdDO0lBQzlDLFlBQVksVUFBd0MsRUFBRTtRQUNwRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZERlZmluaXRpb24gfSBmcm9tICcuL2ZpZWxkLWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gY29sdW1uLWRlZmluaXRpb24ubW9kZWwudHNcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb250ZXh0PFQgPSBhbnk+IHtcbiAgJGltcGxpY2l0OiBUO1xuICBpbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbkRlZmluaXRpb248VCA9IGFueT4gZXh0ZW5kcyBGaWVsZERlZmluaXRpb248VD4ge1xuICBpbmRleD86IG51bWJlcjsgLy8gaWYgdGhlIGxpc3Qgb2YgY29sdW1ucyB3aWxsIGJlIGRpc3BsYXllZCBpbiBtYXRlcmlhbCBlZGl0LWdyaWQgKGFuZ3VsYXIgbWF0ZXJpYWwgZ3JpZCksIGluZGV4IG11c3QgYmUgZ2l2ZW5cbiAgZm9ybWF0PzogYW55OyAvLyBpdCBjb3VsZCBiZTogeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6ICdFVVInIH0sIHsgZGF0ZTogJ3Nob3J0JyB9XG4gIGhhc0Zvb3Rlcj86IGJvb2xlYW47XG4gIGhpZGVJbk92ZXJsYXk/OiBib29sZWFuO1xuXG4gIC8vIG9wdGlvbnNBdHRyaWJ1dCBpcyB1c2VkIGluIHN0b2NrLXJlY2VpcHQgbWFpbnRlbmFuY2U6IFN0b2NrUmVjZWlwdEl0ZW0uVW5pdCBoYXMgb3B0aW9ucyBmb3IgU3RvY2tSZWNlaXB0SXRlbS5CaXJpbWlcbiAgb3B0aW9uc0F0dHJpYnV0Pzogc3RyaW5nOyAvLyBuYW1lIG9mIHRoZSBhdHRyaWJ1dCB0aGF0IGhhcyB0aGUgb3B0aW9ucyBsaXN0IGZvciBkcm9wZG93blxuICB0ZW1wbGF0ZU91dGxldD86IFRlbXBsYXRlUmVmPFRhYmxlQ29udGV4dDxUPj47XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8Q29sdW1uRGVmaW5pdGlvbjxUPj4gPSB7fSkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMuaW5kZXggPSBvcHRpb25zLmluZGV4O1xuICAgIHRoaXMuZm9ybWF0ID0gb3B0aW9ucy5mb3JtYXQ7XG4gICAgdGhpcy5oYXNGb290ZXIgPSBvcHRpb25zLmhhc0Zvb3RlcjtcbiAgICB0aGlzLmhpZGVJbk92ZXJsYXkgPSBvcHRpb25zLmhpZGVJbk92ZXJsYXk7XG4gICAgdGhpcy5vcHRpb25zQXR0cmlidXQgPSBvcHRpb25zLm9wdGlvbnNBdHRyaWJ1dDtcbiAgICB0aGlzLnRlbXBsYXRlT3V0bGV0ID0gb3B0aW9ucy50ZW1wbGF0ZU91dGxldDtcbiAgfVxufVxuIl19","export class TableCellIndex {\n row;\n column;\n constructor(row, column) {\n this.row = row;\n this.column = column;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1pbmRleC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RlbHMvbWF0LXRhYmxlLW1vZGVscy90YWJsZS1jZWxsLWluZGV4Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEdBQUcsQ0FBUztJQUNaLE1BQU0sQ0FBUztJQUVmLFlBQVksR0FBVyxFQUFFLE1BQWM7UUFDckMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVGFibGVDZWxsSW5kZXgge1xuICByb3c6IG51bWJlcjtcbiAgY29sdW1uOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Iocm93OiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgdGhpcy5yb3cgPSByb3c7XG4gICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47XG4gIH1cbn1cbiJdfQ==","export class Pagination {\n pageIndex;\n pageSize;\n maxSize;\n totalRecords;\n pageSizeOptions;\n /**\n * @param pageIndex Current page index (0-based for MatPagination compatibility)\n * @param pageSize Number of records per page\n * @param maxSize Maximum number of pages displayed in the pagination control\n * @param totalRecords Total number of records\n * @param pageSizeOptions Available page size options\n */\n constructor(pageIndex = 0, // MatPagination starts at 0\n pageSize = 25, maxSize = 5, totalRecords = 0, pageSizeOptions = [25, 50, 75, 100]) {\n this.pageIndex = pageIndex;\n this.pageSize = pageSize;\n this.maxSize = maxSize;\n this.totalRecords = totalRecords;\n this.pageSizeOptions = pageSizeOptions;\n }\n /**\n * Calculates the total number of pages.\n */\n getTotalPages() {\n return Math.ceil(this.totalRecords / this.pageSize);\n }\n /**\n * Updates the page size and resets the page index to the first page.\n * @param newPageSize The new page size\n */\n updatePageSize(newPageSize) {\n if (this.pageSizeOptions.includes(newPageSize)) {\n this.pageSize = newPageSize;\n this.pageIndex = 0; // Reset to first page\n }\n else {\n throw new Error(`Invalid page size: ${newPageSize}`);\n }\n }\n /**\n * Updates pagination data based on paginator event.\n * @param event MatPaginator event\n */\n updateFromPaginatorEvent(event) {\n this.pageIndex = event.pageIndex;\n this.pageSize = event.pageSize;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNyQixTQUFTLENBQVM7SUFDbEIsUUFBUSxDQUFTO0lBQ2pCLE9BQU8sQ0FBUztJQUNoQixZQUFZLENBQVM7SUFDckIsZUFBZSxDQUFXO0lBRTFCOzs7Ozs7T0FNRztJQUNILFlBQ0UsU0FBUyxHQUFHLENBQUMsRUFBRSw0QkFBNEI7SUFDM0MsUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEdBQUcsQ0FBQyxFQUNYLFlBQVksR0FBRyxDQUFDLEVBQ2hCLGtCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztRQUU3QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsV0FBbUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILHdCQUF3QixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGFnaW5hdGlvbiB7XG4gIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICBtYXhTaXplOiBudW1iZXI7XG4gIHRvdGFsUmVjb3JkczogbnVtYmVyO1xuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcGFnZUluZGV4IEN1cnJlbnQgcGFnZSBpbmRleCAoMC1iYXNlZCBmb3IgTWF0UGFnaW5hdGlvbiBjb21wYXRpYmlsaXR5KVxuICAgKiBAcGFyYW0gcGFnZVNpemUgTnVtYmVyIG9mIHJlY29yZHMgcGVyIHBhZ2VcbiAgICogQHBhcmFtIG1heFNpemUgTWF4aW11bSBudW1iZXIgb2YgcGFnZXMgZGlzcGxheWVkIGluIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xcbiAgICogQHBhcmFtIHRvdGFsUmVjb3JkcyBUb3RhbCBudW1iZXIgb2YgcmVjb3Jkc1xuICAgKiBAcGFyYW0gcGFnZVNpemVPcHRpb25zIEF2YWlsYWJsZSBwYWdlIHNpemUgb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcGFnZUluZGV4ID0gMCwgLy8gTWF0UGFnaW5hdGlvbiBzdGFydHMgYXQgMFxuICAgIHBhZ2VTaXplID0gMjUsXG4gICAgbWF4U2l6ZSA9IDUsXG4gICAgdG90YWxSZWNvcmRzID0gMCxcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzI1LCA1MCwgNzUsIDEwMF0sXG4gICkge1xuICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZUluZGV4O1xuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICB0aGlzLm1heFNpemUgPSBtYXhTaXplO1xuICAgIHRoaXMudG90YWxSZWNvcmRzID0gdG90YWxSZWNvcmRzO1xuICAgIHRoaXMucGFnZVNpemVPcHRpb25zID0gcGFnZVNpemVPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcy5cbiAgICovXG4gIGdldFRvdGFsUGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMudG90YWxSZWNvcmRzIC8gdGhpcy5wYWdlU2l6ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGFnZSBzaXplIGFuZCByZXNldHMgdGhlIHBhZ2UgaW5kZXggdG8gdGhlIGZpcnN0IHBhZ2UuXG4gICAqIEBwYXJhbSBuZXdQYWdlU2l6ZSBUaGUgbmV3IHBhZ2Ugc2l6ZVxuICAgKi9cbiAgdXBkYXRlUGFnZVNpemUobmV3UGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhZ2VTaXplT3B0aW9ucy5pbmNsdWRlcyhuZXdQYWdlU2l6ZSkpIHtcbiAgICAgIHRoaXMucGFnZVNpemUgPSBuZXdQYWdlU2l6ZTtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gMDsgLy8gUmVzZXQgdG8gZmlyc3QgcGFnZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFnZSBzaXplOiAke25ld1BhZ2VTaXplfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHBhZ2luYXRpb24gZGF0YSBiYXNlZCBvbiBwYWdpbmF0b3IgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBNYXRQYWdpbmF0b3IgZXZlbnRcbiAgICovXG4gIHVwZGF0ZUZyb21QYWdpbmF0b3JFdmVudChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wYWdlSW5kZXggPSBldmVudC5wYWdlSW5kZXg7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xuICB9XG59XG4iXX0=","import { Component, Input, ViewChild, computed, signal, inject, output, input, } from '@angular/core';\nimport { Subject, takeUntil, debounceTime, of } from 'rxjs';\nimport { MatIcon } from '@angular/material/icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconButton } from '@angular/material/button';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, } from '../../models';\nimport { AutocompleteWrapperService } from '../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/overlay\";\nimport * as i2 from \"@angular/forms\";\nexport class ReusableAutocompleteComponent {\n dataSource = []; // Para búsqueda local\n config = AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG;\n itemTemplate;\n searchFunction;\n notFoundTemplate;\n overlayWidth = input('auto', ...(ngDevMode ? [{ debugName: \"overlayWidth\" }] : []));\n overlayMaxHeight = input('400px', ...(ngDevMode ? [{ debugName: \"overlayMaxHeight\" }] : []));\n itemSelected = output();\n searchChanged = output();\n searchRequested = output(); // Nuevo evento\n pageChanged = output();\n filterChanged = output();\n advancedSearchClicked = output();\n allResultsClicked = output();\n createClicked = output();\n searchInput;\n historyListElement;\n resultsListElement;\n // State\n query = '';\n isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n overlayOpen = signal(false, ...(ngDevMode ? [{ debugName: \"overlayOpen\" }] : []));\n selectedIndex = signal(-1, ...(ngDevMode ? [{ debugName: \"selectedIndex\" }] : []));\n currentPage = signal(1, ...(ngDevMode ? [{ debugName: \"currentPage\" }] : []));\n filteredItems = signal([], ...(ngDevMode ? [{ debugName: \"filteredItems\" }] : []));\n historyList = signal([], ...(ngDevMode ? [{ debugName: \"historyList\" }] : []));\n totalCount = signal(0, ...(ngDevMode ? [{ debugName: \"totalCount\" }] : []));\n // Filters\n filters = {\n searchBy: 'name',\n stockFilter: 'all',\n };\n // Computed properties\n isHistoryVisible = computed(() => {\n return this.query.length < (this.config.minSearchLength || 2) && this.historyList().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"isHistoryVisible\" }] : []));\n totalItems = computed(() => this.filteredItems().length, ...(ngDevMode ? [{ debugName: \"totalItems\" }] : []));\n totalPages = computed(() => {\n const total = this.totalCount();\n return total > 0 ? Math.ceil(total / (this.config.itemsPerPage || 10)) : 1;\n }, ...(ngDevMode ? [{ debugName: \"totalPages\" }] : []));\n currentPageItems = computed(() => {\n // if (!this.config.enablePagination) {\n // }\n return this.filteredItems();\n // return this.autocompleteService.paginateItems(\n // this.filteredItems(),\n // this.currentPage(),\n // this.config.itemsPerPage || 10\n // );\n }, ...(ngDevMode ? [{ debugName: \"currentPageItems\" }] : []));\n startItem = computed(() => {\n const total = this.totalItems();\n if (total === 0)\n return 0;\n return (this.currentPage() - 1) * (this.config.itemsPerPage || 10) + 1;\n }, ...(ngDevMode ? [{ debugName: \"startItem\" }] : []));\n endItem = computed(() => {\n const total = this.totalItems();\n const calculated = this.currentPage() * (this.config.itemsPerPage || 10);\n return Math.min(calculated, total);\n }, ...(ngDevMode ? [{ debugName: \"endItem\" }] : []));\n sectionTitle = computed(() => {\n const total = this.totalItems();\n return `Resultados (${total})`;\n }, ...(ngDevMode ? [{ debugName: \"sectionTitle\" }] : []));\n isNoResults = computed(() => {\n return (this.totalItems() === 0 &&\n !this.isLoading() &&\n this.query.length >= (this.config.minSearchLength || 2));\n }, ...(ngDevMode ? [{ debugName: \"isNoResults\" }] : []));\n // Private\n destroy$ = new Subject();\n searchSubject = new Subject();\n autocompleteService = inject(AutocompleteWrapperService);\n ngOnInit() {\n this.mergeDefaultConfig();\n this.setupSearch();\n this.loadHistory();\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n mergeDefaultConfig() {\n this.config = this.autocompleteService.mergeConfig(this.config);\n this.filters.searchBy = this.config.searchFields?.[0]?.value || 'name';\n this.filters.stockFilter = this.config.stockOptions?.[0]?.value || 'all';\n }\n setupSearch() {\n this.filteredItems.set([]);\n this.searchSubject\n .pipe(debounceTime(this.config.debounceTime || 300), \n // distinctUntilChanged(),\n // distinctUntilChanged((prev, curr) => {\n // console.log(prev);\n // console.log(curr);\n // return prev.query === curr.query &&\n // JSON.stringify(prev.filters) === JSON.stringify(curr.filters) &&\n // prev.page === curr.page\n //\n // }\n //\n // ),\n takeUntil(this.destroy$), switchMap(({ query }) => this.performSearch(query)))\n .subscribe(result => {\n this.filteredItems.set(result.items);\n this.totalCount.set(result.totalCount);\n this.isLoading.set(false);\n });\n }\n performSearch(query) {\n if (query.length < (this.config.minSearchLength || 2)) {\n return of({ items: [], totalCount: 0 });\n }\n // ESTRATEGIA A: Función de búsqueda personalizada\n if (this.searchFunction) {\n return this.searchFunction(query, this.filters, this.currentPage(), this.config.itemsPerPage || 10).pipe(catchError(() => of({ items: [], totalCount: 0 })));\n }\n // ESTRATEGIA B: Emit evento para que el padre maneje\n if (this.config.searchMode === 'remote') {\n this.searchRequested.emit({\n query,\n filters: this.filters,\n page: this.currentPage(),\n });\n return of({ items: [], totalCount: 0 }); // El padre actualizará los datos\n }\n // ESTRATEGIA C: Búsqueda local (fallback)\n return this.autocompleteService.searchLocal(this.dataSource, query, this.filters, this.config);\n }\n loadHistory() {\n this.autocompleteService.history$.pipe(takeUntil(this.destroy$)).subscribe(history => {\n this.historyList.set(history);\n });\n }\n searchSubjectNext() {\n this.searchSubject.next({\n query: this.query,\n filters: this.filters,\n page: this.currentPage(),\n });\n }\n // Event Handlers\n onInput(event) {\n const target = event.target;\n this.query = target.value;\n this.selectedIndex.set(-1);\n this.currentPage.set(1);\n if (this.query.length >= (this.config.minSearchLength || 2)) {\n this.isLoading.set(true);\n this.searchSubjectNext();\n }\n else {\n this.filteredItems.set([]);\n this.isLoading.set(false);\n }\n this.showOverlay();\n this.searchChanged.emit(this.query);\n }\n onKeyDown(event) {\n const currentList = this.isHistoryVisible() ? this.historyList() : this.currentPageItems();\n const maxIndex = currentList.length - 1;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (maxIndex >= 0) {\n const nextIndex = this.selectedIndex() < maxIndex ? this.selectedIndex() + 1 : 0;\n this.selectedIndex.set(nextIndex);\n this.scrollToSelected();\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (maxIndex >= 0) {\n const prevIndex = this.selectedIndex() > 0 ? this.selectedIndex() - 1 : maxIndex;\n this.selectedIndex.set(prevIndex);\n this.scrollToSelected();\n }\n break;\n case 'Enter':\n event.preventDefault();\n if (this.selectedIndex() >= 0 && this.selectedIndex() <= maxIndex) {\n this.selectItem(currentList[this.selectedIndex()]);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.hideOverlay();\n break;\n case 'PageDown':\n event.preventDefault();\n if (!this.isHistoryVisible() && this.config.enablePagination) {\n this.goToNextPage();\n }\n break;\n case 'PageUp':\n event.preventDefault();\n if (!this.isHistoryVisible() && this.config.enablePagination) {\n this.goToPreviousPage();\n }\n break;\n }\n }\n onFilterChange() {\n this.currentPage.set(1);\n if (this.query.length >= (this.config.minSearchLength || 2)) {\n this.performSearch(this.query);\n this.searchSubjectNext();\n }\n // this.filterChanged.emit(this.filters);\n }\n // Método público para actualizar resultados desde el padre\n updateSearchResults(result) {\n this.filteredItems.set(result.items);\n this.totalCount.set(result.totalCount);\n this.isLoading.set(false);\n }\n // Overlay Methods\n showOverlay() {\n this.overlayOpen.set(true);\n }\n hideOverlay() {\n this.overlayOpen.set(false);\n this.selectedIndex.set(-1);\n }\n isType(item) {\n return typeof item === 'string';\n }\n // Selection Methods\n selectItem(item) {\n if (this.config.clearInput) {\n this.query = '';\n }\n else {\n this.query = this.getItemDisplayText(item);\n }\n this.hideOverlay();\n this.currentPage.set(1);\n this.autocompleteService.addToHistory(item, this.config.maxHistoryItems);\n this.itemSelected.emit(item);\n setTimeout(() => {\n this.searchInput?.nativeElement?.focus();\n }, 100);\n }\n clearSearch() {\n this.query = '';\n this.filteredItems.set([]);\n this.selectedIndex.set(-1);\n this.currentPage.set(1);\n this.searchInput?.nativeElement?.focus();\n this.searchChanged.emit('');\n }\n // History Methods\n removeHistoryItem(index, event) {\n event.stopPropagation();\n this.autocompleteService.removeFromHistory(index);\n }\n clearHistory() {\n this.autocompleteService.clearHistory();\n }\n // Pagination Methods\n goToPage(event) {\n const target = event.target;\n const page = parseInt(target.value);\n if (this.autocompleteService.isValidPage(page, this.totalPages())) {\n this.currentPage.set(page);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(page);\n this.searchSubjectNext();\n }\n else {\n target.value = this.currentPage().toString();\n }\n }\n goToFirstPage() {\n if (this.currentPage() !== 1) {\n this.currentPage.set(1);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(1);\n this.searchSubjectNext();\n }\n }\n goToPreviousPage() {\n const prevPage = this.currentPage() - 1;\n if (prevPage >= 1) {\n this.currentPage.set(prevPage);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(prevPage);\n this.searchSubjectNext();\n }\n }\n goToNextPage() {\n const nextPage = this.currentPage() + 1;\n if (nextPage <= this.totalPages()) {\n this.currentPage.set(nextPage);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(nextPage);\n this.searchSubjectNext();\n }\n }\n goToLastPage() {\n const lastPage = this.totalPages();\n if (this.currentPage() !== lastPage) {\n this.currentPage.set(lastPage);\n this.selectedIndex.set(-1);\n this.pageChanged.emit(lastPage);\n this.searchSubjectNext();\n }\n }\n // Footer Actions\n onCreateNew($event) {\n //$event.stopPropagation();\n // this.hideOverlay();\n this.createClicked.emit(this.query);\n }\n onAdvancedSearch() {\n this.hideOverlay();\n this.advancedSearchClicked.emit();\n }\n onShowAllResults() {\n this.hideOverlay();\n this.allResultsClicked.emit(this.query);\n }\n // Utility Methods\n getItemDisplayText(item) {\n return this.autocompleteService.getItemDisplayText(item);\n }\n noResultsText() {\n return `No se encontraron resultados para \"${this.query}\"`;\n }\n scrollToSelected() {\n const listElement = this.isHistoryVisible()\n ? this.historyListElement?.nativeElement\n : this.resultsListElement?.nativeElement;\n if (listElement) {\n const selectedElement = listElement.children[this.selectedIndex()];\n if (selectedElement) {\n selectedElement.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n }\n // Public API\n getState() {\n return {\n query: this.query,\n isLoading: this.isLoading(),\n overlayOpen: this.overlayOpen(),\n selectedIndex: this.selectedIndex(),\n pagination: {\n currentPage: this.currentPage(),\n totalPages: this.totalPages(),\n totalItems: this.totalItems(),\n itemsPerPage: this.config.itemsPerPage || 10,\n startItem: this.startItem(),\n endItem: this.endItem(),\n hasNextPage: this.currentPage() < this.totalPages(),\n hasPreviousPage: this.currentPage() > 1,\n },\n hasResults: this.totalItems() > 0,\n isHistoryVisible: this.isHistoryVisible(),\n historyCount: this.historyList().length,\n filters: this.filters,\n };\n }\n setQuery(query) {\n this.query = query;\n this.currentPage.set(1);\n if (query.length >= (this.config.minSearchLength || 2)) {\n this.performSearch(query);\n this.showOverlay();\n }\n else {\n this.filteredItems.set([]);\n if (query.length === 0) {\n this.hideOverlay();\n }\n }\n this.searchChanged.emit(query);\n }\n focus() {\n this.searchInput?.nativeElement?.focus();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ReusableAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.1\", type: ReusableAutocompleteComponent, isStandalone: true, selector: \"acp-autocomplete-wrapper\", inputs: { dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: false, isRequired: false, transformFunction: null }, config: { classPropertyName: \"config\", publicName: \"config\", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, searchFunction: { classPropertyName: \"searchFunction\", publicName: \"searchFunction\", isSignal: false, isRequired: false, transformFunction: null }, notFoundTemplate: { classPropertyName: \"notFoundTemplate\", publicName: \"notFoundTemplate\", isSignal: false, isRequired: false, transformFunction: null }, overlayWidth: { classPropertyName: \"overlayWidth\", publicName: \"overlayWidth\", isSignal: true, isRequired: false, transformFunction: null }, overlayMaxHeight: { classPropertyName: \"overlayMaxHeight\", publicName: \"overlayMaxHeight\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelected: \"itemSelected\", searchChanged: \"searchChanged\", searchRequested: \"searchRequested\", pageChanged: \"pageChanged\", filterChanged: \"filterChanged\", advancedSearchClicked: \"advancedSearchClicked\", allResultsClicked: \"allResultsClicked\", createClicked: \"createClicked\" }, viewQueries: [{ propertyName: \"searchInput\", first: true, predicate: [\"searchInput\"], descendants: true }, { propertyName: \"historyListElement\", first: true, predicate: [\"historyListElement\"], descendants: true }, { propertyName: \"resultsListElement\", first: true, predicate: [\"resultsListElement\"], descendants: true }], ngImport: i0, template: \"<div class=\\\"autocomplete-wrapper-wrapper\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <!-- Input Container -->\\n <div\\n class=\\\"autocomplete-wrapper-input-container\\\"\\n cdkOverlayOrigin\\n #overlayPosition=\\\"cdkOverlayOrigin\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-input-wrapper\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-search-icon\\\">search</mat-icon>\\n <input\\n #searchInput\\n type=\\\"text\\\"\\n class=\\\"autocomplete-wrapper-input-field\\\"\\n [placeholder]=\\\"config.placeholder\\\"\\n [(ngModel)]=\\\"query\\\"\\n (input)=\\\"onInput($event)\\\"\\n (click)=\\\"showOverlay()\\\"\\n (keydown)=\\\"onKeyDown($event)\\\"\\n [disabled]=\\\"config.disabled || false\\\"\\n autocomplete=\\\"off\\\"\\n />\\n @if (query && query.length > 0 && !isLoading()) {\\n <button\\n mat-icon-button\\n (click)=\\\"clearSearch()\\\"\\n type=\\\"button\\\"\\n class=\\\"autocomplete-wrapper-clear-button\\\"\\n >\\n <mat-icon>clear</mat-icon>\\n </button>\\n }\\n <button mat-icon-button type=\\\"button\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n </div>\\n\\n @if (isLoading()) {\\n <div class=\\\"autocomplete-wrapper-loading-spinner\\\">\\n <mat-spinner diameter=\\\"20\\\"></mat-spinner>\\n </div>\\n }\\n </div>\\n\\n <!-- Overlay -->\\n <ng-template\\n cdkConnectedOverlay\\n [cdkConnectedOverlayOrigin]=\\\"overlayPosition\\\"\\n [cdkConnectedOverlayOpen]=\\\"overlayOpen()\\\"\\n [cdkConnectedOverlayWidth]=\\\"overlayWidth()\\\"\\n [cdkConnectedOverlayHeight]=\\\"overlayMaxHeight()\\\"\\n (overlayOutsideClick)=\\\"hideOverlay()\\\"\\n (backdropClick)=\\\"hideOverlay()\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-dropdown\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <div class=\\\"autocomplete-wrapper-dropdown-content\\\">\\n <!-- History Section -->\\n @if (isHistoryVisible() && historyList().length > 0) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">B\\u00FAsquedas recientes</span>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n (click)=\\\"clearHistory()\\\"\\n class=\\\"autocomplete-wrapper-clear-history-button\\\"\\n >\\n <mat-icon>delete_outline</mat-icon>\\n </button>\\n </div>\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #historyListElement\\n >\\n @for (item of historyList(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-history-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <mat-icon class=\\\"autocomplete-wrapper-history-icon\\\">history</mat-icon>\\n <div class=\\\"autocomplete-wrapper-item-details\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n class=\\\"autocomplete-wrapper-remove-button\\\"\\n (click)=\\\"removeHistoryItem($index, $event)\\\"\\n >\\n <mat-icon>close</mat-icon>\\n </button>\\n </li>\\n }\\n </ul>\\n </div>\\n }\\n\\n <!-- Results Section -->\\n @if (!isHistoryVisible()) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <!-- Header with filters and pagination -->\\n @if (config.enableFilters || config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n\\n <!-- Filters -->\\n @if (config.enableFilters) {\\n <div class=\\\"autocomplete-wrapper-filter-controls\\\">\\n @if (config.searchFields && config.searchFields.length > 1) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Buscar por:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.searchBy\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (field of config.searchFields; track $index) {\\n <option [value]=\\\"field.value\\\">{{ field.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n\\n @if (config.enableStockFilter && config.stockOptions) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Stock:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.stockFilter\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (option of config.stockOptions; track $index) {\\n <option [value]=\\\"option.value\\\">{{ option.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Pagination Controls -->\\n @if (config.enablePagination && totalPages() > 1) {\\n <div class=\\\"autocomplete-wrapper-pagination-header\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-info\\\">\\n <span>P\\u00E1gina {{ currentPage() }} de {{ totalPages() }}</span>\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToFirstPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>first_page</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <input\\n type=\\\"number\\\"\\n class=\\\"autocomplete-wrapper-page-input\\\"\\n [value]=\\\"currentPage()\\\"\\n [min]=\\\"1\\\"\\n [max]=\\\"totalPages()\\\"\\n (change)=\\\"goToPage($event)\\\"\\n />\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToLastPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>last_page</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n </div>\\n }\\n\\n <!-- Items List -->\\n @if (totalItems()) {\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #resultsListElement\\n >\\n @for (item of currentPageItems(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-result-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-item-info\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n </li>\\n }\\n </ul>\\n }\\n </div>\\n }\\n\\n <!-- No Results -->\\n @if (!isLoading() && isNoResults()) {\\n <div class=\\\"autocomplete-wrapper-no-results\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-no-results-icon\\\">search_off</mat-icon>\\n <div class=\\\"autocomplete-wrapper-no-results-content\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n notFoundTemplate || defaultNotFoundTemplate;\\n context: { $implicit: noResultsText() }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n }\\n\\n <!-- Footer -->\\n @if (overlayOpen() && totalItems() > 0) {\\n <div class=\\\"autocomplete-wrapper-footer\\\">\\n @if (!isHistoryVisible() && totalItems() > 0 && config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-pagination-footer\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-summary\\\">\\n Mostrando {{ startItem() }}-{{ endItem() }} de {{ totalCount() }} resultados\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls-footer\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <span class=\\\"autocomplete-wrapper-page-indicator\\\"\\n >{{ currentPage() }} / {{ totalPages() }}</span\\n >\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n\\n @if (config.enableFooterActions) {\\n <div class=\\\"autocomplete-wrapper-footer-actions\\\">\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-create-button\\\"\\n (click)=\\\"onCreateNew($event)\\\"\\n >\\n <mat-icon>add</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Crear</span>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-search-button\\\"\\n (click)=\\\"onAdvancedSearch()\\\"\\n >\\n <mat-icon>tune</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Avanzada</span>\\n </button>\\n @if (!isHistoryVisible() && totalItems() > 0) {\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-results-button\\\"\\n (click)=\\\"onShowAllResults()\\\"\\n >\\n <mat-icon>list</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Todos</span>\\n </button>\\n }\\n </div>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n </ng-template>\\n\\n <!-- Default Templates -->\\n <ng-template #defaultItemTemplate let-item>\\n <div class=\\\"autocomplete-wrapper-default-item\\\">\\n <div class=\\\"autocomplete-wrapper-item-name\\\">{{ getItemDisplayText(item) }}</div>\\n @if (item.description && typeof item === 'object') {\\n <div class=\\\"autocomplete-wrapper-item-description\\\">{{ item.description }}</div>\\n }\\n </div>\\n </ng-template>\\n\\n <ng-template #defaultNotFoundTemplate let-text>\\n <div class=\\\"autocomplete-wrapper-default-no-results\\\">\\n <p>{{ text }}</p>\\n <p>Intenta con otros t\\u00E9rminos de b\\u00FAsqueda</p>\\n </div>\\n </ng-template>\\n</div>\\n\", styles: [\".autocomplete-wrapper{position:relative;width:100%;max-width:100%}.autocomplete-wrapper.autocomplete-wrapper-active .autocomplete-wrapper-input-wrapper{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-input-container{position:relative;width:100%}.autocomplete-wrapper-input-wrapper{position:relative;display:flex;align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:0 12px;transition:all .3s ease}.autocomplete-wrapper-input-wrapper:focus-within{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-search-icon{color:#666;margin-right:8px;font-size:20px}.autocomplete-wrapper-input-field{flex:1;border:none;outline:none;font-size:16px;padding:7px 0;background:transparent;color:#333}.autocomplete-wrapper-input-field::placeholder{color:#999}.autocomplete-wrapper-input-field:disabled{opacity:.6;cursor:not-allowed}.autocomplete-wrapper-clear-button{margin-left:8px;color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-loading-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.autocomplete-wrapper-dropdown{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;border:1px solid #e0e0e0;overflow:hidden;max-height:500px;min-width:300px;display:flex;flex-direction:column}.autocomplete-wrapper-dropdown.autocomplete-wrapper-active{animation:reusableAutocompleteSlideIn .2s ease-out}@keyframes reusableAutocompleteSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.autocomplete-wrapper-dropdown-content{display:flex;flex-direction:column;height:100%;max-height:500px}.autocomplete-wrapper-section{display:flex;flex-direction:column;height:100%;min-height:0}.autocomplete-wrapper-section-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 8px;border-bottom:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;min-height:56px;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-section-title{font-size:13px;font-weight:500;color:#666;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.autocomplete-wrapper-clear-history-button{color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-history-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-filter-controls{display:flex;align-items:center;gap:16px;flex:1;justify-content:center}.autocomplete-wrapper-filter-group{display:flex;align-items:center;gap:6px}.autocomplete-wrapper-filter-label{font-size:12px;color:#666;font-weight:500;white-space:nowrap}.autocomplete-wrapper-filter-select{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;background:#fff;color:#333;cursor:pointer;min-width:120px}.autocomplete-wrapper-filter-select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 1px #1976d233}.autocomplete-wrapper-filter-select:hover{border-color:#bbb}.autocomplete-wrapper-pagination-header{display:flex;align-items:center;gap:12px;margin-left:auto}.autocomplete-wrapper-pagination-info{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls{display:flex;align-items:center;gap:4px}.autocomplete-wrapper-pagination-button{min-width:32px;height:32px;line-height:32px;padding:0;color:#666;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.autocomplete-wrapper-pagination-button:hover:not(:disabled){background-color:#0000000a;color:#333}.autocomplete-wrapper-pagination-button:disabled{opacity:.5;cursor:not-allowed}.autocomplete-wrapper-pagination-button mat-icon{font-size:18px;width:18px;height:18px}.autocomplete-wrapper-page-input{width:50px;height:32px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:12px;padding:4px;margin:0 4px}.autocomplete-wrapper-page-input:focus{outline:none;border-color:#1976d2}.autocomplete-wrapper-items-list{list-style:none;margin:0;padding:0;flex:1;min-height:0}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{overflow-y:auto}.autocomplete-wrapper-list-item{display:flex;align-items:center;border-bottom:1px solid #f5f5f5;transition:background-color .2s ease}.autocomplete-wrapper-list-item:last-child{border-bottom:none}.autocomplete-wrapper-list-item:hover{background-color:#f8f9fa}.autocomplete-wrapper-item-content{flex:1;display:flex;align-items:center;padding:12px 16px;cursor:pointer;min-height:48px;transition:all .2s ease}.autocomplete-wrapper-item-content.autocomplete-wrapper-selected{background-color:#e3f2fd;color:#1976d2}.autocomplete-wrapper-history-item .autocomplete-wrapper-item-content{padding-left:12px}.autocomplete-wrapper-history-icon{color:#999;margin-right:12px;font-size:18px}.autocomplete-wrapper-item-details{flex:1;display:flex;align-items:center}.autocomplete-wrapper-remove-button{margin-right:8px}.autocomplete-wrapper-result-item{position:relative}.autocomplete-wrapper-item-info{flex:1;display:flex;align-items:center}.autocomplete-wrapper-default-item{flex:1}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-name{font-weight:500;font-size:14px;margin-bottom:2px;color:#333}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-description{font-size:12px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-wrapper-no-results{display:flex;flex-direction:column;align-items:center;padding:32px 16px;text-align:center;color:#666}.autocomplete-wrapper-no-results-icon{font-size:48px;color:#ccc;margin-bottom:16px;width:45px;height:45px}.autocomplete-wrapper-no-results-content{font-size:14px;line-height:1.5}.autocomplete-wrapper-default-no-results{text-align:center}.autocomplete-wrapper-default-no-results p:first-child{font-weight:500;margin-bottom:8px}.autocomplete-wrapper-footer{border-top:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;padding:12px 16px;display:flex;flex-direction:column;gap:12px}.autocomplete-wrapper-pagination-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}.autocomplete-wrapper-pagination-summary{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls-footer{display:flex;align-items:center;gap:8px}.autocomplete-wrapper-page-indicator{font-size:12px;color:#666;min-width:40px;text-align:center}.autocomplete-wrapper-footer-actions{display:flex;gap:8px;flex-wrap:wrap}.autocomplete-wrapper-footer-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;font-size:13px;text-transform:none;white-space:nowrap;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px 12px;transition:all .2s ease}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button{background-color:#4caf500a;border-color:#4caf50;color:#4caf50}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button:hover{background-color:#4caf5014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button{background-color:#ff98000a;border-color:#ff9800;color:#ff9800}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button:hover{background-color:#ff980014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button{background-color:#3f51b50a;border-color:#3f51b5;color:#3f51b5}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button:hover{background-color:#3f51b514}.autocomplete-wrapper-button-text{display:inline}.autocomplete-wrapper-items-list::-webkit-scrollbar{width:6px}.autocomplete-wrapper-items-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.autocomplete-wrapper-dropdown{min-width:280px;max-height:60vh}.autocomplete-wrapper-dropdown-content{max-height:60vh}.autocomplete-wrapper-input-field{font-size:16px}.autocomplete-wrapper-footer{padding:8px 12px}.autocomplete-wrapper-footer-actions{flex-direction:column;gap:6px}.autocomplete-wrapper-footer-button{width:100%;min-height:44px}.autocomplete-wrapper-pagination-footer{flex-direction:column;gap:8px}.autocomplete-wrapper-section-header{flex-direction:column;align-items:flex-start;min-height:80px;gap:8px}.autocomplete-wrapper-filter-controls{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-filter-select{min-width:100px;font-size:11px}.autocomplete-wrapper-filter-label{font-size:11px}.autocomplete-wrapper-pagination-header{width:100%;justify-content:space-between}.autocomplete-wrapper-pagination-header .autocomplete-wrapper-pagination-info{display:none}.autocomplete-wrapper-pagination-controls{gap:2px}.autocomplete-wrapper-page-input{width:40px}.autocomplete-wrapper-item-content{padding:16px 12px;min-height:52px}.autocomplete-wrapper-button-text{font-size:12px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:250px}}@media (max-width: 480px){.autocomplete-wrapper-dropdown{min-width:260px;max-height:50vh}.autocomplete-wrapper-section-header{padding:8px 12px 6px;min-height:70px;gap:6px}.autocomplete-wrapper-filter-controls{gap:8px}.autocomplete-wrapper-filter-group{gap:4px}.autocomplete-wrapper-filter-select{min-width:90px;padding:3px 6px}.autocomplete-wrapper-item-content{padding:14px 12px}.autocomplete-wrapper-pagination-header{gap:8px}.autocomplete-wrapper-pagination-button{min-width:28px;height:28px}.autocomplete-wrapper-page-input{width:35px;height:28px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:200px}.autocomplete-wrapper-footer-actions{gap:4px}.autocomplete-wrapper-footer-button{font-size:12px;padding:8px 12px;min-height:40px}.autocomplete-wrapper-button-text{display:none}}\\n\"], dependencies: [{ kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"directive\", type: i1.CdkConnectedOverlay, selector: \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", inputs: [\"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayPositionStrategy\", \"cdkConnectedOverlayOffsetX\", \"cdkConnectedOverlayOffsetY\", \"cdkConnectedOverlayWidth\", \"cdkConnectedOverlayHeight\", \"cdkConnectedOverlayMinWidth\", \"cdkConnectedOverlayMinHeight\", \"cdkConnectedOverlayBackdropClass\", \"cdkConnectedOverlayPanelClass\", \"cdkConnectedOverlayViewportMargin\", \"cdkConnectedOverlayScrollStrategy\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayDisableClose\", \"cdkConnectedOverlayTransformOriginOn\", \"cdkConnectedOverlayHasBackdrop\", \"cdkConnectedOverlayLockPosition\", \"cdkConnectedOverlayFlexibleDimensions\", \"cdkConnectedOverlayGrowAfterOpen\", \"cdkConnectedOverlayPush\", \"cdkConnectedOverlayDisposeOnNavigation\"], outputs: [\"backdropClick\", \"positionChange\", \"attach\", \"detach\", \"overlayKeydown\", \"overlayOutsideClick\"], exportAs: [\"cdkConnectedOverlay\"] }, { kind: \"directive\", type: i1.CdkOverlayOrigin, selector: \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", exportAs: [\"cdkOverlayOrigin\"] }, { kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i2.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.SelectControlValueAccessor, selector: \"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]\", inputs: [\"compareWith\"] }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ReusableAutocompleteComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-autocomplete-wrapper', imports: [\n MatIcon,\n NgTemplateOutlet,\n OverlayModule,\n MatProgressBarModule,\n MatProgressSpinner,\n FormsModule,\n MatIconButton,\n ], template: \"<div class=\\\"autocomplete-wrapper-wrapper\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <!-- Input Container -->\\n <div\\n class=\\\"autocomplete-wrapper-input-container\\\"\\n cdkOverlayOrigin\\n #overlayPosition=\\\"cdkOverlayOrigin\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-input-wrapper\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-search-icon\\\">search</mat-icon>\\n <input\\n #searchInput\\n type=\\\"text\\\"\\n class=\\\"autocomplete-wrapper-input-field\\\"\\n [placeholder]=\\\"config.placeholder\\\"\\n [(ngModel)]=\\\"query\\\"\\n (input)=\\\"onInput($event)\\\"\\n (click)=\\\"showOverlay()\\\"\\n (keydown)=\\\"onKeyDown($event)\\\"\\n [disabled]=\\\"config.disabled || false\\\"\\n autocomplete=\\\"off\\\"\\n />\\n @if (query && query.length > 0 && !isLoading()) {\\n <button\\n mat-icon-button\\n (click)=\\\"clearSearch()\\\"\\n type=\\\"button\\\"\\n class=\\\"autocomplete-wrapper-clear-button\\\"\\n >\\n <mat-icon>clear</mat-icon>\\n </button>\\n }\\n <button mat-icon-button type=\\\"button\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n </div>\\n\\n @if (isLoading()) {\\n <div class=\\\"autocomplete-wrapper-loading-spinner\\\">\\n <mat-spinner diameter=\\\"20\\\"></mat-spinner>\\n </div>\\n }\\n </div>\\n\\n <!-- Overlay -->\\n <ng-template\\n cdkConnectedOverlay\\n [cdkConnectedOverlayOrigin]=\\\"overlayPosition\\\"\\n [cdkConnectedOverlayOpen]=\\\"overlayOpen()\\\"\\n [cdkConnectedOverlayWidth]=\\\"overlayWidth()\\\"\\n [cdkConnectedOverlayHeight]=\\\"overlayMaxHeight()\\\"\\n (overlayOutsideClick)=\\\"hideOverlay()\\\"\\n (backdropClick)=\\\"hideOverlay()\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-dropdown\\\" [class.autocomplete-wrapper-active]=\\\"overlayOpen()\\\">\\n <div class=\\\"autocomplete-wrapper-dropdown-content\\\">\\n <!-- History Section -->\\n @if (isHistoryVisible() && historyList().length > 0) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">B\\u00FAsquedas recientes</span>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n (click)=\\\"clearHistory()\\\"\\n class=\\\"autocomplete-wrapper-clear-history-button\\\"\\n >\\n <mat-icon>delete_outline</mat-icon>\\n </button>\\n </div>\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #historyListElement\\n >\\n @for (item of historyList(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-history-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <mat-icon class=\\\"autocomplete-wrapper-history-icon\\\">history</mat-icon>\\n <div class=\\\"autocomplete-wrapper-item-details\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n <button\\n type=\\\"button\\\"\\n mat-icon-button\\n class=\\\"autocomplete-wrapper-remove-button\\\"\\n (click)=\\\"removeHistoryItem($index, $event)\\\"\\n >\\n <mat-icon>close</mat-icon>\\n </button>\\n </li>\\n }\\n </ul>\\n </div>\\n }\\n\\n <!-- Results Section -->\\n @if (!isHistoryVisible()) {\\n <div class=\\\"autocomplete-wrapper-section\\\">\\n <!-- Header with filters and pagination -->\\n @if (config.enableFilters || config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n\\n <!-- Filters -->\\n @if (config.enableFilters) {\\n <div class=\\\"autocomplete-wrapper-filter-controls\\\">\\n @if (config.searchFields && config.searchFields.length > 1) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Buscar por:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.searchBy\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (field of config.searchFields; track $index) {\\n <option [value]=\\\"field.value\\\">{{ field.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n\\n @if (config.enableStockFilter && config.stockOptions) {\\n <div class=\\\"autocomplete-wrapper-filter-group\\\">\\n <label class=\\\"autocomplete-wrapper-filter-label\\\">Stock:</label>\\n <select\\n class=\\\"autocomplete-wrapper-filter-select\\\"\\n [(ngModel)]=\\\"filters.stockFilter\\\"\\n (change)=\\\"onFilterChange()\\\"\\n >\\n @for (option of config.stockOptions; track $index) {\\n <option [value]=\\\"option.value\\\">{{ option.label }}</option>\\n }\\n </select>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Pagination Controls -->\\n @if (config.enablePagination && totalPages() > 1) {\\n <div class=\\\"autocomplete-wrapper-pagination-header\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-info\\\">\\n <span>P\\u00E1gina {{ currentPage() }} de {{ totalPages() }}</span>\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToFirstPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>first_page</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <input\\n type=\\\"number\\\"\\n class=\\\"autocomplete-wrapper-page-input\\\"\\n [value]=\\\"currentPage()\\\"\\n [min]=\\\"1\\\"\\n [max]=\\\"totalPages()\\\"\\n (change)=\\\"goToPage($event)\\\"\\n />\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToLastPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>last_page</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"autocomplete-wrapper-section-header\\\">\\n <span class=\\\"autocomplete-wrapper-section-title\\\">{{ sectionTitle() }}</span>\\n </div>\\n }\\n\\n <!-- Items List -->\\n @if (totalItems()) {\\n <ul\\n class=\\\"autocomplete-wrapper-items-list autocomplete-wrapper-scrollable-list\\\"\\n #resultsListElement\\n >\\n @for (item of currentPageItems(); track $index) {\\n <li class=\\\"autocomplete-wrapper-list-item autocomplete-wrapper-result-item\\\">\\n <div\\n class=\\\"autocomplete-wrapper-item-content\\\"\\n [class.autocomplete-wrapper-selected]=\\\"$index === selectedIndex()\\\"\\n (click)=\\\"selectItem(item)\\\"\\n >\\n <div class=\\\"autocomplete-wrapper-item-info\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate || defaultItemTemplate;\\n context: { $implicit: item }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n </li>\\n }\\n </ul>\\n }\\n </div>\\n }\\n\\n <!-- No Results -->\\n @if (!isLoading() && isNoResults()) {\\n <div class=\\\"autocomplete-wrapper-no-results\\\">\\n <mat-icon class=\\\"autocomplete-wrapper-no-results-icon\\\">search_off</mat-icon>\\n <div class=\\\"autocomplete-wrapper-no-results-content\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n notFoundTemplate || defaultNotFoundTemplate;\\n context: { $implicit: noResultsText() }\\n \\\"\\n >\\n </ng-container>\\n </div>\\n </div>\\n }\\n\\n <!-- Footer -->\\n @if (overlayOpen() && totalItems() > 0) {\\n <div class=\\\"autocomplete-wrapper-footer\\\">\\n @if (!isHistoryVisible() && totalItems() > 0 && config.enablePagination) {\\n <div class=\\\"autocomplete-wrapper-pagination-footer\\\">\\n <div class=\\\"autocomplete-wrapper-pagination-summary\\\">\\n Mostrando {{ startItem() }}-{{ endItem() }} de {{ totalCount() }} resultados\\n </div>\\n <div class=\\\"autocomplete-wrapper-pagination-controls-footer\\\">\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToPreviousPage()\\\"\\n [disabled]=\\\"currentPage() === 1\\\"\\n >\\n <mat-icon>chevron_left</mat-icon>\\n </button>\\n <span class=\\\"autocomplete-wrapper-page-indicator\\\"\\n >{{ currentPage() }} / {{ totalPages() }}</span\\n >\\n <button\\n class=\\\"autocomplete-wrapper-pagination-button\\\"\\n (click)=\\\"goToNextPage()\\\"\\n [disabled]=\\\"currentPage() === totalPages()\\\"\\n >\\n <mat-icon>chevron_right</mat-icon>\\n </button>\\n </div>\\n </div>\\n }\\n\\n @if (config.enableFooterActions) {\\n <div class=\\\"autocomplete-wrapper-footer-actions\\\">\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-create-button\\\"\\n (click)=\\\"onCreateNew($event)\\\"\\n >\\n <mat-icon>add</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Crear</span>\\n </button>\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-search-button\\\"\\n (click)=\\\"onAdvancedSearch()\\\"\\n >\\n <mat-icon>tune</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Avanzada</span>\\n </button>\\n @if (!isHistoryVisible() && totalItems() > 0) {\\n <button\\n class=\\\"autocomplete-wrapper-footer-button autocomplete-wrapper-results-button\\\"\\n (click)=\\\"onShowAllResults()\\\"\\n >\\n <mat-icon>list</mat-icon>\\n <span class=\\\"autocomplete-wrapper-button-text\\\">Todos</span>\\n </button>\\n }\\n </div>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n </ng-template>\\n\\n <!-- Default Templates -->\\n <ng-template #defaultItemTemplate let-item>\\n <div class=\\\"autocomplete-wrapper-default-item\\\">\\n <div class=\\\"autocomplete-wrapper-item-name\\\">{{ getItemDisplayText(item) }}</div>\\n @if (item.description && typeof item === 'object') {\\n <div class=\\\"autocomplete-wrapper-item-description\\\">{{ item.description }}</div>\\n }\\n </div>\\n </ng-template>\\n\\n <ng-template #defaultNotFoundTemplate let-text>\\n <div class=\\\"autocomplete-wrapper-default-no-results\\\">\\n <p>{{ text }}</p>\\n <p>Intenta con otros t\\u00E9rminos de b\\u00FAsqueda</p>\\n </div>\\n </ng-template>\\n</div>\\n\", styles: [\".autocomplete-wrapper{position:relative;width:100%;max-width:100%}.autocomplete-wrapper.autocomplete-wrapper-active .autocomplete-wrapper-input-wrapper{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-input-container{position:relative;width:100%}.autocomplete-wrapper-input-wrapper{position:relative;display:flex;align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:0 12px;transition:all .3s ease}.autocomplete-wrapper-input-wrapper:focus-within{border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.autocomplete-wrapper-search-icon{color:#666;margin-right:8px;font-size:20px}.autocomplete-wrapper-input-field{flex:1;border:none;outline:none;font-size:16px;padding:7px 0;background:transparent;color:#333}.autocomplete-wrapper-input-field::placeholder{color:#999}.autocomplete-wrapper-input-field:disabled{opacity:.6;cursor:not-allowed}.autocomplete-wrapper-clear-button{margin-left:8px;color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-loading-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.autocomplete-wrapper-dropdown{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;border:1px solid #e0e0e0;overflow:hidden;max-height:500px;min-width:300px;display:flex;flex-direction:column}.autocomplete-wrapper-dropdown.autocomplete-wrapper-active{animation:reusableAutocompleteSlideIn .2s ease-out}@keyframes reusableAutocompleteSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.autocomplete-wrapper-dropdown-content{display:flex;flex-direction:column;height:100%;max-height:500px}.autocomplete-wrapper-section{display:flex;flex-direction:column;height:100%;min-height:0}.autocomplete-wrapper-section-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 8px;border-bottom:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;min-height:56px;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-section-title{font-size:13px;font-weight:500;color:#666;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.autocomplete-wrapper-clear-history-button{color:#666;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.autocomplete-wrapper-clear-history-button:hover{background-color:#0000000a;color:#333}.autocomplete-wrapper-filter-controls{display:flex;align-items:center;gap:16px;flex:1;justify-content:center}.autocomplete-wrapper-filter-group{display:flex;align-items:center;gap:6px}.autocomplete-wrapper-filter-label{font-size:12px;color:#666;font-weight:500;white-space:nowrap}.autocomplete-wrapper-filter-select{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;background:#fff;color:#333;cursor:pointer;min-width:120px}.autocomplete-wrapper-filter-select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 1px #1976d233}.autocomplete-wrapper-filter-select:hover{border-color:#bbb}.autocomplete-wrapper-pagination-header{display:flex;align-items:center;gap:12px;margin-left:auto}.autocomplete-wrapper-pagination-info{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls{display:flex;align-items:center;gap:4px}.autocomplete-wrapper-pagination-button{min-width:32px;height:32px;line-height:32px;padding:0;color:#666;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.autocomplete-wrapper-pagination-button:hover:not(:disabled){background-color:#0000000a;color:#333}.autocomplete-wrapper-pagination-button:disabled{opacity:.5;cursor:not-allowed}.autocomplete-wrapper-pagination-button mat-icon{font-size:18px;width:18px;height:18px}.autocomplete-wrapper-page-input{width:50px;height:32px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:12px;padding:4px;margin:0 4px}.autocomplete-wrapper-page-input:focus{outline:none;border-color:#1976d2}.autocomplete-wrapper-items-list{list-style:none;margin:0;padding:0;flex:1;min-height:0}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{overflow-y:auto}.autocomplete-wrapper-list-item{display:flex;align-items:center;border-bottom:1px solid #f5f5f5;transition:background-color .2s ease}.autocomplete-wrapper-list-item:last-child{border-bottom:none}.autocomplete-wrapper-list-item:hover{background-color:#f8f9fa}.autocomplete-wrapper-item-content{flex:1;display:flex;align-items:center;padding:12px 16px;cursor:pointer;min-height:48px;transition:all .2s ease}.autocomplete-wrapper-item-content.autocomplete-wrapper-selected{background-color:#e3f2fd;color:#1976d2}.autocomplete-wrapper-history-item .autocomplete-wrapper-item-content{padding-left:12px}.autocomplete-wrapper-history-icon{color:#999;margin-right:12px;font-size:18px}.autocomplete-wrapper-item-details{flex:1;display:flex;align-items:center}.autocomplete-wrapper-remove-button{margin-right:8px}.autocomplete-wrapper-result-item{position:relative}.autocomplete-wrapper-item-info{flex:1;display:flex;align-items:center}.autocomplete-wrapper-default-item{flex:1}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-name{font-weight:500;font-size:14px;margin-bottom:2px;color:#333}.autocomplete-wrapper-default-item .autocomplete-wrapper-item-description{font-size:12px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-wrapper-no-results{display:flex;flex-direction:column;align-items:center;padding:32px 16px;text-align:center;color:#666}.autocomplete-wrapper-no-results-icon{font-size:48px;color:#ccc;margin-bottom:16px;width:45px;height:45px}.autocomplete-wrapper-no-results-content{font-size:14px;line-height:1.5}.autocomplete-wrapper-default-no-results{text-align:center}.autocomplete-wrapper-default-no-results p:first-child{font-weight:500;margin-bottom:8px}.autocomplete-wrapper-footer{border-top:1px solid #f0f0f0;background:#fafafa;flex-shrink:0;padding:12px 16px;display:flex;flex-direction:column;gap:12px}.autocomplete-wrapper-pagination-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}.autocomplete-wrapper-pagination-summary{font-size:12px;color:#666;white-space:nowrap}.autocomplete-wrapper-pagination-controls-footer{display:flex;align-items:center;gap:8px}.autocomplete-wrapper-page-indicator{font-size:12px;color:#666;min-width:40px;text-align:center}.autocomplete-wrapper-footer-actions{display:flex;gap:8px;flex-wrap:wrap}.autocomplete-wrapper-footer-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;font-size:13px;text-transform:none;white-space:nowrap;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px 12px;transition:all .2s ease}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button{background-color:#4caf500a;border-color:#4caf50;color:#4caf50}.autocomplete-wrapper-footer-button.autocomplete-wrapper-create-button:hover{background-color:#4caf5014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button{background-color:#ff98000a;border-color:#ff9800;color:#ff9800}.autocomplete-wrapper-footer-button.autocomplete-wrapper-search-button:hover{background-color:#ff980014}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button{background-color:#3f51b50a;border-color:#3f51b5;color:#3f51b5}.autocomplete-wrapper-footer-button.autocomplete-wrapper-results-button:hover{background-color:#3f51b514}.autocomplete-wrapper-button-text{display:inline}.autocomplete-wrapper-items-list::-webkit-scrollbar{width:6px}.autocomplete-wrapper-items-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.autocomplete-wrapper-items-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.autocomplete-wrapper-dropdown{min-width:280px;max-height:60vh}.autocomplete-wrapper-dropdown-content{max-height:60vh}.autocomplete-wrapper-input-field{font-size:16px}.autocomplete-wrapper-footer{padding:8px 12px}.autocomplete-wrapper-footer-actions{flex-direction:column;gap:6px}.autocomplete-wrapper-footer-button{width:100%;min-height:44px}.autocomplete-wrapper-pagination-footer{flex-direction:column;gap:8px}.autocomplete-wrapper-section-header{flex-direction:column;align-items:flex-start;min-height:80px;gap:8px}.autocomplete-wrapper-filter-controls{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:12px}.autocomplete-wrapper-filter-select{min-width:100px;font-size:11px}.autocomplete-wrapper-filter-label{font-size:11px}.autocomplete-wrapper-pagination-header{width:100%;justify-content:space-between}.autocomplete-wrapper-pagination-header .autocomplete-wrapper-pagination-info{display:none}.autocomplete-wrapper-pagination-controls{gap:2px}.autocomplete-wrapper-page-input{width:40px}.autocomplete-wrapper-item-content{padding:16px 12px;min-height:52px}.autocomplete-wrapper-button-text{font-size:12px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:250px}}@media (max-width: 480px){.autocomplete-wrapper-dropdown{min-width:260px;max-height:50vh}.autocomplete-wrapper-section-header{padding:8px 12px 6px;min-height:70px;gap:6px}.autocomplete-wrapper-filter-controls{gap:8px}.autocomplete-wrapper-filter-group{gap:4px}.autocomplete-wrapper-filter-select{min-width:90px;padding:3px 6px}.autocomplete-wrapper-item-content{padding:14px 12px}.autocomplete-wrapper-pagination-header{gap:8px}.autocomplete-wrapper-pagination-button{min-width:28px;height:28px}.autocomplete-wrapper-page-input{width:35px;height:28px}.autocomplete-wrapper-items-list.autocomplete-wrapper-scrollable-list{max-height:200px}.autocomplete-wrapper-footer-actions{gap:4px}.autocomplete-wrapper-footer-button{font-size:12px;padding:8px 12px;min-height:40px}.autocomplete-wrapper-button-text{display:none}}\\n\"] }]\n }], propDecorators: { dataSource: [{\n type: Input\n }], config: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }], searchFunction: [{\n type: Input\n }], notFoundTemplate: [{\n type: Input\n }], searchInput: [{\n type: ViewChild,\n args: ['searchInput']\n }], historyListElement: [{\n type: ViewChild,\n args: ['historyListElement']\n }], resultsListElement: [{\n type: ViewChild,\n args: ['resultsListElement']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXdyYXBwZXIvYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXdyYXBwZXIvYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsbUNBQW1DLEdBT3BDLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBZTVELE1BQU0sT0FBTyw2QkFBNkI7SUFDL0IsVUFBVSxHQUE4QixFQUFFLENBQUMsQ0FBQyxzQkFBc0I7SUFDbEUsTUFBTSxHQUE4QixtQ0FBbUMsQ0FBQztJQUN4RSxZQUFZLENBQW9CO0lBQ2hDLGNBQWMsQ0FBcUM7SUFFbkQsZ0JBQWdCLENBQW9CO0lBRTdDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSx3REFBQyxDQUFDO0lBQzdCLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLDREQUFDLENBQUM7SUFFbEMsWUFBWSxHQUFHLE1BQU0sRUFBMkIsQ0FBQztJQUNqRCxhQUFhLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDakMsZUFBZSxHQUFHLE1BQU0sRUFBd0UsQ0FBQyxDQUFDLGVBQWU7SUFDakgsV0FBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQy9CLGFBQWEsR0FBRyxNQUFNLEVBQThCLENBQUM7SUFDckQscUJBQXFCLEdBQUcsTUFBTSxFQUFRLENBQUM7SUFDdkMsaUJBQWlCLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDckMsYUFBYSxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBRVAsV0FBVyxDQUFnQztJQUNwQyxrQkFBa0IsQ0FBZ0M7SUFDbEQsa0JBQWtCLENBQWdDO0lBRW5GLFFBQVE7SUFDUixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHFEQUFDLENBQUM7SUFDMUIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFDNUIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseURBQUMsQ0FBQztJQUMzQixXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsdURBQUMsQ0FBQztJQUN4QixhQUFhLEdBQUcsTUFBTSxDQUE0QixFQUFFLHlEQUFDLENBQUM7SUFDdEQsV0FBVyxHQUFHLE1BQU0sQ0FBNEIsRUFBRSx1REFBQyxDQUFDO0lBQ3BELFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxzREFBQyxDQUFDO0lBQ3ZCLFVBQVU7SUFDVixPQUFPLEdBQStCO1FBQ3BDLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFdBQVcsRUFBRSxLQUFLO0tBQ25CLENBQUM7SUFFRixzQkFBc0I7SUFDdEIsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakcsQ0FBQyw0REFBQyxDQUFDO0lBRUgsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxzREFBQyxDQUFDO0lBRXpELFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUMsc0RBQUMsQ0FBQztJQUVILGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDL0IsdUNBQXVDO1FBQ3ZDLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM1QixpREFBaUQ7UUFDakQsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4QixtQ0FBbUM7UUFDbkMsS0FBSztJQUNQLENBQUMsNERBQUMsQ0FBQztJQUVILFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxJQUFJLEtBQUssS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RSxDQUFDLHFEQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDLG1EQUFDLENBQUM7SUFFSCxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsT0FBTyxlQUFlLEtBQUssR0FBRyxDQUFDO0lBQ2pDLENBQUMsd0RBQUMsQ0FBQztJQUVILFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztZQUN2QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNKLENBQUMsdURBQUMsQ0FBQztJQUVILFVBQVU7SUFDRixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUMvQixhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQWlELENBQUM7SUFDN0UsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFakUsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLE1BQU0sQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDM0UsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWE7YUFDZixJQUFJLENBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQztRQUM3QywwQkFBMEI7UUFDMUIsMENBQTBDO1FBQzFDLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsNENBQTRDO1FBQzVDLDBFQUEwRTtRQUMxRSxpQ0FBaUM7UUFDakMsRUFBRTtRQUNGLE9BQU87UUFDUCxFQUFFO1FBQ0YsTUFBTTtRQUNOLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDcEQ7YUFDQSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYTtRQUNqQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RELE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsa0RBQWtEO1FBQ2xELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsS0FBSyxFQUNMLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQy9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQscURBQXFEO1FBQ3JELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLEtBQUs7Z0JBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTthQUN6QixDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7UUFDNUUsQ0FBQztRQUVELDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzRixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUV4QyxRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixLQUFLLFdBQVc7Z0JBQ2QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNqRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQzFCLENBQUM7Z0JBQ0QsTUFBTTtZQUVSLEtBQUssU0FBUztnQkFDWixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7b0JBQ2pGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyxPQUFPO2dCQUNWLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDbEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckQsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixNQUFNO1lBRVIsS0FBSyxVQUFVO2dCQUNiLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0QixDQUFDO2dCQUNELE1BQU07WUFFUixLQUFLLFFBQVE7Z0JBQ1gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUM3RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQztnQkFDRCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUNELHlDQUF5QztJQUMzQyxDQUFDO0lBRUQsMkRBQTJEO0lBQ3BELG1CQUFtQixDQUFDLE1BQXVDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBUztRQUNkLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsVUFBVSxDQUFDLElBQTZCO1FBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0MsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsS0FBYSxFQUFFLEtBQVk7UUFDM0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLFFBQVEsQ0FBQyxLQUFZO1FBQ25CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQ2hELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixXQUFXLENBQUMsTUFBa0I7UUFDNUIsMkJBQTJCO1FBQzNCLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLElBQTZCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxzQ0FBc0MsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO0lBQzdELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsYUFBYTtZQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQztRQUUzQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFnQixDQUFDO1lBQ2xGLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLGVBQWUsQ0FBQyxjQUFjLENBQUM7b0JBQzdCLEtBQUssRUFBRSxTQUFTO29CQUNoQixRQUFRLEVBQUUsUUFBUTtpQkFDbkIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtJQUNOLFFBQVE7UUFDYixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQy9CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ25DLFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDL0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUM3QixZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRTtnQkFDNUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25ELGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQzthQUN4QztZQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQztZQUNqQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNO1lBQ3ZDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQzt1R0FsY1UsNkJBQTZCOzJGQUE3Qiw2QkFBNkIsMnFEQ2hEMUMsaW9iQXVVQSx1MlREbFNJLE9BQU8sMklBQ1AsZ0JBQWdCLG1KQUNoQixhQUFhLDByQ0FDYixvQkFBb0IsK0JBQ3BCLGtCQUFrQiw4S0FDbEIsV0FBVywwZ0NBQ1gsYUFBYTs7MkZBS0osNkJBQTZCO2tCQWR6QyxTQUFTOytCQUNFLDBCQUEwQixXQUMzQjt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxhQUFhO3FCQUNkOzhCQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBY29CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDUyxrQkFBa0I7c0JBQWxELFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNFLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxuICBpbmplY3QsXG4gIG91dHB1dCxcbiAgaW5wdXQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgZGVib3VuY2VUaW1lLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBBVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRyxcbiAgQXV0b2NvbXBsZXRlV3JhcHBlckNvbmZpZyxcbiAgQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtLFxuICBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoRnVuY3Rpb24sXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJTZWFyY2hSZXN1bHQsXG4gIEF1dG9jb21wbGV0ZVdyYXBwZXJTdGF0ZSxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZVdyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLWF1dG9jb21wbGV0ZS13cmFwcGVyJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb24sXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uQnV0dG9uLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXV0b2NvbXBsZXRlLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXVzYWJsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXSA9IFtdOyAvLyBQYXJhIGLDunNxdWVkYSBsb2NhbFxuICBASW5wdXQoKSBjb25maWc6IEF1dG9jb21wbGV0ZVdyYXBwZXJDb25maWcgPSBBVVRPQ09NUExFVEVfV1JBUFBFUl9ERUZBVUxUX0NPTkZJRztcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2VhcmNoRnVuY3Rpb24/OiBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoRnVuY3Rpb247XG5cbiAgQElucHV0KCkgbm90Rm91bmRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgb3ZlcmxheVdpZHRoID0gaW5wdXQoJ2F1dG8nKTtcbiAgb3ZlcmxheU1heEhlaWdodCA9IGlucHV0KCc0MDBweCcpO1xuXG4gIGl0ZW1TZWxlY3RlZCA9IG91dHB1dDxBdXRvY29tcGxldGVXcmFwcGVySXRlbT4oKTtcbiAgc2VhcmNoQ2hhbmdlZCA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHNlYXJjaFJlcXVlc3RlZCA9IG91dHB1dDx7IHF1ZXJ5OiBzdHJpbmc7IGZpbHRlcnM6IEF1dG9jb21wbGV0ZVdyYXBwZXJGaWx0ZXJzOyBwYWdlOiBudW1iZXIgfT4oKTsgLy8gTnVldm8gZXZlbnRvXG4gIHBhZ2VDaGFuZ2VkID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgZmlsdGVyQ2hhbmdlZCA9IG91dHB1dDxBdXRvY29tcGxldGVXcmFwcGVyRmlsdGVycz4oKTtcbiAgYWR2YW5jZWRTZWFyY2hDbGlja2VkID0gb3V0cHV0PHZvaWQ+KCk7XG4gIGFsbFJlc3VsdHNDbGlja2VkID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgY3JlYXRlQ2xpY2tlZCA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBzZWFyY2hJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2hpc3RvcnlMaXN0RWxlbWVudCcpIGhpc3RvcnlMaXN0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3Jlc3VsdHNMaXN0RWxlbWVudCcpIHJlc3VsdHNMaXN0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XG5cbiAgLy8gU3RhdGVcbiAgcXVlcnkgPSAnJztcbiAgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgb3ZlcmxheU9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBzZWxlY3RlZEluZGV4ID0gc2lnbmFsKC0xKTtcbiAgY3VycmVudFBhZ2UgPSBzaWduYWwoMSk7XG4gIGZpbHRlcmVkSXRlbXMgPSBzaWduYWw8QXV0b2NvbXBsZXRlV3JhcHBlckl0ZW1bXT4oW10pO1xuICBoaXN0b3J5TGlzdCA9IHNpZ25hbDxBdXRvY29tcGxldGVXcmFwcGVySXRlbVtdPihbXSk7XG4gIHRvdGFsQ291bnQgPSBzaWduYWwoMCk7XG4gIC8vIEZpbHRlcnNcbiAgZmlsdGVyczogQXV0b2NvbXBsZXRlV3JhcHBlckZpbHRlcnMgPSB7XG4gICAgc2VhcmNoQnk6ICduYW1lJyxcbiAgICBzdG9ja0ZpbHRlcjogJ2FsbCcsXG4gIH07XG5cbiAgLy8gQ29tcHV0ZWQgcHJvcGVydGllc1xuICBpc0hpc3RvcnlWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5Lmxlbmd0aCA8ICh0aGlzLmNvbmZpZy5taW5TZWFyY2hMZW5ndGggfHwgMikgJiYgdGhpcy5oaXN0b3J5TGlzdCgpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHRvdGFsSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZpbHRlcmVkSXRlbXMoKS5sZW5ndGgpO1xuXG4gIHRvdGFsUGFnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnRvdGFsQ291bnQoKTtcbiAgICByZXR1cm4gdG90YWwgPiAwID8gTWF0aC5jZWlsKHRvdGFsIC8gKHRoaXMuY29uZmlnLml0ZW1zUGVyUGFnZSB8fCAxMCkpIDogMTtcbiAgfSk7XG5cbiAgY3VycmVudFBhZ2VJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAvLyBpZiAoIXRoaXMuY29uZmlnLmVuYWJsZVBhZ2luYXRpb24pIHtcbiAgICAvLyB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJdGVtcygpO1xuICAgIC8vIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UucGFnaW5hdGVJdGVtcyhcbiAgICAvLyAgIHRoaXMuZmlsdGVyZWRJdGVtcygpLFxuICAgIC8vICAgdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgIC8vICAgdGhpcy5jb25maWcuaXRlbXNQZXJQYWdlIHx8IDEwXG4gICAgLy8gKTtcbiAgfSk7XG5cbiAgc3RhcnRJdGVtID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b3RhbEl0ZW1zKCk7XG4gICAgaWYgKHRvdGFsID09PSAwKSByZXR1cm4gMDtcbiAgICByZXR1cm4gKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpICogKHRoaXMuY29uZmlnLml0ZW1zUGVyUGFnZSB8fCAxMCkgKyAxO1xuICB9KTtcblxuICBlbmRJdGVtID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b3RhbEl0ZW1zKCk7XG4gICAgY29uc3QgY2FsY3VsYXRlZCA9IHRoaXMuY3VycmVudFBhZ2UoKSAqICh0aGlzLmNvbmZpZy5pdGVtc1BlclBhZ2UgfHwgMTApO1xuICAgIHJldHVybiBNYXRoLm1pbihjYWxjdWxhdGVkLCB0b3RhbCk7XG4gIH0pO1xuXG4gIHNlY3Rpb25UaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxJdGVtcygpO1xuICAgIHJldHVybiBgUmVzdWx0YWRvcyAoJHt0b3RhbH0pYDtcbiAgfSk7XG5cbiAgaXNOb1Jlc3VsdHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG90YWxJdGVtcygpID09PSAwICYmXG4gICAgICAhdGhpcy5pc0xvYWRpbmcoKSAmJlxuICAgICAgdGhpcy5xdWVyeS5sZW5ndGggPj0gKHRoaXMuY29uZmlnLm1pblNlYXJjaExlbmd0aCB8fCAyKVxuICAgICk7XG4gIH0pO1xuXG4gIC8vIFByaXZhdGVcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHsgcXVlcnk6IHN0cmluZzsgZmlsdGVyczogYW55OyBwYWdlOiBudW1iZXIgfT4oKTtcbiAgcHJpdmF0ZSBhdXRvY29tcGxldGVTZXJ2aWNlID0gaW5qZWN0KEF1dG9jb21wbGV0ZVdyYXBwZXJTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1lcmdlRGVmYXVsdENvbmZpZygpO1xuICAgIHRoaXMuc2V0dXBTZWFyY2goKTtcbiAgICB0aGlzLmxvYWRIaXN0b3J5KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlRGVmYXVsdENvbmZpZygpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZS5tZXJnZUNvbmZpZyh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5maWx0ZXJzLnNlYXJjaEJ5ID0gdGhpcy5jb25maWcuc2VhcmNoRmllbGRzPy5bMF0/LnZhbHVlIHx8ICduYW1lJztcbiAgICB0aGlzLmZpbHRlcnMuc3RvY2tGaWx0ZXIgPSB0aGlzLmNvbmZpZy5zdG9ja09wdGlvbnM/LlswXT8udmFsdWUgfHwgJ2FsbCc7XG4gIH1cblxuICBwcml2YXRlIHNldHVwU2VhcmNoKCkge1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcy5zZXQoW10pO1xuICAgIHRoaXMuc2VhcmNoU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZy5kZWJvdW5jZVRpbWUgfHwgMzAwKSxcbiAgICAgICAgLy8gZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgLy8gIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIC8vICAgIGNvbnNvbGUubG9nKHByZXYpO1xuICAgICAgICAvLyAgICBjb25zb2xlLmxvZyhjdXJyKTtcbiAgICAgICAgLy8gICAgICByZXR1cm4gIHByZXYucXVlcnkgPT09IGN1cnIucXVlcnkgJiZcbiAgICAgICAgLy8gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZXYuZmlsdGVycykgPT09IEpTT04uc3RyaW5naWZ5KGN1cnIuZmlsdGVycykgJiZcbiAgICAgICAgLy8gICAgICAgIHByZXYucGFnZSA9PT0gY3Vyci5wYWdlXG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgLy8gICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgc3dpdGNoTWFwKCh7IHF1ZXJ5IH0pID0+IHRoaXMucGVyZm9ybVNlYXJjaChxdWVyeSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KHJlc3VsdC5pdGVtcyk7XG4gICAgICAgIHRoaXMudG90YWxDb3VudC5zZXQocmVzdWx0LnRvdGFsQ291bnQpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBlcmZvcm1TZWFyY2gocXVlcnk6IHN0cmluZyk6IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlV3JhcHBlclNlYXJjaFJlc3VsdD4ge1xuICAgIGlmIChxdWVyeS5sZW5ndGggPCAodGhpcy5jb25maWcubWluU2VhcmNoTGVuZ3RoIHx8IDIpKSB7XG4gICAgICByZXR1cm4gb2YoeyBpdGVtczogW10sIHRvdGFsQ291bnQ6IDAgfSk7XG4gICAgfVxuXG4gICAgLy8gRVNUUkFURUdJQSBBOiBGdW5jacOzbiBkZSBiw7pzcXVlZGEgcGVyc29uYWxpemFkYVxuICAgIGlmICh0aGlzLnNlYXJjaEZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hGdW5jdGlvbihcbiAgICAgICAgcXVlcnksXG4gICAgICAgIHRoaXMuZmlsdGVycyxcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgICAgICB0aGlzLmNvbmZpZy5pdGVtc1BlclBhZ2UgfHwgMTAsXG4gICAgICApLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZih7IGl0ZW1zOiBbXSwgdG90YWxDb3VudDogMCB9KSkpO1xuICAgIH1cblxuICAgIC8vIEVTVFJBVEVHSUEgQjogRW1pdCBldmVudG8gcGFyYSBxdWUgZWwgcGFkcmUgbWFuZWplXG4gICAgaWYgKHRoaXMuY29uZmlnLnNlYXJjaE1vZGUgPT09ICdyZW1vdGUnKSB7XG4gICAgICB0aGlzLnNlYXJjaFJlcXVlc3RlZC5lbWl0KHtcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVycyxcbiAgICAgICAgcGFnZTogdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gb2YoeyBpdGVtczogW10sIHRvdGFsQ291bnQ6IDAgfSk7IC8vIEVsIHBhZHJlIGFjdHVhbGl6YXLDoSBsb3MgZGF0b3NcbiAgICB9XG5cbiAgICAvLyBFU1RSQVRFR0lBIEM6IELDunNxdWVkYSBsb2NhbCAoZmFsbGJhY2spXG4gICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZS5zZWFyY2hMb2NhbCh0aGlzLmRhdGFTb3VyY2UsIHF1ZXJ5LCB0aGlzLmZpbHRlcnMsIHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEhpc3RvcnkoKSB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmhpc3RvcnkkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoaGlzdG9yeSA9PiB7XG4gICAgICB0aGlzLmhpc3RvcnlMaXN0LnNldChoaXN0b3J5KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdE5leHQoKSB7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQoe1xuICAgICAgcXVlcnk6IHRoaXMucXVlcnksXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsXG4gICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlKCksXG4gICAgfSk7XG4gIH1cblxuICAvLyBFdmVudCBIYW5kbGVyc1xuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMucXVlcnkgPSB0YXJnZXQudmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgtMSk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG5cbiAgICBpZiAodGhpcy5xdWVyeS5sZW5ndGggPj0gKHRoaXMuY29uZmlnLm1pblNlYXJjaExlbmd0aCB8fCAyKSkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0TmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KFtdKTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgIHRoaXMuc2VhcmNoQ2hhbmdlZC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgY3VycmVudExpc3QgPSB0aGlzLmlzSGlzdG9yeVZpc2libGUoKSA/IHRoaXMuaGlzdG9yeUxpc3QoKSA6IHRoaXMuY3VycmVudFBhZ2VJdGVtcygpO1xuICAgIGNvbnN0IG1heEluZGV4ID0gY3VycmVudExpc3QubGVuZ3RoIC0gMTtcblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAobWF4SW5kZXggPj0gMCkge1xuICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleCgpIDwgbWF4SW5kZXggPyB0aGlzLnNlbGVjdGVkSW5kZXgoKSArIDEgOiAwO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQobmV4dEluZGV4KTtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChtYXhJbmRleCA+PSAwKSB7XG4gICAgICAgICAgY29uc3QgcHJldkluZGV4ID0gdGhpcy5zZWxlY3RlZEluZGV4KCkgPiAwID8gdGhpcy5zZWxlY3RlZEluZGV4KCkgLSAxIDogbWF4SW5kZXg7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldChwcmV2SW5kZXgpO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXgoKSA+PSAwICYmIHRoaXMuc2VsZWN0ZWRJbmRleCgpIDw9IG1heEluZGV4KSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGN1cnJlbnRMaXN0W3RoaXMuc2VsZWN0ZWRJbmRleCgpXSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzSGlzdG9yeVZpc2libGUoKSAmJiB0aGlzLmNvbmZpZy5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5nb1RvTmV4dFBhZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzSGlzdG9yeVZpc2libGUoKSAmJiB0aGlzLmNvbmZpZy5lbmFibGVQYWdpbmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5nb1RvUHJldmlvdXNQYWdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25GaWx0ZXJDaGFuZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG4gICAgaWYgKHRoaXMucXVlcnkubGVuZ3RoID49ICh0aGlzLmNvbmZpZy5taW5TZWFyY2hMZW5ndGggfHwgMikpIHtcbiAgICAgIHRoaXMucGVyZm9ybVNlYXJjaCh0aGlzLnF1ZXJ5KTtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdE5leHQoKTtcbiAgICB9XG4gICAgLy8gdGhpcy5maWx0ZXJDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcMO6YmxpY28gcGFyYSBhY3R1YWxpemFyIHJlc3VsdGFkb3MgZGVzZGUgZWwgcGFkcmVcbiAgcHVibGljIHVwZGF0ZVNlYXJjaFJlc3VsdHMocmVzdWx0OiBBdXRvY29tcGxldGVXcmFwcGVyU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zLnNldChyZXN1bHQuaXRlbXMpO1xuICAgIHRoaXMudG90YWxDb3VudC5zZXQocmVzdWx0LnRvdGFsQ291bnQpO1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gIH1cblxuICAvLyBPdmVybGF5IE1ldGhvZHNcbiAgc2hvd092ZXJsYXkoKSB7XG4gICAgdGhpcy5vdmVybGF5T3Blbi5zZXQodHJ1ZSk7XG4gIH1cblxuICBoaWRlT3ZlcmxheSgpIHtcbiAgICB0aGlzLm92ZXJsYXlPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgtMSk7XG4gIH1cblxuICBpc1R5cGUoaXRlbTogYW55KTogaXRlbSBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICAvLyBTZWxlY3Rpb24gTWV0aG9kc1xuICBzZWxlY3RJdGVtKGl0ZW06IEF1dG9jb21wbGV0ZVdyYXBwZXJJdGVtKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmNsZWFySW5wdXQpIHtcbiAgICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZ2V0SXRlbURpc3BsYXlUZXh0KGl0ZW0pO1xuICAgIH1cbiAgICB0aGlzLmhpZGVPdmVybGF5KCk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmFkZFRvSGlzdG9yeShpdGVtLCB0aGlzLmNvbmZpZy5tYXhIaXN0b3J5SXRlbXMpO1xuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoaXRlbSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCkge1xuICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KFtdKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KC0xKTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCgxKTtcbiAgICB0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIHRoaXMuc2VhcmNoQ2hhbmdlZC5lbWl0KCcnKTtcbiAgfVxuXG4gIC8vIEhpc3RvcnkgTWV0aG9kc1xuICByZW1vdmVIaXN0b3J5SXRlbShpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UucmVtb3ZlRnJvbUhpc3RvcnkoaW5kZXgpO1xuICB9XG5cbiAgY2xlYXJIaXN0b3J5KCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZS5jbGVhckhpc3RvcnkoKTtcbiAgfVxuXG4gIC8vIFBhZ2luYXRpb24gTWV0aG9kc1xuICBnb1RvUGFnZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQodGFyZ2V0LnZhbHVlKTtcbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmlzVmFsaWRQYWdlKHBhZ2UsIHRoaXMudG90YWxQYWdlcygpKSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQocGFnZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KC0xKTtcbiAgICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChwYWdlKTtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdE5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0LnZhbHVlID0gdGhpcy5jdXJyZW50UGFnZSgpLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub0ZpcnN0UGFnZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSgpICE9PSAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCgxKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQoLTEpO1xuICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KDEpO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0TmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIGdvVG9QcmV2aW91c1BhZ2UoKSB7XG4gICAgY29uc3QgcHJldlBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgLSAxO1xuICAgIGlmIChwcmV2UGFnZSA+PSAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnNldChwcmV2UGFnZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KC0xKTtcbiAgICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChwcmV2UGFnZSk7XG4gICAgICB0aGlzLnNlYXJjaFN1YmplY3ROZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub05leHRQYWdlKCkge1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpICsgMTtcbiAgICBpZiAobmV4dFBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzKCkpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KG5leHRQYWdlKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQoLTEpO1xuICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KG5leHRQYWdlKTtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdE5leHQoKTtcbiAgICB9XG4gIH1cblxuICBnb1RvTGFzdFBhZ2UoKSB7XG4gICAgY29uc3QgbGFzdFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXMoKTtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSgpICE9PSBsYXN0UGFnZSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQobGFzdFBhZ2UpO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4LnNldCgtMSk7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQobGFzdFBhZ2UpO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0TmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvb3RlciBBY3Rpb25zXG4gIG9uQ3JlYXRlTmV3KCRldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICB0aGlzLmNyZWF0ZUNsaWNrZWQuZW1pdCh0aGlzLnF1ZXJ5KTtcbiAgfVxuXG4gIG9uQWR2YW5jZWRTZWFyY2goKSB7XG4gICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hDbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2hvd0FsbFJlc3VsdHMoKSB7XG4gICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIHRoaXMuYWxsUmVzdWx0c0NsaWNrZWQuZW1pdCh0aGlzLnF1ZXJ5KTtcbiAgfVxuXG4gIC8vIFV0aWxpdHkgTWV0aG9kc1xuICBnZXRJdGVtRGlzcGxheVRleHQoaXRlbTogQXV0b2NvbXBsZXRlV3JhcHBlckl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UuZ2V0SXRlbURpc3BsYXlUZXh0KGl0ZW0pO1xuICB9XG5cbiAgbm9SZXN1bHRzVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgTm8gc2UgZW5jb250cmFyb24gcmVzdWx0YWRvcyBwYXJhIFwiJHt0aGlzLnF1ZXJ5fVwiYDtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9TZWxlY3RlZCgpIHtcbiAgICBjb25zdCBsaXN0RWxlbWVudCA9IHRoaXMuaXNIaXN0b3J5VmlzaWJsZSgpXG4gICAgICA/IHRoaXMuaGlzdG9yeUxpc3RFbGVtZW50Py5uYXRpdmVFbGVtZW50XG4gICAgICA6IHRoaXMucmVzdWx0c0xpc3RFbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGxpc3RFbGVtZW50KSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSBsaXN0RWxlbWVudC5jaGlsZHJlblt0aGlzLnNlbGVjdGVkSW5kZXgoKV0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50KSB7XG4gICAgICAgIHNlbGVjdGVkRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFB1YmxpYyBBUElcbiAgcHVibGljIGdldFN0YXRlKCk6IEF1dG9jb21wbGV0ZVdyYXBwZXJTdGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHF1ZXJ5OiB0aGlzLnF1ZXJ5LFxuICAgICAgaXNMb2FkaW5nOiB0aGlzLmlzTG9hZGluZygpLFxuICAgICAgb3ZlcmxheU9wZW46IHRoaXMub3ZlcmxheU9wZW4oKSxcbiAgICAgIHNlbGVjdGVkSW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCgpLFxuICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZSgpLFxuICAgICAgICB0b3RhbFBhZ2VzOiB0aGlzLnRvdGFsUGFnZXMoKSxcbiAgICAgICAgdG90YWxJdGVtczogdGhpcy50b3RhbEl0ZW1zKCksXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5jb25maWcuaXRlbXNQZXJQYWdlIHx8IDEwLFxuICAgICAgICBzdGFydEl0ZW06IHRoaXMuc3RhcnRJdGVtKCksXG4gICAgICAgIGVuZEl0ZW06IHRoaXMuZW5kSXRlbSgpLFxuICAgICAgICBoYXNOZXh0UGFnZTogdGhpcy5jdXJyZW50UGFnZSgpIDwgdGhpcy50b3RhbFBhZ2VzKCksXG4gICAgICAgIGhhc1ByZXZpb3VzUGFnZTogdGhpcy5jdXJyZW50UGFnZSgpID4gMSxcbiAgICAgIH0sXG4gICAgICBoYXNSZXN1bHRzOiB0aGlzLnRvdGFsSXRlbXMoKSA+IDAsXG4gICAgICBpc0hpc3RvcnlWaXNpYmxlOiB0aGlzLmlzSGlzdG9yeVZpc2libGUoKSxcbiAgICAgIGhpc3RvcnlDb3VudDogdGhpcy5oaXN0b3J5TGlzdCgpLmxlbmd0aCxcbiAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVycyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldFF1ZXJ5KHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoMSk7XG4gICAgaWYgKHF1ZXJ5Lmxlbmd0aCA+PSAodGhpcy5jb25maWcubWluU2VhcmNoTGVuZ3RoIHx8IDIpKSB7XG4gICAgICB0aGlzLnBlcmZvcm1TZWFyY2gocXVlcnkpO1xuICAgICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMuc2V0KFtdKTtcbiAgICAgIGlmIChxdWVyeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlYXJjaENoYW5nZWQuZW1pdChxdWVyeSk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXdyYXBwZXJcIiBbY2xhc3MuYXV0b2NvbXBsZXRlLXdyYXBwZXItYWN0aXZlXT1cIm92ZXJsYXlPcGVuKClcIj5cbiAgPCEtLSBJbnB1dCBDb250YWluZXIgLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWlucHV0LWNvbnRhaW5lclwiXG4gICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICNvdmVybGF5UG9zaXRpb249XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pbnB1dC13cmFwcGVyXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1zZWFyY2gtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI3NlYXJjaElucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pbnB1dC1maWVsZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInF1ZXJ5XCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChjbGljayk9XCJzaG93T3ZlcmxheSgpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIC8+XG4gICAgICBAaWYgKHF1ZXJ5ICYmIHF1ZXJ5Lmxlbmd0aCA+IDAgJiYgIWlzTG9hZGluZygpKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1jbGVhci1idXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItbG9hZGluZy1zcGlubmVyXCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjIwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPCEtLSBPdmVybGF5IC0tPlxuICA8bmctdGVtcGxhdGVcbiAgICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3ZlcmxheVBvc2l0aW9uXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3ZlcmxheU9wZW4oKVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJvdmVybGF5V2lkdGgoKVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIZWlnaHRdPVwib3ZlcmxheU1heEhlaWdodCgpXCJcbiAgICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJoaWRlT3ZlcmxheSgpXCJcbiAgICAoYmFja2Ryb3BDbGljayk9XCJoaWRlT3ZlcmxheSgpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1kcm9wZG93blwiIFtjbGFzcy5hdXRvY29tcGxldGUtd3JhcHBlci1hY3RpdmVdPVwib3ZlcmxheU9wZW4oKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWRyb3Bkb3duLWNvbnRlbnRcIj5cbiAgICAgICAgPCEtLSBIaXN0b3J5IFNlY3Rpb24gLS0+XG4gICAgICAgIEBpZiAoaXNIaXN0b3J5VmlzaWJsZSgpICYmIGhpc3RvcnlMaXN0KCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1zZWN0aW9uLXRpdGxlXCI+QsO6c3F1ZWRhcyByZWNpZW50ZXM8L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJIaXN0b3J5KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItY2xlYXItaGlzdG9yeS1idXR0b25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWl0ZW1zLWxpc3QgYXV0b2NvbXBsZXRlLXdyYXBwZXItc2Nyb2xsYWJsZS1saXN0XCJcbiAgICAgICAgICAgICAgI2hpc3RvcnlMaXN0RWxlbWVudFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGhpc3RvcnlMaXN0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWxpc3QtaXRlbSBhdXRvY29tcGxldGUtd3JhcHBlci1oaXN0b3J5LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pdGVtLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VsZWN0ZWRdPVwiJGluZGV4ID09PSBzZWxlY3RlZEluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWhpc3RvcnktaWNvblwiPmhpc3Rvcnk8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItaXRlbS1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcmVtb3ZlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVIaXN0b3J5SXRlbSgkaW5kZXgsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gUmVzdWx0cyBTZWN0aW9uIC0tPlxuICAgICAgICBAaWYgKCFpc0hpc3RvcnlWaXNpYmxlKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgPCEtLSBIZWFkZXIgd2l0aCBmaWx0ZXJzIGFuZCBwYWdpbmF0aW9uIC0tPlxuICAgICAgICAgICAgQGlmIChjb25maWcuZW5hYmxlRmlsdGVycyB8fCBjb25maWcuZW5hYmxlUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXNlY3Rpb24tdGl0bGVcIj57eyBzZWN0aW9uVGl0bGUoKSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDwhLS0gRmlsdGVycyAtLT5cbiAgICAgICAgICAgICAgICBAaWYgKGNvbmZpZy5lbmFibGVGaWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLWNvbnRyb2xzXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoY29uZmlnLnNlYXJjaEZpZWxkcyAmJiBjb25maWcuc2VhcmNoRmllbGRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1maWx0ZXItbGFiZWxcIj5CdXNjYXIgcG9yOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5zZWFyY2hCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWx0ZXJDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGNvbmZpZy5zZWFyY2hGaWVsZHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCI+e3sgZmllbGQubGFiZWwgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbmZpZy5lbmFibGVTdG9ja0ZpbHRlciAmJiBjb25maWcuc3RvY2tPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWZpbHRlci1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZmlsdGVyLWxhYmVsXCI+U3RvY2s6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1maWx0ZXItc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnN0b2NrRmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGNvbmZpZy5zdG9ja09wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBQYWdpbmF0aW9uIENvbnRyb2xzIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoY29uZmlnLmVuYWJsZVBhZ2luYXRpb24gJiYgdG90YWxQYWdlcygpID4gMSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1wYWdpbmF0aW9uLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Qw6FnaW5hIHt7IGN1cnJlbnRQYWdlKCkgfX0gZGUge3sgdG90YWxQYWdlcygpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tY29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5maXJzdF9wYWdlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2UtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImN1cnJlbnRQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwidG90YWxQYWdlcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvTmV4dFBhZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gdG90YWxQYWdlcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1wYWdpbmF0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0xhc3RQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IHRvdGFsUGFnZXMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxhc3RfcGFnZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXNlY3Rpb24tdGl0bGVcIj57eyBzZWN0aW9uVGl0bGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gSXRlbXMgTGlzdCAtLT5cbiAgICAgICAgICAgIEBpZiAodG90YWxJdGVtcygpKSB7XG4gICAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItaXRlbXMtbGlzdCBhdXRvY29tcGxldGUtd3JhcHBlci1zY3JvbGxhYmxlLWxpc3RcIlxuICAgICAgICAgICAgICAgICNyZXN1bHRzTGlzdEVsZW1lbnRcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY3VycmVudFBhZ2VJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWxpc3QtaXRlbSBhdXRvY29tcGxldGUtd3JhcHBlci1yZXN1bHQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pdGVtLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hdXRvY29tcGxldGUtd3JhcHBlci1zZWxlY3RlZF09XCIkaW5kZXggPT09IHNlbGVjdGVkSW5kZXgoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWl0ZW0taW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBObyBSZXN1bHRzIC0tPlxuICAgICAgICBAaWYgKCFpc0xvYWRpbmcoKSAmJiBpc05vUmVzdWx0cygpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLW5vLXJlc3VsdHNcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLW5vLXJlc3VsdHMtaWNvblwiPnNlYXJjaF9vZmY8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLW5vLXJlc3VsdHMtY29udGVudFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgIG5vdEZvdW5kVGVtcGxhdGUgfHwgZGVmYXVsdE5vdEZvdW5kVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9SZXN1bHRzVGV4dCgpIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEZvb3RlciAtLT5cbiAgICAgICAgQGlmIChvdmVybGF5T3BlbigpICYmIHRvdGFsSXRlbXMoKSA+IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZm9vdGVyXCI+XG4gICAgICAgICAgICBAaWYgKCFpc0hpc3RvcnlWaXNpYmxlKCkgJiYgdG90YWxJdGVtcygpID4gMCAmJiBjb25maWcuZW5hYmxlUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1zdW1tYXJ5XCI+XG4gICAgICAgICAgICAgICAgICBNb3N0cmFuZG8ge3sgc3RhcnRJdGVtKCkgfX0te3sgZW5kSXRlbSgpIH19IGRlIHt7IHRvdGFsQ291bnQoKSB9fSByZXN1bHRhZG9zXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLXBhZ2luYXRpb24tY29udHJvbHMtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1wYWdlLWluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgICAgID57eyBjdXJyZW50UGFnZSgpIH19IC8ge3sgdG90YWxQYWdlcygpIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItcGFnaW5hdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gdG90YWxQYWdlcygpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5lbmFibGVGb290ZXJBY3Rpb25zKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1mb290ZXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZm9vdGVyLWJ1dHRvbiBhdXRvY29tcGxldGUtd3JhcHBlci1jcmVhdGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNyZWF0ZU5ldygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItYnV0dG9uLXRleHRcIj5DcmVhcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWZvb3Rlci1idXR0b24gYXV0b2NvbXBsZXRlLXdyYXBwZXItc2VhcmNoLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZHZhbmNlZFNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+dHVuZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWJ1dHRvbi10ZXh0XCI+QXZhbnphZGE8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgQGlmICghaXNIaXN0b3J5VmlzaWJsZSgpICYmIHRvdGFsSXRlbXMoKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1mb290ZXItYnV0dG9uIGF1dG9jb21wbGV0ZS13cmFwcGVyLXJlc3VsdHMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0FsbFJlc3VsdHMoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5saXN0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1idXR0b24tdGV4dFwiPlRvZG9zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBEZWZhdWx0IFRlbXBsYXRlcyAtLT5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlIGxldC1pdGVtPlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1kZWZhdWx0LWl0ZW1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlci1pdGVtLW5hbWVcIj57eyBnZXRJdGVtRGlzcGxheVRleHQoaXRlbSkgfX08L2Rpdj5cbiAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbiAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyLWl0ZW0tZGVzY3JpcHRpb25cIj57eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Tm90Rm91bmRUZW1wbGF0ZSBsZXQtdGV4dD5cbiAgICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXItZGVmYXVsdC1uby1yZXN1bHRzXCI+XG4gICAgICA8cD57eyB0ZXh0IH19PC9wPlxuICAgICAgPHA+SW50ZW50YSBjb24gb3Ryb3MgdMOpcm1pbm9zIGRlIGLDunNxdWVkYTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19","import { Directive, ElementRef, HostListener, inject, Renderer2 } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class ToUpperCaseDirective {\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n onInput() {\n const value = this.el.nativeElement.value;\n this.el.nativeElement.value = value.toUpperCase();\n this.onChange(value.toUpperCase()); // Llamar a la función que actualiza el valor del modelo\n }\n // Funciones de ControlValueAccessor\n onChange = (_) => { };\n onTouched = () => { };\n writeValue(value) {\n if (value) {\n this.el.nativeElement.value = value.toUpperCase();\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ToUpperCaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.1\", type: ToUpperCaseDirective, isStandalone: true, selector: \"[acpToUpperCase]\", host: { listeners: { \"input\": \"onInput()\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: ToUpperCaseDirective,\n multi: true,\n },\n ], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ToUpperCaseDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[acpToUpperCase]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: ToUpperCaseDirective,\n multi: true,\n },\n ],\n }]\n }], propDecorators: { onInput: [{\n type: HostListener,\n args: ['input']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tdXBwZXItY2FzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy90by11cHBlci1jYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBWXpFLE1BQU0sT0FBTyxvQkFBb0I7SUFDdkIsRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWQsT0FBTztRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDMUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0RBQXdEO0lBQzlGLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsUUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVyQixVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt1R0ExQlUsb0JBQW9COzJGQUFwQixvQkFBb0IsOEdBUnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLG9CQUFvQjtnQkFDakMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGOzsyRkFFVSxvQkFBb0I7a0JBVmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsc0JBQXNCOzRCQUNqQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFLd0IsT0FBTztzQkFBN0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY3BUb1VwcGVyQ2FzZV0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBUb1VwcGVyQ2FzZURpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvVXBwZXJDYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnKSBvbklucHV0KCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZS50b1VwcGVyQ2FzZSgpKTsgLy8gTGxhbWFyIGEgbGEgZnVuY2nDs24gcXVlIGFjdHVhbGl6YSBlbCB2YWxvciBkZWwgbW9kZWxvXG4gIH1cblxuICAvLyBGdW5jaW9uZXMgZGUgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\n/*\n InjectionToken is a generic class provided by Angular for creating custom injection tokens.\n*/\nexport const DYNAMIC_INPUT = new InjectionToken('DYNAMIC_INPUT');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9pbnB1dHMvZHluYW1pYy1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOztFQUVFO0FBQ0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLypcbiAgSW5qZWN0aW9uVG9rZW4gaXMgYSBnZW5lcmljIGNsYXNzIHByb3ZpZGVkIGJ5IEFuZ3VsYXIgZm9yIGNyZWF0aW5nIGN1c3RvbSBpbmplY3Rpb24gdG9rZW5zLlxuKi9cbmV4cG9ydCBjb25zdCBEWU5BTUlDX0lOUFVUID0gbmV3IEluamVjdGlvblRva2VuKCdEWU5BTUlDX0lOUFVUJyk7XG4iXX0=","import { HttpContext, HttpContextToken, } from '@angular/common/http';\nimport { finalize } from 'rxjs/operators';\nimport { inject } from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport { OverlayService } from '../services';\nimport * as i0 from \"@angular/core\";\n/**\n * Token to determine if a request should show spinner\n * Default is true (show spinner for all requests)\n */\nconst SHOW_SPINNER = new HttpContextToken(() => true);\nconst requests = [];\n/**\n * Helper function to disable spinner for specific requests\n * @returns HttpContext with spinner disabled\n */\nexport function withoutSpinner() {\n return new HttpContext().set(SHOW_SPINNER, false);\n}\n/**\n * Service to track active HTTP requests\n */\nexport class ActiveRequestsTracker {\n get count() {\n return requests.length;\n }\n add(request) {\n requests.push(request);\n }\n remove(request) {\n const index = requests.indexOf(request);\n if (index >= 0) {\n requests.splice(index, 1);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ActiveRequestsTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ActiveRequestsTracker, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.1\", ngImport: i0, type: ActiveRequestsTracker, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n/**\n * Interceptor that shows/hides a loading spinner based on active HTTP requests\n */\nexport const spinnerInterceptor = (req, next) => {\n // Track active requests requiring spinner\n console.log(requests);\n const activeRequests = inject(ActiveRequestsTracker);\n const overlayService = inject(OverlayService);\n // Skip spinner if disabled for this request\n if (!req.context.get(SHOW_SPINNER)) {\n return next(req);\n }\n // Add request to tracking\n activeRequests.add(req);\n // Show spinner if this is the first active request\n if (activeRequests.count === 1) {\n overlayService.showSpinner();\n }\n return next(req).pipe(finalize(() => {\n // Remove request and hide spinner if no more active requests\n activeRequests.remove(req);\n if (activeRequests.count === 0) {\n overlayService.hideSpinner();\n }\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9pbnRlcmNlcHRvcnMvc3Bpbm5lci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGdCQUFnQixHQUdqQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFDN0M7OztHQUdHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUUvRCxNQUFNLFFBQVEsR0FBdUIsRUFBRSxDQUFDO0FBRXhDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjO0lBQzVCLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7R0FFRztBQUlILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBeUI7UUFDM0IsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXlCO1FBQzlCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQzt1R0FkVSxxQkFBcUI7MkdBQXJCLHFCQUFxQixjQUZwQixNQUFNOzsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQWtCRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNqRSwwQ0FBMEM7SUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNyRCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUMsNENBQTRDO0lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4QixtREFBbUQ7SUFDbkQsSUFBSSxjQUFjLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNuQixRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ1osNkRBQTZEO1FBQzdELGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxjQUFjLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBDb250ZXh0LFxuICBIdHRwQ29udGV4dFRva2VuLFxuICBIdHRwSW50ZXJjZXB0b3JGbixcbiAgSHR0cFJlcXVlc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuLyoqXG4gKiBUb2tlbiB0byBkZXRlcm1pbmUgaWYgYSByZXF1ZXN0IHNob3VsZCBzaG93IHNwaW5uZXJcbiAqIERlZmF1bHQgaXMgdHJ1ZSAoc2hvdyBzcGlubmVyIGZvciBhbGwgcmVxdWVzdHMpXG4gKi9cbmNvbnN0IFNIT1dfU1BJTk5FUiA9IG5ldyBIdHRwQ29udGV4dFRva2VuPGJvb2xlYW4+KCgpID0+IHRydWUpO1xuXG5jb25zdCByZXF1ZXN0czogSHR0cFJlcXVlc3Q8YW55PltdID0gW107XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRpc2FibGUgc3Bpbm5lciBmb3Igc3BlY2lmaWMgcmVxdWVzdHNcbiAqIEByZXR1cm5zIEh0dHBDb250ZXh0IHdpdGggc3Bpbm5lciBkaXNhYmxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dFNwaW5uZXIoKSB7XG4gIHJldHVybiBuZXcgSHR0cENvbnRleHQoKS5zZXQoU0hPV19TUElOTkVSLCBmYWxzZSk7XG59XG5cbi8qKlxuICogU2VydmljZSB0byB0cmFjayBhY3RpdmUgSFRUUCByZXF1ZXN0c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZlUmVxdWVzdHNUcmFja2VyIHtcbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHJlcXVlc3RzLmxlbmd0aDtcbiAgfVxuXG4gIGFkZChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogdm9pZCB7XG4gICAgcmVxdWVzdHMucHVzaChyZXF1ZXN0KTtcbiAgfVxuXG4gIHJlbW92ZShyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSByZXF1ZXN0cy5pbmRleE9mKHJlcXVlc3QpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICByZXF1ZXN0cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEludGVyY2VwdG9yIHRoYXQgc2hvd3MvaGlkZXMgYSBsb2FkaW5nIHNwaW5uZXIgYmFzZWQgb24gYWN0aXZlIEhUVFAgcmVxdWVzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IHNwaW5uZXJJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAocmVxLCBuZXh0KSA9PiB7XG4gIC8vIFRyYWNrIGFjdGl2ZSByZXF1ZXN0cyByZXF1aXJpbmcgc3Bpbm5lclxuICBjb25zb2xlLmxvZyhyZXF1ZXN0cyk7XG4gIGNvbnN0IGFjdGl2ZVJlcXVlc3RzID0gaW5qZWN0KEFjdGl2ZVJlcXVlc3RzVHJhY2tlcik7XG4gIGNvbnN0IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcblxuICAvLyBTa2lwIHNwaW5uZXIgaWYgZGlzYWJsZWQgZm9yIHRoaXMgcmVxdWVzdFxuICBpZiAoIXJlcS5jb250ZXh0LmdldChTSE9XX1NQSU5ORVIpKSB7XG4gICAgcmV0dXJuIG5leHQocmVxKTtcbiAgfVxuXG4gIC8vIEFkZCByZXF1ZXN0IHRvIHRyYWNraW5nXG4gIGFjdGl2ZVJlcXVlc3RzLmFkZChyZXEpO1xuXG4gIC8vIFNob3cgc3Bpbm5lciBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhY3RpdmUgcmVxdWVzdFxuICBpZiAoYWN0aXZlUmVxdWVzdHMuY291bnQgPT09IDEpIHtcbiAgICBvdmVybGF5U2VydmljZS5zaG93U3Bpbm5lcigpO1xuICB9XG5cbiAgcmV0dXJuIG5leHQocmVxKS5waXBlKFxuICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgIC8vIFJlbW92ZSByZXF1ZXN0IGFuZCBoaWRlIHNwaW5uZXIgaWYgbm8gbW9yZSBhY3RpdmUgcmVxdWVzdHNcbiAgICAgIGFjdGl2ZVJlcXVlc3RzLnJlbW92ZShyZXEpO1xuICAgICAgaWYgKGFjdGl2ZVJlcXVlc3RzLmNvdW50ID09PSAwKSB7XG4gICAgICAgIG92ZXJsYXlTZXJ2aWNlLmhpZGVTcGlubmVyKCk7XG4gICAgICB9XG4gICAgfSksXG4gICk7XG59O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb21wb25lbnRzL3NyYy9hY29udHBsdXMtbmctY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2","i3","Tabulator","i4","i5"],"mappings":"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"}
|