{"version":3,"file":"finastra-angular-components-filter-filter-group.mjs","sources":["../tmp-esm2022/filter/filter-group/src/filter-group-dialog/filter-group-dialog.component.js","../tmp-esm2022/filter/filter-group/src/filter.directive.js","../tmp-esm2022/filter/filter-group/src/filter-group.component.js","../tmp-esm2022/filter/filter-group/finastra-angular-components-filter-filter-group.js"],"sourcesContent":["import { Component, Inject } from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"@angular/material/button\";\nexport class FilterGroupDialogComponent {\n    constructor(dialogRef, data) {\n        this.dialogRef = dialogRef;\n        this.data = data;\n    }\n    onNoClick() {\n        this.dialogRef.close();\n    }\n    save() {\n        if (!this.filterName.invalid)\n            this.dialogRef.close(this.filterName.value);\n    }\n    ngOnInit() {\n        this.filterName = new FormControl('', [Validators.required, this.nameExistsValidator()]);\n    }\n    nameExistsValidator() {\n        return (control) => {\n            return this.data.existingNames.indexOf(control.value) >= 0 ? { nameExists: { value: control.value } } : null;\n        };\n    }\n    getErrorMessage() {\n        return this.filterName.hasError('required') ? 'Name is required' : this.filterName.hasError('nameExists') ? 'Name already exists' : '';\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: FilterGroupDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: FilterGroupDialogComponent, isStandalone: true, selector: \"uxg-filter-group-dialog\", ngImport: i0, template: \"<div mat-dialog-content class=\\\"filter-group-dialog-header\\\">\\n  <div class=\\\"dialog-title uxg-h6\\\">Name of Filter</div>\\n</div>\\n<div mat-dialog-content>\\n  <mat-form-field class=\\\"filter-group-dialog-form\\\">\\n    <input matInput placeholder=\\\"Name\\\" maxlength=\\\"10\\\" [formControl]=\\\"filterName\\\" />\\n    @if (filterName.invalid) {\\n      <mat-error>{{ getErrorMessage() }}</mat-error>\\n    }\\n  </mat-form-field>\\n</div>\\n<div mat-dialog-actions class=\\\"filter-group-dialog-actions\\\">\\n  <button mat-stroked-button color=\\\"accent\\\" (click)=\\\"save()\\\">Save</button>\\n</div>\\n\", styles: [\".mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:800 1rem/1.375rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:800 .8125rem/1.125rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:500 1rem/1.5rem Roboto;letter-spacing:.15px;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:300 1rem/1.5rem Roboto;letter-spacing:.5px;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:300 .72625rem/1.3125rem Roboto;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:300 .58625rem/1.3125rem Roboto;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 .875rem/1.3125rem Roboto;letter-spacing:.1px}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:300 .875rem/1.3125rem Roboto;letter-spacing:.25px}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 .75rem/1.125rem Roboto;letter-spacing:.4px}.mat-headline-1,.mat-typography .mat-headline-1{font:800 3.1875rem/4.4375rem Spartan;letter-spacing:0;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:800 2.5625rem/3.5625rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:800 1.75rem/2.4375rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:800 1.3125rem/1.8125rem Spartan;letter-spacing:0;margin:0 0 64px}.flex{display:flex;box-sizing:border-box}.inline-flex{display:inline-flex;box-sizing:border-box}.flex-row{display:flex;flex-direction:row;box-sizing:border-box}.flex-col{display:flex;flex-direction:column;box-sizing:border-box}.flex-wrap{flex-wrap:wrap}@media screen and (max-width: 599px){.flex-col-xs{flex-direction:column}}@media screen and (max-width: 959px){.flex-col-lt-md{flex-direction:column}}@media screen and (max-width: 1279px){.flex-col-lt-lg{flex-direction:column}}@media screen and (max-width: 599px){.flex-row-xs{flex-direction:row}}@media screen and (max-width: 959px){.flex-row-lt-md{flex-direction:row}}@media screen and (max-width: 1279px){.flex-row-lt-lg{flex-direction:row}}.flex-row-gt-xs{display:flex}@media screen and (min-width: 600px){.flex-row-gt-xs{flex-direction:row}}.flex-initial{flex:initial}.flex-auto{flex:auto}.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-15{flex:0 0 15%}.flex-20{flex:0 0 20%}.flex-25{flex:0 0 25%}.flex-30{flex:0 0 30%}.flex-35{flex:0 0 35%}.flex-40{flex:0 0 40%}.flex-45{flex:0 0 45%}.flex-50{flex:0 0 50%}.flex-55{flex:0 0 55%}.flex-60{flex:0 0 60%}.flex-80{flex:0 0 80%}.flex-none{flex:none}.flex-nogrow{flex:0 1 auto}.flex-noshrink{flex:1 0 auto}.flex-grow{flex:1 1 100%}.flex-grow25{flex:0 1 25%}.flex-grow50{flex:0 1 50%}.flex-grow60{flex:0 1 60%}.flex-grow75{flex:0 1 75%}.gap-10>*{margin-right:10px}.gap-10>*:last-child{margin-right:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.align-baseline{align-items:baseline}.center-center{justify-content:center;align-items:center}.item-start{align-self:flex-start}.item-end{align-self:flex-end}.item-center{align-self:center}.item-stretch{align-self:stretch}.item-baseline{align-self:baseline}.center{display:block;margin-left:auto;margin-right:auto}.fill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}.fill-remaining-space{flex:1 1 auto}.center-text{text-align:center}.hide{display:none!important}@media screen and (max-width: 599px){.hide-xs{display:none!important}}@media screen and (min-width: 600px){.hide-gt-xs{display:none!important}}@media screen and (max-width: 959px){.hide-lt-md{display:none!important}}@media screen and (min-width: 960px){.hide-gt-sm{display:none!important}}@media screen and (min-width: 1280px){.hide-gt-md{display:none!important}}@media screen and (max-width: 1279px){.hide-lt-lg{display:none!important}}@media screen and (max-width: 599px){.hide-lt-sm{display:none!important}}.filter-group-dialog-header{position:relative;top:-24px}.filter-group-dialog-header .dialog-title{margin-top:16px}.filter-group-dialog-form{width:100%}.filter-group-dialog-actions.mat-dialog-actions{display:flex;justify-content:center}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatDialogModule }, { kind: \"directive\", type: i1.MatDialogActions, selector: \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", inputs: [\"align\"] }, { kind: \"directive\", type: i1.MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatError, selector: \"mat-error, [matError]\", inputs: [\"id\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.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: i4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i4.MaxLengthValidator, selector: \"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\", inputs: [\"maxlength\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i4.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.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\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: FilterGroupDialogComponent, decorators: [{\n            type: Component,\n            args: [{ selector: 'uxg-filter-group-dialog', standalone: true, imports: [MatDialogModule, MatFormFieldModule, MatInputModule, FormsModule, ReactiveFormsModule, MatButtonModule], template: \"<div mat-dialog-content class=\\\"filter-group-dialog-header\\\">\\n  <div class=\\\"dialog-title uxg-h6\\\">Name of Filter</div>\\n</div>\\n<div mat-dialog-content>\\n  <mat-form-field class=\\\"filter-group-dialog-form\\\">\\n    <input matInput placeholder=\\\"Name\\\" maxlength=\\\"10\\\" [formControl]=\\\"filterName\\\" />\\n    @if (filterName.invalid) {\\n      <mat-error>{{ getErrorMessage() }}</mat-error>\\n    }\\n  </mat-form-field>\\n</div>\\n<div mat-dialog-actions class=\\\"filter-group-dialog-actions\\\">\\n  <button mat-stroked-button color=\\\"accent\\\" (click)=\\\"save()\\\">Save</button>\\n</div>\\n\", styles: [\".mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:800 1rem/1.375rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:800 .8125rem/1.125rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:500 1rem/1.5rem Roboto;letter-spacing:.15px;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:300 1rem/1.5rem Roboto;letter-spacing:.5px;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:300 .72625rem/1.3125rem Roboto;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:300 .58625rem/1.3125rem Roboto;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 .875rem/1.3125rem Roboto;letter-spacing:.1px}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:300 .875rem/1.3125rem Roboto;letter-spacing:.25px}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 .75rem/1.125rem Roboto;letter-spacing:.4px}.mat-headline-1,.mat-typography .mat-headline-1{font:800 3.1875rem/4.4375rem Spartan;letter-spacing:0;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:800 2.5625rem/3.5625rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:800 1.75rem/2.4375rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:800 1.3125rem/1.8125rem Spartan;letter-spacing:0;margin:0 0 64px}.flex{display:flex;box-sizing:border-box}.inline-flex{display:inline-flex;box-sizing:border-box}.flex-row{display:flex;flex-direction:row;box-sizing:border-box}.flex-col{display:flex;flex-direction:column;box-sizing:border-box}.flex-wrap{flex-wrap:wrap}@media screen and (max-width: 599px){.flex-col-xs{flex-direction:column}}@media screen and (max-width: 959px){.flex-col-lt-md{flex-direction:column}}@media screen and (max-width: 1279px){.flex-col-lt-lg{flex-direction:column}}@media screen and (max-width: 599px){.flex-row-xs{flex-direction:row}}@media screen and (max-width: 959px){.flex-row-lt-md{flex-direction:row}}@media screen and (max-width: 1279px){.flex-row-lt-lg{flex-direction:row}}.flex-row-gt-xs{display:flex}@media screen and (min-width: 600px){.flex-row-gt-xs{flex-direction:row}}.flex-initial{flex:initial}.flex-auto{flex:auto}.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-15{flex:0 0 15%}.flex-20{flex:0 0 20%}.flex-25{flex:0 0 25%}.flex-30{flex:0 0 30%}.flex-35{flex:0 0 35%}.flex-40{flex:0 0 40%}.flex-45{flex:0 0 45%}.flex-50{flex:0 0 50%}.flex-55{flex:0 0 55%}.flex-60{flex:0 0 60%}.flex-80{flex:0 0 80%}.flex-none{flex:none}.flex-nogrow{flex:0 1 auto}.flex-noshrink{flex:1 0 auto}.flex-grow{flex:1 1 100%}.flex-grow25{flex:0 1 25%}.flex-grow50{flex:0 1 50%}.flex-grow60{flex:0 1 60%}.flex-grow75{flex:0 1 75%}.gap-10>*{margin-right:10px}.gap-10>*:last-child{margin-right:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.align-baseline{align-items:baseline}.center-center{justify-content:center;align-items:center}.item-start{align-self:flex-start}.item-end{align-self:flex-end}.item-center{align-self:center}.item-stretch{align-self:stretch}.item-baseline{align-self:baseline}.center{display:block;margin-left:auto;margin-right:auto}.fill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}.fill-remaining-space{flex:1 1 auto}.center-text{text-align:center}.hide{display:none!important}@media screen and (max-width: 599px){.hide-xs{display:none!important}}@media screen and (min-width: 600px){.hide-gt-xs{display:none!important}}@media screen and (max-width: 959px){.hide-lt-md{display:none!important}}@media screen and (min-width: 960px){.hide-gt-sm{display:none!important}}@media screen and (min-width: 1280px){.hide-gt-md{display:none!important}}@media screen and (max-width: 1279px){.hide-lt-lg{display:none!important}}@media screen and (max-width: 599px){.hide-lt-sm{display:none!important}}.filter-group-dialog-header{position:relative;top:-24px}.filter-group-dialog-header .dialog-title{margin-top:16px}.filter-group-dialog-form{width:100%}.filter-group-dialog-actions.mat-dialog-actions{display:flex;justify-content:center}\\n\"] }]\n        }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [MAT_DIALOG_DATA]\n                }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWdyb3VwLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLWdyb3VwL3NyYy9maWx0ZXItZ3JvdXAtZGlhbG9nL2ZpbHRlci1ncm91cC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci1ncm91cC9zcmMvZmlsdGVyLWdyb3VwLWRpYWxvZy9maWx0ZXItZ3JvdXAtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBbUIsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBYXpELE1BQU0sT0FBTywwQkFBMEI7SUFFckMsWUFDUyxTQUFtRCxFQUMxQixJQUEyQjtRQURwRCxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUF1QjtJQUMxRCxDQUFDO0lBRUosU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLENBQUMsT0FBd0IsRUFBaUMsRUFBRTtZQUNqRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9HLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pJLENBQUM7OEdBMUJVLDBCQUEwQiw4Q0FJM0IsZUFBZTtrR0FKZCwwQkFBMEIsbUZDbkJ2Qyxra0JBY0EsaXBLREdZLGVBQWUseVNBQUUsa0JBQWtCLHNVQUFFLGNBQWMsaVlBQUUsV0FBVyx5akJBQUUsbUJBQW1CLGlOQUFFLGVBQWU7OzJGQUVyRywwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBR3ZCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQzs7MEJBTTlHLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJHcm91cERpYWxvZ0RhdGEge1xuICBleGlzdGluZ05hbWVzOiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndXhnLWZpbHRlci1ncm91cC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJ2ZpbHRlci1ncm91cC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZmlsdGVyLWdyb3VwLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0RGlhbG9nTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJHcm91cERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZpbHRlck5hbWUhOiBGb3JtQ29udHJvbDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEZpbHRlckdyb3VwRGlhbG9nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IEZpbHRlckdyb3VwRGlhbG9nRGF0YVxuICApIHt9XG5cbiAgb25Ob0NsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbiAgc2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZmlsdGVyTmFtZS5pbnZhbGlkKSB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmZpbHRlck5hbWUudmFsdWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy5uYW1lRXhpc3RzVmFsaWRhdG9yKCldKTtcbiAgfVxuXG4gIG5hbWVFeGlzdHNWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5leGlzdGluZ05hbWVzLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPj0gMCA/IHsgbmFtZUV4aXN0czogeyB2YWx1ZTogY29udHJvbC52YWx1ZSB9IH0gOiBudWxsO1xuICAgIH07XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyTmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKSA/ICdOYW1lIGlzIHJlcXVpcmVkJyA6IHRoaXMuZmlsdGVyTmFtZS5oYXNFcnJvcignbmFtZUV4aXN0cycpID8gJ05hbWUgYWxyZWFkeSBleGlzdHMnIDogJyc7XG4gIH1cbn1cbiIsIjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZmlsdGVyLWdyb3VwLWRpYWxvZy1oZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy10aXRsZSB1eGctaDZcIj5OYW1lIG9mIEZpbHRlcjwvZGl2PlxuPC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmlsdGVyLWdyb3VwLWRpYWxvZy1mb3JtXCI+XG4gICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiTmFtZVwiIG1heGxlbmd0aD1cIjEwXCIgW2Zvcm1Db250cm9sXT1cImZpbHRlck5hbWVcIiAvPlxuICAgIEBpZiAoZmlsdGVyTmFtZS5pbnZhbGlkKSB7XG4gICAgICA8bWF0LWVycm9yPnt7IGdldEVycm9yTWVzc2FnZSgpIH19PC9tYXQtZXJyb3I+XG4gICAgfVxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImZpbHRlci1ncm91cC1kaWFsb2ctYWN0aW9uc1wiPlxuICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJzYXZlKClcIj5TYXZlPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==","import { Directive, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class UxgFilter {\n    constructor(ref) {\n        this.ref = ref;\n        this.instance = '';\n    }\n    ngAfterViewInit() {\n        this.component = this.ref.nativeElement.__component;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: UxgFilter, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.4\", type: UxgFilter, isStandalone: true, selector: \"[uxgFilter]\", inputs: { instance: [\"uxgFilter\", \"instance\"] }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: UxgFilter, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[uxgFilter]',\n                    standalone: true\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { instance: [{\n                type: Input,\n                args: ['uxgFilter']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL2ZpbHRlci9maWx0ZXItZ3JvdXAvc3JjL2ZpbHRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU81RSxNQUFNLE9BQU8sU0FBUztJQUtwQixZQUFvQixHQUFlO1FBQWYsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUpmLGFBQVEsR0FBRyxFQUFFLENBQUM7SUFJSSxDQUFDO0lBRXZDLGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUN0RCxDQUFDOzhHQVRVLFNBQVM7a0dBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFKckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUVxQixRQUFRO3NCQUEzQixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVWEdGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlci5tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdXhnRmlsdGVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVXhnRmlsdGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgndXhnRmlsdGVyJykgaW5zdGFuY2UgPSAnJztcblxuICBjb21wb25lbnQhOiBVWEdGaWx0ZXI8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jb21wb25lbnQgPSB0aGlzLnJlZi5uYXRpdmVFbGVtZW50Ll9fY29tcG9uZW50O1xuICB9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDialogConfig, MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule, MatExpansionPanel } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ClickOutsideDirective } from '@finastra/angular-components/core';\nimport { FilterGroupDialogComponent } from './filter-group-dialog/filter-group-dialog.component';\nimport { UxgFilter } from './filter.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"@angular/material/expansion\";\nimport * as i3 from \"@angular/material/badge\";\nimport * as i4 from \"@angular/material/divider\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/icon\";\nimport * as i7 from \"@angular/material/chips\";\nexport class FilterGroupComponent {\n    constructor(dialog, cd) {\n        this.dialog = dialog;\n        this.cd = cd;\n        this.changes = new EventEmitter();\n        this.expanded = false;\n        this.divideAtIndex = [];\n        this.showActions = false;\n        this.autoApply = false;\n        this.subscriptions = [];\n        this.selectedData = [];\n        this.savedFilters = [];\n        this.existingFilterNames = [];\n        this.initialState = [];\n        this.activeFilter = [];\n        this.isActive = false;\n        this.headerHeight = '40px';\n    }\n    ngAfterViewInit() {\n        this.filterInstances.forEach((filterInstance) => {\n            const instanceTitle = filterInstance.instance;\n            const selected = {};\n            selected[instanceTitle] = filterInstance.component.getState();\n            this.selectedData.push({ title: instanceTitle, selectedData: [...selected[instanceTitle]] });\n            this.initialState.push({ title: instanceTitle, selectedData: [...selected[instanceTitle]] });\n            this.subscriptions.push(filterInstance.component.changes.subscribe((change) => {\n                change.instance = instanceTitle;\n                this.selectedData.forEach((filter) => {\n                    if (filter.title === change.instance) {\n                        filter.selectedData = filterInstance.component.getState();\n                    }\n                });\n                this.changes.emit(change);\n                if (this.autoApply) {\n                    this.applyFilters();\n                }\n            }));\n        });\n        setTimeout(() => this.applyFilters());\n    }\n    ngOnDestroy() {\n        this.subscriptions.forEach((s) => s.unsubscribe());\n    }\n    openDialog() {\n        const dialogConfig = new MatDialogConfig();\n        dialogConfig.width = '300px';\n        dialogConfig.data = {\n            existingNames: this.existingFilterNames\n        };\n        this.dialogRef = this.dialog.open(FilterGroupDialogComponent, dialogConfig);\n        const state = this.getFilterStates();\n        this.dialogRef.afterClosed().subscribe((result) => {\n            if (result) {\n                this.savedFilters.forEach((filter) => {\n                    filter.isSelected = false;\n                });\n                this.existingFilterNames.push(result.trim());\n                this.savedFilters.push({\n                    filterName: result.trim(),\n                    filterState: state,\n                    isSelected: true\n                });\n            }\n            this.dialogRef = undefined;\n            this.cd.markForCheck();\n        });\n    }\n    selectFilter(filter) {\n        this.savedFilters.forEach((savedFilter) => {\n            if (savedFilter.filterName === filter.filterName) {\n                savedFilter.isSelected = true;\n            }\n            else {\n                savedFilter.isSelected = false;\n            }\n        });\n        this.setState(filter.filterState);\n    }\n    applyFilters() {\n        let change;\n        const activeFilter = [];\n        this.filterInstances.forEach((filterInstance) => {\n            const data = filterInstance.component.getState();\n            activeFilter.push({ title: filterInstance.instance, selectedData: data });\n            change = {\n                instance: filterInstance.instance,\n                added: data,\n                removed: []\n            };\n            this.changes.emit(change);\n        });\n        this.activeFilter = activeFilter;\n        this.isActive = this.checkIsActive();\n    }\n    updateFilter() {\n        const state = this.getFilterStates();\n        this.savedFilters.forEach((filter) => {\n            if (filter.isSelected) {\n                filter.filterState = state;\n            }\n        });\n    }\n    removeFilter(filter) {\n        this.savedFilters = this.savedFilters.filter((item) => item !== filter);\n        this.existingFilterNames = this.existingFilterNames.filter((items) => items !== filter.filterName);\n    }\n    clearSelection() {\n        this.filterInstances.forEach((filterInstance) => {\n            filterInstance.component.clearSelection();\n        });\n        this.selectedData.forEach((instance) => {\n            instance.selectedData.length = 0;\n        });\n    }\n    resetSelection() {\n        this.setState(this.initialState);\n    }\n    getFilterStates() {\n        const groupState = [];\n        this.filterInstances.forEach((instance) => {\n            if (instance.component.getState) {\n                groupState.push({\n                    title: instance.instance,\n                    selectedData: instance.component.getState()\n                });\n            }\n        });\n        return groupState;\n    }\n    getState() {\n        return [...this.selectedData];\n    }\n    setState(data) {\n        if (data.length) {\n            this.filterInstances.forEach((filterInstance) => {\n                for (let i = 0; i < data.length; i++) {\n                    if (filterInstance.instance === data[i].title && filterInstance.component.setState) {\n                        filterInstance.component.setState(data[i].selectedData);\n                    }\n                }\n            });\n            data.forEach((obj) => {\n                this.selectedData.forEach((obj2) => {\n                    if (obj.title === obj2.title) {\n                        obj2.selectedData.length = 0;\n                        obj2.selectedData.push(...obj.selectedData);\n                    }\n                });\n            });\n        }\n    }\n    open() {\n        if (this.activeFilter.length) {\n            this.setState(this.activeFilter);\n            if (this.savedFilters.length) {\n                for (let i = 0; i < this.savedFilters.length; i++)\n                    if (this.savedFilters[i].isSelected === true && !this.checkListEquality(this.savedFilters[i].filterState, this.activeFilter)) {\n                        this.savedFilters[i].isSelected = false;\n                        break;\n                    }\n            }\n        }\n        else if (this.savedFilters.length) {\n            this.setState(this.getSelectedFilterState());\n        }\n    }\n    close() {\n        if (this.activeFilter.length) {\n            this.setState(this.activeFilter);\n        }\n        else if (this.savedFilters.length) {\n            this.setState(this.getSelectedFilterState());\n        }\n        else {\n            this.resetSelection();\n        }\n    }\n    getSelectedFilterState() {\n        const stateArray = [];\n        this.savedFilters.forEach((filter) => {\n            if (filter.isSelected) {\n                for (const key in filter.filterState) {\n                    if (filter.filterState.hasOwnProperty(key))\n                        stateArray.push(filter.filterState[key]);\n                }\n            }\n        });\n        return stateArray;\n    }\n    checkIsActive() {\n        if (this.selectedData.some((data) => data.selectedData.length) && this.activeFilter.some((data) => data.selectedData.length)) {\n            return this.checkListEquality(this.activeFilter, this.selectedData);\n        }\n        return false;\n    }\n    checkListEquality(listA, listB) {\n        for (let i = 0; i < listA.length; i++) {\n            if (listA[i].title === listB[i].title && listA[i].selectedData.length === listB[i].selectedData.length) {\n                for (let j = 0; j < listA[i].selectedData.length; j++) {\n                    if (listB[i].selectedData.indexOf(listA[i].selectedData[j]) === -1) {\n                        return false;\n                    }\n                }\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    checkDivider(index) {\n        if (this.divideAtIndex.indexOf(index) >= 0) {\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    handleOutsideClick() {\n        if (this.expansionPanel.expanded && !this.dialogRef) {\n            this.expansionPanel.close();\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: FilterGroupComponent, deps: [{ token: i1.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: FilterGroupComponent, isStandalone: true, selector: \"uxg-filter-group\", inputs: { expanded: \"expanded\", divideAtIndex: \"divideAtIndex\", showActions: \"showActions\", autoApply: \"autoApply\" }, outputs: { changes: \"changes\" }, queries: [{ propertyName: \"filterInstances\", predicate: UxgFilter, descendants: true }], viewQueries: [{ propertyName: \"expansionPanel\", first: true, predicate: MatExpansionPanel, descendants: true }], ngImport: i0, template: \"<mat-expansion-panel\\n  #filterGroupPanel\\n  class=\\\"uxg-expansion-filter uxg-filter-group\\\"\\n  hideToggle=\\\"true\\\"\\n  [expanded]=\\\"expanded\\\"\\n  [class.active]=\\\"isActive\\\"\\n  (uxgClickOutside)=\\\"handleOutsideClick()\\\"\\n>\\n  <mat-expansion-panel-header\\n    [@.disabled]=\\\"true\\\"\\n    [expandedHeight]=\\\"headerHeight\\\"\\n    [collapsedHeight]=\\\"headerHeight\\\"\\n    (click)=\\\"$event.stopPropagation(); filterGroupPanel.expanded ? open() : close()\\\"\\n  >\\n    <div class=\\\"uxg-filter-group-header\\\">\\n      <div class=\\\"selectedFilters\\\">\\n        @for (filter of selectedData; track i; let i = $index) {\\n          @if (filter.selectedData.length && !filter.selectedData[0].value) {\\n            <div [matBadge]=\\\"filter.selectedData.length\\\" matBadgeSize=\\\"small\\\" class=\\\"uxg-group-filter uxg-side-badge\\\">\\n              {{ filter.title }}\\n            </div>\\n          }\\n          @if (!filter.selectedData.length) {\\n            <div matBadge=\\\"All\\\" matBadgeSize=\\\"small\\\" class=\\\"uxg-group-filter uxg-side-badge\\\">\\n              {{ filter.title }}\\n            </div>\\n          }\\n          @if (filter.selectedData.length && filter.selectedData[0].value) {\\n            <div class=\\\"uxg-group-filter uxg-side-badge\\\">\\n              {{ filter.title }}<span class=\\\"filter-value\\\">{{ filter.selectedData[0].label }}</span>\\n            </div>\\n          }\\n          @if (checkDivider(i)) {\\n            <mat-divider class=\\\"filter-divider\\\" vertical></mat-divider>\\n          }\\n        }\\n      </div>\\n      <span class=\\\"fill-remaining-space\\\"></span>\\n      <div class=\\\"expand-button\\\">\\n        <button mat-icon-button [color]=\\\"filterGroupPanel.expanded ? 'primary' : 'neutral'\\\">\\n          <mat-icon>{{ filterGroupPanel.expanded ? 'arrow_drop_up' : 'arrow_drop_down' }}</mat-icon>\\n        </button>\\n      </div>\\n    </div>\\n  </mat-expansion-panel-header>\\n\\n  <ng-template matExpansionPanelContent>\\n    <div class=\\\"expansion-panel-header\\\">\\n      <h6 class=\\\"uxg-h6\\\">Filter by</h6>\\n      <button mat-button color=\\\"accent\\\" dense (click)=\\\"clearSelection()\\\">\\n        <mat-icon>refresh</mat-icon>\\n        Reset\\n      </button>\\n    </div>\\n    <div class=\\\"flex-row flex-wrap justify-start expansion-panel-content\\\">\\n      <ng-content></ng-content>\\n    </div>\\n\\n    @if (showActions) {\\n      <mat-divider></mat-divider>\\n      <div class=\\\"flex-row flex-wrap expansion-panel-actions\\\">\\n        <div class=\\\"saved-filters-container\\\">\\n          <mat-chip-listbox #savedFiltersList>\\n            @for (filter of savedFilters; track i; let i = $index) {\\n              <mat-chip large removable (click)=\\\"selectFilter(filter)\\\" [highlighted]=\\\"filter.isSelected\\\" (removed)=\\\"removeFilter(filter)\\\">\\n                {{ filter.filterName }}\\n                <mat-icon matChipRemove>cancel</mat-icon>\\n              </mat-chip>\\n            }\\n          </mat-chip-listbox>\\n        </div>\\n        @if (savedFilters.length) {\\n          <button mat-button color=\\\"accent\\\" (click)=\\\"updateFilter()\\\">Update</button>\\n        }\\n        @if (savedFilters.length) {\\n          <button mat-button color=\\\"accent\\\" (click)=\\\"clearSelection()\\\">Clear</button>\\n        }\\n        <mat-divider vertical=\\\"true\\\"></mat-divider>\\n        <button mat-stroked-button color=\\\"accent\\\" (click)=\\\"openDialog()\\\">Save as</button>\\n        <button mat-stroked-button color=\\\"accent\\\" (click)=\\\"filterGroupPanel.toggle(); close()\\\">Cancel</button>\\n        <button mat-flat-button color=\\\"accent\\\" (click)=\\\"applyFilters()\\\">Apply</button>\\n      </div>\\n    }\\n  </ng-template>\\n</mat-expansion-panel>\\n\", styles: [\".mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:800 1rem/1.375rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:800 .8125rem/1.125rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:500 1rem/1.5rem Roboto;letter-spacing:.15px;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:300 1rem/1.5rem Roboto;letter-spacing:.5px;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:300 .72625rem/1.3125rem Roboto;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:300 .58625rem/1.3125rem Roboto;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 .875rem/1.3125rem Roboto;letter-spacing:.1px}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:300 .875rem/1.3125rem Roboto;letter-spacing:.25px}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 .75rem/1.125rem Roboto;letter-spacing:.4px}.mat-headline-1,.mat-typography .mat-headline-1{font:800 3.1875rem/4.4375rem Spartan;letter-spacing:0;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:800 2.5625rem/3.5625rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:800 1.75rem/2.4375rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:800 1.3125rem/1.8125rem Spartan;letter-spacing:0;margin:0 0 64px}.flex{display:flex;box-sizing:border-box}.inline-flex{display:inline-flex;box-sizing:border-box}.flex-row{display:flex;flex-direction:row;box-sizing:border-box}.flex-col{display:flex;flex-direction:column;box-sizing:border-box}.flex-wrap{flex-wrap:wrap}@media screen and (max-width: 599px){.flex-col-xs{flex-direction:column}}@media screen and (max-width: 959px){.flex-col-lt-md{flex-direction:column}}@media screen and (max-width: 1279px){.flex-col-lt-lg{flex-direction:column}}@media screen and (max-width: 599px){.flex-row-xs{flex-direction:row}}@media screen and (max-width: 959px){.flex-row-lt-md{flex-direction:row}}@media screen and (max-width: 1279px){.flex-row-lt-lg{flex-direction:row}}.flex-row-gt-xs{display:flex}@media screen and (min-width: 600px){.flex-row-gt-xs{flex-direction:row}}.flex-initial{flex:initial}.flex-auto{flex:auto}.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-15{flex:0 0 15%}.flex-20{flex:0 0 20%}.flex-25{flex:0 0 25%}.flex-30{flex:0 0 30%}.flex-35{flex:0 0 35%}.flex-40{flex:0 0 40%}.flex-45{flex:0 0 45%}.flex-50{flex:0 0 50%}.flex-55{flex:0 0 55%}.flex-60{flex:0 0 60%}.flex-80{flex:0 0 80%}.flex-none{flex:none}.flex-nogrow{flex:0 1 auto}.flex-noshrink{flex:1 0 auto}.flex-grow{flex:1 1 100%}.flex-grow25{flex:0 1 25%}.flex-grow50{flex:0 1 50%}.flex-grow60{flex:0 1 60%}.flex-grow75{flex:0 1 75%}.gap-10>*{margin-right:10px}.gap-10>*:last-child{margin-right:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.align-baseline{align-items:baseline}.center-center{justify-content:center;align-items:center}.item-start{align-self:flex-start}.item-end{align-self:flex-end}.item-center{align-self:center}.item-stretch{align-self:stretch}.item-baseline{align-self:baseline}.center{display:block;margin-left:auto;margin-right:auto}.fill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}.fill-remaining-space{flex:1 1 auto}.center-text{text-align:center}.hide{display:none!important}@media screen and (max-width: 599px){.hide-xs{display:none!important}}@media screen and (min-width: 600px){.hide-gt-xs{display:none!important}}@media screen and (max-width: 959px){.hide-lt-md{display:none!important}}@media screen and (min-width: 960px){.hide-gt-sm{display:none!important}}@media screen and (min-width: 1280px){.hide-gt-md{display:none!important}}@media screen and (max-width: 1279px){.hide-lt-lg{display:none!important}}@media screen and (max-width: 599px){.hide-lt-sm{display:none!important}}.uxg-expansion-filter .filter-value{padding:0 8px}.uxg-expansion-filter .mat-expansion-panel-header{border-width:1px;border-style:solid;cursor:default!important;padding-right:0}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle{margin-right:0}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header{width:100%;display:flex;align-items:center;cursor:default}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters{overflow:hidden;display:flex}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters .uxg-group-filter{flex:0 0 auto;margin-right:24px}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters .filter-divider{margin-right:24px}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters .mat-standard-chip{cursor:pointer}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .expand-button .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.expansion-panel-header{display:flex;padding:8px 24px;box-sizing:border-box;justify-content:space-between;border-top-left-radius:4px;border-top-right-radius:4px}.expansion-panel-header .uxg-h6{align-self:center;margin-bottom:0}.expansion-panel-content{padding:24px}.expansion-panel-content .filter-tags-container .mat-form-field-appearance-outline .mdc-floating-label.mat-mdc-floating-label:not(.mdc-floating-label--float-above){left:44px}.expansion-panel-actions{padding:16px;align-items:center}.expansion-panel-actions .saved-filters-container{flex:1}.expansion-panel-actions .saved-filters-container .mat-chip{cursor:pointer}.expansion-panel-actions .mat-button-base{margin-left:16px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatExpansionModule }, { kind: \"component\", type: i2.MatExpansionPanel, selector: \"mat-expansion-panel\", inputs: [\"hideToggle\", \"togglePosition\"], outputs: [\"afterExpand\", \"afterCollapse\"], exportAs: [\"matExpansionPanel\"] }, { kind: \"component\", type: i2.MatExpansionPanelHeader, selector: \"mat-expansion-panel-header\", inputs: [\"expandedHeight\", \"collapsedHeight\", \"tabIndex\"] }, { kind: \"directive\", type: i2.MatExpansionPanelContent, selector: \"ng-template[matExpansionPanelContent]\" }, { kind: \"directive\", type: ClickOutsideDirective, selector: \"[uxgClickOutside]\", outputs: [\"uxgClickOutside\"] }, { kind: \"ngmodule\", type: MatBadgeModule }, { kind: \"directive\", type: i3.MatBadge, selector: \"[matBadge]\", inputs: [\"matBadgeColor\", \"matBadgeOverlap\", \"matBadgeDisabled\", \"matBadgePosition\", \"matBadge\", \"matBadgeDescription\", \"matBadgeSize\", \"matBadgeHidden\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i4.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.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: \"component\", type: i5.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i6.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatChipsModule }, { kind: \"component\", type: i7.MatChip, selector: \"mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]\", inputs: [\"role\", \"id\", \"aria-label\", \"aria-description\", \"value\", \"color\", \"removable\", \"highlighted\", \"disableRipple\", \"disabled\"], outputs: [\"removed\", \"destroyed\"], exportAs: [\"matChip\"] }, { kind: \"component\", type: i7.MatChipListbox, selector: \"mat-chip-listbox\", inputs: [\"multiple\", \"aria-orientation\", \"selectable\", \"compareWith\", \"required\", \"hideSingleSelectionIndicator\", \"value\"], outputs: [\"change\"] }, { kind: \"directive\", type: i7.MatChipRemove, selector: \"[matChipRemove]\" }, { kind: \"ngmodule\", type: MatDialogModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: FilterGroupComponent, decorators: [{\n            type: Component,\n            args: [{ selector: 'uxg-filter-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n                        MatExpansionModule,\n                        ClickOutsideDirective,\n                        MatBadgeModule,\n                        MatDividerModule,\n                        MatButtonModule,\n                        MatIconModule,\n                        MatChipsModule,\n                        MatDialogModule\n                    ], template: \"<mat-expansion-panel\\n  #filterGroupPanel\\n  class=\\\"uxg-expansion-filter uxg-filter-group\\\"\\n  hideToggle=\\\"true\\\"\\n  [expanded]=\\\"expanded\\\"\\n  [class.active]=\\\"isActive\\\"\\n  (uxgClickOutside)=\\\"handleOutsideClick()\\\"\\n>\\n  <mat-expansion-panel-header\\n    [@.disabled]=\\\"true\\\"\\n    [expandedHeight]=\\\"headerHeight\\\"\\n    [collapsedHeight]=\\\"headerHeight\\\"\\n    (click)=\\\"$event.stopPropagation(); filterGroupPanel.expanded ? open() : close()\\\"\\n  >\\n    <div class=\\\"uxg-filter-group-header\\\">\\n      <div class=\\\"selectedFilters\\\">\\n        @for (filter of selectedData; track i; let i = $index) {\\n          @if (filter.selectedData.length && !filter.selectedData[0].value) {\\n            <div [matBadge]=\\\"filter.selectedData.length\\\" matBadgeSize=\\\"small\\\" class=\\\"uxg-group-filter uxg-side-badge\\\">\\n              {{ filter.title }}\\n            </div>\\n          }\\n          @if (!filter.selectedData.length) {\\n            <div matBadge=\\\"All\\\" matBadgeSize=\\\"small\\\" class=\\\"uxg-group-filter uxg-side-badge\\\">\\n              {{ filter.title }}\\n            </div>\\n          }\\n          @if (filter.selectedData.length && filter.selectedData[0].value) {\\n            <div class=\\\"uxg-group-filter uxg-side-badge\\\">\\n              {{ filter.title }}<span class=\\\"filter-value\\\">{{ filter.selectedData[0].label }}</span>\\n            </div>\\n          }\\n          @if (checkDivider(i)) {\\n            <mat-divider class=\\\"filter-divider\\\" vertical></mat-divider>\\n          }\\n        }\\n      </div>\\n      <span class=\\\"fill-remaining-space\\\"></span>\\n      <div class=\\\"expand-button\\\">\\n        <button mat-icon-button [color]=\\\"filterGroupPanel.expanded ? 'primary' : 'neutral'\\\">\\n          <mat-icon>{{ filterGroupPanel.expanded ? 'arrow_drop_up' : 'arrow_drop_down' }}</mat-icon>\\n        </button>\\n      </div>\\n    </div>\\n  </mat-expansion-panel-header>\\n\\n  <ng-template matExpansionPanelContent>\\n    <div class=\\\"expansion-panel-header\\\">\\n      <h6 class=\\\"uxg-h6\\\">Filter by</h6>\\n      <button mat-button color=\\\"accent\\\" dense (click)=\\\"clearSelection()\\\">\\n        <mat-icon>refresh</mat-icon>\\n        Reset\\n      </button>\\n    </div>\\n    <div class=\\\"flex-row flex-wrap justify-start expansion-panel-content\\\">\\n      <ng-content></ng-content>\\n    </div>\\n\\n    @if (showActions) {\\n      <mat-divider></mat-divider>\\n      <div class=\\\"flex-row flex-wrap expansion-panel-actions\\\">\\n        <div class=\\\"saved-filters-container\\\">\\n          <mat-chip-listbox #savedFiltersList>\\n            @for (filter of savedFilters; track i; let i = $index) {\\n              <mat-chip large removable (click)=\\\"selectFilter(filter)\\\" [highlighted]=\\\"filter.isSelected\\\" (removed)=\\\"removeFilter(filter)\\\">\\n                {{ filter.filterName }}\\n                <mat-icon matChipRemove>cancel</mat-icon>\\n              </mat-chip>\\n            }\\n          </mat-chip-listbox>\\n        </div>\\n        @if (savedFilters.length) {\\n          <button mat-button color=\\\"accent\\\" (click)=\\\"updateFilter()\\\">Update</button>\\n        }\\n        @if (savedFilters.length) {\\n          <button mat-button color=\\\"accent\\\" (click)=\\\"clearSelection()\\\">Clear</button>\\n        }\\n        <mat-divider vertical=\\\"true\\\"></mat-divider>\\n        <button mat-stroked-button color=\\\"accent\\\" (click)=\\\"openDialog()\\\">Save as</button>\\n        <button mat-stroked-button color=\\\"accent\\\" (click)=\\\"filterGroupPanel.toggle(); close()\\\">Cancel</button>\\n        <button mat-flat-button color=\\\"accent\\\" (click)=\\\"applyFilters()\\\">Apply</button>\\n      </div>\\n    }\\n  </ng-template>\\n</mat-expansion-panel>\\n\", styles: [\".mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:800 1rem/1.375rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:800 .8125rem/1.125rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:500 1rem/1.5rem Roboto;letter-spacing:.15px;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:300 1rem/1.5rem Roboto;letter-spacing:.5px;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:300 .72625rem/1.3125rem Roboto;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:300 .58625rem/1.3125rem Roboto;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 .875rem/1.3125rem Roboto;letter-spacing:.1px}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:300 .875rem/1.3125rem Roboto;letter-spacing:.25px}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 .75rem/1.125rem Roboto;letter-spacing:.4px}.mat-headline-1,.mat-typography .mat-headline-1{font:800 3.1875rem/4.4375rem Spartan;letter-spacing:0;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:800 2.5625rem/3.5625rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:800 1.75rem/2.4375rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:800 1.3125rem/1.8125rem Spartan;letter-spacing:0;margin:0 0 64px}.flex{display:flex;box-sizing:border-box}.inline-flex{display:inline-flex;box-sizing:border-box}.flex-row{display:flex;flex-direction:row;box-sizing:border-box}.flex-col{display:flex;flex-direction:column;box-sizing:border-box}.flex-wrap{flex-wrap:wrap}@media screen and (max-width: 599px){.flex-col-xs{flex-direction:column}}@media screen and (max-width: 959px){.flex-col-lt-md{flex-direction:column}}@media screen and (max-width: 1279px){.flex-col-lt-lg{flex-direction:column}}@media screen and (max-width: 599px){.flex-row-xs{flex-direction:row}}@media screen and (max-width: 959px){.flex-row-lt-md{flex-direction:row}}@media screen and (max-width: 1279px){.flex-row-lt-lg{flex-direction:row}}.flex-row-gt-xs{display:flex}@media screen and (min-width: 600px){.flex-row-gt-xs{flex-direction:row}}.flex-initial{flex:initial}.flex-auto{flex:auto}.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-15{flex:0 0 15%}.flex-20{flex:0 0 20%}.flex-25{flex:0 0 25%}.flex-30{flex:0 0 30%}.flex-35{flex:0 0 35%}.flex-40{flex:0 0 40%}.flex-45{flex:0 0 45%}.flex-50{flex:0 0 50%}.flex-55{flex:0 0 55%}.flex-60{flex:0 0 60%}.flex-80{flex:0 0 80%}.flex-none{flex:none}.flex-nogrow{flex:0 1 auto}.flex-noshrink{flex:1 0 auto}.flex-grow{flex:1 1 100%}.flex-grow25{flex:0 1 25%}.flex-grow50{flex:0 1 50%}.flex-grow60{flex:0 1 60%}.flex-grow75{flex:0 1 75%}.gap-10>*{margin-right:10px}.gap-10>*:last-child{margin-right:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.align-baseline{align-items:baseline}.center-center{justify-content:center;align-items:center}.item-start{align-self:flex-start}.item-end{align-self:flex-end}.item-center{align-self:center}.item-stretch{align-self:stretch}.item-baseline{align-self:baseline}.center{display:block;margin-left:auto;margin-right:auto}.fill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}.fill-remaining-space{flex:1 1 auto}.center-text{text-align:center}.hide{display:none!important}@media screen and (max-width: 599px){.hide-xs{display:none!important}}@media screen and (min-width: 600px){.hide-gt-xs{display:none!important}}@media screen and (max-width: 959px){.hide-lt-md{display:none!important}}@media screen and (min-width: 960px){.hide-gt-sm{display:none!important}}@media screen and (min-width: 1280px){.hide-gt-md{display:none!important}}@media screen and (max-width: 1279px){.hide-lt-lg{display:none!important}}@media screen and (max-width: 599px){.hide-lt-sm{display:none!important}}.uxg-expansion-filter .filter-value{padding:0 8px}.uxg-expansion-filter .mat-expansion-panel-header{border-width:1px;border-style:solid;cursor:default!important;padding-right:0}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle{margin-right:0}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header{width:100%;display:flex;align-items:center;cursor:default}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters{overflow:hidden;display:flex}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters .uxg-group-filter{flex:0 0 auto;margin-right:24px}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters .filter-divider{margin-right:24px}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .selectedFilters .mat-standard-chip{cursor:pointer}.uxg-expansion-filter .mat-expansion-panel-header .mat-content.mat-content-hide-toggle .uxg-filter-group-header .expand-button .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.expansion-panel-header{display:flex;padding:8px 24px;box-sizing:border-box;justify-content:space-between;border-top-left-radius:4px;border-top-right-radius:4px}.expansion-panel-header .uxg-h6{align-self:center;margin-bottom:0}.expansion-panel-content{padding:24px}.expansion-panel-content .filter-tags-container .mat-form-field-appearance-outline .mdc-floating-label.mat-mdc-floating-label:not(.mdc-floating-label--float-above){left:44px}.expansion-panel-actions{padding:16px;align-items:center}.expansion-panel-actions .saved-filters-container{flex:1}.expansion-panel-actions .saved-filters-container .mat-chip{cursor:pointer}.expansion-panel-actions .mat-button-base{margin-left:16px}\\n\"] }]\n        }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { changes: [{\n                type: Output\n            }], filterInstances: [{\n                type: ContentChildren,\n                args: [UxgFilter, { descendants: true }]\n            }], expansionPanel: [{\n                type: ViewChild,\n                args: [MatExpansionPanel]\n            }], expanded: [{\n                type: Input\n            }], divideAtIndex: [{\n                type: Input\n            }], showActions: [{\n                type: Input\n            }], autoApply: [{\n                type: Input\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL2ZpbHRlci9maWx0ZXItZ3JvdXAvc3JjL2ZpbHRlci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLWdyb3VwL3NyYy9maWx0ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFhLGVBQWUsRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFDckcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7O0FBOEIvQyxNQUFNLE9BQU8sb0JB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QUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1Asa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxlQUFlO3FCQUNoQjs4R0FHUyxPQUFPO3NCQUFoQixNQUFNO2dCQUM0QyxlQUFlO3NCQUFqRSxlQUFlO3VCQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBQ25CLGNBQWM7c0JBQTNDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUVuQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSwgTWF0RXhwYW5zaW9uUGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnQGZpbmFzdHJhL2FuZ3VsYXItY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsdGVyR3JvdXBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci1ncm91cC1kaWFsb2cvZmlsdGVyLWdyb3VwLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXhnRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFVYR0ZpbHRlckNoYW5nZXMgfSBmcm9tICcuL2ZpbHRlci5tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckdyb3VwQ29tcG9uZW50RGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNlbGVjdGVkRGF0YTogYW55W107XG59XG5leHBvcnQgaW50ZXJmYWNlIFNhdmVkRmlsdGVyIHtcbiAgZmlsdGVyTmFtZTogc3RyaW5nO1xuICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICBmaWx0ZXJTdGF0ZTogRmlsdGVyR3JvdXBDb21wb25lbnREYXRhW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3V4Zy1maWx0ZXItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpIGNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPFVYR0ZpbHRlckNoYW5nZXM8YW55Pj4oKTtcbiAgQENvbnRlbnRDaGlsZHJlbihVeGdGaWx0ZXIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgZmlsdGVySW5zdGFuY2VzITogUXVlcnlMaXN0PFV4Z0ZpbHRlcj47XG4gIEBWaWV3Q2hpbGQoTWF0RXhwYW5zaW9uUGFuZWwpIGV4cGFuc2lvblBhbmVsITogTWF0RXhwYW5zaW9uUGFuZWw7XG5cbiAgQElucHV0KCkgZXhwYW5kZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGl2aWRlQXRJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgc2hvd0FjdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b0FwcGx5ID0gZmFsc2U7XG5cbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RmlsdGVyR3JvdXBEaWFsb2dDb21wb25lbnQsIGFueT4gfCB1bmRlZmluZWQ7XG4gIHNlbGVjdGVkRGF0YTogRmlsdGVyR3JvdXBDb21wb25lbnREYXRhW10gPSBbXTtcbiAgc2F2ZWRGaWx0ZXJzOiBTYXZlZEZpbHRlcltdID0gW107XG4gIGV4aXN0aW5nRmlsdGVyTmFtZXM6IHN0cmluZ1tdID0gW107XG4gIGluaXRpYWxTdGF0ZTogRmlsdGVyR3JvdXBDb21wb25lbnREYXRhW10gPSBbXTtcbiAgYWN0aXZlRmlsdGVyOiBGaWx0ZXJHcm91cENvbXBvbmVudERhdGFbXSA9IFtdO1xuICBpc0FjdGl2ZSA9IGZhbHNlO1xuICBoZWFkZXJIZWlnaHQgPSAnNDBweCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5maWx0ZXJJbnN0YW5jZXMuZm9yRWFjaCgoZmlsdGVySW5zdGFuY2UpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlVGl0bGUgPSBmaWx0ZXJJbnN0YW5jZS5pbnN0YW5jZTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkOiBhbnkgPSB7fTtcbiAgICAgIHNlbGVjdGVkW2luc3RhbmNlVGl0bGVdID0gZmlsdGVySW5zdGFuY2UuY29tcG9uZW50LmdldFN0YXRlKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YS5wdXNoKHsgdGl0bGU6IGluc3RhbmNlVGl0bGUsIHNlbGVjdGVkRGF0YTogWy4uLnNlbGVjdGVkW2luc3RhbmNlVGl0bGVdXSB9KTtcbiAgICAgIHRoaXMuaW5pdGlhbFN0YXRlLnB1c2goeyB0aXRsZTogaW5zdGFuY2VUaXRsZSwgc2VsZWN0ZWREYXRhOiBbLi4uc2VsZWN0ZWRbaW5zdGFuY2VUaXRsZV1dIH0pO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgZmlsdGVySW5zdGFuY2UuY29tcG9uZW50LmNoYW5nZXMuc3Vic2NyaWJlKChjaGFuZ2U6IFVYR0ZpbHRlckNoYW5nZXM8YW55PikgPT4ge1xuICAgICAgICAgIGNoYW5nZS5pbnN0YW5jZSA9IGluc3RhbmNlVGl0bGU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoZmlsdGVyLnRpdGxlID09PSBjaGFuZ2UuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgZmlsdGVyLnNlbGVjdGVkRGF0YSA9IGZpbHRlckluc3RhbmNlLmNvbXBvbmVudC5nZXRTdGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2hhbmdlcy5lbWl0KGNoYW5nZSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5hdXRvQXBwbHkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hcHBseUZpbHRlcnMoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIG9wZW5EaWFsb2coKSB7XG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICczMDBweCc7XG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XG4gICAgICBleGlzdGluZ05hbWVzOiB0aGlzLmV4aXN0aW5nRmlsdGVyTmFtZXNcbiAgICB9O1xuXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEZpbHRlckdyb3VwRGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRGaWx0ZXJTdGF0ZXMoKTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgZmlsdGVyLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZXhpc3RpbmdGaWx0ZXJOYW1lcy5wdXNoKHJlc3VsdC50cmltKCkpO1xuICAgICAgICB0aGlzLnNhdmVkRmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBmaWx0ZXJOYW1lOiByZXN1bHQudHJpbSgpLFxuICAgICAgICAgIGZpbHRlclN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICBpc1NlbGVjdGVkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5kaWFsb2dSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0RmlsdGVyKGZpbHRlcjogU2F2ZWRGaWx0ZXIpIHtcbiAgICB0aGlzLnNhdmVkRmlsdGVycy5mb3JFYWNoKChzYXZlZEZpbHRlcikgPT4ge1xuICAgICAgaWYgKHNhdmVkRmlsdGVyLmZpbHRlck5hbWUgPT09IGZpbHRlci5maWx0ZXJOYW1lKSB7XG4gICAgICAgIHNhdmVkRmlsdGVyLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2F2ZWRGaWx0ZXIuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2V0U3RhdGUoZmlsdGVyLmZpbHRlclN0YXRlKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVycygpIHtcbiAgICBsZXQgY2hhbmdlOiBVWEdGaWx0ZXJDaGFuZ2VzPGFueT47XG4gICAgY29uc3QgYWN0aXZlRmlsdGVyOiBGaWx0ZXJHcm91cENvbXBvbmVudERhdGFbXSA9IFtdO1xuICAgIHRoaXMuZmlsdGVySW5zdGFuY2VzLmZvckVhY2goKGZpbHRlckluc3RhbmNlKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gZmlsdGVySW5zdGFuY2UuY29tcG9uZW50LmdldFN0YXRlKCk7XG4gICAgICBhY3RpdmVGaWx0ZXIucHVzaCh7IHRpdGxlOiBmaWx0ZXJJbnN0YW5jZS5pbnN0YW5jZSwgc2VsZWN0ZWREYXRhOiBkYXRhIH0pO1xuICAgICAgY2hhbmdlID0ge1xuICAgICAgICBpbnN0YW5jZTogZmlsdGVySW5zdGFuY2UuaW5zdGFuY2UsXG4gICAgICAgIGFkZGVkOiBkYXRhLFxuICAgICAgICByZW1vdmVkOiBbXVxuICAgICAgfTtcbiAgICAgIHRoaXMuY2hhbmdlcy5lbWl0KGNoYW5nZSk7XG4gICAgfSk7XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBhY3RpdmVGaWx0ZXI7XG5cbiAgICB0aGlzLmlzQWN0aXZlID0gdGhpcy5jaGVja0lzQWN0aXZlKCk7XG4gIH1cblxuICB1cGRhdGVGaWx0ZXIoKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldEZpbHRlclN0YXRlcygpO1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgaWYgKGZpbHRlci5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGZpbHRlci5maWx0ZXJTdGF0ZSA9IHN0YXRlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlRmlsdGVyKGZpbHRlcjogYW55KSB7XG4gICAgdGhpcy5zYXZlZEZpbHRlcnMgPSB0aGlzLnNhdmVkRmlsdGVycy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IGZpbHRlcik7XG4gICAgdGhpcy5leGlzdGluZ0ZpbHRlck5hbWVzID0gdGhpcy5leGlzdGluZ0ZpbHRlck5hbWVzLmZpbHRlcigoaXRlbXMpID0+IGl0ZW1zICE9PSBmaWx0ZXIuZmlsdGVyTmFtZSk7XG4gIH1cblxuICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICB0aGlzLmZpbHRlckluc3RhbmNlcy5mb3JFYWNoKChmaWx0ZXJJbnN0YW5jZSkgPT4ge1xuICAgICAgZmlsdGVySW5zdGFuY2UuY29tcG9uZW50LmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkRGF0YS5mb3JFYWNoKChpbnN0YW5jZSkgPT4ge1xuICAgICAgaW5zdGFuY2Uuc2VsZWN0ZWREYXRhLmxlbmd0aCA9IDA7XG4gICAgfSk7XG4gIH1cblxuICByZXNldFNlbGVjdGlvbigpIHtcbiAgICB0aGlzLnNldFN0YXRlKHRoaXMuaW5pdGlhbFN0YXRlKTtcbiAgfVxuXG4gIGdldEZpbHRlclN0YXRlcygpIHtcbiAgICBjb25zdCBncm91cFN0YXRlOiBhbnkgPSBbXTtcbiAgICB0aGlzLmZpbHRlckluc3RhbmNlcy5mb3JFYWNoKChpbnN0YW5jZSkgPT4ge1xuICAgICAgaWYgKGluc3RhbmNlLmNvbXBvbmVudC5nZXRTdGF0ZSkge1xuICAgICAgICBncm91cFN0YXRlLnB1c2goe1xuICAgICAgICAgIHRpdGxlOiBpbnN0YW5jZS5pbnN0YW5jZSxcbiAgICAgICAgICBzZWxlY3RlZERhdGE6IGluc3RhbmNlLmNvbXBvbmVudC5nZXRTdGF0ZSgpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBncm91cFN0YXRlO1xuICB9XG5cbiAgZ2V0U3RhdGUoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnNlbGVjdGVkRGF0YV07XG4gIH1cblxuICBzZXRTdGF0ZShkYXRhOiBGaWx0ZXJHcm91cENvbXBvbmVudERhdGFbXSkge1xuICAgIGlmIChkYXRhLmxlbmd0aCkge1xuICAgICAgdGhpcy5maWx0ZXJJbnN0YW5jZXMuZm9yRWFjaCgoZmlsdGVySW5zdGFuY2UpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGZpbHRlckluc3RhbmNlLmluc3RhbmNlID09PSBkYXRhW2ldLnRpdGxlICYmIGZpbHRlckluc3RhbmNlLmNvbXBvbmVudC5zZXRTdGF0ZSkge1xuICAgICAgICAgICAgZmlsdGVySW5zdGFuY2UuY29tcG9uZW50LnNldFN0YXRlKGRhdGFbaV0uc2VsZWN0ZWREYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBkYXRhLmZvckVhY2goKG9iaikgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YS5mb3JFYWNoKChvYmoyKSA9PiB7XG4gICAgICAgICAgaWYgKG9iai50aXRsZSA9PT0gb2JqMi50aXRsZSkge1xuICAgICAgICAgICAgb2JqMi5zZWxlY3RlZERhdGEubGVuZ3RoID0gMDtcbiAgICAgICAgICAgIG9iajIuc2VsZWN0ZWREYXRhLnB1c2goLi4ub2JqLnNlbGVjdGVkRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh0aGlzLmFjdGl2ZUZpbHRlcik7XG4gICAgICBpZiAodGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgaWYgKHRoaXMuc2F2ZWRGaWx0ZXJzW2ldLmlzU2VsZWN0ZWQgPT09IHRydWUgJiYgIXRoaXMuY2hlY2tMaXN0RXF1YWxpdHkodGhpcy5zYXZlZEZpbHRlcnNbaV0uZmlsdGVyU3RhdGUsIHRoaXMuYWN0aXZlRmlsdGVyKSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnNbaV0uaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHRoaXMuZ2V0U2VsZWN0ZWRGaWx0ZXJTdGF0ZSgpKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVGaWx0ZXIubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHRoaXMuYWN0aXZlRmlsdGVyKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2F2ZWRGaWx0ZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh0aGlzLmdldFNlbGVjdGVkRmlsdGVyU3RhdGUoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZEZpbHRlclN0YXRlKCk6IEZpbHRlckdyb3VwQ29tcG9uZW50RGF0YVtdIHtcbiAgICBjb25zdCBzdGF0ZUFycmF5OiBGaWx0ZXJHcm91cENvbXBvbmVudERhdGFbXSA9IFtdO1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgaWYgKGZpbHRlci5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGZpbHRlci5maWx0ZXJTdGF0ZSkge1xuICAgICAgICAgIGlmIChmaWx0ZXIuZmlsdGVyU3RhdGUuaGFzT3duUHJvcGVydHkoa2V5KSkgc3RhdGVBcnJheS5wdXNoKGZpbHRlci5maWx0ZXJTdGF0ZVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzdGF0ZUFycmF5O1xuICB9XG5cbiAgY2hlY2tJc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGEuc29tZSgoZGF0YSkgPT4gZGF0YS5zZWxlY3RlZERhdGEubGVuZ3RoKSAmJiB0aGlzLmFjdGl2ZUZpbHRlci5zb21lKChkYXRhKSA9PiBkYXRhLnNlbGVjdGVkRGF0YS5sZW5ndGgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGVja0xpc3RFcXVhbGl0eSh0aGlzLmFjdGl2ZUZpbHRlciwgdGhpcy5zZWxlY3RlZERhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaGVja0xpc3RFcXVhbGl0eShsaXN0QTogRmlsdGVyR3JvdXBDb21wb25lbnREYXRhW10sIGxpc3RCOiBGaWx0ZXJHcm91cENvbXBvbmVudERhdGFbXSk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChsaXN0QVtpXS50aXRsZSA9PT0gbGlzdEJbaV0udGl0bGUgJiYgbGlzdEFbaV0uc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gbGlzdEJbaV0uc2VsZWN0ZWREYXRhLmxlbmd0aCkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3RBW2ldLnNlbGVjdGVkRGF0YS5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGlmIChsaXN0QltpXS5zZWxlY3RlZERhdGEuaW5kZXhPZihsaXN0QVtpXS5zZWxlY3RlZERhdGFbal0pID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNoZWNrRGl2aWRlcihpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZGl2aWRlQXRJbmRleC5pbmRleE9mKGluZGV4KSA+PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU91dHNpZGVDbGljaygpIHtcbiAgICBpZiAodGhpcy5leHBhbnNpb25QYW5lbC5leHBhbmRlZCAmJiAhdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIHRoaXMuZXhwYW5zaW9uUGFuZWwuY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxtYXQtZXhwYW5zaW9uLXBhbmVsXG4gICNmaWx0ZXJHcm91cFBhbmVsXG4gIGNsYXNzPVwidXhnLWV4cGFuc2lvbi1maWx0ZXIgdXhnLWZpbHRlci1ncm91cFwiXG4gIGhpZGVUb2dnbGU9XCJ0cnVlXCJcbiAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgW2NsYXNzLmFjdGl2ZV09XCJpc0FjdGl2ZVwiXG4gICh1eGdDbGlja091dHNpZGUpPVwiaGFuZGxlT3V0c2lkZUNsaWNrKClcIlxuPlxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJcbiAgICBbQC5kaXNhYmxlZF09XCJ0cnVlXCJcbiAgICBbZXhwYW5kZWRIZWlnaHRdPVwiaGVhZGVySGVpZ2h0XCJcbiAgICBbY29sbGFwc2VkSGVpZ2h0XT1cImhlYWRlckhlaWdodFwiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZmlsdGVyR3JvdXBQYW5lbC5leHBhbmRlZCA/IG9wZW4oKSA6IGNsb3NlKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInV4Zy1maWx0ZXItZ3JvdXAtaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRGaWx0ZXJzXCI+XG4gICAgICAgIEBmb3IgKGZpbHRlciBvZiBzZWxlY3RlZERhdGE7IHRyYWNrIGk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgQGlmIChmaWx0ZXIuc2VsZWN0ZWREYXRhLmxlbmd0aCAmJiAhZmlsdGVyLnNlbGVjdGVkRGF0YVswXS52YWx1ZSkge1xuICAgICAgICAgICAgPGRpdiBbbWF0QmFkZ2VdPVwiZmlsdGVyLnNlbGVjdGVkRGF0YS5sZW5ndGhcIiBtYXRCYWRnZVNpemU9XCJzbWFsbFwiIGNsYXNzPVwidXhnLWdyb3VwLWZpbHRlciB1eGctc2lkZS1iYWRnZVwiPlxuICAgICAgICAgICAgICB7eyBmaWx0ZXIudGl0bGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKCFmaWx0ZXIuc2VsZWN0ZWREYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBtYXRCYWRnZT1cIkFsbFwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJ1eGctZ3JvdXAtZmlsdGVyIHV4Zy1zaWRlLWJhZGdlXCI+XG4gICAgICAgICAgICAgIHt7IGZpbHRlci50aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoZmlsdGVyLnNlbGVjdGVkRGF0YS5sZW5ndGggJiYgZmlsdGVyLnNlbGVjdGVkRGF0YVswXS52YWx1ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4Zy1ncm91cC1maWx0ZXIgdXhnLXNpZGUtYmFkZ2VcIj5cbiAgICAgICAgICAgICAge3sgZmlsdGVyLnRpdGxlIH19PHNwYW4gY2xhc3M9XCJmaWx0ZXItdmFsdWVcIj57eyBmaWx0ZXIuc2VsZWN0ZWREYXRhWzBdLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY2hlY2tEaXZpZGVyKGkpKSB7XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJmaWx0ZXItZGl2aWRlclwiIHZlcnRpY2FsPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZmlsbC1yZW1haW5pbmctc3BhY2VcIj48L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kLWJ1dHRvblwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY29sb3JdPVwiZmlsdGVyR3JvdXBQYW5lbC5leHBhbmRlZCA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ1wiPlxuICAgICAgICAgIDxtYXQtaWNvbj57eyBmaWx0ZXJHcm91cFBhbmVsLmV4cGFuZGVkID8gJ2Fycm93X2Ryb3BfdXAnIDogJ2Fycm93X2Ryb3BfZG93bicgfX08L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuXG4gIDxuZy10ZW1wbGF0ZSBtYXRFeHBhbnNpb25QYW5lbENvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImV4cGFuc2lvbi1wYW5lbC1oZWFkZXJcIj5cbiAgICAgIDxoNiBjbGFzcz1cInV4Zy1oNlwiPkZpbHRlciBieTwvaDY+XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBkZW5zZSAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oKVwiPlxuICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgIFJlc2V0XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3cgZmxleC13cmFwIGp1c3RpZnktc3RhcnQgZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoc2hvd0FjdGlvbnMpIHtcbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93IGZsZXgtd3JhcCBleHBhbnNpb24tcGFuZWwtYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2F2ZWQtZmlsdGVycy1jb250YWluZXJcIj5cbiAgICAgICAgICA8bWF0LWNoaXAtbGlzdGJveCAjc2F2ZWRGaWx0ZXJzTGlzdD5cbiAgICAgICAgICAgIEBmb3IgKGZpbHRlciBvZiBzYXZlZEZpbHRlcnM7IHRyYWNrIGk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxtYXQtY2hpcCBsYXJnZSByZW1vdmFibGUgKGNsaWNrKT1cInNlbGVjdEZpbHRlcihmaWx0ZXIpXCIgW2hpZ2hsaWdodGVkXT1cImZpbHRlci5pc1NlbGVjdGVkXCIgKHJlbW92ZWQpPVwicmVtb3ZlRmlsdGVyKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICB7eyBmaWx0ZXIuZmlsdGVyTmFtZSB9fVxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvbWF0LWNoaXA+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChzYXZlZEZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInVwZGF0ZUZpbHRlcigpXCI+VXBkYXRlPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzYXZlZEZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIj5DbGVhcjwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIDxtYXQtZGl2aWRlciB2ZXJ0aWNhbD1cInRydWVcIj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJvcGVuRGlhbG9nKClcIj5TYXZlIGFzPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImZpbHRlckdyb3VwUGFuZWwudG9nZ2xlKCk7IGNsb3NlKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXJzKClcIj5BcHBseTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYXN0cmEtYW5ndWxhci1jb21wb25lbnRzLWZpbHRlci1maWx0ZXItZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLWdyb3VwL2ZpbmFzdHJhLWFuZ3VsYXItY29tcG9uZW50cy1maWx0ZXItZmlsdGVyLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i3","i4"],"mappings":"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"}