@recursyve/nice-data-filter-kit 13.1.7 → 14.0.1
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/esm2020/lib/components/base-list/base-list.component.mjs +20 -20
- package/esm2020/lib/components/base-list/base-list.module.mjs +22 -24
- package/esm2020/lib/components/base-list/directives/base-list-buttons.directive.mjs +3 -3
- package/esm2020/lib/components/base-list/directives/base-list-cards.directive.mjs +3 -3
- package/esm2020/lib/components/base-list/directives/base-list-custom-content.directive.mjs +3 -3
- package/esm2020/lib/components/base-list/directives/base-list-directives.module.mjs +4 -4
- package/esm2020/lib/components/base-list/directives/base-list-empty-state.directive.mjs +3 -3
- package/esm2020/lib/components/base-list/directives/base-list-filters.directive.mjs +3 -3
- package/esm2020/lib/components/base-list/directives/base-list-table.directive.mjs +9 -6
- package/esm2020/lib/components/base-list/directives/base-list-title.directive.mjs +3 -3
- package/esm2020/lib/components/base-list/providers/base-filter.service.mjs +3 -3
- package/esm2020/lib/components/base-list/providers/base-list-saved-report.service.mjs +3 -3
- package/esm2020/lib/components/base-list/store/base-list.query.mjs +3 -3
- package/esm2020/lib/components/base-list/store/base-list.service.mjs +3 -3
- package/esm2020/lib/components/base-list/store/base-list.store.mjs +3 -3
- package/esm2020/lib/components/multi-state-list/multi-state-list.component.mjs +19 -19
- package/esm2020/lib/components/multi-state-list/multi-state-list.module.mjs +22 -24
- package/esm2020/lib/components/multi-state-list/store/multi-state-list.query.mjs +3 -3
- package/esm2020/lib/components/multi-state-list/store/multi-state-list.service.mjs +3 -3
- package/esm2020/lib/components/multi-state-list/store/multi-state-list.store.mjs +3 -3
- package/esm2020/lib/components/query-builder/filter-selection/filter-selection.component.mjs +8 -8
- package/esm2020/lib/components/query-builder/pipes/filter-group-icon.pipe.mjs +3 -3
- package/esm2020/lib/components/query-builder/query-builder-trigger.directive.mjs +3 -3
- package/esm2020/lib/components/query-builder/query-builder.component.mjs +10 -10
- package/esm2020/lib/components/query-builder/query-builder.module.mjs +21 -23
- package/esm2020/lib/components/query-builder/rule/components/date/date-filter.component.mjs +7 -7
- package/esm2020/lib/components/query-builder/rule/components/filter.component.mjs +3 -3
- package/esm2020/lib/components/query-builder/rule/components/number/number-filter.component.mjs +7 -7
- package/esm2020/lib/components/query-builder/rule/components/radio/radio-filter.component.mjs +6 -6
- package/esm2020/lib/components/query-builder/rule/components/select/select-filter.component.mjs +8 -8
- package/esm2020/lib/components/query-builder/rule/components/text/text-filter.component.mjs +7 -7
- package/esm2020/lib/components/query-builder/rule/rule.component.mjs +15 -15
- package/esm2020/lib/utils/date.adapter.mjs +3 -3
- package/fesm2015/recursyve-nice-data-filter-kit.mjs +373 -376
- package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/fesm2020/recursyve-nice-data-filter-kit.mjs +373 -376
- package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/{recursyve-nice-data-filter-kit.d.ts → index.d.ts} +0 -0
- package/lib/components/base-list/base-list.component.d.ts +3 -2
- package/lib/components/base-list/directives/base-list-buttons.directive.d.ts +1 -1
- package/lib/components/base-list/directives/base-list-cards.directive.d.ts +1 -1
- package/lib/components/base-list/directives/base-list-custom-content.directive.d.ts +1 -1
- package/lib/components/base-list/directives/base-list-empty-state.directive.d.ts +1 -1
- package/lib/components/base-list/directives/base-list-filters.directive.d.ts +1 -1
- package/lib/components/base-list/directives/base-list-table.directive.d.ts +2 -1
- package/lib/components/base-list/directives/base-list-title.directive.d.ts +1 -1
- package/lib/components/multi-state-list/multi-state-list.component.d.ts +1 -1
- package/lib/components/query-builder/filter-selection/filter-selection.component.d.ts +1 -1
- package/lib/components/query-builder/pipes/filter-group-icon.pipe.d.ts +1 -1
- package/lib/components/query-builder/query-builder-trigger.directive.d.ts +1 -1
- package/lib/components/query-builder/query-builder.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/date/date-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/number/number-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/radio/radio-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/select/select-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/text/text-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/rule.component.d.ts +1 -1
- package/package.json +10 -10
|
@@ -13,19 +13,19 @@ import * as i2 from "@angular/router";
|
|
|
13
13
|
import * as i3 from "@angular/material/bottom-sheet";
|
|
14
14
|
import * as i4 from "@recursyve/nice-ui-kit.v2";
|
|
15
15
|
import * as i5 from "./store/multi-state-list.service";
|
|
16
|
-
import * as i6 from "@angular/
|
|
17
|
-
import * as i7 from "@angular/
|
|
18
|
-
import * as i8 from "@angular/material/
|
|
19
|
-
import * as i9 from "@angular/material/
|
|
20
|
-
import * as i10 from "
|
|
21
|
-
import * as i11 from "@angular/material/
|
|
22
|
-
import * as i12 from "@angular/material/
|
|
23
|
-
import * as i13 from "@angular/
|
|
24
|
-
import * as i14 from "@angular/
|
|
25
|
-
import * as i15 from "
|
|
26
|
-
import * as i16 from "
|
|
27
|
-
import * as i17 from "
|
|
28
|
-
import * as i18 from "@angular/material/
|
|
16
|
+
import * as i6 from "@angular/common";
|
|
17
|
+
import * as i7 from "@angular/forms";
|
|
18
|
+
import * as i8 from "@angular/material/button";
|
|
19
|
+
import * as i9 from "@angular/material/icon";
|
|
20
|
+
import * as i10 from "@angular/material/tooltip";
|
|
21
|
+
import * as i11 from "@angular/material/card";
|
|
22
|
+
import * as i12 from "@angular/material/paginator";
|
|
23
|
+
import * as i13 from "@angular/material/table";
|
|
24
|
+
import * as i14 from "@angular/material/sort";
|
|
25
|
+
import * as i15 from "@angular/material/core";
|
|
26
|
+
import * as i16 from "../query-builder/query-builder.component";
|
|
27
|
+
import * as i17 from "../query-builder/query-builder-trigger.directive";
|
|
28
|
+
import * as i18 from "@angular/material/badge";
|
|
29
29
|
import * as i19 from "@ngx-translate/core";
|
|
30
30
|
export class NiceMultiStateListComponent extends NiceBaseListComponent {
|
|
31
31
|
constructor(enableQueryBuilder, icons, listLayout, exportsSetting, query, activatedRoute, bottomSheet, router, mediaWatcher, multiStateListService) {
|
|
@@ -40,19 +40,19 @@ export class NiceMultiStateListComponent extends NiceBaseListComponent {
|
|
|
40
40
|
this.setColumns(columns);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
NiceMultiStateListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
44
|
-
NiceMultiStateListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
43
|
+
NiceMultiStateListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListComponent, deps: [{ token: ENABLE_QUERY_BUILDER, optional: true }, { token: BASE_LIST_ICONS }, { token: BASE_LIST_LAYOUT }, { token: EXPORTS_SETTINGS }, { token: i1.NiceMultiStateListQuery }, { token: i2.ActivatedRoute }, { token: i3.MatBottomSheet }, { token: i2.Router }, { token: i4.NiceMediaWatcherService }, { token: i5.NiceMultiStateListService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
NiceMultiStateListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: NiceMultiStateListComponent, selector: "nice-multi-state-list", inputs: { state: "state" }, providers: [
|
|
45
45
|
NiceMultiStateListQuery,
|
|
46
46
|
NiceMultiStateListService,
|
|
47
47
|
NiceMultiStateListStore
|
|
48
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"(isEmpty$ | async) && emptyState; else showData\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: true\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n", components: [{ type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { type: i9.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i10.NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i15.QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { type: i16.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i17.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { type: i4.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { type: i9.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i11.MatCellDef, selector: "[matCellDef]" }, { type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i18.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], pipes: { "async": i13.AsyncPipe, "translate": i19.TranslatePipe } });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
48
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"(isEmpty$ | async) && emptyState; else showData\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "directive", type: i4.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i14.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i16.NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { kind: "directive", type: i17.QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "directive", type: i18.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i19.TranslatePipe, name: "translate" }] });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
51
|
args: [{ selector: "nice-multi-state-list", providers: [
|
|
52
52
|
NiceMultiStateListQuery,
|
|
53
53
|
NiceMultiStateListService,
|
|
54
54
|
NiceMultiStateListStore
|
|
55
|
-
], template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"(isEmpty$ | async) && emptyState; else showData\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: true\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n" }]
|
|
55
|
+
], template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"(isEmpty$ | async) && emptyState; else showData\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n" }]
|
|
56
56
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
57
57
|
type: Optional
|
|
58
58
|
}, {
|
|
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
70
70
|
}] }, { type: i1.NiceMultiStateListQuery }, { type: i2.ActivatedRoute }, { type: i3.MatBottomSheet }, { type: i2.Router }, { type: i4.NiceMediaWatcherService }, { type: i5.NiceMultiStateListService }]; }, propDecorators: { state: [{
|
|
71
71
|
type: Input
|
|
72
72
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RhdGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc3RhdGUtbGlzdC9tdWx0aS1zdGF0ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJNUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVd6RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEscUJBQXFCO0lBTWxFLFlBQzhDLGtCQUEyQixFQUM1QyxLQUEwQixFQUN6QixVQUEwQixFQUMxQixjQUE4QixFQUN4RCxLQUE4QixFQUM5QixjQUE4QixFQUM5QixXQUEyQixFQUMzQixNQUFjLEVBQ2QsWUFBcUMsRUFDN0IscUJBQWdEO1FBRXhELEtBQUssQ0FDRCxrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLFVBQVUsRUFDVixFQUFFLEVBQ0YsY0FBYyxFQUNkLEtBQUssRUFDTCxxQkFBcUIsRUFDckIsY0FBYyxFQUNkLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxDQUNmLENBQUM7UUFkTSwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO0lBZTVELENBQUM7SUE5QkQsSUFDVyxLQUFLLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUE2Qk8sV0FBVyxDQUFDLEtBQWE7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7O3dIQXBDUSwyQkFBMkIsa0JBT1osb0JBQW9CLDZCQUNoQyxlQUFlLGFBQ2YsZ0JBQWdCLGFBQ2hCLGdCQUFnQjs0R0FWbkIsMkJBQTJCLDRFQU56QjtRQUNQLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsdUJBQXVCO0tBQzFCLGlEQ3BCTCw2eGNBa1RBOzJGRDVSYSwyQkFBMkI7a0JBVHZDLFNBQVM7K0JBQ0ksdUJBQXVCLGFBRXRCO3dCQUNQLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6Qix1QkFBdUI7cUJBQzFCOzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQ3ZDLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyxnQkFBZ0I7K09BUmpCLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0XCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgTmljZU1lZGlhV2F0Y2hlclNlcnZpY2UgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uaWNlLXVpLWtpdC52MlwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9iYXNlLWxpc3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCQVNFX0xJU1RfSUNPTlMsIEJBU0VfTElTVF9MQVlPVVQsIEVOQUJMRV9RVUVSWV9CVUlMREVSLCBFWFBPUlRTX1NFVFRJTkdTIH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9iYXNlLWxpc3QuY29uc3RhbnRcIjtcbmltcG9ydCB7IEV4cG9ydFNldHRpbmdzIH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9tb2RlbHMvZXhwb3J0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUljb25PcHRpb25zIH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9tb2RlbHMvaWNvbnMubW9kZWxcIjtcbmltcG9ydCB7IEJhc2VMaXN0TGF5b3V0IH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9tb2RlbHMvbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlTXVsdGlTdGF0ZUxpc3RRdWVyeSB9IGZyb20gXCIuL3N0b3JlL211bHRpLXN0YXRlLWxpc3QucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VNdWx0aVN0YXRlTGlzdFNlcnZpY2UgfSBmcm9tIFwiLi9zdG9yZS9tdWx0aS1zdGF0ZS1saXN0LnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VNdWx0aVN0YXRlTGlzdFN0b3JlIH0gZnJvbSBcIi4vc3RvcmUvbXVsdGktc3RhdGUtbGlzdC5zdG9yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLW11bHRpLXN0YXRlLWxpc3RcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuLi9iYXNlLWxpc3QvYmFzZS1saXN0LnRlbXBsYXRlLmh0bWxcIixcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmljZU11bHRpU3RhdGVMaXN0UXVlcnksXG4gICAgICAgIE5pY2VNdWx0aVN0YXRlTGlzdFNlcnZpY2UsXG4gICAgICAgIE5pY2VNdWx0aVN0YXRlTGlzdFN0b3JlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlTXVsdGlTdGF0ZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBOaWNlQmFzZUxpc3RDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzdGF0ZShzdGF0ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3dpdGNoU3RhdGUoc3RhdGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEVOQUJMRV9RVUVSWV9CVUlMREVSKSBlbmFibGVRdWVyeUJ1aWxkZXI6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoQkFTRV9MSVNUX0lDT05TKSBpY29uczogTmljZUJhc2VJY29uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChCQVNFX0xJU1RfTEFZT1VUKSBsaXN0TGF5b3V0OiBCYXNlTGlzdExheW91dCxcbiAgICAgICAgQEluamVjdChFWFBPUlRTX1NFVFRJTkdTKSBleHBvcnRzU2V0dGluZzogRXhwb3J0U2V0dGluZ3MsXG4gICAgICAgIHF1ZXJ5OiBOaWNlTXVsdGlTdGF0ZUxpc3RRdWVyeSxcbiAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBib3R0b21TaGVldDogTWF0Qm90dG9tU2hlZXQsXG4gICAgICAgIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBtZWRpYVdhdGNoZXI6IE5pY2VNZWRpYVdhdGNoZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG11bHRpU3RhdGVMaXN0U2VydmljZTogTmljZU11bHRpU3RhdGVMaXN0U2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBlbmFibGVRdWVyeUJ1aWxkZXIsXG4gICAgICAgICAgICBpY29ucyxcbiAgICAgICAgICAgIGxpc3RMYXlvdXQsXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgICAgIGV4cG9ydHNTZXR0aW5nLFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICBtdWx0aVN0YXRlTGlzdFNlcnZpY2UsXG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgIGJvdHRvbVNoZWV0LFxuICAgICAgICAgICAgcm91dGVyLFxuICAgICAgICAgICAgbWVkaWFXYXRjaGVyXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzd2l0Y2hTdGF0ZShzdGF0ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLm11bHRpU3RhdGVMaXN0U2VydmljZS5zd2l0Y2hTdGF0ZShzdGF0ZSk7XG4gICAgICAgIHRoaXMuc2V0Q29sdW1ucyhjb2x1bW5zKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlzdCBwYWdlLWxheW91dCBjYXJkZWQgZnVsbHdpZHRoIGlubmVyLXNjcm9sbFwiICpuZ0lmPVwibGF5b3V0ID09PSAncGFnZSc7IGVsc2UgY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQueGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiB4bDpibG9ja1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LnhsLCBhY3RpdmU6IHhsQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC5sZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIGxnOmJsb2NrIHhsOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LmxnLCBhY3RpdmU6IGxnQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC5tZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIGxnOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0Lm1kLCBhY3RpdmU6IG1kQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC5zbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIHNtOmJsb2NrIG1kOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LnNtLCBhY3RpdmU6IHNtQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC54c1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgc206aGlkZGVuXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IGxpc3RMYXlvdXQueHMsIGFjdGl2ZTogeHNBY3RpdmUkIHwgYXN5bmMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXZcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIhIWxpc3RMYXlvdXQueHNcIlxuICAgICAgICBbY2xhc3MuYmxvY2tdPVwiIWxpc3RMYXlvdXQueHNcIlxuICAgICAgICBbY2xhc3Muc206aGlkZGVuXT1cIiEhbGlzdExheW91dC5zbVwiXG4gICAgICAgIFtjbGFzcy5zbTpibG9ja109XCIhbGlzdExheW91dC5zbVwiXG4gICAgICAgIFtjbGFzcy5tZDpoaWRkZW5dPVwiISFsaXN0TGF5b3V0Lm1kXCJcbiAgICAgICAgW2NsYXNzLm1kOmJsb2NrXT1cIiFsaXN0TGF5b3V0Lm1kXCJcbiAgICAgICAgW2NsYXNzLmxnOmhpZGRlbl09XCIhIWxpc3RMYXlvdXQubGdcIlxuICAgICAgICBbY2xhc3MubGc6YmxvY2tdPVwiIWxpc3RMYXlvdXQubGdcIlxuICAgICAgICBbY2xhc3MueGw6aGlkZGVuXT1cIiEhbGlzdExheW91dC54bFwiXG4gICAgICAgIFtjbGFzcy54bDpibG9ja109XCIhbGlzdExheW91dC54bFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IGxpc3RMYXlvdXQuZGVmYXVsdCwgYWN0aXZlOiBkZWZhdWx0QWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnZUxheW91dCBsZXQtbGF5b3V0PVwibGF5b3V0XCIgbGV0LWFjdGl2ZT1cImFjdGl2ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXQ/Lmxlbmd0aDsgZWxzZSBpc09iamVjdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudExheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IHsgY2xhc3NlczogWydmbGV4IGZsZXgtY29sJ10sIGl0ZW1zOiBsYXlvdXQgfSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaXNPYmplY3Q+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50TGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGF5b3V0LCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnRMYXlvdXQgbGV0LWxheW91dD1cImxheW91dFwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImxheW91dC5jbGFzc2VzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGF5b3V0Lml0ZW1zXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lOyBlbHNlIGNoaWxkSXNMYXlvdXRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGF5b3V0SXRlbTsgY29udGV4dDogeyBpdGVtOiBpdGVtLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NoaWxkSXNMYXlvdXQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBpdGVtLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xheW91dEl0ZW0gbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWFjdGl2ZT1cImFjdGl2ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICd0aXRsZScgJiYgdGl0bGVcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdzZWFyY2gnXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXIgbXgtbWQtMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2ggZmxleCBmbGV4LWF1dG8ganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLnNlYXJjaC5zdmdJY29uXCI+e3sgaWNvbnMuc2VhcmNoLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25nTW9kZWxdPVwic2VhcmNoUXVlcnkkIHwgYXN5bmNcIiAobmdNb2RlbENoYW5nZSk9XCJvblVwZGF0ZVNlYXJjaCgkZXZlbnQpXCIgW3BsYWNlaG9sZGVyXT1cIidnZW5lcmFsLnNlYXJjaCcgfCB0cmFuc2xhdGVcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hCdXR0b25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hCdXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVuYWJsZVF1ZXJ5QnVpbGRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEoc2hvd1F1ZXJ5QnVpbGRlciQgfCBhc3luYykgJiYgIShydWxlc0NvdW50JCB8IGFzeW5jKSAmJiAoZmlsdGVyQ29uZmlnJCB8IGFzeW5jKS5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pY2VRdWVyeUJ1aWxkZXJUcmlnZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeUJ1aWxkZXJGaWx0ZXJzXT1cImZpbHRlckNvbmZpZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeUJ1aWxkZXJGaWx0ZXJzTG9hZGluZ109XCIoZmlsdGVyQ29uZmlnTG9hZGluZyQgfCBhc3luYykgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocXVlcnlCdWlsZGVyRmlsdGVyU2VsZWN0ZWQpPVwib25RdWVyeUJ1aWxkZXJGaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwucXVlcnlfYnVpbGRlci5zaG93X2FkdmFuY2VkX3NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpY29ucy5xdWVyeUJ1aWxkZXIuc3ZnSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZV09XCJydWxlc0NvdW50JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiEocnVsZXNDb3VudCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGljb25zLnF1ZXJ5QnVpbGRlci5tYXRJY29uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhKHNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmMpICYmIChydWxlc0NvdW50JCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWx0ZXJDb25maWdMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9nZ2xlU2hvd1F1ZXJ5QnVpbGRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwucXVlcnlfYnVpbGRlci5zaG93X2FkdmFuY2VkX3NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpY29ucy5xdWVyeUJ1aWxkZXIuc3ZnSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZV09XCJydWxlc0NvdW50JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiEocnVsZXNDb3VudCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGljb25zLnF1ZXJ5QnVpbGRlci5tYXRJY29uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1F1ZXJ5QnVpbGRlciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9nZ2xlU2hvd1F1ZXJ5QnVpbGRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInZ2VuZXJhbC5xdWVyeV9idWlsZGVyLmNsb3NlX2FkdmFuY2VkX3NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5jbG9zZS5zdmdJY29uXCI+e3sgaWNvbnMuY2xvc2UubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAncHJlZml4QnV0dG9ucycgJiYgcHJlZml4QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeEJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnc3VmZml4QnV0dG9ucycgJiYgc3VmZml4QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1ZmZpeEJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnZXhwb3J0QnV0dG9ucycgJiYgY2FuRXhwb3J0XCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCIgW2NsYXNzLm1yLTJdPVwiISFzdWZmaXhCdXR0b25zXCIgW2NsYXNzLm1sLTJdPVwiISFwcmVmaXhCdXR0b25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1ByaW50KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLnByaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1idXR0b24gbXItMlwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1taW5pLWZhYlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5wcmludC5zdmdJY29uXCI+e3sgaWNvbnMucHJpbnQubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tFeHBvcnQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwuZXhwb3J0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1idXR0b24gbXItMlwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1taW5pLWZhYlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5kb3dubG9hZC5zdmdJY29uXCI+e3sgaWNvbnMuZG93bmxvYWQubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnY29udGVudCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc0VtcHR5JCB8IGFzeW5jKSAmJiBlbXB0eVN0YXRlOyBlbHNlIHNob3dEYXRhXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlTdGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93RGF0YT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRDb250ZW50ID09PSAndGFibGUnICYmIHRhYmxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlTGF5b3V0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRDb250ZW50ID09PSAnY2FyZHMnICYmIGNhcmRzXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhcmRzTGF5b3V0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRDb250ZW50ID09PSAnY3VzdG9tJyAmJiBjdXN0b21Db250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUxheW91dDsgY29udGV4dDogeyBpdGVtOiBpdGVtLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAncGFnaW5hdGlvbicgJiYgbGF5b3V0Q29udGVudCAhPT0gJ2N1c3RvbSdcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICAgICAgICAgICAgKHBhZ2UpPVwib25VcGRhdGVQYWdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwicmVjb3Jkc0ZpbHRlcmVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbcGFnZUluZGV4XT1cImluZGV4JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cImRlZmF1bHRQYWdlU2l6ZU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJsZW5ndGgkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtzaG93Rmlyc3RMYXN0QnV0dG9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbWF0LXBhZ2luYXRvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAncXVlcnlCdWlsZGVyJyAmJiBlbmFibGVRdWVyeUJ1aWxkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIiAqbmdJZj1cInNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cIm15LTRcIiBbbmljZUxvYWRpbmdPdmVybGF5XT1cImZpbHRlckNvbmZpZ0xvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtcXVlcnktYnVpbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWdzXT1cImZpbHRlckNvbmZpZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicnVsZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVXBkYXRlUnVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlKT1cImNsaWNrVG9nZ2xlU2hvd1F1ZXJ5QnVpbGRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtcXVlcnktYnVpbGRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnZmlsdGVycycgJiYgZmlsdGVyc1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlcnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlTGF5b3V0IGxldC1pdGVtPVwiaXRlbVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbbmljZUxvYWRpbmdPdmVybGF5XT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1jYXJkIGJhc2UtbGlzdCBmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtdGFibGVcbiAgICAgICAgICAgICAgICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwib25VcGRhdGVTb3J0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhJFwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRTb3J0QWN0aXZlXT1cIihzb3J0Q29sdW1uJCB8IGFzeW5jKSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXRTb3J0RGlyZWN0aW9uXT1cIihzb3J0RGlyZWN0aW9uJCB8IGFzeW5jKSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICBtYXRTb3J0XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5OYW1lczsgc3RpY2t5OiB0cnVlXCI+PC9tYXQtaGVhZGVyLXJvdz5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4uaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZTsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbi5pZCwgaGVhZGVyOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZTsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbi5pZCwgaGVhZGVyOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uLmlkLCBkYXRhOiB0cnVlLCBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc2FibGVSb3V0aW5nOyBlbHNlIHdpdGhSb3V0aW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgaXRlbTsgY29sdW1uczogY29sdW1uTmFtZXM7XCIgY2xhc3M9XCJpdGVtXCI+PC9tYXQtcm93PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN3aXRoUm91dGluZz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IGl0ZW07IGNvbHVtbnM6IGNvbHVtbk5hbWVzO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIml0ZW0gY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yb3c+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2FyZHNMYXlvdXQgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWFjdGl2ZT1cImFjdGl2ZVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGEgb2YgZGF0YSQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhcmRzOyBjb250ZXh0OiB7IGl0ZW06IGRhdGEsIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjdXN0b21MYXlvdXQgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWFjdGl2ZT1cImFjdGl2ZVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Db250ZW50OyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZGF0YSQgfCBhc3luYywgZGF0YTogZGF0YSQgfCBhc3luYywgdG90YWw6IHJlY29yZHNGaWx0ZXJlZCQgfCBhc3luYywgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RhdGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc3RhdGUtbGlzdC9tdWx0aS1zdGF0ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJNUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVd6RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEscUJBQXFCO0lBTWxFLFlBQzhDLGtCQUEyQixFQUM1QyxLQUEwQixFQUN6QixVQUEwQixFQUMxQixjQUE4QixFQUN4RCxLQUE4QixFQUM5QixjQUE4QixFQUM5QixXQUEyQixFQUMzQixNQUFjLEVBQ2QsWUFBcUMsRUFDN0IscUJBQWdEO1FBRXhELEtBQUssQ0FDRCxrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLFVBQVUsRUFDVixFQUFFLEVBQ0YsY0FBYyxFQUNkLEtBQUssRUFDTCxxQkFBcUIsRUFDckIsY0FBYyxFQUNkLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxDQUNmLENBQUM7UUFkTSwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO0lBZTVELENBQUM7SUE5QkQsSUFDVyxLQUFLLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUE2Qk8sV0FBVyxDQUFDLEtBQWE7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7O3dIQXBDUSwyQkFBMkIsa0JBT1osb0JBQW9CLDZCQUNoQyxlQUFlLGFBQ2YsZ0JBQWdCLGFBQ2hCLGdCQUFnQjs0R0FWbkIsMkJBQTJCLDRFQU56QjtRQUNQLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsdUJBQXVCO0tBQzFCLGlEQ3BCTCxzMGNBa1RBOzJGRDVSYSwyQkFBMkI7a0JBVHZDLFNBQVM7K0JBQ0ksdUJBQXVCLGFBRXRCO3dCQUNQLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6Qix1QkFBdUI7cUJBQzFCOzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQ3ZDLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyxnQkFBZ0I7K09BUmpCLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0XCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgTmljZU1lZGlhV2F0Y2hlclNlcnZpY2UgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uaWNlLXVpLWtpdC52MlwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9iYXNlLWxpc3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBCQVNFX0xJU1RfSUNPTlMsIEJBU0VfTElTVF9MQVlPVVQsIEVOQUJMRV9RVUVSWV9CVUlMREVSLCBFWFBPUlRTX1NFVFRJTkdTIH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9iYXNlLWxpc3QuY29uc3RhbnRcIjtcbmltcG9ydCB7IEV4cG9ydFNldHRpbmdzIH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9tb2RlbHMvZXhwb3J0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUljb25PcHRpb25zIH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9tb2RlbHMvaWNvbnMubW9kZWxcIjtcbmltcG9ydCB7IEJhc2VMaXN0TGF5b3V0IH0gZnJvbSBcIi4uL2Jhc2UtbGlzdC9tb2RlbHMvbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlTXVsdGlTdGF0ZUxpc3RRdWVyeSB9IGZyb20gXCIuL3N0b3JlL211bHRpLXN0YXRlLWxpc3QucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VNdWx0aVN0YXRlTGlzdFNlcnZpY2UgfSBmcm9tIFwiLi9zdG9yZS9tdWx0aS1zdGF0ZS1saXN0LnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VNdWx0aVN0YXRlTGlzdFN0b3JlIH0gZnJvbSBcIi4vc3RvcmUvbXVsdGktc3RhdGUtbGlzdC5zdG9yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLW11bHRpLXN0YXRlLWxpc3RcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuLi9iYXNlLWxpc3QvYmFzZS1saXN0LnRlbXBsYXRlLmh0bWxcIixcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmljZU11bHRpU3RhdGVMaXN0UXVlcnksXG4gICAgICAgIE5pY2VNdWx0aVN0YXRlTGlzdFNlcnZpY2UsXG4gICAgICAgIE5pY2VNdWx0aVN0YXRlTGlzdFN0b3JlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlTXVsdGlTdGF0ZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBOaWNlQmFzZUxpc3RDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzdGF0ZShzdGF0ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3dpdGNoU3RhdGUoc3RhdGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEVOQUJMRV9RVUVSWV9CVUlMREVSKSBlbmFibGVRdWVyeUJ1aWxkZXI6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoQkFTRV9MSVNUX0lDT05TKSBpY29uczogTmljZUJhc2VJY29uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChCQVNFX0xJU1RfTEFZT1VUKSBsaXN0TGF5b3V0OiBCYXNlTGlzdExheW91dCxcbiAgICAgICAgQEluamVjdChFWFBPUlRTX1NFVFRJTkdTKSBleHBvcnRzU2V0dGluZzogRXhwb3J0U2V0dGluZ3MsXG4gICAgICAgIHF1ZXJ5OiBOaWNlTXVsdGlTdGF0ZUxpc3RRdWVyeSxcbiAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBib3R0b21TaGVldDogTWF0Qm90dG9tU2hlZXQsXG4gICAgICAgIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBtZWRpYVdhdGNoZXI6IE5pY2VNZWRpYVdhdGNoZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG11bHRpU3RhdGVMaXN0U2VydmljZTogTmljZU11bHRpU3RhdGVMaXN0U2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBlbmFibGVRdWVyeUJ1aWxkZXIsXG4gICAgICAgICAgICBpY29ucyxcbiAgICAgICAgICAgIGxpc3RMYXlvdXQsXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgICAgIGV4cG9ydHNTZXR0aW5nLFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICBtdWx0aVN0YXRlTGlzdFNlcnZpY2UsXG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgIGJvdHRvbVNoZWV0LFxuICAgICAgICAgICAgcm91dGVyLFxuICAgICAgICAgICAgbWVkaWFXYXRjaGVyXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzd2l0Y2hTdGF0ZShzdGF0ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLm11bHRpU3RhdGVMaXN0U2VydmljZS5zd2l0Y2hTdGF0ZShzdGF0ZSk7XG4gICAgICAgIHRoaXMuc2V0Q29sdW1ucyhjb2x1bW5zKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlzdCBwYWdlLWxheW91dCBjYXJkZWQgZnVsbHdpZHRoIGlubmVyLXNjcm9sbFwiICpuZ0lmPVwibGF5b3V0ID09PSAncGFnZSc7IGVsc2UgY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQueGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiB4bDpibG9ja1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LnhsLCBhY3RpdmU6IHhsQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC5sZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIGxnOmJsb2NrIHhsOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LmxnLCBhY3RpdmU6IGxnQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC5tZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIGxnOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0Lm1kLCBhY3RpdmU6IG1kQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC5zbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIHNtOmJsb2NrIG1kOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LnNtLCBhY3RpdmU6IHNtQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdExheW91dC54c1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgc206aGlkZGVuXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IGxpc3RMYXlvdXQueHMsIGFjdGl2ZTogeHNBY3RpdmUkIHwgYXN5bmMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXZcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIhIWxpc3RMYXlvdXQueHNcIlxuICAgICAgICBbY2xhc3MuYmxvY2tdPVwiIWxpc3RMYXlvdXQueHNcIlxuICAgICAgICBbY2xhc3Muc206aGlkZGVuXT1cIiEhbGlzdExheW91dC5zbVwiXG4gICAgICAgIFtjbGFzcy5zbTpibG9ja109XCIhbGlzdExheW91dC5zbVwiXG4gICAgICAgIFtjbGFzcy5tZDpoaWRkZW5dPVwiISFsaXN0TGF5b3V0Lm1kXCJcbiAgICAgICAgW2NsYXNzLm1kOmJsb2NrXT1cIiFsaXN0TGF5b3V0Lm1kXCJcbiAgICAgICAgW2NsYXNzLmxnOmhpZGRlbl09XCIhIWxpc3RMYXlvdXQubGdcIlxuICAgICAgICBbY2xhc3MubGc6YmxvY2tdPVwiIWxpc3RMYXlvdXQubGdcIlxuICAgICAgICBbY2xhc3MueGw6aGlkZGVuXT1cIiEhbGlzdExheW91dC54bFwiXG4gICAgICAgIFtjbGFzcy54bDpibG9ja109XCIhbGlzdExheW91dC54bFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IGxpc3RMYXlvdXQuZGVmYXVsdCwgYWN0aXZlOiBkZWZhdWx0QWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGFnZUxheW91dCBsZXQtbGF5b3V0PVwibGF5b3V0XCIgbGV0LWFjdGl2ZT1cImFjdGl2ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXQ/Lmxlbmd0aDsgZWxzZSBpc09iamVjdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudExheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IHsgY2xhc3NlczogWydmbGV4IGZsZXgtY29sJ10sIGl0ZW1zOiBsYXlvdXQgfSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaXNPYmplY3Q+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50TGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGF5b3V0LCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnRMYXlvdXQgbGV0LWxheW91dD1cImxheW91dFwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImxheW91dC5jbGFzc2VzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGF5b3V0Lml0ZW1zXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lOyBlbHNlIGNoaWxkSXNMYXlvdXRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGF5b3V0SXRlbTsgY29udGV4dDogeyBpdGVtOiBpdGVtLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NoaWxkSXNMYXlvdXQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBpdGVtLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xheW91dEl0ZW0gbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWFjdGl2ZT1cImFjdGl2ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICd0aXRsZScgJiYgdGl0bGVcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdzZWFyY2gnXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXIgbXgtbWQtMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2ggZmxleCBmbGV4LWF1dG8ganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLnNlYXJjaC5zdmdJY29uXCI+e3sgaWNvbnMuc2VhcmNoLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25nTW9kZWxdPVwic2VhcmNoUXVlcnkkIHwgYXN5bmNcIiAobmdNb2RlbENoYW5nZSk9XCJvblVwZGF0ZVNlYXJjaCgkZXZlbnQpXCIgW3BsYWNlaG9sZGVyXT1cIidnZW5lcmFsLnNlYXJjaCcgfCB0cmFuc2xhdGVcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hCdXR0b25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hCdXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVuYWJsZVF1ZXJ5QnVpbGRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEoc2hvd1F1ZXJ5QnVpbGRlciQgfCBhc3luYykgJiYgIShydWxlc0NvdW50JCB8IGFzeW5jKSAmJiAoZmlsdGVyQ29uZmlnJCB8IGFzeW5jKS5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pY2VRdWVyeUJ1aWxkZXJUcmlnZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeUJ1aWxkZXJGaWx0ZXJzXT1cImZpbHRlckNvbmZpZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeUJ1aWxkZXJGaWx0ZXJzTG9hZGluZ109XCIoZmlsdGVyQ29uZmlnTG9hZGluZyQgfCBhc3luYykgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocXVlcnlCdWlsZGVyRmlsdGVyU2VsZWN0ZWQpPVwib25RdWVyeUJ1aWxkZXJGaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwucXVlcnlfYnVpbGRlci5zaG93X2FkdmFuY2VkX3NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpY29ucy5xdWVyeUJ1aWxkZXIuc3ZnSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZV09XCJydWxlc0NvdW50JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiEocnVsZXNDb3VudCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGljb25zLnF1ZXJ5QnVpbGRlci5tYXRJY29uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhKHNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmMpICYmIChydWxlc0NvdW50JCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWx0ZXJDb25maWdMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9nZ2xlU2hvd1F1ZXJ5QnVpbGRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwucXVlcnlfYnVpbGRlci5zaG93X2FkdmFuY2VkX3NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpY29ucy5xdWVyeUJ1aWxkZXIuc3ZnSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZV09XCJydWxlc0NvdW50JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiEocnVsZXNDb3VudCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGljb25zLnF1ZXJ5QnVpbGRlci5tYXRJY29uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1F1ZXJ5QnVpbGRlciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9nZ2xlU2hvd1F1ZXJ5QnVpbGRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInZ2VuZXJhbC5xdWVyeV9idWlsZGVyLmNsb3NlX2FkdmFuY2VkX3NlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5jbG9zZS5zdmdJY29uXCI+e3sgaWNvbnMuY2xvc2UubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAncHJlZml4QnV0dG9ucycgJiYgcHJlZml4QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeEJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnc3VmZml4QnV0dG9ucycgJiYgc3VmZml4QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1ZmZpeEJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnZXhwb3J0QnV0dG9ucycgJiYgY2FuRXhwb3J0XCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCIgW2NsYXNzLm1yLTJdPVwiISFzdWZmaXhCdXR0b25zXCIgW2NsYXNzLm1sLTJdPVwiISFwcmVmaXhCdXR0b25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1ByaW50KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLnByaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1idXR0b24gbXItMlwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1taW5pLWZhYlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5wcmludC5zdmdJY29uXCI+e3sgaWNvbnMucHJpbnQubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tFeHBvcnQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwuZXhwb3J0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1idXR0b24gbXItMlwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1taW5pLWZhYlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5kb3dubG9hZC5zdmdJY29uXCI+e3sgaWNvbnMuZG93bmxvYWQubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnY29udGVudCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc0VtcHR5JCB8IGFzeW5jKSAmJiBlbXB0eVN0YXRlOyBlbHNlIHNob3dEYXRhXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlTdGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93RGF0YT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRDb250ZW50ID09PSAndGFibGUnICYmIHRhYmxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlTGF5b3V0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRDb250ZW50ID09PSAnY2FyZHMnICYmIGNhcmRzXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhcmRzTGF5b3V0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRDb250ZW50ID09PSAnY3VzdG9tJyAmJiBjdXN0b21Db250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUxheW91dDsgY29udGV4dDogeyBpdGVtOiBpdGVtLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAncGFnaW5hdGlvbicgJiYgbGF5b3V0Q29udGVudCAhPT0gJ2N1c3RvbSdcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICAgICAgICAgICAgKHBhZ2UpPVwib25VcGRhdGVQYWdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwicmVjb3Jkc0ZpbHRlcmVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbcGFnZUluZGV4XT1cImluZGV4JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cImRlZmF1bHRQYWdlU2l6ZU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJsZW5ndGgkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtzaG93Rmlyc3RMYXN0QnV0dG9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbWF0LXBhZ2luYXRvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAncXVlcnlCdWlsZGVyJyAmJiBlbmFibGVRdWVyeUJ1aWxkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIiAqbmdJZj1cInNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cIm15LTRcIiBbbmljZUxvYWRpbmdPdmVybGF5XT1cImZpbHRlckNvbmZpZ0xvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtcXVlcnktYnVpbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWdzXT1cImZpbHRlckNvbmZpZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicnVsZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVXBkYXRlUnVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlKT1cImNsaWNrVG9nZ2xlU2hvd1F1ZXJ5QnVpbGRlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtcXVlcnktYnVpbGRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnZmlsdGVycycgJiYgZmlsdGVyc1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlcnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlTGF5b3V0IGxldC1pdGVtPVwiaXRlbVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbbmljZUxvYWRpbmdPdmVybGF5XT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1jYXJkIGJhc2UtbGlzdCBmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtdGFibGVcbiAgICAgICAgICAgICAgICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwib25VcGRhdGVTb3J0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhJFwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRTb3J0QWN0aXZlXT1cIihzb3J0Q29sdW1uJCB8IGFzeW5jKSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXRTb3J0RGlyZWN0aW9uXT1cIihzb3J0RGlyZWN0aW9uJCB8IGFzeW5jKSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICBtYXRTb3J0XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5OYW1lczsgc3RpY2t5OiB0YWJsZS5zdGlja3lIZWFkZXJcIj48L21hdC1oZWFkZXItcm93PlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5pZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlLnRlbXBsYXRlOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uLmlkLCBoZWFkZXI6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbHVtbi5zb3J0YWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlLnRlbXBsYXRlOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uLmlkLCBoZWFkZXI6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGUudGVtcGxhdGU7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4uaWQsIGRhdGE6IHRydWUsIGl0ZW06IGl0ZW0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNlbGw+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzYWJsZVJvdXRpbmc7IGVsc2Ugd2l0aFJvdXRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBjb2x1bW5zOiBjb2x1bW5OYW1lcztcIiBjbGFzcz1cIml0ZW1cIj48L21hdC1yb3c+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3dpdGhSb3V0aW5nPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXJvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgaXRlbTsgY29sdW1uczogY29sdW1uTmFtZXM7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXRlbSBjbGlja2FibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXJvdz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjYXJkc0xheW91dCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtYWN0aXZlPVwiYWN0aXZlXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBkYXRhJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZHM7IGNvbnRleHQ6IHsgaXRlbTogZGF0YSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbUxheW91dCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtYWN0aXZlPVwiYWN0aXZlXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNvbnRlbnQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhJCB8IGFzeW5jLCBkYXRhOiBkYXRhJCB8IGFzeW5jLCB0b3RhbDogcmVjb3Jkc0ZpbHRlcmVkJCB8IGFzeW5jLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -63,8 +63,8 @@ export class NiceMultiStateListModule {
|
|
|
63
63
|
].filter(x => !!x);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
NiceMultiStateListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
67
|
-
NiceMultiStateListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
66
|
+
NiceMultiStateListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
67
|
+
NiceMultiStateListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListModule, declarations: [NiceMultiStateListComponent], imports: [NiceExportBottomSheetModule,
|
|
68
68
|
NiceBaseListDirectiveModule,
|
|
69
69
|
CommonModule,
|
|
70
70
|
FormsModule,
|
|
@@ -83,27 +83,25 @@ NiceMultiStateListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0"
|
|
|
83
83
|
NiceQueryBuilderModule,
|
|
84
84
|
MatBadgeModule], exports: [NiceMultiStateListComponent,
|
|
85
85
|
NiceBaseListDirectiveModule] });
|
|
86
|
-
NiceMultiStateListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
], NiceBaseListDirectiveModule] });
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NiceMultiStateListModule, decorators: [{
|
|
86
|
+
NiceMultiStateListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListModule, imports: [NiceExportBottomSheetModule,
|
|
87
|
+
NiceBaseListDirectiveModule,
|
|
88
|
+
CommonModule,
|
|
89
|
+
FormsModule,
|
|
90
|
+
RouterModule,
|
|
91
|
+
MatButtonModule,
|
|
92
|
+
MatIconModule,
|
|
93
|
+
MatTooltipModule,
|
|
94
|
+
MatCardModule,
|
|
95
|
+
MatPaginatorModule,
|
|
96
|
+
TranslateModule,
|
|
97
|
+
NiceLoadingSpinnerModule,
|
|
98
|
+
MatTableModule,
|
|
99
|
+
MatSortModule,
|
|
100
|
+
MatRippleModule,
|
|
101
|
+
MatBottomSheetModule,
|
|
102
|
+
NiceQueryBuilderModule,
|
|
103
|
+
MatBadgeModule, NiceBaseListDirectiveModule] });
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListModule, decorators: [{
|
|
107
105
|
type: NgModule,
|
|
108
106
|
args: [{
|
|
109
107
|
imports: [
|
|
@@ -135,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
135
133
|
]
|
|
136
134
|
}]
|
|
137
135
|
}] });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RhdGUtbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc3RhdGUtbGlzdC9tdWx0aS1zdGF0ZS1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBR2xHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRS9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUEwQ3JGLE1BQU0sT0FBTyx3QkFBd0I7SUFDMUIsTUFBTSxDQUFDLGVBQWUsQ0FBSSxPQUE4QjtRQUMzRCxPQUFRO1lBQ0o7Z0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhO2FBQ3JDO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTTthQUMzQjtZQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNiLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTTthQUMzQixDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ2I7Z0JBQ0ksT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUk7b0JBQ3pCLEdBQUcsRUFBRSxJQUFJO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLEdBQUcsRUFBRSxJQUFJO2lCQUNaO2FBQ0o7WUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCO29CQUNJLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFBRSxJQUFJO2lCQUNqQjtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxrQkFBa0I7aUJBQ3BEO2dCQUNELE9BQU8sQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO29CQUN0QyxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxrQkFBa0I7aUJBQ3BELENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDaEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1YsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs7cUhBdENRLHdCQUF3QjtzSEFBeEIsd0JBQXdCLGlCQVA3QiwyQkFBMkIsYUFwQjNCLDJCQUEyQjtRQUMzQiwyQkFBMkI7UUFDM0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxZQUFZO1FBQ1osZUFBZTtRQUNmLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2Ysd0JBQXdCO1FBQ3hCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsY0FBYyxhQU1kLDJCQUEyQjtRQUMzQiwyQkFBMkI7c0hBR3RCLHdCQUF3QixZQTNCN0IsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixZQUFZO1FBQ1osV0FBVztRQUNYLFlBQVk7UUFDWixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsY0FBYztRQUNkLGFBQWE7UUFDYixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLHNCQUFzQjtRQUN0QixjQUFjLEVBT2QsMkJBQTJCOzJGQUd0Qix3QkFBd0I7a0JBN0JwQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsY0FBYztxQkFDakI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLDJCQUEyQjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3FCQUM5QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlLCBQcm92aWRlciwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2VcIjtcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldFwiO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jYXJkXCI7XG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlRXhwb3J0Qm90dG9tU2hlZXRNb2R1bGUsIE5pY2VMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBCQVNFX0xJU1RfTEFZT1VULCBFTkFCTEVfUVVFUllfQlVJTERFUiwgRVhQT1JUU19TRVRUSU5HUyB9IGZyb20gXCIuLi9iYXNlLWxpc3QvYmFzZS1saXN0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3REaXJlY3RpdmVNb2R1bGUgfSBmcm9tIFwiLi4vYmFzZS1saXN0L2RpcmVjdGl2ZXMvYmFzZS1saXN0LWRpcmVjdGl2ZXMubW9kdWxlXCI7XG5pbXBvcnQgeyBFeHBvcnRTZXR0aW5ncyB9IGZyb20gXCIuLi9iYXNlLWxpc3QvbW9kZWxzL2V4cG9ydC5tb2RlbFwiO1xuaW1wb3J0IHsgQmFzZUxpc3RMYXlvdXQgfSBmcm9tIFwiLi4vYmFzZS1saXN0L21vZGVscy9sYXlvdXQubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VTYXZlZFJlcG9ydFNlcnZpY2UgfSBmcm9tIFwiLi4vYmFzZS1saXN0L3Byb3ZpZGVycy9iYXNlLWxpc3Qtc2F2ZWQtcmVwb3J0LnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJHcm91cFNlcnZpY2UgfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci9wcm92aWRlcnMvZmlsdGVyLWdyb3VwLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VRdWVyeUJ1aWxkZXJNb2R1bGUgfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLm1vZHVsZVwiO1xuaW1wb3J0IHsgTGlzdFN0YXRlcyB9IGZyb20gXCIuL21vZGVscy9saXN0LXN0YXRlcy5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZU11bHRpU3RhdGVMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vbXVsdGktc3RhdGUtbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IExJU1RfU1RBVEVTIH0gZnJvbSBcIi4vbXVsdGktc3RhdGUtbGlzdC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZU11bHRpU3RhdGVGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4vcHJvdmlkZXJzL211bHRpLXN0YXRlLWZpbHRlci5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTdGF0ZUxpc3RPcHRpb25zIHtcbiAgICBmaWx0ZXJTZXJ2aWNlOiBUeXBlPE5pY2VNdWx0aVN0YXRlRmlsdGVyU2VydmljZT47XG4gICAgc3RhdGVzOiBMaXN0U3RhdGVzO1xuICAgIGxheW91dD86IEJhc2VMaXN0TGF5b3V0O1xuICAgIGV4cG9ydHM/OiBFeHBvcnRTZXR0aW5ncztcbiAgICBxdWVyeUJ1aWxkZXI/OiB7XG4gICAgICAgIGZpbHRlckdyb3VwU2VydmljZTogVHlwZTxOaWNlRmlsdGVyR3JvdXBTZXJ2aWNlPGFueT4+O1xuICAgICAgICBzYXZlZFJlcG9ydFNlcnZpY2U/OiBUeXBlPE5pY2VTYXZlZFJlcG9ydFNlcnZpY2U+O1xuICAgIH07XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBOaWNlRXhwb3J0Qm90dG9tU2hlZXRNb2R1bGUsXG4gICAgICAgIE5pY2VCYXNlTGlzdERpcmVjdGl2ZU1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBOaWNlTG9hZGluZ1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgICAgICBNYXRTb3J0TW9kdWxlLFxuICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgICAgICBOaWNlUXVlcnlCdWlsZGVyTW9kdWxlLFxuICAgICAgICBNYXRCYWRnZU1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIE5pY2VNdWx0aVN0YXRlTGlzdENvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBOaWNlTXVsdGlTdGF0ZUxpc3RDb21wb25lbnQsXG4gICAgICAgIE5pY2VCYXNlTGlzdERpcmVjdGl2ZU1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmljZU11bHRpU3RhdGVMaXN0TW9kdWxlIHtcbiAgICBwdWJsaWMgc3RhdGljIHByb3ZpZGVyRmFjdG9yeTxUPihvcHRpb25zOiBNdWx0aVN0YXRlTGlzdE9wdGlvbnMpOiBQcm92aWRlcltdIHtcbiAgICAgICAgcmV0dXJuICBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTmljZU11bHRpU3RhdGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBvcHRpb25zLmZpbHRlclNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTElTVF9TVEFURVMsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuc3RhdGVzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3B0aW9ucy5sYXlvdXQgPyB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQkFTRV9MSVNUX0xBWU9VVCxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5sYXlvdXRcbiAgICAgICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogRVhQT1JUU19TRVRUSU5HUyxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5leHBvcnRzID8/IHtcbiAgICAgICAgICAgICAgICAgICAgcGRmOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB4bHN4OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjc3Y6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4uKG9wdGlvbnMucXVlcnlCdWlsZGVyID8gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRU5BQkxFX1FVRVJZX0JVSUxERVIsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5pY2VGaWx0ZXJHcm91cFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnF1ZXJ5QnVpbGRlci5maWx0ZXJHcm91cFNlcnZpY2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9wdGlvbnMucXVlcnlCdWlsZGVyLnNhdmVkUmVwb3J0U2VydmljZSA/IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTmljZVNhdmVkUmVwb3J0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xhc3M6IG9wdGlvbnMucXVlcnlCdWlsZGVyLnNhdmVkUmVwb3J0U2VydmljZVxuICAgICAgICAgICAgICAgIH0gOiB1bmRlZmluZWRcbiAgICAgICAgICAgIF0gOiBbXSlcbiAgICAgICAgXS5maWx0ZXIoeCA9PiAhIXgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -9,9 +9,9 @@ export class NiceMultiStateListQuery extends NiceBaseListQuery {
|
|
|
9
9
|
this.store = store;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
NiceMultiStateListQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
NiceMultiStateListQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
NiceMultiStateListQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListQuery, deps: [{ token: i1.NiceMultiStateListStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13
|
+
NiceMultiStateListQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListQuery });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListQuery, decorators: [{
|
|
15
15
|
type: Injectable
|
|
16
16
|
}], ctorParameters: function () { return [{ type: i1.NiceMultiStateListStore }]; } });
|
|
17
17
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RhdGUtbGlzdC5xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9tdWx0aS1zdGF0ZS1saXN0L3N0b3JlL211bHRpLXN0YXRlLWxpc3QucXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUc1RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQTBDO0lBQ25GLFlBQXNCLEtBQThCO1FBQ2hELEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQURLLFVBQUssR0FBTCxLQUFLLENBQXlCO0lBRXBELENBQUM7O29IQUhRLHVCQUF1Qjt3SEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5pY2VCYXNlTGlzdFF1ZXJ5IH0gZnJvbSBcIi4uLy4uL2Jhc2UtbGlzdC9zdG9yZS9iYXNlLWxpc3QucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VNdWx0aVN0YXRlTGlzdFN0YXRlLCBOaWNlTXVsdGlTdGF0ZUxpc3RTdG9yZSB9IGZyb20gXCIuL211bHRpLXN0YXRlLWxpc3Quc3RvcmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VNdWx0aVN0YXRlTGlzdFF1ZXJ5IGV4dGVuZHMgTmljZUJhc2VMaXN0UXVlcnk8TmljZU11bHRpU3RhdGVMaXN0U3RhdGU+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc3RvcmU6IE5pY2VNdWx0aVN0YXRlTGlzdFN0b3JlKSB7XG4gICAgICAgIHN1cGVyKHN0b3JlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -33,9 +33,9 @@ export class NiceMultiStateListService extends NiceBaseListService {
|
|
|
33
33
|
return newState.columns;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
NiceMultiStateListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
37
|
-
NiceMultiStateListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
NiceMultiStateListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListService, deps: [{ token: LIST_STATES }, { token: i1.NiceMultiStateListStore }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i0.ApplicationRef }, { token: i3.NiceMultiStateFilterService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
+
NiceMultiStateListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListService });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListService, decorators: [{
|
|
39
39
|
type: Injectable
|
|
40
40
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
41
41
|
type: Inject,
|
|
@@ -11,14 +11,14 @@ let NiceMultiStateListStore = class NiceMultiStateListStore extends NiceBaseList
|
|
|
11
11
|
super(null, []);
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
-
NiceMultiStateListStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
15
|
-
NiceMultiStateListStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
14
|
+
NiceMultiStateListStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
NiceMultiStateListStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListStore });
|
|
16
16
|
NiceMultiStateListStore = __decorate([
|
|
17
17
|
StoreConfig({ name: "multi-state-list", resettable: true }),
|
|
18
18
|
__metadata("design:paramtypes", [])
|
|
19
19
|
], NiceMultiStateListStore);
|
|
20
20
|
export { NiceMultiStateListStore };
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: NiceMultiStateListStore, decorators: [{
|
|
22
22
|
type: Injectable
|
|
23
23
|
}], ctorParameters: function () { return []; } });
|
|
24
24
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RhdGUtbGlzdC5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9tdWx0aS1zdGF0ZS1saXN0L3N0b3JlL211bHRpLXN0YXRlLWxpc3Quc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFLbkgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUE0QjtJQUNqRCxHQUFHLG9CQUFvQjtDQUMxQixDQUFDO0lBSVcsdUJBQXVCLFNBQXZCLHVCQUF3QixTQUFRLGlCQUEwQztJQUNuRjtRQUNJLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEIsQ0FBQztDQUNKLENBQUE7b0hBSlksdUJBQXVCO3dIQUF2Qix1QkFBdUI7QUFBdkIsdUJBQXVCO0lBRG5DLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7O0dBQy9DLHVCQUF1QixDQUluQztTQUpZLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUZuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdG9yZUNvbmZpZyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGFcIjtcbmltcG9ydCB7IGluaXRpYWxCYXNlTGlzdFN0YXRlLCBOaWNlQmFzZUxpc3RTdGF0ZSwgTmljZUJhc2VMaXN0U3RvcmUgfSBmcm9tIFwiLi4vLi4vYmFzZS1saXN0L3N0b3JlL2Jhc2UtbGlzdC5zdG9yZVwiO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VNdWx0aVN0YXRlTGlzdFN0YXRlIGV4dGVuZHMgTmljZUJhc2VMaXN0U3RhdGUge31cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxWYWx1ZTogTmljZU11bHRpU3RhdGVMaXN0U3RhdGUgPSB7XG4gICAgLi4uaW5pdGlhbEJhc2VMaXN0U3RhdGVcbn07XG5cbkBJbmplY3RhYmxlKClcbkBTdG9yZUNvbmZpZyh7IG5hbWU6IFwibXVsdGktc3RhdGUtbGlzdFwiLCByZXNldHRhYmxlOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmljZU11bHRpU3RhdGVMaXN0U3RvcmUgZXh0ZW5kcyBOaWNlQmFzZUxpc3RTdG9yZTxOaWNlTXVsdGlTdGF0ZUxpc3RTdGF0ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihudWxsLCBbXSk7XG4gICAgfVxufVxuIl19
|
package/esm2020/lib/components/query-builder/filter-selection/filter-selection.component.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
2
2
|
import { ArrayUtils } from "@recursyve/nice-ui-kit.v2";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/
|
|
5
|
-
import * as i2 from "@angular/material/
|
|
6
|
-
import * as i3 from "@
|
|
7
|
-
import * as i4 from "@angular/
|
|
8
|
-
import * as i5 from "@
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/material/card";
|
|
6
|
+
import * as i3 from "@angular/material/list";
|
|
7
|
+
import * as i4 from "@angular/material/core";
|
|
8
|
+
import * as i5 from "@recursyve/nice-ui-kit.v2";
|
|
9
9
|
import * as i6 from "../pipes/filter-group-icon.pipe";
|
|
10
10
|
export class FilterSelectionComponent {
|
|
11
11
|
constructor() {
|
|
@@ -26,9 +26,9 @@ export class FilterSelectionComponent {
|
|
|
26
26
|
this.filterSelected.emit(filterConfigurationModel);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
FilterSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
FilterSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
FilterSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FilterSelectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
FilterSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: FilterSelectionComponent, selector: "nice-filter-selection", inputs: { filterConfigs: "filterConfigs", loading: "loading" }, outputs: { filterSelected: "filterSelected" }, ngImport: i0, template: "<mat-card class=\"flex flex-row flex-wrap filter-selection-container\" [niceLoadingOverlay]=\"loading\">\n <mat-list class=\"flex flex-col flex-full\" [class.double-groups]=\"filterGroups.length > 1\" *ngFor=\"let group of filterGroups\">\n <mat-list-item>\n <i mat-list-icon class=\"text-accent fal\" [ngClass]=\"group[0].key | filterGroupIcon\"></i>\n <strong mat-line>{{ group[0].name }}</strong>\n </mat-list-item>\n <mat-list-item (click)=\"selectFilter(filter)\" mat-ripple class=\"filter\" *ngFor=\"let filter of group[1]\">\n {{ filter?.name }}\n </mat-list-item>\n </mat-list>\n</mat-card>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i3.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "directive", type: i4.MatLine, selector: "[mat-line], [matLine]" }, { kind: "directive", type: i3.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i5.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "pipe", type: i6.FilterGroupIconPipe, name: "filterGroupIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FilterSelectionComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{ selector: "nice-filter-selection", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"flex flex-row flex-wrap filter-selection-container\" [niceLoadingOverlay]=\"loading\">\n <mat-list class=\"flex flex-col flex-full\" [class.double-groups]=\"filterGroups.length > 1\" *ngFor=\"let group of filterGroups\">\n <mat-list-item>\n <i mat-list-icon class=\"text-accent fal\" [ngClass]=\"group[0].key | filterGroupIcon\"></i>\n <strong mat-line>{{ group[0].name }}</strong>\n </mat-list-item>\n <mat-list-item (click)=\"selectFilter(filter)\" mat-ripple class=\"filter\" *ngFor=\"let filter of group[1]\">\n {{ filter?.name }}\n </mat-list-item>\n </mat-list>\n</mat-card>\n" }]
|
|
34
34
|
}], propDecorators: { filterConfigs: [{
|