keevo-components 1.8.94 → 1.8.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/api/components/table/kv-menuitem.mjs +46 -3
- package/esm2022/lib/api/components/table/table.config.mjs +1 -1
- package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +3 -0
- package/esm2022/lib/api/types/severity.mjs +2 -0
- package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +10 -79
- package/esm2022/lib/components/kv-table/kv-table.component.mjs +20 -75
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +23 -66
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +13 -38
- package/esm2022/lib/components/kv-workspace/kv-workspace.component.mjs +3 -3
- package/fesm2022/keevo-components.mjs +118 -268
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/api/components/table/kv-menuitem.d.ts +151 -9
- package/lib/api/components/table/table.config.d.ts +15 -4
- package/lib/api/components/tree-table/tree-table.config.d.ts +28 -0
- package/lib/api/types/severity.d.ts +2 -0
- package/lib/components/kv-carousel/kv-carousel.component.d.ts +5 -11
- package/lib/components/kv-table/kv-table.component.d.ts +13 -16
- package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +5 -10
- package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +8 -9
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Component, ContentChildren, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import { getOrExecute, mapToMenuItem } from '../../api/components/table/kv-menuitem';
|
|
2
3
|
import { TemplateDirective } from '../../api/directives/template/template.directive';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@angular/common";
|
|
@@ -14,7 +15,6 @@ export class KvTreetableComponent {
|
|
|
14
15
|
constructor() {
|
|
15
16
|
this.menuItems = [];
|
|
16
17
|
this.gridLines = false;
|
|
17
|
-
this.acoesLinhaTabela = false;
|
|
18
18
|
this.tableCaptalized = false;
|
|
19
19
|
this.selectedItems = [];
|
|
20
20
|
this.paginator = false;
|
|
@@ -40,6 +40,9 @@ export class KvTreetableComponent {
|
|
|
40
40
|
activeItemLote(rowData) {
|
|
41
41
|
this.onActiveItemLote.emit(rowData);
|
|
42
42
|
}
|
|
43
|
+
getOrExecute(action, data) {
|
|
44
|
+
return getOrExecute(action, data);
|
|
45
|
+
}
|
|
43
46
|
onGlobalFilter(table, event) {
|
|
44
47
|
this.onFilter.emit(event.target.value);
|
|
45
48
|
table.filterGlobal(event.target.value, 'contains');
|
|
@@ -100,26 +103,9 @@ export class KvTreetableComponent {
|
|
|
100
103
|
}
|
|
101
104
|
criarMenusModal(data) {
|
|
102
105
|
if (this.config.actions && data) {
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
const tooltipPosition = this.retornarCampo(action, data, 'tooltipPosition');
|
|
107
|
-
const label = this.retornarCampo(action, data, 'label');
|
|
108
|
-
const command = this.retornarCampo(action, data, 'command');
|
|
109
|
-
const visible = action.visible ? action.visible(data) : true;
|
|
110
|
-
const disabled = action.disabled
|
|
111
|
-
? action.disabled(data)
|
|
112
|
-
: false;
|
|
113
|
-
const menuInsert = {
|
|
114
|
-
label,
|
|
115
|
-
icon,
|
|
116
|
-
tooltip,
|
|
117
|
-
tooltipPosition,
|
|
118
|
-
command,
|
|
119
|
-
disabled,
|
|
120
|
-
visible,
|
|
121
|
-
};
|
|
122
|
-
let item = this.menuItems.filter((x) => x.command == menuInsert.command);
|
|
106
|
+
for (const action of this.config.actions) {
|
|
107
|
+
const menuInsert = mapToMenuItem(action, data);
|
|
108
|
+
let item = this.menuItems.filter(x => x.command == menuInsert.command);
|
|
123
109
|
if (item.length == 0)
|
|
124
110
|
this.menuItems.push(menuInsert);
|
|
125
111
|
else {
|
|
@@ -136,18 +122,9 @@ export class KvTreetableComponent {
|
|
|
136
122
|
this.menuItems.splice(index, 1);
|
|
137
123
|
}
|
|
138
124
|
}
|
|
139
|
-
}
|
|
125
|
+
}
|
|
140
126
|
}
|
|
141
127
|
}
|
|
142
|
-
retornarCampo(action, rowData, field) {
|
|
143
|
-
const _function = action.dynamicfields
|
|
144
|
-
? action.dynamicfields[field]
|
|
145
|
-
: null;
|
|
146
|
-
const _field = _function
|
|
147
|
-
? _function.apply(action, [rowData])
|
|
148
|
-
: action[field];
|
|
149
|
-
return _field;
|
|
150
|
-
}
|
|
151
128
|
exibirCampo(field, rowData) {
|
|
152
129
|
let visible = field.visible ? field.visible(rowData) : true;
|
|
153
130
|
return visible;
|
|
@@ -184,23 +161,21 @@ export class KvTreetableComponent {
|
|
|
184
161
|
}
|
|
185
162
|
return true;
|
|
186
163
|
}
|
|
187
|
-
getIcon(
|
|
188
|
-
return
|
|
164
|
+
getIcon(icon) {
|
|
165
|
+
return icon.includes('pi-') ? `pi ${icon}` : '';
|
|
189
166
|
}
|
|
190
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
191
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvTreetableComponent, selector: "kv-tree-table", inputs: { config: "config", dataSource: "dataSource", gridLines: "gridLines", acoesLinhaTabela: "acoesLinhaTabela", tableCaptalized: "tableCaptalized", selectedItems: "selectedItems", paginator: "paginator", rows: "rows", pageLinks: "pageLinks", showFirstLastIcon: "showFirstLastIcon", totalRecords: "totalRecords", textoEmptyMessage: "textoEmptyMessage", _templates: ["templates", "_templates"] }, outputs: { onFilter: "onFilter", onPaginate: "onPaginate", onActiveItem: "onActiveItem", onActiveItemLote: "onActiveItemLote", doubleClickEvent: "doubleClickEvent" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div>\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{'min-width': '50rem'}\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [pageLinks]=\"pageLinks\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"showFirstLastIcon\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n currentPageReportTemplate=\"{first} - {last} de {{ totalRecords }}\"\r\n >\r\n\r\n <ng-template\r\n pTemplate=\"caption\"\r\n *ngIf=\"config.enableCation\"\r\n >\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12\">\r\n <div class=\"col-12 flex flex-column\">\r\n <div\r\n *ngIf=\"config.title\"\r\n class=\"text-md font-bold my-3\"\r\n >\r\n {{ config.title }}\r\n </div>\r\n <div\r\n *ngIf=\"config.subtitle\"\r\n class=\"text-sm mb-4 font-medium\"\r\n >\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 md:col-6 lg:col-4 justify-content-center {{tamanhoTela < 768 ? '' : 'input-search'}}\">\r\n <span\r\n *ngIf=\"config.enableFilter\"\r\n class=\"p-input-icon-left\"\r\n >\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"btns-options\">\r\n @for(action of config.actionsLote; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(action)\"\r\n [rounded]=\"true\"\r\n *ngIf=\"(selectedItems.length > 0 || action.showAcoesLote) && exibirCampo(action, this.action)\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n (onClick)=\"action?.command(commandEvent); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"retornarCampo(action, selectedItems, 'tooltip')\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [style.backgroundColor]=\"retornarCampo(action, selectedItems, 'btnColor')\"\r\n [disabled]=\"retornarCampo(action, selectedItems, 'disabled')\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n >\r\n @if(!action.icon.includes('pi-')){\r\n <span\r\n class=\"material-symbols-outlined md-22\"\r\n [style.color]=\"retornarCampo(action, selectedItems, 'iconBtnColor')\"\r\n >\r\n {{ retornarCampo(action, selectedItems, \"icon\") }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"header\"\r\n let-columns\r\n >\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox\r\n (click)=\"activeItemLote(selectedItems)\"></p-treeTableHeaderCheckbox>\r\n </div>\r\n\r\n <div\r\n [class]=\"centralizarColunas(col) && alignColunasHeader(col) == '' ? 'flex flex-row justify-content-center' : 'flex flex-row'\"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n ></p-sortIcon>\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span>\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"header\"\r\n let-columns\r\n >\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br>\r\n </th>\r\n }\r\n\r\n <th\r\n [style.width]=\"5\"\r\n *ngIf=\"config.actions?.length > 0\"\r\n ></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ 'capitalize': tableCaptalized }\"\r\n >\r\n\r\n @for(col of columns; track $index){\r\n <td\r\n [style]=\"returnStyleRow(col, rowNode)\"\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"rowNode.level !== 0 ? rowNode.level*30 : null\"\r\n >\r\n\r\n <div class=\"flex flex-row {{col.boolean ? 'justify-content-center' : '' }}\">\r\n <div\r\n class=\"w-full-h-full flex align-items-center\"\r\n *ngIf=\"$index == 0\"\r\n >\r\n <p-treeTableToggler\r\n class=\"hiddenVisible\"\r\n [rowNode]=\"rowNode\"\r\n ></p-treeTableToggler>\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n ></p-treeTableCheckbox>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div class=\"flex flex-row align-items-center justify-content-center\">\r\n\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{rowData[col.field] ? 'pi-check text-green-300' : ''}}\"\r\n style=\"font-size: 1.1rem;\"\r\n ></i>\r\n\r\n\r\n <div\r\n class=\"flex flex-column\"\r\n *ngIf=\"!col.boolean\"\r\n >\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p\r\n *ngIf=\"col.subtitle\"\r\n class=\"m-0 text-xs font-semibold\"\r\n >{{rowData[col.subtitle]}}</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n\r\n </td>\r\n }\r\n\r\n <td\r\n style=\"border-left: none;\"\r\n *ngIf=\"config.actions?.length > 0 || config.actionsPai\"\r\n >\r\n\r\n <div *ngIf=\"config.actions?.length > 0 && validateActionPosition(rowNode)\">\r\n\r\n\r\n @if(acoesLinhaTabela) {\r\n <div\r\n class=\"flex flex-row justify-content-center gap-1\"\r\n *ngIf=\"acoesLinhaTabela\"\r\n >\r\n\r\n @for(action of config.actions; track $index){\r\n <p-button\r\n [icon]=\"getIcon(action)\"\r\n [rounded]=\"true\"\r\n [severity]=\"action.severity ? action.severity : 'secondary'\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n (onClick)=\"action.command($event)\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n >\r\n @if(!action.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\">{{action.icon}}</span>\r\n }\r\n </p-button>\r\n }\r\n\r\n </div>\r\n } @else {\r\n\r\n <span\r\n *ngIf=\"!acoesLinhaTabela\"\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 22px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n }\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n\r\n </div>\r\n\r\n @if(config.actionsPai?.length > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n\r\n @for(actionPai of config.actionsPai; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai)\"\r\n [rounded]=\"true\"\r\n [severity]=\"actionPai.severity ? actionPai.severity : 'secondary'\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n (onClick)=\"activeItem(rowData);actionPai.command($event);\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\">{{actionPai.icon}}</span>\r\n }\r\n </p-button>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr >\r\n <td [attr.colspan]=\"config.columns.length + 1\" style=\"text-align: center; border-radius: 10px !important\">{{textoEmptyMessage}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-treetable table{border-spacing:0 3px}#botaoFiltro:hover{color:#d4d4d4}:host ::ng-deep .p-treetable .p-treetable-header{background-color:#eaeaea;padding:2px 0 0!important;border-radius:5px}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th{background-color:#eaeaea;padding:.5rem!important;margin-bottom:-5px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{padding:.5rem!important}:host ::ng-deep .p-treetable .p-treetable-thead{border-spacing:0 1px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:first-of-type{background-color:#eaeaea;padding:.5rem!important;border-top-left-radius:5px!important;border-bottom-left-radius:5px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:last-child{background-color:#eaeaea;padding:.5rem!important;border-radius:0 5px 5px 0!important;-webkit-border-radius:0 5px 5px 0!important;-moz-border-radius:0 5px 5px 0!important;-ms-border-radius:0 5px 5px 0!important;-o-border-radius:0 5px 5px 0!important}:host ::ng-deep .p-treetable-scrollable-header-box{padding:0!important}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th{background-color:#f2f2f2}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:first-of-type{border-radius:5px 0 0 5px}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:last-child{border-radius:0 5px 5px 0}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{border-bottom:1px solid #ddd!important;border-top:1px solid #ddd!important}:host ::ng-deep #tr-style{border-left:solid 4px #5289B4!important;border-radius:10px!important;display:block}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:first-of-type{border-left:solid 4px #5289B4!important;border-right:none!important;border-radius:10px 0 0 10px!important;-webkit-border-radius:10px 0 0 10px!important;-moz-border-radius:10px 0 0 10px!important;-ms-border-radius:10px 0 0 10px!important;-o-border-radius:10px 0 0 10px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:last-child{border-radius:0 10px 10px 0!important;border-right:1px solid #ddd!important;-webkit-border-radius:0 10px 10px 0!important;-moz-border-radius:0 10px 10px 0!important;-ms-border-radius:0 10px 10px 0!important;-o-border-radius:0 10px 10px 0!important}:host ::ng-deep .actionBtns,:host ::ng-deep .actionLoteBtns{border-radius:50%;box-shadow:#0000003d 0 3px 8px;width:2.5rem!important;height:2.5rem!important;display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-treetable table{border-collapse:separate!important;table-layout:auto!important}.icon-more-horiz:hover,.icon-more-horiz:focus{color:#5e5e5e;transform:scale(1.1);transition:color .3s,transform .3s}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i7.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i8.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i9.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "virtualRowHeight", "selectionKeys"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel", "selectionKeysChange"] }, { kind: "component", type: i9.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i9.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "directive", type: i9.TTResizableColumn, selector: "[ttResizableColumn]", inputs: ["ttResizableColumnDisabled"] }, { kind: "directive", type: i9.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: i9.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i9.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }] }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvTreetableComponent, selector: "kv-tree-table", inputs: { config: "config", dataSource: "dataSource", gridLines: "gridLines", tableCaptalized: "tableCaptalized", selectedItems: "selectedItems", paginator: "paginator", rows: "rows", pageLinks: "pageLinks", showFirstLastIcon: "showFirstLastIcon", totalRecords: "totalRecords", textoEmptyMessage: "textoEmptyMessage", _templates: ["templates", "_templates"] }, outputs: { onFilter: "onFilter", onPaginate: "onPaginate", onActiveItem: "onActiveItem", onActiveItemLote: "onActiveItemLote", doubleClickEvent: "doubleClickEvent" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div>\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{'min-width': '50rem'}\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [pageLinks]=\"pageLinks\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"showFirstLastIcon\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n currentPageReportTemplate=\"{first} - {last} de {{ totalRecords }}\"\r\n >\r\n\r\n <ng-template\r\n pTemplate=\"caption\"\r\n *ngIf=\"config.enableCation\"\r\n >\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12\">\r\n <div class=\"col-12 flex flex-column\">\r\n <div\r\n *ngIf=\"config.title\"\r\n class=\"text-md font-bold my-3\"\r\n >\r\n {{ config.title }}\r\n </div>\r\n <div\r\n *ngIf=\"config.subtitle\"\r\n class=\"text-sm mb-4 font-medium\"\r\n >\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 md:col-6 lg:col-4 justify-content-center {{tamanhoTela < 768 ? '' : 'input-search'}}\">\r\n <span\r\n *ngIf=\"config.enableFilter\"\r\n class=\"p-input-icon-left\"\r\n >\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"btns-options\">\r\n @for (action of config.actionsLote; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(action.icon)\"\r\n [rounded]=\"true\"\r\n *ngIf=\"(selectedItems.length > 0 || action.showAcoesLote) && exibirCampo(action, this.action)\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n [style.backgroundColor]='\"#1DA750\"'\r\n (onClick)=\"action?.command(); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"getOrExecute(action.tooltip, selectedItems)\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"getOrExecute(action.disabled, selectedItems)\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n >\r\n @if (!action.icon.includes('pi-')){\r\n <span class=\"material-symbols-outlined md-22\" style=\"color: white\">\r\n {{ getOrExecute(action.icon, selectedItems) }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox (click)=\"activeItemLote(selectedItems)\"/>\r\n </div>\r\n\r\n <div\r\n [class]=\"centralizarColunas(col) && alignColunasHeader(col) == '' ? 'flex flex-row justify-content-center' : 'flex flex-row'\"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n />\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span>\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br>\r\n </th>\r\n }\r\n\r\n @if (config.actions?.length ?? 0 > 0) {\r\n <th [style.width]=\"5\"></th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ 'capitalize': tableCaptalized }\"\r\n >\r\n\r\n @for(col of columns; track $index){\r\n <td\r\n [style]=\"returnStyleRow(col, rowNode)\"\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"rowNode.level !== 0 ? rowNode.level*30 : null\"\r\n >\r\n\r\n <div class=\"flex flex-row {{col.boolean ? 'justify-content-center' : '' }}\">\r\n <div class=\"w-full-h-full flex align-items-center\" *ngIf=\"$index == 0\">\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\" />\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n />\r\n\r\n </div>\r\n\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div class=\"flex flex-row align-items-center justify-content-center\">\r\n\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{rowData[col.field] ? 'pi-check text-green-300' : ''}}\"\r\n style=\"font-size: 1.1rem;\"\r\n ></i>\r\n\r\n\r\n <div class=\"flex flex-column\" *ngIf=\"!col.boolean\">\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p\r\n *ngIf=\"col.subtitle\"\r\n class=\"m-0 text-xs font-semibold\"\r\n >{{rowData[col.subtitle]}}</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n\r\n </td>\r\n }\r\n\r\n <td style=\"border-left: none;\" *ngIf=\"config.actions?.length ?? 0 > 0 || config.actionsPai\">\r\n\r\n <div *ngIf=\"config.actions?.length ?? 0 > 0 && validateActionPosition(rowNode)\">\r\n <span\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 22px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n\r\n </div>\r\n\r\n @if(config.actionsPai?.length ?? 0 > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n\r\n @for (actionPai of config.actionsPai; track $index) {\r\n @if (getOrExecute(actionPai.visible, rowData) ?? true) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai.icon)\"\r\n [rounded]=\"true\"\r\n [severity]=\"actionPai.severity ?? 'secondary'\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n (onClick)=\"activeItem(rowData);actionPai.command($event);\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\">{{ actionPai.icon }}</span>\r\n }\r\n </p-button>\r\n }\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr >\r\n <td [attr.colspan]=\"config.columns.length + 1\" style=\"text-align: center; border-radius: 10px !important\">{{textoEmptyMessage}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-treetable table{border-spacing:0 3px}#botaoFiltro:hover{color:#d4d4d4}:host ::ng-deep .p-treetable .p-treetable-header{background-color:#eaeaea;padding:2px 0 0!important;border-radius:5px}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th{background-color:#eaeaea;padding:.5rem!important;margin-bottom:-5px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{padding:.5rem!important}:host ::ng-deep .p-treetable .p-treetable-thead{border-spacing:0 1px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:first-of-type{background-color:#eaeaea;padding:.5rem!important;border-top-left-radius:5px!important;border-bottom-left-radius:5px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:last-child{background-color:#eaeaea;padding:.5rem!important;border-radius:0 5px 5px 0!important;-webkit-border-radius:0 5px 5px 0!important;-moz-border-radius:0 5px 5px 0!important;-ms-border-radius:0 5px 5px 0!important;-o-border-radius:0 5px 5px 0!important}:host ::ng-deep .p-treetable-scrollable-header-box{padding:0!important}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th{background-color:#f2f2f2}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:first-of-type{border-radius:5px 0 0 5px}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:last-child{border-radius:0 5px 5px 0}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{border-bottom:1px solid #ddd!important;border-top:1px solid #ddd!important}:host ::ng-deep #tr-style{border-left:solid 4px #5289B4!important;border-radius:10px!important;display:block}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:first-of-type{border-left:solid 4px #5289B4!important;border-right:none!important;border-radius:10px 0 0 10px!important;-webkit-border-radius:10px 0 0 10px!important;-moz-border-radius:10px 0 0 10px!important;-ms-border-radius:10px 0 0 10px!important;-o-border-radius:10px 0 0 10px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:last-child{border-radius:0 10px 10px 0!important;border-right:1px solid #ddd!important;-webkit-border-radius:0 10px 10px 0!important;-moz-border-radius:0 10px 10px 0!important;-ms-border-radius:0 10px 10px 0!important;-o-border-radius:0 10px 10px 0!important}:host ::ng-deep .actionBtns,:host ::ng-deep .actionLoteBtns{border-radius:50%;box-shadow:#0000003d 0 3px 8px;width:2.5rem!important;height:2.5rem!important;display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-treetable table{border-collapse:separate!important;table-layout:auto!important}.icon-more-horiz:hover,.icon-more-horiz:focus{color:#5e5e5e;transform:scale(1.1);transition:color .3s,transform .3s}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i7.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i8.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i9.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "virtualRowHeight", "selectionKeys"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel", "selectionKeysChange"] }, { kind: "component", type: i9.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i9.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "directive", type: i9.TTResizableColumn, selector: "[ttResizableColumn]", inputs: ["ttResizableColumnDisabled"] }, { kind: "directive", type: i9.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: i9.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i9.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }] }); }
|
|
192
169
|
}
|
|
193
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableComponent, decorators: [{
|
|
194
171
|
type: Component,
|
|
195
|
-
args: [{ selector: 'kv-tree-table', template: "<div>\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{'min-width': '50rem'}\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [pageLinks]=\"pageLinks\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"showFirstLastIcon\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n currentPageReportTemplate=\"{first} - {last} de {{ totalRecords }}\"\r\n >\r\n\r\n <ng-template\r\n pTemplate=\"caption\"\r\n *ngIf=\"config.enableCation\"\r\n >\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12\">\r\n <div class=\"col-12 flex flex-column\">\r\n <div\r\n *ngIf=\"config.title\"\r\n class=\"text-md font-bold my-3\"\r\n >\r\n {{ config.title }}\r\n </div>\r\n <div\r\n *ngIf=\"config.subtitle\"\r\n class=\"text-sm mb-4 font-medium\"\r\n >\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 md:col-6 lg:col-4 justify-content-center {{tamanhoTela < 768 ? '' : 'input-search'}}\">\r\n <span\r\n *ngIf=\"config.enableFilter\"\r\n class=\"p-input-icon-left\"\r\n >\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"btns-options\">\r\n @for(action of config.actionsLote; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(action)\"\r\n [rounded]=\"true\"\r\n *ngIf=\"(selectedItems.length > 0 || action.showAcoesLote) && exibirCampo(action, this.action)\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n (onClick)=\"action?.command(commandEvent); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"retornarCampo(action, selectedItems, 'tooltip')\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [style.backgroundColor]=\"retornarCampo(action, selectedItems, 'btnColor')\"\r\n [disabled]=\"retornarCampo(action, selectedItems, 'disabled')\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n >\r\n @if(!action.icon.includes('pi-')){\r\n <span\r\n class=\"material-symbols-outlined md-22\"\r\n [style.color]=\"retornarCampo(action, selectedItems, 'iconBtnColor')\"\r\n >\r\n {{ retornarCampo(action, selectedItems, \"icon\") }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"header\"\r\n let-columns\r\n >\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox\r\n (click)=\"activeItemLote(selectedItems)\"></p-treeTableHeaderCheckbox>\r\n </div>\r\n\r\n <div\r\n [class]=\"centralizarColunas(col) && alignColunasHeader(col) == '' ? 'flex flex-row justify-content-center' : 'flex flex-row'\"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n ></p-sortIcon>\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span>\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"header\"\r\n let-columns\r\n >\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br>\r\n </th>\r\n }\r\n\r\n <th\r\n [style.width]=\"5\"\r\n *ngIf=\"config.actions?.length > 0\"\r\n ></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ 'capitalize': tableCaptalized }\"\r\n >\r\n\r\n @for(col of columns; track $index){\r\n <td\r\n [style]=\"returnStyleRow(col, rowNode)\"\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"rowNode.level !== 0 ? rowNode.level*30 : null\"\r\n >\r\n\r\n <div class=\"flex flex-row {{col.boolean ? 'justify-content-center' : '' }}\">\r\n <div\r\n class=\"w-full-h-full flex align-items-center\"\r\n *ngIf=\"$index == 0\"\r\n >\r\n <p-treeTableToggler\r\n class=\"hiddenVisible\"\r\n [rowNode]=\"rowNode\"\r\n ></p-treeTableToggler>\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n ></p-treeTableCheckbox>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div class=\"flex flex-row align-items-center justify-content-center\">\r\n\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{rowData[col.field] ? 'pi-check text-green-300' : ''}}\"\r\n style=\"font-size: 1.1rem;\"\r\n ></i>\r\n\r\n\r\n <div\r\n class=\"flex flex-column\"\r\n *ngIf=\"!col.boolean\"\r\n >\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p\r\n *ngIf=\"col.subtitle\"\r\n class=\"m-0 text-xs font-semibold\"\r\n >{{rowData[col.subtitle]}}</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n\r\n </td>\r\n }\r\n\r\n <td\r\n style=\"border-left: none;\"\r\n *ngIf=\"config.actions?.length > 0 || config.actionsPai\"\r\n >\r\n\r\n <div *ngIf=\"config.actions?.length > 0 && validateActionPosition(rowNode)\">\r\n\r\n\r\n @if(acoesLinhaTabela) {\r\n <div\r\n class=\"flex flex-row justify-content-center gap-1\"\r\n *ngIf=\"acoesLinhaTabela\"\r\n >\r\n\r\n @for(action of config.actions; track $index){\r\n <p-button\r\n [icon]=\"getIcon(action)\"\r\n [rounded]=\"true\"\r\n [severity]=\"action.severity ? action.severity : 'secondary'\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n (onClick)=\"action.command($event)\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n >\r\n @if(!action.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\">{{action.icon}}</span>\r\n }\r\n </p-button>\r\n }\r\n\r\n </div>\r\n } @else {\r\n\r\n <span\r\n *ngIf=\"!acoesLinhaTabela\"\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 22px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n }\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n\r\n </div>\r\n\r\n @if(config.actionsPai?.length > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n\r\n @for(actionPai of config.actionsPai; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai)\"\r\n [rounded]=\"true\"\r\n [severity]=\"actionPai.severity ? actionPai.severity : 'secondary'\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n (onClick)=\"activeItem(rowData);actionPai.command($event);\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\">{{actionPai.icon}}</span>\r\n }\r\n </p-button>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr >\r\n <td [attr.colspan]=\"config.columns.length + 1\" style=\"text-align: center; border-radius: 10px !important\">{{textoEmptyMessage}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-treetable table{border-spacing:0 3px}#botaoFiltro:hover{color:#d4d4d4}:host ::ng-deep .p-treetable .p-treetable-header{background-color:#eaeaea;padding:2px 0 0!important;border-radius:5px}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th{background-color:#eaeaea;padding:.5rem!important;margin-bottom:-5px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{padding:.5rem!important}:host ::ng-deep .p-treetable .p-treetable-thead{border-spacing:0 1px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:first-of-type{background-color:#eaeaea;padding:.5rem!important;border-top-left-radius:5px!important;border-bottom-left-radius:5px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:last-child{background-color:#eaeaea;padding:.5rem!important;border-radius:0 5px 5px 0!important;-webkit-border-radius:0 5px 5px 0!important;-moz-border-radius:0 5px 5px 0!important;-ms-border-radius:0 5px 5px 0!important;-o-border-radius:0 5px 5px 0!important}:host ::ng-deep .p-treetable-scrollable-header-box{padding:0!important}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th{background-color:#f2f2f2}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:first-of-type{border-radius:5px 0 0 5px}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:last-child{border-radius:0 5px 5px 0}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{border-bottom:1px solid #ddd!important;border-top:1px solid #ddd!important}:host ::ng-deep #tr-style{border-left:solid 4px #5289B4!important;border-radius:10px!important;display:block}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:first-of-type{border-left:solid 4px #5289B4!important;border-right:none!important;border-radius:10px 0 0 10px!important;-webkit-border-radius:10px 0 0 10px!important;-moz-border-radius:10px 0 0 10px!important;-ms-border-radius:10px 0 0 10px!important;-o-border-radius:10px 0 0 10px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:last-child{border-radius:0 10px 10px 0!important;border-right:1px solid #ddd!important;-webkit-border-radius:0 10px 10px 0!important;-moz-border-radius:0 10px 10px 0!important;-ms-border-radius:0 10px 10px 0!important;-o-border-radius:0 10px 10px 0!important}:host ::ng-deep .actionBtns,:host ::ng-deep .actionLoteBtns{border-radius:50%;box-shadow:#0000003d 0 3px 8px;width:2.5rem!important;height:2.5rem!important;display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-treetable table{border-collapse:separate!important;table-layout:auto!important}.icon-more-horiz:hover,.icon-more-horiz:focus{color:#5e5e5e;transform:scale(1.1);transition:color .3s,transform .3s}\n"] }]
|
|
172
|
+
args: [{ selector: 'kv-tree-table', template: "<div>\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{'min-width': '50rem'}\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [pageLinks]=\"pageLinks\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"showFirstLastIcon\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n currentPageReportTemplate=\"{first} - {last} de {{ totalRecords }}\"\r\n >\r\n\r\n <ng-template\r\n pTemplate=\"caption\"\r\n *ngIf=\"config.enableCation\"\r\n >\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12\">\r\n <div class=\"col-12 flex flex-column\">\r\n <div\r\n *ngIf=\"config.title\"\r\n class=\"text-md font-bold my-3\"\r\n >\r\n {{ config.title }}\r\n </div>\r\n <div\r\n *ngIf=\"config.subtitle\"\r\n class=\"text-sm mb-4 font-medium\"\r\n >\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 md:col-6 lg:col-4 justify-content-center {{tamanhoTela < 768 ? '' : 'input-search'}}\">\r\n <span\r\n *ngIf=\"config.enableFilter\"\r\n class=\"p-input-icon-left\"\r\n >\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"btns-options\">\r\n @for (action of config.actionsLote; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(action.icon)\"\r\n [rounded]=\"true\"\r\n *ngIf=\"(selectedItems.length > 0 || action.showAcoesLote) && exibirCampo(action, this.action)\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n [style.backgroundColor]='\"#1DA750\"'\r\n (onClick)=\"action?.command(); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"getOrExecute(action.tooltip, selectedItems)\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"getOrExecute(action.disabled, selectedItems)\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n >\r\n @if (!action.icon.includes('pi-')){\r\n <span class=\"material-symbols-outlined md-22\" style=\"color: white\">\r\n {{ getOrExecute(action.icon, selectedItems) }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox (click)=\"activeItemLote(selectedItems)\"/>\r\n </div>\r\n\r\n <div\r\n [class]=\"centralizarColunas(col) && alignColunasHeader(col) == '' ? 'flex flex-row justify-content-center' : 'flex flex-row'\"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n />\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span>\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br>\r\n </th>\r\n }\r\n\r\n @if (config.actions?.length ?? 0 > 0) {\r\n <th [style.width]=\"5\"></th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ 'capitalize': tableCaptalized }\"\r\n >\r\n\r\n @for(col of columns; track $index){\r\n <td\r\n [style]=\"returnStyleRow(col, rowNode)\"\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"rowNode.level !== 0 ? rowNode.level*30 : null\"\r\n >\r\n\r\n <div class=\"flex flex-row {{col.boolean ? 'justify-content-center' : '' }}\">\r\n <div class=\"w-full-h-full flex align-items-center\" *ngIf=\"$index == 0\">\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\" />\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n />\r\n\r\n </div>\r\n\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div class=\"flex flex-row align-items-center justify-content-center\">\r\n\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{rowData[col.field] ? 'pi-check text-green-300' : ''}}\"\r\n style=\"font-size: 1.1rem;\"\r\n ></i>\r\n\r\n\r\n <div class=\"flex flex-column\" *ngIf=\"!col.boolean\">\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p\r\n *ngIf=\"col.subtitle\"\r\n class=\"m-0 text-xs font-semibold\"\r\n >{{rowData[col.subtitle]}}</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n\r\n </td>\r\n }\r\n\r\n <td style=\"border-left: none;\" *ngIf=\"config.actions?.length ?? 0 > 0 || config.actionsPai\">\r\n\r\n <div *ngIf=\"config.actions?.length ?? 0 > 0 && validateActionPosition(rowNode)\">\r\n <span\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 22px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n\r\n </div>\r\n\r\n @if(config.actionsPai?.length ?? 0 > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n\r\n @for (actionPai of config.actionsPai; track $index) {\r\n @if (getOrExecute(actionPai.visible, rowData) ?? true) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai.icon)\"\r\n [rounded]=\"true\"\r\n [severity]=\"actionPai.severity ?? 'secondary'\"\r\n [style]=\"{width: '2rem', height: '2rem'}\"\r\n (onClick)=\"activeItem(rowData);actionPai.command($event);\"\r\n styleClass=\"p-0 flex justify-content-center\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\">{{ actionPai.icon }}</span>\r\n }\r\n </p-button>\r\n }\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr >\r\n <td [attr.colspan]=\"config.columns.length + 1\" style=\"text-align: center; border-radius: 10px !important\">{{textoEmptyMessage}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-treetable table{border-spacing:0 3px}#botaoFiltro:hover{color:#d4d4d4}:host ::ng-deep .p-treetable .p-treetable-header{background-color:#eaeaea;padding:2px 0 0!important;border-radius:5px}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th{background-color:#eaeaea;padding:.5rem!important;margin-bottom:-5px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{padding:.5rem!important}:host ::ng-deep .p-treetable .p-treetable-thead{border-spacing:0 1px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:first-of-type{background-color:#eaeaea;padding:.5rem!important;border-top-left-radius:5px!important;border-bottom-left-radius:5px!important}:host ::ng-deep .p-treetable .p-treetable-thead>tr>th:last-child{background-color:#eaeaea;padding:.5rem!important;border-radius:0 5px 5px 0!important;-webkit-border-radius:0 5px 5px 0!important;-moz-border-radius:0 5px 5px 0!important;-ms-border-radius:0 5px 5px 0!important;-o-border-radius:0 5px 5px 0!important}:host ::ng-deep .p-treetable-scrollable-header-box{padding:0!important}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th{background-color:#f2f2f2}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:first-of-type{border-radius:5px 0 0 5px}:host ::ng-deep .p-treetable.p-treetable-sm .p-treetable-thead>tr>th:last-child{border-radius:0 5px 5px 0}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td{border-bottom:1px solid #ddd!important;border-top:1px solid #ddd!important}:host ::ng-deep #tr-style{border-left:solid 4px #5289B4!important;border-radius:10px!important;display:block}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:first-of-type{border-left:solid 4px #5289B4!important;border-right:none!important;border-radius:10px 0 0 10px!important;-webkit-border-radius:10px 0 0 10px!important;-moz-border-radius:10px 0 0 10px!important;-ms-border-radius:10px 0 0 10px!important;-o-border-radius:10px 0 0 10px!important}:host ::ng-deep .p-treetable .p-treetable-tbody>tr>td:last-child{border-radius:0 10px 10px 0!important;border-right:1px solid #ddd!important;-webkit-border-radius:0 10px 10px 0!important;-moz-border-radius:0 10px 10px 0!important;-ms-border-radius:0 10px 10px 0!important;-o-border-radius:0 10px 10px 0!important}:host ::ng-deep .actionBtns,:host ::ng-deep .actionLoteBtns{border-radius:50%;box-shadow:#0000003d 0 3px 8px;width:2.5rem!important;height:2.5rem!important;display:flex;align-items:center;justify-content:center}:host ::ng-deep .p-treetable table{border-collapse:separate!important;table-layout:auto!important}.icon-more-horiz:hover,.icon-more-horiz:focus{color:#5e5e5e;transform:scale(1.1);transition:color .3s,transform .3s}\n"] }]
|
|
196
173
|
}], propDecorators: { config: [{
|
|
197
174
|
type: Input
|
|
198
175
|
}], dataSource: [{
|
|
199
176
|
type: Input
|
|
200
177
|
}], gridLines: [{
|
|
201
178
|
type: Input
|
|
202
|
-
}], acoesLinhaTabela: [{
|
|
203
|
-
type: Input
|
|
204
179
|
}], tableCaptalized: [{
|
|
205
180
|
type: Input
|
|
206
181
|
}], selectedItems: [{
|
|
@@ -237,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
237
212
|
type: HostListener,
|
|
238
213
|
args: ['window:resize', ['$event']]
|
|
239
214
|
}] } });
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdHJlZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10cmVlLXRhYmxlL2t2LXRyZWUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdHJlZS10YWJsZS9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFPckYsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU9FLGNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBTXBCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsU0FBSSxHQUFHLEVBQUUsQ0FBQTtRQUNULGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUE7UUFFekIsc0JBQWlCLEdBQVcsNEJBQTRCLENBQUM7UUFFeEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFB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Q0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQVc7UUFDakIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDOzhHQXhOVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix5c0JBNkJkLGlCQUFpQiw2QkNwRHBDLDBqY0FtVUE7OzJGRDVTYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZTs4QkFVaEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBTTZCLFNBQVM7c0JBQTVDLGVBQWU7dUJBQUMsaUJBQWlCO2dCQUNkLFVBQVU7c0JBQTdCLEtBQUs7dUJBQUMsV0FBVztnQkFHbEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtQ29tbWFuZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUcmVlVGFibGUgfSBmcm9tICdwcmltZW5nL3RyZWV0YWJsZSc7XHJcblxyXG5pbXBvcnQgeyBLdk1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUva3YtbWVudWl0ZW0nO1xyXG5pbXBvcnQgeyBUYWJsZVBhZ2luYXRlIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvdGFibGUucGFnaW5hdGUnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2FwaS9kaXJlY3RpdmVzL3RlbXBsYXRlL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXRyZWUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2VHJlZXRhYmxlQ29tcG9uZW50IHtcclxuXHJcbiAgbWVudUl0ZW1zOiBLdk1lbnVJdGVtW10gPSBbXTtcclxuICB0YW1hbmhvVGVsYSE6IG51bWJlcjtcclxuICBjb21tYW5kRXZlbnQhOiBNZW51SXRlbUNvbW1hbmRFdmVudDtcclxuXHJcbiAgQElucHV0KCkgY29uZmlnITogYW55O1xyXG4gIEBJbnB1dCgpIGRhdGFTb3VyY2UhOiBhbnk7XHJcbiAgQElucHV0KCkgZ3JpZExpbmVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWNvZXNMaW5oYVRhYmVsYTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhYmxlQ2FwdGFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRvciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMFxyXG4gIEBJbnB1dCgpIHBhZ2VMaW5rcyA9IDJcclxuICBASW5wdXQoKSBzaG93Rmlyc3RMYXN0SWNvbiA9IGZhbHNlXHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHRleHRvRW1wdHlNZXNzYWdlOiBzdHJpbmcgPSAnTmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG8nO1xyXG5cclxuICBAT3V0cHV0KCkgb25GaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblBhZ2luYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3RpdmVJdGVtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3RpdmVJdGVtTG90ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRvdWJsZUNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudGFtYW5ob1RlbGEgPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxhbnk+O1xyXG4gIEBJbnB1dCgndGVtcGxhdGVzJykgX3RlbXBsYXRlcyE6IGFueTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLnRhbWFuaG9UZWxhID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlSXRlbShyb3dEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMub25BY3RpdmVJdGVtLmVtaXQocm93RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlSXRlbUxvdGUocm93RGF0YTogYW55KSB7XHJcbiAgICB0aGlzLm9uQWN0aXZlSXRlbUxvdGUuZW1pdChyb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkdsb2JhbEZpbHRlcih0YWJsZTogVHJlZVRhYmxlLCBldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcclxuICAgIHRhYmxlLmZpbHRlckdsb2JhbCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlLCAnY29udGFpbnMnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdpbmF0ZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICBsZXQgcGFnaW5hSW5pY2lhbCA9XHJcbiAgICAgICAgKCRldmVudD8uZmlyc3QgPiAwID8gJGV2ZW50LmZpcnN0IC8gJGV2ZW50LnJvd3MgOiAkZXZlbnQuZmlyc3QpICsgMTtcclxuICAgICAgbGV0IHRlcm1vUGVzcXVpc2EgPSAnJztcclxuICAgICAgbGV0IG9yZGVuYWNhbyA9ICcnO1xyXG5cclxuICAgICAgaWYgKCRldmVudC5nbG9iYWxGaWx0ZXIpIHRlcm1vUGVzcXVpc2EgPSAkZXZlbnQuZ2xvYmFsRmlsdGVyO1xyXG5cclxuICAgICAgaWYgKCRldmVudC5zb3J0RmllbGQpXHJcbiAgICAgICAgb3JkZW5hY2FvID0gYCR7JGV2ZW50LnNvcnRGaWVsZH0gJHskZXZlbnQuc29ydE9yZGVyID09PSAxID8gJ0FTQycgOiAnREVTQydcclxuICAgICAgICAgIH1gO1xyXG5cclxuICAgICAgY29uc3Qgb2JqZXRvOiBUYWJsZVBhZ2luYXRlID0ge1xyXG4gICAgICAgIHBhZ2luYUluaWNpYWw6IHBhZ2luYUluaWNpYWwsXHJcbiAgICAgICAgdGFtYW5ob1BhZ2luYTogJGV2ZW50LnJvd3MsXHJcbiAgICAgICAgdGVybW9QZXNxdWlzYTogdGVybW9QZXNxdWlzYSxcclxuICAgICAgICBvcmRlbmFjYW86IG9yZGVuYWNhbyxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMub25QYWdpbmF0ZS5lbWl0KG9iamV0byk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm5TdHlsZVJvdyhjb2w6IGFueSwgcm93Tm9kZTogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGlzRmlyc3RDb2x1bW4gPSBjb2wuZmllbGQgPT09IHRoaXMuY29uZmlnLmNvbHVtbnNbMF0uZmllbGQ7XHJcbiAgICBjb25zdCBiYXNlT3BhY2l0eSA9IDE7XHJcbiAgICBjb25zdCBtYXhMZXZlbHMgPSA0O1xyXG5cclxuICAgIGlmIChpc0ZpcnN0Q29sdW1uICYmIHJvd05vZGUubGV2ZWwgPj0gMCkge1xyXG4gICAgICBjb25zdCBvcGFjaXR5ID0gYmFzZU9wYWNpdHkgLSAocm93Tm9kZS5sZXZlbCAvIG1heExldmVscyk7XHJcblxyXG4gICAgICByZXR1cm4gYGJvcmRlci1sZWZ0OiBzb2xpZCA0cHggcmdiYSg1OSwgMTEwLCAxNTgsICR7b3BhY2l0eX0pICFpbXBvcnRhbnQ7YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocm93Tm9kZS5sZXZlbCA9PSAwKVxyXG4gICAgICByZXR1cm4gJ2JvcmRlci1sZWZ0OiBub25lICFpbXBvcnRhbnQ7IGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50J1xyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGFsaWduQ29sdW5hc0hlYWRlcihjb2w6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoY29sLmFsaWduKSB7XHJcbiAgICAgIGlmIChjb2wuYWxpZ24gPT0gJ3JpZ2h0JykgcmV0dXJuICdqdXN0aWZ5LWNvbnRlbnQ6IGVuZCc7XHJcbiAgICAgIGVsc2UgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcbiAgY2VudHJhbGl6YXJDb2x1bmFzKGNvbDogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChjb2wuY2VudHJhbGl6ZSkge1xyXG4gICAgICByZXR1cm4gJ3RleHQtYWxpZ246IGNlbnRlcjsgJztcclxuICAgIH0gZWxzZSByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIGFsaWduQ29sdW5hcyhjb2w6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoY29sLmFsaWduKSB7XHJcbiAgICAgIHJldHVybiBgdGV4dC1hbGlnbjogJHtjb2wuYWxpZ259YDtcclxuICAgIH0gZWxzZSByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBjcmlhck1lbnVzTW9kYWwoZGF0YTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jb25maWcuYWN0aW9ucyAmJiBkYXRhKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5jb25maWcuYWN0aW9ucy5tYXAoKGFjdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMucmV0b3JuYXJDYW1wbyhhY3Rpb24sIGRhdGEsICdpY29uJyk7XHJcbiAgICAgICAgY29uc3QgdG9vbHRpcCA9IHRoaXMucmV0b3JuYXJDYW1wbyhhY3Rpb24sIGRhdGEsICd0b29sdGlwJyk7XHJcbiAgICAgICAgY29uc3QgdG9vbHRpcFBvc2l0aW9uID0gdGhpcy5yZXRvcm5hckNhbXBvKFxyXG4gICAgICAgICAgYWN0aW9uLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICd0b29sdGlwUG9zaXRpb24nXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMucmV0b3JuYXJDYW1wbyhhY3Rpb24sIGRhdGEsICdsYWJlbCcpO1xyXG4gICAgICAgIGNvbnN0IGNvbW1hbmQ6IGFueSA9IHRoaXMucmV0b3JuYXJDYW1wbyhhY3Rpb24sIGRhdGEsICdjb21tYW5kJyk7XHJcbiAgICAgICAgY29uc3QgdmlzaWJsZTogYm9vbGVhbiA9IGFjdGlvbi52aXNpYmxlID8gYWN0aW9uLnZpc2libGUoZGF0YSkgOiB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGRpc2FibGVkOiBib29sZWFuID0gYWN0aW9uLmRpc2FibGVkXHJcbiAgICAgICAgICA/IGFjdGlvbi5kaXNhYmxlZChkYXRhKVxyXG4gICAgICAgICAgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgbWVudUluc2VydDogS3ZNZW51SXRlbSA9IHtcclxuICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgaWNvbixcclxuICAgICAgICAgIHRvb2x0aXAsXHJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb24sXHJcbiAgICAgICAgICBjb21tYW5kLFxyXG4gICAgICAgICAgZGlzYWJsZWQsXHJcbiAgICAgICAgICB2aXNpYmxlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5tZW51SXRlbXMuZmlsdGVyKFxyXG4gICAgICAgICAgKHgpID0+IHguY29tbWFuZCA9PSBtZW51SW5zZXJ0LmNvbW1hbmRcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS5sZW5ndGggPT0gMCkgdGhpcy5tZW51SXRlbXMucHVzaChtZW51SW5zZXJ0KTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChtZW51SW5zZXJ0LmxhYmVsICE9IGl0ZW1bMF0ubGFiZWwpIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5tZW51SXRlbXMuaW5kZXhPZihpdGVtWzBdKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWVudUluc2VydC52aXNpYmxlICE9IGl0ZW1bMF0udmlzaWJsZSkge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLm1lbnVJdGVtcy5pbmRleE9mKGl0ZW1bMF0pO1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChtZW51SW5zZXJ0LmRpc2FibGVkICE9IGl0ZW1bMF0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5tZW51SXRlbXMuaW5kZXhPZihpdGVtWzBdKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0b3JuYXJDYW1wbyhhY3Rpb246IEt2TWVudUl0ZW0sIHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBfZnVuY3Rpb24gPSBhY3Rpb24uZHluYW1pY2ZpZWxkc1xyXG4gICAgICA/IChhY3Rpb24uZHluYW1pY2ZpZWxkc1tmaWVsZF0gYXMgRnVuY3Rpb24pXHJcbiAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IF9maWVsZDogc3RyaW5nID0gX2Z1bmN0aW9uXHJcbiAgICAgID8gX2Z1bmN0aW9uLmFwcGx5KGFjdGlvbiwgW3Jvd0RhdGFdKVxyXG4gICAgICA6IGFjdGlvbltmaWVsZF07XHJcbiAgICByZXR1cm4gX2ZpZWxkO1xyXG4gIH1cclxuXHJcbiAgZXhpYmlyQ2FtcG8oZmllbGQ6IGFueSwgcm93RGF0YTogYW55KSB7XHJcbiAgICBsZXQgdmlzaWJsZSA9IGZpZWxkLnZpc2libGUgPyBmaWVsZC52aXNpYmxlKHJvd0RhdGEpIDogdHJ1ZTtcclxuICAgIHJldHVybiB2aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVBY3Rpb25Qb3NpdGlvbihyb3dOb2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5hY3Rpb25zUGFpICYmIHJvd05vZGUubGV2ZWwgPT0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZWxzZSByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuXHJcblxyXG4gIGRvdWJsZUNsaWNrKGU6IGFueSwgcm93RGF0YTogYW55KSB7XHJcblxyXG4gICAgbGV0IGV2ZW50RG91YmxlQ2xpY2sgPSB7IGV2ZW50OiBlLCByb3dEYXRhOiByb3dEYXRhIH07XHJcblxyXG4gICAgbGV0IGFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZS50YXJnZXQuY2xhc3NMaXN0LmZvckVhY2goKHg6IGFueSkgPT4gYXJyYXkucHVzaCh4KSk7XHJcblxyXG4gICAgLy8gaWYgKGFycmF5LmZpbmQoKHg6IGFueSkgPT4geCA9PSAnbmctc3Rhci1pbnNlcnRlZCcpICE9IHVuZGVmaW5lZClcclxuICAgIHRoaXMuZG91YmxlQ2xpY2tFdmVudC5lbWl0KGV2ZW50RG91YmxlQ2xpY2spO1xyXG4gIH1cclxuXHJcbiAgaXNEaXNhYmxlZENoZWNrYm94KHJvd0RhdGE6IGFueSwgcm93Tm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGlzYWJsZUNvbnRyb2xDaGVja2JveEZ1bmN0aW9uXHJcbiAgICAgID8gdGhpcy5jb25maWcuZGlzYWJsZUNvbnRyb2xDaGVja2JveEZ1bmN0aW9uKHJvd0RhdGEsIHJvd05vZGUpXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRDdXN0b21UZW1wbGF0ZSh0ZW1wbGF0ZW5hbWU6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlc1t0ZW1wbGF0ZW5hbWVdO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVTaG93VGVtcGxhdGUocm93Tm9kZTogYW55LCBjb2w6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGNvbC50ZW1wbGF0ZU9ubHkpIHtcclxuICAgICAgaWYgKGNvbC50ZW1wbGF0ZU9ubHkgPT09ICdwYWknKSB7XHJcbiAgICAgICAgcmV0dXJuIHJvd05vZGUubGV2ZWwgPT09IDA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbC50ZW1wbGF0ZU9ubHkgPT09ICdmaWxobycpIHtcclxuICAgICAgICByZXR1cm4gcm93Tm9kZS5sZXZlbCA9PT0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRJY29uKGFjdGlvbjogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBhY3Rpb24uaWNvbi5pbmNsdWRlcygncGktJykgPyBgcGkgJHthY3Rpb24uaWNvbn1gIDogJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgICA8cC10cmVlVGFibGVcclxuICAgICAgICAjdHRcclxuICAgICAgICBbdmFsdWVdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIlxyXG4gICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIlxyXG4gICAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzUwcmVtJ31cIlxyXG4gICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIlxyXG4gICAgICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICAgICAgICBbcm93c109XCJyb3dzXCJcclxuICAgICAgICBbcGFnZUxpbmtzXT1cInBhZ2VMaW5rc1wiXHJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgNTBdXCJcclxuICAgICAgICBbc2hvd0ZpcnN0TGFzdEljb25dPVwic2hvd0ZpcnN0TGFzdEljb25cIlxyXG4gICAgICAgIFtzdHlsZUNsYXNzXT1cImdyaWRMaW5lcyA/ICdwLXRyZWV0YWJsZS1ncmlkbGluZXMnIDogJydcIlxyXG4gICAgICAgIFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICBbbGF6eV09XCJjb25maWcubGF6eVwiXHJcbiAgICAgICAgKG9uTGF6eUxvYWQpPVwicGFnaW5hdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIntmaXJzdH0gLSB7bGFzdH0gZGUge3sgdG90YWxSZWNvcmRzIH19XCJcclxuICAgID5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIHBUZW1wbGF0ZT1cImNhcHRpb25cIlxyXG4gICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVDYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ3JpZCBmb3JtZ3JpZCBwLWZsdWlkIGNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1tZCBmb250LWJvbGQgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb25maWcudGl0bGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnN1YnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIG1iLTQgZm9udC1tZWRpdW1cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29uZmlnLnN1YnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBjb2wtMTAgbWQ6Y29sLTYgbGc6Y29sLTQganVzdGlmeS1jb250ZW50LWNlbnRlciB7e3RhbWFuaG9UZWxhIDwgNzY4ID8gJycgOiAnaW5wdXQtc2VhcmNoJ319XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuZW5hYmxlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWlucHV0LWljb24tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXNlYXJjaFwiPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcEF1dG9Gb2N1c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbkdsb2JhbEZpbHRlcih0dCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBlc3F1aXNhci4uLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImgtMnJlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbC0xIGp1c3RpZnktY29udGVudC1lbmQgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bnMtb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yKGFjdGlvbiBvZiBjb25maWcuYWN0aW9uc0xvdGU7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImdldEljb24oYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCB8fCBhY3Rpb24uc2hvd0Fjb2VzTG90ZSkgJiYgZXhpYmlyQ2FtcG8oYWN0aW9uLCB0aGlzLmFjdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtMCBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uPy5jb21tYW5kKGNvbW1hbmRFdmVudCk7IGFjdGl2ZUl0ZW1Mb3RlKHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJyZXRvcm5hckNhbXBvKGFjdGlvbiwgc2VsZWN0ZWRJdGVtcywgJ3Rvb2x0aXAnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwicmV0b3JuYXJDYW1wbyhhY3Rpb24sIHNlbGVjdGVkSXRlbXMsICdidG5Db2xvcicpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZXRvcm5hckNhbXBvKGFjdGlvbiwgc2VsZWN0ZWRJdGVtcywgJ2Rpc2FibGVkJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cInt3aWR0aDogJzJyZW0nLCBoZWlnaHQ6ICcycmVtJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoIWFjdGlvbi5pY29uLmluY2x1ZGVzKCdwaS0nKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtZC0yMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInJldG9ybmFyQ2FtcG8oYWN0aW9uLCBzZWxlY3RlZEl0ZW1zLCAnaWNvbkJ0bkNvbG9yJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJldG9ybmFyQ2FtcG8oYWN0aW9uLCBzZWxlY3RlZEl0ZW1zLCBcImljb25cIikgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBwVGVtcGxhdGU9XCJoZWFkZXJcIlxyXG4gICAgICAgICAgICBsZXQtY29sdW1uc1xyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgQGZvcihjb2wgb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KXtcclxuICAgICAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgICAgICAgIFt0dFNvcnRhYmxlQ29sdW1uXT1cImNvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3R0U29ydGFibGVDb2x1bW5EaXNhYmxlZF09XCJjb2wuc29ydGFibGUgPT09IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtc21cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2wud2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyBmbGV4OiAkaW5kZXggPT0gMCwgJ2dhcC0zJzogJGluZGV4ID09IDAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiRpbmRleCA9PSAwICYmIGNvbmZpZy5lbmFibGVTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC10cmVlVGFibGVIZWFkZXJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZlSXRlbUxvdGUoc2VsZWN0ZWRJdGVtcylcIj48L3AtdHJlZVRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNlbnRyYWxpemFyQ29sdW5hcyhjb2wpICYmIGFsaWduQ29sdW5hc0hlYWRlcihjb2wpID09ICcnID8gJ2ZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnZmxleCBmbGV4LXJvdydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJhbGlnbkNvbHVuYXNIZWFkZXIoY29sKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29sLmhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zb3J0SWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5zb3J0YWJsZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZF09XCJjb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMTBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcC1zb3J0SWNvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2wuaGVhZGVyVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJjb2wuaGVhZGVyVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPmluZm88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBwVGVtcGxhdGU9XCJoZWFkZXJcIlxyXG4gICAgICAgICAgICBsZXQtY29sdW1uc1xyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoY29sIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICAgICAgICAgdHRSZXNpemFibGVDb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sLndpZHRoXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29sLmNlbnRyYWxpemUgPyAndGV4dC1hbGlnbjogY2VudGVyOycgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY29sLmhlYWRlciB9fSA8YnI+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCI1XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5hY3Rpb25zPy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAgID48L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIHBUZW1wbGF0ZT1cImJvZHlcIlxyXG4gICAgICAgICAgICBsZXQtcm93Tm9kZVxyXG4gICAgICAgICAgICBsZXQtcm93RGF0YT1cInJvd0RhdGFcIlxyXG4gICAgICAgICAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICBbdHRSb3ddPVwicm93Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZGJsY2xpY2spPVwiZG91YmxlQ2xpY2soJGV2ZW50LCByb3dEYXRhKVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjYXBpdGFsaXplJzogdGFibGVDYXB0YWxpemVkIH1cIlxyXG4gICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICAgICAgQGZvcihjb2wgb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KXtcclxuICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJyZXR1cm5TdHlsZVJvdyhjb2wsIHJvd05vZGUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUucG9zaXRpb25dPVwicm93Tm9kZS5sZXZlbCAhPT0gMCA/ICdzdGlja3knIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwicm93Tm9kZS5sZXZlbCAhPT0gMCA/IHJvd05vZGUubGV2ZWwqMzAgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgIHt7Y29sLmJvb2xlYW4gPyAnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnJyB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbC1oLWZ1bGwgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIkaW5kZXggPT0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZVRvZ2dsZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhpZGRlblZpc2libGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dOb2RlXT1cInJvd05vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcC10cmVlVGFibGVUb2dnbGVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZUNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRDaGVja2JveChyb3dEYXRhLCByb3dOb2RlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2ZUl0ZW1Mb3RlKHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicm93Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuZW5hYmxlU2VsZWN0ID09IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcC10cmVlVGFibGVDaGVja2JveD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2wuYm9vbGVhblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGkge3tyb3dEYXRhW2NvbC5maWVsZF0gPyAncGktY2hlY2sgdGV4dC1ncmVlbi0zMDAnIDogJyd9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAxLjFyZW07XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2wuYm9vbGVhblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tMFwiPnt7IHJvd0RhdGFbY29sLmZpZWxkXSB9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5zdWJ0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tMCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3tyb3dEYXRhW2NvbC5zdWJ0aXRsZV19fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2wudGVtcGxhdGUgJiYgdmFsaWRhdGVTaG93VGVtcGxhdGUocm93Tm9kZSwgY29sKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEN1c3RvbVRlbXBsYXRlKGNvbC50ZW1wbGF0ZS5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJnZXRDdXN0b21UZW1wbGF0ZShjb2wudGVtcGxhdGUubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3dEYXRhIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiYm9yZGVyLWxlZnQ6IG5vbmU7XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5hY3Rpb25zPy5sZW5ndGggPiAwIHx8IGNvbmZpZy5hY3Rpb25zUGFpXCJcclxuICAgICAgICAgICAgICAgID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy5hY3Rpb25zPy5sZW5ndGggPiAwICYmIHZhbGlkYXRlQWN0aW9uUG9zaXRpb24ocm93Tm9kZSlcIj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoYWNvZXNMaW5oYVRhYmVsYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjb2VzTGluaGFUYWJlbGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvcihhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnM7IHRyYWNrICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJnZXRJY29uKGFjdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXZlcml0eV09XCJhY3Rpb24uc2V2ZXJpdHkgPyBhY3Rpb24uc2V2ZXJpdHkgOiAnc2Vjb25kYXJ5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cInt3aWR0aDogJzJyZW0nLCBoZWlnaHQ6ICcycmVtJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFjdGlvbi5jb21tYW5kKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLTAgZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoIWFjdGlvbi5pY29uLmluY2x1ZGVzKCdwaS0nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgdGV4dC14bFwiPnt7YWN0aW9uLmljb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWFjb2VzTGluaGFUYWJlbGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGN1cnNvci1wb2ludGVyIGljb24tbW9yZS1ob3JpelwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMjJweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KTsgYWN0aXZlSXRlbShyb3dEYXRhKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmVfaG9yaXpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yKGFjdGlvbiBvZiBjb25maWcuYWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNyaWFyTWVudXNNb2RhbChyb3dEYXRhKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1tZW51XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbWVudVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cIm1lbnVJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLW1lbnU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaWYoY29uZmlnLmFjdGlvbnNQYWk/Lmxlbmd0aCA+IDAgJiYgcm93Tm9kZS5sZXZlbCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yKGFjdGlvblBhaSBvZiBjb25maWcuYWN0aW9uc1BhaTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiZ2V0SWNvbihhY3Rpb25QYWkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NldmVyaXR5XT1cImFjdGlvblBhaS5zZXZlcml0eSA/IGFjdGlvblBhaS5zZXZlcml0eSA6ICdzZWNvbmRhcnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7d2lkdGg6ICcycmVtJywgaGVpZ2h0OiAnMnJlbSd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFjdGl2ZUl0ZW0ocm93RGF0YSk7YWN0aW9uUGFpLmNvbW1hbmQoJGV2ZW50KTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtMCBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoIWFjdGlvblBhaS5pY29uLmluY2x1ZGVzKCdwaS0nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyB0ZXh0LXhsXCI+e3thY3Rpb25QYWkuaWNvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuICAgICAgICAgIDx0ciA+XHJcbiAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29uZmlnLmNvbHVtbnMubGVuZ3RoICsgMVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnRcIj57e3RleHRvRW1wdHlNZXNzYWdlfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC10cmVlVGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdHJlZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10cmVlLXRhYmxlL2t2LXRyZWUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdHJlZS10YWJsZS9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQWEsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWhHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7OztBQVFyRixNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBT0UsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUtsQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsU0FBSSxHQUFHLEVBQUUsQ0FBQTtRQUNULGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixzQkFBaUIsR0FBRyxLQUFLLENBQUE7UUFFekIsc0JBQWlCLEdBQVcsNEJBQTRCLENBQUM7UUFFeEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pELHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBc0twRTtJQXBLQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3ZDLENBQUM7SUFNRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBWTtRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sY0FBYyxDQUFDLE9BQVk7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUFJLE1BQW9CLEVBQUUsSUFBUztRQUM3QyxPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFnQixFQUFFLEtBQVk7UUFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsS0FBSyxDQUFDLFlBQVksQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUFXO1FBQ3pCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLGFBQWEsR0FDZixDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEUsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUVuQixJQUFJLE1BQU0sQ0FBQyxZQUFZO2dCQUFFLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBRTdELElBQUksTUFBTSxDQUFDLFNBQVM7Z0JBQ2xCLFNBQVMsR0FBRyxHQUFJLE1BQU0sQ0FBQyxTQUFVLElBQUssTUFBTSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFDckUsRUFBRSxDQUFDO1lBRVAsTUFBTSxNQUFNLEdBQWtCO2dCQUM1QixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUMxQixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsU0FBUyxFQUFFLFNBQVM7YUFDckIsQ0FBQztZQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVEsRUFBRSxPQUFZO1FBQ25DLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFFcEIsSUFBSSxhQUFhLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLE9BQU8sR0FBRyxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBRTFELE9BQU8sNkNBQThDLE9BQVEsZUFBZSxDQUFDO1FBQy9FLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQztZQUNwQixPQUFPLDZEQUE2RCxDQUFBO1FBRXRFLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVE7UUFDekIsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksT0FBTztnQkFBRSxPQUFPLHNCQUFzQixDQUFDOztnQkFDbkQsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQzs7WUFBTSxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsR0FBUTtRQUN6QixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQixPQUFPLHNCQUFzQixDQUFDO1FBQ2hDLENBQUM7O1lBQU0sT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELFlBQVksQ0FBQyxHQUFRO1FBQ25CLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsT0FBTyxlQUFnQixHQUFHLENBQUMsS0FBTSxFQUFFLENBQUM7UUFDdEMsQ0FBQzs7WUFBTSxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRS9DLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUM5QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FDckMsQ0FBQztnQkFFRixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztvQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDakQsQ0FBQztvQkFDSixJQUFJLFVBQVUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUN0QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNsQyxDQUFDO29CQUVELElBQUksVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQzFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2xDLENBQUM7b0JBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDNUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDbEMsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUFZO1FBQ2xDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBWTtRQUNqQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDOztZQUMxRCxPQUFPLElBQUksQ0FBQTtJQUNsQixDQUFDO0lBR0QsV0FBVyxDQUFDLENBQU0sRUFBRSxPQUFZO1FBRTlCLElBQUksZ0JBQWdCLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV0RCxJQUFJLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBWSxFQUFFLE9BQVk7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLDhCQUE4QjtZQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO1lBQzlELENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO0lBRUQsaUJBQWlCLENBQUMsWUFBb0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFZLEVBQUUsR0FBUTtRQUN6QyxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQixJQUFJLEdBQUcsQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELElBQUksR0FBRyxDQUFDLFlBQVksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTyxJQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7OEdBMUxVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG1xQkEyQmQsaUJBQWlCLDZCQ25EcEMseW1ZQWtSQTs7MkZEMVBhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxlQUFlOzhCQVNoQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQU02QixTQUFTO3NCQUE1QyxlQUFlO3VCQUFDLGlCQUFpQjtnQkFDZCxVQUFVO3NCQUE3QixLQUFLO3VCQUFDLFdBQVc7Z0JBR2xCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVHJlZVRhYmxlIH0gZnJvbSAncHJpbWVuZy90cmVldGFibGUnO1xyXG5cclxuaW1wb3J0IHsgVmFsdWVPckZuLCBnZXRPckV4ZWN1dGUsIG1hcFRvTWVudUl0ZW0gfSBmcm9tICcuLi8uLi9hcGkvY29tcG9uZW50cy90YWJsZS9rdi1tZW51aXRlbSc7XHJcbmltcG9ydCB7IFRhYmxlUGFnaW5hdGUgfSBmcm9tICcuLi8uLi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5wYWdpbmF0ZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vYXBpL2RpcmVjdGl2ZXMvdGVtcGxhdGUvdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVHJlZVRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdHJlZS10YWJsZS90cmVlLXRhYmxlLmNvbmZpZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXRyZWUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2VHJlZXRhYmxlQ29tcG9uZW50IHtcclxuXHJcbiAgbWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcbiAgdGFtYW5ob1RlbGEhOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IFRyZWVUYWJsZUNvbmZpZztcclxuICBASW5wdXQoKSBkYXRhU291cmNlITogYW55O1xyXG4gIEBJbnB1dCgpIGdyaWRMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhYmxlQ2FwdGFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRvciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMFxyXG4gIEBJbnB1dCgpIHBhZ2VMaW5rcyA9IDJcclxuICBASW5wdXQoKSBzaG93Rmlyc3RMYXN0SWNvbiA9IGZhbHNlXHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHRleHRvRW1wdHlNZXNzYWdlOiBzdHJpbmcgPSAnTmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG8nO1xyXG5cclxuICBAT3V0cHV0KCkgb25GaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblBhZ2luYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3RpdmVJdGVtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3RpdmVJdGVtTG90ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRvdWJsZUNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudGFtYW5ob1RlbGEgPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxhbnk+O1xyXG4gIEBJbnB1dCgndGVtcGxhdGVzJykgX3RlbXBsYXRlcyE6IGFueTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLnRhbWFuaG9UZWxhID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlSXRlbShyb3dEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMub25BY3RpdmVJdGVtLmVtaXQocm93RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlSXRlbUxvdGUocm93RGF0YTogYW55KSB7XHJcbiAgICB0aGlzLm9uQWN0aXZlSXRlbUxvdGUuZW1pdChyb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE9yRXhlY3V0ZTxUPihhY3Rpb246IFZhbHVlT3JGbjxUPiwgZGF0YTogYW55KTogVCB7XHJcbiAgICByZXR1cm4gZ2V0T3JFeGVjdXRlKGFjdGlvbiwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25HbG9iYWxGaWx0ZXIodGFibGU6IFRyZWVUYWJsZSwgZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uRmlsdGVyLmVtaXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XHJcbiAgICB0YWJsZS5maWx0ZXJHbG9iYWwoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgJ2NvbnRhaW5zJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGFnaW5hdGUoJGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgbGV0IHBhZ2luYUluaWNpYWwgPVxyXG4gICAgICAgICgkZXZlbnQ/LmZpcnN0ID4gMCA/ICRldmVudC5maXJzdCAvICRldmVudC5yb3dzIDogJGV2ZW50LmZpcnN0KSArIDE7XHJcbiAgICAgIGxldCB0ZXJtb1Blc3F1aXNhID0gJyc7XHJcbiAgICAgIGxldCBvcmRlbmFjYW8gPSAnJztcclxuXHJcbiAgICAgIGlmICgkZXZlbnQuZ2xvYmFsRmlsdGVyKSB0ZXJtb1Blc3F1aXNhID0gJGV2ZW50Lmdsb2JhbEZpbHRlcjtcclxuXHJcbiAgICAgIGlmICgkZXZlbnQuc29ydEZpZWxkKVxyXG4gICAgICAgIG9yZGVuYWNhbyA9IGAkeyAkZXZlbnQuc29ydEZpZWxkIH0gJHsgJGV2ZW50LnNvcnRPcmRlciA9PT0gMSA/ICdBU0MnIDogJ0RFU0MnXHJcbiAgICAgICAgICB9YDtcclxuXHJcbiAgICAgIGNvbnN0IG9iamV0bzogVGFibGVQYWdpbmF0ZSA9IHtcclxuICAgICAgICBwYWdpbmFJbmljaWFsOiBwYWdpbmFJbmljaWFsLFxyXG4gICAgICAgIHRhbWFuaG9QYWdpbmE6ICRldmVudC5yb3dzLFxyXG4gICAgICAgIHRlcm1vUGVzcXVpc2E6IHRlcm1vUGVzcXVpc2EsXHJcbiAgICAgICAgb3JkZW5hY2FvOiBvcmRlbmFjYW8sXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLm9uUGFnaW5hdGUuZW1pdChvYmpldG8pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuU3R5bGVSb3coY29sOiBhbnksIHJvd05vZGU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBpc0ZpcnN0Q29sdW1uID0gY29sLmZpZWxkID09PSB0aGlzLmNvbmZpZy5jb2x1bW5zWzBdLmZpZWxkO1xyXG4gICAgY29uc3QgYmFzZU9wYWNpdHkgPSAxO1xyXG4gICAgY29uc3QgbWF4TGV2ZWxzID0gNDtcclxuXHJcbiAgICBpZiAoaXNGaXJzdENvbHVtbiAmJiByb3dOb2RlLmxldmVsID49IDApIHtcclxuICAgICAgY29uc3Qgb3BhY2l0eSA9IGJhc2VPcGFjaXR5IC0gKHJvd05vZGUubGV2ZWwgLyBtYXhMZXZlbHMpO1xyXG5cclxuICAgICAgcmV0dXJuIGBib3JkZXItbGVmdDogc29saWQgNHB4IHJnYmEoNTksIDExMCwgMTU4LCAkeyBvcGFjaXR5IH0pICFpbXBvcnRhbnQ7YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocm93Tm9kZS5sZXZlbCA9PSAwKVxyXG4gICAgICByZXR1cm4gJ2JvcmRlci1sZWZ0OiBub25lICFpbXBvcnRhbnQ7IGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50J1xyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGFsaWduQ29sdW5hc0hlYWRlcihjb2w6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoY29sLmFsaWduKSB7XHJcbiAgICAgIGlmIChjb2wuYWxpZ24gPT0gJ3JpZ2h0JykgcmV0dXJuICdqdXN0aWZ5LWNvbnRlbnQ6IGVuZCc7XHJcbiAgICAgIGVsc2UgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcbiAgY2VudHJhbGl6YXJDb2x1bmFzKGNvbDogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChjb2wuY2VudHJhbGl6ZSkge1xyXG4gICAgICByZXR1cm4gJ3RleHQtYWxpZ246IGNlbnRlcjsgJztcclxuICAgIH0gZWxzZSByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIGFsaWduQ29sdW5hcyhjb2w6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoY29sLmFsaWduKSB7XHJcbiAgICAgIHJldHVybiBgdGV4dC1hbGlnbjogJHsgY29sLmFsaWduIH1gO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGNyaWFyTWVudXNNb2RhbChkYXRhOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5hY3Rpb25zICYmIGRhdGEpIHtcclxuICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5jb25maWcuYWN0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IG1lbnVJbnNlcnQgPSBtYXBUb01lbnVJdGVtKGFjdGlvbiwgZGF0YSk7XHJcblxyXG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5tZW51SXRlbXMuZmlsdGVyKFxyXG4gICAgICAgICAgeCA9PiB4LmNvbW1hbmQgPT0gbWVudUluc2VydC5jb21tYW5kXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoID09IDApIHRoaXMubWVudUl0ZW1zLnB1c2gobWVudUluc2VydCk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAobWVudUluc2VydC5sYWJlbCAhPSBpdGVtWzBdLmxhYmVsKSB7XHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMubWVudUl0ZW1zLmluZGV4T2YoaXRlbVswXSk7XHJcbiAgICAgICAgICAgIHRoaXMubWVudUl0ZW1zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKG1lbnVJbnNlcnQudmlzaWJsZSAhPSBpdGVtWzBdLnZpc2libGUpIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5tZW51SXRlbXMuaW5kZXhPZihpdGVtWzBdKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWVudUluc2VydC5kaXNhYmxlZCAhPSBpdGVtWzBdLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMubWVudUl0ZW1zLmluZGV4T2YoaXRlbVswXSk7XHJcbiAgICAgICAgICAgIHRoaXMubWVudUl0ZW1zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleGliaXJDYW1wbyhmaWVsZDogYW55LCByb3dEYXRhOiBhbnkpIHtcclxuICAgIGxldCB2aXNpYmxlID0gZmllbGQudmlzaWJsZSA/IGZpZWxkLnZpc2libGUocm93RGF0YSkgOiB0cnVlO1xyXG4gICAgcmV0dXJuIHZpc2libGU7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUFjdGlvblBvc2l0aW9uKHJvd05vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmFjdGlvbnNQYWkgJiYgcm93Tm9kZS5sZXZlbCA9PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBlbHNlIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuXHJcbiAgZG91YmxlQ2xpY2soZTogYW55LCByb3dEYXRhOiBhbnkpIHtcclxuXHJcbiAgICBsZXQgZXZlbnREb3VibGVDbGljayA9IHsgZXZlbnQ6IGUsIHJvd0RhdGE6IHJvd0RhdGEgfTtcclxuXHJcbiAgICBsZXQgYXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgICBlLnRhcmdldC5jbGFzc0xpc3QuZm9yRWFjaCgoeDogYW55KSA9PiBhcnJheS5wdXNoKHgpKTtcclxuXHJcbiAgICAvLyBpZiAoYXJyYXkuZmluZCgoeDogYW55KSA9PiB4ID09ICduZy1zdGFyLWluc2VydGVkJykgIT0gdW5kZWZpbmVkKVxyXG4gICAgdGhpcy5kb3VibGVDbGlja0V2ZW50LmVtaXQoZXZlbnREb3VibGVDbGljayk7XHJcbiAgfVxyXG5cclxuICBpc0Rpc2FibGVkQ2hlY2tib3gocm93RGF0YTogYW55LCByb3dOb2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kaXNhYmxlQ29udHJvbENoZWNrYm94RnVuY3Rpb25cclxuICAgICAgPyB0aGlzLmNvbmZpZy5kaXNhYmxlQ29udHJvbENoZWNrYm94RnVuY3Rpb24ocm93RGF0YSwgcm93Tm9kZSlcclxuICAgICAgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldEN1c3RvbVRlbXBsYXRlKHRlbXBsYXRlbmFtZTogc3RyaW5nKTogVGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVzW3RlbXBsYXRlbmFtZV07XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVNob3dUZW1wbGF0ZShyb3dOb2RlOiBhbnksIGNvbDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY29sLnRlbXBsYXRlT25seSkge1xyXG4gICAgICBpZiAoY29sLnRlbXBsYXRlT25seSA9PT0gJ3BhaScpIHtcclxuICAgICAgICByZXR1cm4gcm93Tm9kZS5sZXZlbCA9PT0gMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29sLnRlbXBsYXRlT25seSA9PT0gJ2ZpbGhvJykge1xyXG4gICAgICAgIHJldHVybiByb3dOb2RlLmxldmVsID09PSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldEljb24oaWNvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpY29uLmluY2x1ZGVzKCdwaS0nKSA/IGBwaSAkeyBpY29uIH1gIDogJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgICA8cC10cmVlVGFibGVcclxuICAgICAgICAjdHRcclxuICAgICAgICBbdmFsdWVdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIlxyXG4gICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIlxyXG4gICAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzUwcmVtJ31cIlxyXG4gICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIlxyXG4gICAgICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICAgICAgICBbcm93c109XCJyb3dzXCJcclxuICAgICAgICBbcGFnZUxpbmtzXT1cInBhZ2VMaW5rc1wiXHJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgNTBdXCJcclxuICAgICAgICBbc2hvd0ZpcnN0TGFzdEljb25dPVwic2hvd0ZpcnN0TGFzdEljb25cIlxyXG4gICAgICAgIFtzdHlsZUNsYXNzXT1cImdyaWRMaW5lcyA/ICdwLXRyZWV0YWJsZS1ncmlkbGluZXMnIDogJydcIlxyXG4gICAgICAgIFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICBbbGF6eV09XCJjb25maWcubGF6eVwiXHJcbiAgICAgICAgKG9uTGF6eUxvYWQpPVwicGFnaW5hdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIntmaXJzdH0gLSB7bGFzdH0gZGUge3sgdG90YWxSZWNvcmRzIH19XCJcclxuICAgID5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIHBUZW1wbGF0ZT1cImNhcHRpb25cIlxyXG4gICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVDYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ3JpZCBmb3JtZ3JpZCBwLWZsdWlkIGNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1tZCBmb250LWJvbGQgbXktM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb25maWcudGl0bGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnN1YnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIG1iLTQgZm9udC1tZWRpdW1cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29uZmlnLnN1YnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBjb2wtMTAgbWQ6Y29sLTYgbGc6Y29sLTQganVzdGlmeS1jb250ZW50LWNlbnRlciB7e3RhbWFuaG9UZWxhIDwgNzY4ID8gJycgOiAnaW5wdXQtc2VhcmNoJ319XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuZW5hYmxlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWlucHV0LWljb24tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXNlYXJjaFwiPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcEF1dG9Gb2N1c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbkdsb2JhbEZpbHRlcih0dCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBlc3F1aXNhci4uLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImgtMnJlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbC0xIGp1c3RpZnktY29udGVudC1lbmQgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bnMtb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnNMb3RlOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJnZXRJY29uKGFjdGlvbi5pY29uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCB8fCBhY3Rpb24uc2hvd0Fjb2VzTG90ZSkgJiYgZXhpYmlyQ2FtcG8oYWN0aW9uLCB0aGlzLmFjdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtMCBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09J1wiIzFEQTc1MFwiJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uPy5jb21tYW5kKCk7IGFjdGl2ZUl0ZW1Mb3RlKHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJnZXRPckV4ZWN1dGUoYWN0aW9uLnRvb2x0aXAsIHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImdldE9yRXhlY3V0ZShhY3Rpb24uZGlzYWJsZWQsIHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7d2lkdGg6ICcycmVtJywgaGVpZ2h0OiAnMnJlbSd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghYWN0aW9uLmljb24uaW5jbHVkZXMoJ3BpLScpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtZC0yMlwiIHN0eWxlPVwiY29sb3I6IHdoaXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0T3JFeGVjdXRlKGFjdGlvbi5pY29uLCBzZWxlY3RlZEl0ZW1zKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICBAZm9yKGNvbCBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpe1xyXG4gICAgICAgICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICAgICAgICAgW3R0U29ydGFibGVDb2x1bW5dPVwiY29sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHRTb3J0YWJsZUNvbHVtbkRpc2FibGVkXT1cImNvbC5zb3J0YWJsZSA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbC53aWR0aFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IGZsZXg6ICRpbmRleCA9PSAwLCAnZ2FwLTMnOiAkaW5kZXggPT0gMCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiJGluZGV4ID09IDAgJiYgY29uZmlnLmVuYWJsZVNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZUhlYWRlckNoZWNrYm94IChjbGljayk9XCJhY3RpdmVJdGVtTG90ZShzZWxlY3RlZEl0ZW1zKVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY2VudHJhbGl6YXJDb2x1bmFzKGNvbCkgJiYgYWxpZ25Db2x1bmFzSGVhZGVyKGNvbCkgPT0gJycgPyAnZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICdmbGV4IGZsZXgtcm93J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImFsaWduQ29sdW5hc0hlYWRlcihjb2wpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb2wuaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sLnNvcnRhYmxlID09PSB0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImNvbC5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAxMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5oZWFkZXJUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImNvbC5oZWFkZXJUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+aW5mbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChjb2wgb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICB0dFJlc2l6YWJsZUNvbHVtblxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2wud2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb2wuY2VudHJhbGl6ZSA/ICd0ZXh0LWFsaWduOiBjZW50ZXI7JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb2wuaGVhZGVyIH19IDxicj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGlmIChjb25maWcuYWN0aW9ucz8ubGVuZ3RoID8/IDAgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICA8dGggW3N0eWxlLndpZHRoXT1cIjVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIHBUZW1wbGF0ZT1cImJvZHlcIlxyXG4gICAgICAgICAgICBsZXQtcm93Tm9kZVxyXG4gICAgICAgICAgICBsZXQtcm93RGF0YT1cInJvd0RhdGFcIlxyXG4gICAgICAgICAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICBbdHRSb3ddPVwicm93Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZGJsY2xpY2spPVwiZG91YmxlQ2xpY2soJGV2ZW50LCByb3dEYXRhKVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjYXBpdGFsaXplJzogdGFibGVDYXB0YWxpemVkIH1cIlxyXG4gICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICAgICAgQGZvcihjb2wgb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KXtcclxuICAgICAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJyZXR1cm5TdHlsZVJvdyhjb2wsIHJvd05vZGUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUucG9zaXRpb25dPVwicm93Tm9kZS5sZXZlbCAhPT0gMCA/ICdzdGlja3knIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwicm93Tm9kZS5sZXZlbCAhPT0gMCA/IHJvd05vZGUubGV2ZWwqMzAgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgIHt7Y29sLmJvb2xlYW4gPyAnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnJyB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsLWgtZnVsbCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICpuZ0lmPVwiJGluZGV4ID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZVRvZ2dsZXIgY2xhc3M9XCJoaWRkZW5WaXNpYmxlXCIgW3Jvd05vZGVdPVwicm93Tm9kZVwiIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtdHJlZVRhYmxlQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZENoZWNrYm94KHJvd0RhdGEsIHJvd05vZGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZlSXRlbUxvdGUoc2VsZWN0ZWRJdGVtcylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyb3dOb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVTZWxlY3QgPT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5ib29sZWFuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaSB7e3Jvd0RhdGFbY29sLmZpZWxkXSA/ICdwaS1jaGVjayB0ZXh0LWdyZWVuLTMwMCcgOiAnJ319XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEuMXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiIWNvbC5ib29sZWFuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS0wXCI+e3sgcm93RGF0YVtjb2wuZmllbGRdIH19PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sLnN1YnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS0wIHRleHQteHMgZm9udC1zZW1pYm9sZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57e3Jvd0RhdGFbY29sLnN1YnRpdGxlXX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbC50ZW1wbGF0ZSAmJiB2YWxpZGF0ZVNob3dUZW1wbGF0ZShyb3dOb2RlLCBjb2wpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0Q3VzdG9tVGVtcGxhdGUoY29sLnRlbXBsYXRlLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEN1c3RvbVRlbXBsYXRlKGNvbC50ZW1wbGF0ZS5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvd0RhdGEgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwiYm9yZGVyLWxlZnQ6IG5vbmU7XCIgKm5nSWY9XCJjb25maWcuYWN0aW9ucz8ubGVuZ3RoID8/IDAgPiAwIHx8IGNvbmZpZy5hY3Rpb25zUGFpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuYWN0aW9ucz8ubGVuZ3RoID8/IDAgPiAwICYmIHZhbGlkYXRlQWN0aW9uUG9zaXRpb24ocm93Tm9kZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBjdXJzb3ItcG9pbnRlciBpY29uLW1vcmUtaG9yaXpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDIycHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudCk7IGFjdGl2ZUl0ZW0ocm93RGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlX2hvcml6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IoYWN0aW9uIG9mIGNvbmZpZy5hY3Rpb25zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY3JpYXJNZW51c01vZGFsKHJvd0RhdGEpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLW1lbnVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNtZW51XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwibWVudUl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtbWVudT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihjb25maWcuYWN0aW9uc1BhaT8ubGVuZ3RoID8/IDAgPiAwICYmIHJvd05vZGUubGV2ZWwgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uUGFpIG9mIGNvbmZpZy5hY3Rpb25zUGFpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRPckV4ZWN1dGUoYWN0aW9uUGFpLnZpc2libGUsIHJvd0RhdGEpID8/IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJnZXRJY29uKGFjdGlvblBhaS5pY29uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXZlcml0eV09XCJhY3Rpb25QYWkuc2V2ZXJpdHkgPz8gJ3NlY29uZGFyeSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cInt3aWR0aDogJzJyZW0nLCBoZWlnaHQ6ICcycmVtJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aXZlSXRlbShyb3dEYXRhKTthY3Rpb25QYWkuY29tbWFuZCgkZXZlbnQpO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC0wIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZighYWN0aW9uUGFpLmljb24uaW5jbHVkZXMoJ3BpLScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHRleHQteGxcIj57eyBhY3Rpb25QYWkuaWNvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuICAgICAgICAgIDx0ciA+XHJcbiAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29uZmlnLmNvbHVtbnMubGVuZ3RoICsgMVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnRcIj57e3RleHRvRW1wdHlNZXNzYWdlfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC10cmVlVGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -146,11 +146,11 @@ export class WorkspaceComponent {
|
|
|
146
146
|
this.masterSelecionada = undefined;
|
|
147
147
|
}
|
|
148
148
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WorkspaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: WorkspaceComponent, selector: "kv-workspace", inputs: { nomeUsuario: "nomeUsuario", masters: "masters", masterSelecionada: "masterSelecionada", somenteMaster: "somenteMaster" }, outputs: { onGetMasterSelecionada: "onGetMasterSelecionada", onGetEmpresaSelecionada: "onGetEmpresaSelecionada" }, ngImport: i0, template: "<div *ngIf=\"visivel\" [style]=\"styleBackground\"\r\n class=\"h-screen flex justify-content-center align-items-center login-container flex-column bg-cover\">\r\n <div id=\"card-container\"\r\n class=\"flex flex-column justify-content-around card-login formgrid p-fluid bg-white border-round p-2\">\r\n <div class=\"field col-12 flex justify-content-center mb-1\">\r\n <img [src]=\"imgLogoKeevoCenter\" style=\"width: 200px\" />\r\n </div>\r\n\r\n <div class=\"col-12 align-items-center z-5\">\r\n <div class=\"col-9\">\r\n Ol\u00E1, <b>{{ nomeUsuario }}.</b> Bem vindo(a)!\r\n </div>\r\n <b class=\"field col-9 flex\">\r\n Escolha qual Workspace voc\u00EA deseja acessar:</b>\r\n </div>\r\n\r\n <!-- IN\u00CDCIO DO WORKSPACE DE CONTABILIDADE (MASTERS) -->\r\n <div *ngIf=\"!masterSelecionada\" class=\"col-12 z-5\">\r\n\r\n <kv-table\r\n [tableSize]=\"tableSizeMaster\"\r\n [rows]=\"5\"\r\n [config]=\"tableConfigMaster\"\r\n [paginator]=\"false\"\r\n [dataSource]=\"dataSourceMaster\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50, 100, 200]\"\r\n
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: WorkspaceComponent, selector: "kv-workspace", inputs: { nomeUsuario: "nomeUsuario", masters: "masters", masterSelecionada: "masterSelecionada", somenteMaster: "somenteMaster" }, outputs: { onGetMasterSelecionada: "onGetMasterSelecionada", onGetEmpresaSelecionada: "onGetEmpresaSelecionada" }, ngImport: i0, template: "<div *ngIf=\"visivel\" [style]=\"styleBackground\"\r\n class=\"h-screen flex justify-content-center align-items-center login-container flex-column bg-cover\">\r\n <div id=\"card-container\"\r\n class=\"flex flex-column justify-content-around card-login formgrid p-fluid bg-white border-round p-2\">\r\n <div class=\"field col-12 flex justify-content-center mb-1\">\r\n <img [src]=\"imgLogoKeevoCenter\" style=\"width: 200px\" />\r\n </div>\r\n\r\n <div class=\"col-12 align-items-center z-5\">\r\n <div class=\"col-9\">\r\n Ol\u00E1, <b>{{ nomeUsuario }}.</b> Bem vindo(a)!\r\n </div>\r\n <b class=\"field col-9 flex\">\r\n Escolha qual Workspace voc\u00EA deseja acessar:</b>\r\n </div>\r\n\r\n <!-- IN\u00CDCIO DO WORKSPACE DE CONTABILIDADE (MASTERS) -->\r\n <div *ngIf=\"!masterSelecionada\" class=\"col-12 z-5\">\r\n\r\n <kv-table\r\n [tableSize]=\"tableSizeMaster\"\r\n [rows]=\"5\"\r\n [config]=\"tableConfigMaster\"\r\n [paginator]=\"false\"\r\n [dataSource]=\"dataSourceMaster\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50, 100, 200]\"\r\n (doubleClickEvent)=\"doubleClickMaster($event)\"\r\n (onActiveItem)=\"activeItemMaster($event)\"\r\n [isTableScrollable]=\"true\"\r\n [scrollHeight]=\"'300px'\">\r\n </kv-table>\r\n\r\n </div>\r\n <!-- FIM DO WORKSPACE DE CONTABILIDADE (MASTERS) -->\r\n\r\n <!-- IN\u00CDCIO DO WORKSPACE EMPRESA -->\r\n <div *ngIf=\"masterSelecionada && !empresaSelecionada\" class=\"col-12 z-5\">\r\n <kv-table\r\n [tableSize]=\"tableSizeEmpresa\"\r\n [rows]=\"5\"\r\n [config]=\"tableConfigEmpresa\"\r\n [paginator]=\"showPaginatorEmpresa\"\r\n [dataSource]=\"dataSourceEmpresa\"\r\n [rowsPerPageOptions]=\"[5]\"\r\n (doubleClickEvent)=\"doubleClickEmpresa($event)\"\r\n (onActiveItem)=\"activeItemEmpresa($event)\"\r\n [isTableScrollable]=\"true\"\r\n [scrollHeight]=\"'300px'\">\r\n </kv-table>\r\n </div>\r\n <!-- FIM DO WORKSPACE EMPRESA -->\r\n </div>\r\n</div>\r\n", styles: [".card-login{width:80%;max-width:800px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.KvTableComponent, selector: "kv-table", inputs: ["templates", "config", "defaultSortField", "dataSource", "selectedItems", "totalRecords", "paginator", "rowsPerPageOptions", "rows", "pageLinksOptions", "showFirstLastIcon", "tableSize", "applyStyle", "filterColumnsBtn", "filtrosAvancados", "scrollHeight", "isTableScrollable", "tableCaptalized", "rowTrackBy", "responsiveLayout"], outputs: ["onActiveItem", "onActiveItemLote", "onPaginate", "onSelectionChange", "doubleClickEvent", "filterField", "filtrosAvancadosEmit", "onSwitchTableChange"] }] }); }
|
|
150
150
|
}
|
|
151
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WorkspaceComponent, decorators: [{
|
|
152
152
|
type: Component,
|
|
153
|
-
args: [{ selector: 'kv-workspace', template: "<div *ngIf=\"visivel\" [style]=\"styleBackground\"\r\n class=\"h-screen flex justify-content-center align-items-center login-container flex-column bg-cover\">\r\n <div id=\"card-container\"\r\n class=\"flex flex-column justify-content-around card-login formgrid p-fluid bg-white border-round p-2\">\r\n <div class=\"field col-12 flex justify-content-center mb-1\">\r\n <img [src]=\"imgLogoKeevoCenter\" style=\"width: 200px\" />\r\n </div>\r\n\r\n <div class=\"col-12 align-items-center z-5\">\r\n <div class=\"col-9\">\r\n Ol\u00E1, <b>{{ nomeUsuario }}.</b> Bem vindo(a)!\r\n </div>\r\n <b class=\"field col-9 flex\">\r\n Escolha qual Workspace voc\u00EA deseja acessar:</b>\r\n </div>\r\n\r\n <!-- IN\u00CDCIO DO WORKSPACE DE CONTABILIDADE (MASTERS) -->\r\n <div *ngIf=\"!masterSelecionada\" class=\"col-12 z-5\">\r\n\r\n <kv-table\r\n [tableSize]=\"tableSizeMaster\"\r\n [rows]=\"5\"\r\n [config]=\"tableConfigMaster\"\r\n [paginator]=\"false\"\r\n [dataSource]=\"dataSourceMaster\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50, 100, 200]\"\r\n
|
|
153
|
+
args: [{ selector: 'kv-workspace', template: "<div *ngIf=\"visivel\" [style]=\"styleBackground\"\r\n class=\"h-screen flex justify-content-center align-items-center login-container flex-column bg-cover\">\r\n <div id=\"card-container\"\r\n class=\"flex flex-column justify-content-around card-login formgrid p-fluid bg-white border-round p-2\">\r\n <div class=\"field col-12 flex justify-content-center mb-1\">\r\n <img [src]=\"imgLogoKeevoCenter\" style=\"width: 200px\" />\r\n </div>\r\n\r\n <div class=\"col-12 align-items-center z-5\">\r\n <div class=\"col-9\">\r\n Ol\u00E1, <b>{{ nomeUsuario }}.</b> Bem vindo(a)!\r\n </div>\r\n <b class=\"field col-9 flex\">\r\n Escolha qual Workspace voc\u00EA deseja acessar:</b>\r\n </div>\r\n\r\n <!-- IN\u00CDCIO DO WORKSPACE DE CONTABILIDADE (MASTERS) -->\r\n <div *ngIf=\"!masterSelecionada\" class=\"col-12 z-5\">\r\n\r\n <kv-table\r\n [tableSize]=\"tableSizeMaster\"\r\n [rows]=\"5\"\r\n [config]=\"tableConfigMaster\"\r\n [paginator]=\"false\"\r\n [dataSource]=\"dataSourceMaster\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50, 100, 200]\"\r\n (doubleClickEvent)=\"doubleClickMaster($event)\"\r\n (onActiveItem)=\"activeItemMaster($event)\"\r\n [isTableScrollable]=\"true\"\r\n [scrollHeight]=\"'300px'\">\r\n </kv-table>\r\n\r\n </div>\r\n <!-- FIM DO WORKSPACE DE CONTABILIDADE (MASTERS) -->\r\n\r\n <!-- IN\u00CDCIO DO WORKSPACE EMPRESA -->\r\n <div *ngIf=\"masterSelecionada && !empresaSelecionada\" class=\"col-12 z-5\">\r\n <kv-table\r\n [tableSize]=\"tableSizeEmpresa\"\r\n [rows]=\"5\"\r\n [config]=\"tableConfigEmpresa\"\r\n [paginator]=\"showPaginatorEmpresa\"\r\n [dataSource]=\"dataSourceEmpresa\"\r\n [rowsPerPageOptions]=\"[5]\"\r\n (doubleClickEvent)=\"doubleClickEmpresa($event)\"\r\n (onActiveItem)=\"activeItemEmpresa($event)\"\r\n [isTableScrollable]=\"true\"\r\n [scrollHeight]=\"'300px'\">\r\n </kv-table>\r\n </div>\r\n <!-- FIM DO WORKSPACE EMPRESA -->\r\n </div>\r\n</div>\r\n", styles: [".card-login{width:80%;max-width:800px}\n"] }]
|
|
154
154
|
}], ctorParameters: () => [], propDecorators: { nomeUsuario: [{
|
|
155
155
|
type: Input
|
|
156
156
|
}], masters: [{
|
|
@@ -164,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
164
164
|
}], onGetEmpresaSelecionada: [{
|
|
165
165
|
type: Output
|
|
166
166
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytd29ya3NwYWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXdvcmtzcGFjZS9rdi13b3Jrc3BhY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytd29ya3NwYWNlL2t2LXdvcmtzcGFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVFwRSxNQUFNLE9BQU8sa0JBQWtCO0lBMEQ3QjtRQXhEQTs7V0FFRztRQUNNLGdCQUFXLEdBQVcsd0JBQXdCLENBQUM7UUFZeEQ7O1dBRUc7UUFDTSxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV4Qzs7V0FFRztRQUNPLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFM0Q7O1dBRUc7UUFDTyw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSTVELHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUNoQyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFFdEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QixlQUFlO1FBQ2YscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FBSTNCLG9CQUFlLEdB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UyxDQUFDO0lBQ3JDLENBQUM7OEdBdkxVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJTQ2hCL0IsMnFFQXVEQTs7MkZEdkNhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxjQUFjO3dEQVNmLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFLRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSW1hZ2Vuc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvaW1hZ2Vucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb25maWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi13b3Jrc3BhY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi13b3Jrc3BhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LXdvcmtzcGFjZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqXHJcbiAgICogTm9tZSBkbyB1c3XDoXJpbyBsb2dhZG9cclxuICAgKi9cclxuICBASW5wdXQoKSBub21lVXN1YXJpbzogc3RyaW5nID0gJ05vbWUgZG8gVXN1w6FyaW8gTG9nYWRvJztcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGEgZGUgbWFzdGVycyBxdWUgbyB1c3XDoXJpbyB0ZW0gYWNlc3NvXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWFzdGVycyE6IGFueVtdO1xyXG5cclxuICAvKipcclxuICAgKiBNYXN0ZXIgc2VsZWNpb25hZGEgcGVsbyB1c3XDoXJpb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1hc3RlclNlbGVjaW9uYWRhITogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBTZWxlY2lvbmFyIGFwZW5hcyBtYXN0ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBzb21lbnRlTWFzdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50byBkZSBtYXN0ZXIgc2VsZWNpb25hZGFcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25HZXRNYXN0ZXJTZWxlY2lvbmFkYSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gZGUgZW1wcmVzYSBzZWxlY2lvbmFkYVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkdldEVtcHJlc2FTZWxlY2lvbmFkYSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBlbXByZXNhcyE6IGFueVtdO1xyXG4gIGVtcHJlc2FTZWxlY2lvbmFkYSE6IGFueTtcclxuICB0b3RhbFJlY29yZHNFbXByZXNhOiBudW1iZXIgPSAwO1xyXG4gIHNob3dQYWdpbmF0b3JFbXByZXNhOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHZpc2l2ZWwgPSB0cnVlO1xyXG4gIHR4dFBlc3F1aXNhID0gJyc7XHJcbiAgaW1nUGVyc29uYWdlbnMgPSAnJztcclxuICBpbWdMb2dvS2Vldm8gPSAnJztcclxuICBzdHlsZUJhY2tncm91bmQgPSAnJztcclxuICBpbWdMb2dvS2Vldm9DZW50ZXIgPSAnJztcclxuXHJcbiAgLy9UYWJlbGEgTWFzdGVyXHJcbiAgZGF0YVNvdXJjZU1hc3RlcjogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtTWFzdGVyOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtc0xvdGVNYXN0ZXI6IGFueTtcclxuICB0YWJsZUNvbmZpZ01hc3RlciE6IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlU2l6ZU1hc3RlcjogbnVtYmVyID0gNTtcclxuXHJcbiAgLy9UYWJlbGEgIEVtcHJlc2FcclxuICBkYXRhU291cmNlRW1wcmVzYTogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtRW1wcmVzYTogYW55O1xyXG4gIHNlbGVjdGVkSXRlbXNMb3RlRW1wcmVzYTogYW55O1xyXG4gIHRhYmxlQ29uZmlnRW1wcmVzYSE6IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlU2l6ZUVtcHJlc2E6IG51bWJlciA9IDU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGFjdGl2ZUl0ZW1FbXByZXNhKGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1FbXByZXNhID0gZTtcclxuICB9XHJcblxyXG4gIGFjdGl2ZUl0ZW1NYXN0ZXIoZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbU1hc3RlciA9IGU7XHJcbiAgfVxyXG5cclxuICBjb2x1bW5Db25maWdUYWJsZU1hc3RlcigpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZU1hc3RlciA9IHRoaXMubWFzdGVycztcclxuICAgIHRoaXMudGFibGVDb25maWdNYXN0ZXIgPSB7XHJcbiAgICAgIGxhenk6IGZhbHNlLFxyXG4gICAgICBjb2x1bW5zOiBbXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMCwgZmllbGQ6ICdpZG1hc3RlcicsIGhlYWRlcjogJ0xpY2Vuw6dhJywgd2lkdGg6ICcnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMSwgZmllbGQ6ICdub21lJywgaGVhZGVyOiAnJywgd2lkdGg6ICc4MCUnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlLCB9LFxyXG4gICAgICBdLFxyXG4gICAgICBhY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdBY2Vzc2FyJyxcclxuICAgICAgICAgIGljb246ICdsb2dpbicsXHJcbiAgICAgICAgICB0b29sdGlwOiAnQWNlc3NhciBXb3Jrc3BhY2UnLFxyXG4gICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjaW9uYXJNYXN0ZXIodGhpcy5zZWxlY3RlZEl0ZW1NYXN0ZXIpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRpc2FibGVkOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgYWN0aW9uc0xvdGU6IFtdLFxyXG4gICAgICBlbmFibGVDYXRpb246IGZhbHNlLFxyXG4gICAgICBlbmFibGVGaWx0ZXI6IGZhbHNlLFxyXG4gICAgICBlbmFibGVTZWxlY3Q6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbHVtbkNvbmZpZ1RhYmxlRW1wcmVzYSgpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZUVtcHJlc2EgPSB0aGlzLmVtcHJlc2FzO1xyXG4gICAgdGhpcy50YWJsZUNvbmZpZ0VtcHJlc2EgPSB7XHJcbiAgICAgIGxhenk6IGZhbHNlLFxyXG4gICAgICBjb2x1bW5zOiBbXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMCwgZmllbGQ6ICdjb2RpZ29wZXNzb2EnLCBoZWFkZXI6ICdDw7NkaWdvJywgd2lkdGg6ICcnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMSwgZmllbGQ6ICdjcGZjbnBqJywgaGVhZGVyOiAnQ1BGL0NOUEonLCB3aWR0aDogJycsIGNlbnRyYWxpemU6IGZhbHNlLCBzb3J0YWJsZTogZmFsc2UsIHBpcGU6ICdjcGZjbnBqJyB9LFxyXG4gICAgICAgIHsgcG9zaXRpb246IDIsIGZpZWxkOiAncmF6YW9zb2NpYWwnLCBoZWFkZXI6ICdSYXrDo28gc29jaWFsJywgd2lkdGg6ICc1MCUnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJ0FjZXNzYXInLFxyXG4gICAgICAgICAgaWNvbjogJ2xvZ2luJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdBY2Vzc2FyIEVtcHJlc2EnLFxyXG4gICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjaW9uYXJFbXByZXNhKHRoaXMuc2VsZWN0ZWRJdGVtRW1wcmVzYSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGlzYWJsZWQ6ICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgICBhY3Rpb25zTG90ZTogW10sXHJcbiAgICAgIGVuYWJsZUNhdGlvbjogdHJ1ZSxcclxuICAgICAgZW5hYmxlRmlsdGVyOiB0cnVlLFxyXG4gICAgICBlbmFibGVTZWxlY3Q6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGRvdWJsZUNsaWNrRW1wcmVzYShlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtRW1wcmVzYSA9IGUucm93RGF0YTtcclxuICAgIHRoaXMuc2VsZWNpb25hckVtcHJlc2EoZS5yb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIGRvdWJsZUNsaWNrTWFzdGVyKGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1NYXN0ZXIgPSBlLnJvd0RhdGE7XHJcbiAgICB0aGlzLnNlbGVjaW9uYXJNYXN0ZXIoZS5yb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIGZpbHRyYXJFbXByZXNhKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZW1wcmVzYXMgPSB0aGlzLm1hc3RlclNlbGVjaW9uYWRhLmVtcHJlc2FzLmZpbHRlcigoZTogYW55KSA9PlxyXG4gICAgICBlLm5vbWVlbXByZXNhLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZXZlbnQudG9Mb3dlckNhc2UoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1nUGVyc29uYWdlbnMgPSBJbWFnZW5zU2VydmljZS5nZXRQZXJzb25hZ2Vuc1dvcmtTcGFjZSgpO1xyXG4gICAgdGhpcy5pbWdMb2dvS2Vldm8gPSBJbWFnZW5zU2VydmljZS5nZXRMb2dvS2Vldm8oKTtcclxuICAgIHRoaXMuaW1nTG9nb0tlZXZvQ2VudGVyID0gSW1hZ2Vuc1NlcnZpY2UuZ2V0TG9nb0tlZXZvQ2VudGVyKCk7XHJcbiAgICB0aGlzLnN0eWxlQmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyArIEltYWdlbnNTZXJ2aWNlLmdldEJhY2tncm91bmRXb3JrU3BhY2UoKSArICcpOyc7XHJcbiAgICB0aGlzLmNvbHVtbkNvbmZpZ1RhYmxlTWFzdGVyKCk7XHJcbiAgICB0aGlzLnZlcmlmaWNhTWFzdGVyVW5pY2EoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjaW9uYXJFbXByZXNhKGVtcHJlc2E6IGFueSkge1xyXG4gICAgdGhpcy5vbkdldEVtcHJlc2FTZWxlY2lvbmFkYS5lbWl0KGVtcHJlc2EpO1xyXG4gICAgdGhpcy5lbXByZXNhU2VsZWNpb25hZGEgPSBlbXByZXNhO1xyXG4gICAgdGhpcy52aXNpdmVsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY2lvbmFyTWFzdGVyKG1hc3RlcjogYW55KSB7XHJcbiAgICB0aGlzLm9uR2V0TWFzdGVyU2VsZWNpb25hZGEuZW1pdChtYXN0ZXIpO1xyXG4gICAgdGhpcy5tYXN0ZXJTZWxlY2lvbmFkYSA9IG1hc3RlcjtcclxuXHJcbiAgICBpZiAodGhpcy5zb21lbnRlTWFzdGVyKVxyXG4gICAgICB0aGlzLnZpc2l2ZWwgPSBmYWxzZTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVtcHJlc2FzID0gbWFzdGVyLmVtcHJlc2FzO1xyXG4gICAgICB0aGlzLnNob3dQYWdpbmF0b3JFbXByZXNhID0gKHRoaXMuZW1wcmVzYXMubGVuZ3RoID4gNSk7XHJcbiAgICAgIHRoaXMuY29sdW1uQ29uZmlnVGFibGVFbXByZXNhKCk7XHJcbiAgICAgIHRoaXMudmVyaWZpY2FFbXByZXNhVW5pY2EoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZlcmlmaWNhRW1wcmVzYVVuaWNhKCkge1xyXG4gICAgaWYgKHRoaXMuZW1wcmVzYXMgJiYgdGhpcy5lbXByZXNhcy5sZW5ndGggPT0gMSlcclxuICAgICAgdGhpcy5zZWxlY2lvbmFyRW1wcmVzYSh0aGlzLmVtcHJlc2FzWzBdKTtcclxuICB9XHJcblxyXG4gIHZlcmlmaWNhTWFzdGVyVW5pY2EoKSB7XHJcbiAgICBpZiAodGhpcy5tYXN0ZXJzLmxlbmd0aCA9PSAxKVxyXG4gICAgICB0aGlzLnNlbGVjaW9uYXJNYXN0ZXIodGhpcy5tYXN0ZXJzWzBdKTtcclxuICB9XHJcblxyXG4gIHZvbHRhcigpIHtcclxuICAgIHRoaXMuZW1wcmVzYVNlbGVjaW9uYWRhID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5tYXN0ZXJTZWxlY2lvbmFkYSA9IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInZpc2l2ZWxcIiBbc3R5bGVdPVwic3R5bGVCYWNrZ3JvdW5kXCJcclxuICBjbGFzcz1cImgtc2NyZWVuIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbG9naW4tY29udGFpbmVyIGZsZXgtY29sdW1uIGJnLWNvdmVyXCI+XHJcbiAgPGRpdiBpZD1cImNhcmQtY29udGFpbmVyXCJcclxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kIGNhcmQtbG9naW4gZm9ybWdyaWQgcC1mbHVpZCAgYmctd2hpdGUgYm9yZGVyLXJvdW5kIHAtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgbWItMVwiPlxyXG4gICAgICA8aW1nIFtzcmNdPVwiaW1nTG9nb0tlZXZvQ2VudGVyXCIgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIiAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBhbGlnbi1pdGVtcy1jZW50ZXIgei01XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgIE9sw6EsIDxiPnt7IG5vbWVVc3VhcmlvIH19LjwvYj4gQmVtIHZpbmRvKGEpIVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGIgY2xhc3M9XCJmaWVsZCBjb2wtOSBmbGV4XCI+XHJcbiAgICAgICAgRXNjb2xoYSBxdWFsIFdvcmtzcGFjZSB2b2PDqiBkZXNlamEgYWNlc3Nhcjo8L2I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIElOw41DSU8gRE8gV09SS1NQQUNFIERFIENPTlRBQklMSURBREUgKE1BU1RFUlMpIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFtYXN0ZXJTZWxlY2lvbmFkYVwiIGNsYXNzPVwiY29sLTEyIHotNVwiPlxyXG5cclxuICAgICAgPGt2LXRhYmxlXHJcbiAgICAgICAgW3RhYmxlU2l6ZV09XCJ0YWJsZVNpemVNYXN0ZXJcIlxyXG4gICAgICAgIFtyb3dzXT1cIjVcIlxyXG4gICAgICAgIFtjb25maWddPVwidGFibGVDb25maWdNYXN0ZXJcIlxyXG4gICAgICAgIFtwYWdpbmF0b3JdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VNYXN0ZXJcIlxyXG4gICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgNTAsIDEwMCwgMjAwXVwiXHJcbiAgICAgICAgW2Fjb2VzTGluaGFUYWJlbGFdPVwidHJ1ZVwiXHJcbiAgICAgICAgKGRvdWJsZUNsaWNrRXZlbnQpPVwiZG91YmxlQ2xpY2tNYXN0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJhY3RpdmVJdGVtTWFzdGVyKCRldmVudClcIlxyXG4gICAgICAgIFtpc1RhYmxlU2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cIiczMDBweCdcIj5cclxuICAgICAgPC9rdi10YWJsZT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gRklNIERPIFdPUktTUEFDRSBERSBDT05UQUJJTElEQURFIChNQVNURVJTKSAtLT5cclxuXHJcbiAgICA8IS0tIElOw41DSU8gRE8gV09SS1NQQUNFIEVNUFJFU0EgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwibWFzdGVyU2VsZWNpb25hZGEgJiYgIWVtcHJlc2FTZWxlY2lvbmFkYVwiIGNsYXNzPVwiY29sLTEyIHotNVwiPlxyXG4gICAgICA8a3YtdGFibGVcclxuICAgICAgICBbdGFibGVTaXplXT1cInRhYmxlU2l6ZUVtcHJlc2FcIlxyXG4gICAgICAgIFtyb3dzXT1cIjVcIlxyXG4gICAgICAgIFtjb25maWddPVwidGFibGVDb25maWdFbXByZXNhXCJcclxuICAgICAgICBbcGFnaW5hdG9yXT1cInNob3dQYWdpbmF0b3JFbXByZXNhXCJcclxuICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlRW1wcmVzYVwiXHJcbiAgICAgICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbNV1cIlxyXG4gICAgICAgIFthY29lc0xpbmhhVGFiZWxhXT1cInRydWVcIlxyXG4gICAgICAgIChkb3VibGVDbGlja0V2ZW50KT1cImRvdWJsZUNsaWNrRW1wcmVzYSgkZXZlbnQpXCJcclxuICAgICAgICAob25BY3RpdmVJdGVtKT1cImFjdGl2ZUl0ZW1FbXByZXNhKCRldmVudClcIlxyXG4gICAgICAgIFtpc1RhYmxlU2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cIiczMDBweCdcIj5cclxuICAgICAgPC9rdi10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBGSU0gRE8gV09SS1NQQUNFIEVNUFJFU0EgLS0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytd29ya3NwYWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXdvcmtzcGFjZS9rdi13b3Jrc3BhY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytd29ya3NwYWNlL2t2LXdvcmtzcGFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVFwRSxNQUFNLE9BQU8sa0JBQWtCO0lBMEQ3QjtRQXhEQTs7V0FFRztRQUNNLGdCQUFXLEdBQVcsd0JBQXdCLENBQUM7UUFZeEQ7O1dBRUc7UUFDTSxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV4Qzs7V0FFRztRQUNPLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFM0Q7O1dBRUc7UUFDTyw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSTVELHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUNoQyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFFdEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QixlQUFlO1FBQ2YscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FBSTNCLG9CQUFlLEdB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UyxDQUFDO0lBQ3JDLENBQUM7OEdBdkxVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJTQ2hCL0IsNmxFQXFEQTs7MkZEckNhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxjQUFjO3dEQVNmLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFLRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSW1hZ2Vuc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvaW1hZ2Vucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb25maWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi13b3Jrc3BhY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi13b3Jrc3BhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LXdvcmtzcGFjZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqXHJcbiAgICogTm9tZSBkbyB1c3XDoXJpbyBsb2dhZG9cclxuICAgKi9cclxuICBASW5wdXQoKSBub21lVXN1YXJpbzogc3RyaW5nID0gJ05vbWUgZG8gVXN1w6FyaW8gTG9nYWRvJztcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGEgZGUgbWFzdGVycyBxdWUgbyB1c3XDoXJpbyB0ZW0gYWNlc3NvXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWFzdGVycyE6IGFueVtdO1xyXG5cclxuICAvKipcclxuICAgKiBNYXN0ZXIgc2VsZWNpb25hZGEgcGVsbyB1c3XDoXJpb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1hc3RlclNlbGVjaW9uYWRhITogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBTZWxlY2lvbmFyIGFwZW5hcyBtYXN0ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBzb21lbnRlTWFzdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50byBkZSBtYXN0ZXIgc2VsZWNpb25hZGFcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25HZXRNYXN0ZXJTZWxlY2lvbmFkYSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gZGUgZW1wcmVzYSBzZWxlY2lvbmFkYVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkdldEVtcHJlc2FTZWxlY2lvbmFkYSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBlbXByZXNhcyE6IGFueVtdO1xyXG4gIGVtcHJlc2FTZWxlY2lvbmFkYSE6IGFueTtcclxuICB0b3RhbFJlY29yZHNFbXByZXNhOiBudW1iZXIgPSAwO1xyXG4gIHNob3dQYWdpbmF0b3JFbXByZXNhOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHZpc2l2ZWwgPSB0cnVlO1xyXG4gIHR4dFBlc3F1aXNhID0gJyc7XHJcbiAgaW1nUGVyc29uYWdlbnMgPSAnJztcclxuICBpbWdMb2dvS2Vldm8gPSAnJztcclxuICBzdHlsZUJhY2tncm91bmQgPSAnJztcclxuICBpbWdMb2dvS2Vldm9DZW50ZXIgPSAnJztcclxuXHJcbiAgLy9UYWJlbGEgTWFzdGVyXHJcbiAgZGF0YVNvdXJjZU1hc3RlcjogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtTWFzdGVyOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtc0xvdGVNYXN0ZXI6IGFueTtcclxuICB0YWJsZUNvbmZpZ01hc3RlciE6IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlU2l6ZU1hc3RlcjogbnVtYmVyID0gNTtcclxuXHJcbiAgLy9UYWJlbGEgIEVtcHJlc2FcclxuICBkYXRhU291cmNlRW1wcmVzYTogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtRW1wcmVzYTogYW55O1xyXG4gIHNlbGVjdGVkSXRlbXNMb3RlRW1wcmVzYTogYW55O1xyXG4gIHRhYmxlQ29uZmlnRW1wcmVzYSE6IFRhYmxlQ29uZmlnO1xyXG4gIHRhYmxlU2l6ZUVtcHJlc2E6IG51bWJlciA9IDU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGFjdGl2ZUl0ZW1FbXByZXNhKGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1FbXByZXNhID0gZTtcclxuICB9XHJcblxyXG4gIGFjdGl2ZUl0ZW1NYXN0ZXIoZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbU1hc3RlciA9IGU7XHJcbiAgfVxyXG5cclxuICBjb2x1bW5Db25maWdUYWJsZU1hc3RlcigpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZU1hc3RlciA9IHRoaXMubWFzdGVycztcclxuICAgIHRoaXMudGFibGVDb25maWdNYXN0ZXIgPSB7XHJcbiAgICAgIGxhenk6IGZhbHNlLFxyXG4gICAgICBjb2x1bW5zOiBbXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMCwgZmllbGQ6ICdpZG1hc3RlcicsIGhlYWRlcjogJ0xpY2Vuw6dhJywgd2lkdGg6ICcnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMSwgZmllbGQ6ICdub21lJywgaGVhZGVyOiAnJywgd2lkdGg6ICc4MCUnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlLCB9LFxyXG4gICAgICBdLFxyXG4gICAgICBhY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6ICdBY2Vzc2FyJyxcclxuICAgICAgICAgIGljb246ICdsb2dpbicsXHJcbiAgICAgICAgICB0b29sdGlwOiAnQWNlc3NhciBXb3Jrc3BhY2UnLFxyXG4gICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjaW9uYXJNYXN0ZXIodGhpcy5zZWxlY3RlZEl0ZW1NYXN0ZXIpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRpc2FibGVkOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgYWN0aW9uc0xvdGU6IFtdLFxyXG4gICAgICBlbmFibGVDYXRpb246IGZhbHNlLFxyXG4gICAgICBlbmFibGVGaWx0ZXI6IGZhbHNlLFxyXG4gICAgICBlbmFibGVTZWxlY3Q6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbHVtbkNvbmZpZ1RhYmxlRW1wcmVzYSgpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZUVtcHJlc2EgPSB0aGlzLmVtcHJlc2FzO1xyXG4gICAgdGhpcy50YWJsZUNvbmZpZ0VtcHJlc2EgPSB7XHJcbiAgICAgIGxhenk6IGZhbHNlLFxyXG4gICAgICBjb2x1bW5zOiBbXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMCwgZmllbGQ6ICdjb2RpZ29wZXNzb2EnLCBoZWFkZXI6ICdDw7NkaWdvJywgd2lkdGg6ICcnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyBwb3NpdGlvbjogMSwgZmllbGQ6ICdjcGZjbnBqJywgaGVhZGVyOiAnQ1BGL0NOUEonLCB3aWR0aDogJycsIGNlbnRyYWxpemU6IGZhbHNlLCBzb3J0YWJsZTogZmFsc2UsIHBpcGU6ICdjcGZjbnBqJyB9LFxyXG4gICAgICAgIHsgcG9zaXRpb246IDIsIGZpZWxkOiAncmF6YW9zb2NpYWwnLCBoZWFkZXI6ICdSYXrDo28gc29jaWFsJywgd2lkdGg6ICc1MCUnLCBjZW50cmFsaXplOiBmYWxzZSwgc29ydGFibGU6IGZhbHNlIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJ0FjZXNzYXInLFxyXG4gICAgICAgICAgaWNvbjogJ2xvZ2luJyxcclxuICAgICAgICAgIHRvb2x0aXA6ICdBY2Vzc2FyIEVtcHJlc2EnLFxyXG4gICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjaW9uYXJFbXByZXNhKHRoaXMuc2VsZWN0ZWRJdGVtRW1wcmVzYSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGlzYWJsZWQ6ICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgICBhY3Rpb25zTG90ZTogW10sXHJcbiAgICAgIGVuYWJsZUNhdGlvbjogdHJ1ZSxcclxuICAgICAgZW5hYmxlRmlsdGVyOiB0cnVlLFxyXG4gICAgICBlbmFibGVTZWxlY3Q6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGRvdWJsZUNsaWNrRW1wcmVzYShlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtRW1wcmVzYSA9IGUucm93RGF0YTtcclxuICAgIHRoaXMuc2VsZWNpb25hckVtcHJlc2EoZS5yb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIGRvdWJsZUNsaWNrTWFzdGVyKGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1NYXN0ZXIgPSBlLnJvd0RhdGE7XHJcbiAgICB0aGlzLnNlbGVjaW9uYXJNYXN0ZXIoZS5yb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIGZpbHRyYXJFbXByZXNhKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZW1wcmVzYXMgPSB0aGlzLm1hc3RlclNlbGVjaW9uYWRhLmVtcHJlc2FzLmZpbHRlcigoZTogYW55KSA9PlxyXG4gICAgICBlLm5vbWVlbXByZXNhLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZXZlbnQudG9Mb3dlckNhc2UoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1nUGVyc29uYWdlbnMgPSBJbWFnZW5zU2VydmljZS5nZXRQZXJzb25hZ2Vuc1dvcmtTcGFjZSgpO1xyXG4gICAgdGhpcy5pbWdMb2dvS2Vldm8gPSBJbWFnZW5zU2VydmljZS5nZXRMb2dvS2Vldm8oKTtcclxuICAgIHRoaXMuaW1nTG9nb0tlZXZvQ2VudGVyID0gSW1hZ2Vuc1NlcnZpY2UuZ2V0TG9nb0tlZXZvQ2VudGVyKCk7XHJcbiAgICB0aGlzLnN0eWxlQmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyArIEltYWdlbnNTZXJ2aWNlLmdldEJhY2tncm91bmRXb3JrU3BhY2UoKSArICcpOyc7XHJcbiAgICB0aGlzLmNvbHVtbkNvbmZpZ1RhYmxlTWFzdGVyKCk7XHJcbiAgICB0aGlzLnZlcmlmaWNhTWFzdGVyVW5pY2EoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjaW9uYXJFbXByZXNhKGVtcHJlc2E6IGFueSkge1xyXG4gICAgdGhpcy5vbkdldEVtcHJlc2FTZWxlY2lvbmFkYS5lbWl0KGVtcHJlc2EpO1xyXG4gICAgdGhpcy5lbXByZXNhU2VsZWNpb25hZGEgPSBlbXByZXNhO1xyXG4gICAgdGhpcy52aXNpdmVsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY2lvbmFyTWFzdGVyKG1hc3RlcjogYW55KSB7XHJcbiAgICB0aGlzLm9uR2V0TWFzdGVyU2VsZWNpb25hZGEuZW1pdChtYXN0ZXIpO1xyXG4gICAgdGhpcy5tYXN0ZXJTZWxlY2lvbmFkYSA9IG1hc3RlcjtcclxuXHJcbiAgICBpZiAodGhpcy5zb21lbnRlTWFzdGVyKVxyXG4gICAgICB0aGlzLnZpc2l2ZWwgPSBmYWxzZTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVtcHJlc2FzID0gbWFzdGVyLmVtcHJlc2FzO1xyXG4gICAgICB0aGlzLnNob3dQYWdpbmF0b3JFbXByZXNhID0gKHRoaXMuZW1wcmVzYXMubGVuZ3RoID4gNSk7XHJcbiAgICAgIHRoaXMuY29sdW1uQ29uZmlnVGFibGVFbXByZXNhKCk7XHJcbiAgICAgIHRoaXMudmVyaWZpY2FFbXByZXNhVW5pY2EoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZlcmlmaWNhRW1wcmVzYVVuaWNhKCkge1xyXG4gICAgaWYgKHRoaXMuZW1wcmVzYXMgJiYgdGhpcy5lbXByZXNhcy5sZW5ndGggPT0gMSlcclxuICAgICAgdGhpcy5zZWxlY2lvbmFyRW1wcmVzYSh0aGlzLmVtcHJlc2FzWzBdKTtcclxuICB9XHJcblxyXG4gIHZlcmlmaWNhTWFzdGVyVW5pY2EoKSB7XHJcbiAgICBpZiAodGhpcy5tYXN0ZXJzLmxlbmd0aCA9PSAxKVxyXG4gICAgICB0aGlzLnNlbGVjaW9uYXJNYXN0ZXIodGhpcy5tYXN0ZXJzWzBdKTtcclxuICB9XHJcblxyXG4gIHZvbHRhcigpIHtcclxuICAgIHRoaXMuZW1wcmVzYVNlbGVjaW9uYWRhID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5tYXN0ZXJTZWxlY2lvbmFkYSA9IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInZpc2l2ZWxcIiBbc3R5bGVdPVwic3R5bGVCYWNrZ3JvdW5kXCJcclxuICBjbGFzcz1cImgtc2NyZWVuIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbG9naW4tY29udGFpbmVyIGZsZXgtY29sdW1uIGJnLWNvdmVyXCI+XHJcbiAgPGRpdiBpZD1cImNhcmQtY29udGFpbmVyXCJcclxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kIGNhcmQtbG9naW4gZm9ybWdyaWQgcC1mbHVpZCAgYmctd2hpdGUgYm9yZGVyLXJvdW5kIHAtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgbWItMVwiPlxyXG4gICAgICA8aW1nIFtzcmNdPVwiaW1nTG9nb0tlZXZvQ2VudGVyXCIgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIiAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBhbGlnbi1pdGVtcy1jZW50ZXIgei01XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgIE9sw6EsIDxiPnt7IG5vbWVVc3VhcmlvIH19LjwvYj4gQmVtIHZpbmRvKGEpIVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGIgY2xhc3M9XCJmaWVsZCBjb2wtOSBmbGV4XCI+XHJcbiAgICAgICAgRXNjb2xoYSBxdWFsIFdvcmtzcGFjZSB2b2PDqiBkZXNlamEgYWNlc3Nhcjo8L2I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIElOw41DSU8gRE8gV09SS1NQQUNFIERFIENPTlRBQklMSURBREUgKE1BU1RFUlMpIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFtYXN0ZXJTZWxlY2lvbmFkYVwiIGNsYXNzPVwiY29sLTEyIHotNVwiPlxyXG5cclxuICAgICAgPGt2LXRhYmxlXHJcbiAgICAgICAgW3RhYmxlU2l6ZV09XCJ0YWJsZVNpemVNYXN0ZXJcIlxyXG4gICAgICAgIFtyb3dzXT1cIjVcIlxyXG4gICAgICAgIFtjb25maWddPVwidGFibGVDb25maWdNYXN0ZXJcIlxyXG4gICAgICAgIFtwYWdpbmF0b3JdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VNYXN0ZXJcIlxyXG4gICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgNTAsIDEwMCwgMjAwXVwiXHJcbiAgICAgICAgKGRvdWJsZUNsaWNrRXZlbnQpPVwiZG91YmxlQ2xpY2tNYXN0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJhY3RpdmVJdGVtTWFzdGVyKCRldmVudClcIlxyXG4gICAgICAgIFtpc1RhYmxlU2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cIiczMDBweCdcIj5cclxuICAgICAgPC9rdi10YWJsZT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gRklNIERPIFdPUktTUEFDRSBERSBDT05UQUJJTElEQURFIChNQVNURVJTKSAtLT5cclxuXHJcbiAgICA8IS0tIElOw41DSU8gRE8gV09SS1NQQUNFIEVNUFJFU0EgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwibWFzdGVyU2VsZWNpb25hZGEgJiYgIWVtcHJlc2FTZWxlY2lvbmFkYVwiIGNsYXNzPVwiY29sLTEyIHotNVwiPlxyXG4gICAgICA8a3YtdGFibGVcclxuICAgICAgICBbdGFibGVTaXplXT1cInRhYmxlU2l6ZUVtcHJlc2FcIlxyXG4gICAgICAgIFtyb3dzXT1cIjVcIlxyXG4gICAgICAgIFtjb25maWddPVwidGFibGVDb25maWdFbXByZXNhXCJcclxuICAgICAgICBbcGFnaW5hdG9yXT1cInNob3dQYWdpbmF0b3JFbXByZXNhXCJcclxuICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlRW1wcmVzYVwiXHJcbiAgICAgICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbNV1cIlxyXG4gICAgICAgIChkb3VibGVDbGlja0V2ZW50KT1cImRvdWJsZUNsaWNrRW1wcmVzYSgkZXZlbnQpXCJcclxuICAgICAgICAob25BY3RpdmVJdGVtKT1cImFjdGl2ZUl0ZW1FbXByZXNhKCRldmVudClcIlxyXG4gICAgICAgIFtpc1RhYmxlU2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cIiczMDBweCdcIj5cclxuICAgICAgPC9rdi10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBGSU0gRE8gV09SS1NQQUNFIEVNUFJFU0EgLS0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|