@seniorsistemas/tmsx-angular-components 0.0.0-feature-tmsx-1741-7d4c9914 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-tmsx-angular-components.umd.js +75 -22
- package/bundles/seniorsistemas-tmsx-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js +1 -15
- package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js.map +1 -1
- package/components/painel-processamento/painel-processamento.component.d.ts +4 -1
- package/esm2015/components/grid-editable-nested/grid-editable-nested.component.js +2 -2
- package/esm2015/components/grid-editable-nested/grid-editable-nested.module.js +2 -7
- package/esm2015/components/painel-processamento/painel-processamento.component.js +51 -16
- package/esm5/components/grid-editable-nested/grid-editable-nested.component.js +2 -2
- package/esm5/components/grid-editable-nested/grid-editable-nested.module.js +2 -7
- package/esm5/components/painel-processamento/painel-processamento.component.js +70 -16
- package/fesm2015/seniorsistemas-tmsx-angular-components.js +53 -22
- package/fesm2015/seniorsistemas-tmsx-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-tmsx-angular-components.js +72 -22
- package/fesm5/seniorsistemas-tmsx-angular-components.js.map +1 -1
- package/package.json +4 -4
- package/seniorsistemas-tmsx-angular-components.metadata.json +1 -1
|
@@ -272,11 +272,11 @@ var GridEditableNestedComponent = /** @class */ (function () {
|
|
|
272
272
|
}),
|
|
273
273
|
Component({
|
|
274
274
|
selector: 'tmsx-grid-editable-nested',
|
|
275
|
-
template: "<div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button id=\"add-button\"\n data-cy=\"add-button\"\n priority=\"primary\" type=\"button\"\n [label]=\"'tmsx_com.tmsx_angular_components.add' | translate\"\n tooltip=\"{{'tmsx_com.tmsx_angular_components.add' | translate}} (Alt + Shift + N)\"\n [disabled]=\"!addEnabled\"\n (click)=\"onAdd()\">\n </s-button>\n <s-button\n *ngIf=\"!editing\"\n priority=\"primary\"\n iconClass=\"fa fa-edit\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n tooltip=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n [disabled]=\"!editEnabled\"\n sTieredMenu\n (click)=\"initAllRowsEdit()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"primary\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_salvar' | translate}}\"\n iconClass=\"fa fa-check\"\n [disabled]=\"false\"\n (click)=\"onEditSave()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"default\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_cancelar' | translate}}\"\n iconClass=\"fa fa-times\"\n [disabled]=\"false\"\n (click)=\"onEditCancel()\"\n ></s-button>\n <p-table\n selectionMode=\"single\"\n [(selection)]=\"selected\"\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [paginator]=\"true\"\n [totalRecords]=\"gridTotalRecords\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"updateGridData($event)\"\n *sLoadingState=\"gridLoading\"\n sortMode=\"multiple\"\n [frozenWidth]=\"frozenWidth\"\n [scrollable]=\"true\"\n [sTableFrozenPosition]=\"frozenPosition\"\n [sTableFrozenValue]=\"gridData\"\n editMode=\"row\"\n #table\n >\n <ng-template pTemplate=\"frozencolgroup\" let-columns>\n <colgroup>\n <col class=\"col50\" />\n <col *ngFor=\"let col of frozenColumns\" class=\"col200\" />\n <col class=\"frozenButton\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"frozenheader\">\n <tr>\n <th pResizableColumn scope=\"col\"></th>\n <th pResizableColumn *ngFor=\"let col of frozenColumns\" scope=\"col\">{{ col.header }}</th>\n <th pResizableColumn scope=\"col\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"frozenbody\" let-rowData let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"col50\" tabindex=\"0\" [sRowToggler]=\"rowData\">\n <i class=\"fa fa-{{ expanded ? 'minus' : 'plus' }} \"></i>\n </td>\n <td *ngFor=\"let col of frozenColumns\" class=\"colText\"\n tooltipPosition=\"top\" showDelay=\"500\"\n [innerHTML]=\"getSpanProp(rowData, col.field)\">\n </td>\n <td class=\"frozenButton\">\n <s-button\n id=\"edit-button\"\n data-cy=\"edit-button\"\n priority=\"default\"\n type=\"button\"\n size=\"small\"\n [auxiliary]=\"true\"\n [disabled]=\"false\"\n [model]=\"getActions(rowData)\">\n </s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-expanded=\"expanded\" let-columns=\"columns\">\n <tr sNavigation tabindex=\"0\" [pEditableRow]=\"rowData\">\n <td\n *ngFor=\"let col of columns\"\n [ngClass]=\"editing? 'editPadding': ''\"\n pResizableColumn\n [pTooltip]=\"rowData[col.field]\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n tabindex=\"0\"\n class=\"col80 colText\"\n >\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"ui-fluid\">\n <ng-container [ngSwitch]=\"col.type\">\n <ng-container *ngSwitchCase=\"'Text'\">\n <span>{{ rowData[col.field] }}</span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Date'\">\n <p-calendar\n [(ngModel)]=\"rowData[col.field]\"\n appendTo=\"body\"\n [showIcon]=\"true\"\n [required]=\"true\"\n pTooltip=\"{{ calendarTooltipText }}\"\n tooltipPosition=\"bottom\"\n [tooltipDisabled]=\"rowData[col.field]\"\n ></p-calendar>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Autocomplete'\">\n <p-autoComplete\n [(ngModel)]=\"rowData[col.field]\"\n [suggestions]=\"col.options\"\n appendTo=\"body\"\n (completeMethod)=\"filterOptions($event)\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n ></p-autoComplete>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Decimal'\">\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'MONETARIO' === rowData.tiposDados[col.field]\"\n >R$</span>\n <input sNumberInput [scale]=\"2\"\n alignTo=\"right\"\n thousandsSeparator=\".\"\n pInputText\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'PERCENTUAL' === rowData.tiposDados[col.field]\"\n >%</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <input pInputText type=\"text\"\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"output\">\n <div [innerHTML]=\"getSpanProp(rowData, col.field, col.type)\"></div>\n </ng-template>\n </p-cellEditor>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"rowexpansion\" let-rowData>\n <tr class=\"sds-expanded-row\">\n <td [attr.colspan]=\"gridColumns.length + 1\">\n <p-table\n [value]=\"rowData.nestedGridData\"\n [columns]=\"rowData.nestedGridColumns\"\n dataKey=\"id\"\n rows=\"5\"\n [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\"\n [rowsPerPageOptions]=\"[5, 10, 20, 50]\"\n [paginator]=\"true\"\n [totalRecords]=\"rowData.nestedGridTotalRecords\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n (onLazyLoad)=\"updateNestedGridData($event, rowData)\"\n sortMode=\"multiple\"\n *sLoadingState=\"rowData.nestedGridLoading\"\n >\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\"\n [pSortableColumn]=\"col.field\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr [pSelectableRow]=\"rowData\">\n <td *ngFor=\"let col of columns\" class=\"colText\">\n {{ formatData(col, rowData[col.field]) }}\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ rowData.nestedGridTotalRecords }}\n {{'tmsx_com.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ gridTotalRecords }}\n {{'tmsx_com.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </div>\n</div>\n",
|
|
275
|
+
template: "<div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button id=\"add-button\"\n data-cy=\"add-button\"\n priority=\"primary\" type=\"button\"\n [label]=\"'tmsx_com.tmsx_angular_components.add' | translate\"\n tooltip=\"{{'tmsx_com.tmsx_angular_components.add' | translate}} (Alt + Shift + N)\"\n [disabled]=\"!addEnabled\"\n (click)=\"onAdd()\">\n </s-button>\n <s-button\n *ngIf=\"!editing\"\n priority=\"primary\"\n iconClass=\"fa fa-edit\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n tooltip=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n [disabled]=\"!editEnabled\"\n (click)=\"initAllRowsEdit()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"primary\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_salvar' | translate}}\"\n iconClass=\"fa fa-check\"\n [disabled]=\"false\"\n (click)=\"onEditSave()\"\n ></s-button>\n <s-button\n *ngIf=\"editing\"\n priority=\"default\"\n label=\"{{'tmsx_com.tmsx_angular_components.grid_editable_nested_cancelar' | translate}}\"\n iconClass=\"fa fa-times\"\n [disabled]=\"false\"\n (click)=\"onEditCancel()\"\n ></s-button>\n <p-table\n selectionMode=\"single\"\n [(selection)]=\"selected\"\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [paginator]=\"true\"\n [totalRecords]=\"gridTotalRecords\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"updateGridData($event)\"\n *sLoadingState=\"gridLoading\"\n sortMode=\"multiple\"\n [frozenWidth]=\"frozenWidth\"\n [scrollable]=\"true\"\n [sTableFrozenPosition]=\"frozenPosition\"\n [sTableFrozenValue]=\"gridData\"\n editMode=\"row\"\n #table\n >\n <ng-template pTemplate=\"frozencolgroup\" let-columns>\n <colgroup>\n <col class=\"col50\" />\n <col *ngFor=\"let col of frozenColumns\" class=\"col200\" />\n <col class=\"frozenButton\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"frozenheader\">\n <tr>\n <th pResizableColumn scope=\"col\"></th>\n <th pResizableColumn *ngFor=\"let col of frozenColumns\" scope=\"col\">{{ col.header }}</th>\n <th pResizableColumn scope=\"col\"></th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"frozenbody\" let-rowData let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"col50\" tabindex=\"0\" [sRowToggler]=\"rowData\">\n <i class=\"fa fa-{{ expanded ? 'minus' : 'plus' }} \"></i>\n </td>\n <td *ngFor=\"let col of frozenColumns\" class=\"colText\"\n tooltipPosition=\"top\" showDelay=\"500\"\n [innerHTML]=\"getSpanProp(rowData, col.field)\">\n </td>\n <td class=\"frozenButton\">\n <s-button\n id=\"edit-button\"\n data-cy=\"edit-button\"\n priority=\"default\"\n type=\"button\"\n size=\"small\"\n [auxiliary]=\"true\"\n [disabled]=\"false\"\n [model]=\"getActions(rowData)\">\n </s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-expanded=\"expanded\" let-columns=\"columns\">\n <tr sNavigation tabindex=\"0\" [pEditableRow]=\"rowData\">\n <td\n *ngFor=\"let col of columns\"\n [ngClass]=\"editing? 'editPadding': ''\"\n pResizableColumn\n [pTooltip]=\"rowData[col.field]\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n tabindex=\"0\"\n class=\"col80 colText\"\n >\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"ui-fluid\">\n <ng-container [ngSwitch]=\"col.type\">\n <ng-container *ngSwitchCase=\"'Text'\">\n <span>{{ rowData[col.field] }}</span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Date'\">\n <p-calendar\n [(ngModel)]=\"rowData[col.field]\"\n appendTo=\"body\"\n [showIcon]=\"true\"\n [required]=\"true\"\n pTooltip=\"{{ calendarTooltipText }}\"\n tooltipPosition=\"bottom\"\n [tooltipDisabled]=\"rowData[col.field]\"\n ></p-calendar>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Autocomplete'\">\n <p-autoComplete\n [(ngModel)]=\"rowData[col.field]\"\n [suggestions]=\"col.options\"\n appendTo=\"body\"\n (completeMethod)=\"filterOptions($event)\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n ></p-autoComplete>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Decimal'\">\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'MONETARIO' === rowData.tiposDados[col.field]\"\n >R$</span>\n <input sNumberInput [scale]=\"2\"\n alignTo=\"right\"\n thousandsSeparator=\".\"\n pInputText\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n <span class=\"ui-inputgroup-addon\"\n *ngIf=\"'PERCENTUAL' === rowData.tiposDados[col.field]\"\n >%</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <input pInputText type=\"text\"\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"output\">\n <div [innerHTML]=\"getSpanProp(rowData, col.field, col.type)\"></div>\n </ng-template>\n </p-cellEditor>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"rowexpansion\" let-rowData>\n <tr class=\"sds-expanded-row\">\n <td [attr.colspan]=\"gridColumns.length + 1\">\n <p-table\n [value]=\"rowData.nestedGridData\"\n [columns]=\"rowData.nestedGridColumns\"\n dataKey=\"id\"\n rows=\"5\"\n [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\"\n [rowsPerPageOptions]=\"[5, 10, 20, 50]\"\n [paginator]=\"true\"\n [totalRecords]=\"rowData.nestedGridTotalRecords\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n (onLazyLoad)=\"updateNestedGridData($event, rowData)\"\n sortMode=\"multiple\"\n *sLoadingState=\"rowData.nestedGridLoading\"\n >\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" scope=\"col\"\n [pSortableColumn]=\"col.field\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr [pSelectableRow]=\"rowData\">\n <td *ngFor=\"let col of columns\" class=\"colText\">\n {{ formatData(col, rowData[col.field]) }}\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ rowData.nestedGridTotalRecords }}\n {{'tmsx_com.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ gridTotalRecords }}\n {{'tmsx_com.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </div>\n</div>\n",
|
|
276
276
|
styles: [":host ::ng-deep div.contents{margin-top:15px}input{max-width:100%}.col50{width:50px}.col80{width:80px}.col200{width:200px}.colText{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.frozenButton{width:70px;padding:5px}.editPadding{padding-top:8px;padding-bottom:9px}"]
|
|
277
277
|
})
|
|
278
278
|
], GridEditableNestedComponent);
|
|
279
279
|
return GridEditableNestedComponent;
|
|
280
280
|
}());
|
|
281
281
|
export { GridEditableNestedComponent };
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0YWJsZS1uZXN0ZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ncmlkLWVkaXRhYmxlLW5lc3RlZC9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBVWxFO0lBaUNJLHFDQUNxQixpQkFBb0MsRUFDcEMsU0FBMkIsRUFDM0IsS0FBbUIsRUFDbkIsY0FBOEI7UUFIOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWxDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQy9CLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFB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QXZPdUMsaUJBQWlCO2dCQUN6QixnQkFBZ0I7Z0JBQ3BCLFlBQVk7Z0JBQ0gsY0FBYzs7O0lBcEMxQztRQUFSLEtBQUssRUFBRTsrREFBNEI7SUFDM0I7UUFBUixLQUFLLEVBQUU7dUVBQTBFO0lBQ3hFO1FBQVQsTUFBTSxFQUFFO29FQUF1QztJQUN0QztRQUFULE1BQU0sRUFBRTsrREFBa0M7SUFDakM7UUFBVCxNQUFNLEVBQUU7K0RBQWtDO0lBQ2pDO1FBQVQsTUFBTSxFQUFFOzZEQUFnQztJQUMvQjtRQUFULE1BQU0sRUFBRTs0REFBK0I7SUFFRDtRQUF0QyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDOzhEQUFzQjtJQVRuRCwyQkFBMkI7UUFSdkMsVUFBVSxDQUFDO1lBQ1IsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQztRQUNELFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwyQkFBMkI7WUFDckMsMjZZQUFvRDs7U0FFckQsQ0FBQztPQUNXLDJCQUEyQixDQTBRdkM7c0NBN1JEO0NBNlJDLEFBMVFELElBMFFDO1NBMVFZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50LCBNZW51SXRlbSwgU29ydE1ldGEgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JpZENvbmZpZywgRnJvemVuQ29sdW1uIH0gZnJvbSAnLi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IEhvdGtleXNTZXJ2aWNlLCBIb3RrZXkgfSBmcm9tICdhbmd1bGFyMi1ob3RrZXlzJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG1zeC1ncmlkLWVkaXRhYmxlLW5lc3RlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtZWRpdGFibGUtbmVzdGVkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3JpZEVkaXRhYmxlTmVzdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIGNvbmZpZyE6IEdyaWRDb25maWc7XG4gICAgQElucHV0KCkgbmVzdGVkRnVuY3Rpb24hOiAobGlzdFBhcmFtczogTGlzdFBhcmFtcywgcm93RGF0YTogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIEBPdXRwdXQoKSBvcGVuRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwYWdpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgYWRkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKFwidGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyB0YWJsZSE6IFRhYmxlO1xuICAgIHB1YmxpYyBjbG9uZWREYXRhOiB7IFtzOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIHB1YmxpYyBncmlkTG9hZGluZyA9IHRydWU7XG4gICAgcHVibGljIGVkaXRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgbGF6eSA9IHRydWU7XG4gICAgcHVibGljIGRlbGV0ZUVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZWRpdEVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgYWRkRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBkZXRhaWxzRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBjYWxlbmRhclRvb2x0aXBUZXh0ID0gJyc7XG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0geyBwYWdlOiAwLCBzaXplOiA1LCBzb3J0OiBbXSB9O1xuXG4gICAgcHVibGljIGdyaWREYXRhOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuXG4gICAgcHVibGljIG5lc3RlZEdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIGZyb3plblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIHB1YmxpYyBmcm96ZW5XaWR0aCA9ICcyMDBweCc7XG4gICAgcHVibGljIGZyb3plbkNvbHVtbnM6IEZyb3plbkNvbHVtbltdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1dGlsczogVXRpbHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICApIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJUb29sdGlwVGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmdyaWRfZWRpdGFibGVfbmVzdGVkX2NhbGVuZGFyX3JlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgdGhpcy5zZXRIb3RrZXlzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5jb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgcHVibGljIGZvcm1hdERhdGEoY29sdW1uOiBhbnksIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0R3JpZERhdGEoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBkYXRhLCBzaXplLCBjb2x1bW5zLCBmcm96ZW5Qb3NpdGlvbiwgZnJvemVuQ29sdW1ucywgZWRpdGluZywgbGF6eSxcbiAgICAgICAgICBkZWxldGVBY3Rpb25zRW5hYmxlZCwgZWRpdEVuYWJsZWQsIGFkZEVuYWJsZWQsIGVkaXRBY3Rpb25zRW5hYmxlZCB9ID0gdGhpcy5jb25maWc7XG5cbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGEgPz8gW107XG4gICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IHNpemUgPz8gMDtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IGNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuUG9zaXRpb24gPSBmcm96ZW5Qb3NpdGlvbiA/PyAnbGVmdCc7XG4gICAgICAgIHRoaXMuZnJvemVuQ29sdW1ucyA9IGZyb3plbkNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuV2lkdGggPSB0aGlzLmNhbGN1bGF0ZUZyb3plbldpZHRoKHRoaXMuZnJvemVuQ29sdW1ucyk7XG5cbiAgICAgICAgdGhpcy5lZGl0aW5nID0gISFlZGl0aW5nO1xuICAgICAgICB0aGlzLmxhenkgPSAhIWxhenk7XG4gICAgICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICEhZGVsZXRlQWN0aW9uc0VuYWJsZWQ7XG4gICAgICAgIHRoaXMuZWRpdEVuYWJsZWQgPSAhIWVkaXRFbmFibGVkO1xuICAgICAgICB0aGlzLmFkZEVuYWJsZWQgPSAhIWFkZEVuYWJsZWQ7XG4gICAgICAgIHRoaXMuZGV0YWlsc0VuYWJsZWQgPSAhIWVkaXRBY3Rpb25zRW5hYmxlZDtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5uZXN0ZWRHcmlkTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVGcm96ZW5XaWR0aChmcm96ZW5Db2x1bW5zOiBGcm96ZW5Db2x1bW5bXSk6IHN0cmluZyB7XG4gICAgICBjb25zdCBndXR0ZXIgPSAxMjA7XG4gICAgICBpZiAoIShmcm96ZW5Db2x1bW5zPy5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiAnMTIwcHgnO1xuICAgICAgfVxuICAgICAgY29uc3QgdG90YWxXaWR0aCA9IGZyb3plbkNvbHVtbnMucmVkdWNlKChzdW0sIGNvbCkgPT4gc3VtICsgZ3V0dGVyICsgKHBhcnNlSW50KGNvbC53aWR0aCwgMTApIHx8IDApLCAwKTtcbiAgICAgIHJldHVybiBgJHt0b3RhbFdpZHRofXB4YDtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKGRhdGE6IGFueSk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmVkaXQnKSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogIXRoaXMuZGV0YWlsc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5Sb3dEZXRhaWxzKGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBzZXBhcmF0b3I6IHRydWUgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmRlbGV0ZScpLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhdGhpcy5kZWxldGVFbmFibGVkLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShkYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlR3JpZERhdGEoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNsb25lZERhdGEgJiYgT2JqZWN0LmtleXModGhpcy5jbG9uZWREYXRhKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkRGF0YSA9IHt9O1xuICAgICAgICAgICAgdGhpcy50YWJsZS5lZGl0aW5nUm93S2V5cyA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWdpbmcuZW1pdCh7IHBhZ2UsIHNpemUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZU5lc3RlZEdyaWREYXRhKGV2ZW50OiBMYXp5TG9hZEV2ZW50LCByb3dEYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhIHx8IFtdO1xuXG4gICAgICAgIHJvd0RhdGEubmVzdGVkR3JpZExvYWRpbmcgPSB0cnVlO1xuICAgICAgICBhd2FpdCB0aGlzLm5lc3RlZEZ1bmN0aW9uKHsgcGFnZSwgc2l6ZSwgc29ydCB9LCByb3dEYXRhKTtcbiAgICB9XG5cbiAgICBvblRhYihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICdwLWNlbGxFZGl0b3IgaW5wdXQsIHAtY2VsbEVkaXRvciB0ZXh0YXJlYSwgcC1jZWxsRWRpdG9yIFt0YWJpbmRleD1cIjBcIl0nXG4gICAgICAgICAgICApXG4gICAgICAgICkuZmlsdGVyKGVsID0+IGVsLm9mZnNldFBhcmVudCAhPT0gbnVsbCk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gZm9jdXNhYmxlcy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgbGV0IG5leHQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4IC0gMV0gfHwgZm9jdXNhYmxlc1tmb2N1c2FibGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4ICsgMV0gfHwgZm9jdXNhYmxlc1swXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICBuZXh0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRSb3dJbmRleCgpIHtcbiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXMucGFnZSB8fCAwO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplIHx8IDA7XG4gICAgICAgIHJldHVybiBwYWdlICogc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnZVNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemUgPz8gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblJvd0RldGFpbHMoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGVsZXRlLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZCgpIHtcbiAgICAgICAgdGhpcy5hZGQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRWRpdFNhdmUoKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25FZGl0Q2FuY2VsKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KChyb3cpID0+IHJvdy5pZCA9PT0gZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YVtpbmRleF0gPSB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2xvbmVkRGF0YVtkYXRhLmlkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FuY2VsUm93RWRpdChkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0QWxsUm93c0VkaXQoKSB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdFJvd0VkaXQoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0gPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVBbGxSb3dzKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jbG9uZWREYXRhW2RhdGEuaWRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50YWJsZS5jYW5jZWxSb3dFZGl0KGRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuZ3JpZERhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXRSb3dEYXRhKGZpZWxkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXJPcHRpb25zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTcGFuUHJvcChvYmo6IGFueSwgcGF0aDogYW55LCB0eXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgdHlwZSA9IHR5cGU/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy51dGlscy5nZXRQcm9wKG9iaiwgcGF0aCwgdHlwZSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJzxzcGFuPjA8L3NwYW4+JyAgJiYgdHlwZSA9PT0gJ2RlY2ltYWwnKSB7XG4gICAgICAgICAgIHJldHVybiAnPHNwYW4+MCwwMDwvc3Bhbj4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb2JqLnRpcG9zRGFkb3MpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ01PTkVUQVJJTycgPT09IG9iai50aXBvc0RhZG9zW3BhdGhdKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1IkICcgKyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ1BFUkNFTlRVQUwnID09PSBvYmoudGlwb3NEYWRvc1twYXRoXSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICsgJyAlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhvdGtleXMoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UuYWRkKFxuICAgICAgICAgICAgbmV3IEhvdGtleShcbiAgICAgICAgICAgICAgICAnYWx0K3NoaWZ0K24nLFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFkZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbJ0lOUFVUJywgJ1NFTEVDVCcsICdURVhUQVJFQSddXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbXMge1xuICAgIHBhZ2U/OiBudW1iZXI7XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICBzb3J0PzogU29ydE1ldGFbXTtcbiAgICBmaWx0ZXJRdWVyeT86IHN0cmluZztcbiAgICBkaXNwbGF5RmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9keVBhcmFtcyB7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIHNpemU/OiBudW1iZXI7XG4gICAgb3JkZXJCeT86IHN0cmluZztcbiAgICBmaWx0ZXI/OiBzdHJpbmc7XG4gICAgZGlzcGxheWZpZWxkcz86IHN0cmluZztcbn1cbiJdfQ==
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0YWJsZS1uZXN0ZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ncmlkLWVkaXRhYmxlLW5lc3RlZC9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBVWxFO0lBaUNJLHFDQUNxQixpQkFBb0MsRUFDcEMsU0FBMkIsRUFDM0IsS0FBbUIsRUFDbkIsY0FBOEI7UUFIOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWxDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQy9CLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFB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QXZPdUMsaUJBQWlCO2dCQUN6QixnQkFBZ0I7Z0JBQ3BCLFlBQVk7Z0JBQ0gsY0FBYzs7O0lBcEMxQztRQUFSLEtBQUssRUFBRTsrREFBNEI7SUFDM0I7UUFBUixLQUFLLEVBQUU7dUVBQTBFO0lBQ3hFO1FBQVQsTUFBTSxFQUFFO29FQUF1QztJQUN0QztRQUFULE1BQU0sRUFBRTsrREFBa0M7SUFDakM7UUFBVCxNQUFNLEVBQUU7K0RBQWtDO0lBQ2pDO1FBQVQsTUFBTSxFQUFFOzZEQUFnQztJQUMvQjtRQUFULE1BQU0sRUFBRTs0REFBK0I7SUFFRDtRQUF0QyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDOzhEQUFzQjtJQVRuRCwyQkFBMkI7UUFSdkMsVUFBVSxDQUFDO1lBQ1IsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQztRQUNELFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwyQkFBMkI7WUFDckMsazVZQUFvRDs7U0FFckQsQ0FBQztPQUNXLDJCQUEyQixDQTBRdkM7c0NBN1JEO0NBNlJDLEFBMVFELElBMFFDO1NBMVFZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50LCBNZW51SXRlbSwgU29ydE1ldGEgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JpZENvbmZpZywgRnJvemVuQ29sdW1uIH0gZnJvbSAnLi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IEhvdGtleXNTZXJ2aWNlLCBIb3RrZXkgfSBmcm9tICdhbmd1bGFyMi1ob3RrZXlzJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG1zeC1ncmlkLWVkaXRhYmxlLW5lc3RlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWVkaXRhYmxlLW5lc3RlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtZWRpdGFibGUtbmVzdGVkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3JpZEVkaXRhYmxlTmVzdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIGNvbmZpZyE6IEdyaWRDb25maWc7XG4gICAgQElucHV0KCkgbmVzdGVkRnVuY3Rpb24hOiAobGlzdFBhcmFtczogTGlzdFBhcmFtcywgcm93RGF0YTogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIEBPdXRwdXQoKSBvcGVuRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwYWdpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgYWRkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKFwidGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyB0YWJsZSE6IFRhYmxlO1xuICAgIHB1YmxpYyBjbG9uZWREYXRhOiB7IFtzOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIHB1YmxpYyBncmlkTG9hZGluZyA9IHRydWU7XG4gICAgcHVibGljIGVkaXRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgbGF6eSA9IHRydWU7XG4gICAgcHVibGljIGRlbGV0ZUVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZWRpdEVuYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgYWRkRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBkZXRhaWxzRW5hYmxlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBjYWxlbmRhclRvb2x0aXBUZXh0ID0gJyc7XG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0geyBwYWdlOiAwLCBzaXplOiA1LCBzb3J0OiBbXSB9O1xuXG4gICAgcHVibGljIGdyaWREYXRhOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuXG4gICAgcHVibGljIG5lc3RlZEdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIGZyb3plblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIHB1YmxpYyBmcm96ZW5XaWR0aCA9ICcyMDBweCc7XG4gICAgcHVibGljIGZyb3plbkNvbHVtbnM6IEZyb3plbkNvbHVtbltdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1dGlsczogVXRpbHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSxcbiAgICApIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJUb29sdGlwVGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmdyaWRfZWRpdGFibGVfbmVzdGVkX2NhbGVuZGFyX3JlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgdGhpcy5zZXRIb3RrZXlzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5jb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0R3JpZERhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgcHVibGljIGZvcm1hdERhdGEoY29sdW1uOiBhbnksIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0R3JpZERhdGEoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBkYXRhLCBzaXplLCBjb2x1bW5zLCBmcm96ZW5Qb3NpdGlvbiwgZnJvemVuQ29sdW1ucywgZWRpdGluZywgbGF6eSxcbiAgICAgICAgICBkZWxldGVBY3Rpb25zRW5hYmxlZCwgZWRpdEVuYWJsZWQsIGFkZEVuYWJsZWQsIGVkaXRBY3Rpb25zRW5hYmxlZCB9ID0gdGhpcy5jb25maWc7XG5cbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGEgPz8gW107XG4gICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IHNpemUgPz8gMDtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IGNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuUG9zaXRpb24gPSBmcm96ZW5Qb3NpdGlvbiA/PyAnbGVmdCc7XG4gICAgICAgIHRoaXMuZnJvemVuQ29sdW1ucyA9IGZyb3plbkNvbHVtbnMgPz8gW107XG4gICAgICAgIHRoaXMuZnJvemVuV2lkdGggPSB0aGlzLmNhbGN1bGF0ZUZyb3plbldpZHRoKHRoaXMuZnJvemVuQ29sdW1ucyk7XG5cbiAgICAgICAgdGhpcy5lZGl0aW5nID0gISFlZGl0aW5nO1xuICAgICAgICB0aGlzLmxhenkgPSAhIWxhenk7XG4gICAgICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICEhZGVsZXRlQWN0aW9uc0VuYWJsZWQ7XG4gICAgICAgIHRoaXMuZWRpdEVuYWJsZWQgPSAhIWVkaXRFbmFibGVkO1xuICAgICAgICB0aGlzLmFkZEVuYWJsZWQgPSAhIWFkZEVuYWJsZWQ7XG4gICAgICAgIHRoaXMuZGV0YWlsc0VuYWJsZWQgPSAhIWVkaXRBY3Rpb25zRW5hYmxlZDtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5uZXN0ZWRHcmlkTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVGcm96ZW5XaWR0aChmcm96ZW5Db2x1bW5zOiBGcm96ZW5Db2x1bW5bXSk6IHN0cmluZyB7XG4gICAgICBjb25zdCBndXR0ZXIgPSAxMjA7XG4gICAgICBpZiAoIShmcm96ZW5Db2x1bW5zPy5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiAnMTIwcHgnO1xuICAgICAgfVxuICAgICAgY29uc3QgdG90YWxXaWR0aCA9IGZyb3plbkNvbHVtbnMucmVkdWNlKChzdW0sIGNvbCkgPT4gc3VtICsgZ3V0dGVyICsgKHBhcnNlSW50KGNvbC53aWR0aCwgMTApIHx8IDApLCAwKTtcbiAgICAgIHJldHVybiBgJHt0b3RhbFdpZHRofXB4YDtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKGRhdGE6IGFueSk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmVkaXQnKSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogIXRoaXMuZGV0YWlsc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5Sb3dEZXRhaWxzKGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBzZXBhcmF0b3I6IHRydWUgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmRlbGV0ZScpLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhdGhpcy5kZWxldGVFbmFibGVkLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShkYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlR3JpZERhdGEoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNsb25lZERhdGEgJiYgT2JqZWN0LmtleXModGhpcy5jbG9uZWREYXRhKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkRGF0YSA9IHt9O1xuICAgICAgICAgICAgdGhpcy50YWJsZS5lZGl0aW5nUm93S2V5cyA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWdpbmcuZW1pdCh7IHBhZ2UsIHNpemUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZU5lc3RlZEdyaWREYXRhKGV2ZW50OiBMYXp5TG9hZEV2ZW50LCByb3dEYXRhOiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogMTA7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IC8gc2l6ZSA6IDA7XG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhIHx8IFtdO1xuXG4gICAgICAgIHJvd0RhdGEubmVzdGVkR3JpZExvYWRpbmcgPSB0cnVlO1xuICAgICAgICBhd2FpdCB0aGlzLm5lc3RlZEZ1bmN0aW9uKHsgcGFnZSwgc2l6ZSwgc29ydCB9LCByb3dEYXRhKTtcbiAgICB9XG5cbiAgICBvblRhYihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgZm9jdXNhYmxlcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICdwLWNlbGxFZGl0b3IgaW5wdXQsIHAtY2VsbEVkaXRvciB0ZXh0YXJlYSwgcC1jZWxsRWRpdG9yIFt0YWJpbmRleD1cIjBcIl0nXG4gICAgICAgICAgICApXG4gICAgICAgICkuZmlsdGVyKGVsID0+IGVsLm9mZnNldFBhcmVudCAhPT0gbnVsbCk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gZm9jdXNhYmxlcy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgbGV0IG5leHQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4IC0gMV0gfHwgZm9jdXNhYmxlc1tmb2N1c2FibGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IGZvY3VzYWJsZXNbY3VycmVudEluZGV4ICsgMV0gfHwgZm9jdXNhYmxlc1swXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICBuZXh0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRSb3dJbmRleCgpIHtcbiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXMucGFnZSB8fCAwO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplIHx8IDA7XG4gICAgICAgIHJldHVybiBwYWdlICogc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnZVNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemUgPz8gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblJvd0RldGFpbHMoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGVsZXRlLmVtaXQoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZCgpIHtcbiAgICAgICAgdGhpcy5hZGQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRWRpdFNhdmUoKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25FZGl0Q2FuY2VsKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KChyb3cpID0+IHJvdy5pZCA9PT0gZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YVtpbmRleF0gPSB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF07XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2xvbmVkRGF0YVtkYXRhLmlkXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGFibGUuY2FuY2VsUm93RWRpdChkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0QWxsUm93c0VkaXQoKSB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5pdFJvd0VkaXQoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0gPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVBbGxSb3dzKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb25lZERhdGFbZGF0YS5pZF0pIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jbG9uZWREYXRhW2RhdGEuaWRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50YWJsZS5jYW5jZWxSb3dFZGl0KGRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuZ3JpZERhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXRSb3dEYXRhKGZpZWxkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXJPcHRpb25zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTcGFuUHJvcChvYmo6IGFueSwgcGF0aDogYW55LCB0eXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgdHlwZSA9IHR5cGU/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy51dGlscy5nZXRQcm9wKG9iaiwgcGF0aCwgdHlwZSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJzxzcGFuPjA8L3NwYW4+JyAgJiYgdHlwZSA9PT0gJ2RlY2ltYWwnKSB7XG4gICAgICAgICAgIHJldHVybiAnPHNwYW4+MCwwMDwvc3Bhbj4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb2JqLnRpcG9zRGFkb3MpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ01PTkVUQVJJTycgPT09IG9iai50aXBvc0RhZG9zW3BhdGhdKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1IkICcgKyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ1BFUkNFTlRVQUwnID09PSBvYmoudGlwb3NEYWRvc1twYXRoXSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICsgJyAlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhvdGtleXMoKSB7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UuYWRkKFxuICAgICAgICAgICAgbmV3IEhvdGtleShcbiAgICAgICAgICAgICAgICAnYWx0K3NoaWZ0K24nLFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFkZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbJ0lOUFVUJywgJ1NFTEVDVCcsICdURVhUQVJFQSddXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbXMge1xuICAgIHBhZ2U/OiBudW1iZXI7XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICBzb3J0PzogU29ydE1ldGFbXTtcbiAgICBmaWx0ZXJRdWVyeT86IHN0cmluZztcbiAgICBkaXNwbGF5RmllbGRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9keVBhcmFtcyB7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIHNpemU/OiBudW1iZXI7XG4gICAgb3JkZXJCeT86IHN0cmluZztcbiAgICBmaWx0ZXI/OiBzdHJpbmc7XG4gICAgZGlzcGxheWZpZWxkcz86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -3,9 +3,8 @@ import { NgModule } from '@angular/core';
|
|
|
3
3
|
import { TranslateModule } from '@ngx-translate/core';
|
|
4
4
|
import { GridEditableNestedComponent } from './grid-editable-nested.component';
|
|
5
5
|
import { TableModule as PrimeTableModule } from 'primeng/table';
|
|
6
|
-
import { ButtonModule, LoadingStateModule, LocaleModule, NumberInputModule, TableModule, TooltipModule, BreadcrumbModule, ControlErrorsModule, CustomFieldsModule, DynamicFormModule, EmptyStateModule, TokenListModule,
|
|
6
|
+
import { ButtonModule, LoadingStateModule, LocaleModule, NumberInputModule, TableModule, TooltipModule, BreadcrumbModule, ControlErrorsModule, CustomFieldsModule, DynamicFormModule, EmptyStateModule, TokenListModule, } from '@seniorsistemas/angular-components';
|
|
7
7
|
import { ToastModule } from 'primeng/toast';
|
|
8
|
-
import { TabMenuModule } from 'primeng/tabmenu';
|
|
9
8
|
import { PanelModule } from 'primeng/panel';
|
|
10
9
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
10
|
import { CommonModule } from '@angular/common';
|
|
@@ -13,7 +12,6 @@ import { InputTextModule } from 'primeng/inputtext';
|
|
|
13
12
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
14
13
|
import { CalendarModule } from 'primeng/calendar';
|
|
15
14
|
import { DropdownModule } from 'primeng/dropdown';
|
|
16
|
-
import { TabViewModule } from 'primeng/tabview';
|
|
17
15
|
import { SharedModule } from 'primeng/api';
|
|
18
16
|
import { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';
|
|
19
17
|
import { AutoCompleteModule } from 'primeng/autocomplete';
|
|
@@ -38,13 +36,10 @@ var GridEditableNestedModule = /** @class */ (function () {
|
|
|
38
36
|
DynamicFormModule,
|
|
39
37
|
EmptyStateModule,
|
|
40
38
|
TokenListModule,
|
|
41
|
-
TieredMenuModule,
|
|
42
39
|
// PrimeNG modules
|
|
43
40
|
ToastModule,
|
|
44
41
|
PrimeTableModule,
|
|
45
42
|
PrimeTooltipModule,
|
|
46
|
-
TabMenuModule,
|
|
47
|
-
TabViewModule,
|
|
48
43
|
PanelModule,
|
|
49
44
|
InputTextModule,
|
|
50
45
|
ConfirmDialogModule,
|
|
@@ -69,4 +64,4 @@ var GridEditableNestedModule = /** @class */ (function () {
|
|
|
69
64
|
return GridEditableNestedModule;
|
|
70
65
|
}());
|
|
71
66
|
export { GridEditableNestedModule };
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1lZGl0YWJsZS1uZXN0ZWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9ncmlkLWVkaXRhYmxlLW5lc3RlZC9ncmlkLWVkaXRhYmxlLW5lc3RlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLElBQUksZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUNILFlBQVksRUFDWixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxHQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQTRDbEQ7SUFBQTtJQUF1QyxDQUFDO0lBQTNCLHdCQUF3QjtRQTFDcEMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLFlBQVk7Z0JBQ1osWUFBWSxDQUFDLFFBQVEsRUFBRTtnQkFDdkIsZUFBZSxDQUFDLFFBQVEsRUFBRTtnQkFDMUIsWUFBWTtnQkFDWixXQUFXO2dCQUNYLGFBQWE7Z0JBQ2Isa0JBQWtCO2dCQUNsQixpQkFBaUI7Z0JBQ2pCLGdCQUFnQjtnQkFDaEIsbUJBQW1CO2dCQUNuQixrQkFBa0I7Z0JBQ2xCLGlCQUFpQjtnQkFDakIsZ0JBQWdCO2dCQUNoQixlQUFlO2dCQUVmLGtCQUFrQjtnQkFDbEIsV0FBVztnQkFDWCxnQkFBZ0I7Z0JBQ2hCLGtCQUFrQjtnQkFDbEIsV0FBVztnQkFDWCxlQUFlO2dCQUNmLG1CQUFtQjtnQkFDbkIsY0FBYztnQkFDZCxjQUFjO2dCQUNkLFlBQVk7Z0JBQ1osa0JBQWtCO2dCQUNsQixjQUFjO2dCQUVkLGtCQUFrQjtnQkFDbEIsV0FBVztnQkFDWCxtQkFBbUI7YUFDdEI7WUFDRCxZQUFZLEVBQUU7Z0JBQ1YsMkJBQTJCO2FBQzlCO1lBQ0QsU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUU7Z0JBQ0wsMkJBQTJCO2FBQzlCO1NBQ0osQ0FBQztPQUNXLHdCQUF3QixDQUFHO0lBQUQsK0JBQUM7Q0FBQSxBQUF4QyxJQUF3QztTQUEzQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEdyaWRFZGl0YWJsZU5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC1lZGl0YWJsZS1uZXN0ZWQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIGFzIFByaW1lVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcblxuaW1wb3J0IHtcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgTG9hZGluZ1N0YXRlTW9kdWxlLFxuICAgIExvY2FsZU1vZHVsZSxcbiAgICBOdW1iZXJJbnB1dE1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgQ29udHJvbEVycm9yc01vZHVsZSxcbiAgICBDdXN0b21GaWVsZHNNb2R1bGUsXG4gICAgRHluYW1pY0Zvcm1Nb2R1bGUsXG4gICAgRW1wdHlTdGF0ZU1vZHVsZSxcbiAgICBUb2tlbkxpc3RNb2R1bGUsXG59IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHsgUGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL3BhbmVsJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIGFzIFByaW1lVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBDaGVja2JveE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBMb2NhbGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVGFibGVNb2R1bGUsXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIExvYWRpbmdTdGF0ZU1vZHVsZSxcbiAgICAgICAgTnVtYmVySW5wdXRNb2R1bGUsXG4gICAgICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgICAgIENvbnRyb2xFcnJvcnNNb2R1bGUsXG4gICAgICAgIEN1c3RvbUZpZWxkc01vZHVsZSxcbiAgICAgICAgRHluYW1pY0Zvcm1Nb2R1bGUsXG4gICAgICAgIEVtcHR5U3RhdGVNb2R1bGUsXG4gICAgICAgIFRva2VuTGlzdE1vZHVsZSxcblxuICAgICAgICAvLyBQcmltZU5HIG1vZHVsZXNcbiAgICAgICAgVG9hc3RNb2R1bGUsXG4gICAgICAgIFByaW1lVGFibGVNb2R1bGUsXG4gICAgICAgIFByaW1lVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgUGFuZWxNb2R1bGUsXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICAgICAgQ29uZmlybURpYWxvZ01vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBTaGFyZWRNb2R1bGUsXG4gICAgICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcbiAgICAgICAgQ2hlY2tib3hNb2R1bGUsXG5cbiAgICAgICAgLy8gQW5ndWxhciBtb2R1bGVzXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgR3JpZEVkaXRhYmxlTmVzdGVkQ29tcG9uZW50LFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEdyaWRFZGl0YWJsZU5lc3RlZENvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkRWRpdGFibGVOZXN0ZWRNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
1
|
+
import { __awaiter, __decorate, __generator } from "tslib";
|
|
2
2
|
import { TranslateService } from '@ngx-translate/core';
|
|
3
3
|
import { Component, Injectable, Input, Output, EventEmitter } from '@angular/core';
|
|
4
4
|
import { EnumProcessamentoStatus, EnumProcessamentoStatusTranslationMap } from './processamento';
|
|
@@ -36,7 +36,12 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
36
36
|
this.processingProgress = '0%';
|
|
37
37
|
this.totalRecords = this.params.registros.length;
|
|
38
38
|
this.pendingCount = this.totalRecords;
|
|
39
|
-
this.
|
|
39
|
+
if (this.params.quantidadeChamadasSimultaneas > 1) {
|
|
40
|
+
this.processAllRecordsWithPLimit();
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.syncProcessRecord(0);
|
|
44
|
+
}
|
|
40
45
|
};
|
|
41
46
|
PainelProcessamentoComponent.prototype.initGrid = function () {
|
|
42
47
|
this.gridData = [];
|
|
@@ -46,7 +51,21 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
46
51
|
label: registro.descricao
|
|
47
52
|
}); });
|
|
48
53
|
};
|
|
49
|
-
PainelProcessamentoComponent.prototype.
|
|
54
|
+
PainelProcessamentoComponent.prototype.updateRowSuccess = function (row, index) {
|
|
55
|
+
this.successCount++;
|
|
56
|
+
this.pendingCount--;
|
|
57
|
+
this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);
|
|
58
|
+
this.processado.emit(row);
|
|
59
|
+
this.updateProgressBar();
|
|
60
|
+
};
|
|
61
|
+
PainelProcessamentoComponent.prototype.updateRowError = function (row, index, message) {
|
|
62
|
+
this.failedCount++;
|
|
63
|
+
this.pendingCount--;
|
|
64
|
+
this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, message);
|
|
65
|
+
this.processado.emit(row);
|
|
66
|
+
this.updateProgressBar();
|
|
67
|
+
};
|
|
68
|
+
PainelProcessamentoComponent.prototype.syncProcessRecord = function (index) {
|
|
50
69
|
var _this = this;
|
|
51
70
|
if (this.pendingCount < 1) {
|
|
52
71
|
this.concluido.emit('ok');
|
|
@@ -58,19 +77,11 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
58
77
|
if (record.apiEnvio) {
|
|
59
78
|
record.apiEnvio(record.objEnvio)
|
|
60
79
|
.subscribe(function () {
|
|
61
|
-
_this.
|
|
62
|
-
_this.
|
|
63
|
-
_this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);
|
|
64
|
-
_this.processado.emit(row);
|
|
65
|
-
_this.updateProgressBar();
|
|
66
|
-
_this.processRecord(index + 1);
|
|
80
|
+
_this.updateRowSuccess(row, index);
|
|
81
|
+
_this.syncProcessRecord(index + 1);
|
|
67
82
|
}, function (error) {
|
|
68
|
-
_this.
|
|
69
|
-
_this.
|
|
70
|
-
_this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, error.message);
|
|
71
|
-
_this.processado.emit(row);
|
|
72
|
-
_this.updateProgressBar();
|
|
73
|
-
_this.processRecord(index + 1);
|
|
83
|
+
_this.updateRowError(row, index, error.message);
|
|
84
|
+
_this.syncProcessRecord(index + 1);
|
|
74
85
|
});
|
|
75
86
|
}
|
|
76
87
|
else {
|
|
@@ -81,6 +92,49 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
81
92
|
this.concluido.emit('erro');
|
|
82
93
|
}
|
|
83
94
|
};
|
|
95
|
+
PainelProcessamentoComponent.prototype.processAllRecordsWithPLimit = function () {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
97
|
+
var pLimit, limit, promises, results;
|
|
98
|
+
var _this = this;
|
|
99
|
+
return __generator(this, function (_a) {
|
|
100
|
+
switch (_a.label) {
|
|
101
|
+
case 0:
|
|
102
|
+
pLimit = require('p-limit');
|
|
103
|
+
limit = pLimit(this.params.quantidadeChamadasSimultaneas);
|
|
104
|
+
promises = this.params.registros.map(function (record, index) {
|
|
105
|
+
return limit(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
106
|
+
var row, result, error_1;
|
|
107
|
+
return __generator(this, function (_a) {
|
|
108
|
+
switch (_a.label) {
|
|
109
|
+
case 0:
|
|
110
|
+
row = this.gridData.find(function (item) { return item.registro === record; });
|
|
111
|
+
this.updateRowStatus(row, EnumProcessamentoStatus.PROCESSING);
|
|
112
|
+
_a.label = 1;
|
|
113
|
+
case 1:
|
|
114
|
+
_a.trys.push([1, 3, , 4]);
|
|
115
|
+
return [4 /*yield*/, record.apiEnvio(record.objEnvio).toPromise()];
|
|
116
|
+
case 2:
|
|
117
|
+
result = _a.sent();
|
|
118
|
+
this.updateRowSuccess(row, index);
|
|
119
|
+
return [2 /*return*/, { success: true, record: record, result: result }];
|
|
120
|
+
case 3:
|
|
121
|
+
error_1 = _a.sent();
|
|
122
|
+
this.updateRowError(row, index, error_1.message);
|
|
123
|
+
return [2 /*return*/, { success: false, record: record, error: error_1 }];
|
|
124
|
+
case 4: return [2 /*return*/];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}); });
|
|
128
|
+
});
|
|
129
|
+
return [4 /*yield*/, Promise.all(promises)];
|
|
130
|
+
case 1:
|
|
131
|
+
results = _a.sent();
|
|
132
|
+
this.concluido.emit(results);
|
|
133
|
+
return [2 /*return*/, results];
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
};
|
|
84
138
|
PainelProcessamentoComponent.prototype.updateProgressBar = function () {
|
|
85
139
|
var successWidth = (this.successCount / this.totalRecords) * 100;
|
|
86
140
|
var failedWidth = (this.failedCount / this.totalRecords) * 100;
|
|
@@ -177,4 +231,4 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
177
231
|
return PainelProcessamentoComponent;
|
|
178
232
|
}());
|
|
179
233
|
export { PainelProcessamentoComponent };
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SSxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBVWpGO0lBb0JJLHNDQUNxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0lBRUwsK0NBQVEsR0FBUjtRQUNJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FB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LFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7UUFDRCxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLHk0RkFBb0Q7O1NBRXJELENBQUM7T0FDVyw0QkFBNEIsQ0F1S3hDO3VDQXBMRDtDQW9MQyxBQXZLRCxJQXVLQztTQXZLWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcCwgUHJvY2Vzc2FtZW50b0dyaWQsIFByb2Nlc3NhbWVudG9JbnB1dCB9IGZyb20gJy4vcHJvY2Vzc2FtZW50byc7XG5pbXBvcnQgeyBDb2x1bW4sIEVudW1Db2x1bW5GaWVsZFR5cGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rtc3gtcGFpbmVsLXByb2Nlc3NhbWVudG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhaW5lbFByb2Nlc3NhbWVudG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgcGFyYW1zOiBQcm9jZXNzYW1lbnRvSW5wdXQ7XG4gICAgQE91dHB1dCgpIHByb2Nlc3NhZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbmNsdWlkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBncmlkRGF0YTogUHJvY2Vzc2FtZW50b0dyaWRbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IENvbHVtbltdO1xuXG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NDb3VudCA9IDA7XG4gICAgcHVibGljIGZhaWxlZENvdW50ID0gMDtcbiAgICBwdWJsaWMgcGVuZGluZ0NvdW50ID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBwZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgcHVibGljIHByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHNvcnRGaWVsZCA9ICdzdGF0dXMnO1xuICAgIHB1YmxpYyBzb3J0T3JkZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQYW5lbCgpO1xuICAgIH1cblxuICAgIGluaXRQYW5lbCgpIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbigpO1xuICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG4gICAgICAgIHRoaXMuaW5pdFByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgaW5pdFByb2dyZXNzQmFyKCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gdGhpcy50b3RhbFJlY29yZHM7XG4gICAgICAgIHRoaXMucHJvY2Vzc1JlY29yZCgwKTtcbiAgICB9XG5cbiAgICBpbml0R3JpZCgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLm1hcChyZWdpc3RybyA9PiAoe1xuICAgICAgICAgICAgcmVnaXN0cm8sXG4gICAgICAgICAgICBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICBsYWJlbDogcmVnaXN0cm8uZGVzY3JpY2FvXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NSZWNvcmQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wZW5kaW5nQ291bnQgPCAxKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdvaycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHRoaXMuZ3JpZERhdGFbaW5kZXhdLCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QUk9DRVNTSU5HKTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zW2luZGV4XTtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcblxuICAgICAgICBpZiAocmVjb3JkLmFwaUVudmlvKSB7XG4gICAgICAgICAgICByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0NvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0NvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuU1VDQ0VTUyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc2Fkby5lbWl0KHJvdyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3NCYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhaWxlZENvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0NvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELCBlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzYWRvLmVtaXQocm93KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mYWlsZWRDb3VudCA9IHRoaXMucGVuZGluZ0NvdW50O1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LFxuICAgICAgICAgICAgICAgICBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9jb20udG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fYXBpX2Vycm9yJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdlcnJvJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzQmFyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWNjZXNzV2lkdGggPSAodGhpcy5zdWNjZXNzQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IGZhaWxlZFdpZHRoID0gKHRoaXMuZmFpbGVkQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdXaWR0aCA9ICh0aGlzLnBlbmRpbmdDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSBgJHsoc3VjY2Vzc1dpZHRoICsgZmFpbGVkV2lkdGgpfSVgO1xuXG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gYCR7c3VjY2Vzc1dpZHRofSVgO1xuICAgICAgICB0aGlzLmZhaWxlZFByb2dyZXNzID0gYCR7ZmFpbGVkV2lkdGh9JWA7XG4gICAgICAgIHRoaXMucGVuZGluZ1Byb2dyZXNzID0gYCR7cGVuZGluZ1dpZHRofSVgO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSb3dTdGF0dXMocm93OiBhbnksIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgcm93LnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJvdy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRHcmlkRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyaWREYXRhKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNPcmRlciA9IHtcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVEXTogMSxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lOR106IDIsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1NdOiAzLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HXTogNFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRGaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSAtIHN0YXR1c09yZGVyW2Iuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQSA9IGFbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEIgPSBiW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsQS5sb2NhbGVDb21wYXJlKHZhbEIpICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICBsZXQgdGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcFtyb3dEYXRhLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pO1xuICAgICAgICAgICAgaWYgKHJvd0RhdGEubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRleHQgKz0gYDogJHtyb3dEYXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dEYXRhW2ZpZWxkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xhc3NTdGF0dXMocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCAhPT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICBgc3RhdHVzICR7cm93RGF0YVtmaWVsZF0udG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1uKCk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnJlZ2lzdHJvJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9jb20udG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SSxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBVWpGO0lBb0JJLHNDQUNxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0lBRUwsK0NBQVEsR0FBUjtRQUNJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FB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QUN2QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTthQUNuQztZQUNEO2dCQUNJLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztnQkFDekUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDdkIsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07YUFDbkM7U0FDSixDQUFDO0lBQ04sQ0FBQzs7Z0JBcEwrQixnQkFBZ0I7OztJQW5CdkM7UUFBUixLQUFLLEVBQUU7Z0VBQTRCO0lBQzFCO1FBQVQsTUFBTSxFQUFFO29FQUFpQztJQUNoQztRQUFULE1BQU0sRUFBRTttRUFBZ0M7SUFKaEMsNEJBQTRCO1FBUnhDLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7UUFDRCxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLHk0RkFBb0Q7O1NBRXJELENBQUM7T0FDVyw0QkFBNEIsQ0EwTXhDO3VDQXZORDtDQXVOQyxBQTFNRCxJQTBNQztTQTFNWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcCwgUHJvY2Vzc2FtZW50b0dyaWQsIFByb2Nlc3NhbWVudG9JbnB1dCB9IGZyb20gJy4vcHJvY2Vzc2FtZW50byc7XG5pbXBvcnQgeyBDb2x1bW4sIEVudW1Db2x1bW5GaWVsZFR5cGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rtc3gtcGFpbmVsLXByb2Nlc3NhbWVudG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhaW5lbFByb2Nlc3NhbWVudG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgcGFyYW1zOiBQcm9jZXNzYW1lbnRvSW5wdXQ7XG4gICAgQE91dHB1dCgpIHByb2Nlc3NhZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbmNsdWlkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBncmlkRGF0YTogUHJvY2Vzc2FtZW50b0dyaWRbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IENvbHVtbltdO1xuXG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NDb3VudCA9IDA7XG4gICAgcHVibGljIGZhaWxlZENvdW50ID0gMDtcbiAgICBwdWJsaWMgcGVuZGluZ0NvdW50ID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBwZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgcHVibGljIHByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHNvcnRGaWVsZCA9ICdzdGF0dXMnO1xuICAgIHB1YmxpYyBzb3J0T3JkZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQYW5lbCgpO1xuICAgIH1cblxuICAgIGluaXRQYW5lbCgpIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbigpO1xuICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG4gICAgICAgIHRoaXMuaW5pdFByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgaW5pdFByb2dyZXNzQmFyKCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gdGhpcy50b3RhbFJlY29yZHM7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyYW1zLnF1YW50aWRhZGVDaGFtYWRhc1NpbXVsdGFuZWFzID4gMSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0R3JpZCgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLm1hcChyZWdpc3RybyA9PiAoe1xuICAgICAgICAgICAgcmVnaXN0cm8sXG4gICAgICAgICAgICBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICBsYWJlbDogcmVnaXN0cm8uZGVzY3JpY2FvXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJvd1N1Y2Nlc3Mocm93OiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzQ291bnQrKztcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQtLTtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5TVUNDRVNTKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzYWRvLmVtaXQocm93KTtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUm93RXJyb3Iocm93OiBhbnksIGluZGV4OiBudW1iZXIsIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmZhaWxlZENvdW50Kys7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50LS07XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELCBtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzYWRvLmVtaXQocm93KTtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wZW5kaW5nQ291bnQgPCAxKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdvaycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHRoaXMuZ3JpZERhdGFbaW5kZXhdLCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QUk9DRVNTSU5HKTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zW2luZGV4XTtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcblxuICAgICAgICBpZiAocmVjb3JkLmFwaUVudmlvKSB7XG4gICAgICAgICAgICByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd1N1Y2Nlc3Mocm93LCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dFcnJvcihyb3csIGluZGV4LCBlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mYWlsZWRDb3VudCA9IHRoaXMucGVuZGluZ0NvdW50O1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LFxuICAgICAgICAgICAgICAgICBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9jb20udG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fYXBpX2Vycm9yJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdlcnJvJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKSB7XG4gICAgICBjb25zdCBwTGltaXQgPSByZXF1aXJlKCdwLWxpbWl0Jyk7XG4gICAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCh0aGlzLnBhcmFtcy5xdWFudGlkYWRlQ2hhbWFkYXNTaW11bHRhbmVhcyk7XG4gICAgICBjb25zdCBwcm9taXNlcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5tYXAoKHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lORyk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdWNjZXNzKHJvdywgaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgcmVjb3JkLCByZXN1bHQgfTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dFcnJvcihyb3csIGluZGV4LCBlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWNvcmQsIGVycm9yIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQocmVzdWx0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzQmFyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWNjZXNzV2lkdGggPSAodGhpcy5zdWNjZXNzQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IGZhaWxlZFdpZHRoID0gKHRoaXMuZmFpbGVkQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdXaWR0aCA9ICh0aGlzLnBlbmRpbmdDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSBgJHsoc3VjY2Vzc1dpZHRoICsgZmFpbGVkV2lkdGgpfSVgO1xuXG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gYCR7c3VjY2Vzc1dpZHRofSVgO1xuICAgICAgICB0aGlzLmZhaWxlZFByb2dyZXNzID0gYCR7ZmFpbGVkV2lkdGh9JWA7XG4gICAgICAgIHRoaXMucGVuZGluZ1Byb2dyZXNzID0gYCR7cGVuZGluZ1dpZHRofSVgO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSb3dTdGF0dXMocm93OiBhbnksIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgcm93LnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJvdy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRHcmlkRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyaWREYXRhKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNPcmRlciA9IHtcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVEXTogMSxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lOR106IDIsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1NdOiAzLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HXTogNFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRGaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSAtIHN0YXR1c09yZGVyW2Iuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQSA9IGFbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEIgPSBiW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsQS5sb2NhbGVDb21wYXJlKHZhbEIpICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICBsZXQgdGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcFtyb3dEYXRhLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pO1xuICAgICAgICAgICAgaWYgKHJvd0RhdGEubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRleHQgKz0gYDogJHtyb3dEYXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dEYXRhW2ZpZWxkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xhc3NTdGF0dXMocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCAhPT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICBgc3RhdHVzICR7cm93RGF0YVtmaWVsZF0udG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1uKCk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfY29tLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnJlZ2lzdHJvJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9jb20udG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
|