nuxeo-development-framework 4.5.6 → 4.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/nuxeo-development-framework.umd.js +68 -37
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +2 -2
- package/esm2015/lib/components/dynamic-table/directives/empty-state.directive.js +28 -0
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +19 -5
- package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +7 -24
- package/esm2015/lib/components/dynamic-table/index.js +2 -0
- package/esm2015/lib/components/dynamic-table/public-api.js +5 -0
- package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +19 -15
- package/esm2015/lib/components/table/table/table.component.js +5 -2
- package/esm2015/lib/shared/components/base/base-column.component.js +1 -1
- package/esm2015/public-api.js +2 -4
- package/fesm2015/nuxeo-development-framework.js +71 -43
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/dynamic-table/directives/empty-state.directive.d.ts +9 -0
- package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +5 -2
- package/lib/components/dynamic-table/dynamic-table.module.d.ts +7 -6
- package/lib/components/dynamic-table/index.d.ts +1 -0
- package/lib/components/dynamic-table/public-api.d.ts +4 -0
- package/lib/components/table/dynamic-column/dynamic-column.component.d.ts +4 -3
- package/lib/components/table/table/table.component.d.ts +2 -1
- package/lib/shared/components/base/base-column.component.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { catchError, map } from 'rxjs/operators';
|
|
3
|
+
import { EMPTY_TEMPLATE } from '../directives/empty-state.directive';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "../../../core/adapters/adapter.service";
|
|
5
6
|
import * as i2 from "../../../core/services/callApi/call-api.service";
|
|
@@ -60,6 +61,8 @@ export class DynamicTableComponent {
|
|
|
60
61
|
this.onInitialize = new EventEmitter();
|
|
61
62
|
/** Translations prefix */
|
|
62
63
|
this.prefix = '';
|
|
64
|
+
this.legacyLoading = true;
|
|
65
|
+
this.showTotalRecord = false;
|
|
63
66
|
this._pageNumber = 1;
|
|
64
67
|
/** Sorting column */
|
|
65
68
|
this.sortingBy = {};
|
|
@@ -136,7 +139,7 @@ export class DynamicTableComponent {
|
|
|
136
139
|
}
|
|
137
140
|
: {})), { currentPageIndex: +this.pageNum - 1 }), (this.pageSize ? { pageSize: this.pageSize } : {})), { offset: 0 }), payload);
|
|
138
141
|
// don't refresh all table in case of sorting only
|
|
139
|
-
if (!this.sorting) {
|
|
142
|
+
if (!this.sorting && this.legacyLoading) {
|
|
140
143
|
// used to not refreshing all table in case of sorting since table lose sorting state when refresh all table
|
|
141
144
|
this.rows = []; // used to refresh table to feel changes in actions when perform action and need to refresh actions
|
|
142
145
|
}
|
|
@@ -217,14 +220,18 @@ export class DynamicTableComponent {
|
|
|
217
220
|
}
|
|
218
221
|
}
|
|
219
222
|
DynamicTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableComponent, deps: [{ token: i1.AdapterService }, { token: i2.CallApiService }, { token: i3.DynamicTableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
220
|
-
DynamicTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", pageNumber: "pageNumber", sortingBy: "sortingBy", queryParam: "queryParam", customFilters: "customFilters", quickFilter: "quickFilter", report: "report", rowCursor: "rowCursor", fullWidth: "fullWidth", tableMode: "tableMode", componentName: "componentName", tableActions: "tableActions", defultSort: "defultSort", range: "range", isSearchPage: "isSearchPage", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", highlightSelectedCard: "highlightSelectedCard", showActionsAsMenu: "showActionsAsMenu", filterParams: "filterParams", skipAggregation: "skipAggregation", customUrl: "customUrl", format: "format", pageSizes: "pageSizes" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPageChange: "onPageChange", onLoad: "onLoad", onInitialize: "onInitialize" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"wrapping\">\r\n <div class=\"table-reposition\">\r\n <cts-table\r\n *ngIf=\"rows.length\"\r\n [rows]=\"rows\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [rowCursor]=\"rowCursor\"\r\n [fullWidth]=\"fullWidth\"\r\n [entityType]=\"entityType\"\r\n [prefix]=\"prefix\"\r\n [totalRecords]=\"totalRecords\"\r\n [tableMode]=\"tableMode\"\r\n [componentName]=\"componentName\"\r\n [multiSelectRows]=\"multiSelectRows\"\r\n [tableActions]=\"tableActions\"\r\n [showActionsAsMenu]=\"showActionsAsMenu\"\r\n [defultSort]=\"defultSort\"\r\n [format]=\"format\"\r\n [highlightSelectedCard]=\"highlightSelectedCard\"\r\n [customFirstRow]=\"customFirstRow\"\r\n (onRowSelected)=\"rowDetails($event)\"\r\n (onRowIndexSelected)=\"indexDetails($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelectValue($event)\"\r\n (actionOnRow)=\"performAction($event)\"\r\n (onSorting)=\"onSort($event)\"\r\n ></cts-table>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <cts-spinner></cts-spinner>\r\n </ng-container>\r\n <div\r\n class=\"pagination-iner-wraper d-flex justify-content-center align-items-center my-3\"\r\n [ngClass]=\"{ relative: pageSizes?.length }\"\r\n *ngIf=\"rows.length\"\r\n >\r\n <cts-pagination\r\n [page]=\"pageNum\"\r\n (change)=\"PaginationChange($event)\"\r\n [size]=\"pageSize\"\r\n [count]=\"totalRecords\"\r\n ></cts-pagination>\r\n <ndf-page-sizes-list\r\n class=\"absolute ndfPageSizes\"\r\n *ngIf=\"pageSizes?.length\"\r\n [pageSizes]=\"pageSizes\"\r\n [selectedPageSize]=\"pageSize\"\r\n (onChangePageSize)=\"onChangePageSize($event)\"\r\n >\r\n </ndf-page-sizes-list>\r\n </div>\r\n\r\n <div class=\"empty-state\" *ngIf=\"!loading && rows.length === 0\">\r\n <div class=\"text\">\r\n {{ (prefix ? prefix + \"noData\" : \"noData\") | translate }}\r\n </div>\r\n </div>\r\n <div class=\"empty-state\" *ngIf=\"loading && rows.length === 0\">\r\n <div class=\"text\">\r\n {{ (prefix ? prefix + \"gettingData\" : \"gettingData\") | translate }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.wrapping{position:relative}.wrapping .table-reposition{overflow-y:var(--table-reposition-overflow-y, hidden);scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-x:auto}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:bold}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#b4bac6}.dark-scroll::-webkit-scrollbar-thumb{background:#8f98aa}.ndfPageSizes{right:0;left:unset}.rtl .ndfPageSizes{right:unset;left:0}\n"], components: [{ type: i4.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i5.SpinnerComponent, selector: "cts-spinner" }, { type: i6.PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { type: i7.PageSizesListComponent, selector: "ndf-page-sizes-list", inputs: ["pageSizes", "selectedPageSize"], outputs: ["onChangePageSize"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i9.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
223
|
+
DynamicTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", legacyLoading: "legacyLoading", showTotalRecord: "showTotalRecord", pageNumber: "pageNumber", sortingBy: "sortingBy", queryParam: "queryParam", customFilters: "customFilters", quickFilter: "quickFilter", report: "report", rowCursor: "rowCursor", fullWidth: "fullWidth", tableMode: "tableMode", componentName: "componentName", tableActions: "tableActions", defultSort: "defultSort", range: "range", isSearchPage: "isSearchPage", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", highlightSelectedCard: "highlightSelectedCard", showActionsAsMenu: "showActionsAsMenu", filterParams: "filterParams", skipAggregation: "skipAggregation", customUrl: "customUrl", format: "format", pageSizes: "pageSizes" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPageChange: "onPageChange", onLoad: "onLoad", onInitialize: "onInitialize" }, host: { properties: { "class.loading-results": "loading", "class.no-data": "rows.length <= 0" } }, queries: [{ propertyName: "emptyTemplate", first: true, predicate: EMPTY_TEMPLATE, descendants: true, read: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"wrapping table-wrapping \">\r\n\t<div class=\"table-reposition\">\r\n\t\t<cts-table\r\n\t\t\t*ngIf=\"!legacyLoading || (legacyLoading && rows.length)\"\r\n\t\t\t[rows]=\"rows\"\r\n\t\t\t[columns]=\"columns\"\r\n\t\t\t[responsiveColumns]=\"responsiveColumns\"\r\n\t\t\t[rowCursor]=\"rowCursor\"\r\n\t\t\t[fullWidth]=\"fullWidth\"\r\n\t\t\t[entityType]=\"entityType\"\r\n\t\t\t[prefix]=\"prefix\"\r\n\t\t\t[totalRecords]=\"totalRecords\"\r\n\t\t\t[tableMode]=\"tableMode\"\r\n\t\t\t[componentName]=\"componentName\"\r\n\t\t\t[multiSelectRows]=\"multiSelectRows\"\r\n\t\t\t[tableActions]=\"tableActions\"\r\n\t\t\t[showActionsAsMenu]=\"showActionsAsMenu\"\r\n\t\t\t[defultSort]=\"defultSort\"\r\n\t\t\t[format]=\"format\"\r\n\t\t\t[highlightSelectedCard]=\"highlightSelectedCard\"\r\n\t\t\t[customFirstRow]=\"customFirstRow\"\r\n\t\t\t(onRowSelected)=\"rowDetails($event)\"\r\n\t\t\t(onRowIndexSelected)=\"indexDetails($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelectValue($event)\"\r\n\t\t\t(actionOnRow)=\"performAction($event)\"\r\n\t\t\t(onSorting)=\"onSort($event)\"\r\n\t\t></cts-table>\r\n\t</div>\r\n\t<ng-container *ngIf=\"legacyLoading && loading\">\r\n\t\t<cts-spinner></cts-spinner>\r\n\t</ng-container>\r\n\t<div\r\n\t\tclass=\"pagination-iner-wraper d-flex justify-content-center align-items-center my-3\"\r\n\t\t[ngClass]=\"{ relative: pageSizes?.length }\"\r\n\t\t*ngIf=\"rows.length\"\r\n\t>\r\n\t\t<cts-pagination\r\n\t\t\t[page]=\"pageNum\"\r\n\t\t\t(change)=\"PaginationChange($event)\"\r\n\t\t\t[size]=\"pageSize\"\r\n\t\t\t[count]=\"totalRecords\"\r\n\t\t></cts-pagination>\r\n\t\t<div class=\"absolute ndfPageSizes flex gap-x-3 items-center\">\r\n\t\t\t<ndf-page-sizes-list\r\n\t\t\t\t*ngIf=\"pageSizes?.length\"\r\n\t\t\t\t[pageSizes]=\"pageSizes\"\r\n\t\t\t\t[selectedPageSize]=\"pageSize\"\r\n\t\t\t\t(onChangePageSize)=\"onChangePageSize($event)\"\r\n\t\t\t>\r\n\t\t\t</ndf-page-sizes-list>\r\n\r\n\t\t\t<span *ngIf=\"showTotalRecord\">{{ 'TABLE.totalRecords' | translate: { count: totalRecords } }}</span>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<ng-container\r\n\t\t[ngTemplateOutlet]=\"emptyTemplate || defaultEmptyState\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: loading, rows: rows }\"\r\n\t></ng-container>\r\n</div>\r\n\r\n<ng-template #defaultEmptyState>\r\n\t<div class=\"empty-state\" *ngIf=\"!loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'noData' : 'noData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"empty-state\" *ngIf=\"loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'gettingData' : 'gettingData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.wrapping{position:relative}.wrapping .table-reposition{overflow-y:var(--table-reposition-overflow-y, hidden);scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-x:auto}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:bold}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#b4bac6}.dark-scroll::-webkit-scrollbar-thumb{background:#8f98aa}.ndfPageSizes{right:0;left:unset}.rtl .ndfPageSizes{right:unset;left:0}\n"], components: [{ type: i4.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i5.SpinnerComponent, selector: "cts-spinner" }, { type: i6.PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { type: i7.PageSizesListComponent, selector: "ndf-page-sizes-list", inputs: ["pageSizes", "selectedPageSize"], outputs: ["onChangePageSize"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i9.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
221
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableComponent, decorators: [{
|
|
222
225
|
type: Component,
|
|
223
226
|
args: [{
|
|
224
227
|
selector: 'cts-dynamic-table',
|
|
225
228
|
templateUrl: './dynamic-table.component.html',
|
|
226
229
|
styleUrls: ['./dynamic-table.component.scss'],
|
|
227
|
-
encapsulation: ViewEncapsulation.None
|
|
230
|
+
encapsulation: ViewEncapsulation.None,
|
|
231
|
+
host: {
|
|
232
|
+
'[class.loading-results]': 'loading',
|
|
233
|
+
'[class.no-data]': 'rows.length <= 0'
|
|
234
|
+
}
|
|
228
235
|
}]
|
|
229
236
|
}], ctorParameters: function () { return [{ type: i1.AdapterService }, { type: i2.CallApiService }, { type: i3.DynamicTableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onRowSelected: [{
|
|
230
237
|
type: Output
|
|
@@ -260,6 +267,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
260
267
|
type: Input
|
|
261
268
|
}], pageSize: [{
|
|
262
269
|
type: Input
|
|
270
|
+
}], legacyLoading: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}], showTotalRecord: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}], emptyTemplate: [{
|
|
275
|
+
type: ContentChild,
|
|
276
|
+
args: [EMPTY_TEMPLATE, { read: TemplateRef, static: true }]
|
|
263
277
|
}], pageNumber: [{
|
|
264
278
|
type: Input
|
|
265
279
|
}], sortingBy: [{
|
|
@@ -307,4 +321,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
307
321
|
}], pageSizes: [{
|
|
308
322
|
type: Input
|
|
309
323
|
}] } });
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFLakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQTRGakMsWUFDUyxPQUF1QixFQUN2QixPQUF1QixFQUN2QixtQkFBd0MsRUFDeEMsR0FBc0I7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9GL0IsK0NBQStDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3Qyw0REFBNEQ7UUFDbEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzND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QixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVOLFlBQVk7c0JBRFgsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T25EZXN0cm95LFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvYWRhcHRlcnMvYWRhcHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FsbEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2NhbGxBcGkvY2FsbC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9keW5hbWljLXRhYmxlLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIHRoaXMgY29tcG9uZW50IGlzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgdGhhdCB1c2VzIFtUYWJsZSBDb21wb25lbnRde0BsaW5rIFRhYmxlQ29tcG9uZW50fSBpbnRlcm5hbGx5LFxyXG4gKiB5b3UgY2FuIHVzZSB0aGlzIGNvbXBvbmVudCB0byBjb25maWd1cmUgYSBwYWdlIHByb3ZpZGVyIGxpc3Rpbmcgb3V0IG9mIHRoZSBib3ggZWFzaWx5LFxyXG4gKiBhbmQgaXQgd2lsbCBoYW5kbGUgYWxsIG9mIHRoZSBiYXNpYyBmZWF0dXJlcyBzdWNoIGFzIGdldHRpbmcgZGF0YSBmcm9tIEFQSSwgTGlzdGluZywgUGFnaW5hdGlvbiwgc29ydGluZyBhbmQgZmlsdGVyaW5nXHJcbiAqICFbU2NyZWVuc2hvdC0xXSguLi9zY3JlZW5zaG90cy9keW5hbWljVGFibGUucG5nKVxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBUYWJsZVxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8Y3RzLWR5bmFtaWMtdGFibGVcclxuICogICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc1wiXHJcbiAqICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcclxuICogICAgW3BhZ2VTaXplXT1cIlBhZ2VTaXplXCJcclxuICogICAgW3BhZ2VQcm92aWRlcl09XCJwYWdlUHJvdmlkZXJcIlxyXG4gKiAgICBbcXVpY2tGaWx0ZXJdPVwiZmlsdGVyXCJcclxuICogICAgW3NvcnRpbmdCeV09XCJzb3J0aW5nQnlcIlxyXG4gKiAgICBbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcbiAqICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICogICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgICBbcm93Q3Vyc29yXT1cInRydWVcIlxyXG4gKiAgICBbcXVlcnlQYXJhbV09XCJxdWVyeVBhcmFtXCJcclxuICogICAgW2hlYWRlcnNdPVwiaGVhZGVyc1wiXHJcbiAqICAgIChvblJvd1NlbGVjdGVkKT1cIm9wZW5WaWV3ZXIoJGV2ZW50KVwiXHJcbiAqICAgIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIj5cclxuICogPC9jdHMtZHluYW1pYy10YWJsZT5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3RzLWR5bmFtaWMtdGFibGUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gc2VsZWN0aW5nIHNpbmdsZSByb3cgICovXHJcblx0QE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyB0byBjYXRjaCBpbmRleCovXHJcblx0QE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHBlcmZvcm0gYWN0aW9uIG9uIHJvdyAoZGVsdGUsIGVkaXQsIC4uLiApICovXHJcblx0QE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHRvIHRoZSBoaWdoZXIgbGV2ZWwgIHdoZW4gZ2V0dGluZyBkYXRhIGZyb20gYXBpIGlzIGZpbmlzaGVkICovXHJcblx0QE91dHB1dCgpIG9uR2V0dGluZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNlbGVjdGluZyBtdWx0aXBsZSByb3cgKi9cclxuXHRAT3V0cHV0KCkgb25NdWx0aVJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0IGVtaXQgd2hlbiBzdGFydCBnZXR0aW5nIGRhdGEgYW5kIHdoZW4gZmluaXNoICovXHJcblx0QE91dHB1dCgpIG9uTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25Mb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbkluaXRpYWxpemUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIEFycmF5IG9mIGNvbHVtbnMgKi9cclxuXHRASW5wdXQoKSBjb2x1bW5zO1xyXG5cdC8qKiBBcnJheSBvZiBjb2x1bW5zIG9uIHNtYWxsZXIgc2NyZWVucyAqL1xyXG5cdEBJbnB1dCgpIHJlc3BvbnNpdmVDb2x1bW5zPztcclxuXHQvKiogRGVmaW5lcyB0aGUgcGFnZSBpbiB3aGljaCB0YWJsZSBpcyBiZWluZyB1c2VkICovXHJcblx0QElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nO1xyXG5cdC8qKiBUcmFuc2xhdGlvbnMgcHJlZml4ICovXHJcblx0QElucHV0KCkgcHJlZml4ID0gJyc7XHJcblx0LyoqIEhlYWRlcnMgdG8gYmUgc2VudCB3aXRoIEFQSSBSZXF1ZXN0ICovXHJcblx0QElucHV0KCkgaGVhZGVycztcclxuXHQvKiogRmllbGRzIGtleW1hcCB0byBiZSBtYXBwZWQgaW4gdGhlIGFkYXB0ZXIgKi9cclxuXHRASW5wdXQoKSBmaWVsZHM7XHJcblx0LyoqIFBhZ2UgUHJvdmlkZXIgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZXRyaWV2ZSBkYXRhICovXHJcblx0QElucHV0KCkgcGFnZVByb3ZpZGVyO1xyXG5cdC8qKiBDb250cm9scyBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGFibGUgKi9cclxuXHRASW5wdXQoKSBwYWdlU2l6ZTtcclxuXHJcblx0cHJpdmF0ZSBfcGFnZU51bWJlciA9IDE7XHJcblx0QElucHV0KCkgc2V0IHBhZ2VOdW1iZXIodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xyXG5cdFx0dGhpcy5fcGFnZU51bWJlciA9ICt2YWx1ZTtcclxuXHR9XHJcblxyXG5cdGdldCBwYWdlTnVtKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3BhZ2VOdW1iZXI7XHJcblx0fVxyXG5cclxuXHQvKiogU29ydGluZyBjb2x1bW4gKi9cclxuXHRASW5wdXQoKSBzb3J0aW5nQnk6IHtcclxuXHRcdHNvcnRCeT86IHN0cmluZztcclxuXHRcdHNvcnRPcmRlcj86IHN0cmluZztcclxuXHR9ID0ge307XHJcblx0QElucHV0KCkgcXVlcnlQYXJhbT8gPSB7fTtcclxuXHJcblx0QElucHV0KCkgY3VzdG9tRmlsdGVyczoge1xyXG5cdFx0cGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdHBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdH0gPSB7fTtcclxuXHJcblx0QElucHV0KCkgcXVpY2tGaWx0ZXI/O1xyXG5cdC8qKiBDb250cm9scyBpZiBpdCByZXBvcnQgcGFnZSAqL1xyXG5cdEBJbnB1dCgpIHJlcG9ydDtcclxuXHQvKiogdG8gbWFrZSBjdXJzb3Igd2hlbiBob3ZlciBvbiByb3cgb3Igbm90ICovXHJcblx0QElucHV0KCkgcm93Q3Vyc29yPztcclxuXHRASW5wdXQoKSBmdWxsV2lkdGg/ID0gJ2F1dG8nO1xyXG5cdC8qKiAnbGlzdCcgZm9yIG5vcmFtbCB0YWJsZSAnY2FyZCcgZm9yIGNhcmRzIG1vZGUgbGlrZSBpbiBtZW1vcyAqL1xyXG5cdEBJbnB1dCgpIHRhYmxlTW9kZSA9ICdsaXN0JztcclxuXHJcblx0QElucHV0KCkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xyXG5cdC8qKiBhY3Rpb24gdG8gYmUgdXNlZCBpbiBjYXNlIG9mIGNhcmQgbW9kZSAqL1xyXG5cdEBJbnB1dCgpIHRhYmxlQWN0aW9ucztcclxuXHRASW5wdXQoKSBkZWZ1bHRTb3J0OiBhbnkgPSBbeyBwcm9wOiAncHJvcGVydGllcy5jcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XTtcclxuXHRASW5wdXQoKSByYW5nZTtcclxuXHRASW5wdXQoKSBpc1NlYXJjaFBhZ2UgPSBmYWxzZTtcclxuXHQvKiogYWxsb3cgbXVsdGlzZWxlY3Qgcm93cyB3aXRoIGNoZWNrYm94ICovXHJcblx0QElucHV0KCkgbXVsdGlTZWxlY3RSb3dzID0gZmFsc2U7XHJcblx0LyoqIHRvIHNob3cgMXN0IHJvdyB3aXRoIGN1c3RvbSB0ZW1wbGF0ZSBpbiB0aGUgdGFibGUqL1xyXG5cdEBJbnB1dCgpIGN1c3RvbUZpcnN0Um93ID0gZmFsc2U7XHJcblx0QElucHV0KCkgaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkID0gZmFsc2U7XHJcblx0QElucHV0KCkgc2hvd0FjdGlvbnNBc01lbnUgPSBmYWxzZTsgLy8gZmxhZ2UgdG8gc2hvdyBhY3Rpb24gaW4gbWVudSBvciBzaWRlIGJ5IHNpZGVcclxuXHRASW5wdXQoKVxyXG5cdGZpbHRlclBhcmFtcyA9IHt9O1xyXG5cclxuXHRASW5wdXQoKSBza2lwQWdncmVnYXRpb246ICduZXZlcicgfCAnb25QYWdlQ2hhbmdlJyA9ICdvblBhZ2VDaGFuZ2UnO1xyXG5cdEBJbnB1dCgpIGN1c3RvbVVybDogeyB1cmw6IHN0cmluZzsgbWV0aG9kOiAnUE9TVCcgfCAnR0VUJyB9O1xyXG5cdEBJbnB1dCgpIGZvcm1hdCA9ICdNTU1NIGQsIHknO1xyXG5cclxuXHRyb3dzID0gW107XHJcblx0dG90YWxSZWNvcmRzID0gMDtcclxuXHRteURhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHRsb2FkaW5nO1xyXG5cdHNvcnRpbmcgPSBmYWxzZTtcclxuXHRASW5wdXQoKSBwYWdlU2l6ZXM6IEFycmF5PHsgbGFiZWw6IHN0cmluZzsgc2l6ZTogbnVtYmVyIH0+ID0gW107XHJcblxyXG5cdGluaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBhZGFwdGVyOiBBZGFwdGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgY2FsbEFwaTogQ2FsbEFwaVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGR5bmFtaWNUYWJsZVNlcnZpY2U6IER5bmFtaWNUYWJsZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHt9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5teURhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmR5bmFtaWNUYWJsZVNlcnZpY2UucmVmcmVzaERhdGEuc3Vic2NyaWJlKChmaWx0ZXJEYXRhKSA9PiB7XHJcblx0XHRcdGlmIChmaWx0ZXJEYXRhKSB7XHJcblx0XHRcdFx0dGhpcy5maWx0ZXJQYXJhbXMgPSB7IC4uLmZpbHRlckRhdGEgfTtcclxuXHRcdFx0XHQvLyByZXNldCBwYWdlIG51bWJlciB3aGVuIHN0YXJ0IG5ldyBmaWx0ZXJpbmdcclxuXHRcdFx0XHR0aGlzLl9yZXNldFBhZ2VOdW1iZXIoKTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmdldERhdGEoKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5nZXREYXRhKCk7XHJcblx0fVxyXG5cclxuXHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5teURhdGFTdWJzY3JpcHRpb24gPyB0aGlzLm15RGF0YVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRjb25zdCBpc0ZpcnN0Q2hhbmdlID0gT2JqZWN0LnZhbHVlcyhjaGFuZ2VzKS5zb21lKChjKSA9PiBjLmlzRmlyc3RDaGFuZ2UoKSk7XHJcblx0XHRpZiAoaXNGaXJzdENoYW5nZSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgaGFzQ2hhbmdlZCA9IChpdGVtczogc3RyaW5nW10pID0+XHJcblx0XHRcdGl0ZW1zLnNvbWUoKGtleSkgPT4gY2hhbmdlc1trZXldICYmIGNoYW5nZXNba2V5XS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlKTtcclxuXHJcblx0XHRpZiAoaGFzQ2hhbmdlZChbJ3F1ZXJ5UGFyYW0nLCAncXVpY2tGaWx0ZXInLCAnY3VzdG9tRmlsdGVycyddKSkge1xyXG5cdFx0XHRpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG5cdFx0XHRcdHRoaXMuX3Jlc2V0UGFnZU51bWJlcigpIC8vIFJlc2V0IHBhZ2UgbnVtYmVyIGJlZm9yZSByZWNhbGxpbmcgQVBJIHdpdGggZmlsdGVyc1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuZ2V0RGF0YSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChoYXNDaGFuZ2VkKFsnc29ydGluZ0J5J10pKSB7XHJcblx0XHRcdHRoaXMuZ2V0RGF0YSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVzZXRQYWdlTnVtYmVyKCkge1xyXG4gICAgdGhpcy5fcGFnZU51bWJlciA9IDE7XHJcbiAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KHRoaXMuX3BhZ2VOdW1iZXIpO1xyXG4gIH1cclxuXHJcblx0Z2V0RGF0YShwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSkge1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTsgLy8gaW50ZXJuYWwgbG9hZGluZ1xyXG5cdFx0dGhpcy5vbkxvYWRpbmcuZW1pdCh0cnVlKTsgLy8gZXh0ZXJuYWwgbG9hZGluZ1xyXG5cdFx0bGV0IHBhcmFtcyA9IHtcclxuXHRcdFx0Li4uKHRoaXMucmFuZ2UgPyB7IGR1YmxpbmNvcmVfY3JlYXRlZF9hZ2c6IHRoaXMucmFuZ2UgfSA6IHt9KSxcclxuXHRcdFx0Li4udGhpcy5maWx0ZXJQYXJhbXMsIC8vIHVzZWQgdG8gZ2V0IGZpbHRlciBkYXRhIGFuZCBzZXQgaXQgaW4gb3VyIHBhcmFtc1xyXG5cdFx0XHQuLi50aGlzLnF1ZXJ5UGFyYW0sIC8vIHVzZWQgdG8gZ2V0IHBhcmFtcyBmcm9tIG91ciBjb25maWdcclxuXHRcdFx0Li4udGhpcy5xdWlja0ZpbHRlcixcclxuXHRcdFx0Li4uKE9iamVjdC5rZXlzKHRoaXMuc29ydGluZ0J5IHx8IHt9KS5sZW5ndGhcclxuXHRcdFx0XHQ/IHtcclxuXHRcdFx0XHRcdFx0c29ydEJ5OiB0aGlzLnNvcnRpbmdCeT8uc29ydEJ5LFxyXG5cdFx0XHRcdFx0XHRzb3J0T3JkZXI6IHRoaXMuc29ydGluZ0J5Py5zb3J0T3JkZXJcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ6IHt9KSxcclxuXHRcdFx0Y3VycmVudFBhZ2VJbmRleDogK3RoaXMucGFnZU51bSAtIDEsXHJcblx0XHRcdC4uLih0aGlzLnBhZ2VTaXplID8geyBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9IDoge30pLFxyXG5cdFx0XHRvZmZzZXQ6IDAsXHJcblx0XHRcdC4uLnBheWxvYWRcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gZG9uJ3QgcmVmcmVzaCBhbGwgdGFibGUgaW4gY2FzZSBvZiBzb3J0aW5nIG9ubHlcclxuXHRcdGlmICghdGhpcy5zb3J0aW5nKSB7XHJcblx0XHRcdC8vIHVzZWQgdG8gbm90IHJlZnJlc2hpbmcgYWxsIHRhYmxlIGluIGNhc2Ugb2Ygc29ydGluZyBzaW5jZSB0YWJsZSBsb3NlIHNvcnRpbmcgc3RhdGUgd2hlbiByZWZyZXNoIGFsbCB0YWJsZVxyXG5cdFx0XHR0aGlzLnJvd3MgPSBbXTsgLy8gdXNlZCB0byByZWZyZXNoIHRhYmxlIHRvIGZlZWwgY2hhbmdlcyBpbiBhY3Rpb25zIHdoZW4gcGVyZm9ybSBhY3Rpb24gYW5kIG5lZWQgdG8gcmVmcmVzaCBhY3Rpb25zXHJcblx0XHR9XHJcblx0XHR0aGlzLnNvcnRpbmcgPSBmYWxzZTsgLy8gcmVzZXQgc29ydGluZyBzdGF0dXMgdG8gZmFsc2UgYW5kIGZvciBuZXh0IHNvcnRpbmcgZnVuYyBzb3J0aW5nIHNldCBpdCB0byB0cnVlIGFnYWluXHJcblxyXG5cdFx0Y29uc3QgX3F1ZXJ5ID0ge1xyXG5cdFx0XHRwYWdlUHJvdmlkZXI6IHRoaXMucGFnZVByb3ZpZGVyLFxyXG5cdFx0XHQuLi5wYXJhbXNcclxuXHRcdH07XHJcblx0XHRjb25zdCBfb3B0aW9ucyA9IHtcclxuXHRcdFx0aGVhZGVyczoge1xyXG5cdFx0XHRcdC4uLnRoaXMuaGVhZGVycyxcclxuXHRcdFx0XHQuLi5oZWFkZXJzXHJcblx0XHRcdH1cclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgcXVlcnkkID0gdGhpcy5jdXN0b21VcmxcclxuXHRcdFx0PyB0aGlzLmNhbGxBcGkuY3VzdG9tUXVlcnkoXHJcblx0XHRcdFx0XHR0aGlzLmN1c3RvbVVybCxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0Li4ucGFyYW1zLFxyXG5cdFx0XHRcdFx0XHQuLi4odGhpcy5jdXN0b21GaWx0ZXJzPy5wYXJhbXMgfHwge30pXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0X29wdGlvbnMuaGVhZGVycyxcclxuXHRcdFx0XHRcdHRoaXMuY3VzdG9tRmlsdGVycz8ucGF5bG9hZCB8fCB7fVxyXG5cdFx0XHRcdClcclxuXHRcdFx0OiB0aGlzLmNhbGxBcGkucXVlcnkoX3F1ZXJ5LCBfb3B0aW9ucyk7XHJcblxyXG5cdFx0cXVlcnkkXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdG1hcCgoZGF0YTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PiB0aGlzLmFkYXB0ZXIuYWRhcHRJbihpdGVtLCB0aGlzLmZpZWxkcykpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHR0aHJvdyBlcnI7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLm9uTG9hZGluZy5lbWl0KGZhbHNlKTtcclxuXHRcdFx0XHR0aGlzLm9uTG9hZC5lbWl0KHJlcyk7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XHJcblx0XHRcdFx0XHR0aGlzLm9uSW5pdGlhbGl6ZS5lbWl0KHJlcyk7XHJcblx0XHRcdFx0XHR0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmVzLmVudHJpZXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGVsZW1lbnQucHJvcGVydGllcyAmJiBlbGVtZW50LnByb3BlcnRpZXM/LmNyZWF0b3IgJiYgZWxlbWVudC5wcm9wZXJ0aWVzLmNyZWF0b3I/LnByb3BlcnRpZXMpIHtcclxuXHRcdFx0XHRcdFx0ZWxlbWVudC5wcm9wZXJ0aWVzWydjcmVhdG9yRnVsbE9iamVjdCddID0geyAuLi5lbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvciB9O1xyXG5cdFx0XHRcdFx0XHRlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvciA9XHJcblx0XHRcdFx0XHRcdFx0ZWxlbWVudC5wcm9wZXJ0aWVzLmNyZWF0b3I/LnByb3BlcnRpZXM/LmZpcnN0TmFtZSArXHJcblx0XHRcdFx0XHRcdFx0JyAnICtcclxuXHRcdFx0XHRcdFx0XHRlbGVtZW50LnByb3BlcnRpZXMuY3JlYXRvcj8ucHJvcGVydGllcz8ubGFzdE5hbWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAoZWxlbWVudC5wcm9wZXJ0aWVzICYmIGVsZW1lbnQucHJvcGVydGllcz8uYXNzaWduZWUpIHtcclxuXHRcdFx0XHRcdFx0ZWxlbWVudC5wcm9wZXJ0aWVzLmFzc2lnbmVlID0gZWxlbWVudC5wcm9wZXJ0aWVzPy5hc3NpZ25lZS5mdWxsTmFtZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnRvdGFsUmVjb3JkcyA9IHJlcy5yZXN1bHRzQ291bnQ7XHJcblx0XHRcdFx0dGhpcy5yb3dzID0gcmVzLmVudHJpZXM7XHJcblx0XHRcdFx0dGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHRcdC8vIGVtaXQgZGF0YSB0byBvdXRzaWRlIGluIGNhc2Ugb2Ygc2VhcmNoIHBhZ2UgZm9yIHRoZSBmaXJzdCB0aW1lIG9ubHkgdG8gcHJldmVudCByZWZyZXNoaW5nIGFnZ3JlZ2F0aW9uIHdpdGggZXZlcnkgcGFnZSBjaGFuZ2VcclxuXHRcdFx0XHQvLyBhbmQgZm9yIGFueSBvdGhlciBwYWdlIHR5cGUgZW1pdCBkYXRhIGRpcmVjdGx5IGluIGFsbCBwYWdlIG51bWJlcnNcclxuXHRcdFx0XHRpZiAoKHRoaXMuaXNTZWFyY2hQYWdlICYmIHRoaXMucGFnZU51bSA9PT0gMSkgfHwgIXRoaXMuaXNTZWFyY2hQYWdlKSB0aGlzLm9uR2V0dGluZ0RhdGEuZW1pdChyZXMpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIHdoZW4gY2xpY2tpbmcgb24gc2luZ2xlIHJvd1xyXG5cdHJvd0RldGFpbHMoZXZlbnQpIHtcclxuXHRcdHRoaXMub25Sb3dTZWxlY3RlZC5lbWl0KGV2ZW50KTtcclxuXHR9XHJcblxyXG5cdGluZGV4RGV0YWlscyhldmVudCkge1xyXG5cdFx0dGhpcy5vblJvd0luZGV4U2VsZWN0ZWQuZW1pdChldmVudCk7XHJcblx0fVxyXG5cclxuXHQvL2Z1bmN0aW9uIHRvIGhhbmRsZSBhbGwgb3BlcmF0aW9ucyBvbiBzaW5nbGUgcm93IChkZWxldGUgLCBlZGl0ICwgLi4uKVxyXG5cdHBlcmZvcm1BY3Rpb24oYWN0aW9uKSB7XHJcblx0XHR0aGlzLmFjdGlvbk9uUm93LmVtaXQoYWN0aW9uKTtcclxuXHR9XHJcblxyXG5cdC8vIGhhbmRsZSBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlXHJcblx0b25Tb3J0KHNvcnRPYmplY3QpIHtcclxuXHRcdHRoaXMuc29ydGluZ0J5ID0gc29ydE9iamVjdDtcclxuXHRcdHRoaXMuc29ydGluZyA9IHRydWU7XHJcblx0XHR0aGlzLmdldERhdGEoe30sIHRoaXMuc2tpcEFnZ3JlZ2F0aW9uID09PSAnb25QYWdlQ2hhbmdlJyA/IHsgc2tpcEFnZ3JlZ2F0ZXM6ICd0cnVlJyB9IDoge30pO1xyXG5cdH1cclxuXHJcblx0b25NdWx0aVJvd1NlbGVjdFZhbHVlKGV2ZW50KSB7XHJcblx0XHR0aGlzLm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KGV2ZW50KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBQYWdpbmF0aW9uQ2hhbmdlKGV2ZW50KSB7XHJcblx0XHR0aGlzLl9wYWdlTnVtYmVyID0gZXZlbnQ7XHJcblx0XHR0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuXHRcdHRoaXMuZ2V0RGF0YSh7fSwgdGhpcy5za2lwQWdncmVnYXRpb24gPT09ICdvblBhZ2VDaGFuZ2UnID8geyBza2lwQWdncmVnYXRlczogJ3RydWUnIH0gOiB7fSk7XHJcblx0fVxyXG5cclxuXHRvbkNoYW5nZVBhZ2VTaXplKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3Jlc2V0UGFnZU51bWJlcigpXHJcblx0XHR0aGlzLnBhZ2VTaXplID0gcGFnZVNpemU7XHJcblx0XHR0aGlzLmdldERhdGEoe30sIHRoaXMuc2tpcEFnZ3JlZ2F0aW9uID09PSAnb25QYWdlQ2hhbmdlJyA/IHsgc2tpcEFnZ3JlZ2F0ZXM6ICd0cnVlJyB9IDoge30pO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwid3JhcHBpbmdcIj5cclxuICA8ZGl2IGNsYXNzPVwidGFibGUtcmVwb3NpdGlvblwiPlxyXG4gICAgPGN0cy10YWJsZVxyXG4gICAgICAqbmdJZj1cInJvd3MubGVuZ3RoXCJcclxuICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwicmVzcG9uc2l2ZUNvbHVtbnNcIlxyXG4gICAgICBbcm93Q3Vyc29yXT1cInJvd0N1cnNvclwiXHJcbiAgICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcclxuICAgICAgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiXHJcbiAgICAgIFtwcmVmaXhdPVwicHJlZml4XCJcclxuICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICBbdGFibGVNb2RlXT1cInRhYmxlTW9kZVwiXHJcbiAgICAgIFtjb21wb25lbnROYW1lXT1cImNvbXBvbmVudE5hbWVcIlxyXG4gICAgICBbbXVsdGlTZWxlY3RSb3dzXT1cIm11bHRpU2VsZWN0Um93c1wiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICAgICAgW3Nob3dBY3Rpb25zQXNNZW51XT1cInNob3dBY3Rpb25zQXNNZW51XCJcclxuICAgICAgW2RlZnVsdFNvcnRdPVwiZGVmdWx0U29ydFwiXHJcbiAgICAgIFtmb3JtYXRdPVwiZm9ybWF0XCJcclxuICAgICAgW2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJoaWdobGlnaHRTZWxlY3RlZENhcmRcIlxyXG4gICAgICBbY3VzdG9tRmlyc3RSb3ddPVwiY3VzdG9tRmlyc3RSb3dcIlxyXG4gICAgICAob25Sb3dTZWxlY3RlZCk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gICAgICAob25Sb3dJbmRleFNlbGVjdGVkKT1cImluZGV4RGV0YWlscygkZXZlbnQpXCJcclxuICAgICAgKG9uTXVsdGlSb3dTZWxlY3RlZCk9XCJvbk11bHRpUm93U2VsZWN0VmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAob25Tb3J0aW5nKT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICAgID48L2N0cy10YWJsZT5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgPGN0cy1zcGlubmVyPjwvY3RzLXNwaW5uZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJwYWdpbmF0aW9uLWluZXItd3JhcGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBteS0zXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgcmVsYXRpdmU6IHBhZ2VTaXplcz8ubGVuZ3RoIH1cIlxyXG4gICAgKm5nSWY9XCJyb3dzLmxlbmd0aFwiXHJcbiAgPlxyXG4gICAgPGN0cy1wYWdpbmF0aW9uXHJcbiAgICAgIFtwYWdlXT1cInBhZ2VOdW1cIlxyXG4gICAgICAoY2hhbmdlKT1cIlBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtzaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgW2NvdW50XT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgICA+PC9jdHMtcGFnaW5hdGlvbj5cclxuICAgIDxuZGYtcGFnZS1zaXplcy1saXN0XHJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbmRmUGFnZVNpemVzXCJcclxuICAgICAgKm5nSWY9XCJwYWdlU2l6ZXM/Lmxlbmd0aFwiXHJcbiAgICAgIFtwYWdlU2l6ZXNdPVwicGFnZVNpemVzXCJcclxuICAgICAgW3NlbGVjdGVkUGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAob25DaGFuZ2VQYWdlU2l6ZSk9XCJvbkNoYW5nZVBhZ2VTaXplKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgPC9uZGYtcGFnZS1zaXplcy1saXN0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAqbmdJZj1cIiFsb2FkaW5nICYmIHJvd3MubGVuZ3RoID09PSAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxyXG4gICAgICB7eyAocHJlZml4ID8gcHJlZml4ICsgXCJub0RhdGFcIiA6IFwibm9EYXRhXCIpIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAqbmdJZj1cImxvYWRpbmcgJiYgcm93cy5sZW5ndGggPT09IDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XHJcbiAgICAgIHt7IChwcmVmaXggPyBwcmVmaXggKyBcImdldHRpbmdEYXRhXCIgOiBcImdldHRpbmdEYXRhXCIpIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFFckU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBV0gsTUFBTSxPQUFPLHFCQUFxQjtJQWtHakMsWUFDUyxPQUF1QixFQUN2QixPQUF1QixFQUN2QixtQkFBd0MsRUFDeEMsR0FBc0I7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJHL0IsK0NBQStDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3Qyw0REFBNEQ7UUFDbEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVB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RUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJcEQsVUFBVTtzQkFBdEIsS0FBSztnQkFTRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFTixZQUFZO3NCQURYLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPbkRlc3Ryb3ksXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFRlbXBsYXRlUmVmLFxyXG5cdFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9hZGFwdGVycy9hZGFwdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWxsQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvY2FsbEFwaS9jYWxsLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2R5bmFtaWMtdGFibGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEVNUFRZX1RFTVBMQVRFIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9lbXB0eS1zdGF0ZS5kaXJlY3RpdmUnO1xyXG5cclxuLyoqXHJcbiAqIHRoaXMgY29tcG9uZW50IGlzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgdGhhdCB1c2VzIFtUYWJsZSBDb21wb25lbnRde0BsaW5rIFRhYmxlQ29tcG9uZW50fSBpbnRlcm5hbGx5LFxyXG4gKiB5b3UgY2FuIHVzZSB0aGlzIGNvbXBvbmVudCB0byBjb25maWd1cmUgYSBwYWdlIHByb3ZpZGVyIGxpc3Rpbmcgb3V0IG9mIHRoZSBib3ggZWFzaWx5LFxyXG4gKiBhbmQgaXQgd2lsbCBoYW5kbGUgYWxsIG9mIHRoZSBiYXNpYyBmZWF0dXJlcyBzdWNoIGFzIGdldHRpbmcgZGF0YSBmcm9tIEFQSSwgTGlzdGluZywgUGFnaW5hdGlvbiwgc29ydGluZyBhbmQgZmlsdGVyaW5nXHJcbiAqICFbU2NyZWVuc2hvdC0xXSguLi9zY3JlZW5zaG90cy9keW5hbWljVGFibGUucG5nKVxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBUYWJsZVxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8Y3RzLWR5bmFtaWMtdGFibGVcclxuICogICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc1wiXHJcbiAqICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcclxuICogICAgW3BhZ2VTaXplXT1cIlBhZ2VTaXplXCJcclxuICogICAgW3BhZ2VQcm92aWRlcl09XCJwYWdlUHJvdmlkZXJcIlxyXG4gKiAgICBbcXVpY2tGaWx0ZXJdPVwiZmlsdGVyXCJcclxuICogICAgW3NvcnRpbmdCeV09XCJzb3J0aW5nQnlcIlxyXG4gKiAgICBbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcbiAqICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICogICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgICBbcm93Q3Vyc29yXT1cInRydWVcIlxyXG4gKiAgICBbcXVlcnlQYXJhbV09XCJxdWVyeVBhcmFtXCJcclxuICogICAgW2hlYWRlcnNdPVwiaGVhZGVyc1wiXHJcbiAqICAgIChvblJvd1NlbGVjdGVkKT1cIm9wZW5WaWV3ZXIoJGV2ZW50KVwiXHJcbiAqICAgIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIj5cclxuICogPC9jdHMtZHluYW1pYy10YWJsZT5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3RzLWR5bmFtaWMtdGFibGUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuXHRob3N0OiB7XHJcblx0XHQnW2NsYXNzLmxvYWRpbmctcmVzdWx0c10nOiAnbG9hZGluZycsXHJcblx0XHQnW2NsYXNzLm5vLWRhdGFdJzogJ3Jvd3MubGVuZ3RoIDw9IDAnXHJcblx0fVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gc2VsZWN0aW5nIHNpbmdsZSByb3cgICovXHJcblx0QE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyB0byBjYXRjaCBpbmRleCovXHJcblx0QE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHBlcmZvcm0gYWN0aW9uIG9uIHJvdyAoZGVsdGUsIGVkaXQsIC4uLiApICovXHJcblx0QE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHRvIHRoZSBoaWdoZXIgbGV2ZWwgIHdoZW4gZ2V0dGluZyBkYXRhIGZyb20gYXBpIGlzIGZpbmlzaGVkICovXHJcblx0QE91dHB1dCgpIG9uR2V0dGluZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNlbGVjdGluZyBtdWx0aXBsZSByb3cgKi9cclxuXHRAT3V0cHV0KCkgb25NdWx0aVJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0IGVtaXQgd2hlbiBzdGFydCBnZXR0aW5nIGRhdGEgYW5kIHdoZW4gZmluaXNoICovXHJcblx0QE91dHB1dCgpIG9uTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25Mb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbkluaXRpYWxpemUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIEFycmF5IG9mIGNvbHVtbnMgKi9cclxuXHRASW5wdXQoKSBjb2x1bW5zO1xyXG5cdC8qKiBBcnJheSBvZiBjb2x1bW5zIG9uIHNtYWxsZXIgc2NyZWVucyAqL1xyXG5cdEBJbnB1dCgpIHJlc3BvbnNpdmVDb2x1bW5zPztcclxuXHQvKiogRGVmaW5lcyB0aGUgcGFnZSBpbiB3aGljaCB0YWJsZSBpcyBiZWluZyB1c2VkICovXHJcblx0QElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nO1xyXG5cdC8qKiBUcmFuc2xhdGlvbnMgcHJlZml4ICovXHJcblx0QElucHV0KCkgcHJlZml4ID0gJyc7XHJcblx0LyoqIEhlYWRlcnMgdG8gYmUgc2VudCB3aXRoIEFQSSBSZXF1ZXN0ICovXHJcblx0QElucHV0KCkgaGVhZGVycztcclxuXHQvKiogRmllbGRzIGtleW1hcCB0byBiZSBtYXBwZWQgaW4gdGhlIGFkYXB0ZXIgKi9cclxuXHRASW5wdXQoKSBmaWVsZHM7XHJcblx0LyoqIFBhZ2UgUHJvdmlkZXIgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZXRyaWV2ZSBkYXRhICovXHJcblx0QElucHV0KCkgcGFnZVByb3ZpZGVyO1xyXG5cdC8qKiBDb250cm9scyBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGFibGUgKi9cclxuXHRASW5wdXQoKSBwYWdlU2l6ZTtcclxuXHJcblx0QElucHV0KCkgbGVnYWN5TG9hZGluZyA9IHRydWU7XHJcblx0QElucHV0KCkgc2hvd1RvdGFsUmVjb3JkID0gZmFsc2U7XHJcblxyXG5cdEBDb250ZW50Q2hpbGQoRU1QVFlfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxyXG5cdGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcblxyXG5cdHByaXZhdGUgX3BhZ2VOdW1iZXIgPSAxO1xyXG5cdEBJbnB1dCgpIHNldCBwYWdlTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuXHRcdHRoaXMuX3BhZ2VOdW1iZXIgPSArdmFsdWU7XHJcblx0fVxyXG5cclxuXHRnZXQgcGFnZU51bSgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9wYWdlTnVtYmVyO1xyXG5cdH1cclxuXHJcblx0LyoqIFNvcnRpbmcgY29sdW1uICovXHJcblx0QElucHV0KCkgc29ydGluZ0J5OiB7XHJcblx0XHRzb3J0Qnk/OiBzdHJpbmc7XHJcblx0XHRzb3J0T3JkZXI/OiBzdHJpbmc7XHJcblx0fSA9IHt9O1xyXG5cdEBJbnB1dCgpIHF1ZXJ5UGFyYW0/ID0ge307XHJcblxyXG5cdEBJbnB1dCgpIGN1c3RvbUZpbHRlcnM6IHtcclxuXHRcdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0XHRwYXlsb2FkPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR9ID0ge307XHJcblxyXG5cdEBJbnB1dCgpIHF1aWNrRmlsdGVyPztcclxuXHQvKiogQ29udHJvbHMgaWYgaXQgcmVwb3J0IHBhZ2UgKi9cclxuXHRASW5wdXQoKSByZXBvcnQ7XHJcblx0LyoqIHRvIG1ha2UgY3Vyc29yIHdoZW4gaG92ZXIgb24gcm93IG9yIG5vdCAqL1xyXG5cdEBJbnB1dCgpIHJvd0N1cnNvcj87XHJcblx0QElucHV0KCkgZnVsbFdpZHRoPyA9ICdhdXRvJztcclxuXHQvKiogJ2xpc3QnIGZvciBub3JhbWwgdGFibGUgJ2NhcmQnIGZvciBjYXJkcyBtb2RlIGxpa2UgaW4gbWVtb3MgKi9cclxuXHRASW5wdXQoKSB0YWJsZU1vZGUgPSAnbGlzdCc7XHJcblxyXG5cdEBJbnB1dCgpIGNvbXBvbmVudE5hbWU6IHN0cmluZztcclxuXHQvKiogYWN0aW9uIHRvIGJlIHVzZWQgaW4gY2FzZSBvZiBjYXJkIG1vZGUgKi9cclxuXHRASW5wdXQoKSB0YWJsZUFjdGlvbnM7XHJcblx0QElucHV0KCkgZGVmdWx0U29ydDogYW55ID0gW3sgcHJvcDogJ3Byb3BlcnRpZXMuY3JlYXRlZEF0JywgZGlyOiAnZGVzYycgfV07XHJcblx0QElucHV0KCkgcmFuZ2U7XHJcblx0QElucHV0KCkgaXNTZWFyY2hQYWdlID0gZmFsc2U7XHJcblx0LyoqIGFsbG93IG11bHRpc2VsZWN0IHJvd3Mgd2l0aCBjaGVja2JveCAqL1xyXG5cdEBJbnB1dCgpIG11bHRpU2VsZWN0Um93cyA9IGZhbHNlO1xyXG5cdC8qKiB0byBzaG93IDFzdCByb3cgd2l0aCBjdXN0b20gdGVtcGxhdGUgaW4gdGhlIHRhYmxlKi9cclxuXHRASW5wdXQoKSBjdXN0b21GaXJzdFJvdyA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHNob3dBY3Rpb25zQXNNZW51ID0gZmFsc2U7IC8vIGZsYWdlIHRvIHNob3cgYWN0aW9uIGluIG1lbnUgb3Igc2lkZSBieSBzaWRlXHJcblx0QElucHV0KClcclxuXHRmaWx0ZXJQYXJhbXMgPSB7fTtcclxuXHJcblx0QElucHV0KCkgc2tpcEFnZ3JlZ2F0aW9uOiAnbmV2ZXInIHwgJ29uUGFnZUNoYW5nZScgPSAnb25QYWdlQ2hhbmdlJztcclxuXHRASW5wdXQoKSBjdXN0b21Vcmw6IHsgdXJsOiBzdHJpbmc7IG1ldGhvZDogJ1BPU1QnIHwgJ0dFVCcgfTtcclxuXHRASW5wdXQoKSBmb3JtYXQgPSAnTU1NTSBkLCB5JztcclxuXHJcblx0cm93cyA9IFtdO1xyXG5cdHRvdGFsUmVjb3JkcyA9IDA7XHJcblx0bXlEYXRhU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblx0bG9hZGluZztcclxuXHRzb3J0aW5nID0gZmFsc2U7XHJcblx0QElucHV0KCkgcGFnZVNpemVzOiBBcnJheTx7IGxhYmVsOiBzdHJpbmc7IHNpemU6IG51bWJlciB9PiA9IFtdO1xyXG5cclxuXHRpbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgYWRhcHRlcjogQWRhcHRlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGNhbGxBcGk6IENhbGxBcGlTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBkeW5hbWljVGFibGVTZXJ2aWNlOiBEeW5hbWljVGFibGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcblx0KSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMubXlEYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5keW5hbWljVGFibGVTZXJ2aWNlLnJlZnJlc2hEYXRhLnN1YnNjcmliZSgoZmlsdGVyRGF0YSkgPT4ge1xyXG5cdFx0XHRpZiAoZmlsdGVyRGF0YSkge1xyXG5cdFx0XHRcdHRoaXMuZmlsdGVyUGFyYW1zID0geyAuLi5maWx0ZXJEYXRhIH07XHJcblx0XHRcdFx0Ly8gcmVzZXQgcGFnZSBudW1iZXIgd2hlbiBzdGFydCBuZXcgZmlsdGVyaW5nXHJcblx0XHRcdFx0dGhpcy5fcmVzZXRQYWdlTnVtYmVyKCk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5nZXREYXRhKCk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuZ2V0RGF0YSgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLm15RGF0YVN1YnNjcmlwdGlvbiA/IHRoaXMubXlEYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkgOiAnJztcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGNvbnN0IGlzRmlyc3RDaGFuZ2UgPSBPYmplY3QudmFsdWVzKGNoYW5nZXMpLnNvbWUoKGMpID0+IGMuaXNGaXJzdENoYW5nZSgpKTtcclxuXHRcdGlmIChpc0ZpcnN0Q2hhbmdlKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBoYXNDaGFuZ2VkID0gKGl0ZW1zOiBzdHJpbmdbXSkgPT5cclxuXHRcdFx0aXRlbXMuc29tZSgoa2V5KSA9PiBjaGFuZ2VzW2tleV0gJiYgY2hhbmdlc1trZXldLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWUpO1xyXG5cclxuXHRcdGlmIChoYXNDaGFuZ2VkKFsncXVlcnlQYXJhbScsICdxdWlja0ZpbHRlcicsICdjdXN0b21GaWx0ZXJzJ10pKSB7XHJcblx0XHRcdGlmICh0aGlzLmluaXRpYWxpemVkKSB7XHJcblx0XHRcdFx0dGhpcy5fcmVzZXRQYWdlTnVtYmVyKCk7IC8vIFJlc2V0IHBhZ2UgbnVtYmVyIGJlZm9yZSByZWNhbGxpbmcgQVBJIHdpdGggZmlsdGVyc1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuZ2V0RGF0YSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChoYXNDaGFuZ2VkKFsnc29ydGluZ0J5J10pKSB7XHJcblx0XHRcdHRoaXMuZ2V0RGF0YSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcmVzZXRQYWdlTnVtYmVyKCkge1xyXG5cdFx0dGhpcy5fcGFnZU51bWJlciA9IDE7XHJcblx0XHR0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KHRoaXMuX3BhZ2VOdW1iZXIpO1xyXG5cdH1cclxuXHJcblx0Z2V0RGF0YShwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSkge1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTsgLy8gaW50ZXJuYWwgbG9hZGluZ1xyXG5cdFx0dGhpcy5vbkxvYWRpbmcuZW1pdCh0cnVlKTsgLy8gZXh0ZXJuYWwgbG9hZGluZ1xyXG5cdFx0bGV0IHBhcmFtcyA9IHtcclxuXHRcdFx0Li4uKHRoaXMucmFuZ2UgPyB7IGR1YmxpbmNvcmVfY3JlYXRlZF9hZ2c6IHRoaXMucmFuZ2UgfSA6IHt9KSxcclxuXHRcdFx0Li4udGhpcy5maWx0ZXJQYXJhbXMsIC8vIHVzZWQgdG8gZ2V0IGZpbHRlciBkYXRhIGFuZCBzZXQgaXQgaW4gb3VyIHBhcmFtc1xyXG5cdFx0XHQuLi50aGlzLnF1ZXJ5UGFyYW0sIC8vIHVzZWQgdG8gZ2V0IHBhcmFtcyBmcm9tIG91ciBjb25maWdcclxuXHRcdFx0Li4udGhpcy5xdWlja0ZpbHRlcixcclxuXHRcdFx0Li4uKE9iamVjdC5rZXlzKHRoaXMuc29ydGluZ0J5IHx8IHt9KS5sZW5ndGhcclxuXHRcdFx0XHQ/IHtcclxuXHRcdFx0XHRcdFx0c29ydEJ5OiB0aGlzLnNvcnRpbmdCeT8uc29ydEJ5LFxyXG5cdFx0XHRcdFx0XHRzb3J0T3JkZXI6IHRoaXMuc29ydGluZ0J5Py5zb3J0T3JkZXJcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ6IHt9KSxcclxuXHRcdFx0Y3VycmVudFBhZ2VJbmRleDogK3RoaXMucGFnZU51bSAtIDEsXHJcblx0XHRcdC4uLih0aGlzLnBhZ2VTaXplID8geyBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9IDoge30pLFxyXG5cdFx0XHRvZmZzZXQ6IDAsXHJcblx0XHRcdC4uLnBheWxvYWRcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gZG9uJ3QgcmVmcmVzaCBhbGwgdGFibGUgaW4gY2FzZSBvZiBzb3J0aW5nIG9ubHlcclxuXHRcdGlmICghdGhpcy5zb3J0aW5nICYmIHRoaXMubGVnYWN5TG9hZGluZykge1xyXG5cdFx0XHQvLyB1c2VkIHRvIG5vdCByZWZyZXNoaW5nIGFsbCB0YWJsZSBpbiBjYXNlIG9mIHNvcnRpbmcgc2luY2UgdGFibGUgbG9zZSBzb3J0aW5nIHN0YXRlIHdoZW4gcmVmcmVzaCBhbGwgdGFibGVcclxuXHRcdFx0dGhpcy5yb3dzID0gW107IC8vIHVzZWQgdG8gcmVmcmVzaCB0YWJsZSB0byBmZWVsIGNoYW5nZXMgaW4gYWN0aW9ucyB3aGVuIHBlcmZvcm0gYWN0aW9uIGFuZCBuZWVkIHRvIHJlZnJlc2ggYWN0aW9uc1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zb3J0aW5nID0gZmFsc2U7IC8vIHJlc2V0IHNvcnRpbmcgc3RhdHVzIHRvIGZhbHNlIGFuZCBmb3IgbmV4dCBzb3J0aW5nIGZ1bmMgc29ydGluZyBzZXQgaXQgdG8gdHJ1ZSBhZ2FpblxyXG5cclxuXHRcdGNvbnN0IF9xdWVyeSA9IHtcclxuXHRcdFx0cGFnZVByb3ZpZGVyOiB0aGlzLnBhZ2VQcm92aWRlcixcclxuXHRcdFx0Li4ucGFyYW1zXHJcblx0XHR9O1xyXG5cdFx0Y29uc3QgX29wdGlvbnMgPSB7XHJcblx0XHRcdGhlYWRlcnM6IHtcclxuXHRcdFx0XHQuLi50aGlzLmhlYWRlcnMsXHJcblx0XHRcdFx0Li4uaGVhZGVyc1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IHF1ZXJ5JCA9IHRoaXMuY3VzdG9tVXJsXHJcblx0XHRcdD8gdGhpcy5jYWxsQXBpLmN1c3RvbVF1ZXJ5KFxyXG5cdFx0XHRcdFx0dGhpcy5jdXN0b21VcmwsXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdC4uLnBhcmFtcyxcclxuXHRcdFx0XHRcdFx0Li4uKHRoaXMuY3VzdG9tRmlsdGVycz8ucGFyYW1zIHx8IHt9KVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdF9vcHRpb25zLmhlYWRlcnMsXHJcblx0XHRcdFx0XHR0aGlzLmN1c3RvbUZpbHRlcnM/LnBheWxvYWQgfHwge31cclxuXHRcdFx0XHQpXHJcblx0XHRcdDogdGhpcy5jYWxsQXBpLnF1ZXJ5KF9xdWVyeSwgX29wdGlvbnMpO1xyXG5cclxuXHRcdHF1ZXJ5JFxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0ZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT4gdGhpcy5hZGFwdGVyLmFkYXB0SW4oaXRlbSwgdGhpcy5maWVsZHMpKTtcclxuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG5cdFx0XHRcdFx0dGhyb3cgZXJyO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5vbkxvYWRpbmcuZW1pdChmYWxzZSk7XHJcblx0XHRcdFx0dGhpcy5vbkxvYWQuZW1pdChyZXMpO1xyXG5cdFx0XHRcdGlmICghdGhpcy5pbml0aWFsaXplZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5vbkluaXRpYWxpemUuZW1pdChyZXMpO1xyXG5cdFx0XHRcdFx0dGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJlcy5lbnRyaWVzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuXHRcdFx0XHRcdGlmIChlbGVtZW50LnByb3BlcnRpZXMgJiYgZWxlbWVudC5wcm9wZXJ0aWVzPy5jcmVhdG9yICYmIGVsZW1lbnQucHJvcGVydGllcy5jcmVhdG9yPy5wcm9wZXJ0aWVzKSB7XHJcblx0XHRcdFx0XHRcdGVsZW1lbnQucHJvcGVydGllc1snY3JlYXRvckZ1bGxPYmplY3QnXSA9IHsgLi4uZWxlbWVudC5wcm9wZXJ0aWVzLmNyZWF0b3IgfTtcclxuXHRcdFx0XHRcdFx0ZWxlbWVudC5wcm9wZXJ0aWVzLmNyZWF0b3IgPVxyXG5cdFx0XHRcdFx0XHRcdGVsZW1lbnQucHJvcGVydGllcy5jcmVhdG9yPy5wcm9wZXJ0aWVzPy5maXJzdE5hbWUgK1xyXG5cdFx0XHRcdFx0XHRcdCcgJyArXHJcblx0XHRcdFx0XHRcdFx0ZWxlbWVudC5wcm9wZXJ0aWVzLmNyZWF0b3I/LnByb3BlcnRpZXM/Lmxhc3ROYW1lO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKGVsZW1lbnQucHJvcGVydGllcyAmJiBlbGVtZW50LnByb3BlcnRpZXM/LmFzc2lnbmVlKSB7XHJcblx0XHRcdFx0XHRcdGVsZW1lbnQucHJvcGVydGllcy5hc3NpZ25lZSA9IGVsZW1lbnQucHJvcGVydGllcz8uYXNzaWduZWUuZnVsbE5hbWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy50b3RhbFJlY29yZHMgPSByZXMucmVzdWx0c0NvdW50O1xyXG5cdFx0XHRcdHRoaXMucm93cyA9IHJlcy5lbnRyaWVzO1xyXG5cdFx0XHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0XHQvLyBlbWl0IGRhdGEgdG8gb3V0c2lkZSBpbiBjYXNlIG9mIHNlYXJjaCBwYWdlIGZvciB0aGUgZmlyc3QgdGltZSBvbmx5IHRvIHByZXZlbnQgcmVmcmVzaGluZyBhZ2dyZWdhdGlvbiB3aXRoIGV2ZXJ5IHBhZ2UgY2hhbmdlXHJcblx0XHRcdFx0Ly8gYW5kIGZvciBhbnkgb3RoZXIgcGFnZSB0eXBlIGVtaXQgZGF0YSBkaXJlY3RseSBpbiBhbGwgcGFnZSBudW1iZXJzXHJcblx0XHRcdFx0aWYgKCh0aGlzLmlzU2VhcmNoUGFnZSAmJiB0aGlzLnBhZ2VOdW0gPT09IDEpIHx8ICF0aGlzLmlzU2VhcmNoUGFnZSkgdGhpcy5vbkdldHRpbmdEYXRhLmVtaXQocmVzKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIGNsaWNraW5nIG9uIHNpbmdsZSByb3dcclxuXHRyb3dEZXRhaWxzKGV2ZW50KSB7XHJcblx0XHR0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdChldmVudCk7XHJcblx0fVxyXG5cclxuXHRpbmRleERldGFpbHMoZXZlbnQpIHtcclxuXHRcdHRoaXMub25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0Ly9mdW5jdGlvbiB0byBoYW5kbGUgYWxsIG9wZXJhdGlvbnMgb24gc2luZ2xlIHJvdyAoZGVsZXRlICwgZWRpdCAsIC4uLilcclxuXHRwZXJmb3JtQWN0aW9uKGFjdGlvbikge1xyXG5cdFx0dGhpcy5hY3Rpb25PblJvdy5lbWl0KGFjdGlvbik7XHJcblx0fVxyXG5cclxuXHQvLyBoYW5kbGUgc29ydGluZyBmdW5jdGlvbmFsaXR5IG9mIHRoZSB0YWJsZVxyXG5cdG9uU29ydChzb3J0T2JqZWN0KSB7XHJcblx0XHR0aGlzLnNvcnRpbmdCeSA9IHNvcnRPYmplY3Q7XHJcblx0XHR0aGlzLnNvcnRpbmcgPSB0cnVlO1xyXG5cdFx0dGhpcy5nZXREYXRhKHt9LCB0aGlzLnNraXBBZ2dyZWdhdGlvbiA9PT0gJ29uUGFnZUNoYW5nZScgPyB7IHNraXBBZ2dyZWdhdGVzOiAndHJ1ZScgfSA6IHt9KTtcclxuXHR9XHJcblxyXG5cdG9uTXVsdGlSb3dTZWxlY3RWYWx1ZShldmVudCkge1xyXG5cdFx0dGhpcy5vbk11bHRpUm93U2VsZWN0ZWQuZW1pdChldmVudCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgUGFnaW5hdGlvbkNoYW5nZShldmVudCkge1xyXG5cdFx0dGhpcy5fcGFnZU51bWJlciA9IGV2ZW50O1xyXG5cdFx0dGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XHJcblx0XHR0aGlzLmdldERhdGEoe30sIHRoaXMuc2tpcEFnZ3JlZ2F0aW9uID09PSAnb25QYWdlQ2hhbmdlJyA/IHsgc2tpcEFnZ3JlZ2F0ZXM6ICd0cnVlJyB9IDoge30pO1xyXG5cdH1cclxuXHJcblx0b25DaGFuZ2VQYWdlU2l6ZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcblx0XHR0aGlzLl9yZXNldFBhZ2VOdW1iZXIoKTtcclxuXHRcdHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcclxuXHRcdHRoaXMuZ2V0RGF0YSh7fSwgdGhpcy5za2lwQWdncmVnYXRpb24gPT09ICdvblBhZ2VDaGFuZ2UnID8geyBza2lwQWdncmVnYXRlczogJ3RydWUnIH0gOiB7fSk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3cmFwcGluZyB0YWJsZS13cmFwcGluZyBcIj5cclxuXHQ8ZGl2IGNsYXNzPVwidGFibGUtcmVwb3NpdGlvblwiPlxyXG5cdFx0PGN0cy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cIiFsZWdhY3lMb2FkaW5nIHx8IChsZWdhY3lMb2FkaW5nICYmIHJvd3MubGVuZ3RoKVwiXHJcblx0XHRcdFtyb3dzXT1cInJvd3NcIlxyXG5cdFx0XHRbY29sdW1uc109XCJjb2x1bW5zXCJcclxuXHRcdFx0W3Jlc3BvbnNpdmVDb2x1bW5zXT1cInJlc3BvbnNpdmVDb2x1bW5zXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG5cdFx0XHRbZnVsbFdpZHRoXT1cImZ1bGxXaWR0aFwiXHJcblx0XHRcdFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIlxyXG5cdFx0XHRbcHJlZml4XT1cInByZWZpeFwiXHJcblx0XHRcdFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuXHRcdFx0W3RhYmxlTW9kZV09XCJ0YWJsZU1vZGVcIlxyXG5cdFx0XHRbY29tcG9uZW50TmFtZV09XCJjb21wb25lbnROYW1lXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJtdWx0aVNlbGVjdFJvd3NcIlxyXG5cdFx0XHRbdGFibGVBY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXHJcblx0XHRcdFtzaG93QWN0aW9uc0FzTWVudV09XCJzaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFtkZWZ1bHRTb3J0XT1cImRlZnVsdFNvcnRcIlxyXG5cdFx0XHRbZm9ybWF0XT1cImZvcm1hdFwiXHJcblx0XHRcdFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwiaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cImN1c3RvbUZpcnN0Um93XCJcclxuXHRcdFx0KG9uUm93U2VsZWN0ZWQpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuXHRcdFx0KG9uUm93SW5kZXhTZWxlY3RlZCk9XCJpbmRleERldGFpbHMoJGV2ZW50KVwiXHJcblx0XHRcdChvbk11bHRpUm93U2VsZWN0ZWQpPVwib25NdWx0aVJvd1NlbGVjdFZhbHVlKCRldmVudClcIlxyXG5cdFx0XHQoYWN0aW9uT25Sb3cpPVwicGVyZm9ybUFjdGlvbigkZXZlbnQpXCJcclxuXHRcdFx0KG9uU29ydGluZyk9XCJvblNvcnQoJGV2ZW50KVwiXHJcblx0XHQ+PC9jdHMtdGFibGU+XHJcblx0PC9kaXY+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2FjeUxvYWRpbmcgJiYgbG9hZGluZ1wiPlxyXG5cdFx0PGN0cy1zcGlubmVyPjwvY3RzLXNwaW5uZXI+XHJcblx0PC9uZy1jb250YWluZXI+XHJcblx0PGRpdlxyXG5cdFx0Y2xhc3M9XCJwYWdpbmF0aW9uLWluZXItd3JhcGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBteS0zXCJcclxuXHRcdFtuZ0NsYXNzXT1cInsgcmVsYXRpdmU6IHBhZ2VTaXplcz8ubGVuZ3RoIH1cIlxyXG5cdFx0Km5nSWY9XCJyb3dzLmxlbmd0aFwiXHJcblx0PlxyXG5cdFx0PGN0cy1wYWdpbmF0aW9uXHJcblx0XHRcdFtwYWdlXT1cInBhZ2VOdW1cIlxyXG5cdFx0XHQoY2hhbmdlKT1cIlBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcblx0XHRcdFtzaXplXT1cInBhZ2VTaXplXCJcclxuXHRcdFx0W2NvdW50XT1cInRvdGFsUmVjb3Jkc1wiXHJcblx0XHQ+PC9jdHMtcGFnaW5hdGlvbj5cclxuXHRcdDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBuZGZQYWdlU2l6ZXMgZmxleCBnYXAteC0zIGl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHQ8bmRmLXBhZ2Utc2l6ZXMtbGlzdFxyXG5cdFx0XHRcdCpuZ0lmPVwicGFnZVNpemVzPy5sZW5ndGhcIlxyXG5cdFx0XHRcdFtwYWdlU2l6ZXNdPVwicGFnZVNpemVzXCJcclxuXHRcdFx0XHRbc2VsZWN0ZWRQYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXHJcblx0XHRcdFx0KG9uQ2hhbmdlUGFnZVNpemUpPVwib25DaGFuZ2VQYWdlU2l6ZSgkZXZlbnQpXCJcclxuXHRcdFx0PlxyXG5cdFx0XHQ8L25kZi1wYWdlLXNpemVzLWxpc3Q+XHJcblxyXG5cdFx0XHQ8c3BhbiAqbmdJZj1cInNob3dUb3RhbFJlY29yZFwiPnt7ICdUQUJMRS50b3RhbFJlY29yZHMnIHwgdHJhbnNsYXRlOiB7IGNvdW50OiB0b3RhbFJlY29yZHMgfSB9fTwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8bmctY29udGFpbmVyXHJcblx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJlbXB0eVRlbXBsYXRlIHx8IGRlZmF1bHRFbXB0eVN0YXRlXCJcclxuXHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbG9hZGluZywgcm93czogcm93cyB9XCJcclxuXHQ+PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RW1wdHlTdGF0ZT5cclxuXHQ8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAqbmdJZj1cIiFsb2FkaW5nICYmIHJvd3MubGVuZ3RoID09PSAwXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidGV4dFwiPlxyXG5cdFx0XHR7eyAocHJlZml4ID8gcHJlZml4ICsgJ25vRGF0YScgOiAnbm9EYXRhJykgfCB0cmFuc2xhdGUgfX1cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiICpuZ0lmPVwibG9hZGluZyAmJiByb3dzLmxlbmd0aCA9PT0gMFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInRleHRcIj5cclxuXHRcdFx0e3sgKHByZWZpeCA/IHByZWZpeCArICdnZXR0aW5nRGF0YScgOiAnZ2V0dGluZ0RhdGEnKSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -5,6 +5,7 @@ import { TableModule } from '../table/table.module';
|
|
|
5
5
|
import { PaginationModule } from '../../components/pagination/pagination.module';
|
|
6
6
|
import { LibrarySharedModule } from '../../shared/libraryShared.module';
|
|
7
7
|
import { TranslateModule } from '@ngx-translate/core';
|
|
8
|
+
import { EmptyTemplateDirective } from './directives/empty-state.directive';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
/**
|
|
10
11
|
* @title
|
|
@@ -13,32 +14,14 @@ import * as i0 from "@angular/core";
|
|
|
13
14
|
export class DynamicTableModule {
|
|
14
15
|
}
|
|
15
16
|
DynamicTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
-
DynamicTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableModule, declarations: [DynamicTableComponent], imports: [CommonModule,
|
|
17
|
-
|
|
18
|
-
PaginationModule,
|
|
19
|
-
LibrarySharedModule,
|
|
20
|
-
TranslateModule], exports: [DynamicTableComponent] });
|
|
21
|
-
DynamicTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableModule, imports: [[
|
|
22
|
-
CommonModule,
|
|
23
|
-
TableModule,
|
|
24
|
-
PaginationModule,
|
|
25
|
-
LibrarySharedModule,
|
|
26
|
-
TranslateModule
|
|
27
|
-
]] });
|
|
17
|
+
DynamicTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableModule, declarations: [DynamicTableComponent, EmptyTemplateDirective], imports: [CommonModule, TableModule, PaginationModule, LibrarySharedModule, TranslateModule], exports: [DynamicTableComponent, EmptyTemplateDirective] });
|
|
18
|
+
DynamicTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableModule, imports: [[CommonModule, TableModule, PaginationModule, LibrarySharedModule, TranslateModule]] });
|
|
28
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableModule, decorators: [{
|
|
29
20
|
type: NgModule,
|
|
30
21
|
args: [{
|
|
31
|
-
declarations: [DynamicTableComponent],
|
|
32
|
-
imports: [
|
|
33
|
-
|
|
34
|
-
TableModule,
|
|
35
|
-
PaginationModule,
|
|
36
|
-
LibrarySharedModule,
|
|
37
|
-
TranslateModule
|
|
38
|
-
],
|
|
39
|
-
exports: [
|
|
40
|
-
DynamicTableComponent
|
|
41
|
-
]
|
|
22
|
+
declarations: [DynamicTableComponent, EmptyTemplateDirective],
|
|
23
|
+
imports: [CommonModule, TableModule, PaginationModule, LibrarySharedModule, TranslateModule],
|
|
24
|
+
exports: [DynamicTableComponent, EmptyTemplateDirective]
|
|
42
25
|
}]
|
|
43
26
|
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFNUU7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGtCQUFrQjs7Z0hBQWxCLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQUpmLHFCQUFxQixFQUFFLHNCQUFzQixhQUNsRCxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsYUFDakYscUJBQXFCLEVBQUUsc0JBQXNCO2lIQUUzQyxrQkFBa0IsWUFIckIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQzs0RkFHaEYsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixDQUFDO29CQUM3RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQztvQkFDNUYsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsc0JBQXNCLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICcuLi90YWJsZS90YWJsZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTGlicmFyeVNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWJyYXJ5U2hhcmVkLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBFbXB0eVRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2VtcHR5LXN0YXRlLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQHRpdGxlXHJcbiAqIER5bmFtaWMgVGFibGUgQVBJXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG5cdGRlY2xhcmF0aW9uczogW0R5bmFtaWNUYWJsZUNvbXBvbmVudCwgRW1wdHlUZW1wbGF0ZURpcmVjdGl2ZV0sXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGFibGVNb2R1bGUsIFBhZ2luYXRpb25Nb2R1bGUsIExpYnJhcnlTaGFyZWRNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcblx0ZXhwb3J0czogW0R5bmFtaWNUYWJsZUNvbXBvbmVudCwgRW1wdHlUZW1wbGF0ZURpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJsZU1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xyXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './services/dynamic-table.service';
|
|
2
|
+
export * from './directives/empty-state.directive';
|
|
3
|
+
export * from './dynamic-table.module';
|
|
4
|
+
export * from './dynamic-table/dynamic-table.component';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtdGFibGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9lbXB0eS1zdGF0ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtdGFibGUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcclxuIl19
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, ViewContainerRef, ViewEncapsulation
|
|
1
|
+
import { Component, Input, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../../core/services/extension/extension.service";
|
|
4
4
|
export class DynamicColumnComponent {
|
|
5
|
-
constructor(extensions, componentFactoryResolver) {
|
|
5
|
+
constructor(extensions, componentFactoryResolver, cdr) {
|
|
6
6
|
this.extensions = extensions;
|
|
7
7
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
8
|
+
this.cdr = cdr;
|
|
8
9
|
}
|
|
9
10
|
ngOnInit() {
|
|
10
11
|
const componentType = this.extensions.getComponentById(this.id);
|
|
@@ -30,30 +31,33 @@ export class DynamicColumnComponent {
|
|
|
30
31
|
if (this.componentRef && this.componentRef.instance) {
|
|
31
32
|
this.componentRef.instance.context = this.context;
|
|
32
33
|
this.componentRef.instance.column = this.column;
|
|
34
|
+
if (this.componentRef.instance.update) {
|
|
35
|
+
this.componentRef.instance.update();
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
|
-
DynamicColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicColumnComponent, deps: [{ token: i1.ExtensionService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
DynamicColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicColumnComponent, selector: "cts-dynamic-column", inputs: { id: "id", context: "context", column: "column" }, host: { classAttribute: "cts-dynamic-column" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: ` <ng-container #content></ng-container> `, isInline: true, styles: ["\n
|
|
40
|
+
DynamicColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicColumnComponent, deps: [{ token: i1.ExtensionService }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
DynamicColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicColumnComponent, selector: "cts-dynamic-column", inputs: { id: "id", context: "context", column: "column" }, host: { classAttribute: "cts-dynamic-column" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: ` <ng-container #content></ng-container> `, isInline: true, styles: ["\n\t\t\t.cts-dynamic-column {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\t\t"], encapsulation: i0.ViewEncapsulation.None });
|
|
38
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicColumnComponent, decorators: [{
|
|
39
43
|
type: Component,
|
|
40
44
|
args: [{
|
|
41
|
-
selector:
|
|
45
|
+
selector: 'cts-dynamic-column',
|
|
42
46
|
template: ` <ng-container #content></ng-container> `,
|
|
43
47
|
encapsulation: ViewEncapsulation.None,
|
|
44
|
-
host: { class:
|
|
48
|
+
host: { class: 'cts-dynamic-column' },
|
|
45
49
|
styles: [
|
|
46
50
|
`
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
]
|
|
51
|
+
.cts-dynamic-column {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
}
|
|
55
|
+
`
|
|
56
|
+
]
|
|
53
57
|
}]
|
|
54
|
-
}], ctorParameters: function () { return [{ type: i1.ExtensionService }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { content: [{
|
|
58
|
+
}], ctorParameters: function () { return [{ type: i1.ExtensionService }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { content: [{
|
|
55
59
|
type: ViewChild,
|
|
56
|
-
args: [
|
|
60
|
+
args: ['content', { read: ViewContainerRef, static: true }]
|
|
57
61
|
}], id: [{
|
|
58
62
|
type: Input
|
|
59
63
|
}], context: [{
|
|
@@ -61,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
61
65
|
}], column: [{
|
|
62
66
|
type: Input
|
|
63
67
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9keW5hbWljLWNvbHVtbi9keW5hbWljLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFHVCxLQUFLLEVBS0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsTUFBTSxlQUFlLENBQUM7OztBQWlCdkIsTUFBTSxPQUFPLHNCQUFzQjtJQWNsQyxZQUNTLFVBQTRCLEVBQzVCLHdCQUFrRCxFQUNsRCxHQUFzQjtRQUZ0QixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzVCLENBQUM7SUFFSixRQUFRO1FBQ1AsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEUsSUFBSSxhQUFhLEVBQUU7WUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JGLElBQUksT0FBTyxFQUFFO2dCQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDdEI7U0FDRDtJQUNGLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDRixDQUFDO0lBRU8sY0FBYztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3BDO1NBQ0Q7SUFDRixDQUFDOztvSEFuRFcsc0JBQXNCO3dHQUF0QixzQkFBc0IscVBBQ0osZ0JBQWdCLGdFQWJwQywwQ0FBMEM7NEZBWXhDLHNCQUFzQjtrQkFkbEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO29CQUNyQyxNQUFNLEVBQUU7d0JBQ1A7Ozs7O0dBS0M7cUJBQ0Q7aUJBQ0Q7OEtBR0EsT0FBTztzQkFETixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk5RCxFQUFFO3NCQURELEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuXHRDb21wb25lbnRSZWYsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uRGVzdHJveSxcclxuXHRPbkluaXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGQsXHJcblx0Vmlld0NvbnRhaW5lclJlZixcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9leHRlbnNpb24vZXh0ZW5zaW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdjdHMtZHluYW1pYy1jb2x1bW4nLFxyXG5cdHRlbXBsYXRlOiBgIDxuZy1jb250YWluZXIgI2NvbnRlbnQ+PC9uZy1jb250YWluZXI+IGAsXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuXHRob3N0OiB7IGNsYXNzOiAnY3RzLWR5bmFtaWMtY29sdW1uJyB9LFxyXG5cdHN0eWxlczogW1xyXG5cdFx0YFxyXG5cdFx0XHQuY3RzLWR5bmFtaWMtY29sdW1uIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdH1cclxuXHRcdGBcclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblx0QFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXHJcblx0Y29udGVudDogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcblx0QElucHV0KClcclxuXHRpZDogc3RyaW5nO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdGNvbnRleHQ6IGFueTtcclxuXHRASW5wdXQoKVxyXG5cdGNvbHVtbjogYW55O1xyXG5cclxuXHRwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBleHRlbnNpb25zOiBFeHRlbnNpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuXHRcdHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG5cdCkge31cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHRjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy5leHRlbnNpb25zLmdldENvbXBvbmVudEJ5SWQodGhpcy5pZCk7XHJcblx0XHRpZiAoY29tcG9uZW50VHlwZSkge1xyXG5cdFx0XHRjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50VHlwZSk7XHJcblx0XHRcdGlmIChmYWN0b3J5KSB7XHJcblx0XHRcdFx0dGhpcy5jb250ZW50LmNsZWFyKCk7XHJcblx0XHRcdFx0dGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRlbnQuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnksIDApO1xyXG5cdFx0XHRcdHRoaXMudXBkYXRlSW5zdGFuY2UoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cdFx0dGhpcy51cGRhdGVJbnN0YW5jZSgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcclxuXHRcdFx0dGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG5cdFx0XHR0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZUluc3RhbmNlKCkge1xyXG5cdFx0aWYgKHRoaXMuY29tcG9uZW50UmVmICYmIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XHJcblx0XHRcdHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRleHQgPSB0aGlzLmNvbnRleHQ7XHJcblx0XHRcdHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbHVtbiA9IHRoaXMuY29sdW1uO1xyXG5cdFx0XHRpZiAodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudXBkYXRlKSB7XHJcblx0XHRcdFx0dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudXBkYXRlKCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
|