@tilde-nlp/ngx-common 4.0.3 → 4.0.5
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/esm2022/lib/filter-bar/filter-bar.component.mjs +2 -2
- package/esm2022/lib/multi-functional-table/multi-functional-table.component.mjs +2 -2
- package/fesm2022/tilde-nlp-ngx-common.mjs +4 -4
- package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/components/dialogs.scss +15 -0
|
@@ -125,11 +125,11 @@ export class FilterBarComponent {
|
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FilterBarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
128
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: FilterBarComponent, selector: "tld-filter-bar", inputs: { settings: "settings", filterRowVisible: "filterRowVisible" }, outputs: { filterBarChange: "filterBarChange" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "filterWrapper", first: true, predicate: ["filterWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.mat-mdc-
|
|
128
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: FilterBarComponent, selector: "tld-filter-bar", inputs: { settings: "settings", filterRowVisible: "filterRowVisible" }, outputs: { filterBarChange: "filterBarChange" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "filterWrapper", first: true, predicate: ["filterWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.chip-filter-title{margin-left:.5em}.hidden{display:none}:host ::ng-deep .mat-mdc-form-field-focus-overlay,:host ::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--base-95)}:host ::ng-deep .mat-mdc-chip-graphic{display:none}:host ::ng-deep .mat-mdc-chip-remove{color:var(--base-40)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: 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"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i12.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i12.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i14.SortTranslationsByPropertyPipe, name: "sortTranslationsByProperty" }] }); }
|
|
129
129
|
}
|
|
130
130
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FilterBarComponent, decorators: [{
|
|
131
131
|
type: Component,
|
|
132
|
-
args: [{ selector: 'tld-filter-bar', template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.mat-mdc-
|
|
132
|
+
args: [{ selector: 'tld-filter-bar', template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.chip-filter-title{margin-left:.5em}.hidden{display:none}:host ::ng-deep .mat-mdc-form-field-focus-overlay,:host ::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--base-95)}:host ::ng-deep .mat-mdc-chip-graphic{display:none}:host ::ng-deep .mat-mdc-chip-remove{color:var(--base-40)!important}\n"] }]
|
|
133
133
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }]; }, propDecorators: { filterWrapper: [{
|
|
134
134
|
type: ViewChild,
|
|
135
135
|
args: ["filterWrapper"]
|
|
@@ -183,11 +183,11 @@ export class MultiFunctionalTableComponent {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MultiFunctionalTableComponent, deps: [{ token: i1.DOMService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
186
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: MultiFunctionalTableComponent, selector: "tld-multi-functional-table", inputs: { config: "config", highlightedElements: "highlightedElements", selection: "selection" }, outputs: { filterBarChange: "filterBarChange", exported: "exported", selectionChange: "selectionChange" }, queries: [{ propertyName: "noDataRow", first: true, predicate: MatNoDataRow, descendants: true }, { propertyName: "headerRowDefs", predicate: MatHeaderRowDef }, { propertyName: "rowDefs", predicate: MatRowDef, descendants: true }, { propertyName: "columnDefs", predicate: MatColumnDef }], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "tableElementRef", first: true, predicate: MatTable, descendants: true, read: ElementRef }], ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i4.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.FilterBarComponent, selector: "tld-filter-bar", inputs: ["settings", "filterRowVisible"], outputs: ["filterBarChange"] }, { kind: "directive", type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
186
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: MultiFunctionalTableComponent, selector: "tld-multi-functional-table", inputs: { config: "config", highlightedElements: "highlightedElements", selection: "selection" }, outputs: { filterBarChange: "filterBarChange", exported: "exported", selectionChange: "selectionChange" }, queries: [{ propertyName: "noDataRow", first: true, predicate: MatNoDataRow, descendants: true }, { propertyName: "headerRowDefs", predicate: MatHeaderRowDef }, { propertyName: "rowDefs", predicate: MatRowDef, descendants: true }, { propertyName: "columnDefs", predicate: MatColumnDef }], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "tableElementRef", first: true, predicate: MatTable, descendants: true, read: ElementRef }], ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .mat-mdc-cell,:host ::ng-deep .mat-mdc-header-cell,:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-color:var(--base-70)}:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-width:1px;border-bottom-style:solid}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i4.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.FilterBarComponent, selector: "tld-filter-bar", inputs: ["settings", "filterRowVisible"], outputs: ["filterBarChange"] }, { kind: "directive", type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
187
187
|
}
|
|
188
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MultiFunctionalTableComponent, decorators: [{
|
|
189
189
|
type: Component,
|
|
190
|
-
args: [{ selector: 'tld-multi-functional-table', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"] }]
|
|
190
|
+
args: [{ selector: 'tld-multi-functional-table', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .mat-mdc-cell,:host ::ng-deep .mat-mdc-header-cell,:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-color:var(--base-70)}:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-width:1px;border-bottom-style:solid}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"] }]
|
|
191
191
|
}], ctorParameters: function () { return [{ type: i1.DOMService }, { type: i2.TranslateService }]; }, propDecorators: { config: [{
|
|
192
192
|
type: Input
|
|
193
193
|
}], highlightedElements: [{
|
|
@@ -1306,11 +1306,11 @@ class FilterBarComponent {
|
|
|
1306
1306
|
});
|
|
1307
1307
|
}
|
|
1308
1308
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FilterBarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1309
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: FilterBarComponent, selector: "tld-filter-bar", inputs: { settings: "settings", filterRowVisible: "filterRowVisible" }, outputs: { filterBarChange: "filterBarChange" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "filterWrapper", first: true, predicate: ["filterWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.mat-mdc-
|
|
1309
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: FilterBarComponent, selector: "tld-filter-bar", inputs: { settings: "settings", filterRowVisible: "filterRowVisible" }, outputs: { filterBarChange: "filterBarChange" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "filterWrapper", first: true, predicate: ["filterWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.chip-filter-title{margin-left:.5em}.hidden{display:none}:host ::ng-deep .mat-mdc-form-field-focus-overlay,:host ::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--base-95)}:host ::ng-deep .mat-mdc-chip-graphic{display:none}:host ::ng-deep .mat-mdc-chip-remove{color:var(--base-40)!important}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i2$3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i1$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i12.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i12.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2$1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SortTranslationsByPropertyPipe, name: "sortTranslationsByProperty" }] }); }
|
|
1310
1310
|
}
|
|
1311
1311
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: FilterBarComponent, decorators: [{
|
|
1312
1312
|
type: Component,
|
|
1313
|
-
args: [{ selector: 'tld-filter-bar', template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.mat-mdc-
|
|
1313
|
+
args: [{ selector: 'tld-filter-bar', template: "<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n", styles: [":host{display:inline-block}.filter-row{display:flex;background-color:var(--base-95);min-height:40px;min-width:100%;border-radius:.5rem;padding:1.25rem 1.25rem 0;max-width:100%;align-items:baseline;margin-bottom:.5rem}.search-input{background-color:unset;border:none}.engine-filter{margin-left:1rem}.filter-bar-search-input{width:100%}.filter-bar-search-input::ng-deep .material-icons-outlined{vertical-align:bottom}.material-icons-outlined{color:var(--base-40)}.filter-wrapper{max-width:100%;overflow-x:hidden;overflow-y:hidden;display:flex;flex:1}.mat-mdc-chip.mat-mdc-standard-chip{background-color:var(--base-95);padding-left:.5em;padding-right:.75em;border:.5px solid var(--base-70)}.mat-mdc-chip.mat-mdc-standard-chip span{display:inline-block}.mat-mdc-chip.mat-mdc-standard-chip .chip-filter-title+.chip-value{margin-left:.25rem}.chip-filter-title{margin-left:.5em}.hidden{display:none}:host ::ng-deep .mat-mdc-form-field-focus-overlay,:host ::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--base-95)}:host ::ng-deep .mat-mdc-chip-graphic{display:none}:host ::ng-deep .mat-mdc-chip-remove{color:var(--base-40)!important}\n"] }]
|
|
1314
1314
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }]; }, propDecorators: { filterWrapper: [{
|
|
1315
1315
|
type: ViewChild,
|
|
1316
1316
|
args: ["filterWrapper"]
|
|
@@ -1552,11 +1552,11 @@ class MultiFunctionalTableComponent {
|
|
|
1552
1552
|
}
|
|
1553
1553
|
}
|
|
1554
1554
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MultiFunctionalTableComponent, deps: [{ token: DOMService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1555
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: MultiFunctionalTableComponent, selector: "tld-multi-functional-table", inputs: { config: "config", highlightedElements: "highlightedElements", selection: "selection" }, outputs: { filterBarChange: "filterBarChange", exported: "exported", selectionChange: "selectionChange" }, queries: [{ propertyName: "noDataRow", first: true, predicate: MatNoDataRow, descendants: true }, { propertyName: "headerRowDefs", predicate: MatHeaderRowDef }, { propertyName: "rowDefs", predicate: MatRowDef, descendants: true }, { propertyName: "columnDefs", predicate: MatColumnDef }], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "tableElementRef", first: true, predicate: MatTable, descendants: true, read: ElementRef }], ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i4$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i1$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i6$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FilterBarComponent, selector: "tld-filter-bar", inputs: ["settings", "filterRowVisible"], outputs: ["filterBarChange"] }, { kind: "directive", type: i2$3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
1555
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: MultiFunctionalTableComponent, selector: "tld-multi-functional-table", inputs: { config: "config", highlightedElements: "highlightedElements", selection: "selection" }, outputs: { filterBarChange: "filterBarChange", exported: "exported", selectionChange: "selectionChange" }, queries: [{ propertyName: "noDataRow", first: true, predicate: MatNoDataRow, descendants: true }, { propertyName: "headerRowDefs", predicate: MatHeaderRowDef }, { propertyName: "rowDefs", predicate: MatRowDef, descendants: true }, { propertyName: "columnDefs", predicate: MatColumnDef }], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "tableElementRef", first: true, predicate: MatTable, descendants: true, read: ElementRef }], ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .mat-mdc-cell,:host ::ng-deep .mat-mdc-header-cell,:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-color:var(--base-70)}:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-width:1px;border-bottom-style:solid}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i4$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i1$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i6$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FilterBarComponent, selector: "tld-filter-bar", inputs: ["settings", "filterRowVisible"], outputs: ["filterBarChange"] }, { kind: "directive", type: i2$3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
1556
1556
|
}
|
|
1557
1557
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MultiFunctionalTableComponent, decorators: [{
|
|
1558
1558
|
type: Component,
|
|
1559
|
-
args: [{ selector: 'tld-multi-functional-table', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"] }]
|
|
1559
|
+
args: [{ selector: 'tld-multi-functional-table', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep th,:host ::ng-deep tr{white-space:nowrap}:host ::ng-deep td{padding-right:10px!important}:host ::ng-deep tr.mat-mdc-row:hover,:host ::ng-deep tr.mat-mdc-row.highlight{background-color:var(--base-95)}:host ::ng-deep .export-data .mdc-button__label{display:flex;align-items:center}:host ::ng-deep .mat-mdc-cell,:host ::ng-deep .mat-mdc-header-cell,:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-color:var(--base-70)}:host ::ng-deep .mdc-data-table__row:last-child{border-bottom-width:1px;border-bottom-style:solid}table{width:100%}.column-select-icon{rotate:90deg}.column-select-wrapper{padding:1rem}.material-icons,.material-icons-outlined{margin-right:.5rem}.table-action-button{margin-bottom:1rem}.mat-mdc-no-data-row{text-align:center}.mat-mdc-no-data-row .no-data-wrapper{margin:4rem 0}.mat-mdc-no-data-row .material-icons-outlined{font-size:4rem;color:var(--base-70)}mat-spinner{margin:auto}th.mat-mdc-header-cell:first-of-type,td.mat-mdc-cell:first-of-type,td.mat-mdc-footer-cell:first-of-type{padding:0 22px}.row-select{width:0}.table-overflow{overflow-x:auto}\n"] }]
|
|
1560
1560
|
}], ctorParameters: function () { return [{ type: DOMService }, { type: i1$1.TranslateService }]; }, propDecorators: { config: [{
|
|
1561
1561
|
type: Input
|
|
1562
1562
|
}], highlightedElements: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilde-nlp-ngx-common.mjs","sources":["../../../projects/ngx-common/src/lib/services/icon.service.ts","../../../projects/ngx-common/src/lib/services/dom.service.ts","../../../projects/ngx-common/src/lib/plausible/plausible.helper.ts","../../../projects/ngx-common/src/lib/plausible/plausible-event.directive.ts","../../../projects/ngx-common/src/lib/plausible/plausible.module.ts","../../../projects/ngx-common/src/lib/inline-message/models/inline-message-icon-position.enum.ts","../../../projects/ngx-common/src/lib/inline-message/inline-message.component.ts","../../../projects/ngx-common/src/lib/inline-message/inline-message.component.html","../../../projects/ngx-common/src/lib/inline-message/inline-message.module.ts","../../../projects/ngx-common/src/lib/inline-message/models/inline-message-type.enum.ts","../../../projects/ngx-common/src/lib/pipes/filter-with-highlight/filter-with-highlight.pipe.ts","../../../projects/ngx-common/src/lib/pipes/filter-with-highlight/filter-with-highlight.module.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations/sort-translations.pipe.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations/sort-translations.module.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations-by-property/sort-translations-by-property.pipe.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations-by-property/sort-translations-by-property.module.ts","../../../projects/ngx-common/src/lib/pipes/date-ago/models/date-ago-settings.token.ts","../../../projects/ngx-common/src/lib/pipes/date-ago/date-ago.pipe.ts","../../../projects/ngx-common/src/lib/pipes/date-ago/date-ago.module.ts","../../../projects/ngx-common/src/lib/directives/click-outside/click-outside.directive.ts","../../../projects/ngx-common/src/lib/directives/click-outside/click-outside.module.ts","../../../projects/ngx-common/src/lib/directives/drag-and-drop/drag-and-drop.directive.ts","../../../projects/ngx-common/src/lib/directives/drag-and-drop/drag-and-drop.module.ts","../../../projects/ngx-common/src/lib/directives/mat-button-loading/mat-button-loading.directive.ts","../../../projects/ngx-common/src/lib/directives/mat-button-loading/mat-button-loading.module.ts","../../../projects/ngx-common/src/lib/close-button/close-button.component.ts","../../../projects/ngx-common/src/lib/close-button/close-button.component.html","../../../projects/ngx-common/src/lib/close-button/close-button.module.ts","../../../projects/ngx-common/src/lib/notification-message/notification-message.component.ts","../../../projects/ngx-common/src/lib/notification-message/notification-message.component.html","../../../projects/ngx-common/src/lib/notification-message/notification-message.module.ts","../../../projects/ngx-common/src/lib/notification-message/enums/notification-message-type.enum.ts","../../../projects/ngx-common/src/lib/tld-loader/tld-loader.component.ts","../../../projects/ngx-common/src/lib/tld-loader/tld-loader.component.html","../../../projects/ngx-common/src/lib/tld-loader/tld-loader.module.ts","../../../projects/ngx-common/src/lib/helpers/missing-translation.helper.ts","../../../projects/ngx-common/src/lib/helpers/save-file.helper.ts","../../../projects/ngx-common/src/lib/helpers/html-element-parse.helper.ts","../../../projects/ngx-common/src/lib/company-product/company-product.component.ts","../../../projects/ngx-common/src/lib/company-product/company-product.component.html","../../../projects/ngx-common/src/lib/company-product/company-product.module.ts","../../../projects/ngx-common/src/lib/footer/footer.component.ts","../../../projects/ngx-common/src/lib/footer/footer.component.html","../../../projects/ngx-common/src/lib/footer/footer.module.ts","../../../projects/ngx-common/src/lib/file-upload/models/file-upload-error-type.enum.ts","../../../projects/ngx-common/src/lib/file-upload/file-upload.component.ts","../../../projects/ngx-common/src/lib/file-upload/file-upload.component.html","../../../projects/ngx-common/src/lib/file-upload/file-upload.module.ts","../../../projects/ngx-common/src/lib/filter-bar/filter-bar.component.ts","../../../projects/ngx-common/src/lib/filter-bar/filter-bar.component.html","../../../projects/ngx-common/src/lib/filter-bar/filter-bar.module.ts","../../../projects/ngx-common/src/lib/multi-functional-table/constants/disable-export-attribute-name.const.ts","../../../projects/ngx-common/src/lib/multi-functional-table/models/export-format.enum.ts","../../../projects/ngx-common/src/lib/multi-functional-table/multi-functional-table.component.ts","../../../projects/ngx-common/src/lib/multi-functional-table/multi-functional-table.component.html","../../../projects/ngx-common/src/lib/multi-functional-table/multi-functional-table.module.ts","../../../projects/ngx-common/src/lib/confirmation-modal/models/confirmation.enum.ts","../../../projects/ngx-common/src/lib/confirmation-modal/confirmation-modal.component.ts","../../../projects/ngx-common/src/lib/confirmation-modal/confirmation-modal.component.html","../../../projects/ngx-common/src/lib/confirmation-modal/confirmation-modal.module.ts","../../../projects/ngx-common/src/lib/confirmation-modal/services/confirmation.service.ts","../../../projects/ngx-common/src/public-api.ts","../../../projects/ngx-common/src/tilde-nlp-ngx-common.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IconService {\r\n constructor(private readonly iconRegistry: MatIconRegistry,\r\n private readonly sanitizer: DomSanitizer) {\r\n }\r\n\r\n //https://material.angular.io/components/icon/examples\r\n /** Registers svg icons to mat icon registry. Icon SVG's should be under some key in object. Icon name can be used with property name in lowercase. */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n registerIcons(icons: any) {\r\n for (const key in icons) {\r\n this.iconRegistry.addSvgIconLiteral(key.toLowerCase(), this.sanitizer.bypassSecurityTrustHtml(icons[key]));\r\n }\r\n }\r\n\r\n registerIconFromUrl(name: string, url: string) {\r\n this.iconRegistry.addSvgIcon(name, this.sanitizer.bypassSecurityTrustResourceUrl(url));\r\n }\r\n\r\n addSvgIconSet(path: string, namespace?: string) {\r\n namespace ?\r\n this.iconRegistry.addSvgIconSetInNamespace(namespace, this.sanitizer.bypassSecurityTrustResourceUrl(path)) :\r\n this.iconRegistry.addSvgIconSet(this.sanitizer.bypassSecurityTrustResourceUrl(path));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nconst _localStorage: Storage | null = typeof localStorage !== 'undefined' ? localStorage : null;\r\nconst _window: Window | null = typeof window !== 'undefined' ? window : null;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DOMService {\r\n\r\n get window(): Window | null {\r\n return _window;\r\n }\r\n\r\n get localStorage(): Storage | null {\r\n return _localStorage;\r\n }\r\n\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { DOMService } from \"../services\";\r\n\r\nexport class PlausibleHelper {\r\n /**\r\n * Adds plausible for selected domain and adds additional script for custom event (goal) triggering\r\n * @param domain domain that is registered in your plausible account\r\n * @returns\r\n */\r\n static addPlausible(domain: string) {\r\n const domService = new DOMService();\r\n const windowObj: any = domService.window;\r\n if (!windowObj || !domain) {\r\n return;\r\n }\r\n\r\n const plausibleSrc = \"https://plausible.io/js/plausible.js\";\r\n const script = document.createElement(\"script\");\r\n script.src = plausibleSrc;\r\n script.setAttribute(\"data-domain\", domain);\r\n document.head.append(script);\r\n\r\n // Add plausible custom event functionality https://plausible.io/docs/custom-event-goals#code-example-for-tracking-link-clicks\r\n windowObj.plausible = windowObj.plausible || ((...params: any) => { (windowObj.plausible.q = windowObj.plausible.q || []).push(params) })\r\n }\r\n\r\n /**\r\n * Emits custom plausible event\r\n * @param id plausible event id that should be the same as registered in plausible\r\n * @param properties an object with custom properties for the event\r\n * @returns\r\n */\r\n static customEvent(id: string, properties?: any) {\r\n const windowObj: any = window;\r\n if (!windowObj?.plausible) {\r\n return;\r\n }\r\n windowObj.plausible(id, { props: properties });\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { PlausibleEvent } from './models';\r\nimport { PlausibleHelper } from './plausible.helper';\r\n\r\n@Directive({\r\n selector: '[libPlausibleEvent]'\r\n})\r\nexport class PlausibleEventDirective {\r\n private id = \"\";\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private properties: any = null;\r\n /** Plausible event id. */\r\n @Input() set libPlausibleEvent(value: PlausibleEvent | undefined) {\r\n if (!value) {\r\n return;\r\n }\r\n this.id = value.eventId;\r\n\r\n if (value.properties) {\r\n this.properties = {}\r\n value.properties.forEach(item => this.properties[item.key] = item.value);\r\n }\r\n\r\n }\r\n\r\n @HostListener(\"click\") onClick() {\r\n if (this.id.length) {\r\n PlausibleHelper.customEvent(this.id, this.properties);\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PlausibleEventDirective } from './plausible-event.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PlausibleEventDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n PlausibleEventDirective\r\n ]\r\n})\r\nexport class PlausibleModule { }\r\n","export enum InlineMessageIconPosition {\r\n START,\r\n END\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { InlineMessageIconPosition } from './models/inline-message-icon-position.enum';\r\nimport { InlineMessage } from './models/inline-message.model';\r\n\r\n@Component({\r\n selector: 'lib-inline-message',\r\n templateUrl: './inline-message.component.html',\r\n styleUrls: ['./inline-message.component.scss']\r\n})\r\nexport class InlineMessageComponent {\r\n readonly END_ICON_POSITION = InlineMessageIconPosition.END;\r\n\r\n @Input() iconName = \"info\";\r\n @Input() message!: InlineMessage;\r\n}\r\n","<div class=\"tld-inline-message {{message.type}}\">\r\n <span class=\"material-icons\" [class.order-end]=\"message.iconPosition === END_ICON_POSITION\"\r\n [matTooltip]=\"message.iconTooltip? (message.iconTooltip | translate: message.localizationParams) : ''\" *ngIf=\"iconName\">{{iconName}}</span>\r\n <section *ngIf=\"message\">\r\n <div class=\"text-s-semi-bold title\" *ngIf=\"message.title\"\r\n [innerHtml]=\"message.title | translate: message.localizationParams\">\r\n </div>\r\n <p class=\"text-s description\" *ngIf=\"message.description\" [innerHtml]=\"message.description | translate:\r\n message.localizationParams\"></p>\r\n </section>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InlineMessageComponent } from './inline-message.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n InlineMessageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n MatTooltipModule\r\n ],\r\n exports: [\r\n InlineMessageComponent\r\n ]\r\n})\r\nexport class InlineMessageModule { }\r\n","export enum InlineMessageType {\r\n INFO = 'info',\r\n WARNING = 'warning',\r\n ERROR = 'error'\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterWithHighlight'\r\n})\r\nexport class FilterWithHighlightPipe implements PipeTransform {\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform(value: any[], filter: string, key?: string): any[] {\r\n if (!filter.length) {\r\n return [...value];\r\n }\r\n\r\n const filteredArr = [];\r\n const regex = new RegExp(filter, 'gi');\r\n\r\n for (let element of value) {\r\n const elementText: string = key ? element[key] : element;\r\n const match = elementText.match(regex);\r\n if (!match) {\r\n continue;\r\n }\r\n let newElement;\r\n\r\n const textWithHighlight = elementText.replace(regex, (match) => `<span class=\"filter-highlight\">${match}</span>`);\r\n if (key) {\r\n newElement = { ...element };\r\n newElement[key] = textWithHighlight;\r\n }\r\n else {\r\n element = textWithHighlight;\r\n }\r\n\r\n filteredArr.push(newElement ?? element);\r\n }\r\n return filteredArr;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterWithHighlightPipe } from './filter-with-highlight.pipe';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FilterWithHighlightPipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n FilterWithHighlightPipe\r\n ]\r\n})\r\nexport class FilterWithHighlightModule { }\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Pipe({\r\n name: 'sortTranslations'\r\n})\r\n/**\r\n * Pipe used to sort translated values.\r\n */\r\nexport class SortTranslationsPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) { }\r\n\r\n /**\r\n *\r\n * @param objects array of objects to be sorted\r\n * @param localizationPrefix prefix for localization code. This is used to get necessary object translations.\r\n * @param key Which object property needs to be used for sorting.\r\n * @param currentLanguage This is necessary to update values if language is changed.\r\n * @returns \r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n transform(objects: Array<any>, localizationPrefix: string | null, key: string | null = null, currentLanguage: string, translationKey: string | null = null): Observable<Array<any>> {\r\n const arrayCopy = [...objects];\r\n if (localizationPrefix) {\r\n return new Observable<string[]>((subscriber) => {\r\n this.translate.get(localizationPrefix ?? \"\").subscribe((translations) => {\r\n const array = this.sortObjects(arrayCopy, key, translations);\r\n subscriber.next(array);\r\n subscriber.complete();\r\n })\r\n });\r\n }\r\n else {\r\n return of(this.sortObjects(arrayCopy, key));\r\n }\r\n }\r\n\r\n private sortObjects(array: any[], key?: string | null, translations?: any):any[] {\r\n return array.sort((a: any, b: any) => {\r\n const aValue = key ? a[key] : a;\r\n const aTranslation = translations ? translations[aValue.toUpperCase()] : aValue;\r\n\r\n const bValue = key ? b[key] : b;\r\n const bTranslation = translations ? translations[bValue.toUpperCase()] : bValue;\r\n\r\n if (aTranslation < bTranslation)\r\n return -1;\r\n else if (aTranslation > bTranslation)\r\n return 1;\r\n else\r\n return 0;\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SortTranslationsPipe } from './sort-translations.pipe';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [SortTranslationsPipe],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n SortTranslationsPipe\r\n ]\r\n})\r\nexport class SortTranslationsModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'sortTranslationsByProperty',\r\n})\r\n/**\r\n * Pipe transforms an array of objects by sorting them based on a provided localization key in A-Z order.\r\n * Unlike the \"sortTranslations\" pipe, it does not require knowledge of the current language, and it does not require the use of the async pipe.\r\n */\r\nexport class SortTranslationsByPropertyPipe implements PipeTransform {\r\n constructor(private translate: TranslateService) {}\r\n\r\n /**\r\n * Transforms the input array of objects by sorting them based on the specified sortingValueKey.\r\n * @param values An array of objects to be sorted.\r\n * @param sortingValueKey The key by which the provided values should be sorted.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform(values: any[], sortingValueKey: string): any {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n values.sort((a: any, b: any) => {\r\n const aTranslated = this.translate.instant(a[sortingValueKey]).toLowerCase();\r\n const bTranslated = this.translate.instant(b[sortingValueKey]).toLowerCase();\r\n if (aTranslated < bTranslated) return -1;\r\n if (aTranslated > bTranslated) return 1;\r\n return 0;\r\n });\r\n\r\n return values;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SortTranslationsByPropertyPipe } from './sort-translations-by-property.pipe';\r\n\r\n@NgModule({\r\n declarations: [SortTranslationsByPropertyPipe],\r\n imports: [CommonModule],\r\n exports: [SortTranslationsByPropertyPipe],\r\n})\r\nexport class SortTranslationsByPropertyModule {}\r\n","export const DateAgoSettingsToken = \"DATE_AGO_SETTINGS\";\r\n","import { ChangeDetectorRef, Inject, Optional, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\r\nimport { DateAgo, DateAgoSettings, DateAgoSettingsToken } from './models';\r\n\r\n@Pipe({\r\n name: 'dateAgo',\r\n pure: false\r\n})\r\n/**\r\n * Pipe that converts date to date ago and returns translated string.\r\n */\r\nexport class DateAgoPipe implements PipeTransform {\r\n\r\n readonly defaultSettings: DateAgoSettings = {\r\n intervals: [\r\n {\r\n key: \"YEAR\",\r\n interval: 31536000,\r\n min: 1\r\n },\r\n {\r\n key: \"MONTH\",\r\n interval: 2592000,\r\n min: 1\r\n },\r\n {\r\n key: \"WEEK\",\r\n interval: 604800,\r\n min: 2\r\n },\r\n {\r\n key: \"DAY\",\r\n interval: 86400,\r\n min: 1\r\n },\r\n {\r\n key: \"HOUR\",\r\n interval: 3600,\r\n min: 1\r\n },\r\n {\r\n key: \"MINUTE\",\r\n interval: 60,\r\n min: 1\r\n },\r\n {\r\n key: \"SECOND\",\r\n interval: 1,\r\n min: 10\r\n }\r\n ],\r\n localizationPrefix: \"DATE_AGO\",\r\n multiplePostfix: \"S\",\r\n justNowKey: \"JUST_NOW\",\r\n justNowSeconds: 29\r\n\r\n };\r\n\r\n get intervals() { return this.settings?.intervals ?? this.defaultSettings.intervals }\r\n get multiplePostfix() { return this.settings?.multiplePostfix ?? this.defaultSettings.multiplePostfix }\r\n get localizationPrefix() { return this.settings?.localizationPrefix ?? this.defaultSettings.localizationPrefix }\r\n get justNowKey() { return this.settings?.justNowKey ?? this.defaultSettings.justNowKey }\r\n get justNowSeconds() { return this.settings?.justNowSeconds ?? this.defaultSettings.justNowSeconds }\r\n\r\n constructor(private readonly translate: TranslateService,\r\n private readonly _ref: ChangeDetectorRef,\r\n @Inject(DateAgoSettingsToken) @Optional() private readonly settings: DateAgoSettings) {\r\n\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform(value: Date, enableMultiplePostfix = true): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const dateAgo = this.calculateDateAgo(value, enableMultiplePostfix);\r\n if (!dateAgo) {\r\n return \"\";\r\n }\r\n\r\n const translatePipe = new TranslatePipe(this.translate, this._ref);\r\n return translatePipe.transform(`${this.localizationPrefix}.${dateAgo.key}`, { value: dateAgo.howMany });\r\n }\r\n\r\n calculateDateAgo(value: Date, enableMultiplePostfix: boolean): DateAgo | null {\r\n if (value) {\r\n const seconds = Math.floor((new Date().getTime() - new Date(value).getTime()) / 1000);\r\n\r\n if (seconds < this.justNowSeconds || Number.isNaN(seconds)) // less than 30 seconds ago will show as 'Just now'\r\n return { key: this.justNowKey };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n\r\n let counter!: number;\r\n let type!: string;\r\n\r\n for (let i = 0; i < this.intervals.length; i++) {\r\n const interval = this.intervals[i];\r\n counter = Math.floor(seconds / interval.interval);\r\n if (counter >= interval.min) {\r\n type = interval.key;\r\n if (enableMultiplePostfix && counter > 1) {\r\n // add \"S\" in the end of localization key\r\n type += this.multiplePostfix;\r\n }\r\n break;\r\n }\r\n }\r\n return { key: type, howMany: counter };\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DateAgoPipe } from './date-ago.pipe';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DateAgoPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule\r\n ],\r\n exports: [\r\n DateAgoPipe\r\n ]\r\n})\r\nexport class DateAgoModule { }\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[clickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() clickOutside = new EventEmitter<void>();\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target: HTMLElement) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ClickOutsideDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n ClickOutsideDirective\r\n ]\r\n})\r\nexport class ClickOutsideModule { }\r\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[tldDragAndDrop]'\r\n})\r\nexport class DragAndDropDirective {\r\n\r\n get disabled() { return this.element.nativeElement.disabled }\r\n\r\n @HostBinding('class.tld-file-over') active!: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Output() fileDropped = new EventEmitter<any>();\r\n\r\n // Dragover listener\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @HostListener('dragover', ['$event']) onDragOver(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = !this.disabled;\r\n }\r\n\r\n // Dragleave listener\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n }\r\n\r\n // Drop listener\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n if (this.disabled) {\r\n return;\r\n }\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n\r\n constructor(private readonly element: ElementRef) { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DragAndDropDirective } from './drag-and-drop.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DragAndDropDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n DragAndDropDirective\r\n ]\r\n})\r\nexport class DragAndDropModule { }\r\n","import { ComponentRef, Directive, Input, Renderer2, ViewContainerRef } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: `button[mat-button][loading],\r\n button[mat-raised-button][loading],\r\n button[mat-icon-button][loading],\r\n button[mat-fab][loading],\r\n button[mat-mini-fab][loading],\r\n button[mat-stroked-button][loading],\r\n button[mat-flat-button][loading]`\r\n})\r\nexport class MatButtonLoadingDirective {\r\n\r\n private _loading = false;\r\n @Input() set loading(value: boolean) {\r\n if (value != this._loading) {\r\n this._loading = value;\r\n this.updateState();\r\n }\r\n }\r\n\r\n private spinner!: ComponentRef<MatProgressSpinner> | null;\r\n\r\n constructor(private matButton: MatButton,\r\n private viewContainerRef: ViewContainerRef,\r\n private renderer: Renderer2) { }\r\n\r\n get nativeElement(): HTMLElement {\r\n return this.matButton._elementRef.nativeElement;\r\n }\r\n\r\n updateState(): void {\r\n if (this._loading) {\r\n this.nativeElement.classList.add('mat-loading');\r\n this.matButton.disabled = true;\r\n this.createSpinner();\r\n return;\r\n }\r\n this.nativeElement.classList.remove('mat-loading');\r\n this.matButton.disabled = false;\r\n this.destroySpinner();\r\n }\r\n\r\n private createSpinner(): void {\r\n if (!this.spinner) {\r\n this.spinner = this.viewContainerRef.createComponent(MatProgressSpinner);\r\n this.spinner.instance.color = this.matButton.color;\r\n this.spinner.instance.diameter = 20;\r\n this.spinner.instance.mode = 'indeterminate';\r\n this.renderer.appendChild(this.matButton._elementRef.nativeElement, this.spinner.instance._elementRef.nativeElement);\r\n }\r\n }\r\n\r\n private destroySpinner(): void {\r\n if (this.spinner) {\r\n this.spinner.destroy();\r\n this.spinner = null;\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonLoadingDirective } from './mat-button-loading.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [MatButtonLoadingDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [MatButtonLoadingDirective]\r\n})\r\nexport class MatButtonLoadingModule { }\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-close-button',\r\n templateUrl: './close-button.component.html'\r\n})\r\nexport class CloseButtonComponent {\r\n // any type because emitter doesn't really need a value\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Output() tldClick: EventEmitter<any> = new EventEmitter();\r\n @Input() ariaCode = \"CLOSE_BUTTON\";\r\n // This property is created so it is easier to access real button from outside component.\r\n @ViewChild(\"clearButton\") clearButton!: MatButton;\r\n @Input() disabled!: boolean;\r\n @Input() tooltip!: string;\r\n\r\n clicked() {\r\n this.tldClick.emit(null);\r\n }\r\n}\r\n","<button [matTooltip]=\"tooltip | translate\"\r\n#clearButton mat-icon-button (click)=\"clicked()\" [attr.aria-label]=\"'ARIA_LABELS.'+ariaCode | translate\"\r\n [disabled]=\"disabled\">\r\n <span class=\"material-icons\">\r\n close\r\n </span>\r\n</button>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CloseButtonComponent } from './close-button.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CloseButtonComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n TranslateModule,\r\n MatTooltipModule\r\n ],\r\n exports: [\r\n CloseButtonComponent\r\n ]\r\n})\r\nexport class CloseButtonModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NotificationMessageType } from './enums/notification-message-type.enum';\r\nimport { NotificationMessage } from './interfaces/notification-message.model';\r\n\r\n@Component({\r\n selector: 'lib-tld-notification-message',\r\n templateUrl: './notification-message.component.html',\r\n styleUrls: ['./notification-message.component.scss']\r\n})\r\nexport class NotificationMessageComponent implements OnInit {\r\n @Input() message!: NotificationMessage;\r\n\r\n @Output() buttonClicked = new EventEmitter();\r\n @Output() closeClicked = new EventEmitter();\r\n @Output() linkClicked = new EventEmitter();\r\n /** Adds additional class that makes message to take less space on screen. */\r\n @Input() inline!: boolean;\r\n\r\n readonly iconNames: { [key in NotificationMessageType]: string } = {\r\n \"BASIC\": \"info\",\r\n \"ERROR\": \"error\",\r\n \"SUCCESS\": \"check_circle\",\r\n \"WARNING\": \"info\",\r\n }\r\n className!: string;\r\n\r\n ngOnInit(): void {\r\n this.className = this.message.type.toLocaleLowerCase();\r\n }\r\n\r\n buttonClick() {\r\n this.buttonClicked.next(null)\r\n }\r\n\r\n closeClick() {\r\n this.closeClicked.next(null)\r\n }\r\n\r\n linkClick(){\r\n this.linkClicked.next(null)\r\n }\r\n\r\n}\r\n","<div class=\"notification-message {{className}}\">\r\n <div class=\"notification-message-container tld-default-border\" [ngClass.lt-md]=\"'mobile'\" [class.inline]=\"inline\"\r\n fxLayout=\"row\" fxLayoutAlign=\"start start\" [attr.id]=\"message.id\" aria-live=\"polite\" fxLayout=\"row\">\r\n <span class=\"material-icons message-icon\">\r\n {{iconNames[message.type]}}\r\n </span>\r\n <div class=\"items-container\" fxFlex>\r\n <div fxLayout=\"row\">\r\n <div class=\"text-container\" fxFlex>\r\n <h1 *ngIf=\"message.title\" class=\"message-title\"\r\n [innerHtml]=\"message.title | translate: message.localizationParams\"></h1>\r\n <p *ngIf=\"message.body\" class=\"message-body\">\r\n <span [innerHtml]=\"message.body | translate: message.localizationParams\"></span>\r\n <span *ngIf=\"message.support\" [innerHtml]=\"message.support | translate: message.localizationParams\"></span>\r\n </p>\r\n </div>\r\n <tld-close-button *ngIf=\"!message.hideClose\" class=\"close-button\" (tldClick)=\"closeClick()\">\r\n </tld-close-button>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"16px\" fxLayoutAlign=\"start center\"\r\n *ngIf=\"message.buttonText || message.linkHref || message.routerLink\">\r\n <button class=\"message-action-button\" color=\"accent\" mat-flat-button *ngIf=\"message.buttonText\"\r\n (click)=\"buttonClick()\">{{message.buttonText | translate}} </button>\r\n <a class=\"message-action-link\" *ngIf=\"message.linkHref && message.linkText\" (click)=\"linkClick()\"\r\n [attr.href]=\"message.linkHref\">{{message.linkText |\r\n translate}}</a>\r\n <a class=\"message-action-link\" *ngIf=\"message.routerLink && message.linkText\" (click)=\"linkClick()\"\r\n [routerLink]=\"[message.routerLink]\">{{message.linkText |\r\n translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CloseButtonModule } from '../close-button/close-button.module';\r\nimport { NotificationMessageComponent } from './notification-message.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NotificationMessageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n CloseButtonModule,\r\n MatButtonModule,\r\n TranslateModule,\r\n RouterModule\r\n ],\r\n exports: [\r\n NotificationMessageComponent\r\n ]\r\n})\r\nexport class NotificationMessageModule { }\r\n","export enum NotificationMessageType{\r\n BASIC = \"BASIC\",\r\n WARNING = \"WARNING\",\r\n SUCCESS = \"SUCCESS\",\r\n ERROR = \"ERROR\"\r\n}","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tld-loader',\r\n templateUrl: './tld-loader.component.html',\r\n styleUrls: ['./tld-loader.component.scss']\r\n})\r\nexport class TldLoaderComponent {\r\n}\r\n","<div class=\"tld-loader accent-color\" fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div class=\"accent-bg-color tld-loader-element element-1\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-2\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-3\"></div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { TldLoaderComponent } from './tld-loader.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TldLoaderComponent\r\n ],\r\n exports: [\r\n TldLoaderComponent\r\n ]\r\n})\r\nexport class TldLoaderModule { }\r\n","import { MissingTranslationHandler, MissingTranslationHandlerParams } from \"@ngx-translate/core\";\r\n\r\nexport class MissingTranslationHelper implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return (params.interpolateParams as any)?.default || params.key;\r\n }\r\n}\r\n","export class SaveFileHelper {\r\n static saveFile(content: string, fileName: string) {\r\n const file = new Blob([content]);\r\n const link = document.createElement(\"a\");\r\n link.href = URL.createObjectURL(file);\r\n link.download = fileName;\r\n link.click();\r\n link.remove();\r\n }\r\n}\r\n","export class HtmlElementParseHelper {\r\n static tableAsCsv(tableElement: HTMLElement, ignoreAttributeName?: string) {\r\n const csv_data = [];\r\n const rows = tableElement.querySelectorAll('tr');\r\n const columnSelector = ignoreAttributeName ? `td:not([${ignoreAttributeName}]),th:not([${ignoreAttributeName}])` : `td,th`;\r\n for (let i = 0; i < rows.length; i++) {\r\n const cols = rows[i].querySelectorAll(columnSelector);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const csvrow = Array.from(cols).map((element: any) => `\"${element.innerText}\"`);\r\n csv_data.push(csvrow.join(\",\"));\r\n }\r\n return csv_data.join('\\n');\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-company-product',\r\n templateUrl: './company-product.component.html',\r\n styleUrls: ['./company-product.component.scss']\r\n})\r\nexport class CompanyProductComponent{\r\n\r\n @Input() company = \"\";\r\n @Input() product = \"\";\r\n\r\n}\r\n","<div fxHide.lt-md class=\"tilde-product-title\">\r\n <span class=\"company\">\r\n {{company | uppercase}}\r\n </span>\r\n <span class=\"product\">\r\n {{product}}\r\n </span>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CompanyProductComponent } from './company-product.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CompanyProductComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [CompanyProductComponent]\r\n})\r\nexport class CompanyProductModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n currentYear!: number;\r\n\r\n readonly defaultTermsRoute = \"terms-of-use\";\r\n readonly defaultPrivacyRoute = \"privacy-policy\"\r\n\r\n @Input() privacyRoute = this.defaultPrivacyRoute;\r\n @Input() termsOfUseRoute = this.defaultTermsRoute;\r\n @Input() contactUsRoute = \"https://tilde.com/about/get-in-touch\";\r\n\r\n @Input() baseUrl!: string;\r\n\r\n constructor() {\r\n this.currentYear = new Date().getFullYear();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.baseUrl) {\r\n this.privacyRoute = this.baseUrl + this.privacyRoute;\r\n this.termsOfUseRoute = this.baseUrl + this.termsOfUseRoute;\r\n }\r\n }\r\n\r\n}\r\n","<footer fxLayout=\"row\" class=\"text-m\">\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutAlign.xs=\"center center\" fxLayout.xs=\"column\"\r\n fxLayoutGap=\"16px\">\r\n <div>\r\n {{ 'FOOTER.TITLE' | translate: {currentYear: currentYear} }}\r\n </div>\r\n <div fxLayoutGap=\"1rem\">\r\n <ng-container *ngIf=\"baseUrl; else localRoutes\">\r\n <a class=\"semi-bold\" *ngIf=\"termsOfUseRoute\" [attr.href]=\"termsOfUseRoute\" target=\"_blank\"> {{\r\n 'FOOTER.TERMS_OF_USE' |\r\n translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"privacyRoute\" [attr.href]=\"privacyRoute\" target=\"_blank\"> {{ 'FOOTER.PRIVACY'\r\n | translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"contactUsRoute\" [routerLink]=\"[contactUsRoute]\"> {{ 'FOOTER.CONTACT_US'| translate\r\n }}</a>\r\n\r\n </ng-container>\r\n <ng-template #localRoutes>\r\n <a class=\"semi-bold\" *ngIf=\"termsOfUseRoute\" [routerLink]=\"[termsOfUseRoute]\"> {{ 'FOOTER.TERMS_OF_USE' |\r\n translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"privacyRoute\" [routerLink]=\"[privacyRoute]\"> {{ 'FOOTER.PRIVACY'| translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"contactUsRoute\" [routerLink]=\"[contactUsRoute]\"> {{ 'FOOTER.CONTACT_US'| translate\r\n }}</a>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterComponent } from './footer.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n TranslateModule,\r\n RouterModule\r\n ],\r\n exports: [FooterComponent]\r\n})\r\nexport class FooterModule { }\r\n","export enum FileUploadErrorTypeEnum{\r\n FILE_UPLOAD_UNSUPPORTED_FORMAT = \"FILE_UPLOAD_UNSUPPORTED_FORMAT\",\r\n FILE_UPLOAD_UNSUPPORTED_FORMAT_REGISTER = \"FILE_UPLOAD_UNSUPPORTED_FORMAT_REGISTER\",\r\n MAX_SIZE = \"FILE_UPLOAD_MAX_SIZE\",\r\n FILE_EMPTY = \"FILE_UPLOAD_EMPTY\"\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FileUploadErrorTypeEnum } from './models/file-upload-error-type.enum';\r\nimport { FileUploadError } from './models/file-upload-error.model';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss']\r\n})\r\nexport class FileUploadComponent {\r\n @ViewChild('fileInput') fileInput!: ElementRef;\r\n @ViewChild('inputButton', { read: ElementRef }) inputButton!: ElementRef;\r\n\r\n @Output() fileChange: EventEmitter<File[]> = new EventEmitter<File[]>();\r\n @Output() errorEvent: EventEmitter<FileUploadError> = new EventEmitter<FileUploadError>();\r\n private _accept: string[] = [];\r\n @Input() set accept(val: string[]) {\r\n this._accept = val;\r\n this.allowedExtensions = val ? val.join(\",\") : \"\";\r\n }\r\n get accept() { return this._accept }\r\n @Input() maxSize!: number;\r\n @Input() multiple = false;\r\n @Input() filePreviewProgress!: number;\r\n @Input() allowEmpty!: boolean;\r\n @Input() disabled!: boolean;\r\n @Input() uploadIconName!: string;\r\n\r\n /** same as accept but for registered users. It changes error message if extension is supported for registered users. */\r\n @Input() extendedAcceptList!: string[];\r\n\r\n allowedExtensions!: string;\r\n\r\n handleFileInput(event: Event) {\r\n const target = event.target as HTMLInputElement;\r\n const files = target.files as FileList;\r\n this.validate(files);\r\n }\r\n\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onFileDrop(files: any) {\r\n this.validate(files);\r\n }\r\n\r\n private emit(files: File[]) {\r\n if (files && files.length > 0) {\r\n this.fileChange.emit(files);\r\n }\r\n }\r\n\r\n private emitError(error: FileUploadError) {\r\n this.errorEvent.emit(error);\r\n }\r\n\r\n private validate(files: FileList) {\r\n //let size = 0;\r\n const validFiles: File[] = [];\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files[i];\r\n if (!this.allowEmpty && file.size == 0) {\r\n this.emitError({ code: FileUploadErrorTypeEnum.FILE_EMPTY, error: \"File is empty\", fileName: file.name });\r\n return;\r\n }\r\n //size += file.size;\r\n const extensionErrorCode = this.getExtensionErrorCode(file.name);\r\n if (extensionErrorCode) {\r\n const error = { code: extensionErrorCode, error: \"Not valid extension.\", fileName: file.name };\r\n this.emitError(error);\r\n }\r\n else if (this.maxSize && file.size > this.maxSize) {\r\n const error = { code: FileUploadErrorTypeEnum.MAX_SIZE, error: \"Maximum allowed file size exceeded.\", fileName: file.name };\r\n this.emitError(error);\r\n }\r\n else {\r\n validFiles.push(file);\r\n }\r\n }\r\n\r\n this.emit(validFiles);\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n\r\n private getExtensionErrorCode(fileName: string): FileUploadErrorTypeEnum | null {\r\n const extension = fileName.slice(fileName.lastIndexOf('.')).toLowerCase()\r\n if (\r\n this.accept.length == 0 || (this.accept.length == 1 && this.accept[0] == '*') || this.accept.includes(extension)) {\r\n return null;\r\n }\r\n else {\r\n return this.extendedAcceptList?.includes(extension) ? FileUploadErrorTypeEnum.FILE_UPLOAD_UNSUPPORTED_FORMAT_REGISTER : FileUploadErrorTypeEnum.FILE_UPLOAD_UNSUPPORTED_FORMAT;\r\n }\r\n }\r\n}\r\n","<div class=\"file-upload\" [ngClass.lt-sm]=\"'file-upload-mobile'\">\r\n <mat-progress-bar class=\"tld-file-upload-progress\" color=\"primary\" [value]=\"filePreviewProgress\"\r\n *ngIf=\"filePreviewProgress\"></mat-progress-bar>\r\n <button tldDragAndDrop #inputButton mat-button (fileDropped)=\"onFileDrop($event)\" [disabled]=\"disabled\" type=\"button\"\r\n (click)=\"fileInput.click()\" class=\"upload-button text-l\">\r\n <mat-icon *ngIf=\"uploadIconName\">{{uploadIconName}}</mat-icon>\r\n <ng-content></ng-content>\r\n </button>\r\n</div>\r\n<input #fileInput type=\"file\" (change)=\"handleFileInput($event)\" name=\"files\" class=\"native-file-input\"\r\n [accept]=\"allowedExtensions\" [multiple]=\"multiple\" />\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FileUploadComponent } from './file-upload.component';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { DragAndDropModule } from '../directives/drag-and-drop/drag-and-drop.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n\r\n@NgModule({\r\n declarations: [FileUploadComponent],\r\n imports: [\r\n CommonModule,\r\n MatProgressBarModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n DragAndDropModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n FileUploadComponent\r\n ]\r\n})\r\nexport class FileUploadModule { }\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { FilterBarFilterItem } from './models';\r\nimport { FilterBarChangeEvent } from './models/filter-bar-change-event.model';\r\nimport { FilterBarSettings } from './models/filter-bar-settings.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-filter-bar',\r\n templateUrl: './filter-bar.component.html',\r\n styleUrls: ['./filter-bar.component.scss']\r\n})\r\nexport class FilterBarComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(\"filterWrapper\") filterWrapper!: ElementRef;\r\n @HostListener('window:resize', [])\r\n onResize() {\r\n this.checkOverflow();\r\n }\r\n\r\n @Input() settings!: FilterBarSettings;\r\n @Input() set filterRowVisible(value: boolean) {\r\n this._filterRowVisible = value;\r\n this.cdref.detectChanges();\r\n this.checkOverflow();\r\n }\r\n\r\n @Output() filterBarChange: EventEmitter<FilterBarChangeEvent> = new EventEmitter<FilterBarChangeEvent>();\r\n\r\n private _inputText = \"\";\r\n private _filterRowVisible!: boolean;\r\n private formChangesSubscription!: Subscription;\r\n\r\n /** To hide filters, but leave chips visible */\r\n readonly inputFormControlName = \"input\";\r\n readonly filterFormGroup = new FormGroup({});\r\n readonly form = new FormGroup({\r\n [this.inputFormControlName]: new FormControl(\"\"),\r\n filters: this.filterFormGroup\r\n });\r\n\r\n searchTitle!: string;\r\n searchTooltip!: string;\r\n suffixIcon!: string;\r\n prefixIcon!: string;\r\n showSuffixIcon!: boolean;\r\n filters: FilterBarChangeEvent = {\r\n filters: {},\r\n input: \"\"\r\n };\r\n\r\n filterOverflow = false;\r\n activeFilterIndex = 0;\r\n\r\n // when to show filter by name or id on mobile\r\n searchIndex = -1;\r\n\r\n // getter for cleaner template html\r\n get filterFormGroupValue(): { [key: string]: FilterBarFilterItem[] } {\r\n return this.filterFormGroup.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\r\n get filterRowVisible() { return this._filterRowVisible; }\r\n get inputText() {\r\n return this._inputText;\r\n }\r\n get showSearch() {\r\n return !this.settings?.hideSearch;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\r\n set inputText(value) {\r\n this._inputText = value;\r\n this.filters.input = this._inputText;\r\n this.emitFilters();\r\n }\r\n\r\n constructor(private cdref: ChangeDetectorRef, private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.settings.filters?.forEach((field) => {\r\n this.filterFormGroup.addControl(field.fieldName, new FormControl([]));\r\n })\r\n\r\n this.subscribeToFormValueChanges();\r\n this.searchTooltip = this.settings?.searchTooltip ?? 'FILTER_BAR.SEARCH_TOOLTIP';\r\n this.searchTitle = this.settings?.searchTitle ?? 'FILTER_BAR.SEARCH';\r\n this.prefixIcon = this.settings?.prefixIcon ?? \"filter_alt\";\r\n this.suffixIcon = this.settings?.suffixIcon ?? \"question_mark\";\r\n this.showSuffixIcon = this.settings?.showSuffixIcon ?? true;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.checkOverflow();\r\n this.cdref.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.formChangesSubscription.unsubscribe();\r\n }\r\n\r\n emitFilters() {\r\n this.filterBarChange.next(this.filters);\r\n }\r\n\r\n switchRight() {\r\n if (this.settings?.filters && this.settings?.filters.length === this.activeFilterIndex + 1) {\r\n return;\r\n }\r\n this.activeFilterIndex += 1;\r\n }\r\n\r\n switchLeft() {\r\n if (this.activeFilterIndex === this.searchIndex) {\r\n return;\r\n }\r\n this.activeFilterIndex -= 1;\r\n }\r\n\r\n removeFilter(key: string, ix: number) {\r\n const control = this.filterFormGroup.get(key);\r\n\r\n if (!control) {\r\n return;\r\n }\r\n\r\n const newArray = control.value as [];\r\n newArray.splice(ix, 1);\r\n control.setValue(newArray);\r\n }\r\n\r\n private checkOverflow() {\r\n if (this.filterWrapper) {\r\n this.filterOverflow = this.filterWrapper.nativeElement.clientWidth < this.filterWrapper.nativeElement.scrollWidth;\r\n }\r\n }\r\n\r\n private subscribeToFormValueChanges() {\r\n this.formChangesSubscription = this.form.valueChanges.subscribe(() => {\r\n this.filters = {\r\n input: this.form.value.input ?? \"\",\r\n filters: {}\r\n };\r\n\r\n for (const filterKey in this.form.value.filters) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const filter: FilterBarFilterItem[] = (this.form.value.filters as any)[filterKey] as FilterBarFilterItem[];\r\n this.filters.filters[filterKey] = filter.map((item) => item.value)\r\n }\r\n this.emitFilters();\r\n })\r\n }\r\n}\r\n","<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterBarComponent } from './filter-bar.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SortTranslationsByPropertyModule } from '../pipes/sort-translations-by-property';\r\n\r\n@NgModule({\r\n declarations: [\r\n FilterBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n FlexLayoutModule,\r\n MatSelectModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n SortTranslationsByPropertyModule\r\n ],\r\n exports: [\r\n FilterBarComponent\r\n ]\r\n})\r\nexport class FilterBarModule { }\r\n","export const DISABLE_EXPORT_ATTRIBUTE_NAME = \"disable-export\";\r\n","export enum ExportFormat {\r\n CSV = \"csv\"\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { AfterContentInit, AfterViewInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatColumnDef, MatHeaderRowDef, MatNoDataRow, MatRowDef, MatTable } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, take } from 'rxjs';\r\nimport { FilterBarChangeEvent } from '../filter-bar/models/filter-bar-change-event.model';\r\nimport { HtmlElementParseHelper } from '../helpers';\r\nimport { SaveFileHelper } from '../helpers/save-file.helper';\r\nimport { DOMService } from '../services';\r\nimport { DISABLE_EXPORT_ATTRIBUTE_NAME } from './constants/disable-export-attribute-name.const';\r\nimport { ExportFormat, NoDataRowConfig } from './models';\r\nimport { ColumnConfig } from './models/column-config.model';\r\nimport { MultiFunctionalTableConfig } from './models/multi-functional-table-config.model';\r\nimport { SelectedColumnLocalStorageConfig } from './models/selected-column-local-storage-config.model';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-multi-functional-table',\r\n templateUrl: './multi-functional-table.component.html',\r\n styleUrls: ['./multi-functional-table.component.scss']\r\n})\r\nexport class MultiFunctionalTableComponent<T> implements OnInit, AfterContentInit, AfterViewInit {\r\n readonly matSelection = new SelectionModel<T>(true, []);\r\n\r\n @Input() config!: MultiFunctionalTableConfig<T>;\r\n @Input() highlightedElements!: T[];\r\n @Input() set selection(value: T[]) {\r\n this.matSelection.setSelection(...(value ?? []));\r\n }\r\n\r\n //#region Output properties\r\n @Output() filterBarChange: EventEmitter<FilterBarChangeEvent> = new EventEmitter<FilterBarChangeEvent>();\r\n @Output() exported: EventEmitter<T[]> = new EventEmitter<T[]>();\r\n @Output() selectionChange: Observable<T[]> = this.matSelection.changed.asObservable().pipe(map(() => { return this.matSelection.selected; }));\r\n //#endregion\r\n\r\n // #region Properties for mat table wrapper\r\n @ContentChildren(MatHeaderRowDef) headerRowDefs!: QueryList<MatHeaderRowDef>;\r\n @ContentChildren(MatRowDef, { descendants: true }) rowDefs!: QueryList<MatRowDef<T>>;\r\n @ContentChildren(MatColumnDef) columnDefs!: QueryList<MatColumnDef>;\r\n @ContentChild(MatNoDataRow) noDataRow!: MatNoDataRow;\r\n\r\n @ViewChild(MatTable, { static: true }) table!: MatTable<T>;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n //#endregion\r\n\r\n @ViewChild(MatTable, { read: ElementRef }) tableElementRef!: ElementRef<HTMLElement>;\r\n\r\n\r\n get ignoreAttributeName() { return DISABLE_EXPORT_ATTRIBUTE_NAME }\r\n displayColumns!: string[];\r\n\r\n columnSelectActive!: boolean;\r\n exportActive!: boolean;\r\n noDataRowActive!: boolean;\r\n\r\n filterBarVisible!: boolean;\r\n\r\n noDataRowConfig!: NoDataRowConfig;\r\n noDataRowIcon = \"manage_search\";\r\n\r\n configurableColumns!: ColumnConfig[];\r\n batchSelectedEnabled!: boolean;\r\n\r\n // is used in html to display batch checkbox on hovered row\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n hoveredRow: any;\r\n\r\n get filterActive() { return this.config.filter?.enabled; }\r\n\r\n private localStorageValue!: SelectedColumnLocalStorageConfig;\r\n readonly batchColumnName = \"batch\";\r\n\r\n constructor(private readonly domService: DOMService,\r\n private readonly translateService: TranslateService) { }\r\n\r\n //#region Angular lifecycle hooks\r\n ngOnInit(): void {\r\n this.readFromLocalStorage();\r\n this.setFilterVisibility();\r\n this.setColumnSelectProperties();\r\n this.setExportProperties();\r\n this.setNoDataRowProperties();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.columnDefs.forEach(columnDef => this.table.addColumnDef(columnDef));\r\n this.rowDefs.forEach(rowDef => this.table.addRowDef(rowDef));\r\n this.headerRowDefs.forEach(headerRowDef => this.table.addHeaderRowDef(headerRowDef));\r\n this.headerRowDefs.forEach(headerRowDef => this.table.addHeaderRowDef(headerRowDef));\r\n this.table.setNoDataRow(this.noDataRow);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.config.dataSource.sort = this.sort;\r\n }\r\n //#endregion\r\n\r\n updateDisplayColumns(initial = false) {\r\n this.batchSelectedEnabled = this.config.batchConfig?.enabled ? true : false;\r\n const allColumns = this.config.columnSelect?.columns ?? [];\r\n this.displayColumns = [];\r\n this.configurableColumns = allColumns.filter(column => !column.notConfigurable);\r\n\r\n if (this.batchSelectedEnabled) {\r\n this.displayColumns.push(this.batchColumnName);\r\n }\r\n\r\n if (!allColumns.length) {\r\n return;\r\n }\r\n\r\n const localStorageValue = this.localStorageValue ?? {};\r\n if (!localStorageValue.columns) {\r\n localStorageValue.columns = {};\r\n }\r\n\r\n allColumns.forEach((column) => {\r\n if (initial) {\r\n column.selected = localStorageValue.columns?.[column.name] ?? column.selected;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n localStorageValue.columns![column.name] = column.selected;\r\n }\r\n if (column.selected) {\r\n this.displayColumns.push(column.name);\r\n }\r\n })\r\n if (!initial) {\r\n this.updateLocalStorage(localStorageValue);\r\n }\r\n }\r\n\r\n toggleFilterBar() {\r\n const localstorageObject = this.localStorageValue ?? {};\r\n if (!localstorageObject.filter) {\r\n localstorageObject.filter = {};\r\n }\r\n\r\n this.filterBarVisible = !this.filterBarVisible;\r\n localstorageObject.filter.visible = this.filterBarVisible;\r\n this.updateLocalStorage(localstorageObject);\r\n }\r\n\r\n filtersChanged(filters: FilterBarChangeEvent) {\r\n this.filterBarChange.emit(filters);\r\n }\r\n\r\n export() {\r\n this.config.dataSource.connect().pipe(take(1)).subscribe((data) => {\r\n this.exported.emit(data);\r\n })\r\n\r\n if (this.config.export?.fileOptions) {\r\n this.exportToFile()\r\n }\r\n }\r\n\r\n highlightElement(element: T) {\r\n return this.highlightedElements?.includes(element);\r\n }\r\n\r\n //#region Methods for batch selection\r\n isAllSelected() {\r\n const numSelected = this.matSelection.selected.length;\r\n const numRows = this.config.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n toggleAllRowSelection() {\r\n if (this.isAllSelected()) {\r\n this.matSelection.clear();\r\n return;\r\n }\r\n\r\n this.matSelection.select(...this.config.dataSource.data);\r\n }\r\n\r\n toggleElementSelection(element: T) {\r\n this.matSelection.toggle(element);\r\n }\r\n //#endregion\r\n\r\n private exportToFile() {\r\n if (!this.config.export?.fileOptions?.saveToFile) {\r\n return;\r\n }\r\n\r\n let fileString = \"\";\r\n let extension!: ExportFormat;\r\n switch (this.config.export.fileOptions.format) {\r\n case ExportFormat.CSV:\r\n default:\r\n extension = ExportFormat.CSV;\r\n fileString = HtmlElementParseHelper.tableAsCsv(this.tableElementRef.nativeElement, this.ignoreAttributeName);\r\n break;\r\n }\r\n const translatedFileName = this.translateService.instant(this.config.export.fileOptions.fileName);\r\n SaveFileHelper.saveFile(fileString, `${translatedFileName}.${extension}`);\r\n }\r\n\r\n private updateLocalStorage(newValue: SelectedColumnLocalStorageConfig) {\r\n this.localStorageValue = newValue;\r\n if (this.config.localStorageKey && newValue) {\r\n this.domService.localStorage?.setItem(this.config.localStorageKey, JSON.stringify(newValue));\r\n }\r\n }\r\n private readFromLocalStorage() {\r\n if (this.config.localStorageKey) {\r\n try {\r\n const localStorageString = this.domService.localStorage?.getItem(this.config.localStorageKey);\r\n if (localStorageString) {\r\n this.localStorageValue = JSON.parse(localStorageString);\r\n }\r\n }\r\n // eslint-disable-next-line no-empty\r\n catch {\r\n }\r\n }\r\n }\r\n\r\n private setColumnSelectProperties() {\r\n this.columnSelectActive = this.config.columnSelect?.enabled ? true : false;\r\n this.updateDisplayColumns(true);\r\n }\r\n\r\n private setFilterVisibility() {\r\n this.filterBarVisible = this.localStorageValue?.filter?.visible ?? this.config?.filter?.visible ?? false;\r\n }\r\n\r\n private setNoDataRowProperties() {\r\n if (this.config.noDataRow) {\r\n this.noDataRowActive = true;\r\n this.noDataRowConfig = this.config.noDataRow;\r\n if (this.noDataRowConfig.icon) {\r\n this.noDataRowIcon = this.noDataRowConfig.icon;\r\n }\r\n }\r\n }\r\n\r\n private setExportProperties() {\r\n if (this.config.export?.enabled) {\r\n this.exportActive = true;\r\n }\r\n }\r\n}\r\n","<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MultiFunctionalTableComponent } from './multi-functional-table.component';\r\nimport { FilterBarModule } from '../filter-bar';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n MultiFunctionalTableComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatTableModule,\r\n MatButtonModule,\r\n TranslateModule,\r\n MatMenuModule,\r\n MatCheckboxModule,\r\n FormsModule,\r\n FilterBarModule,\r\n FlexLayoutModule,\r\n MatSortModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n MultiFunctionalTableComponent\r\n ]\r\n})\r\nexport class MultiFunctionalTableModule { }\r\n","export enum Confirmation {\r\n PRIMARY = 1,\r\n SECONDARY = 2,\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmationBody } from './models/confirmation-body.model';\r\nimport { Confirmation } from './models/confirmation.enum';\r\n\r\n@Component({\r\n selector: 'lib-confirmation-modal',\r\n templateUrl: './confirmation-modal.component.html',\r\n styleUrls: ['./confirmation-modal.component.scss'],\r\n})\r\nexport class ConfirmationModalComponent {\r\n confirmation = Confirmation;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmationModalComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: ConfirmationBody\r\n ) {\r\n }\r\n}\r\n","<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<div class=\"d-flex justify-content-center\" mat-dialog-actions>\r\n <button mat-flat-button color=\"accent\" [mat-dialog-close]=\"confirmation.PRIMARY\">\r\n {{ data.confirmationText | translate }}\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"ml-3\" [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ConfirmationModalComponent } from './confirmation-modal.component';\r\n\r\n@NgModule({\r\n declarations: [ConfirmationModalComponent],\r\n imports: [CommonModule, MatDialogModule, MatButtonModule, TranslateModule],\r\n exports: [ConfirmationModalComponent],\r\n})\r\nexport class ConfirmationModalModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfirmationModalComponent } from '../confirmation-modal.component';\r\nimport { ConfirmationBody } from '../models/confirmation-body.model';\r\nimport { Confirmation } from '../models/confirmation.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmationService {\r\n\r\n constructor(private readonly dialog: MatDialog) { }\r\n\r\n openDialog(data: ConfirmationBody): Observable<Confirmation> {\r\n const dialogRef = this.dialog.open(ConfirmationModalComponent, {\r\n data: data,\r\n width: '40rem'\r\n });\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-common\r\n */\r\n\r\nexport * from './lib/services';\r\nexport * from './lib/plausible';\r\nexport * from './lib/inline-message';\r\nexport * from './lib/pipes';\r\nexport * from './lib/directives';\r\nexport * from './lib/close-button';\r\nexport * from './lib/notification-message';\r\nexport * from './lib/tld-loader'\r\nexport * from './lib/helpers';\r\nexport * from './lib/company-product';\r\nexport * from './lib/footer';\r\nexport * from './lib/file-upload';\r\nexport * from './lib/filter-bar';\r\nexport * from './lib/multi-functional-table';\r\nexport * from './lib/confirmation-modal';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.CloseButtonComponent","i5","i7","i4","i5.DragAndDropDirective","i6","i10","i11","i13","i14.SortTranslationsByPropertyPipe","i1.DOMService","i8","i9.FilterBarComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOa,WAAW,CAAA;IACtB,WAA6B,CAAA,YAA6B,EACvC,SAAuB,EAAA;QADb,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAiB;QACvC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KACzC;;;;AAKD,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5G,SAAA;KACF;IAED,mBAAmB,CAAC,IAAY,EAAE,GAAW,EAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC;KACxF;IAED,aAAa,CAAC,IAAY,EAAE,SAAkB,EAAA;AAC5C,QAAA,SAAS;AACP,YAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;AAC1G,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;KACxF;8GAtBU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACJD,MAAM,aAAa,GAAmB,OAAO,YAAY,KAAK,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC;AAChG,MAAM,OAAO,GAAkB,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;MAKhE,UAAU,CAAA;AAErB,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,aAAa,CAAC;KACtB;8GARU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACPD;MAGa,eAAe,CAAA;AACxB;;;;AAIG;IACH,OAAO,YAAY,CAAC,MAAc,EAAA;AAC9B,QAAA,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AACpC,QAAA,MAAM,SAAS,GAAQ,UAAU,CAAC,MAAM,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;YACvB,OAAO;AACV,SAAA;QAED,MAAM,YAAY,GAAG,sCAAsC,CAAC;QAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,MAAM,CAAC,GAAG,GAAG,YAAY,CAAC;AAC1B,QAAA,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAC3C,QAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;AAG7B,QAAA,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,KAAK,CAAC,GAAG,MAAW,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA,EAAE,CAAC,CAAA;KAC5I;AAED;;;;;AAKG;AACH,IAAA,OAAO,WAAW,CAAC,EAAU,EAAE,UAAgB,EAAA;QAC3C,MAAM,SAAS,GAAQ,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE;YACvB,OAAO;AACV,SAAA;QACD,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;KAClD;AACJ;;MChCY,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;QAIU,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;;QAER,IAAU,CAAA,UAAA,GAAQ,IAAI,CAAC;AAsBhC,KAAA;;IApBC,IAAa,iBAAiB,CAAC,KAAiC,EAAA;QAC9D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QAExB,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;YACpB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1E,SAAA;KAEF;IAEsB,OAAO,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YAClB,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD,SAAA;KACF;8GAtBU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAChC,iBAAA,CAAA;8BAMc,iBAAiB,EAAA,CAAA;sBAA7B,KAAK;gBAaiB,OAAO,EAAA,CAAA;sBAA7B,YAAY;uBAAC,OAAO,CAAA;;;MCRV,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EATxB,YAAA,EAAA,CAAA,uBAAuB,CAGvB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YANxB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;AACxB,qBAAA;AACF,iBAAA,CAAA;;;IChBW,0BAGX;AAHD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,yBAAA,CAAA,yBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,GAGpC,EAAA,CAAA,CAAA;;MCMY,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;AAMW,QAAA,IAAA,CAAA,iBAAiB,GAAG,yBAAyB,CAAC,GAAG,CAAC;QAElD,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;AAE5B,KAAA;8GALY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,gHCTnC,4qBAUM,EAAA,MAAA,EAAA,CAAA,iiBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDDO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,4qBAAA,EAAA,MAAA,EAAA,CAAA,iiBAAA,CAAA,EAAA,CAAA;8BAOrB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEOK,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CAX5B,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAGtB,YAAY;YACZ,eAAe;AACf,YAAA,gBAAgB,aAGhB,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAR5B,YAAY;YACZ,eAAe;YACf,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,sBAAsB;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ICnBW,kBAIX;AAJD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA;;MCCY,uBAAuB,CAAA;;AAGlC,IAAA,SAAS,CAAC,KAAY,EAAE,MAAc,EAAE,GAAY,EAAA;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAClB,YAAA,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACnB,SAAA;QAED,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEvC,QAAA,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE;AACzB,YAAA,MAAM,WAAW,GAAW,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACzD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE;gBACV,SAAS;AACV,aAAA;AACD,YAAA,IAAI,UAAU,CAAC;AAEf,YAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,kCAAkC,KAAK,CAAA,OAAA,CAAS,CAAC,CAAC;AAClH,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5B,gBAAA,UAAU,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC;AACrC,aAAA;AACI,iBAAA;gBACH,OAAO,GAAG,iBAAiB,CAAC;AAC7B,aAAA;AAED,YAAA,WAAW,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;8GA/BU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;AAC5B,iBAAA,CAAA;;;MCaY,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EATlC,YAAA,EAAA,CAAA,uBAAuB,CAGvB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YANlC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;AACxB,qBAAA;AACF,iBAAA,CAAA;;;AChBD;AAQA;;AAEG;MACU,oBAAoB,CAAA;AAE/B,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;KAAK;AAEpD;;;;;;;AAOG;;IAEH,SAAS,CAAC,OAAmB,EAAE,kBAAiC,EAAE,GAAqB,GAAA,IAAI,EAAE,eAAuB,EAAE,cAAA,GAAgC,IAAI,EAAA;AACxJ,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC/B,QAAA,IAAI,kBAAkB,EAAE;AACtB,YAAA,OAAO,IAAI,UAAU,CAAW,CAAC,UAAU,KAAI;AAC7C,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,KAAI;AACtE,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;AAC7D,oBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAC;AACJ,SAAA;AACI,aAAA;YACH,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,SAAA;KACF;AAEO,IAAA,WAAW,CAAC,KAAY,EAAE,GAAmB,EAAE,YAAkB,EAAA;QACvE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;AACnC,YAAA,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,YAAA,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC;AAEhF,YAAA,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,YAAA,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC;YAEhF,IAAI,YAAY,GAAG,YAAY;gBAC7B,OAAO,CAAC,CAAC,CAAC;iBACP,IAAI,YAAY,GAAG,YAAY;AAClC,gBAAA,OAAO,CAAC,CAAC;;AAET,gBAAA,OAAO,CAAC,CAAC;AACb,SAAC,CAAC,CAAC;KACJ;8GA5CU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAApB,oBAAoB,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA,CAAA;;;MCQY,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EARlB,YAAA,EAAA,CAAA,oBAAoB,CAEjC,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAN/B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;ACRD;;;AAGG;MACU,8BAA8B,CAAA;AACzC,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;KAAI;AAEnD;;;;AAIG;;IAEH,SAAS,CAAC,MAAa,EAAE,eAAuB,EAAA;;QAE9C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;AAC7B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7E,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7E,IAAI,WAAW,GAAG,WAAW;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzC,IAAI,WAAW,GAAG,WAAW;AAAE,gBAAA,OAAO,CAAC,CAAC;AACxC,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;KACf;8GApBU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAA9B,8BAA8B,EAAA,IAAA,EAAA,4BAAA,EAAA,CAAA,CAAA,EAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,4BAA4B;AACnC,iBAAA,CAAA;;;MCIY,gCAAgC,CAAA;8GAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,EAJ5B,YAAA,EAAA,CAAA,8BAA8B,CACnC,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,8BAA8B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,YAHjC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;oBAC9C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,8BAA8B,CAAC;AAC1C,iBAAA,CAAA;;;ACRM,MAAM,oBAAoB,GAAG,mBAAmB;;ACQvD;;AAEG;MACU,WAAW,CAAA;AA+CtB,IAAA,IAAI,SAAS,GAAK,EAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAA,EAAE;AACrF,IAAA,IAAI,eAAe,GAAK,EAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,CAAA,EAAE;AACvG,IAAA,IAAI,kBAAkB,GAAK,EAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,kBAAkB,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAA,EAAE;AAChH,IAAA,IAAI,UAAU,GAAK,EAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAA,EAAE;AACxF,IAAA,IAAI,cAAc,GAAK,EAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,CAAA,EAAE;AAEpG,IAAA,WAAA,CAA6B,SAA2B,EACrC,IAAuB,EACmB,QAAyB,EAAA;QAFzD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QACrC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;QACmB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;AArD7E,QAAA,IAAA,CAAA,eAAe,GAAoB;AAC1C,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,GAAG,EAAE,MAAM;AACX,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,OAAO;AACZ,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,MAAM;AACX,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,MAAM;AACX,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,GAAG,EAAE,EAAE;AACR,iBAAA;AACF,aAAA;AACD,YAAA,kBAAkB,EAAE,UAAU;AAC9B,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,cAAc,EAAE,EAAE;SAEnB,CAAC;KAYD;;AAGD,IAAA,SAAS,CAAC,KAAW,EAAE,qBAAqB,GAAG,IAAI,EAAA;QACjD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAA,CAAA,EAAI,OAAO,CAAC,GAAG,CAAE,CAAA,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KACzG;IAED,gBAAgB,CAAC,KAAW,EAAE,qBAA8B,EAAA;AAC1D,QAAA,IAAI,KAAK,EAAE;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;AAEtF,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,gBAAA,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;;AAIlC,YAAA,IAAI,OAAgB,CAAC;AACrB,YAAA,IAAI,IAAa,CAAC;AAElB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClD,gBAAA,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE;AAC3B,oBAAA,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC;AACpB,oBAAA,IAAI,qBAAqB,IAAI,OAAO,GAAG,CAAC,EAAE;;AAExC,wBAAA,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC;AAC9B,qBAAA;oBACD,MAAM;AACP,iBAAA;AACF,aAAA;YACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AArGU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,qFAuDZ,oBAAoB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAvDnB,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;0BA2DI,MAAM;2BAAC,oBAAoB,CAAA;;0BAAG,QAAQ;;;MC/C9B,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAb,aAAa,EAAA,YAAA,EAAA,CAVtB,WAAW,CAAA,EAAA,OAAA,EAAA,CAGX,YAAY;AACZ,YAAA,eAAe,aAGf,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;AAGF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAPtB,YAAY;YACZ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMN,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,WAAW;AACZ,qBAAA;AACF,iBAAA,CAAA;;;MCZY,qBAAqB,CAAA;AAGhC,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAFhC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAQ,CAAC;KAEH;AAGxC,IAAA,OAAO,CAAC,MAAmB,EAAA;AAChC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;8GAXU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;iGAEW,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAKA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,CAAA;;;MCMtC,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAT3B,YAAA,EAAA,CAAA,qBAAqB,CAGrB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAN3B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;MCVY,oBAAoB,CAAA;AAE/B,IAAA,IAAI,QAAQ,GAAA,EAAK,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAA,EAAE;;;AAQvB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACvD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9B;;;AAI6C,IAAA,WAAW,CAAC,GAAQ,EAAA;QAChE,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;;;AAIwC,IAAA,MAAM,CAAC,GAAQ,EAAA;QACtD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;AACR,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,WAAA,CAA6B,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;;AAjCtC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KAiCK;8GAvC1C,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;iGAKqC,MAAM,EAAA,CAAA;sBAAzC,WAAW;uBAAC,qBAAqB,CAAA;gBAExB,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAI+B,UAAU,EAAA,CAAA;sBAA/C,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAQU,WAAW,EAAA,CAAA;sBAAxD,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAQI,MAAM,EAAA,CAAA;sBAA9C,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCfrB,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAT1B,YAAA,EAAA,CAAA,oBAAoB,CAGpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAN1B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCFY,yBAAyB,CAAA;IAGpC,IAAa,OAAO,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;AAID,IAAA,WAAA,CAAoB,SAAoB,EAC9B,gBAAkC,EAClC,QAAmB,EAAA;QAFT,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAC9B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAZrB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAYS;AAElC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC;KACjD;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;AACR,SAAA;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AACtH,SAAA;KACF;IAEO,cAAc,GAAA;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;8GA/CU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,QAAA,EAAA,qPAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMuB,kCAAA,CAAA;AAClC,iBAAA,CAAA;yJAIc,OAAO,EAAA,CAAA;sBAAnB,KAAK;;;MCJK,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EANlB,YAAA,EAAA,CAAA,yBAAyB,CAEtC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJ/B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;AACzC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;MCJY,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;;;AAQY,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;QAClD,IAAQ,CAAA,QAAA,GAAG,cAAc,CAAC;AASpC,KAAA;IAHC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;8GAZU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,mRCRjC,kRAMS,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDEI,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BAEE,kBAAkB,EAAA,QAAA,EAAA,kRAAA,EAAA,CAAA;8BAMlB,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEoB,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBACf,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEOK,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAjB,iBAAiB,EAAA,YAAA,EAAA,CAZ1B,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAGpB,YAAY;YACZ,eAAe;YACf,eAAe;AACf,YAAA,gBAAgB,aAGhB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAT1B,YAAY;YACZ,eAAe;YACf,eAAe;YACf,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,eAAe;wBACf,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;MCbY,4BAA4B,CAAA;AALzC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AAIlC,QAAA,IAAA,CAAA,SAAS,GAAiD;AACjE,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,SAAS,EAAE,MAAM;SAClB,CAAA;AAmBF,KAAA;IAhBC,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACxD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC9B;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC5B;8GA/BU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,6NCTzC,29DAiCA,EAAA,MAAA,EAAA,CAAA,6wGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDxBa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,29DAAA,EAAA,MAAA,EAAA,CAAA,6wGAAA,CAAA,EAAA,CAAA;8BAK/B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEE,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEWK,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAzB,yBAAyB,EAAA,YAAA,EAAA,CAdlC,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAG5B,YAAY;YACZ,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;YACf,eAAe;AACf,YAAA,YAAY,aAGZ,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA;AAGnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAXlC,YAAY;YACZ,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;YACf,eAAe;YACf,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAhBrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,iBAAiB;wBACjB,eAAe;wBACf,eAAe;wBACf,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,4BAA4B;AAC7B,qBAAA;AACF,iBAAA,CAAA;;;IC1BW,wBAKX;AALD,CAAA,UAAY,uBAAuB,EAAA;AAC/B,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,GAKlC,EAAA,CAAA,CAAA;;MCEY,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,sDCP/B,qTAKA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDEa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,qTAAA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,CAAA;;;MEQf,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,CANpB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAGlB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGb,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,kBAAkB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,kBAAkB;AACrB,qBAAA;AACJ,iBAAA,CAAA;;;MCRY,wBAAwB,CAAA;AACnC,IAAA,MAAM,CAAC,MAAuC,EAAA;;QAE5C,OAAQ,MAAM,CAAC,iBAAyB,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;KACjE;AACF;;MCPY,cAAc,CAAA;AACzB,IAAA,OAAO,QAAQ,CAAC,OAAe,EAAE,QAAgB,EAAA;QAC/C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AACF;;MCTY,sBAAsB,CAAA;AACjC,IAAA,OAAO,UAAU,CAAC,YAAyB,EAAE,mBAA4B,EAAA;QACvE,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACjD,QAAA,MAAM,cAAc,GAAG,mBAAmB,GAAG,CAAA,QAAA,EAAW,mBAAmB,CAAA,WAAA,EAAc,mBAAmB,CAAI,EAAA,CAAA,GAAG,OAAO,CAAC;AAC3H,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;;YAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAY,KAAK,CAAA,CAAA,EAAI,OAAO,CAAC,SAAS,CAAG,CAAA,CAAA,CAAC,CAAC;YAChF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;AACF;;MCNY,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;QAOW,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAEvB,KAAA;8GALY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,+GCPpC,oNAOM,EAAA,MAAA,EAAA,CAAA,yTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDAO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,oNAAA,EAAA,MAAA,EAAA,CAAA,yTAAA,CAAA,EAAA,CAAA;8BAMtB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEKK,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAP7B,YAAA,EAAA,CAAA,uBAAuB,CAGvB,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAJ7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;MCNY,eAAe,CAAA;AAY1B,IAAA,WAAA,GAAA;QATS,IAAiB,CAAA,iBAAA,GAAG,cAAc,CAAC;QACnC,IAAmB,CAAA,mBAAA,GAAG,gBAAgB,CAAA;AAEtC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACxC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACzC,IAAc,CAAA,cAAA,GAAG,sCAAsC,CAAC;QAK/D,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KAC7C;IAED,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5D,SAAA;KACF;8GArBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,sLCR5B,05CA2BA,EAAA,MAAA,EAAA,CAAA,yPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDnBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BAEE,YAAY,EAAA,QAAA,EAAA,05CAAA,EAAA,MAAA,EAAA,CAAA,yPAAA,CAAA,EAAA,CAAA;0EAUb,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEGK,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAZ,YAAY,EAAA,YAAA,EAAA,CAVrB,eAAe,CAAA,EAAA,OAAA,EAAA,CAGf,YAAY;YACZ,gBAAgB;YAChB,eAAe;AACf,YAAA,YAAY,aAEJ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAPrB,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIH,YAAY,EAAA,UAAA,EAAA,CAAA;kBAZxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;ICpBW,wBAKX;AALD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE,CAAA;AACjE,IAAA,uBAAA,CAAA,yCAAA,CAAA,GAAA,yCAAmF,CAAA;AACnF,IAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,sBAAiC,CAAA;AACjC,IAAA,uBAAA,CAAA,YAAA,CAAA,GAAA,mBAAgC,CAAA;AAClC,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,GAKlC,EAAA,CAAA,CAAA;;MCKY,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAUY,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,YAAY,EAAU,CAAC;AAC9D,QAAA,IAAA,CAAA,UAAU,GAAkC,IAAI,YAAY,EAAmB,CAAC;QAClF,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;QAOtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAuE3B,KAAA;IA7EC,IAAa,MAAM,CAAC,GAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;KACnD;IACD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAA,EAAE;AAapC,IAAA,eAAe,CAAC,KAAY,EAAA;AAC1B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;AAChD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAiB,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;;AAID,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AAEO,IAAA,IAAI,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAA;KACF;AAEO,IAAA,SAAS,CAAC,KAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAEO,IAAA,QAAQ,CAAC,KAAe,EAAA;;QAE9B,MAAM,UAAU,GAAW,EAAE,CAAC;AAC9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;gBACtC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1G,OAAO;AACR,aAAA;;YAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,YAAA,IAAI,kBAAkB,EAAE;AACtB,gBAAA,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/F,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvB,aAAA;iBACI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AACjD,gBAAA,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,qCAAqC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5H,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvB,aAAA;AACI,iBAAA;AACH,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;KACzC;AAEO,IAAA,qBAAqB,CAAC,QAAgB,EAAA;AAC5C,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AACzE,QAAA,IACE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAClH,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACI,aAAA;YACH,OAAO,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,uCAAuC,GAAG,uBAAuB,CAAC,8BAA8B,CAAC;AAChL,SAAA;KACF;8GAnFU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEI,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ9C,yuBAWA,EAAA,MAAA,EAAA,CAAA,suBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDDa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BAEE,iBAAiB,EAAA,QAAA,EAAA,yuBAAA,EAAA,MAAA,EAAA,CAAA,suBAAA,CAAA,EAAA,CAAA;8BAKH,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBAC0B,WAAW,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAEpC,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEM,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;;;MENK,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAbZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEhC,YAAY;YACZ,oBAAoB;YACpB,gBAAgB;YAChB,eAAe;YACf,iBAAiB;AACjB,YAAA,aAAa,aAGb,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAXzB,YAAY;YACZ,oBAAoB;YACpB,gBAAgB;YAChB,eAAe;YACf,iBAAiB;YACjB,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMJ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,gBAAgB;wBAChB,eAAe;wBACf,iBAAiB;wBACjB,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;MCTY,kBAAkB,CAAA;IAG7B,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAGD,IAAa,gBAAgB,CAAC,KAAc,EAAA;AAC1C,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;AAiCD,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;KACnC;;IAED,IAAI,gBAAgB,KAAK,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE;AACzD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AACD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;KACnC;;IAGD,IAAI,SAAS,CAAC,KAAK,EAAA;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,WAAoB,CAAA,KAAwB,EAAU,SAA2B,EAAA;QAA7D,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAlDvE,QAAA,IAAA,CAAA,eAAe,GAAuC,IAAI,YAAY,EAAwB,CAAC;QAEjG,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;;QAKf,IAAoB,CAAA,oBAAA,GAAG,OAAO,CAAC;AAC/B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAA,IAAA,GAAG,IAAI,SAAS,CAAC;YAC5B,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,IAAI,CAAC,eAAe;AAC9B,SAAA,CAAC,CAAC;AAOH,QAAA,IAAA,CAAA,OAAO,GAAyB;AAC9B,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC;;QAGtB,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC,CAAC;KAsBqE;IAEtF,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,KAAI;AACvC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,SAAC,CAAC,CAAA;QAEF,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,IAAI,2BAA2B,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,IAAI,mBAAmB,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,IAAI,YAAY,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,IAAI,eAAe,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,IAAI,IAAI,CAAC;KAC7D;IAED,eAAe,GAAA;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;KAC5C;IAED,WAAW,GAAA;QACT,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACzC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE;YAC1F,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;KAC7B;IAED,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,WAAW,EAAE;YAC/C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;KAC7B;IAED,YAAY,CAAC,GAAW,EAAE,EAAU,EAAA;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;AACR,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAW,CAAC;AACrC,QAAA,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACvB,QAAA,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAEO,aAAa,GAAA;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC;AACnH,SAAA;KACF;IAEO,2BAA2B,GAAA;AACjC,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;YACnE,IAAI,CAAC,OAAO,GAAG;gBACb,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;AAClC,gBAAA,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;;AAE/C,gBAAA,MAAM,MAAM,GAA2B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAe,CAAC,SAAS,CAA0B,CAAC;gBAC3G,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAA;AACnE,aAAA;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC,CAAA;KACH;8GA1IU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,uVCd/B,+9EAkDA,EAAA,MAAA,EAAA,CAAA,07BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6NAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,oFAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAY,8BAAA,EAAA,IAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDpCa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BAEE,gBAAgB,EAAA,QAAA,EAAA,+9EAAA,EAAA,MAAA,EAAA,CAAA,07BAAA,CAAA,EAAA,CAAA;yIAKE,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBAE1B,QAAQ,EAAA,CAAA;sBADP,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,CAAA;gBAKxB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAMI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEUI,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,CArBxB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAGlB,YAAY;YACZ,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,eAAe;YACf,WAAW;YACX,gBAAgB;YAChB,eAAe;YACf,cAAc;YACd,aAAa;YACb,mBAAmB;AACnB,YAAA,gCAAgC,aAGhC,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAlBxB,YAAY;YACZ,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,eAAe;YACf,WAAW;YACX,gBAAgB;YAChB,eAAe;YACf,cAAc;YACd,aAAa;YACb,mBAAmB;YACnB,gCAAgC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMvB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAvB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,gBAAgB;wBAChB,eAAe;wBACf,WAAW;wBACX,gBAAgB;wBAChB,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,mBAAmB;wBACnB,gCAAgC;AACjC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;;;ACrCM,MAAM,6BAA6B,GAAG;;ICAjC,aAEX;AAFD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAFW,YAAY,KAAZ,YAAY,GAEvB,EAAA,CAAA,CAAA;;MCoBY,6BAA6B,CAAA;IAKxC,IAAa,SAAS,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;KAClD;AAqBD,IAAA,IAAI,mBAAmB,GAAK,EAAA,OAAO,6BAA6B,CAAA,EAAE;AAmBlE,IAAA,IAAI,YAAY,GAAA,EAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAK1D,WAA6B,CAAA,UAAsB,EAChC,gBAAkC,EAAA;QADxB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAChC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QApD5C,IAAY,CAAA,YAAA,GAAG,IAAI,cAAc,CAAI,IAAI,EAAE,EAAE,CAAC,CAAC;;AAS9C,QAAA,IAAA,CAAA,eAAe,GAAuC,IAAI,YAAY,EAAwB,CAAC;AAC/F,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;AACtD,QAAA,IAAA,CAAA,eAAe,GAAoB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAQ,EAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QA0B9I,IAAa,CAAA,aAAA,GAAG,eAAe,CAAC;QAYvB,IAAe,CAAA,eAAA,GAAG,OAAO,CAAC;KAGuB;;IAG1D,QAAQ,GAAA;QACN,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC;IAED,eAAe,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACzC;;IAGD,oBAAoB,CAAC,OAAO,GAAG,KAAK,EAAA;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEhF,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAChD,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,OAAO;AACR,SAAA;AAED,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;AACvD,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;AAC9B,YAAA,iBAAiB,CAAC,OAAO,GAAG,EAAE,CAAC;AAChC,SAAA;AAED,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC5B,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,MAAM,CAAC,QAAQ,GAAG,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC;AAC/E,aAAA;AACI,iBAAA;;gBAEH,iBAAiB,CAAC,OAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3D,aAAA;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,aAAA;AACH,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC5C,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAC9B,YAAA,kBAAkB,CAAC,MAAM,GAAG,EAAE,CAAC;AAChC,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC/C,kBAAkB,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC1D,QAAA,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;KAC7C;AAED,IAAA,cAAc,CAAC,OAA6B,EAAA;AAC1C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpC;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAChE,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE;YACnC,IAAI,CAAC,YAAY,EAAE,CAAA;AACpB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,OAAU,EAAA;QACzB,OAAO,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;KACpD;;IAGD,aAAa,GAAA;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,OAAO,WAAW,KAAK,OAAO,CAAC;KAChC;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC1D;AAED,IAAA,sBAAsB,CAAC,OAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACnC;;IAGO,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE;YAChD,OAAO;AACR,SAAA;QAED,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,SAAwB,CAAC;QAC7B,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM;YAC3C,KAAK,YAAY,CAAC,GAAG,CAAC;AACtB,YAAA;AACE,gBAAA,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC;AAC7B,gBAAA,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC7G,MAAM;AACT,SAAA;AACD,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClG,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAG,EAAA,kBAAkB,CAAI,CAAA,EAAA,SAAS,CAAE,CAAA,CAAC,CAAC;KAC3E;AAEO,IAAA,kBAAkB,CAAC,QAA0C,EAAA;AACnE,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,QAAQ,EAAE;YAC3C,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9F,SAAA;KACF;IACO,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;YAC/B,IAAI;AACF,gBAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9F,gBAAA,IAAI,kBAAkB,EAAE;oBACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACzD,iBAAA;AACF,aAAA;;YAED,MAAM;AACL,aAAA;AACF,SAAA;KACF;IAEO,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAC3E,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACjC;IAEO,mBAAmB,GAAA;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;KAC1G;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC7C,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAChD,aAAA;AACF,SAAA;KACF;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;KACF;8GAhOU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAZ,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,sTAmB1B,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAHT,eAAe,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EACf,SAAS,EACT,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,YAAY,EAGlB,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,QAAQ,qFACR,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGP,QAAQ,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6BC/CzC,0jIAmFA,EAAA,MAAA,EAAA,CAAA,q1BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gNAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Da,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;+BAEE,4BAA4B,EAAA,QAAA,EAAA,0jIAAA,EAAA,MAAA,EAAA,CAAA,q1BAAA,CAAA,EAAA,CAAA;+HAO7B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAKI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAI2B,aAAa,EAAA,CAAA;sBAA9C,eAAe;uBAAC,eAAe,CAAA;gBACmB,OAAO,EAAA,CAAA;sBAAzD,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAClB,UAAU,EAAA,CAAA;sBAAxC,eAAe;uBAAC,YAAY,CAAA;gBACD,SAAS,EAAA,CAAA;sBAApC,YAAY;uBAAC,YAAY,CAAA;gBAEa,KAAK,EAAA,CAAA;sBAA3C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACjB,IAAI,EAAA,CAAA;sBAAvB,SAAS;uBAAC,OAAO,CAAA;gBAGyB,eAAe,EAAA,CAAA;sBAAzD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;;;MEZ9B,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAA1B,0BAA0B,EAAA,YAAA,EAAA,CAnBnC,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAG7B,YAAY;YACZ,cAAc;YACd,eAAe;YACf,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,WAAW;YACX,eAAe;YACf,gBAAgB;YAChB,aAAa;AACb,YAAA,wBAAwB,aAGxB,6BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA;AAGpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAhBnC,YAAY;YACZ,cAAc;YACd,eAAe;YACf,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,WAAW;YACX,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMf,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBArBtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,6BAA6B;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjB,WAAW;wBACX,eAAe;wBACf,gBAAgB;wBAChB,aAAa;wBACb,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,6BAA6B;AAC9B,qBAAA;AACF,iBAAA,CAAA;;;IClCW,aAGX;AAHD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA;;MCOY,0BAA0B,CAAA;IAGrC,WACS,CAAA,SAAmD,EAC1B,IAAsB,EAAA;QAD/C,IAAS,CAAA,SAAA,GAAT,SAAS,CAA0C;QAC1B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAkB;QAJxD,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;KAM3B;AAPU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,gDAK3B,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AALd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,8DCVvC,grBAkBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDRa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,grBAAA,EAAA,CAAA;;0BAS/B,MAAM;2BAAC,eAAe,CAAA;;;MEHd,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAvB,uBAAuB,EAAA,YAAA,EAAA,CAJnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAC/B,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAC/D,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAEzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAHxB,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG9D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;oBAC1E,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA,CAAA;;;MCDY,mBAAmB,CAAA;AAE9B,IAAA,WAAA,CAA6B,MAAiB,EAAA;QAAjB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;KAAK;AAEnD,IAAA,UAAU,CAAC,IAAsB,EAAA;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC7D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,OAAO;AACf,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;KAChC;8GAXU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACTD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"tilde-nlp-ngx-common.mjs","sources":["../../../projects/ngx-common/src/lib/services/icon.service.ts","../../../projects/ngx-common/src/lib/services/dom.service.ts","../../../projects/ngx-common/src/lib/plausible/plausible.helper.ts","../../../projects/ngx-common/src/lib/plausible/plausible-event.directive.ts","../../../projects/ngx-common/src/lib/plausible/plausible.module.ts","../../../projects/ngx-common/src/lib/inline-message/models/inline-message-icon-position.enum.ts","../../../projects/ngx-common/src/lib/inline-message/inline-message.component.ts","../../../projects/ngx-common/src/lib/inline-message/inline-message.component.html","../../../projects/ngx-common/src/lib/inline-message/inline-message.module.ts","../../../projects/ngx-common/src/lib/inline-message/models/inline-message-type.enum.ts","../../../projects/ngx-common/src/lib/pipes/filter-with-highlight/filter-with-highlight.pipe.ts","../../../projects/ngx-common/src/lib/pipes/filter-with-highlight/filter-with-highlight.module.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations/sort-translations.pipe.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations/sort-translations.module.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations-by-property/sort-translations-by-property.pipe.ts","../../../projects/ngx-common/src/lib/pipes/sort-translations-by-property/sort-translations-by-property.module.ts","../../../projects/ngx-common/src/lib/pipes/date-ago/models/date-ago-settings.token.ts","../../../projects/ngx-common/src/lib/pipes/date-ago/date-ago.pipe.ts","../../../projects/ngx-common/src/lib/pipes/date-ago/date-ago.module.ts","../../../projects/ngx-common/src/lib/directives/click-outside/click-outside.directive.ts","../../../projects/ngx-common/src/lib/directives/click-outside/click-outside.module.ts","../../../projects/ngx-common/src/lib/directives/drag-and-drop/drag-and-drop.directive.ts","../../../projects/ngx-common/src/lib/directives/drag-and-drop/drag-and-drop.module.ts","../../../projects/ngx-common/src/lib/directives/mat-button-loading/mat-button-loading.directive.ts","../../../projects/ngx-common/src/lib/directives/mat-button-loading/mat-button-loading.module.ts","../../../projects/ngx-common/src/lib/close-button/close-button.component.ts","../../../projects/ngx-common/src/lib/close-button/close-button.component.html","../../../projects/ngx-common/src/lib/close-button/close-button.module.ts","../../../projects/ngx-common/src/lib/notification-message/notification-message.component.ts","../../../projects/ngx-common/src/lib/notification-message/notification-message.component.html","../../../projects/ngx-common/src/lib/notification-message/notification-message.module.ts","../../../projects/ngx-common/src/lib/notification-message/enums/notification-message-type.enum.ts","../../../projects/ngx-common/src/lib/tld-loader/tld-loader.component.ts","../../../projects/ngx-common/src/lib/tld-loader/tld-loader.component.html","../../../projects/ngx-common/src/lib/tld-loader/tld-loader.module.ts","../../../projects/ngx-common/src/lib/helpers/missing-translation.helper.ts","../../../projects/ngx-common/src/lib/helpers/save-file.helper.ts","../../../projects/ngx-common/src/lib/helpers/html-element-parse.helper.ts","../../../projects/ngx-common/src/lib/company-product/company-product.component.ts","../../../projects/ngx-common/src/lib/company-product/company-product.component.html","../../../projects/ngx-common/src/lib/company-product/company-product.module.ts","../../../projects/ngx-common/src/lib/footer/footer.component.ts","../../../projects/ngx-common/src/lib/footer/footer.component.html","../../../projects/ngx-common/src/lib/footer/footer.module.ts","../../../projects/ngx-common/src/lib/file-upload/models/file-upload-error-type.enum.ts","../../../projects/ngx-common/src/lib/file-upload/file-upload.component.ts","../../../projects/ngx-common/src/lib/file-upload/file-upload.component.html","../../../projects/ngx-common/src/lib/file-upload/file-upload.module.ts","../../../projects/ngx-common/src/lib/filter-bar/filter-bar.component.ts","../../../projects/ngx-common/src/lib/filter-bar/filter-bar.component.html","../../../projects/ngx-common/src/lib/filter-bar/filter-bar.module.ts","../../../projects/ngx-common/src/lib/multi-functional-table/constants/disable-export-attribute-name.const.ts","../../../projects/ngx-common/src/lib/multi-functional-table/models/export-format.enum.ts","../../../projects/ngx-common/src/lib/multi-functional-table/multi-functional-table.component.ts","../../../projects/ngx-common/src/lib/multi-functional-table/multi-functional-table.component.html","../../../projects/ngx-common/src/lib/multi-functional-table/multi-functional-table.module.ts","../../../projects/ngx-common/src/lib/confirmation-modal/models/confirmation.enum.ts","../../../projects/ngx-common/src/lib/confirmation-modal/confirmation-modal.component.ts","../../../projects/ngx-common/src/lib/confirmation-modal/confirmation-modal.component.html","../../../projects/ngx-common/src/lib/confirmation-modal/confirmation-modal.module.ts","../../../projects/ngx-common/src/lib/confirmation-modal/services/confirmation.service.ts","../../../projects/ngx-common/src/public-api.ts","../../../projects/ngx-common/src/tilde-nlp-ngx-common.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IconService {\r\n constructor(private readonly iconRegistry: MatIconRegistry,\r\n private readonly sanitizer: DomSanitizer) {\r\n }\r\n\r\n //https://material.angular.io/components/icon/examples\r\n /** Registers svg icons to mat icon registry. Icon SVG's should be under some key in object. Icon name can be used with property name in lowercase. */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n registerIcons(icons: any) {\r\n for (const key in icons) {\r\n this.iconRegistry.addSvgIconLiteral(key.toLowerCase(), this.sanitizer.bypassSecurityTrustHtml(icons[key]));\r\n }\r\n }\r\n\r\n registerIconFromUrl(name: string, url: string) {\r\n this.iconRegistry.addSvgIcon(name, this.sanitizer.bypassSecurityTrustResourceUrl(url));\r\n }\r\n\r\n addSvgIconSet(path: string, namespace?: string) {\r\n namespace ?\r\n this.iconRegistry.addSvgIconSetInNamespace(namespace, this.sanitizer.bypassSecurityTrustResourceUrl(path)) :\r\n this.iconRegistry.addSvgIconSet(this.sanitizer.bypassSecurityTrustResourceUrl(path));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nconst _localStorage: Storage | null = typeof localStorage !== 'undefined' ? localStorage : null;\r\nconst _window: Window | null = typeof window !== 'undefined' ? window : null;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DOMService {\r\n\r\n get window(): Window | null {\r\n return _window;\r\n }\r\n\r\n get localStorage(): Storage | null {\r\n return _localStorage;\r\n }\r\n\r\n\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { DOMService } from \"../services\";\r\n\r\nexport class PlausibleHelper {\r\n /**\r\n * Adds plausible for selected domain and adds additional script for custom event (goal) triggering\r\n * @param domain domain that is registered in your plausible account\r\n * @returns\r\n */\r\n static addPlausible(domain: string) {\r\n const domService = new DOMService();\r\n const windowObj: any = domService.window;\r\n if (!windowObj || !domain) {\r\n return;\r\n }\r\n\r\n const plausibleSrc = \"https://plausible.io/js/plausible.js\";\r\n const script = document.createElement(\"script\");\r\n script.src = plausibleSrc;\r\n script.setAttribute(\"data-domain\", domain);\r\n document.head.append(script);\r\n\r\n // Add plausible custom event functionality https://plausible.io/docs/custom-event-goals#code-example-for-tracking-link-clicks\r\n windowObj.plausible = windowObj.plausible || ((...params: any) => { (windowObj.plausible.q = windowObj.plausible.q || []).push(params) })\r\n }\r\n\r\n /**\r\n * Emits custom plausible event\r\n * @param id plausible event id that should be the same as registered in plausible\r\n * @param properties an object with custom properties for the event\r\n * @returns\r\n */\r\n static customEvent(id: string, properties?: any) {\r\n const windowObj: any = window;\r\n if (!windowObj?.plausible) {\r\n return;\r\n }\r\n windowObj.plausible(id, { props: properties });\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { PlausibleEvent } from './models';\r\nimport { PlausibleHelper } from './plausible.helper';\r\n\r\n@Directive({\r\n selector: '[libPlausibleEvent]'\r\n})\r\nexport class PlausibleEventDirective {\r\n private id = \"\";\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private properties: any = null;\r\n /** Plausible event id. */\r\n @Input() set libPlausibleEvent(value: PlausibleEvent | undefined) {\r\n if (!value) {\r\n return;\r\n }\r\n this.id = value.eventId;\r\n\r\n if (value.properties) {\r\n this.properties = {}\r\n value.properties.forEach(item => this.properties[item.key] = item.value);\r\n }\r\n\r\n }\r\n\r\n @HostListener(\"click\") onClick() {\r\n if (this.id.length) {\r\n PlausibleHelper.customEvent(this.id, this.properties);\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PlausibleEventDirective } from './plausible-event.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PlausibleEventDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n PlausibleEventDirective\r\n ]\r\n})\r\nexport class PlausibleModule { }\r\n","export enum InlineMessageIconPosition {\r\n START,\r\n END\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { InlineMessageIconPosition } from './models/inline-message-icon-position.enum';\r\nimport { InlineMessage } from './models/inline-message.model';\r\n\r\n@Component({\r\n selector: 'lib-inline-message',\r\n templateUrl: './inline-message.component.html',\r\n styleUrls: ['./inline-message.component.scss']\r\n})\r\nexport class InlineMessageComponent {\r\n readonly END_ICON_POSITION = InlineMessageIconPosition.END;\r\n\r\n @Input() iconName = \"info\";\r\n @Input() message!: InlineMessage;\r\n}\r\n","<div class=\"tld-inline-message {{message.type}}\">\r\n <span class=\"material-icons\" [class.order-end]=\"message.iconPosition === END_ICON_POSITION\"\r\n [matTooltip]=\"message.iconTooltip? (message.iconTooltip | translate: message.localizationParams) : ''\" *ngIf=\"iconName\">{{iconName}}</span>\r\n <section *ngIf=\"message\">\r\n <div class=\"text-s-semi-bold title\" *ngIf=\"message.title\"\r\n [innerHtml]=\"message.title | translate: message.localizationParams\">\r\n </div>\r\n <p class=\"text-s description\" *ngIf=\"message.description\" [innerHtml]=\"message.description | translate:\r\n message.localizationParams\"></p>\r\n </section>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InlineMessageComponent } from './inline-message.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n InlineMessageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n MatTooltipModule\r\n ],\r\n exports: [\r\n InlineMessageComponent\r\n ]\r\n})\r\nexport class InlineMessageModule { }\r\n","export enum InlineMessageType {\r\n INFO = 'info',\r\n WARNING = 'warning',\r\n ERROR = 'error'\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterWithHighlight'\r\n})\r\nexport class FilterWithHighlightPipe implements PipeTransform {\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform(value: any[], filter: string, key?: string): any[] {\r\n if (!filter.length) {\r\n return [...value];\r\n }\r\n\r\n const filteredArr = [];\r\n const regex = new RegExp(filter, 'gi');\r\n\r\n for (let element of value) {\r\n const elementText: string = key ? element[key] : element;\r\n const match = elementText.match(regex);\r\n if (!match) {\r\n continue;\r\n }\r\n let newElement;\r\n\r\n const textWithHighlight = elementText.replace(regex, (match) => `<span class=\"filter-highlight\">${match}</span>`);\r\n if (key) {\r\n newElement = { ...element };\r\n newElement[key] = textWithHighlight;\r\n }\r\n else {\r\n element = textWithHighlight;\r\n }\r\n\r\n filteredArr.push(newElement ?? element);\r\n }\r\n return filteredArr;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterWithHighlightPipe } from './filter-with-highlight.pipe';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FilterWithHighlightPipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n FilterWithHighlightPipe\r\n ]\r\n})\r\nexport class FilterWithHighlightModule { }\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Pipe({\r\n name: 'sortTranslations'\r\n})\r\n/**\r\n * Pipe used to sort translated values.\r\n */\r\nexport class SortTranslationsPipe implements PipeTransform {\r\n\r\n constructor(private translate: TranslateService) { }\r\n\r\n /**\r\n *\r\n * @param objects array of objects to be sorted\r\n * @param localizationPrefix prefix for localization code. This is used to get necessary object translations.\r\n * @param key Which object property needs to be used for sorting.\r\n * @param currentLanguage This is necessary to update values if language is changed.\r\n * @returns \r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n transform(objects: Array<any>, localizationPrefix: string | null, key: string | null = null, currentLanguage: string, translationKey: string | null = null): Observable<Array<any>> {\r\n const arrayCopy = [...objects];\r\n if (localizationPrefix) {\r\n return new Observable<string[]>((subscriber) => {\r\n this.translate.get(localizationPrefix ?? \"\").subscribe((translations) => {\r\n const array = this.sortObjects(arrayCopy, key, translations);\r\n subscriber.next(array);\r\n subscriber.complete();\r\n })\r\n });\r\n }\r\n else {\r\n return of(this.sortObjects(arrayCopy, key));\r\n }\r\n }\r\n\r\n private sortObjects(array: any[], key?: string | null, translations?: any):any[] {\r\n return array.sort((a: any, b: any) => {\r\n const aValue = key ? a[key] : a;\r\n const aTranslation = translations ? translations[aValue.toUpperCase()] : aValue;\r\n\r\n const bValue = key ? b[key] : b;\r\n const bTranslation = translations ? translations[bValue.toUpperCase()] : bValue;\r\n\r\n if (aTranslation < bTranslation)\r\n return -1;\r\n else if (aTranslation > bTranslation)\r\n return 1;\r\n else\r\n return 0;\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SortTranslationsPipe } from './sort-translations.pipe';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [SortTranslationsPipe],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n SortTranslationsPipe\r\n ]\r\n})\r\nexport class SortTranslationsModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'sortTranslationsByProperty',\r\n})\r\n/**\r\n * Pipe transforms an array of objects by sorting them based on a provided localization key in A-Z order.\r\n * Unlike the \"sortTranslations\" pipe, it does not require knowledge of the current language, and it does not require the use of the async pipe.\r\n */\r\nexport class SortTranslationsByPropertyPipe implements PipeTransform {\r\n constructor(private translate: TranslateService) {}\r\n\r\n /**\r\n * Transforms the input array of objects by sorting them based on the specified sortingValueKey.\r\n * @param values An array of objects to be sorted.\r\n * @param sortingValueKey The key by which the provided values should be sorted.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform(values: any[], sortingValueKey: string): any {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n values.sort((a: any, b: any) => {\r\n const aTranslated = this.translate.instant(a[sortingValueKey]).toLowerCase();\r\n const bTranslated = this.translate.instant(b[sortingValueKey]).toLowerCase();\r\n if (aTranslated < bTranslated) return -1;\r\n if (aTranslated > bTranslated) return 1;\r\n return 0;\r\n });\r\n\r\n return values;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SortTranslationsByPropertyPipe } from './sort-translations-by-property.pipe';\r\n\r\n@NgModule({\r\n declarations: [SortTranslationsByPropertyPipe],\r\n imports: [CommonModule],\r\n exports: [SortTranslationsByPropertyPipe],\r\n})\r\nexport class SortTranslationsByPropertyModule {}\r\n","export const DateAgoSettingsToken = \"DATE_AGO_SETTINGS\";\r\n","import { ChangeDetectorRef, Inject, Optional, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\r\nimport { DateAgo, DateAgoSettings, DateAgoSettingsToken } from './models';\r\n\r\n@Pipe({\r\n name: 'dateAgo',\r\n pure: false\r\n})\r\n/**\r\n * Pipe that converts date to date ago and returns translated string.\r\n */\r\nexport class DateAgoPipe implements PipeTransform {\r\n\r\n readonly defaultSettings: DateAgoSettings = {\r\n intervals: [\r\n {\r\n key: \"YEAR\",\r\n interval: 31536000,\r\n min: 1\r\n },\r\n {\r\n key: \"MONTH\",\r\n interval: 2592000,\r\n min: 1\r\n },\r\n {\r\n key: \"WEEK\",\r\n interval: 604800,\r\n min: 2\r\n },\r\n {\r\n key: \"DAY\",\r\n interval: 86400,\r\n min: 1\r\n },\r\n {\r\n key: \"HOUR\",\r\n interval: 3600,\r\n min: 1\r\n },\r\n {\r\n key: \"MINUTE\",\r\n interval: 60,\r\n min: 1\r\n },\r\n {\r\n key: \"SECOND\",\r\n interval: 1,\r\n min: 10\r\n }\r\n ],\r\n localizationPrefix: \"DATE_AGO\",\r\n multiplePostfix: \"S\",\r\n justNowKey: \"JUST_NOW\",\r\n justNowSeconds: 29\r\n\r\n };\r\n\r\n get intervals() { return this.settings?.intervals ?? this.defaultSettings.intervals }\r\n get multiplePostfix() { return this.settings?.multiplePostfix ?? this.defaultSettings.multiplePostfix }\r\n get localizationPrefix() { return this.settings?.localizationPrefix ?? this.defaultSettings.localizationPrefix }\r\n get justNowKey() { return this.settings?.justNowKey ?? this.defaultSettings.justNowKey }\r\n get justNowSeconds() { return this.settings?.justNowSeconds ?? this.defaultSettings.justNowSeconds }\r\n\r\n constructor(private readonly translate: TranslateService,\r\n private readonly _ref: ChangeDetectorRef,\r\n @Inject(DateAgoSettingsToken) @Optional() private readonly settings: DateAgoSettings) {\r\n\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform(value: Date, enableMultiplePostfix = true): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const dateAgo = this.calculateDateAgo(value, enableMultiplePostfix);\r\n if (!dateAgo) {\r\n return \"\";\r\n }\r\n\r\n const translatePipe = new TranslatePipe(this.translate, this._ref);\r\n return translatePipe.transform(`${this.localizationPrefix}.${dateAgo.key}`, { value: dateAgo.howMany });\r\n }\r\n\r\n calculateDateAgo(value: Date, enableMultiplePostfix: boolean): DateAgo | null {\r\n if (value) {\r\n const seconds = Math.floor((new Date().getTime() - new Date(value).getTime()) / 1000);\r\n\r\n if (seconds < this.justNowSeconds || Number.isNaN(seconds)) // less than 30 seconds ago will show as 'Just now'\r\n return { key: this.justNowKey };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n\r\n let counter!: number;\r\n let type!: string;\r\n\r\n for (let i = 0; i < this.intervals.length; i++) {\r\n const interval = this.intervals[i];\r\n counter = Math.floor(seconds / interval.interval);\r\n if (counter >= interval.min) {\r\n type = interval.key;\r\n if (enableMultiplePostfix && counter > 1) {\r\n // add \"S\" in the end of localization key\r\n type += this.multiplePostfix;\r\n }\r\n break;\r\n }\r\n }\r\n return { key: type, howMany: counter };\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DateAgoPipe } from './date-ago.pipe';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DateAgoPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule\r\n ],\r\n exports: [\r\n DateAgoPipe\r\n ]\r\n})\r\nexport class DateAgoModule { }\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[clickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n @Output() clickOutside = new EventEmitter<void>();\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target: HTMLElement) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ClickOutsideDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n ClickOutsideDirective\r\n ]\r\n})\r\nexport class ClickOutsideModule { }\r\n","import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[tldDragAndDrop]'\r\n})\r\nexport class DragAndDropDirective {\r\n\r\n get disabled() { return this.element.nativeElement.disabled }\r\n\r\n @HostBinding('class.tld-file-over') active!: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Output() fileDropped = new EventEmitter<any>();\r\n\r\n // Dragover listener\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @HostListener('dragover', ['$event']) onDragOver(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = !this.disabled;\r\n }\r\n\r\n // Dragleave listener\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n }\r\n\r\n // Drop listener\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n if (this.disabled) {\r\n return;\r\n }\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n\r\n constructor(private readonly element: ElementRef) { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DragAndDropDirective } from './drag-and-drop.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DragAndDropDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n DragAndDropDirective\r\n ]\r\n})\r\nexport class DragAndDropModule { }\r\n","import { ComponentRef, Directive, Input, Renderer2, ViewContainerRef } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: `button[mat-button][loading],\r\n button[mat-raised-button][loading],\r\n button[mat-icon-button][loading],\r\n button[mat-fab][loading],\r\n button[mat-mini-fab][loading],\r\n button[mat-stroked-button][loading],\r\n button[mat-flat-button][loading]`\r\n})\r\nexport class MatButtonLoadingDirective {\r\n\r\n private _loading = false;\r\n @Input() set loading(value: boolean) {\r\n if (value != this._loading) {\r\n this._loading = value;\r\n this.updateState();\r\n }\r\n }\r\n\r\n private spinner!: ComponentRef<MatProgressSpinner> | null;\r\n\r\n constructor(private matButton: MatButton,\r\n private viewContainerRef: ViewContainerRef,\r\n private renderer: Renderer2) { }\r\n\r\n get nativeElement(): HTMLElement {\r\n return this.matButton._elementRef.nativeElement;\r\n }\r\n\r\n updateState(): void {\r\n if (this._loading) {\r\n this.nativeElement.classList.add('mat-loading');\r\n this.matButton.disabled = true;\r\n this.createSpinner();\r\n return;\r\n }\r\n this.nativeElement.classList.remove('mat-loading');\r\n this.matButton.disabled = false;\r\n this.destroySpinner();\r\n }\r\n\r\n private createSpinner(): void {\r\n if (!this.spinner) {\r\n this.spinner = this.viewContainerRef.createComponent(MatProgressSpinner);\r\n this.spinner.instance.color = this.matButton.color;\r\n this.spinner.instance.diameter = 20;\r\n this.spinner.instance.mode = 'indeterminate';\r\n this.renderer.appendChild(this.matButton._elementRef.nativeElement, this.spinner.instance._elementRef.nativeElement);\r\n }\r\n }\r\n\r\n private destroySpinner(): void {\r\n if (this.spinner) {\r\n this.spinner.destroy();\r\n this.spinner = null;\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonLoadingDirective } from './mat-button-loading.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [MatButtonLoadingDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [MatButtonLoadingDirective]\r\n})\r\nexport class MatButtonLoadingModule { }\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-close-button',\r\n templateUrl: './close-button.component.html'\r\n})\r\nexport class CloseButtonComponent {\r\n // any type because emitter doesn't really need a value\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Output() tldClick: EventEmitter<any> = new EventEmitter();\r\n @Input() ariaCode = \"CLOSE_BUTTON\";\r\n // This property is created so it is easier to access real button from outside component.\r\n @ViewChild(\"clearButton\") clearButton!: MatButton;\r\n @Input() disabled!: boolean;\r\n @Input() tooltip!: string;\r\n\r\n clicked() {\r\n this.tldClick.emit(null);\r\n }\r\n}\r\n","<button [matTooltip]=\"tooltip | translate\"\r\n#clearButton mat-icon-button (click)=\"clicked()\" [attr.aria-label]=\"'ARIA_LABELS.'+ariaCode | translate\"\r\n [disabled]=\"disabled\">\r\n <span class=\"material-icons\">\r\n close\r\n </span>\r\n</button>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CloseButtonComponent } from './close-button.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CloseButtonComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n TranslateModule,\r\n MatTooltipModule\r\n ],\r\n exports: [\r\n CloseButtonComponent\r\n ]\r\n})\r\nexport class CloseButtonModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NotificationMessageType } from './enums/notification-message-type.enum';\r\nimport { NotificationMessage } from './interfaces/notification-message.model';\r\n\r\n@Component({\r\n selector: 'lib-tld-notification-message',\r\n templateUrl: './notification-message.component.html',\r\n styleUrls: ['./notification-message.component.scss']\r\n})\r\nexport class NotificationMessageComponent implements OnInit {\r\n @Input() message!: NotificationMessage;\r\n\r\n @Output() buttonClicked = new EventEmitter();\r\n @Output() closeClicked = new EventEmitter();\r\n @Output() linkClicked = new EventEmitter();\r\n /** Adds additional class that makes message to take less space on screen. */\r\n @Input() inline!: boolean;\r\n\r\n readonly iconNames: { [key in NotificationMessageType]: string } = {\r\n \"BASIC\": \"info\",\r\n \"ERROR\": \"error\",\r\n \"SUCCESS\": \"check_circle\",\r\n \"WARNING\": \"info\",\r\n }\r\n className!: string;\r\n\r\n ngOnInit(): void {\r\n this.className = this.message.type.toLocaleLowerCase();\r\n }\r\n\r\n buttonClick() {\r\n this.buttonClicked.next(null)\r\n }\r\n\r\n closeClick() {\r\n this.closeClicked.next(null)\r\n }\r\n\r\n linkClick(){\r\n this.linkClicked.next(null)\r\n }\r\n\r\n}\r\n","<div class=\"notification-message {{className}}\">\r\n <div class=\"notification-message-container tld-default-border\" [ngClass.lt-md]=\"'mobile'\" [class.inline]=\"inline\"\r\n fxLayout=\"row\" fxLayoutAlign=\"start start\" [attr.id]=\"message.id\" aria-live=\"polite\" fxLayout=\"row\">\r\n <span class=\"material-icons message-icon\">\r\n {{iconNames[message.type]}}\r\n </span>\r\n <div class=\"items-container\" fxFlex>\r\n <div fxLayout=\"row\">\r\n <div class=\"text-container\" fxFlex>\r\n <h1 *ngIf=\"message.title\" class=\"message-title\"\r\n [innerHtml]=\"message.title | translate: message.localizationParams\"></h1>\r\n <p *ngIf=\"message.body\" class=\"message-body\">\r\n <span [innerHtml]=\"message.body | translate: message.localizationParams\"></span>\r\n <span *ngIf=\"message.support\" [innerHtml]=\"message.support | translate: message.localizationParams\"></span>\r\n </p>\r\n </div>\r\n <tld-close-button *ngIf=\"!message.hideClose\" class=\"close-button\" (tldClick)=\"closeClick()\">\r\n </tld-close-button>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"16px\" fxLayoutAlign=\"start center\"\r\n *ngIf=\"message.buttonText || message.linkHref || message.routerLink\">\r\n <button class=\"message-action-button\" color=\"accent\" mat-flat-button *ngIf=\"message.buttonText\"\r\n (click)=\"buttonClick()\">{{message.buttonText | translate}} </button>\r\n <a class=\"message-action-link\" *ngIf=\"message.linkHref && message.linkText\" (click)=\"linkClick()\"\r\n [attr.href]=\"message.linkHref\">{{message.linkText |\r\n translate}}</a>\r\n <a class=\"message-action-link\" *ngIf=\"message.routerLink && message.linkText\" (click)=\"linkClick()\"\r\n [routerLink]=\"[message.routerLink]\">{{message.linkText |\r\n translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CloseButtonModule } from '../close-button/close-button.module';\r\nimport { NotificationMessageComponent } from './notification-message.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NotificationMessageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n CloseButtonModule,\r\n MatButtonModule,\r\n TranslateModule,\r\n RouterModule\r\n ],\r\n exports: [\r\n NotificationMessageComponent\r\n ]\r\n})\r\nexport class NotificationMessageModule { }\r\n","export enum NotificationMessageType{\r\n BASIC = \"BASIC\",\r\n WARNING = \"WARNING\",\r\n SUCCESS = \"SUCCESS\",\r\n ERROR = \"ERROR\"\r\n}","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tld-loader',\r\n templateUrl: './tld-loader.component.html',\r\n styleUrls: ['./tld-loader.component.scss']\r\n})\r\nexport class TldLoaderComponent {\r\n}\r\n","<div class=\"tld-loader accent-color\" fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div class=\"accent-bg-color tld-loader-element element-1\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-2\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-3\"></div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { TldLoaderComponent } from './tld-loader.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TldLoaderComponent\r\n ],\r\n exports: [\r\n TldLoaderComponent\r\n ]\r\n})\r\nexport class TldLoaderModule { }\r\n","import { MissingTranslationHandler, MissingTranslationHandlerParams } from \"@ngx-translate/core\";\r\n\r\nexport class MissingTranslationHelper implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return (params.interpolateParams as any)?.default || params.key;\r\n }\r\n}\r\n","export class SaveFileHelper {\r\n static saveFile(content: string, fileName: string) {\r\n const file = new Blob([content]);\r\n const link = document.createElement(\"a\");\r\n link.href = URL.createObjectURL(file);\r\n link.download = fileName;\r\n link.click();\r\n link.remove();\r\n }\r\n}\r\n","export class HtmlElementParseHelper {\r\n static tableAsCsv(tableElement: HTMLElement, ignoreAttributeName?: string) {\r\n const csv_data = [];\r\n const rows = tableElement.querySelectorAll('tr');\r\n const columnSelector = ignoreAttributeName ? `td:not([${ignoreAttributeName}]),th:not([${ignoreAttributeName}])` : `td,th`;\r\n for (let i = 0; i < rows.length; i++) {\r\n const cols = rows[i].querySelectorAll(columnSelector);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const csvrow = Array.from(cols).map((element: any) => `\"${element.innerText}\"`);\r\n csv_data.push(csvrow.join(\",\"));\r\n }\r\n return csv_data.join('\\n');\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-company-product',\r\n templateUrl: './company-product.component.html',\r\n styleUrls: ['./company-product.component.scss']\r\n})\r\nexport class CompanyProductComponent{\r\n\r\n @Input() company = \"\";\r\n @Input() product = \"\";\r\n\r\n}\r\n","<div fxHide.lt-md class=\"tilde-product-title\">\r\n <span class=\"company\">\r\n {{company | uppercase}}\r\n </span>\r\n <span class=\"product\">\r\n {{product}}\r\n </span>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CompanyProductComponent } from './company-product.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CompanyProductComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [CompanyProductComponent]\r\n})\r\nexport class CompanyProductModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n currentYear!: number;\r\n\r\n readonly defaultTermsRoute = \"terms-of-use\";\r\n readonly defaultPrivacyRoute = \"privacy-policy\"\r\n\r\n @Input() privacyRoute = this.defaultPrivacyRoute;\r\n @Input() termsOfUseRoute = this.defaultTermsRoute;\r\n @Input() contactUsRoute = \"https://tilde.com/about/get-in-touch\";\r\n\r\n @Input() baseUrl!: string;\r\n\r\n constructor() {\r\n this.currentYear = new Date().getFullYear();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.baseUrl) {\r\n this.privacyRoute = this.baseUrl + this.privacyRoute;\r\n this.termsOfUseRoute = this.baseUrl + this.termsOfUseRoute;\r\n }\r\n }\r\n\r\n}\r\n","<footer fxLayout=\"row\" class=\"text-m\">\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutAlign.xs=\"center center\" fxLayout.xs=\"column\"\r\n fxLayoutGap=\"16px\">\r\n <div>\r\n {{ 'FOOTER.TITLE' | translate: {currentYear: currentYear} }}\r\n </div>\r\n <div fxLayoutGap=\"1rem\">\r\n <ng-container *ngIf=\"baseUrl; else localRoutes\">\r\n <a class=\"semi-bold\" *ngIf=\"termsOfUseRoute\" [attr.href]=\"termsOfUseRoute\" target=\"_blank\"> {{\r\n 'FOOTER.TERMS_OF_USE' |\r\n translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"privacyRoute\" [attr.href]=\"privacyRoute\" target=\"_blank\"> {{ 'FOOTER.PRIVACY'\r\n | translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"contactUsRoute\" [routerLink]=\"[contactUsRoute]\"> {{ 'FOOTER.CONTACT_US'| translate\r\n }}</a>\r\n\r\n </ng-container>\r\n <ng-template #localRoutes>\r\n <a class=\"semi-bold\" *ngIf=\"termsOfUseRoute\" [routerLink]=\"[termsOfUseRoute]\"> {{ 'FOOTER.TERMS_OF_USE' |\r\n translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"privacyRoute\" [routerLink]=\"[privacyRoute]\"> {{ 'FOOTER.PRIVACY'| translate }}</a>\r\n <a class=\"semi-bold\" *ngIf=\"contactUsRoute\" [routerLink]=\"[contactUsRoute]\"> {{ 'FOOTER.CONTACT_US'| translate\r\n }}</a>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FooterComponent } from './footer.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n TranslateModule,\r\n RouterModule\r\n ],\r\n exports: [FooterComponent]\r\n})\r\nexport class FooterModule { }\r\n","export enum FileUploadErrorTypeEnum{\r\n FILE_UPLOAD_UNSUPPORTED_FORMAT = \"FILE_UPLOAD_UNSUPPORTED_FORMAT\",\r\n FILE_UPLOAD_UNSUPPORTED_FORMAT_REGISTER = \"FILE_UPLOAD_UNSUPPORTED_FORMAT_REGISTER\",\r\n MAX_SIZE = \"FILE_UPLOAD_MAX_SIZE\",\r\n FILE_EMPTY = \"FILE_UPLOAD_EMPTY\"\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FileUploadErrorTypeEnum } from './models/file-upload-error-type.enum';\r\nimport { FileUploadError } from './models/file-upload-error.model';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss']\r\n})\r\nexport class FileUploadComponent {\r\n @ViewChild('fileInput') fileInput!: ElementRef;\r\n @ViewChild('inputButton', { read: ElementRef }) inputButton!: ElementRef;\r\n\r\n @Output() fileChange: EventEmitter<File[]> = new EventEmitter<File[]>();\r\n @Output() errorEvent: EventEmitter<FileUploadError> = new EventEmitter<FileUploadError>();\r\n private _accept: string[] = [];\r\n @Input() set accept(val: string[]) {\r\n this._accept = val;\r\n this.allowedExtensions = val ? val.join(\",\") : \"\";\r\n }\r\n get accept() { return this._accept }\r\n @Input() maxSize!: number;\r\n @Input() multiple = false;\r\n @Input() filePreviewProgress!: number;\r\n @Input() allowEmpty!: boolean;\r\n @Input() disabled!: boolean;\r\n @Input() uploadIconName!: string;\r\n\r\n /** same as accept but for registered users. It changes error message if extension is supported for registered users. */\r\n @Input() extendedAcceptList!: string[];\r\n\r\n allowedExtensions!: string;\r\n\r\n handleFileInput(event: Event) {\r\n const target = event.target as HTMLInputElement;\r\n const files = target.files as FileList;\r\n this.validate(files);\r\n }\r\n\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onFileDrop(files: any) {\r\n this.validate(files);\r\n }\r\n\r\n private emit(files: File[]) {\r\n if (files && files.length > 0) {\r\n this.fileChange.emit(files);\r\n }\r\n }\r\n\r\n private emitError(error: FileUploadError) {\r\n this.errorEvent.emit(error);\r\n }\r\n\r\n private validate(files: FileList) {\r\n //let size = 0;\r\n const validFiles: File[] = [];\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files[i];\r\n if (!this.allowEmpty && file.size == 0) {\r\n this.emitError({ code: FileUploadErrorTypeEnum.FILE_EMPTY, error: \"File is empty\", fileName: file.name });\r\n return;\r\n }\r\n //size += file.size;\r\n const extensionErrorCode = this.getExtensionErrorCode(file.name);\r\n if (extensionErrorCode) {\r\n const error = { code: extensionErrorCode, error: \"Not valid extension.\", fileName: file.name };\r\n this.emitError(error);\r\n }\r\n else if (this.maxSize && file.size > this.maxSize) {\r\n const error = { code: FileUploadErrorTypeEnum.MAX_SIZE, error: \"Maximum allowed file size exceeded.\", fileName: file.name };\r\n this.emitError(error);\r\n }\r\n else {\r\n validFiles.push(file);\r\n }\r\n }\r\n\r\n this.emit(validFiles);\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n\r\n private getExtensionErrorCode(fileName: string): FileUploadErrorTypeEnum | null {\r\n const extension = fileName.slice(fileName.lastIndexOf('.')).toLowerCase()\r\n if (\r\n this.accept.length == 0 || (this.accept.length == 1 && this.accept[0] == '*') || this.accept.includes(extension)) {\r\n return null;\r\n }\r\n else {\r\n return this.extendedAcceptList?.includes(extension) ? FileUploadErrorTypeEnum.FILE_UPLOAD_UNSUPPORTED_FORMAT_REGISTER : FileUploadErrorTypeEnum.FILE_UPLOAD_UNSUPPORTED_FORMAT;\r\n }\r\n }\r\n}\r\n","<div class=\"file-upload\" [ngClass.lt-sm]=\"'file-upload-mobile'\">\r\n <mat-progress-bar class=\"tld-file-upload-progress\" color=\"primary\" [value]=\"filePreviewProgress\"\r\n *ngIf=\"filePreviewProgress\"></mat-progress-bar>\r\n <button tldDragAndDrop #inputButton mat-button (fileDropped)=\"onFileDrop($event)\" [disabled]=\"disabled\" type=\"button\"\r\n (click)=\"fileInput.click()\" class=\"upload-button text-l\">\r\n <mat-icon *ngIf=\"uploadIconName\">{{uploadIconName}}</mat-icon>\r\n <ng-content></ng-content>\r\n </button>\r\n</div>\r\n<input #fileInput type=\"file\" (change)=\"handleFileInput($event)\" name=\"files\" class=\"native-file-input\"\r\n [accept]=\"allowedExtensions\" [multiple]=\"multiple\" />\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FileUploadComponent } from './file-upload.component';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { DragAndDropModule } from '../directives/drag-and-drop/drag-and-drop.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n\r\n@NgModule({\r\n declarations: [FileUploadComponent],\r\n imports: [\r\n CommonModule,\r\n MatProgressBarModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n DragAndDropModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n FileUploadComponent\r\n ]\r\n})\r\nexport class FileUploadModule { }\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { FilterBarFilterItem } from './models';\r\nimport { FilterBarChangeEvent } from './models/filter-bar-change-event.model';\r\nimport { FilterBarSettings } from './models/filter-bar-settings.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-filter-bar',\r\n templateUrl: './filter-bar.component.html',\r\n styleUrls: ['./filter-bar.component.scss']\r\n})\r\nexport class FilterBarComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(\"filterWrapper\") filterWrapper!: ElementRef;\r\n @HostListener('window:resize', [])\r\n onResize() {\r\n this.checkOverflow();\r\n }\r\n\r\n @Input() settings!: FilterBarSettings;\r\n @Input() set filterRowVisible(value: boolean) {\r\n this._filterRowVisible = value;\r\n this.cdref.detectChanges();\r\n this.checkOverflow();\r\n }\r\n\r\n @Output() filterBarChange: EventEmitter<FilterBarChangeEvent> = new EventEmitter<FilterBarChangeEvent>();\r\n\r\n private _inputText = \"\";\r\n private _filterRowVisible!: boolean;\r\n private formChangesSubscription!: Subscription;\r\n\r\n /** To hide filters, but leave chips visible */\r\n readonly inputFormControlName = \"input\";\r\n readonly filterFormGroup = new FormGroup({});\r\n readonly form = new FormGroup({\r\n [this.inputFormControlName]: new FormControl(\"\"),\r\n filters: this.filterFormGroup\r\n });\r\n\r\n searchTitle!: string;\r\n searchTooltip!: string;\r\n suffixIcon!: string;\r\n prefixIcon!: string;\r\n showSuffixIcon!: boolean;\r\n filters: FilterBarChangeEvent = {\r\n filters: {},\r\n input: \"\"\r\n };\r\n\r\n filterOverflow = false;\r\n activeFilterIndex = 0;\r\n\r\n // when to show filter by name or id on mobile\r\n searchIndex = -1;\r\n\r\n // getter for cleaner template html\r\n get filterFormGroupValue(): { [key: string]: FilterBarFilterItem[] } {\r\n return this.filterFormGroup.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\r\n get filterRowVisible() { return this._filterRowVisible; }\r\n get inputText() {\r\n return this._inputText;\r\n }\r\n get showSearch() {\r\n return !this.settings?.hideSearch;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\r\n set inputText(value) {\r\n this._inputText = value;\r\n this.filters.input = this._inputText;\r\n this.emitFilters();\r\n }\r\n\r\n constructor(private cdref: ChangeDetectorRef, private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.settings.filters?.forEach((field) => {\r\n this.filterFormGroup.addControl(field.fieldName, new FormControl([]));\r\n })\r\n\r\n this.subscribeToFormValueChanges();\r\n this.searchTooltip = this.settings?.searchTooltip ?? 'FILTER_BAR.SEARCH_TOOLTIP';\r\n this.searchTitle = this.settings?.searchTitle ?? 'FILTER_BAR.SEARCH';\r\n this.prefixIcon = this.settings?.prefixIcon ?? \"filter_alt\";\r\n this.suffixIcon = this.settings?.suffixIcon ?? \"question_mark\";\r\n this.showSuffixIcon = this.settings?.showSuffixIcon ?? true;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.checkOverflow();\r\n this.cdref.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.formChangesSubscription.unsubscribe();\r\n }\r\n\r\n emitFilters() {\r\n this.filterBarChange.next(this.filters);\r\n }\r\n\r\n switchRight() {\r\n if (this.settings?.filters && this.settings?.filters.length === this.activeFilterIndex + 1) {\r\n return;\r\n }\r\n this.activeFilterIndex += 1;\r\n }\r\n\r\n switchLeft() {\r\n if (this.activeFilterIndex === this.searchIndex) {\r\n return;\r\n }\r\n this.activeFilterIndex -= 1;\r\n }\r\n\r\n removeFilter(key: string, ix: number) {\r\n const control = this.filterFormGroup.get(key);\r\n\r\n if (!control) {\r\n return;\r\n }\r\n\r\n const newArray = control.value as [];\r\n newArray.splice(ix, 1);\r\n control.setValue(newArray);\r\n }\r\n\r\n private checkOverflow() {\r\n if (this.filterWrapper) {\r\n this.filterOverflow = this.filterWrapper.nativeElement.clientWidth < this.filterWrapper.nativeElement.scrollWidth;\r\n }\r\n }\r\n\r\n private subscribeToFormValueChanges() {\r\n this.formChangesSubscription = this.form.valueChanges.subscribe(() => {\r\n this.filters = {\r\n input: this.form.value.input ?? \"\",\r\n filters: {}\r\n };\r\n\r\n for (const filterKey in this.form.value.filters) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const filter: FilterBarFilterItem[] = (this.form.value.filters as any)[filterKey] as FilterBarFilterItem[];\r\n this.filters.filters[filterKey] = filter.map((item) => item.value)\r\n }\r\n this.emitFilters();\r\n })\r\n }\r\n}\r\n","<div class=\"filter-row\" *ngIf=\"filterRowVisible\">\r\n <div fxLayout=\"row\" class=\"filter-wrapper\" #filterWrapper [formGroup]=\"form\">\r\n <mat-form-field fxFlex *ngIf=\"showSearch && !filterOverflow || activeFilterIndex === searchIndex\" class=\"filter-bar-search-input\">\r\n <span matPrefix class=\"material-icons-outlined\">\r\n {{prefixIcon}}\r\n </span>\r\n <span matSuffix class=\"material-icons-outlined\" *ngIf=\"showSuffixIcon\" [matTooltip]=\"searchTooltip | translate\">\r\n {{suffixIcon}}\r\n </span>\r\n <input class=\"search-input\" matInput [placeholder]=\"searchTitle | translate\"\r\n [formControlName]=\"inputFormControlName\">\r\n </mat-form-field>\r\n <ng-container [formGroup]=\"filterFormGroup\">\r\n\r\n <mat-form-field [ngClass]=\"{'hidden': filterOverflow && activeFilterIndex !== i, 'engine-filter': !filterOverflow}\" *ngFor=\"let filter of settings?.filters; let i = index\">\r\n <mat-label>{{filter.title | translate}}</mat-label>\r\n <mat-select multiple [formControlName]=\"filter.fieldName\">\r\n <ng-container *ngIf=\"filter.values.length\">\r\n <mat-option *ngFor=\"let value of filter.values | sortTranslationsByProperty:'key'\" [value]=\"value\">\r\n {{value.key | translate : {default: value.value | titlecase } }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n <button mat-icon-button (click)=\"switchLeft()\" *ngIf=\"filterOverflow\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_back_ios\r\n </span>\r\n </button>\r\n <button mat-icon-button *ngIf=\"filterOverflow\" (click)=\"switchRight()\">\r\n <span class=\"material-icons-outlined\">\r\n arrow_forward_ios\r\n </span>\r\n </button>\r\n</div>\r\n<mat-chip-listbox>\r\n <div *ngFor=\"let filter of settings?.filters\">\r\n <mat-chip-option *ngFor=\"let filterValue of filterFormGroupValue[filter.fieldName]; let ix=index\"\r\n (removed)=\"removeFilter(filter.fieldName, ix)\" class=\"text-s\">\r\n <button matChipRemove>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <span class=\"chip-filter-title\">{{filter.title | translate}}:</span>\r\n <span class=\"chip-value semi-bold\"> {{filterValue.key | translate : {default: filterValue.value | titlecase }\r\n }}</span>\r\n </mat-chip-option>\r\n </div>\r\n</mat-chip-listbox>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterBarComponent } from './filter-bar.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SortTranslationsByPropertyModule } from '../pipes/sort-translations-by-property';\r\n\r\n@NgModule({\r\n declarations: [\r\n FilterBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n FlexLayoutModule,\r\n MatSelectModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n SortTranslationsByPropertyModule\r\n ],\r\n exports: [\r\n FilterBarComponent\r\n ]\r\n})\r\nexport class FilterBarModule { }\r\n","export const DISABLE_EXPORT_ATTRIBUTE_NAME = \"disable-export\";\r\n","export enum ExportFormat {\r\n CSV = \"csv\"\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { AfterContentInit, AfterViewInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatColumnDef, MatHeaderRowDef, MatNoDataRow, MatRowDef, MatTable } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, take } from 'rxjs';\r\nimport { FilterBarChangeEvent } from '../filter-bar/models/filter-bar-change-event.model';\r\nimport { HtmlElementParseHelper } from '../helpers';\r\nimport { SaveFileHelper } from '../helpers/save-file.helper';\r\nimport { DOMService } from '../services';\r\nimport { DISABLE_EXPORT_ATTRIBUTE_NAME } from './constants/disable-export-attribute-name.const';\r\nimport { ExportFormat, NoDataRowConfig } from './models';\r\nimport { ColumnConfig } from './models/column-config.model';\r\nimport { MultiFunctionalTableConfig } from './models/multi-functional-table-config.model';\r\nimport { SelectedColumnLocalStorageConfig } from './models/selected-column-local-storage-config.model';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'tld-multi-functional-table',\r\n templateUrl: './multi-functional-table.component.html',\r\n styleUrls: ['./multi-functional-table.component.scss']\r\n})\r\nexport class MultiFunctionalTableComponent<T> implements OnInit, AfterContentInit, AfterViewInit {\r\n readonly matSelection = new SelectionModel<T>(true, []);\r\n\r\n @Input() config!: MultiFunctionalTableConfig<T>;\r\n @Input() highlightedElements!: T[];\r\n @Input() set selection(value: T[]) {\r\n this.matSelection.setSelection(...(value ?? []));\r\n }\r\n\r\n //#region Output properties\r\n @Output() filterBarChange: EventEmitter<FilterBarChangeEvent> = new EventEmitter<FilterBarChangeEvent>();\r\n @Output() exported: EventEmitter<T[]> = new EventEmitter<T[]>();\r\n @Output() selectionChange: Observable<T[]> = this.matSelection.changed.asObservable().pipe(map(() => { return this.matSelection.selected; }));\r\n //#endregion\r\n\r\n // #region Properties for mat table wrapper\r\n @ContentChildren(MatHeaderRowDef) headerRowDefs!: QueryList<MatHeaderRowDef>;\r\n @ContentChildren(MatRowDef, { descendants: true }) rowDefs!: QueryList<MatRowDef<T>>;\r\n @ContentChildren(MatColumnDef) columnDefs!: QueryList<MatColumnDef>;\r\n @ContentChild(MatNoDataRow) noDataRow!: MatNoDataRow;\r\n\r\n @ViewChild(MatTable, { static: true }) table!: MatTable<T>;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n //#endregion\r\n\r\n @ViewChild(MatTable, { read: ElementRef }) tableElementRef!: ElementRef<HTMLElement>;\r\n\r\n\r\n get ignoreAttributeName() { return DISABLE_EXPORT_ATTRIBUTE_NAME }\r\n displayColumns!: string[];\r\n\r\n columnSelectActive!: boolean;\r\n exportActive!: boolean;\r\n noDataRowActive!: boolean;\r\n\r\n filterBarVisible!: boolean;\r\n\r\n noDataRowConfig!: NoDataRowConfig;\r\n noDataRowIcon = \"manage_search\";\r\n\r\n configurableColumns!: ColumnConfig[];\r\n batchSelectedEnabled!: boolean;\r\n\r\n // is used in html to display batch checkbox on hovered row\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n hoveredRow: any;\r\n\r\n get filterActive() { return this.config.filter?.enabled; }\r\n\r\n private localStorageValue!: SelectedColumnLocalStorageConfig;\r\n readonly batchColumnName = \"batch\";\r\n\r\n constructor(private readonly domService: DOMService,\r\n private readonly translateService: TranslateService) { }\r\n\r\n //#region Angular lifecycle hooks\r\n ngOnInit(): void {\r\n this.readFromLocalStorage();\r\n this.setFilterVisibility();\r\n this.setColumnSelectProperties();\r\n this.setExportProperties();\r\n this.setNoDataRowProperties();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.columnDefs.forEach(columnDef => this.table.addColumnDef(columnDef));\r\n this.rowDefs.forEach(rowDef => this.table.addRowDef(rowDef));\r\n this.headerRowDefs.forEach(headerRowDef => this.table.addHeaderRowDef(headerRowDef));\r\n this.headerRowDefs.forEach(headerRowDef => this.table.addHeaderRowDef(headerRowDef));\r\n this.table.setNoDataRow(this.noDataRow);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.config.dataSource.sort = this.sort;\r\n }\r\n //#endregion\r\n\r\n updateDisplayColumns(initial = false) {\r\n this.batchSelectedEnabled = this.config.batchConfig?.enabled ? true : false;\r\n const allColumns = this.config.columnSelect?.columns ?? [];\r\n this.displayColumns = [];\r\n this.configurableColumns = allColumns.filter(column => !column.notConfigurable);\r\n\r\n if (this.batchSelectedEnabled) {\r\n this.displayColumns.push(this.batchColumnName);\r\n }\r\n\r\n if (!allColumns.length) {\r\n return;\r\n }\r\n\r\n const localStorageValue = this.localStorageValue ?? {};\r\n if (!localStorageValue.columns) {\r\n localStorageValue.columns = {};\r\n }\r\n\r\n allColumns.forEach((column) => {\r\n if (initial) {\r\n column.selected = localStorageValue.columns?.[column.name] ?? column.selected;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n localStorageValue.columns![column.name] = column.selected;\r\n }\r\n if (column.selected) {\r\n this.displayColumns.push(column.name);\r\n }\r\n })\r\n if (!initial) {\r\n this.updateLocalStorage(localStorageValue);\r\n }\r\n }\r\n\r\n toggleFilterBar() {\r\n const localstorageObject = this.localStorageValue ?? {};\r\n if (!localstorageObject.filter) {\r\n localstorageObject.filter = {};\r\n }\r\n\r\n this.filterBarVisible = !this.filterBarVisible;\r\n localstorageObject.filter.visible = this.filterBarVisible;\r\n this.updateLocalStorage(localstorageObject);\r\n }\r\n\r\n filtersChanged(filters: FilterBarChangeEvent) {\r\n this.filterBarChange.emit(filters);\r\n }\r\n\r\n export() {\r\n this.config.dataSource.connect().pipe(take(1)).subscribe((data) => {\r\n this.exported.emit(data);\r\n })\r\n\r\n if (this.config.export?.fileOptions) {\r\n this.exportToFile()\r\n }\r\n }\r\n\r\n highlightElement(element: T) {\r\n return this.highlightedElements?.includes(element);\r\n }\r\n\r\n //#region Methods for batch selection\r\n isAllSelected() {\r\n const numSelected = this.matSelection.selected.length;\r\n const numRows = this.config.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n toggleAllRowSelection() {\r\n if (this.isAllSelected()) {\r\n this.matSelection.clear();\r\n return;\r\n }\r\n\r\n this.matSelection.select(...this.config.dataSource.data);\r\n }\r\n\r\n toggleElementSelection(element: T) {\r\n this.matSelection.toggle(element);\r\n }\r\n //#endregion\r\n\r\n private exportToFile() {\r\n if (!this.config.export?.fileOptions?.saveToFile) {\r\n return;\r\n }\r\n\r\n let fileString = \"\";\r\n let extension!: ExportFormat;\r\n switch (this.config.export.fileOptions.format) {\r\n case ExportFormat.CSV:\r\n default:\r\n extension = ExportFormat.CSV;\r\n fileString = HtmlElementParseHelper.tableAsCsv(this.tableElementRef.nativeElement, this.ignoreAttributeName);\r\n break;\r\n }\r\n const translatedFileName = this.translateService.instant(this.config.export.fileOptions.fileName);\r\n SaveFileHelper.saveFile(fileString, `${translatedFileName}.${extension}`);\r\n }\r\n\r\n private updateLocalStorage(newValue: SelectedColumnLocalStorageConfig) {\r\n this.localStorageValue = newValue;\r\n if (this.config.localStorageKey && newValue) {\r\n this.domService.localStorage?.setItem(this.config.localStorageKey, JSON.stringify(newValue));\r\n }\r\n }\r\n private readFromLocalStorage() {\r\n if (this.config.localStorageKey) {\r\n try {\r\n const localStorageString = this.domService.localStorage?.getItem(this.config.localStorageKey);\r\n if (localStorageString) {\r\n this.localStorageValue = JSON.parse(localStorageString);\r\n }\r\n }\r\n // eslint-disable-next-line no-empty\r\n catch {\r\n }\r\n }\r\n }\r\n\r\n private setColumnSelectProperties() {\r\n this.columnSelectActive = this.config.columnSelect?.enabled ? true : false;\r\n this.updateDisplayColumns(true);\r\n }\r\n\r\n private setFilterVisibility() {\r\n this.filterBarVisible = this.localStorageValue?.filter?.visible ?? this.config?.filter?.visible ?? false;\r\n }\r\n\r\n private setNoDataRowProperties() {\r\n if (this.config.noDataRow) {\r\n this.noDataRowActive = true;\r\n this.noDataRowConfig = this.config.noDataRow;\r\n if (this.noDataRowConfig.icon) {\r\n this.noDataRowIcon = this.noDataRowConfig.icon;\r\n }\r\n }\r\n }\r\n\r\n private setExportProperties() {\r\n if (this.config.export?.enabled) {\r\n this.exportActive = true;\r\n }\r\n }\r\n}\r\n","<div fxLayout=\"column\" fxLayoutGap=\"1rem\">\r\n\r\n <div fxLayout=\"row\">\r\n <div fxFlex fxLayoutGap=\"1rem\">\r\n <button mat-button [matMenuTriggerFor]=\"columnMenu\" *ngIf=\"columnSelectActive\">\r\n <span class=\"material-icons column-select-icon\">menu</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.COLUMN_SELECT' | translate}}</span>\r\n </button>\r\n\r\n <button mat-button *ngIf=\"filterActive\" (click)=\"toggleFilterBar()\">\r\n <span class=\"material-icons\">filter_list</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.FILTER_TOGGLE' | translate}}</span>\r\n </button>\r\n\r\n <button class=\"export-data\" mat-stroked-button *ngIf=\"exportActive\" (click)=\"export()\">\r\n <span class=\"material-icons-outlined\">cloud_download</span>\r\n <span>{{'MULTI_FUNCTIONAL_TABLE.EXPORT' | translate}}</span>\r\n </button>\r\n </div>\r\n\r\n <ng-content select=\"[additionalActions]\"></ng-content>\r\n </div>\r\n\r\n <mat-menu #columnMenu=\"matMenu\">\r\n <div class=\"column-select-wrapper\" (click)=\"$event.stopPropagation()\">\r\n <div *ngFor=\"let column of configurableColumns\">\r\n <mat-checkbox [(ngModel)]=\"column.selected\" (change)=\"updateDisplayColumns()\">\r\n {{column.displayName | translate}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <tld-filter-bar *ngIf=\"config.filter && config.filter.enabled\" [filterRowVisible]=\"!filterBarVisible\" [settings]=\"config.filter.settings\" \r\n (filterBarChange)=\"filtersChanged($event)\">\r\n </tld-filter-bar>\r\n\r\n <div class=\"table-overflow\">\r\n <table #table mat-table [dataSource]=\"config.dataSource\">\r\n <ng-content></ng-content>\r\n <ng-container [matColumnDef]=\"batchColumnName\">\r\n <th class=\"row-select\" mat-header-cell *matHeaderCellDef disable-export>\r\n <mat-checkbox [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (change)=\"toggleAllRowSelection()\"\r\n [checked]=\"matSelection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"matSelection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td class=\"row-select\" mat-cell *matCellDef=\"let element\" disable-export>\r\n <mat-checkbox *ngIf=\"hoveredRow === element || matSelection.isSelected(element)\" [disabled]=\"config.batchConfig!.checkBoxesDisabled\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"toggleElementSelection(element)\" [checked]=\"matSelection.isSelected(element)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\" sticky></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayColumns\" (mouseover)=\"hoveredRow = row\" (mouseleave)=\"hoveredRow = null\" [class.highlight]=\"highlightElement(row)\"></tr>\r\n\r\n <ng-container *ngIf=\"noDataRowActive\">\r\n <tr *matNoDataRow>\r\n <!-- add random number to make sure it takes full width -->\r\n <td colspan=\"99\">\r\n <div class=\"no-data-wrapper\">\r\n <ng-container *ngIf=\"!noDataRowConfig.loading; else loading\">\r\n <div>\r\n <span class=\"material-icons-outlined\">\r\n {{noDataRowIcon}}\r\n </span>\r\n </div>\r\n <div class=\"text-xl-semi-bold\" *ngIf=\"noDataRowConfig.title\"\r\n [innerHtml]=\"noDataRowConfig.title | translate: noDataRowConfig.titleParams\">\r\n </div>\r\n <div class=\"text-l\" *ngIf=\"noDataRowConfig.description\"\r\n [innerHtml]=\"noDataRowConfig.description | translate: noDataRowConfig.descriptionParams\"></div>\r\n </ng-container>\r\n <ng-template #loading>\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MultiFunctionalTableComponent } from './multi-functional-table.component';\r\nimport { FilterBarModule } from '../filter-bar';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n MultiFunctionalTableComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatTableModule,\r\n MatButtonModule,\r\n TranslateModule,\r\n MatMenuModule,\r\n MatCheckboxModule,\r\n FormsModule,\r\n FilterBarModule,\r\n FlexLayoutModule,\r\n MatSortModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n MultiFunctionalTableComponent\r\n ]\r\n})\r\nexport class MultiFunctionalTableModule { }\r\n","export enum Confirmation {\r\n PRIMARY = 1,\r\n SECONDARY = 2,\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmationBody } from './models/confirmation-body.model';\r\nimport { Confirmation } from './models/confirmation.enum';\r\n\r\n@Component({\r\n selector: 'lib-confirmation-modal',\r\n templateUrl: './confirmation-modal.component.html',\r\n styleUrls: ['./confirmation-modal.component.scss'],\r\n})\r\nexport class ConfirmationModalComponent {\r\n confirmation = Confirmation;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmationModalComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: ConfirmationBody\r\n ) {\r\n }\r\n}\r\n","<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<div class=\"d-flex justify-content-center\" mat-dialog-actions>\r\n <button mat-flat-button color=\"accent\" [mat-dialog-close]=\"confirmation.PRIMARY\">\r\n {{ data.confirmationText | translate }}\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"ml-3\" [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ConfirmationModalComponent } from './confirmation-modal.component';\r\n\r\n@NgModule({\r\n declarations: [ConfirmationModalComponent],\r\n imports: [CommonModule, MatDialogModule, MatButtonModule, TranslateModule],\r\n exports: [ConfirmationModalComponent],\r\n})\r\nexport class ConfirmationModalModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfirmationModalComponent } from '../confirmation-modal.component';\r\nimport { ConfirmationBody } from '../models/confirmation-body.model';\r\nimport { Confirmation } from '../models/confirmation.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmationService {\r\n\r\n constructor(private readonly dialog: MatDialog) { }\r\n\r\n openDialog(data: ConfirmationBody): Observable<Confirmation> {\r\n const dialogRef = this.dialog.open(ConfirmationModalComponent, {\r\n data: data,\r\n width: '40rem'\r\n });\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-common\r\n */\r\n\r\nexport * from './lib/services';\r\nexport * from './lib/plausible';\r\nexport * from './lib/inline-message';\r\nexport * from './lib/pipes';\r\nexport * from './lib/directives';\r\nexport * from './lib/close-button';\r\nexport * from './lib/notification-message';\r\nexport * from './lib/tld-loader'\r\nexport * from './lib/helpers';\r\nexport * from './lib/company-product';\r\nexport * from './lib/footer';\r\nexport * from './lib/file-upload';\r\nexport * from './lib/filter-bar';\r\nexport * from './lib/multi-functional-table';\r\nexport * from './lib/confirmation-modal';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.CloseButtonComponent","i5","i7","i4","i5.DragAndDropDirective","i6","i10","i11","i13","i14.SortTranslationsByPropertyPipe","i1.DOMService","i8","i9.FilterBarComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,3 +16,18 @@
|
|
|
16
16
|
display: flex;
|
|
17
17
|
gap: 1rem;
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
.responsive-dialog .mat-mdc-dialog-container {
|
|
21
|
+
width: 100% !important;
|
|
22
|
+
min-width: 0 !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.mat-mdc-dialog-content {
|
|
26
|
+
color: inherit !important;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@media (max-width: 959px) {
|
|
30
|
+
.cdk-overlay-pane {
|
|
31
|
+
max-width: 100% !important;
|
|
32
|
+
}
|
|
33
|
+
}
|