@codetectonics/mantle 0.0.7 → 1.0.0
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/bundles/codetectonics-mantle.umd.js +7870 -6899
- package/bundles/codetectonics-mantle.umd.js.map +1 -1
- package/esm2015/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.js +1 -1
- package/esm2015/lib/components/dashboard/dashboard-card/dashboard-card.component.js +3 -2
- package/esm2015/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.js +1 -1
- package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.js +6 -2
- package/esm2015/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.js +9 -2
- package/esm2015/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.js +2 -2
- package/esm2015/lib/components/details/dialog-details/dialog-details.component.js +11 -4
- package/esm2015/lib/components/details/dialog-nested-details/dialog-nested-details.component.js +3 -2
- package/esm2015/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.js +5 -4
- package/esm2015/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.js +22 -0
- package/esm2015/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.js +7 -3
- package/esm2015/lib/components/details/sections/grid-details-section/grid-details-section.component.js +17 -5
- package/esm2015/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.js +21 -0
- package/esm2015/lib/components/details/sections/table-details-section/table-details-section.component.js +7 -2
- package/esm2015/lib/components/form/dialog-form/dialog-form.component.js +18 -5
- package/esm2015/lib/components/form/dialog-nested-form/dialog-nested-form.component.js +13 -3
- package/esm2015/lib/components/form/dynamic-form/dynamic-form.component.js +6 -2
- package/esm2015/lib/components/form/fields/autocomplete-input/autocomplete-input.component.js +3 -2
- package/esm2015/lib/components/form/fields/chip-input/chip-input.component.js +3 -2
- package/esm2015/lib/components/form/fields/datepicker/datepicker.component.js +3 -2
- package/esm2015/lib/components/form/fields/datetimepicker/datetimepicker.component.js +3 -2
- package/esm2015/lib/components/form/fields/dropdown/dropdown.component.js +3 -2
- package/esm2015/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.js +15 -11
- package/esm2015/lib/components/form/fields/filepicker/filepicker.component.js +3 -2
- package/esm2015/lib/components/form/fields/image-cropper/image-cropper.component.js +3 -2
- package/esm2015/lib/components/form/fields/imagepicker/imagepicker.component.js +3 -2
- package/esm2015/lib/components/form/fields/markdown-input/markdown-input.component.js +3 -2
- package/esm2015/lib/components/form/fields/number-input/number-input.component.js +3 -2
- package/esm2015/lib/components/form/fields/password-input/password-input.component.js +3 -2
- package/esm2015/lib/components/form/fields/text-input/text-input.component.js +3 -2
- package/esm2015/lib/components/form/fields/textarea/textarea.component.js +3 -2
- package/esm2015/lib/components/form/fields/time-input/time-input.component.js +80 -0
- package/esm2015/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.js +15 -7
- package/esm2015/lib/components/form/sections/grid-form-section/grid-form-section.component.js +11 -2
- package/esm2015/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.js +69 -0
- package/esm2015/lib/components/form/sections/table-form-section/table-form-section.component.js +13 -3
- package/esm2015/lib/components/navigation/nav-tree/nav-tree.component.js +5 -4
- package/esm2015/lib/components/navigation/paginator/custom-paginator-intl.js +33 -0
- package/esm2015/lib/components/pages/dashboard-page/dashboard-page.component.js +4 -3
- package/esm2015/lib/components/pages/detail-page/detail-page.component.js +25 -19
- package/esm2015/lib/components/pages/documents-page/documents-page.component.js +4 -3
- package/esm2015/lib/components/pages/export-page/export-page.component.js +4 -3
- package/esm2015/lib/components/pages/form-page/form-page.component.js +7 -6
- package/esm2015/lib/components/pages/layout-editor-page/layout-editor-page.component.js +12 -8
- package/esm2015/lib/components/pages/list-page/list-page-datasource.js +2 -2
- package/esm2015/lib/components/pages/list-page/list-page.component.js +22 -11
- package/esm2015/lib/components/pages/roster-page/roster-gantt.data.js +50 -0
- package/esm2015/lib/components/pages/roster-page/roster-page.component.js +134 -0
- package/esm2015/lib/components/pages/tabbed-page/tabbed-page.component.js +3 -2
- package/esm2015/lib/components/titles/page-title/page-title.component.js +11 -9
- package/esm2015/lib/components/titles/section-title/section-title.component.js +3 -2
- package/esm2015/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.js +3 -2
- package/esm2015/lib/components/widgets/draggable-table/draggable-table-datasource.js +31 -0
- package/esm2015/lib/components/widgets/draggable-table/draggable-table.component.js +79 -0
- package/esm2015/lib/components/widgets/dynamic-table/dynamic-table.component.js +4 -5
- package/esm2015/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.js +3 -2
- package/esm2015/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.js +37 -0
- package/esm2015/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.js +4 -3
- package/esm2015/lib/components/widgets/search-panel/search-panel.component.js +3 -2
- package/esm2015/lib/components/widgets/snackbar/snackbar.component.js +3 -2
- package/esm2015/lib/data-structures/dynamic-layout.structure.js +1 -1
- package/esm2015/lib/guards/feature.guard.js +2 -2
- package/esm2015/lib/language-packs/en.data.js +62 -0
- package/esm2015/lib/language-packs/ms.data.js +62 -0
- package/esm2015/lib/mantle.module.js +49 -4
- package/esm2015/lib/material.module.js +12 -2
- package/esm2015/lib/services/confirmation.service.js +2 -2
- package/esm2015/lib/services/current-user.service.js +55 -21
- package/esm2015/lib/services/data-broadcast.service.js +18 -0
- package/esm2015/lib/services/dynamic-form.service.js +2 -1
- package/esm2015/lib/services/feature-config.service.js +34 -12
- package/esm2015/lib/services/interfaces/detail-page.service.js +1 -1
- package/esm2015/lib/services/interfaces/form-page.service.js +1 -1
- package/esm2015/lib/services/interfaces/list-page.service.js +1 -1
- package/esm2015/lib/services/interfaces/roster-page.service.js +2 -0
- package/esm2015/lib/services/interfaces/roster-schedule.service.js +2 -0
- package/esm2015/lib/services/locale.service.js +75 -0
- package/esm2015/lib/services/object.service.js +9 -1
- package/esm2015/lib/services/password-check.service.js +10 -8
- package/esm2015/public-api.js +15 -1
- package/fesm2015/codetectonics-mantle.js +1158 -255
- package/fesm2015/codetectonics-mantle.js.map +1 -1
- package/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.d.ts +2 -1
- package/lib/components/details/dialog-details/dialog-details.component.d.ts +1 -0
- package/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.d.ts +6 -0
- package/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.d.ts +2 -1
- package/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.d.ts +9 -0
- package/lib/components/details/sections/table-details-section/table-details-section.component.d.ts +3 -1
- package/lib/components/form/dialog-form/dialog-form.component.d.ts +5 -1
- package/lib/components/form/dialog-nested-form/dialog-nested-form.component.d.ts +3 -0
- package/lib/components/form/fields/time-input/time-input.component.d.ts +22 -0
- package/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.d.ts +4 -1
- package/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.d.ts +23 -0
- package/lib/components/form/sections/table-form-section/table-form-section.component.d.ts +3 -1
- package/lib/components/navigation/nav-tree/nav-tree.component.d.ts +2 -2
- package/lib/components/navigation/paginator/custom-paginator-intl.d.ts +12 -0
- package/lib/components/pages/detail-page/detail-page.component.d.ts +4 -3
- package/lib/components/pages/layout-editor-page/layout-editor-page.component.d.ts +2 -1
- package/lib/components/pages/list-page/list-page.component.d.ts +4 -1
- package/lib/components/pages/roster-page/roster-gantt.data.d.ts +1 -0
- package/lib/components/pages/roster-page/roster-page.component.d.ts +40 -0
- package/lib/components/titles/page-title/page-title.component.d.ts +3 -1
- package/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.d.ts +1 -1
- package/lib/components/widgets/draggable-table/draggable-table-datasource.d.ts +23 -0
- package/lib/components/widgets/draggable-table/draggable-table.component.d.ts +24 -0
- package/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.d.ts +18 -0
- package/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.d.ts +0 -2
- package/lib/data-structures/dynamic-layout.structure.d.ts +13 -0
- package/lib/language-packs/en.data.d.ts +61 -0
- package/lib/language-packs/ms.data.d.ts +61 -0
- package/lib/mantle.module.d.ts +104 -94
- package/lib/material.module.d.ts +12 -11
- package/lib/services/current-user.service.d.ts +14 -7
- package/lib/services/data-broadcast.service.d.ts +8 -0
- package/lib/services/dynamic-form.service.d.ts +2 -0
- package/lib/services/feature-config.service.d.ts +15 -3
- package/lib/services/interfaces/detail-page.service.d.ts +4 -2
- package/lib/services/interfaces/form-page.service.d.ts +11 -3
- package/lib/services/interfaces/list-page.service.d.ts +14 -1
- package/lib/services/interfaces/roster-page.service.d.ts +20 -0
- package/lib/services/interfaces/roster-schedule.service.d.ts +22 -0
- package/lib/services/locale.service.d.ts +21 -0
- package/lib/services/object.service.d.ts +2 -0
- package/lib/services/password-check.service.d.ts +3 -1
- package/package.json +3 -1
- package/public-api.d.ts +14 -0
|
@@ -14,15 +14,18 @@ import * as i5 from "@angular/material/button";
|
|
|
14
14
|
import * as i6 from "@angular/material/icon";
|
|
15
15
|
import * as i7 from "@angular/material/sidenav";
|
|
16
16
|
import * as i8 from "../../widgets/search-panel/search-panel.component";
|
|
17
|
-
import * as i9 from "@angular/material/
|
|
18
|
-
import * as i10 from "@angular/material/
|
|
19
|
-
import * as i11 from "@angular/material/
|
|
20
|
-
import * as i12 from "
|
|
21
|
-
import * as i13 from "
|
|
22
|
-
import * as i14 from "@angular/
|
|
23
|
-
import * as i15 from "@angular/
|
|
24
|
-
import * as i16 from "@angular/
|
|
25
|
-
import * as i17 from "
|
|
17
|
+
import * as i9 from "@angular/material/progress-spinner";
|
|
18
|
+
import * as i10 from "@angular/material/table";
|
|
19
|
+
import * as i11 from "@angular/material/checkbox";
|
|
20
|
+
import * as i12 from "@angular/material/sort";
|
|
21
|
+
import * as i13 from "../../details/fields/dynamic-attribute-display/dynamic-attribute-display.component";
|
|
22
|
+
import * as i14 from "@angular/material/paginator";
|
|
23
|
+
import * as i15 from "@angular/flex-layout/flex";
|
|
24
|
+
import * as i16 from "@angular/common";
|
|
25
|
+
import * as i17 from "@angular/flex-layout/extended";
|
|
26
|
+
import * as i18 from "@angular/material/form-field";
|
|
27
|
+
import * as i19 from "../../../directives/click-stop-propagation.directive";
|
|
28
|
+
import * as i20 from "@ngx-translate/core";
|
|
26
29
|
export class ListPageComponent {
|
|
27
30
|
constructor(route, injector, changeDetectorRef, arrayService, screenSizeService) {
|
|
28
31
|
this.route = route;
|
|
@@ -33,6 +36,7 @@ export class ListPageComponent {
|
|
|
33
36
|
this.isTabbedContent = false;
|
|
34
37
|
this.withCollapsibleColumns = false;
|
|
35
38
|
this.expandCollapsibleColumns = false;
|
|
39
|
+
this.additionalButtons = [];
|
|
36
40
|
this.isActionPanelOpen = false;
|
|
37
41
|
this.isSmallScreen = false;
|
|
38
42
|
const listPageServiceInjectionToken = this.route.snapshot.data['listPageService'];
|
|
@@ -54,6 +58,7 @@ export class ListPageComponent {
|
|
|
54
58
|
this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';
|
|
55
59
|
this.isActionPanelOpen = !this.isSmallScreen;
|
|
56
60
|
});
|
|
61
|
+
this.loadAdditionalButtons();
|
|
57
62
|
}
|
|
58
63
|
ngAfterViewInit() {
|
|
59
64
|
if (this.listPageService.defaultOrder) {
|
|
@@ -74,6 +79,9 @@ export class ListPageComponent {
|
|
|
74
79
|
onAddClicked() {
|
|
75
80
|
this.listPageService.openForm();
|
|
76
81
|
}
|
|
82
|
+
onBackToParentClicked() {
|
|
83
|
+
this.listPageService.openParent();
|
|
84
|
+
}
|
|
77
85
|
isRecordChecked(record) {
|
|
78
86
|
return this.arrayService.hasItem(this.dataSource.selectedRecordIds, record.id);
|
|
79
87
|
}
|
|
@@ -100,12 +108,15 @@ export class ListPageComponent {
|
|
|
100
108
|
onBulkExportClicked(exportOption) {
|
|
101
109
|
exportOption.export(this.dataSource.selectedRecordIds);
|
|
102
110
|
}
|
|
111
|
+
loadAdditionalButtons() {
|
|
112
|
+
this.additionalButtons = this.listPageService.additionalListPageButtons();
|
|
113
|
+
}
|
|
103
114
|
toggleCollapsibleColumns() {
|
|
104
115
|
this.expandCollapsibleColumns = !this.expandCollapsibleColumns;
|
|
105
116
|
}
|
|
106
117
|
}
|
|
107
118
|
ListPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: ListPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i2.ArrayService }, { token: i3.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
108
|
-
ListPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: ListPageComponent, selector: "mantle-list-page", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "searchPanel", first: true, predicate: SearchPanelComponent, descendants: true }], ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"list-page full-height-only\" [ngClass]=\"{'page': !isTabbedContent}\">\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!isTabbedContent\">\n <mantle-page-title>{{ pageTitle }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"withCollapsibleColumns\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"toggle-collapsible-columns-button button-with-icon\"\n (click)=\"toggleCollapsibleColumns()\">\n <ng-container *ngIf=\"expandCollapsibleColumns\">\n <mat-icon class=\"left-icon\">keyboard_double_arrow_left</mat-icon>\n <span>Collapse Table</span>\n </ng-container>\n <ng-container *ngIf=\"!expandCollapsibleColumns\">\n <span>Expand Table</span>\n <mat-icon class=\"right-icon\">keyboard_double_arrow_right</mat-icon>\n </ng-container>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <mat-drawer-container class=\"full-height-only\" [hasBackdrop]=\"isSmallScreen\">\n <mat-drawer #drawer\n [mode]=\"isSmallScreen ? 'over' : 'side'\"\n [position]=\"isSmallScreen ? 'end' : 'start'\"\n [opened]=\"isActionPanelOpen\"\n [disableClose]=\"!isSmallScreen\"\n (closedStart)=\"isActionPanelOpen = false\"\n (openedStart)=\"isActionPanelOpen = true\">\n\n <button *ngIf=\"listPageService.showAddButton && listPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"onAddClicked()\">\n + New {{ listPageService?.noun() }}\n </button>\n\n <div class=\"search-section\">\n <mantle-search-panel #searchPanel\n [searchFields]=\"listPageService.searchFields()\">\n </mantle-search-panel>\n </div>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(searchPanel.searchParams).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"dataSource.selectedRecordIds.length > 0\">\n <ng-container *ngFor=\"let exportOption of bulkExportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"onBulkExportClicked(exportOption)\">\n <span class=\"export-button-label\">{{ exportOption.label }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n </ng-container>\n\n </mat-drawer>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"main-content full-height-only\">\n\n <div fxFlex=\"1 0 1px\" class=\"vertically-scrollable\">\n <table mat-table class=\"full-width horizontal-scroll-table\" matSort>\n\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox click-stop-propagation (change)=\"onCheckAll($event.checked)\" [checked]=\"dataSource.selectAll\"></mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox click-stop-propagation (change)=\"onRecordChecked(row, $event.checked)\" [checked]=\"isRecordChecked(row)\"></mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let column of displayedColumns; let i = index\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef\n mat-sort-header=\"{{column.sortAttr || column.attr}}\" [disabled]=\"column.disableSort\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n {{ column.header }}\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n <mantle-dynamic-attribute-display\n [fieldType]=\"column.type\"\n [value]=\"row[column.attr]\"\n [options]=\"column.options\">\n </mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnAttrs\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnAttrs;\"\n (click)=\"onRecordClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n </table>\n </div>\n\n <mat-paginator #paginator\n fxFlex=\"0 0 auto\"\n [length]=\"0\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[10, 20, 50]\">\n </mat-paginator>\n\n </div>\n\n </mat-drawer-container>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"isSmallScreen\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <button *ngIf=\"isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container *ngIf=\"isActionPanelOpen\">\n Close Actions<mat-icon>chevron_right</mat-icon>\n </ng-container>\n </button>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <button *ngIf=\"!isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container>\n <mat-icon>chevron_left</mat-icon> Open Actions\n </ng-container>\n </button>\n\n </div>\n </div>\n</div>\n", styles: [".main-content{padding-top:0;padding-bottom:0}.mat-drawer{padding:0 16px 0 0}.mat-drawer .add-button{display:block;width:100%;text-transform:uppercase;border-radius:0;margin:16px 0 0}.mat-drawer-end{padding:0 16px}.search-section{margin:16px 0 0}.export-button{display:block;width:144px;background-color:transparent;white-space:nowrap;padding:0;margin:16px 0 16px auto}.export-button .export-button-label{display:inline-block;width:100px;white-space:normal;text-align:right;text-transform:uppercase;font-weight:normal;line-height:1.25rem;margin-right:.25rem}.export-button .mat-icon{height:auto;width:auto;font-size:2.5rem}.toggle-collapsible-columns-button{width:200px;text-transform:uppercase}.toggle-collapsible-columns-button .mat-icon{font-size:1.2rem}.collapsible-column-left{border-left:1px solid lightgray}.collapsible-column-right{border-right:1px solid lightgray}th.collapsible-column{border-top:1px solid lightgray}th.collapsible-column-left{border-radius:2px 0 0}th.collapsible-column-right{border-radius:0 2px 0 0}\n"], components: [{ type: i4.PageTitleComponent, selector: "mantle-page-title" }, { type: i5.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: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { type: i7.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { type: i8.SearchPanelComponent, selector: "mantle-search-panel", inputs: ["searchFields"], outputs: ["search"] }, { type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i12.DynamicAttributeDisplayComponent, selector: "mantle-dynamic-attribute-display", inputs: ["value", "field", "fieldType", "options"] }, { type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i13.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i14.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i14.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i14.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i15.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i16.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i17.ClickStopPropagationDirective, selector: "[click-stop-propagation]" }, { type: i9.MatCellDef, selector: "[matCellDef]" }, { type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], animations: [
|
|
119
|
+
ListPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: ListPageComponent, selector: "mantle-list-page", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "searchPanel", first: true, predicate: SearchPanelComponent, descendants: true }], ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"list-page full-height-only\" [ngClass]=\"{'page': !isTabbedContent}\">\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!isTabbedContent\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"listPageService.showBackToParentButton || withCollapsibleColumns\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"listPageService.showBackToParentButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackToParentClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"withCollapsibleColumns\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"toggle-collapsible-columns-button button-with-icon\"\n (click)=\"toggleCollapsibleColumns()\">\n <ng-container *ngIf=\"expandCollapsibleColumns\">\n <mat-icon class=\"left-icon\">keyboard_double_arrow_left</mat-icon>\n <span>{{ 'mantle.buttons.collapse_table' | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"!expandCollapsibleColumns\">\n <span>{{ 'mantle.buttons.expand_table' | translate }}</span>\n <mat-icon class=\"right-icon\">keyboard_double_arrow_right</mat-icon>\n </ng-container>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <mat-drawer-container class=\"full-height-only\" [hasBackdrop]=\"isSmallScreen\">\n <mat-drawer #drawer\n [mode]=\"isSmallScreen ? 'over' : 'side'\"\n [position]=\"isSmallScreen ? 'end' : 'start'\"\n [opened]=\"isActionPanelOpen\"\n [disableClose]=\"!isSmallScreen\"\n (closedStart)=\"isActionPanelOpen = false\"\n (openedStart)=\"isActionPanelOpen = true\">\n\n <button *ngIf=\"listPageService.showAddButton && listPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"onAddClicked()\">\n <ng-container *ngIf=\"listPageService.customAddButtonLabel; else standardAddButtonLabel\">\n {{ listPageService.customAddButtonLabel | translate }}\n </ng-container>\n <ng-template #standardAddButtonLabel>\n + {{ 'mantle.buttons.add' | translate }} {{ listPageService.noun() | translate }}\n </ng-template>\n </button>\n\n <div class=\"search-section\">\n <mantle-search-panel #searchPanel\n [searchFields]=\"listPageService.searchFields()\">\n </mantle-search-panel>\n </div>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(searchPanel.searchParams).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"dataSource.selectedRecordIds.length > 0\">\n <ng-container *ngFor=\"let exportOption of bulkExportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"onBulkExportClicked(exportOption)\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let button of additionalButtons\">\n <div *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"listPageService.isCommitInProgress || button.disabled || dataSource.selectedRecordIds.length <= 0\"\n (click)=\"button.onClick(dataSource.selectedRecordIds)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n </mat-drawer>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"main-content full-height-only\">\n\n <div fxFlex=\"1 0 1px\" class=\"vertically-scrollable\">\n <table mat-table class=\"full-width horizontal-scroll-table\" matSort>\n\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox click-stop-propagation (change)=\"onCheckAll($event.checked)\" [checked]=\"dataSource.selectAll\"></mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox click-stop-propagation (change)=\"onRecordChecked(row, $event.checked)\" [checked]=\"isRecordChecked(row)\"></mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let column of displayedColumns; let i = index\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef\n mat-sort-header=\"{{column.sortAttr || column.attr}}\" [disabled]=\"column.disableSort\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n {{ column.header | translate }}\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n <mantle-dynamic-attribute-display\n [fieldType]=\"column.type\"\n [value]=\"row[column.attr]\"\n [options]=\"column.options\">\n </mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnAttrs\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnAttrs;\"\n (click)=\"onRecordClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n </table>\n </div>\n\n <mat-paginator #paginator\n fxFlex=\"0 0 auto\"\n [length]=\"0\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[10, 20, 50]\">\n </mat-paginator>\n\n </div>\n\n </mat-drawer-container>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"isSmallScreen\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <button *ngIf=\"isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container *ngIf=\"isActionPanelOpen\">\n {{ 'mantle.buttons.close_actions' | translate }}<mat-icon>chevron_right</mat-icon>\n </ng-container>\n </button>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <button *ngIf=\"!isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container>\n <mat-icon>chevron_left</mat-icon> {{ 'mantle.buttons.open_actions' | translate }}\n </ng-container>\n </button>\n\n </div>\n </div>\n</div>\n", styles: [".main-content{padding-top:0;padding-bottom:0}.mat-drawer{padding:0 16px 0 0}.mat-drawer .add-button{display:block;width:200px;text-transform:uppercase;text-wrap-mode:wrap;border-radius:0;margin:16px 0 0;line-height:16px;padding:10px 16px}.mat-drawer-end{padding:0 16px}.search-section{margin:16px 0 0}.export-button{display:block;width:144px;background-color:transparent;white-space:nowrap;padding:0;margin:16px 0 16px auto}.export-button .export-button-label{display:inline-block;width:100px;white-space:normal;text-align:right;text-transform:uppercase;font-weight:normal;line-height:1.25rem;margin-right:.25rem}.export-button .mat-icon{height:auto;width:auto;font-size:2.5rem}.toggle-collapsible-columns-button{width:200px;text-transform:uppercase}.toggle-collapsible-columns-button .mat-icon{font-size:1.2rem}.collapsible-column-left{border-left:1px solid lightgray}.collapsible-column-right{border-right:1px solid lightgray}th.collapsible-column{border-top:1px solid lightgray}th.collapsible-column-left{border-radius:2px 0 0}th.collapsible-column-right{border-radius:0 2px 0 0}.additional-button{display:block;width:100%;text-transform:uppercase;border-radius:0;margin:16px 0 0}.in-progress-button .mat-spinner{position:absolute;top:10px;right:12px}\n"], components: [{ type: i4.PageTitleComponent, selector: "mantle-page-title" }, { type: i5.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: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { type: i7.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { type: i8.SearchPanelComponent, selector: "mantle-search-panel", inputs: ["searchFields"], outputs: ["search"] }, { type: i9.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i13.DynamicAttributeDisplayComponent, selector: "mantle-dynamic-attribute-display", inputs: ["value", "field", "fieldType", "options"] }, { type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i14.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i15.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i15.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i15.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i16.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i17.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i16.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i16.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i18.MatSuffix, selector: "[matSuffix]" }, { type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i19.ClickStopPropagationDirective, selector: "[click-stop-propagation]" }, { type: i10.MatCellDef, selector: "[matCellDef]" }, { type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "translate": i20.TranslatePipe }, animations: [
|
|
109
120
|
trigger('collapse', [
|
|
110
121
|
state('false', style({ display: AUTO_STYLE, opacity: 1 })),
|
|
111
122
|
state('true', style({ display: 'none', opacity: 0 })),
|
|
@@ -153,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
|
|
|
153
164
|
type: ViewChild,
|
|
154
165
|
args: [SearchPanelComponent]
|
|
155
166
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvbGlzdC1wYWdlL2xpc3QtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL2xpc3QtcGFnZS9saXN0LXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUluRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCdkcsTUFBTSxPQUFPLGlCQUFpQjtJQXFCNUIsWUFBb0IsS0FBcUIsRUFBVSxRQUFrQixFQUNqRCxpQkFBb0MsRUFBVSxZQUEwQixFQUN4RSxpQkFBb0M7UUFGcEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2pELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN4RSxzQkFBaUIsR0FB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dU5BRTBCLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWTtnQkFDSCxJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0csS0FBSztzQkFBekIsU0FBUzt1QkFBQyxRQUFRO2dCQUNjLFdBQVc7c0JBQTNDLFNBQVM7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0NoaWxkLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVVUT19TVFlMRSwgYW5pbWF0ZSwgc2VxdWVuY2UsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdFRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHtcbiAgTGlzdFBhZ2VTZXJ2aWNlLCBMaXN0UGFnZUNvbHVtbiwgTGlzdFBhZ2VFeHBvcnRPcHRpb24sIExpc3RQYWdlQnVsa0V4cG9ydE9wdGlvblxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2xpc3QtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IExpc3RQYWdlRGF0YVNvdXJjZSB9IGZyb20gJy4vbGlzdC1wYWdlLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3dpZGdldHMvc2VhcmNoLXBhbmVsL3NlYXJjaC1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJyYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXJyYXkuc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5TaXplU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NjcmVlbi1zaXplLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtbGlzdC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QtcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignY29sbGFwc2UnLCBbXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IGRpc3BsYXk6IEFVVE9fU1RZTEUsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGRpc3BsYXk6ICdub25lJywgb3BhY2l0eTogMCB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB0cnVlJywgc2VxdWVuY2UoW1xuICAgICAgICBhbmltYXRlKFwiMXNcIiwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgICAgc3R5bGUoeyBkaXNwbGF5OiAnbm9uZScgfSlcbiAgICAgIF0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBzZXF1ZW5jZShbXG4gICAgICAgIHN0eWxlKHsgZGlzcGxheTogQVVUT19TVFlMRSB9KSxcbiAgICAgICAgYW5pbWF0ZShcIjFzXCIsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSlcbiAgICAgIF0pKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlzdFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvciE6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0ITogTWF0U29ydDtcbiAgQFZpZXdDaGlsZChNYXRUYWJsZSkgdGFibGUhOiBNYXRUYWJsZTxhbnk+O1xuICBAVmlld0NoaWxkKFNlYXJjaFBhbmVsQ29tcG9uZW50KSBzZWFyY2hQYW5lbCE6IFNlYXJjaFBhbmVsQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBsaXN0UGFnZVNlcnZpY2U6IExpc3RQYWdlU2VydmljZTtcbiAgcHVibGljIGRhdGFTb3VyY2U6IExpc3RQYWdlRGF0YVNvdXJjZTtcbiAgcHVibGljIGRpc3BsYXllZENvbHVtbnMhOiBMaXN0UGFnZUNvbHVtbltdO1xuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1uQXR0cnMhOiBzdHJpbmdbXTtcbiAgcHVibGljIGV4cG9ydE9wdGlvbnMhOiBMaXN0UGFnZUV4cG9ydE9wdGlvbltdO1xuICBwdWJsaWMgYnVsa0V4cG9ydE9wdGlvbnMhOiBMaXN0UGFnZUJ1bGtFeHBvcnRPcHRpb25bXTtcbiAgcHVibGljIHdpdGhDbGlja2FibGVSb3dzITogYm9vbGVhbjtcbiAgcHVibGljIGlzVGFiYmVkQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcGFnZVRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyB3aXRoQ29sbGFwc2libGVDb2x1bW5zOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBleHBhbmRDb2xsYXBzaWJsZUNvbHVtbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgaXNBY3Rpb25QYW5lbE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzU21hbGxTY3JlZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGFycmF5U2VydmljZTogQXJyYXlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHNjcmVlblNpemVTZXJ2aWNlOiBTY3JlZW5TaXplU2VydmljZSkge1xuICAgIGNvbnN0IGxpc3RQYWdlU2VydmljZUluamVjdGlvblRva2VuID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydsaXN0UGFnZVNlcnZpY2UnXTtcbiAgICB0aGlzLmxpc3RQYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PExpc3RQYWdlU2VydmljZT4obGlzdFBhZ2VTZXJ2aWNlSW5qZWN0aW9uVG9rZW4pO1xuXG4gICAgdGhpcy5saXN0UGFnZVNlcnZpY2UucHJlcGFyZSh0aGlzLnJvdXRlKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTGlzdFBhZ2VEYXRhU291cmNlKHRoaXMubGlzdFBhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmxpc3RQYWdlU2VydmljZS5saXN0Q29sdW1ucygpO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uQXR0cnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMubWFwKGEgPT4gYS5hdHRyKTtcbiAgICB0aGlzLmV4cG9ydE9wdGlvbnMgPSB0aGlzLmxpc3RQYWdlU2VydmljZS5saXN0UGFnZUV4cG9ydE9wdGlvbnMoKTtcbiAgICB0aGlzLmJ1bGtFeHBvcnRPcHRpb25zID0gdGhpcy5saXN0UGFnZVNlcnZpY2UubGlzdFBhZ2VCdWxrRXhwb3J0T3B0aW9ucygpO1xuICAgIHRoaXMud2l0aENsaWNrYWJsZVJvd3MgPSB0aGlzLmxpc3RQYWdlU2VydmljZS53aXRoQ2xpY2thYmxlUm93cztcbiAgICB0aGlzLmlzVGFiYmVkQ29udGVudCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnaXNUYWJiZWRDb250ZW50J107XG4gICAgdGhpcy5wYWdlVGl0bGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ3BhZ2VUaXRsZSddO1xuXG4gICAgaWYgKHRoaXMubGlzdFBhZ2VTZXJ2aWNlLndpdGhDaGVja2FibGVSb3dzKSB0aGlzLmRpc3BsYXllZENvbHVtbkF0dHJzLnVuc2hpZnQoJ3NlbGVjdCcpO1xuICAgIGlmICh0aGlzLmxpc3RQYWdlU2VydmljZS53aXRoQ29sbGFwc2libGVDb2x1bW5zKSB0aGlzLndpdGhDb2xsYXBzaWJsZUNvbHVtbnMgPSB0cnVlO1xuXG4gICAgdGhpcy5zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplLnN1YnNjcmliZSgoc2NyZWVuU2l6ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmlzU21hbGxTY3JlZW4gPSBzY3JlZW5TaXplID09ICd4cycgfHwgc2NyZWVuU2l6ZSA9PSAnc20nO1xuICAgICAgdGhpcy5pc0FjdGlvblBhbmVsT3BlbiA9ICF0aGlzLmlzU21hbGxTY3JlZW47XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdFBhZ2VTZXJ2aWNlLmRlZmF1bHRPcmRlcikge1xuICAgICAgdGhpcy5zb3J0LmFjdGl2ZSA9IHRoaXMubGlzdFBhZ2VTZXJ2aWNlLmRlZmF1bHRPcmRlci5hdHRyO1xuICAgICAgdGhpcy5zb3J0LmRpcmVjdGlvbiA9IHRoaXMubGlzdFBhZ2VTZXJ2aWNlLmRlZmF1bHRPcmRlci5kaXJlY3Rpb247XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zZWFyY2hQYW5lbCA9IHRoaXMuc2VhcmNoUGFuZWw7XG4gICAgdGhpcy50YWJsZS5kYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvblJlY29yZENsaWNrZWQocmVjb3JkOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMud2l0aENsaWNrYWJsZVJvd3MpIHJldHVybjtcblxuICAgIHRoaXMubGlzdFBhZ2VTZXJ2aWNlLm9wZW5SZWNvcmQocmVjb3JkKTtcbiAgfVxuXG4gIG9uQWRkQ2xpY2tlZCgpIHtcbiAgICB0aGlzLmxpc3RQYWdlU2VydmljZS5vcGVuRm9ybSgpO1xuICB9XG5cbiAgaXNSZWNvcmRDaGVja2VkKHJlY29yZDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXlTZXJ2aWNlLmhhc0l0ZW0odGhpcy5kYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzLCByZWNvcmQuaWQpO1xuICB9XG5cbiAgb25SZWNvcmRDaGVja2VkKHJlY29yZDogYW55LCBjaGVja2VkOiBib29sZWFuKSB7XG4gICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RlZFJlY29yZElkcy5wdXNoKHJlY29yZC5pZCk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0QWxsID0gdGhpcy5kYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzLmxlbmd0aCA+IDAgJiYgdGhpcy5kYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzLmxlbmd0aCA9PSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGg7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5hcnJheVNlcnZpY2UucmVtb3ZlSXRlbSh0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRSZWNvcmRJZHMsIHJlY29yZC5pZCk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0QWxsID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25DaGVja0FsbChjaGVja2VkOiBib29sZWFuKSB7XG4gICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RlZFJlY29yZElkcyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLm1hcCgoaXRlbTogYW55KSA9PiB7IHJldHVybiBpdGVtLmlkOyB9KTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RBbGwgPSB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RlZFJlY29yZElkcyA9IFtdO1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNlbGVjdEFsbCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uQnVsa0V4cG9ydENsaWNrZWQoZXhwb3J0T3B0aW9uOiBMaXN0UGFnZUJ1bGtFeHBvcnRPcHRpb24pIHtcbiAgICBleHBvcnRPcHRpb24uZXhwb3J0KHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RlZFJlY29yZElkcyk7XG4gIH1cblxuICB0b2dnbGVDb2xsYXBzaWJsZUNvbHVtbnMoKSB7XG4gICAgdGhpcy5leHBhbmRDb2xsYXBzaWJsZUNvbHVtbnMgPSAhdGhpcy5leHBhbmRDb2xsYXBzaWJsZUNvbHVtbnM7XG4gIH1cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGZ4TGF5b3V0R2FwPVwiMTZweFwiIGNsYXNzPVwibGlzdC1wYWdlIGZ1bGwtaGVpZ2h0LW9ubHlcIiBbbmdDbGFzc109XCJ7J3BhZ2UnOiAhaXNUYWJiZWRDb250ZW50fVwiPlxuXG4gIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cIiFpc1RhYmJlZENvbnRlbnRcIj5cbiAgICA8bWFudGxlLXBhZ2UtdGl0bGU+e3sgcGFnZVRpdGxlIH19PC9tYW50bGUtcGFnZS10aXRsZT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiICpuZ0lmPVwid2l0aENvbGxhcHNpYmxlQ29sdW1uc1wiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMTZweFwiPlxuICAgICAgPGRpdiBmeEZsZXg9XCIxIDEgYXV0b1wiPjwvZGl2PlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLWNvbGxhcHNpYmxlLWNvbHVtbnMtYnV0dG9uIGJ1dHRvbi13aXRoLWljb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzaWJsZUNvbHVtbnMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleHBhbmRDb2xsYXBzaWJsZUNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImxlZnQtaWNvblwiPmtleWJvYXJkX2RvdWJsZV9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuPkNvbGxhcHNlIFRhYmxlPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZXhwYW5kQ29sbGFwc2libGVDb2x1bW5zXCI+XG4gICAgICAgICAgICA8c3Bhbj5FeHBhbmQgVGFibGU8L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJyaWdodC1pY29uXCI+a2V5Ym9hcmRfZG91YmxlX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIxIDAgMXB4XCI+XG4gICAgPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiZnVsbC1oZWlnaHQtb25seVwiIFtoYXNCYWNrZHJvcF09XCJpc1NtYWxsU2NyZWVuXCI+XG4gICAgICA8bWF0LWRyYXdlciAjZHJhd2VyXG4gICAgICAgICAgW21vZGVdPVwiaXNTbWFsbFNjcmVlbiA/ICdvdmVyJyA6ICdzaWRlJ1wiXG4gICAgICAgICAgW3Bvc2l0aW9uXT1cImlzU21hbGxTY3JlZW4gPyAnZW5kJyA6ICdzdGFydCdcIlxuICAgICAgICAgIFtvcGVuZWRdPVwiaXNBY3Rpb25QYW5lbE9wZW5cIlxuICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwiIWlzU21hbGxTY3JlZW5cIlxuICAgICAgICAgIChjbG9zZWRTdGFydCk9XCJpc0FjdGlvblBhbmVsT3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICAob3BlbmVkU3RhcnQpPVwiaXNBY3Rpb25QYW5lbE9wZW4gPSB0cnVlXCI+XG5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImxpc3RQYWdlU2VydmljZS5zaG93QWRkQnV0dG9uICYmIGxpc3RQYWdlU2VydmljZS5jYW5Xcml0ZSgpXCJcbiAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRkLWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25BZGRDbGlja2VkKClcIj5cbiAgICAgICAgICArIE5ldyB7eyBsaXN0UGFnZVNlcnZpY2U/Lm5vdW4oKSB9fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlY3Rpb25cIj5cbiAgICAgICAgICA8bWFudGxlLXNlYXJjaC1wYW5lbCAjc2VhcmNoUGFuZWxcbiAgICAgICAgICAgICAgW3NlYXJjaEZpZWxkc109XCJsaXN0UGFnZVNlcnZpY2Uuc2VhcmNoRmllbGRzKClcIj5cbiAgICAgICAgICA8L21hbnRsZS1zZWFyY2gtcGFuZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGV4cG9ydE9wdGlvbiBvZiBleHBvcnRPcHRpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImV4cG9ydC1idXR0b25cIiAoY2xpY2spPVwiZXhwb3J0T3B0aW9uLmV4cG9ydChzZWFyY2hQYW5lbC5zZWFyY2hQYXJhbXMpLnN1YnNjcmliZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4cG9ydC1idXR0b24tbGFiZWxcIj57eyBleHBvcnRPcHRpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb24+ZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVNvdXJjZS5zZWxlY3RlZFJlY29yZElkcy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXhwb3J0T3B0aW9uIG9mIGJ1bGtFeHBvcnRPcHRpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZXhwb3J0LWJ1dHRvblwiIChjbGljayk9XCJvbkJ1bGtFeHBvcnRDbGlja2VkKGV4cG9ydE9wdGlvbilcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBvcnQtYnV0dG9uLWxhYmVsXCI+e3sgZXhwb3J0T3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8bWF0LWljb24+ZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8L21hdC1kcmF3ZXI+XG5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGNsYXNzPVwibWFpbi1jb250ZW50IGZ1bGwtaGVpZ2h0LW9ubHlcIj5cblxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjEgMCAxcHhcIiBjbGFzcz1cInZlcnRpY2FsbHktc2Nyb2xsYWJsZVwiPlxuICAgICAgICAgIDx0YWJsZSBtYXQtdGFibGUgY2xhc3M9XCJmdWxsLXdpZHRoIGhvcml6b250YWwtc2Nyb2xsLXRhYmxlXCIgbWF0U29ydD5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cbiAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsaWNrLXN0b3AtcHJvcGFnYXRpb24gKGNoYW5nZSk9XCJvbkNoZWNrQWxsKCRldmVudC5jaGVja2VkKVwiIFtjaGVja2VkXT1cImRhdGFTb3VyY2Uuc2VsZWN0QWxsXCI+PC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsaWNrLXN0b3AtcHJvcGFnYXRpb24gKGNoYW5nZSk9XCJvblJlY29yZENoZWNrZWQocm93LCAkZXZlbnQuY2hlY2tlZClcIiBbY2hlY2tlZF09XCJpc1JlY29yZENoZWNrZWQocm93KVwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBkaXNwbGF5ZWRDb2x1bW5zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwie3sgY29sdW1uLmF0dHIgfX1cIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgICAgICAgICAgIG1hdC1zb3J0LWhlYWRlcj1cInt7Y29sdW1uLnNvcnRBdHRyIHx8IGNvbHVtbi5hdHRyfX1cIiBbZGlzYWJsZWRdPVwiY29sdW1uLmRpc2FibGVTb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgW0Bjb2xsYXBzZV09XCJjb2x1bW4uZW5hYmxlQ29sbGFwc2UgJiYgIWV4cGFuZENvbGxhcHNpYmxlQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAnY29sbGFwc2libGUtY29sdW1uJzogY29sdW1uLmVuYWJsZUNvbGxhcHNlLFxuICAgICAgICAgICAgICAgICAgICAgICdjb2xsYXBzaWJsZS1jb2x1bW4tbGVmdCc6IGNvbHVtbi5lbmFibGVDb2xsYXBzZSAmJiAoIWRpc3BsYXllZENvbHVtbnNbaSAtIDFdIHx8ICFkaXNwbGF5ZWRDb2x1bW5zW2kgLSAxXS5lbmFibGVDb2xsYXBzZSksXG4gICAgICAgICAgICAgICAgICAgICAgJ2NvbGxhcHNpYmxlLWNvbHVtbi1yaWdodCc6IGNvbHVtbi5lbmFibGVDb2xsYXBzZSAmJiAoIWRpc3BsYXllZENvbHVtbnNbaSArIDFdIHx8ICFkaXNwbGF5ZWRDb2x1bW5zW2kgKyAxXS5lbmFibGVDb2xsYXBzZSlcbiAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAge3sgY29sdW1uLmhlYWRlciB9fVxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXG4gICAgICAgICAgICAgICAgICAgIFtAY29sbGFwc2VdPVwiY29sdW1uLmVuYWJsZUNvbGxhcHNlICYmICFleHBhbmRDb2xsYXBzaWJsZUNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgJ2NvbGxhcHNpYmxlLWNvbHVtbic6IGNvbHVtbi5lbmFibGVDb2xsYXBzZSxcbiAgICAgICAgICAgICAgICAgICAgICAnY29sbGFwc2libGUtY29sdW1uLWxlZnQnOiBjb2x1bW4uZW5hYmxlQ29sbGFwc2UgJiYgKCFkaXNwbGF5ZWRDb2x1bW5zW2kgLSAxXSB8fCAhZGlzcGxheWVkQ29sdW1uc1tpIC0gMV0uZW5hYmxlQ29sbGFwc2UpLFxuICAgICAgICAgICAgICAgICAgICAgICdjb2xsYXBzaWJsZS1jb2x1bW4tcmlnaHQnOiBjb2x1bW4uZW5hYmxlQ29sbGFwc2UgJiYgKCFkaXNwbGF5ZWRDb2x1bW5zW2kgKyAxXSB8fCAhZGlzcGxheWVkQ29sdW1uc1tpICsgMV0uZW5hYmxlQ29sbGFwc2UpXG4gICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICAgIDxtYW50bGUtZHluYW1pYy1hdHRyaWJ1dGUtZGlzcGxheVxuICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZFR5cGVdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyb3dbY29sdW1uLmF0dHJdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJjb2x1bW4ub3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgPC9tYW50bGUtZHluYW1pYy1hdHRyaWJ1dGUtZGlzcGxheT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbkF0dHJzXCI+PC90cj5cbiAgICAgICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5BdHRycztcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlY29yZENsaWNrZWQocm93KVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmNsaWNrYWJsZS1yb3ddPVwid2l0aENsaWNrYWJsZVJvd3NcIj5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG1hdC1wYWdpbmF0b3IgI3BhZ2luYXRvclxuICAgICAgICAgICAgZnhGbGV4PVwiMCAwIGF1dG9cIlxuICAgICAgICAgICAgW2xlbmd0aF09XCIwXCJcbiAgICAgICAgICAgIFtwYWdlSW5kZXhdPVwiMFwiXG4gICAgICAgICAgICBbcGFnZVNpemVdPVwiMTBcIlxuICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbMTAsIDIwLCA1MF1cIj5cbiAgICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuXG4gICAgICA8L2Rpdj5cblxuICAgIDwvbWF0LWRyYXdlci1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cImlzU21hbGxTY3JlZW5cIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjE2cHhcIj5cblxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzQWN0aW9uUGFuZWxPcGVuXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImRyYXdlci50b2dnbGUoKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBY3Rpb25QYW5lbE9wZW5cIj5cbiAgICAgICAgICBDbG9zZSBBY3Rpb25zPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEgMSBhdXRvXCI+PC9kaXY+XG5cbiAgICAgIDxidXR0b24gKm5nSWY9XCIhaXNBY3Rpb25QYW5lbE9wZW5cIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiZHJhd2VyLnRvZ2dsZSgpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fbGVmdDwvbWF0LWljb24+IE9wZW4gQWN0aW9uc1xuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvbGlzdC1wYWdlL2xpc3QtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL2xpc3QtcGFnZS9saXN0LXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUluRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCdkcsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBb0IsS0FBcUIsRUFBVSxRQUFrQixFQUNqRCxpQkFBb0MsRUFBVSxZQUEwQixFQUN4RSxpQkFBb0M7UUFGcEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2pELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN4RSxzQkFBaUIs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Q0FBQzs2QkFDM0IsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDO2dDQUNuQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7Z0NBQzlCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3JDLENBQUMsQ0FBQzt5QkFDSixDQUFDO3FCQUNIO2lCQUNGO3VOQUUwQixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPO2dCQUNHLEtBQUs7c0JBQXpCLFNBQVM7dUJBQUMsUUFBUTtnQkFDYyxXQUFXO3NCQUEzQyxTQUFTO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIFZpZXdDaGlsZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFVVE9fU1RZTEUsIGFuaW1hdGUsIHNlcXVlbmNlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7XG4gIExpc3RQYWdlU2VydmljZSwgTGlzdFBhZ2VDb2x1bW4sIExpc3RQYWdlRXhwb3J0T3B0aW9uLCBMaXN0UGFnZUJ1bGtFeHBvcnRPcHRpb24sIExpc3RQYWdlQnV0dG9uXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvbGlzdC1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlzdFBhZ2VEYXRhU291cmNlIH0gZnJvbSAnLi9saXN0LXBhZ2UtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvd2lkZ2V0cy9zZWFyY2gtcGFuZWwvc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcnJheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcnJheS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjcmVlblNpemVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2NyZWVuLXNpemUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1saXN0LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjb2xsYXBzZScsIFtcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgZGlzcGxheTogQVVUT19TVFlMRSwgb3BhY2l0eTogMSB9KSksXG4gICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgZGlzcGxheTogJ25vbmUnLCBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2ZhbHNlID0+IHRydWUnLCBzZXF1ZW5jZShbXG4gICAgICAgIGFuaW1hdGUoXCIxc1wiLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICBzdHlsZSh7IGRpc3BsYXk6ICdub25lJyB9KVxuICAgICAgXSkpLFxuICAgICAgdHJhbnNpdGlvbigndHJ1ZSA9PiBmYWxzZScsIHNlcXVlbmNlKFtcbiAgICAgICAgc3R5bGUoeyBkaXNwbGF5OiBBVVRPX1NUWUxFIH0pLFxuICAgICAgICBhbmltYXRlKFwiMXNcIiwgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKVxuICAgICAgXSkpXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQhOiBNYXRTb3J0O1xuICBAVmlld0NoaWxkKE1hdFRhYmxlKSB0YWJsZSE6IE1hdFRhYmxlPGFueT47XG4gIEBWaWV3Q2hpbGQoU2VhcmNoUGFuZWxDb21wb25lbnQpIHNlYXJjaFBhbmVsITogU2VhcmNoUGFuZWxDb21wb25lbnQ7XG5cbiAgcHVibGljIGxpc3RQYWdlU2VydmljZTogTGlzdFBhZ2VTZXJ2aWNlO1xuICBwdWJsaWMgZGF0YVNvdXJjZTogTGlzdFBhZ2VEYXRhU291cmNlO1xuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1ucyE6IExpc3RQYWdlQ29sdW1uW107XG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5BdHRycyE6IHN0cmluZ1tdO1xuICBwdWJsaWMgZXhwb3J0T3B0aW9ucyE6IExpc3RQYWdlRXhwb3J0T3B0aW9uW107XG4gIHB1YmxpYyBidWxrRXhwb3J0T3B0aW9ucyE6IExpc3RQYWdlQnVsa0V4cG9ydE9wdGlvbltdO1xuICBwdWJsaWMgd2l0aENsaWNrYWJsZVJvd3MhOiBib29sZWFuO1xuICBwdWJsaWMgaXNUYWJiZWRDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZztcbiAgcHVibGljIHdpdGhDb2xsYXBzaWJsZUNvbHVtbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGV4cGFuZENvbGxhcHNpYmxlQ29sdW1uczogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYWRkaXRpb25hbEJ1dHRvbnM6IExpc3RQYWdlQnV0dG9uW10gPSBbXTtcblxuICBwdWJsaWMgaXNBY3Rpb25QYW5lbE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzU21hbGxTY3JlZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGFycmF5U2VydmljZTogQXJyYXlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHNjcmVlblNpemVTZXJ2aWNlOiBTY3JlZW5TaXplU2VydmljZSkge1xuICAgIGNvbnN0IGxpc3RQYWdlU2VydmljZUluamVjdGlvblRva2VuID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydsaXN0UGFnZVNlcnZpY2UnXTtcbiAgICB0aGlzLmxpc3RQYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PExpc3RQYWdlU2VydmljZT4obGlzdFBhZ2VTZXJ2aWNlSW5qZWN0aW9uVG9rZW4pO1xuXG4gICAgdGhpcy5saXN0UGFnZVNlcnZpY2UucHJlcGFyZSh0aGlzLnJvdXRlKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTGlzdFBhZ2VEYXRhU291cmNlKHRoaXMubGlzdFBhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmxpc3RQYWdlU2VydmljZS5saXN0Q29sdW1ucygpO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uQXR0cnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMubWFwKGEgPT4gYS5hdHRyKTtcbiAgICB0aGlzLmV4cG9ydE9wdGlvbnMgPSB0aGlzLmxpc3RQYWdlU2VydmljZS5saXN0UGFnZUV4cG9ydE9wdGlvbnMoKTtcbiAgICB0aGlzLmJ1bGtFeHBvcnRPcHRpb25zID0gdGhpcy5saXN0UGFnZVNlcnZpY2UubGlzdFBhZ2VCdWxrRXhwb3J0T3B0aW9ucygpO1xuICAgIHRoaXMud2l0aENsaWNrYWJsZVJvd3MgPSB0aGlzLmxpc3RQYWdlU2VydmljZS53aXRoQ2xpY2thYmxlUm93cztcbiAgICB0aGlzLmlzVGFiYmVkQ29udGVudCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnaXNUYWJiZWRDb250ZW50J107XG4gICAgdGhpcy5wYWdlVGl0bGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ3BhZ2VUaXRsZSddO1xuXG4gICAgaWYgKHRoaXMubGlzdFBhZ2VTZXJ2aWNlLndpdGhDaGVja2FibGVSb3dzKSB0aGlzLmRpc3BsYXllZENvbHVtbkF0dHJzLnVuc2hpZnQoJ3NlbGVjdCcpO1xuICAgIGlmICh0aGlzLmxpc3RQYWdlU2VydmljZS53aXRoQ29sbGFwc2libGVDb2x1bW5zKSB0aGlzLndpdGhDb2xsYXBzaWJsZUNvbHVtbnMgPSB0cnVlO1xuXG4gICAgdGhpcy5zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplLnN1YnNjcmliZSgoc2NyZWVuU2l6ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmlzU21hbGxTY3JlZW4gPSBzY3JlZW5TaXplID09ICd4cycgfHwgc2NyZWVuU2l6ZSA9PSAnc20nO1xuICAgICAgdGhpcy5pc0FjdGlvblBhbmVsT3BlbiA9ICF0aGlzLmlzU21hbGxTY3JlZW47XG4gICAgfSk7XG5cbiAgICB0aGlzLmxvYWRBZGRpdGlvbmFsQnV0dG9ucygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3RQYWdlU2VydmljZS5kZWZhdWx0T3JkZXIpIHtcbiAgICAgIHRoaXMuc29ydC5hY3RpdmUgPSB0aGlzLmxpc3RQYWdlU2VydmljZS5kZWZhdWx0T3JkZXIuYXR0cjtcbiAgICAgIHRoaXMuc29ydC5kaXJlY3Rpb24gPSB0aGlzLmxpc3RQYWdlU2VydmljZS5kZWZhdWx0T3JkZXIuZGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc2VhcmNoUGFuZWwgPSB0aGlzLnNlYXJjaFBhbmVsO1xuICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZTtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25SZWNvcmRDbGlja2VkKHJlY29yZDogYW55KSB7XG4gICAgaWYgKCF0aGlzLndpdGhDbGlja2FibGVSb3dzKSByZXR1cm47XG5cbiAgICB0aGlzLmxpc3RQYWdlU2VydmljZS5vcGVuUmVjb3JkKHJlY29yZCk7XG4gIH1cblxuICBvbkFkZENsaWNrZWQoKSB7XG4gICAgdGhpcy5saXN0UGFnZVNlcnZpY2Uub3BlbkZvcm0oKTtcbiAgfVxuXG4gIG9uQmFja1RvUGFyZW50Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RQYWdlU2VydmljZS5vcGVuUGFyZW50KCk7XG4gIH1cblxuICBpc1JlY29yZENoZWNrZWQocmVjb3JkOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheVNlcnZpY2UuaGFzSXRlbSh0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRSZWNvcmRJZHMsIHJlY29yZC5pZCk7XG4gIH1cblxuICBvblJlY29yZENoZWNrZWQocmVjb3JkOiBhbnksIGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzLnB1c2gocmVjb3JkLmlkKTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RBbGwgPSB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRSZWNvcmRJZHMubGVuZ3RoID4gMCAmJiB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRSZWNvcmRJZHMubGVuZ3RoID09IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmFycmF5U2VydmljZS5yZW1vdmVJdGVtKHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RlZFJlY29yZElkcywgcmVjb3JkLmlkKTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZWxlY3RBbGwgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvbkNoZWNrQWxsKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubWFwKChpdGVtOiBhbnkpID0+IHsgcmV0dXJuIGl0ZW0uaWQ7IH0pO1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNlbGVjdEFsbCA9IHRydWU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzID0gW107XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0QWxsID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25CdWxrRXhwb3J0Q2xpY2tlZChleHBvcnRPcHRpb246IExpc3RQYWdlQnVsa0V4cG9ydE9wdGlvbikge1xuICAgIGV4cG9ydE9wdGlvbi5leHBvcnQodGhpcy5kYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzKTtcbiAgfVxuXG4gIGxvYWRBZGRpdGlvbmFsQnV0dG9ucygpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxCdXR0b25zID0gdGhpcy5saXN0UGFnZVNlcnZpY2UuYWRkaXRpb25hbExpc3RQYWdlQnV0dG9ucygpO1xuICB9XG5cbiAgdG9nZ2xlQ29sbGFwc2libGVDb2x1bW5zKCkge1xuICAgIHRoaXMuZXhwYW5kQ29sbGFwc2libGVDb2x1bW5zID0gIXRoaXMuZXhwYW5kQ29sbGFwc2libGVDb2x1bW5zO1xuICB9XG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0cmV0Y2hcIiBmeExheW91dEdhcD1cIjE2cHhcIiBjbGFzcz1cImxpc3QtcGFnZSBmdWxsLWhlaWdodC1vbmx5XCIgW25nQ2xhc3NdPVwieydwYWdlJzogIWlzVGFiYmVkQ29udGVudH1cIj5cblxuICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCIhaXNUYWJiZWRDb250ZW50XCI+XG4gICAgPG1hbnRsZS1wYWdlLXRpdGxlPnt7IHBhZ2VUaXRsZSB8IHRyYW5zbGF0ZSB9fTwvbWFudGxlLXBhZ2UtdGl0bGU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cImxpc3RQYWdlU2VydmljZS5zaG93QmFja1RvUGFyZW50QnV0dG9uIHx8IHdpdGhDb2xsYXBzaWJsZUNvbHVtbnNcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjE2cHhcIj5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cImxpc3RQYWdlU2VydmljZS5zaG93QmFja1RvUGFyZW50QnV0dG9uXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJiYWNrLWJ1dHRvblwiIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQmFja1RvUGFyZW50Q2xpY2tlZCgpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEgMSBhdXRvXCI+PC9kaXY+XG5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cIndpdGhDb2xsYXBzaWJsZUNvbHVtbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0b2dnbGUtY29sbGFwc2libGUtY29sdW1ucy1idXR0b24gYnV0dG9uLXdpdGgtaWNvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNpYmxlQ29sdW1ucygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuZENvbGxhcHNpYmxlQ29sdW1uc1wiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibGVmdC1pY29uXCI+a2V5Ym9hcmRfZG91YmxlX2Fycm93X2xlZnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4+e3sgJ21hbnRsZS5idXR0b25zLmNvbGxhcHNlX3RhYmxlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZENvbGxhcHNpYmxlQ29sdW1uc1wiPlxuICAgICAgICAgICAgPHNwYW4+e3sgJ21hbnRsZS5idXR0b25zLmV4cGFuZF90YWJsZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJyaWdodC1pY29uXCI+a2V5Ym9hcmRfZG91YmxlX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIxIDAgMXB4XCI+XG4gICAgPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiZnVsbC1oZWlnaHQtb25seVwiIFtoYXNCYWNrZHJvcF09XCJpc1NtYWxsU2NyZWVuXCI+XG4gICAgICA8bWF0LWRyYXdlciAjZHJhd2VyXG4gICAgICAgICAgW21vZGVdPVwiaXNTbWFsbFNjcmVlbiA/ICdvdmVyJyA6ICdzaWRlJ1wiXG4gICAgICAgICAgW3Bvc2l0aW9uXT1cImlzU21hbGxTY3JlZW4gPyAnZW5kJyA6ICdzdGFydCdcIlxuICAgICAgICAgIFtvcGVuZWRdPVwiaXNBY3Rpb25QYW5lbE9wZW5cIlxuICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwiIWlzU21hbGxTY3JlZW5cIlxuICAgICAgICAgIChjbG9zZWRTdGFydCk9XCJpc0FjdGlvblBhbmVsT3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICAob3BlbmVkU3RhcnQpPVwiaXNBY3Rpb25QYW5lbE9wZW4gPSB0cnVlXCI+XG5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImxpc3RQYWdlU2VydmljZS5zaG93QWRkQnV0dG9uICYmIGxpc3RQYWdlU2VydmljZS5jYW5Xcml0ZSgpXCJcbiAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRkLWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25BZGRDbGlja2VkKClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdFBhZ2VTZXJ2aWNlLmN1c3RvbUFkZEJ1dHRvbkxhYmVsOyBlbHNlIHN0YW5kYXJkQWRkQnV0dG9uTGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGxpc3RQYWdlU2VydmljZS5jdXN0b21BZGRCdXR0b25MYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRBZGRCdXR0b25MYWJlbD5cbiAgICAgICAgICAgICsge3sgJ21hbnRsZS5idXR0b25zLmFkZCcgfCB0cmFuc2xhdGUgfX0ge3sgbGlzdFBhZ2VTZXJ2aWNlLm5vdW4oKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtc2VjdGlvblwiPlxuICAgICAgICAgIDxtYW50bGUtc2VhcmNoLXBhbmVsICNzZWFyY2hQYW5lbFxuICAgICAgICAgICAgICBbc2VhcmNoRmllbGRzXT1cImxpc3RQYWdlU2VydmljZS5zZWFyY2hGaWVsZHMoKVwiPlxuICAgICAgICAgIDwvbWFudGxlLXNlYXJjaC1wYW5lbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXhwb3J0T3B0aW9uIG9mIGV4cG9ydE9wdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZXhwb3J0LWJ1dHRvblwiIChjbGljayk9XCJleHBvcnRPcHRpb24uZXhwb3J0KHNlYXJjaFBhbmVsLnNlYXJjaFBhcmFtcykuc3Vic2NyaWJlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXhwb3J0LWJ1dHRvbi1sYWJlbFwiPnt7IGV4cG9ydE9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhU291cmNlLnNlbGVjdGVkUmVjb3JkSWRzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHBvcnRPcHRpb24gb2YgYnVsa0V4cG9ydE9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJleHBvcnQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uQnVsa0V4cG9ydENsaWNrZWQoZXhwb3J0T3B0aW9uKVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4cG9ydC1idXR0b24tbGFiZWxcIj57eyBleHBvcnRPcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFkZGl0aW9uYWxCdXR0b25zXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImJ1dHRvbi5zaG93XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRkaXRpb25hbC1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLXByb2dyZXNzLWJ1dHRvbic6IGJ1dHRvbi5pc0luUHJvZ3Jlc3MoKSB9XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGlzdFBhZ2VTZXJ2aWNlLmlzQ29tbWl0SW5Qcm9ncmVzcyB8fCBidXR0b24uZGlzYWJsZWQgfHwgZGF0YVNvdXJjZS5zZWxlY3RlZFJlY29yZElkcy5sZW5ndGggPD0gMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5vbkNsaWNrKGRhdGFTb3VyY2Uuc2VsZWN0ZWRSZWNvcmRJZHMpXCI+XG4gICAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJidXR0b24uaXNJblByb2dyZXNzKClcIiBtYXRTdWZmaXggW2RpYW1ldGVyXT1cIjE2XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9tYXQtZHJhd2VyPlxuXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0cmV0Y2hcIiBjbGFzcz1cIm1haW4tY29udGVudCBmdWxsLWhlaWdodC1vbmx5XCI+XG5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCIxIDAgMXB4XCIgY2xhc3M9XCJ2ZXJ0aWNhbGx5LXNjcm9sbGFibGVcIj5cbiAgICAgICAgICA8dGFibGUgbWF0LXRhYmxlIGNsYXNzPVwiZnVsbC13aWR0aCBob3Jpem9udGFsLXNjcm9sbC10YWJsZVwiIG1hdFNvcnQ+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGljay1zdG9wLXByb3BhZ2F0aW9uIChjaGFuZ2UpPVwib25DaGVja0FsbCgkZXZlbnQuY2hlY2tlZClcIiBbY2hlY2tlZF09XCJkYXRhU291cmNlLnNlbGVjdEFsbFwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGljay1zdG9wLXByb3BhZ2F0aW9uIChjaGFuZ2UpPVwib25SZWNvcmRDaGVja2VkKHJvdywgJGV2ZW50LmNoZWNrZWQpXCIgW2NoZWNrZWRdPVwiaXNSZWNvcmRDaGVja2VkKHJvdylcIj48L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGlzcGxheWVkQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInt7IGNvbHVtbi5hdHRyIH19XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgICAgICAgICAgICAgICBtYXQtc29ydC1oZWFkZXI9XCJ7e2NvbHVtbi5zb3J0QXR0ciB8fCBjb2x1bW4uYXR0cn19XCIgW2Rpc2FibGVkXT1cImNvbHVtbi5kaXNhYmxlU29ydFwiXG4gICAgICAgICAgICAgICAgICAgIFtAY29sbGFwc2VdPVwiY29sdW1uLmVuYWJsZUNvbGxhcHNlICYmICFleHBhbmRDb2xsYXBzaWJsZUNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgJ2NvbGxhcHNpYmxlLWNvbHVtbic6IGNvbHVtbi5lbmFibGVDb2xsYXBzZSxcbiAgICAgICAgICAgICAgICAgICAgICAnY29sbGFwc2libGUtY29sdW1uLWxlZnQnOiBjb2x1bW4uZW5hYmxlQ29sbGFwc2UgJiYgKCFkaXNwbGF5ZWRDb2x1bW5zW2kgLSAxXSB8fCAhZGlzcGxheWVkQ29sdW1uc1tpIC0gMV0uZW5hYmxlQ29sbGFwc2UpLFxuICAgICAgICAgICAgICAgICAgICAgICdjb2xsYXBzaWJsZS1jb2x1bW4tcmlnaHQnOiBjb2x1bW4uZW5hYmxlQ29sbGFwc2UgJiYgKCFkaXNwbGF5ZWRDb2x1bW5zW2kgKyAxXSB8fCAhZGlzcGxheWVkQ29sdW1uc1tpICsgMV0uZW5hYmxlQ29sbGFwc2UpXG4gICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbHVtbi5oZWFkZXIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIlxuICAgICAgICAgICAgICAgICAgICBbQGNvbGxhcHNlXT1cImNvbHVtbi5lbmFibGVDb2xsYXBzZSAmJiAhZXhwYW5kQ29sbGFwc2libGVDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICdjb2xsYXBzaWJsZS1jb2x1bW4nOiBjb2x1bW4uZW5hYmxlQ29sbGFwc2UsXG4gICAgICAgICAgICAgICAgICAgICAgJ2NvbGxhcHNpYmxlLWNvbHVtbi1sZWZ0JzogY29sdW1uLmVuYWJsZUNvbGxhcHNlICYmICghZGlzcGxheWVkQ29sdW1uc1tpIC0gMV0gfHwgIWRpc3BsYXllZENvbHVtbnNbaSAtIDFdLmVuYWJsZUNvbGxhcHNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAnY29sbGFwc2libGUtY29sdW1uLXJpZ2h0JzogY29sdW1uLmVuYWJsZUNvbGxhcHNlICYmICghZGlzcGxheWVkQ29sdW1uc1tpICsgMV0gfHwgIWRpc3BsYXllZENvbHVtbnNbaSArIDFdLmVuYWJsZUNvbGxhcHNlKVxuICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICA8bWFudGxlLWR5bmFtaWMtYXR0cmlidXRlLWRpc3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICBbZmllbGRUeXBlXT1cImNvbHVtbi50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicm93W2NvbHVtbi5hdHRyXVwiXG4gICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiY29sdW1uLm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDwvbWFudGxlLWR5bmFtaWMtYXR0cmlidXRlLWRpc3BsYXk+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5BdHRyc1wiPjwvdHI+XG4gICAgICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uQXR0cnM7XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SZWNvcmRDbGlja2VkKHJvdylcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5jbGlja2FibGUtcm93XT1cIndpdGhDbGlja2FibGVSb3dzXCI+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3JcbiAgICAgICAgICAgIGZ4RmxleD1cIjAgMCBhdXRvXCJcbiAgICAgICAgICAgIFtsZW5ndGhdPVwiMFwiXG4gICAgICAgICAgICBbcGFnZUluZGV4XT1cIjBcIlxuICAgICAgICAgICAgW3BhZ2VTaXplXT1cIjEwXCJcbiAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzEwLCAyMCwgNTBdXCI+XG4gICAgICAgIDwvbWF0LXBhZ2luYXRvcj5cblxuICAgICAgPC9kaXY+XG5cbiAgICA8L21hdC1kcmF3ZXItY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCJpc1NtYWxsU2NyZWVuXCI+XG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxNnB4XCI+XG5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJpc0FjdGlvblBhbmVsT3BlblwiIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIChjbGljayk9XCJkcmF3ZXIudG9nZ2xlKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWN0aW9uUGFuZWxPcGVuXCI+XG4gICAgICAgICAge3sgJ21hbnRsZS5idXR0b25zLmNsb3NlX2FjdGlvbnMnIHwgdHJhbnNsYXRlIH19PG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEgMSBhdXRvXCI+PC9kaXY+XG5cbiAgICAgIDxidXR0b24gKm5nSWY9XCIhaXNBY3Rpb25QYW5lbE9wZW5cIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiZHJhd2VyLnRvZ2dsZSgpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fbGVmdDwvbWF0LWljb24+IHt7ICdtYW50bGUuYnV0dG9ucy5vcGVuX2FjdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export const ROSTER_GANTT_CHART = {
|
|
2
|
+
chart: {
|
|
3
|
+
type: 'gantt'
|
|
4
|
+
},
|
|
5
|
+
exporting: {
|
|
6
|
+
enabled: true,
|
|
7
|
+
sourceWidth: 1200,
|
|
8
|
+
buttons: {
|
|
9
|
+
contextButton: {
|
|
10
|
+
menuItems: ["downloadCSV", "downloadPDF", "downloadJPEG"]
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
legend: { enabled: false },
|
|
15
|
+
plotOptions: {
|
|
16
|
+
gantt: {
|
|
17
|
+
borderRadius: 0,
|
|
18
|
+
pointWidth: 24
|
|
19
|
+
},
|
|
20
|
+
series: {
|
|
21
|
+
dataLabels: {
|
|
22
|
+
enabled: true,
|
|
23
|
+
format: '{point.shift_type}'
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
tooltip: {
|
|
28
|
+
pointFormatter: function () {
|
|
29
|
+
let point = this;
|
|
30
|
+
let startDate = new Date(point.start);
|
|
31
|
+
let startDateString = `${startDate.toLocaleString('en-US', { month: 'short' })}. ${startDate.getDate()}`;
|
|
32
|
+
let endDate = new Date(point.end);
|
|
33
|
+
endDate.setDate(endDate.getDate() - 1);
|
|
34
|
+
let endDateString = `${endDate.toLocaleString('en-US', { month: 'short' })}. ${endDate.getDate()}`;
|
|
35
|
+
return '<b>' + point.shift_type + '</b><br/><span>From: ' + startDateString + '</span><br/><span>To: ' + endDateString + '</span><br/>';
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
yAxis: {
|
|
39
|
+
type: 'category',
|
|
40
|
+
grid: {
|
|
41
|
+
enabled: true,
|
|
42
|
+
borderWidth: 1,
|
|
43
|
+
columns: [{
|
|
44
|
+
title: { text: 'Employees' }
|
|
45
|
+
}]
|
|
46
|
+
},
|
|
47
|
+
gridLineWidth: 1
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zdGVyLWdhbnR0LmRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3Jvc3Rlci1wYWdlL3Jvc3Rlci1nYW50dC5kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUF1QjtJQUNwRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsT0FBTyxFQUFFLElBQUk7UUFDYixXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPLEVBQUU7WUFDUCxhQUFhLEVBQU87Z0JBQ2xCLFNBQVMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO2FBQzFEO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDMUIsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFO1lBQ0wsWUFBWSxFQUFFLENBQUM7WUFDZixVQUFVLEVBQUUsRUFBRTtTQUNmO1FBQ0QsTUFBTSxFQUFFO1lBQ04sVUFBVSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxJQUFJO2dCQUNiLE1BQU0sRUFBRSxvQkFBb0I7YUFDN0I7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsY0FBYyxFQUFFO1lBQ2QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBRWpCLElBQUksU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLGVBQWUsR0FBRyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFFekcsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksYUFBYSxHQUFHLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUVuRyxPQUFPLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxHQUFHLHVCQUF1QixHQUFHLGVBQWUsR0FBRyx3QkFBd0IsR0FBRyxhQUFhLEdBQUcsY0FBYyxDQUFDO1FBQzFJLENBQUM7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRTtZQUNKLE9BQU8sRUFBRSxJQUFJO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsQ0FBQztvQkFDUixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2lCQUM3QixDQUFDO1NBQ0g7UUFDRCxhQUFhLEVBQUUsQ0FBQztLQUNqQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUk9TVEVSX0dBTlRUX0NIQVJUOiBIaWdoY2hhcnRzLk9wdGlvbnMgPSB7XG4gIGNoYXJ0OiB7XG4gICAgdHlwZTogJ2dhbnR0J1xuICB9LFxuICBleHBvcnRpbmc6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIHNvdXJjZVdpZHRoOiAxMjAwLFxuICAgIGJ1dHRvbnM6IHtcbiAgICAgIGNvbnRleHRCdXR0b246IDxhbnk+e1xuICAgICAgICBtZW51SXRlbXM6IFtcImRvd25sb2FkQ1NWXCIsIFwiZG93bmxvYWRQREZcIiwgXCJkb3dubG9hZEpQRUdcIl1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIGxlZ2VuZDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICBwbG90T3B0aW9uczoge1xuICAgIGdhbnR0OiB7XG4gICAgICBib3JkZXJSYWRpdXM6IDAsXG4gICAgICBwb2ludFdpZHRoOiAyNFxuICAgIH0sXG4gICAgc2VyaWVzOiB7XG4gICAgICBkYXRhTGFiZWxzOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIGZvcm1hdDogJ3twb2ludC5zaGlmdF90eXBlfSdcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBwb2ludEZvcm1hdHRlcjogZnVuY3Rpb24odGhpczogYW55KTogc3RyaW5nIHtcbiAgICAgIGxldCBwb2ludCA9IHRoaXM7XG5cbiAgICAgIGxldCBzdGFydERhdGUgPSBuZXcgRGF0ZShwb2ludC5zdGFydCk7XG4gICAgICBsZXQgc3RhcnREYXRlU3RyaW5nID0gYCR7c3RhcnREYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbW9udGg6ICdzaG9ydCcgfSl9LiAke3N0YXJ0RGF0ZS5nZXREYXRlKCl9YDtcblxuICAgICAgbGV0IGVuZERhdGUgPSBuZXcgRGF0ZShwb2ludC5lbmQpO1xuICAgICAgZW5kRGF0ZS5zZXREYXRlKGVuZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XG4gICAgICBsZXQgZW5kRGF0ZVN0cmluZyA9IGAke2VuZERhdGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JyB9KX0uICR7ZW5kRGF0ZS5nZXREYXRlKCl9YDtcblxuICAgICAgcmV0dXJuICc8Yj4nICsgcG9pbnQuc2hpZnRfdHlwZSArICc8L2I+PGJyLz48c3Bhbj5Gcm9tOiAnICsgc3RhcnREYXRlU3RyaW5nICsgJzwvc3Bhbj48YnIvPjxzcGFuPlRvOiAnICsgZW5kRGF0ZVN0cmluZyArICc8L3NwYW4+PGJyLz4nO1xuICAgIH1cbiAgfSxcbiAgeUF4aXM6IHtcbiAgICB0eXBlOiAnY2F0ZWdvcnknLFxuICAgIGdyaWQ6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBib3JkZXJXaWR0aDogMSxcbiAgICAgIGNvbHVtbnM6IFt7XG4gICAgICAgIHRpdGxlOiB7IHRleHQ6ICdFbXBsb3llZXMnIH1cbiAgICAgIH1dXG4gICAgfSxcbiAgICBncmlkTGluZVdpZHRoOiAxXG4gIH0sXG59O1xuIl19
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MatDialogConfig } from '@angular/material/dialog';
|
|
3
|
+
import * as moment from 'moment';
|
|
4
|
+
import { ROSTER_GANTT_CHART } from './roster-gantt.data';
|
|
5
|
+
import { DialogFormComponent } from '../../../components/form/dialog-form/dialog-form.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "../../../services/locale.service";
|
|
9
|
+
import * as i3 from "@angular/material/dialog";
|
|
10
|
+
import * as i4 from "../../../services/object.service";
|
|
11
|
+
import * as i5 from "../../../services/screen-size.service";
|
|
12
|
+
import * as i6 from "../../titles/page-title/page-title.component";
|
|
13
|
+
import * as i7 from "@angular/material/button";
|
|
14
|
+
import * as i8 from "@angular/material/icon";
|
|
15
|
+
import * as i9 from "../../dashboard/widgets/dynamic-chart/dynamic-chart.component";
|
|
16
|
+
import * as i10 from "@angular/flex-layout/flex";
|
|
17
|
+
import * as i11 from "@angular/common";
|
|
18
|
+
import * as i12 from "@ngx-translate/core";
|
|
19
|
+
export class RosterPageComponent {
|
|
20
|
+
constructor(route, injector, localeService, dialog, objectService, screenSizeService) {
|
|
21
|
+
this.route = route;
|
|
22
|
+
this.injector = injector;
|
|
23
|
+
this.localeService = localeService;
|
|
24
|
+
this.dialog = dialog;
|
|
25
|
+
this.objectService = objectService;
|
|
26
|
+
this.screenSizeService = screenSizeService;
|
|
27
|
+
this.rosterData = {}; // Roster gantt chart data
|
|
28
|
+
this.startDate = '';
|
|
29
|
+
this.endDate = '';
|
|
30
|
+
this.month = '';
|
|
31
|
+
this.isSmallScreen = false;
|
|
32
|
+
const rosterPageServiceInjectionToken = this.route.snapshot.data['rosterPageService'];
|
|
33
|
+
this.rosterPageService = this.injector.get(rosterPageServiceInjectionToken);
|
|
34
|
+
const rosterScheduleServiceInjectionToken = this.route.snapshot.data['rosterScheduleService'];
|
|
35
|
+
this.rosterScheduleService = this.injector.get(rosterScheduleServiceInjectionToken);
|
|
36
|
+
this.pageTitle = this.route.snapshot.data['pageTitle'];
|
|
37
|
+
this.screenSizeService.screenSize.subscribe((screenSize) => {
|
|
38
|
+
this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
this.startDate = moment().locale(this.localeService.currentLocaleCode).startOf('month').format('YYYY-MM-DD');
|
|
43
|
+
this.endDate = moment().locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');
|
|
44
|
+
this.month = moment().locale(this.localeService.currentLocaleCode).startOf('month').format('MMMM YYYY');
|
|
45
|
+
this.rosterScheduleService.subContentChangeEvents.subscribe((value) => {
|
|
46
|
+
this.pullContent();
|
|
47
|
+
});
|
|
48
|
+
this.pullContent();
|
|
49
|
+
}
|
|
50
|
+
showPrevMonth() {
|
|
51
|
+
this.startDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).subtract(1, 'M').format('YYYY-MM-DD');
|
|
52
|
+
this.endDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');
|
|
53
|
+
this.month = moment(this.startDate).locale(this.localeService.currentLocaleCode).format('MMMM YYYY');
|
|
54
|
+
this.pullContent();
|
|
55
|
+
}
|
|
56
|
+
showNextMonth() {
|
|
57
|
+
this.startDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).add(1, 'M').format('YYYY-MM-DD');
|
|
58
|
+
this.endDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');
|
|
59
|
+
this.month = moment(this.startDate).locale(this.localeService.currentLocaleCode).format('MMMM YYYY');
|
|
60
|
+
this.pullContent();
|
|
61
|
+
}
|
|
62
|
+
pullContent() {
|
|
63
|
+
this.route.params.subscribe(params => {
|
|
64
|
+
this.id = this.route.snapshot.params['id'];
|
|
65
|
+
this.rosterPageService.get(this.id, { date_from: this.startDate, date_to: this.endDate }).subscribe((res) => {
|
|
66
|
+
this.loadRoster(res.content.data.roster_schedules.data);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
loadRoster(data) {
|
|
71
|
+
let ganttChartConfiguration = this.objectService.deepMerge(ROSTER_GANTT_CHART, {
|
|
72
|
+
plotOptions: {
|
|
73
|
+
series: {
|
|
74
|
+
events: {
|
|
75
|
+
click: (event) => {
|
|
76
|
+
this.openScheduleRecord(event.point.schedule_id);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
exporting: {
|
|
82
|
+
menuItemDefinitions: {
|
|
83
|
+
downloadCSV: {
|
|
84
|
+
text: 'Download CSV file',
|
|
85
|
+
onclick: () => { this.exportCsv().subscribe(); }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
this.rosterData = this.objectService.deepMerge(ganttChartConfiguration, data);
|
|
91
|
+
}
|
|
92
|
+
exportCsv() {
|
|
93
|
+
return this.rosterPageService.exportRosterCsv(this.id, { date_from: this.startDate, date_to: this.endDate });
|
|
94
|
+
}
|
|
95
|
+
onBackClicked() {
|
|
96
|
+
this.rosterPageService.openList();
|
|
97
|
+
}
|
|
98
|
+
onEditClicked() {
|
|
99
|
+
const dialogConfig = new MatDialogConfig();
|
|
100
|
+
dialogConfig.data = {
|
|
101
|
+
formPageService: this.rosterPageService,
|
|
102
|
+
title: 'shift_management.dialogs.rosters.edit',
|
|
103
|
+
id: this.id
|
|
104
|
+
};
|
|
105
|
+
dialogConfig.width = '80%';
|
|
106
|
+
dialogConfig.autoFocus = false;
|
|
107
|
+
let dialogRef = this.dialog.open(DialogFormComponent, dialogConfig);
|
|
108
|
+
dialogRef.afterClosed().subscribe((response) => {
|
|
109
|
+
if (response === null || response === void 0 ? void 0 : response._destroy) {
|
|
110
|
+
this.rosterPageService.openList();
|
|
111
|
+
}
|
|
112
|
+
else if (response) {
|
|
113
|
+
this.pullContent();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
openScheduleRecord(scheduleId) {
|
|
118
|
+
this.rosterScheduleService.openRecord({ id: scheduleId });
|
|
119
|
+
}
|
|
120
|
+
openScheduleForm(scheduleId) {
|
|
121
|
+
this.rosterScheduleService.openForm({ id: scheduleId }, { roster_id: this.id });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
RosterPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: RosterPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.Injector }, { token: i2.LocaleService }, { token: i3.MatDialog }, { token: i4.ObjectService }, { token: i5.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
+
RosterPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: RosterPageComponent, selector: "mantle-roster-page", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"page full-height-min full-height-only vertically-scrollable\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n\n <div fxFlex=\"0 0 auto\" fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"page-header\">\n <div fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"!rosterPageService.hideBackButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <button *ngIf=\"rosterScheduleService.showAddButton && rosterPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"openScheduleForm()\">\n + {{ 'mantle.buttons.add' | translate }} {{ rosterScheduleService.noun() | translate }}\n </button>\n\n <ng-container *ngIf=\"!isSmallScreen; then monthControls\">\n </ng-container>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"rosterPageService.showEditButton && rosterPageService.canWrite()\">\n <button mat-mini-fab\n color=\"primary\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onEditClicked()\"\n [disabled]=\"rosterPageService.isCommitInProgress\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n </div>\n\n <ng-container *ngIf=\"isSmallScreen; then monthControls\">\n </ng-container>\n </div>\n\n <mantle-dynamic-chart [data]=\"rosterData\"></mantle-dynamic-chart>\n</div>\n\n<ng-template #monthControls>\n <div class=\"month-controls\">\n <button type=\"button\" mat-button (click)=\"showPrevMonth()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n \n <div class=\"month-text\">{{ month }}</div>\n \n <button type=\"button\" mat-button (click)=\"showNextMonth()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n</ng-template>\n", styles: [".add-button{display:block;text-transform:uppercase;border-radius:0}.month-controls{display:inline-flex}.month-text{margin:auto;font-weight:500}\n"], components: [{ type: i6.PageTitleComponent, selector: "mantle-page-title" }, { 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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.DynamicChartComponent, selector: "mantle-dynamic-chart", inputs: ["label", "data"] }], directives: [{ type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i12.TranslatePipe } });
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: RosterPageComponent, decorators: [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{
|
|
129
|
+
selector: 'mantle-roster-page',
|
|
130
|
+
templateUrl: './roster-page.component.html',
|
|
131
|
+
styleUrls: ['./roster-page.component.scss']
|
|
132
|
+
}]
|
|
133
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i0.Injector }, { type: i2.LocaleService }, { type: i3.MatDialog }, { type: i4.ObjectService }, { type: i5.ScreenSizeService }]; } });
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zdGVyLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9yb3N0ZXItcGFnZS9yb3N0ZXItcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3Jvc3Rlci1wYWdlL3Jvc3Rlci1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFjakcsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixZQUFvQixLQUFxQixFQUFVLFFBQWtCLEVBQ2pELGFBQTRCLEVBQVUsTUFBaUIsRUFDdkQsYUFBNEIsRUFBVSxpQkFBb0M7UUFGMUUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2pELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUN2RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFUdkYsZUFBVSxHQUFRLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtRQUNoRCxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsVUFBSyxHQUFXLEVBQUUsQ0FB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SyxHQUFHLEtBQUssQ0FBQztRQUMzQixZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUUvQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVwRSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDbEQsSUFBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsUUFBUSxFQUFFO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDbkM7aUJBQ0ksSUFBSSxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQWtCO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDOztnSEFwSVUsbUJBQW1CO29HQUFuQixtQkFBbUIsMERDcEJoQyxnb0VBeURBOzJGRHJDYSxtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJPU1RFUl9HQU5UVF9DSEFSVCB9IGZyb20gJy4vcm9zdGVyLWdhbnR0LmRhdGEnO1xuaW1wb3J0IHsgRGlhbG9nRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZm9ybS9kaWFsb2ctZm9ybS9kaWFsb2ctZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9mb3JtLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbG9jYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm9zdGVyUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL3Jvc3Rlci1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm9zdGVyU2NoZWR1bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9yb3N0ZXItc2NoZWR1bGUuc2VydmljZSc7XG5pbXBvcnQgeyBPYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQXBpRGV0YWlsc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWRhcHRlcnMvd2ViLWFwaS1jcnVkLmFkYXB0ZXInO1xuaW1wb3J0IHsgU2NyZWVuU2l6ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLXJvc3Rlci1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jvc3Rlci1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm9zdGVyLXBhZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSb3N0ZXJQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgcm9zdGVyUGFnZVNlcnZpY2U6IFJvc3RlclBhZ2VTZXJ2aWNlO1xuICBwdWJsaWMgcm9zdGVyU2NoZWR1bGVTZXJ2aWNlOiBSb3N0ZXJTY2hlZHVsZVNlcnZpY2U7XG4gIHB1YmxpYyBpZCE6IHN0cmluZztcbiAgcHVibGljIHBhZ2VUaXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyByb3N0ZXJEYXRhOiBhbnkgPSB7fTsgLy8gUm9zdGVyIGdhbnR0IGNoYXJ0IGRhdGFcbiAgcHVibGljIHN0YXJ0RGF0ZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBlbmREYXRlOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIG1vbnRoOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgaXNTbWFsbFNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLCBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICBwcml2YXRlIG9iamVjdFNlcnZpY2U6IE9iamVjdFNlcnZpY2UsIHByaXZhdGUgc2NyZWVuU2l6ZVNlcnZpY2U6IFNjcmVlblNpemVTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IHJvc3RlclBhZ2VTZXJ2aWNlSW5qZWN0aW9uVG9rZW4gPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ3Jvc3RlclBhZ2VTZXJ2aWNlJ107XG4gICAgdGhpcy5yb3N0ZXJQYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvc3RlclBhZ2VTZXJ2aWNlPihyb3N0ZXJQYWdlU2VydmljZUluamVjdGlvblRva2VuKTtcbiAgICBjb25zdCByb3N0ZXJTY2hlZHVsZVNlcnZpY2VJbmplY3Rpb25Ub2tlbiA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsncm9zdGVyU2NoZWR1bGVTZXJ2aWNlJ107XG4gICAgdGhpcy5yb3N0ZXJTY2hlZHVsZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxSb3N0ZXJTY2hlZHVsZVNlcnZpY2U+KHJvc3RlclNjaGVkdWxlU2VydmljZUluamVjdGlvblRva2VuKTtcblxuICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydwYWdlVGl0bGUnXTtcblxuICAgIHRoaXMuc2NyZWVuU2l6ZVNlcnZpY2Uuc2NyZWVuU2l6ZS5zdWJzY3JpYmUoKHNjcmVlblNpemU6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pc1NtYWxsU2NyZWVuID0gc2NyZWVuU2l6ZSA9PSAneHMnIHx8IHNjcmVlblNpemUgPT0gJ3NtJztcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnREYXRlID0gbW9tZW50KCkubG9jYWxlKHRoaXMubG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlQ29kZSkuc3RhcnRPZignbW9udGgnKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQoKS5sb2NhbGUodGhpcy5sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGVDb2RlKS5lbmRPZignbW9udGgnKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICB0aGlzLm1vbnRoID0gbW9tZW50KCkubG9jYWxlKHRoaXMubG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlQ29kZSkuc3RhcnRPZignbW9udGgnKS5mb3JtYXQoJ01NTU0gWVlZWScpO1xuXG4gICAgdGhpcy5yb3N0ZXJTY2hlZHVsZVNlcnZpY2Uuc3ViQ29udGVudENoYW5nZUV2ZW50cy5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMucHVsbENvbnRlbnQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucHVsbENvbnRlbnQoKTtcbiAgfVxuXG4gIHNob3dQcmV2TW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydERhdGUgPSBtb21lbnQodGhpcy5zdGFydERhdGUpLmxvY2FsZSh0aGlzLmxvY2FsZVNlcnZpY2UuY3VycmVudExvY2FsZUNvZGUpLnN1YnRyYWN0KDEsICdNJykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgdGhpcy5lbmREYXRlID0gbW9tZW50KHRoaXMuc3RhcnREYXRlKS5sb2NhbGUodGhpcy5sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGVDb2RlKS5lbmRPZignbW9udGgnKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICB0aGlzLm1vbnRoID0gbW9tZW50KHRoaXMuc3RhcnREYXRlKS5sb2NhbGUodGhpcy5sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGVDb2RlKS5mb3JtYXQoJ01NTU0gWVlZWScpO1xuXG4gICAgdGhpcy5wdWxsQ29udGVudCgpO1xuICB9XG5cbiAgc2hvd05leHRNb250aCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnN0YXJ0RGF0ZSkubG9jYWxlKHRoaXMubG9jYWxlU2VydmljZS5jdXJyZW50TG9jYWxlQ29kZSkuYWRkKDEsICdNJykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgdGhpcy5lbmREYXRlID0gbW9tZW50KHRoaXMuc3RhcnREYXRlKS5sb2NhbGUodGhpcy5sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGVDb2RlKS5lbmRPZignbW9udGgnKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICB0aGlzLm1vbnRoID0gbW9tZW50KHRoaXMuc3RhcnREYXRlKS5sb2NhbGUodGhpcy5sb2NhbGVTZXJ2aWNlLmN1cnJlbnRMb2NhbGVDb2RlKS5mb3JtYXQoJ01NTU0gWVlZWScpO1xuXG4gICAgdGhpcy5wdWxsQ29udGVudCgpO1xuICB9XG5cbiAgcHVsbENvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ107XG5cbiAgICAgIHRoaXMucm9zdGVyUGFnZVNlcnZpY2UuZ2V0KHRoaXMuaWQsIHsgZGF0ZV9mcm9tOiB0aGlzLnN0YXJ0RGF0ZSwgZGF0ZV90bzogdGhpcy5lbmREYXRlIH0pLnN1YnNjcmliZShcbiAgICAgICAgKHJlczogV2ViQXBpRGV0YWlsc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkUm9zdGVyKHJlcy5jb250ZW50LmRhdGEucm9zdGVyX3NjaGVkdWxlcy5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRSb3N0ZXIoZGF0YTogYW55KTogdm9pZCB7XG4gICAgbGV0IGdhbnR0Q2hhcnRDb25maWd1cmF0aW9uID0gdGhpcy5vYmplY3RTZXJ2aWNlLmRlZXBNZXJnZShST1NURVJfR0FOVFRfQ0hBUlQsIHtcbiAgICAgIHBsb3RPcHRpb25zOiB7XG4gICAgICAgIHNlcmllczoge1xuICAgICAgICAgIGV2ZW50czoge1xuICAgICAgICAgICAgY2xpY2s6IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMub3BlblNjaGVkdWxlUmVjb3JkKGV2ZW50LnBvaW50LnNjaGVkdWxlX2lkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBleHBvcnRpbmc6IHtcbiAgICAgICAgbWVudUl0ZW1EZWZpbml0aW9uczoge1xuICAgICAgICAgIGRvd25sb2FkQ1NWOiB7XG4gICAgICAgICAgICB0ZXh0OiAnRG93bmxvYWQgQ1NWIGZpbGUnLFxuICAgICAgICAgICAgb25jbGljazogKCkgPT4geyB0aGlzLmV4cG9ydENzdigpLnN1YnNjcmliZSgpIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnJvc3RlckRhdGEgPSB0aGlzLm9iamVjdFNlcnZpY2UuZGVlcE1lcmdlKGdhbnR0Q2hhcnRDb25maWd1cmF0aW9uLCBkYXRhKTtcbiAgfVxuXG4gIGV4cG9ydENzdigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJvc3RlclBhZ2VTZXJ2aWNlLmV4cG9ydFJvc3RlckNzdihcbiAgICAgIHRoaXMuaWQsXG4gICAgICB7IGRhdGVfZnJvbTogdGhpcy5zdGFydERhdGUsIGRhdGVfdG86IHRoaXMuZW5kRGF0ZSB9XG4gICAgKTtcbiAgfVxuXG4gIG9uQmFja0NsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3N0ZXJQYWdlU2VydmljZS5vcGVuTGlzdCgpO1xuICB9XG5cbiAgb25FZGl0Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XG4gICAgICBmb3JtUGFnZVNlcnZpY2U6IHRoaXMucm9zdGVyUGFnZVNlcnZpY2UgYXMgdW5rbm93biBhcyBGb3JtUGFnZVNlcnZpY2UsXG4gICAgICB0aXRsZTogJ3NoaWZ0X21hbmFnZW1lbnQuZGlhbG9ncy5yb3N0ZXJzLmVkaXQnLFxuICAgICAgaWQ6IHRoaXMuaWRcbiAgICB9O1xuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICc4MCUnO1xuICAgIGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSBmYWxzZTtcblxuICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERpYWxvZ0Zvcm1Db21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXNwb25zZT8uX2Rlc3Ryb3kpIHtcbiAgICAgICAgdGhpcy5yb3N0ZXJQYWdlU2VydmljZS5vcGVuTGlzdCgpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy5wdWxsQ29udGVudCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb3BlblNjaGVkdWxlUmVjb3JkKHNjaGVkdWxlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucm9zdGVyU2NoZWR1bGVTZXJ2aWNlLm9wZW5SZWNvcmQoeyBpZDogc2NoZWR1bGVJZCB9KTtcbiAgfVxuXG4gIG9wZW5TY2hlZHVsZUZvcm0oc2NoZWR1bGVJZD86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucm9zdGVyU2NoZWR1bGVTZXJ2aWNlLm9wZW5Gb3JtKHsgaWQ6IHNjaGVkdWxlSWQgfSwgeyByb3N0ZXJfaWQ6IHRoaXMuaWQgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdHJldGNoXCIgZnhMYXlvdXRHYXA9XCIxNnB4XCIgY2xhc3M9XCJwYWdlIGZ1bGwtaGVpZ2h0LW1pbiBmdWxsLWhlaWdodC1vbmx5IHZlcnRpY2FsbHktc2Nyb2xsYWJsZVwiPlxuICA8bWFudGxlLXBhZ2UtdGl0bGU+e3sgcGFnZVRpdGxlIHwgdHJhbnNsYXRlIH19PC9tYW50bGUtcGFnZS10aXRsZT5cblxuICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjE2cHhcIiBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdHJldGNoXCIgZnhMYXlvdXRHYXA9XCIxNnB4XCI+XG4gICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCIhcm9zdGVyUGFnZVNlcnZpY2UuaGlkZUJhY2tCdXR0b25cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJhY2stYnV0dG9uXCIgbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25CYWNrQ2xpY2tlZCgpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uICpuZ0lmPVwicm9zdGVyU2NoZWR1bGVTZXJ2aWNlLnNob3dBZGRCdXR0b24gJiYgcm9zdGVyUGFnZVNlcnZpY2UuY2FuV3JpdGUoKVwiXG4gICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWRkLWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2NoZWR1bGVGb3JtKClcIj5cbiAgICAgICAgKyB7eyAnbWFudGxlLmJ1dHRvbnMuYWRkJyB8IHRyYW5zbGF0ZSB9fSB7eyByb3N0ZXJTY2hlZHVsZVNlcnZpY2Uubm91bigpIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1NtYWxsU2NyZWVuOyB0aGVuIG1vbnRoQ29udHJvbHNcIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEgMSBhdXRvXCI+PC9kaXY+XG5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cInJvc3RlclBhZ2VTZXJ2aWNlLnNob3dFZGl0QnV0dG9uICYmIHJvc3RlclBhZ2VTZXJ2aWNlLmNhbldyaXRlKClcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1idXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWRpdENsaWNrZWQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicm9zdGVyUGFnZVNlcnZpY2UuaXNDb21taXRJblByb2dyZXNzXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU21hbGxTY3JlZW47IHRoZW4gbW9udGhDb250cm9sc1wiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bWFudGxlLWR5bmFtaWMtY2hhcnQgW2RhdGFdPVwicm9zdGVyRGF0YVwiPjwvbWFudGxlLWR5bmFtaWMtY2hhcnQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNtb250aENvbnRyb2xzPlxuICA8ZGl2IGNsYXNzPVwibW9udGgtY29udHJvbHNcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIChjbGljayk9XCJzaG93UHJldk1vbnRoKClcIj5cbiAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICBcbiAgICA8ZGl2IGNsYXNzPVwibW9udGgtdGV4dFwiPnt7IG1vbnRoIH19PC9kaXY+XG4gIFxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cInNob3dOZXh0TW9udGgoKVwiPlxuICAgICAgPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -4,6 +4,7 @@ import * as i1 from "@angular/router";
|
|
|
4
4
|
import * as i2 from "@angular/material/tabs";
|
|
5
5
|
import * as i3 from "@angular/flex-layout/flex";
|
|
6
6
|
import * as i4 from "@angular/common";
|
|
7
|
+
import * as i5 from "@ngx-translate/core";
|
|
7
8
|
export class TabbedPageComponent {
|
|
8
9
|
constructor(route, router, injector) {
|
|
9
10
|
this.route = route;
|
|
@@ -22,7 +23,7 @@ export class TabbedPageComponent {
|
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
TabbedPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TabbedPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
-
TabbedPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: TabbedPageComponent, selector: "mantle-tabbed-page", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"4px\" class=\"tabbed-page full-height-only\">\n\n <div fxFlex=\"0 0 auto\" class=\"tab-bar\">\n <nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let link of links\"\n (click)=\"activeLink = link.route\"\n [active]=\"activeLink == link.route\"\n [routerLink]=\"link.route\"> {{link.label}} </a>\n </nav>\n </div>\n\n <div fxFlex=\"1 0 1px\" class=\"tab-content vertically-scrollable\">\n <router-outlet></router-outlet>\n </div>\n\n</div>\n", styles: [""], components: [{ type: i2.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }], directives: [{ type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
26
|
+
TabbedPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: TabbedPageComponent, selector: "mantle-tabbed-page", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"4px\" class=\"tabbed-page full-height-only\">\n\n <div fxFlex=\"0 0 auto\" class=\"tab-bar\">\n <nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let link of links\"\n (click)=\"activeLink = link.route\"\n [active]=\"activeLink == link.route\"\n [routerLink]=\"link.route\"> {{ link.label | translate }} </a>\n </nav>\n </div>\n\n <div fxFlex=\"1 0 1px\" class=\"tab-content vertically-scrollable\">\n <router-outlet></router-outlet>\n </div>\n\n</div>\n", styles: [""], components: [{ type: i2.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }], directives: [{ type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "translate": i5.TranslatePipe } });
|
|
26
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TabbedPageComponent, decorators: [{
|
|
27
28
|
type: Component,
|
|
28
29
|
args: [{
|
|
@@ -31,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
|
|
|
31
32
|
styleUrls: ['./tabbed-page.component.scss']
|
|
32
33
|
}]
|
|
33
34
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i0.Injector }]; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy90YWJiZWQtcGFnZS90YWJiZWQtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL3RhYmJlZC1wYWdlL3RhYmJlZC1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUzVELE1BQU0sT0FBTyxtQkFBbUI7SUFPOUIsWUFBb0IsS0FBcUIsRUFBVSxNQUFjLEVBQVUsUUFBa0I7UUFBekUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUh0RixVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUM1QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRzdCLE1BQU0sNEJBQTRCLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFpQiw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQWpCVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwwRENUaEMsa2pCQWdCQTsyRkRQYSxtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5hdlRhYnNTZXJ2aWNlLCBUYWJiZWRQYWdlVGFiIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9uYXYtdGFicy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLXRhYmJlZC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmJlZC1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiYmVkLXBhZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJiZWRQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgbmF2VGFic1NlcnZpY2U6IE5hdlRhYnNTZXJ2aWNlO1xuXG4gIHB1YmxpYyBsaW5rczogVGFiYmVkUGFnZVRhYltdID0gW107XG4gIHB1YmxpYyBhY3RpdmVMaW5rOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBuYXZUYWJzU2VydmljZUluamVjdGlvblRva2VuID0gcm91dGUuc25hcHNob3QuZGF0YVsnbmF2VGFic1NlcnZpY2UnXTtcbiAgICB0aGlzLm5hdlRhYnNTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8TmF2VGFic1NlcnZpY2U+KG5hdlRhYnNTZXJ2aWNlSW5qZWN0aW9uVG9rZW4pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICB0aGlzLmxpbmtzID0gdGhpcy5uYXZUYWJzU2VydmljZS50YWJzKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zKTtcbiAgICAgIHRoaXMuYWN0aXZlTGluayA9IHRoaXMucm91dGVyLnVybDtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0cmV0Y2hcIiBmeExheW91dEdhcD1cIjRweFwiIGNsYXNzPVwidGFiYmVkLXBhZ2UgZnVsbC1oZWlnaHQtb25seVwiPlxuXG4gIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiBjbGFzcz1cInRhYi1iYXJcIj5cbiAgICA8bmF2IG1hdC10YWItbmF2LWJhcj5cbiAgICAgIDxhIG1hdC10YWItbGluayAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rc1wiXG4gICAgICAgICAoY2xpY2spPVwiYWN0aXZlTGluayA9IGxpbmsucm91dGVcIlxuICAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVMaW5rID09IGxpbmsucm91dGVcIlxuICAgICAgICAgW3JvdXRlckxpbmtdPVwibGluay5yb3V0ZVwiPiB7eyBsaW5rLmxhYmVsIHwgdHJhbnNsYXRlIH19IDwvYT5cbiAgICA8L25hdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIxIDAgMXB4XCIgY2xhc3M9XCJ0YWItY29udGVudCB2ZXJ0aWNhbGx5LXNjcm9sbGFibGVcIj5cbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
|