cps-ui-kit 0.54.0 → 0.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/assets/fonts/SourceSansPro-Regular.ttf +0 -0
- package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +6 -3
- package/esm2020/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +3 -3
- package/esm2020/lib/components/cps-checkbox/cps-checkbox.component.mjs +3 -3
- package/esm2020/lib/components/cps-chip/cps-chip.component.mjs +3 -3
- package/esm2020/lib/components/cps-datepicker/cps-datepicker.component.mjs +6 -3
- package/esm2020/lib/components/cps-input/cps-input.component.mjs +6 -3
- package/esm2020/lib/components/cps-loader/cps-loader.component.mjs +3 -3
- package/esm2020/lib/components/cps-menu/cps-menu.component.mjs +48 -8
- package/esm2020/lib/components/cps-paginator/cps-paginator.component.mjs +1 -1
- package/esm2020/lib/components/cps-radio/cps-radio.component.mjs +3 -3
- package/esm2020/lib/components/cps-select/cps-select.component.mjs +6 -3
- package/esm2020/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +60 -0
- package/esm2020/lib/components/cps-tab-group/cps-tab-group.component.mjs +3 -3
- package/esm2020/lib/components/cps-table/cps-table.component.mjs +3 -3
- package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.mjs +2 -2
- package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter.component.mjs +2 -2
- package/esm2020/lib/components/cps-tag/cps-tag.component.mjs +3 -3
- package/esm2020/lib/components/cps-textarea/cps-textarea.component.mjs +3 -3
- package/esm2020/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +6 -3
- package/esm2020/lib/components/cps-tree-select/cps-tree-select.component.mjs +8 -5
- package/esm2020/lib/utils/internal/size-utils.mjs +3 -1
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/cps-ui-kit.mjs +157 -43
- package/fesm2015/cps-ui-kit.mjs.map +1 -1
- package/fesm2020/cps-ui-kit.mjs +156 -43
- package/fesm2020/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +3 -1
- package/lib/components/cps-datepicker/cps-datepicker.component.d.ts +3 -1
- package/lib/components/cps-input/cps-input.component.d.ts +3 -1
- package/lib/components/cps-menu/cps-menu.component.d.ts +7 -2
- package/lib/components/cps-select/cps-select.component.d.ts +3 -1
- package/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.d.ts +27 -0
- package/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.d.ts +3 -1
- package/lib/components/cps-tree-select/cps-tree-select.component.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/styles/fonts.scss +4 -0
- package/styles/styles.scss +1 -0
- package/styles/variables.scss +1 -1
- /package/styles/{_colors.scss → colors.scss} +0 -0
|
@@ -295,7 +295,7 @@ CpsTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
295
295
|
// eslint-disable-next-line no-use-before-define
|
|
296
296
|
deps: [CpsTableComponent]
|
|
297
297
|
}
|
|
298
|
-
], queries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "nestedHeaderTemplate", first: true, predicate: ["nestedHeader"], descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }, { propertyName: "rowExpansionTemplate", first: true, predicate: ["rowexpansion"], descendants: true }], viewQueries: [{ propertyName: "primengTable", first: true, predicate: ["primengTable"], descendants: true, static: true }], ngImport: i0, template: "<p-table\n #primengTable\n withUnsort\n [ngClass]=\"{ 'cps-table-loading': loading }\"\n [styleClass]=\"styleClass\"\n [value]=\"data\"\n [dataKey]=\"dataKey\"\n [columns]=\"selectedColumns\"\n (selectionChange)=\"onSelectionChanged($event)\"\n [globalFilterFields]=\"globalFilterFields\"\n [scrollable]=\"scrollable\"\n [scrollHeight]=\"scrollHeight\"\n [lazy]=\"lazy\"\n [loading]=\"loading\"\n [lazyLoadOnInit]=\"lazyLoadOnInit\"\n [virtualScroll]=\"virtualScroll\"\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\n [virtualScrollOptions]=\"{ numToleratedItems: 3 }\"\n [paginator]=\"paginator\"\n [showCurrentPageReport]=\"true\"\n [alwaysShowPaginator]=\"alwaysShowPaginator\"\n [showInitialSortBadge]=\"false\"\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\n [(selection)]=\"selectedRows\"\n [metaKeySelection]=\"false\"\n [rowHover]=\"rowHover\"\n [customSort]=\"customSort\"\n [sortMode]=\"sortMode\"\n [exportFilename]=\"exportFilename\"\n [csvSeparator]=\"csvSeparator\"\n (onPage)=\"onPageChange($event)\"\n (sortFunction)=\"onSortFunction($event)\"\n (onSort)=\"onSort($event)\"\n (onRowReorder)=\"onRowReorder($event)\">\n <ng-template pTemplate=\"caption\" *ngIf=\"hasToolbar\">\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!toolbarTemplate\">\n <div class=\"cps-table-tbar-left\">\n <div>{{ toolbarTitle }}</div>\n <div *ngIf=\"showGlobalFilter\" class=\"cps-table-tbar-global-filter\">\n <cps-input\n prefixIcon=\"search\"\n [placeholder]=\"globalFilterPlaceholder\"\n (valueChanged)=\"onFilterGlobal($event)\"\n [clearable]=\"true\"\n [hideDetails]=\"true\">\n </cps-input>\n </div>\n </div>\n <div class=\"cps-table-tbar-right\">\n <div\n *ngIf=\"showRemoveBtnOnSelect && selectedRows.length > 0\"\n class=\"cps-table-tbar-remove-btn\">\n <cps-button\n label=\"Remove\"\n color=\"prepared\"\n type=\"borderless\"\n icon=\"remove\"\n [size]=\"toolbarSize\"\n (clicked)=\"removeSelected()\">\n </cps-button>\n </div>\n <div *ngIf=\"showActionBtn\" class=\"cps-table-tbar-action-btn\">\n <cps-button\n [label]=\"actionBtnTitle\"\n color=\"prepared\"\n type=\"outlined\"\n [size]=\"toolbarSize\"\n (clicked)=\"onClickActionBtn()\">\n </cps-button>\n </div>\n <div\n *ngIf=\"showColumnsToggle && columns.length > 0\"\n class=\"cps-table-tbar-coltoggle-btn\">\n <cps-icon\n icon=\"columns\"\n size=\"normal\"\n color=\"prepared-lighten1\"\n (click)=\"colToggleMenu.toggle($event)\"></cps-icon>\n <cps-menu #colToggleMenu [withArrow]=\"false\">\n <div class=\"cps-table-coltoggle-menu\">\n <div\n class=\"cps-table-coltoggle-menu-item select-all-option\"\n [class.allselected]=\"selectedColumns.length === columns.length\"\n (click)=\"toggleAllColumns()\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"> </span>\n <span class=\"cps-table-coltoggle-menu-item-label\"\n >Show all columns</span\n >\n </span>\n </div>\n <div\n *ngFor=\"let col of columns\"\n class=\"cps-table-coltoggle-menu-item\"\n (click)=\"onSelectColumn(col)\"\n [class.selected]=\"isColumnSelected(col)\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"></span>\n <span class=\"cps-table-coltoggle-menu-item-label\">{{\n col[colHeaderName]\n }}</span>\n </span>\n </div>\n </div>\n </cps-menu>\n </div>\n <div *ngIf=\"showExportBtn\" class=\"cps-table-tbar-export-btn\">\n <cps-icon\n icon=\"export\"\n size=\"normal\"\n color=\"prepared\"\n (click)=\"exportMenu.toggle($event)\"></cps-icon>\n <cps-menu\n #exportMenu\n [items]=\"exportMenuItems\"\n [compressed]=\"true\"\n [withArrow]=\"false\">\n </cps-menu>\n </div>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"nestedHeaderTemplate\" let-columns>\n <ng-container\n *ngTemplateOutlet=\"\n nestedHeaderTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"!nestedHeaderTemplate\" let-columns>\n <tr>\n <th style=\"width: 3rem\" *ngIf=\"rowExpansionTemplate\"></th>\n <th style=\"width: 3rem\" *ngIf=\"reorderableRows\"></th>\n <th style=\"width: 4rem\" *ngIf=\"selectable\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!headerTemplate && columns.length > 0\">\n <ng-container *ngIf=\"sortable\">\n <th *ngFor=\"let col of columns\" [cpsColSortable]=\"col[colFieldName]\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n <ng-container *ngIf=\"!sortable\">\n <th *ngFor=\"let col of columns\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n </ng-container>\n <th\n style=\"width: 2rem\"\n class=\"cps-table-row-menu-cell\"\n *ngIf=\"showRowMenu\"></th>\n </tr>\n </ng-template>\n\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns=\"columns\"\n let-item\n let-rowIndex=\"rowIndex\"\n let-expanded=\"expanded\">\n <tr\n [pReorderableRow]=\"rowIndex\"\n [ngClass]=\"{\n 'cps-table-row-selected': selectable && primengTable.isSelected(item)\n }\">\n <td *ngIf=\"rowExpansionTemplate\" class=\"cps-table-row-chevron-cell\">\n <div\n class=\"cps-table-row-chevron\"\n [ngClass]=\"{ 'cps-table-row-chevron-expanded': expanded }\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n color=\"text-dark\"\n [pRowToggler]=\"item\">\n </cps-icon>\n </div>\n </td>\n <td *ngIf=\"reorderableRows\" class=\"cps-table-row-drag-handle-cell\">\n <span class=\"cps-table-row-drag-handle\" pReorderableRowHandle>\u2630</span>\n </td>\n <td *ngIf=\"selectable\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <ng-container *ngIf=\"bodyTemplate\">\n <ng-container\n pTemplate=\"body\"\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: {\n $implicit: item,\n rowIndex: rowIndex,\n columns: columns,\n rowData: rowData\n }\n \">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!bodyTemplate\">\n <ng-container *ngIf=\"columns.length > 0\">\n <td *ngFor=\"let col of columns\">\n {{ rowData[col[colFieldName]] }}\n </td>\n </ng-container>\n </ng-container>\n <td *ngIf=\"showRowMenu\" class=\"cps-table-row-menu-cell\">\n <table-row-menu\n (editRowBtnClicked)=\"onEditRowClicked(item)\"\n (removeRowBtnClicked)=\"onRemoveRowClicked(item)\"></table-row-menu>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" *ngIf=\"rowExpansionTemplate\" let-item>\n <tr class=\"cps-table-row-expanded-content\">\n <td colspan=\"100\">\n <ng-container\n *ngTemplateOutlet=\"\n rowExpansionTemplate;\n context: {\n $implicit: item\n }\n \"></ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td\n colspan=\"100\"\n class=\"cps-table-empty-message-td\"\n [ngStyle]=\"{ height: emptyBodyHeight }\">\n {{ emptyMessage }}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"loadingicon\">\n <cps-loader [fullScreen]=\"false\" opacity=\"0\"></cps-loader>\n </ng-template>\n <ng-template pTemplate=\"paginatorleft\">\n <div class=\"cps-table-paginator-itms-per-page\">\n <span class=\"cps-table-paginator-items-per-page-title\"\n >Rows per page:\n </span>\n <cps-select\n [options]=\"rowOptions\"\n [hideDetails]=\"true\"\n [(ngModel)]=\"rows\"\n (valueChanged)=\"onRowsPerPageChanged()\"\n [returnObject]=\"false\"\n optionsClass=\"cps-paginator-page-options\">\n </cps-select>\n </div>\n </ng-template>\n</p-table>\n", styles: [":host ::ng-deep .p-component{font-family:Source Sans Pro,sans-serif;font-size:14px;font-weight:400}:host ::ng-deep .p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}:host ::ng-deep .p-datatable{position:relative}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable .p-datatable-header{font-weight:600;display:flex;justify-content:space-between;align-items:center;padding:0 10px;border:1px solid var(--cps-color-line-mid);border-left:4px solid var(--cps-color-surprise)!important;border-radius:4px 4px 0 0;font-size:16px;line-height:150%;background-color:#fff;color:var(--cps-color-text-dark);overflow:auto}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left .cps-table-tbar-global-filter{margin-left:12px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-remove-btn{margin-right:4px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-action-btn{margin-right:4px;margin-left:8px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn{display:contents}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon{margin-left:8px;margin-right:4px;cursor:pointer}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon:hover .cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon:hover .cps-icon{color:var(--cps-color-prepared)!important}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon .cps-icon{width:22px;height:22px}:host ::ng-deep .cps-tbar-small.p-datatable .p-datatable-header{height:43px}:host ::ng-deep .cps-tbar-normal.p-datatable .p-datatable-header{height:72px}:host ::ng-deep .p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}:host ::ng-deep .p-datatable-scrollable>.p-datatable-wrapper{position:relative}:host ::ng-deep .p-datatable>.p-datatable-wrapper{overflow:auto}:host ::ng-deep .p-datatable-table{border-spacing:0px;width:100%}:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#fff}:host ::ng-deep .p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight:hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;font-weight:400;color:var(--cps-color-text-mild);background:white;transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th:hover sortalticon{opacity:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead tr:not(:first-child) th{border-top:unset}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:var(--cps-color-text-dark)}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon{color:var(--cps-color-text-mild);margin-left:.5rem}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:var(--cps-color-calm)}:host ::ng-deep .p-icon{display:inline-block;width:1rem;height:1rem}:host ::ng-deep .p-sortable-column-icon{width:13px;height:13px}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .p-datatable .p-sortable-column .p-column-title,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:unset}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.125rem;min-width:1.125rem;line-height:1.125rem;color:var(--cps-color-calm);background:#f1eaec;margin-left:.5rem}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column:focus{box-shadow:none;outline:0 none}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(odd){background:var(--cps-color-bg-light)}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#ffffff}:host ::ng-deep .p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):not(.cps-table-row-expanded-content):hover{background:#f8f4f5}:host ::ng-deep .p-datatable .p-datatable-tbody>tr{background:#ffffff;color:var(--cps-color-text-dark);transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.cps-table-row-selected{background-color:#f1ebed!important}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}:host ::ng-deep .p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;padding:1rem}:host ::ng-deep td:has(p-tablecheckbox){text-align:center!important}:host ::ng-deep th:has(p-tableheadercheckbox){text-align:center!important;width:3rem!important}:host ::ng-deep .p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative;width:18px;height:18px}:host ::ng-deep .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}:host ::ng-deep .p-hidden-accessible input,:host ::ng-deep .p-hidden-accessible select{transform:scale(0)}:host ::ng-deep .p-checkbox .p-checkbox-box{background:#ffffff;width:18px;height:18px;color:var(--cps-color-text-dark);border:2px solid var(--cps-color-text-mild);border-radius:2px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .p-checkbox-box{display:flex;justify-content:center;align-items:center}:host ::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:var(--cps-color-calm);background:var(--cps-color-calm)}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:var(--cps-color-calm);background:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:var(--cps-color-calm)}:host ::ng-deep .p-checkbox .p-checkbox-box .p-icon{width:14px;height:14px}:host ::ng-deep .p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}:host ::ng-deep .p-datatable-reorderablerow-handle,:host ::ng-deep [pReorderableColumn]{cursor:move;font-size:20px;line-height:1}:host ::ng-deep .p-datatable-reorderablerow-handle:hover,:host ::ng-deep [pReorderableColumn]:hover{color:var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}:host ::ng-deep .p-paginator{background:white;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;color:var(--cps-color-text-dark);padding:1rem;border:solid var(--cps-color-line-mid)}:host ::ng-deep .p-paginator-left-content{margin-right:auto}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page{display:inline-flex;align-items:center}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-table-paginator-items-per-page-title{font-family:Source Sans Pro,sans-serif;font-size:14px;margin-right:12px}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box{min-height:32px!important;background:transparent!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-items{font-size:14px!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-chevron .cps-icon{width:14px;height:14px}:host ::ng-deep .p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:var(--cps-color-text-dark);min-width:3rem;margin:.143rem;padding:0 .5rem;font-family:Source Sans Pro,sans-serif;font-size:14px}:host ::ng-deep .p-paginator-page,:host ::ng-deep .p-paginator-next,:host ::ng-deep .p-paginator-last,:host ::ng-deep .p-paginator-first,:host ::ng-deep .p-paginator-prev,:host ::ng-deep .p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-first,:host ::ng-deep .p-paginator .p-paginator-prev,:host ::ng-deep .p-paginator .p-paginator-next,:host ::ng-deep .p-paginator .p-paginator-last{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-icon-wrapper{display:inline-flex}:host ::ng-deep .p-disabled,:host ::ng-deep .p-disabled *{cursor:default!important;pointer-events:none}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:var(--cps-color-calm);border-color:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-paginator-element:focus{z-index:1;position:relative}:host ::ng-deep .p-link:focus{outline:0 none;outline-offset:0}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;font-family:Source Sans Pro,sans-serif}:host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:.4}:host ::ng-deep .cps-table-empty-message-td{text-align:center!important;font-weight:600;background:white}:host ::ng-deep .cps-table-row-drag-handle-cell{text-align:center!important}:host ::ng-deep .cps-table-row-drag-handle-cell .cps-table-row-drag-handle{-webkit-user-select:none;user-select:none}:host ::ng-deep .cps-table-row-chevron-cell{text-align:center!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron{transition-duration:.2s;cursor:pointer;display:inline-flex}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron:hover cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron-expanded{transform:rotate(180deg)}:host ::ng-deep .cps-table-row-menu-cell{border-left:none!important}:host ::ng-deep .p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1001;top:0;left:0;width:100%;height:100%;background-color:#fff;transition-duration:.2s;border:1px solid var(--cps-color-line-mid)}:host ::ng-deep .p-datatable.cps-tbar-small .p-datatable-loading-overlay{top:43px;height:calc(100% - 43px)}:host ::ng-deep .p-datatable.cps-tbar-normal .p-datatable-loading-overlay{top:72px;height:calc(100% - 72px)}:host ::ng-deep .cps-table-loading .p-datatable{min-height:200px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-normal{min-height:272px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-small{min-height:243px}:host ::ng-deep .p-datatable.cps-tbar-small .p-datatable-header .cps-table-tbar-left .cps-table-tbar-global-filter cps-input .cps-input-container .cps-input-wrap input{line-height:1;border:none;border-bottom:1px solid var(--cps-color-text-lightest);border-radius:0}:host ::ng-deep .p-sortable-column.cps-table-col-filter-menu-open{cursor:default}:host ::ng-deep .cps-table-col-filter-menu-open .cps-table-col-filter-menu-button{color:var(--cps-color-text-dark)}:host ::ng-deep sortalticon{opacity:0}:host ::ng-deep p-sorticon{display:inline-flex;align-items:baseline}.cps-table-coltoggle-menu{display:block;max-height:242px;overflow-x:hidden;background:white}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item{padding:12px;justify-content:space-between;display:flex;cursor:pointer}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item:hover{background:#f8f4f5}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-label{color:var(--cps-color-text-dark)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-left{display:flex;align-items:center;margin-right:8px}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check{background-color:transparent;border:0;width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1);margin-right:8px;opacity:0}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check:after{color:var(--cps-color-calm);top:4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box;position:absolute;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected{font-weight:600}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-label,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-label{color:var(--cps-color-calm)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-check,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-check{opacity:1}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected{background:#efe4e7}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.highlighten{background:#f5eeef}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected.highlighten{background:#e6d4d9}.cps-table-coltoggle-menu .select-all-option{border-bottom:1px solid lightgrey;font-weight:600}::ng-deep .cps-select-options-menu.cps-paginator-page-options .cps-select-options-option{font-size:14px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.RowToggler, selector: "[pRowToggler]", inputs: ["pRowToggler", "pRowTogglerDisabled"] }, { kind: "component", type: i3.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i3.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: i3.ReorderableRowHandle, selector: "[pReorderableRowHandle]" }, { kind: "directive", type: i3.ReorderableRow, selector: "[pReorderableRow]", inputs: ["pReorderableRow", "pReorderableRowDisabled"] }, { kind: "directive", type: TableUnsortDirective, selector: "[withUnsort]" }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsButtonComponent, selector: "cps-button", inputs: ["color", "contentColor", "type", "label", "icon", "iconPosition", "size", "width", "height", "disabled", "loading"], outputs: ["clicked"] }, { kind: "component", type: CpsSelectComponent, selector: "cps-select", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "virtualScroll", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "optionsClass", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }, { kind: "component", type: CpsLoaderComponent, selector: "cps-loader", inputs: ["fullScreen", "opacity", "labelColor", "showLabel"] }, { kind: "component", type: TableRowMenuComponent, selector: "table-row-menu", outputs: ["editRowBtnClicked", "removeRowBtnClicked"] }, { kind: "directive", type: CpsTableColumnSortableDirective, selector: "[cpsColSortable]", inputs: ["cpsColSortable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
298
|
+
], queries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "nestedHeaderTemplate", first: true, predicate: ["nestedHeader"], descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }, { propertyName: "rowExpansionTemplate", first: true, predicate: ["rowexpansion"], descendants: true }], viewQueries: [{ propertyName: "primengTable", first: true, predicate: ["primengTable"], descendants: true, static: true }], ngImport: i0, template: "<p-table\n #primengTable\n withUnsort\n [ngClass]=\"{ 'cps-table-loading': loading }\"\n [styleClass]=\"styleClass\"\n [value]=\"data\"\n [dataKey]=\"dataKey\"\n [columns]=\"selectedColumns\"\n (selectionChange)=\"onSelectionChanged($event)\"\n [globalFilterFields]=\"globalFilterFields\"\n [scrollable]=\"scrollable\"\n [scrollHeight]=\"scrollHeight\"\n [lazy]=\"lazy\"\n [loading]=\"loading\"\n [lazyLoadOnInit]=\"lazyLoadOnInit\"\n [virtualScroll]=\"virtualScroll\"\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\n [virtualScrollOptions]=\"{ numToleratedItems: 3 }\"\n [paginator]=\"paginator\"\n [showCurrentPageReport]=\"true\"\n [alwaysShowPaginator]=\"alwaysShowPaginator\"\n [showInitialSortBadge]=\"false\"\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\n [(selection)]=\"selectedRows\"\n [metaKeySelection]=\"false\"\n [rowHover]=\"rowHover\"\n [customSort]=\"customSort\"\n [sortMode]=\"sortMode\"\n [exportFilename]=\"exportFilename\"\n [csvSeparator]=\"csvSeparator\"\n (onPage)=\"onPageChange($event)\"\n (sortFunction)=\"onSortFunction($event)\"\n (onSort)=\"onSort($event)\"\n (onRowReorder)=\"onRowReorder($event)\">\n <ng-template pTemplate=\"caption\" *ngIf=\"hasToolbar\">\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!toolbarTemplate\">\n <div class=\"cps-table-tbar-left\">\n <div>{{ toolbarTitle }}</div>\n <div *ngIf=\"showGlobalFilter\" class=\"cps-table-tbar-global-filter\">\n <cps-input\n prefixIcon=\"search\"\n [placeholder]=\"globalFilterPlaceholder\"\n (valueChanged)=\"onFilterGlobal($event)\"\n [clearable]=\"true\"\n [appearance]=\"toolbarSize === 'small' ? 'underlined' : 'outlined'\"\n [hideDetails]=\"true\">\n </cps-input>\n </div>\n </div>\n <div class=\"cps-table-tbar-right\">\n <div\n *ngIf=\"showRemoveBtnOnSelect && selectedRows.length > 0\"\n class=\"cps-table-tbar-remove-btn\">\n <cps-button\n label=\"Remove\"\n color=\"prepared\"\n type=\"borderless\"\n icon=\"remove\"\n [size]=\"toolbarSize\"\n (clicked)=\"removeSelected()\">\n </cps-button>\n </div>\n <div *ngIf=\"showActionBtn\" class=\"cps-table-tbar-action-btn\">\n <cps-button\n [label]=\"actionBtnTitle\"\n color=\"prepared\"\n type=\"outlined\"\n [size]=\"toolbarSize\"\n (clicked)=\"onClickActionBtn()\">\n </cps-button>\n </div>\n <div\n *ngIf=\"showColumnsToggle && columns.length > 0\"\n class=\"cps-table-tbar-coltoggle-btn\">\n <cps-icon\n icon=\"columns\"\n size=\"normal\"\n color=\"prepared-lighten1\"\n (click)=\"colToggleMenu.toggle($event)\"></cps-icon>\n <cps-menu #colToggleMenu [withArrow]=\"false\">\n <div class=\"cps-table-coltoggle-menu\">\n <div\n class=\"cps-table-coltoggle-menu-item select-all-option\"\n [class.allselected]=\"selectedColumns.length === columns.length\"\n (click)=\"toggleAllColumns()\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"> </span>\n <span class=\"cps-table-coltoggle-menu-item-label\"\n >Show all columns</span\n >\n </span>\n </div>\n <div\n *ngFor=\"let col of columns\"\n class=\"cps-table-coltoggle-menu-item\"\n (click)=\"onSelectColumn(col)\"\n [class.selected]=\"isColumnSelected(col)\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"></span>\n <span class=\"cps-table-coltoggle-menu-item-label\">{{\n col[colHeaderName]\n }}</span>\n </span>\n </div>\n </div>\n </cps-menu>\n </div>\n <div *ngIf=\"showExportBtn\" class=\"cps-table-tbar-export-btn\">\n <cps-icon\n icon=\"export\"\n size=\"normal\"\n color=\"prepared\"\n (click)=\"exportMenu.toggle($event)\"></cps-icon>\n <cps-menu\n #exportMenu\n [items]=\"exportMenuItems\"\n [compressed]=\"true\"\n [withArrow]=\"false\">\n </cps-menu>\n </div>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"nestedHeaderTemplate\" let-columns>\n <ng-container\n *ngTemplateOutlet=\"\n nestedHeaderTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"!nestedHeaderTemplate\" let-columns>\n <tr>\n <th style=\"width: 3rem\" *ngIf=\"rowExpansionTemplate\"></th>\n <th style=\"width: 3rem\" *ngIf=\"reorderableRows\"></th>\n <th style=\"width: 4rem\" *ngIf=\"selectable\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!headerTemplate && columns.length > 0\">\n <ng-container *ngIf=\"sortable\">\n <th *ngFor=\"let col of columns\" [cpsColSortable]=\"col[colFieldName]\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n <ng-container *ngIf=\"!sortable\">\n <th *ngFor=\"let col of columns\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n </ng-container>\n <th\n style=\"width: 2rem\"\n class=\"cps-table-row-menu-cell\"\n *ngIf=\"showRowMenu\"></th>\n </tr>\n </ng-template>\n\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns=\"columns\"\n let-item\n let-rowIndex=\"rowIndex\"\n let-expanded=\"expanded\">\n <tr\n [pReorderableRow]=\"rowIndex\"\n [ngClass]=\"{\n 'cps-table-row-selected': selectable && primengTable.isSelected(item)\n }\">\n <td *ngIf=\"rowExpansionTemplate\" class=\"cps-table-row-chevron-cell\">\n <div\n class=\"cps-table-row-chevron\"\n [ngClass]=\"{ 'cps-table-row-chevron-expanded': expanded }\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n color=\"text-dark\"\n [pRowToggler]=\"item\">\n </cps-icon>\n </div>\n </td>\n <td *ngIf=\"reorderableRows\" class=\"cps-table-row-drag-handle-cell\">\n <span class=\"cps-table-row-drag-handle\" pReorderableRowHandle>\u2630</span>\n </td>\n <td *ngIf=\"selectable\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <ng-container *ngIf=\"bodyTemplate\">\n <ng-container\n pTemplate=\"body\"\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: {\n $implicit: item,\n rowIndex: rowIndex,\n columns: columns,\n rowData: rowData\n }\n \">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!bodyTemplate\">\n <ng-container *ngIf=\"columns.length > 0\">\n <td *ngFor=\"let col of columns\">\n {{ rowData[col[colFieldName]] }}\n </td>\n </ng-container>\n </ng-container>\n <td *ngIf=\"showRowMenu\" class=\"cps-table-row-menu-cell\">\n <table-row-menu\n (editRowBtnClicked)=\"onEditRowClicked(item)\"\n (removeRowBtnClicked)=\"onRemoveRowClicked(item)\"></table-row-menu>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" *ngIf=\"rowExpansionTemplate\" let-item>\n <tr class=\"cps-table-row-expanded-content\">\n <td colspan=\"100\">\n <ng-container\n *ngTemplateOutlet=\"\n rowExpansionTemplate;\n context: {\n $implicit: item\n }\n \"></ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td\n colspan=\"100\"\n class=\"cps-table-empty-message-td\"\n [ngStyle]=\"{ height: emptyBodyHeight }\">\n {{ emptyMessage }}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"loadingicon\">\n <cps-loader [fullScreen]=\"false\" opacity=\"0\"></cps-loader>\n </ng-template>\n <ng-template pTemplate=\"paginatorleft\">\n <div class=\"cps-table-paginator-itms-per-page\">\n <span class=\"cps-table-paginator-items-per-page-title\"\n >Rows per page:\n </span>\n <cps-select\n [options]=\"rowOptions\"\n [hideDetails]=\"true\"\n [(ngModel)]=\"rows\"\n (valueChanged)=\"onRowsPerPageChanged()\"\n [returnObject]=\"false\"\n optionsClass=\"cps-paginator-page-options\">\n </cps-select>\n </div>\n </ng-template>\n</p-table>\n", styles: [":host ::ng-deep .p-component{font-family:Source Sans Pro,sans-serif;font-size:14px;font-weight:400}:host ::ng-deep .p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}:host ::ng-deep .p-datatable{position:relative}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable .p-datatable-header{font-weight:600;display:flex;justify-content:space-between;align-items:center;padding:0 10px;border:1px solid var(--cps-color-line-mid);border-left:4px solid var(--cps-color-surprise)!important;border-radius:4px 4px 0 0;font-size:16px;line-height:150%;background-color:#fff;color:var(--cps-color-text-dark);overflow:auto}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left .cps-table-tbar-global-filter{margin-left:12px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-remove-btn{margin-right:4px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-action-btn{margin-right:4px;margin-left:8px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn{display:contents}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon{margin-left:8px;margin-right:4px;cursor:pointer}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon:hover .cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon:hover .cps-icon{color:var(--cps-color-prepared)!important}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon .cps-icon{width:22px;height:22px}:host ::ng-deep .cps-tbar-small.p-datatable .p-datatable-header{height:43px}:host ::ng-deep .cps-tbar-normal.p-datatable .p-datatable-header{height:72px}:host ::ng-deep .p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}:host ::ng-deep .p-datatable-scrollable>.p-datatable-wrapper{position:relative}:host ::ng-deep .p-datatable>.p-datatable-wrapper{overflow:auto}:host ::ng-deep .p-datatable-table{border-spacing:0px;width:100%}:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#fff}:host ::ng-deep .p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight:hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;font-weight:400;color:var(--cps-color-text-mild);background:white;transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th:hover sortalticon{opacity:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead tr:not(:first-child) th{border-top:unset}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:var(--cps-color-text-dark)}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon{color:var(--cps-color-text-mild);margin-left:.5rem}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:var(--cps-color-calm)}:host ::ng-deep .p-icon{display:inline-block;width:1rem;height:1rem}:host ::ng-deep .p-sortable-column-icon{width:13px;height:13px}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .p-datatable .p-sortable-column .p-column-title,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:unset}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.125rem;min-width:1.125rem;line-height:1.125rem;color:var(--cps-color-calm);background:#f1eaec;margin-left:.5rem}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column:focus{box-shadow:none;outline:0 none}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(odd){background:var(--cps-color-bg-light)}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#ffffff}:host ::ng-deep .p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):not(.cps-table-row-expanded-content):hover{background:#f8f4f5}:host ::ng-deep .p-datatable .p-datatable-tbody>tr{background:#ffffff;color:var(--cps-color-text-dark);transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.cps-table-row-selected{background-color:#f1ebed!important}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}:host ::ng-deep .p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;padding:1rem}:host ::ng-deep td:has(p-tablecheckbox){text-align:center!important}:host ::ng-deep th:has(p-tableheadercheckbox){text-align:center!important;width:3rem!important}:host ::ng-deep .p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative;width:18px;height:18px}:host ::ng-deep .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}:host ::ng-deep .p-hidden-accessible input,:host ::ng-deep .p-hidden-accessible select{transform:scale(0)}:host ::ng-deep .p-checkbox .p-checkbox-box{background:#ffffff;width:18px;height:18px;color:var(--cps-color-text-dark);border:2px solid var(--cps-color-text-mild);border-radius:2px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .p-checkbox-box{display:flex;justify-content:center;align-items:center}:host ::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:var(--cps-color-calm);background:var(--cps-color-calm)}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:var(--cps-color-calm);background:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:var(--cps-color-calm)}:host ::ng-deep .p-checkbox .p-checkbox-box .p-icon{width:14px;height:14px}:host ::ng-deep .p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}:host ::ng-deep .p-datatable-reorderablerow-handle,:host ::ng-deep [pReorderableColumn]{cursor:move;font-size:20px;line-height:1}:host ::ng-deep .p-datatable-reorderablerow-handle:hover,:host ::ng-deep [pReorderableColumn]:hover{color:var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}:host ::ng-deep .p-paginator{background:white;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;color:var(--cps-color-text-dark);padding:1rem;border:solid var(--cps-color-line-mid)}:host ::ng-deep .p-paginator-left-content{margin-right:auto}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page{display:inline-flex;align-items:center}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-table-paginator-items-per-page-title{font-family:Source Sans Pro,sans-serif;font-size:14px;margin-right:12px}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box{min-height:32px!important;background:transparent!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-items{font-size:14px!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-chevron .cps-icon{width:14px;height:14px}:host ::ng-deep .p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:var(--cps-color-text-dark);min-width:3rem;margin:.143rem;padding:0 .5rem;font-family:Source Sans Pro,sans-serif;font-size:14px}:host ::ng-deep .p-paginator-page,:host ::ng-deep .p-paginator-next,:host ::ng-deep .p-paginator-last,:host ::ng-deep .p-paginator-first,:host ::ng-deep .p-paginator-prev,:host ::ng-deep .p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-first,:host ::ng-deep .p-paginator .p-paginator-prev,:host ::ng-deep .p-paginator .p-paginator-next,:host ::ng-deep .p-paginator .p-paginator-last{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-icon-wrapper{display:inline-flex}:host ::ng-deep .p-disabled,:host ::ng-deep .p-disabled *{cursor:default!important;pointer-events:none}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:var(--cps-color-calm);border-color:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-paginator-element:focus{z-index:1;position:relative}:host ::ng-deep .p-link:focus{outline:0 none;outline-offset:0}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;font-family:Source Sans Pro,sans-serif}:host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:.4}:host ::ng-deep .cps-table-empty-message-td{text-align:center!important;font-weight:600;background:white}:host ::ng-deep .cps-table-row-drag-handle-cell{text-align:center!important}:host ::ng-deep .cps-table-row-drag-handle-cell .cps-table-row-drag-handle{-webkit-user-select:none;user-select:none}:host ::ng-deep .cps-table-row-chevron-cell{text-align:center!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron{transition-duration:.2s;cursor:pointer;display:inline-flex}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron:hover cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron-expanded{transform:rotate(180deg)}:host ::ng-deep .cps-table-row-menu-cell{border-left:none!important}:host ::ng-deep .p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1001;top:0;left:0;width:100%;height:100%;background-color:#fff;transition-duration:.2s;border:1px solid var(--cps-color-line-mid)}:host ::ng-deep .p-datatable.cps-tbar-small .p-datatable-loading-overlay{top:43px;height:calc(100% - 43px)}:host ::ng-deep .p-datatable.cps-tbar-normal .p-datatable-loading-overlay{top:72px;height:calc(100% - 72px)}:host ::ng-deep .cps-table-loading .p-datatable{min-height:200px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-normal{min-height:272px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-small{min-height:243px}:host ::ng-deep .p-sortable-column.cps-table-col-filter-menu-open{cursor:default}:host ::ng-deep .cps-table-col-filter-menu-open .cps-table-col-filter-menu-button{color:var(--cps-color-text-dark)}:host ::ng-deep sortalticon{opacity:0}:host ::ng-deep p-sorticon{display:inline-flex;align-items:baseline}.cps-table-coltoggle-menu{display:block;max-height:242px;overflow-x:hidden;background:white}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item{padding:12px;justify-content:space-between;display:flex;cursor:pointer}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item:hover{background:#f8f4f5}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-label{color:var(--cps-color-text-dark)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-left{display:flex;align-items:center;margin-right:8px}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check{background-color:transparent;border:0;width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1);margin-right:8px;opacity:0}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check:after{color:var(--cps-color-calm);top:4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box;position:absolute;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected{font-weight:600}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-label,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-label{color:var(--cps-color-calm)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-check,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-check{opacity:1}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected{background:#efe4e7}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.highlighten{background:#f5eeef}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected.highlighten{background:#e6d4d9}.cps-table-coltoggle-menu .select-all-option{border-bottom:1px solid lightgrey;font-weight:600}::ng-deep .cps-select-options-menu.cps-paginator-page-options .cps-select-options-option{font-size:14px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.RowToggler, selector: "[pRowToggler]", inputs: ["pRowToggler", "pRowTogglerDisabled"] }, { kind: "component", type: i3.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i3.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: i3.ReorderableRowHandle, selector: "[pReorderableRowHandle]" }, { kind: "directive", type: i3.ReorderableRow, selector: "[pReorderableRow]", inputs: ["pReorderableRow", "pReorderableRowDisabled"] }, { kind: "directive", type: TableUnsortDirective, selector: "[withUnsort]" }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsButtonComponent, selector: "cps-button", inputs: ["color", "contentColor", "type", "label", "icon", "iconPosition", "size", "width", "height", "disabled", "loading"], outputs: ["clicked"] }, { kind: "component", type: CpsSelectComponent, selector: "cps-select", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "virtualScroll", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "optionsClass", "appearance", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }, { kind: "component", type: CpsLoaderComponent, selector: "cps-loader", inputs: ["fullScreen", "opacity", "labelColor", "showLabel"] }, { kind: "component", type: TableRowMenuComponent, selector: "table-row-menu", outputs: ["editRowBtnClicked", "removeRowBtnClicked"] }, { kind: "directive", type: CpsTableColumnSortableDirective, selector: "[cpsColSortable]", inputs: ["cpsColSortable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
299
299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableComponent, decorators: [{
|
|
300
300
|
type: Component,
|
|
301
301
|
args: [{ selector: 'cps-table', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
@@ -319,7 +319,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
319
319
|
// eslint-disable-next-line no-use-before-define
|
|
320
320
|
deps: [CpsTableComponent]
|
|
321
321
|
}
|
|
322
|
-
], template: "<p-table\n #primengTable\n withUnsort\n [ngClass]=\"{ 'cps-table-loading': loading }\"\n [styleClass]=\"styleClass\"\n [value]=\"data\"\n [dataKey]=\"dataKey\"\n [columns]=\"selectedColumns\"\n (selectionChange)=\"onSelectionChanged($event)\"\n [globalFilterFields]=\"globalFilterFields\"\n [scrollable]=\"scrollable\"\n [scrollHeight]=\"scrollHeight\"\n [lazy]=\"lazy\"\n [loading]=\"loading\"\n [lazyLoadOnInit]=\"lazyLoadOnInit\"\n [virtualScroll]=\"virtualScroll\"\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\n [virtualScrollOptions]=\"{ numToleratedItems: 3 }\"\n [paginator]=\"paginator\"\n [showCurrentPageReport]=\"true\"\n [alwaysShowPaginator]=\"alwaysShowPaginator\"\n [showInitialSortBadge]=\"false\"\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\n [(selection)]=\"selectedRows\"\n [metaKeySelection]=\"false\"\n [rowHover]=\"rowHover\"\n [customSort]=\"customSort\"\n [sortMode]=\"sortMode\"\n [exportFilename]=\"exportFilename\"\n [csvSeparator]=\"csvSeparator\"\n (onPage)=\"onPageChange($event)\"\n (sortFunction)=\"onSortFunction($event)\"\n (onSort)=\"onSort($event)\"\n (onRowReorder)=\"onRowReorder($event)\">\n <ng-template pTemplate=\"caption\" *ngIf=\"hasToolbar\">\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!toolbarTemplate\">\n <div class=\"cps-table-tbar-left\">\n <div>{{ toolbarTitle }}</div>\n <div *ngIf=\"showGlobalFilter\" class=\"cps-table-tbar-global-filter\">\n <cps-input\n prefixIcon=\"search\"\n [placeholder]=\"globalFilterPlaceholder\"\n (valueChanged)=\"onFilterGlobal($event)\"\n [clearable]=\"true\"\n [hideDetails]=\"true\">\n </cps-input>\n </div>\n </div>\n <div class=\"cps-table-tbar-right\">\n <div\n *ngIf=\"showRemoveBtnOnSelect && selectedRows.length > 0\"\n class=\"cps-table-tbar-remove-btn\">\n <cps-button\n label=\"Remove\"\n color=\"prepared\"\n type=\"borderless\"\n icon=\"remove\"\n [size]=\"toolbarSize\"\n (clicked)=\"removeSelected()\">\n </cps-button>\n </div>\n <div *ngIf=\"showActionBtn\" class=\"cps-table-tbar-action-btn\">\n <cps-button\n [label]=\"actionBtnTitle\"\n color=\"prepared\"\n type=\"outlined\"\n [size]=\"toolbarSize\"\n (clicked)=\"onClickActionBtn()\">\n </cps-button>\n </div>\n <div\n *ngIf=\"showColumnsToggle && columns.length > 0\"\n class=\"cps-table-tbar-coltoggle-btn\">\n <cps-icon\n icon=\"columns\"\n size=\"normal\"\n color=\"prepared-lighten1\"\n (click)=\"colToggleMenu.toggle($event)\"></cps-icon>\n <cps-menu #colToggleMenu [withArrow]=\"false\">\n <div class=\"cps-table-coltoggle-menu\">\n <div\n class=\"cps-table-coltoggle-menu-item select-all-option\"\n [class.allselected]=\"selectedColumns.length === columns.length\"\n (click)=\"toggleAllColumns()\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"> </span>\n <span class=\"cps-table-coltoggle-menu-item-label\"\n >Show all columns</span\n >\n </span>\n </div>\n <div\n *ngFor=\"let col of columns\"\n class=\"cps-table-coltoggle-menu-item\"\n (click)=\"onSelectColumn(col)\"\n [class.selected]=\"isColumnSelected(col)\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"></span>\n <span class=\"cps-table-coltoggle-menu-item-label\">{{\n col[colHeaderName]\n }}</span>\n </span>\n </div>\n </div>\n </cps-menu>\n </div>\n <div *ngIf=\"showExportBtn\" class=\"cps-table-tbar-export-btn\">\n <cps-icon\n icon=\"export\"\n size=\"normal\"\n color=\"prepared\"\n (click)=\"exportMenu.toggle($event)\"></cps-icon>\n <cps-menu\n #exportMenu\n [items]=\"exportMenuItems\"\n [compressed]=\"true\"\n [withArrow]=\"false\">\n </cps-menu>\n </div>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"nestedHeaderTemplate\" let-columns>\n <ng-container\n *ngTemplateOutlet=\"\n nestedHeaderTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"!nestedHeaderTemplate\" let-columns>\n <tr>\n <th style=\"width: 3rem\" *ngIf=\"rowExpansionTemplate\"></th>\n <th style=\"width: 3rem\" *ngIf=\"reorderableRows\"></th>\n <th style=\"width: 4rem\" *ngIf=\"selectable\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!headerTemplate && columns.length > 0\">\n <ng-container *ngIf=\"sortable\">\n <th *ngFor=\"let col of columns\" [cpsColSortable]=\"col[colFieldName]\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n <ng-container *ngIf=\"!sortable\">\n <th *ngFor=\"let col of columns\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n </ng-container>\n <th\n style=\"width: 2rem\"\n class=\"cps-table-row-menu-cell\"\n *ngIf=\"showRowMenu\"></th>\n </tr>\n </ng-template>\n\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns=\"columns\"\n let-item\n let-rowIndex=\"rowIndex\"\n let-expanded=\"expanded\">\n <tr\n [pReorderableRow]=\"rowIndex\"\n [ngClass]=\"{\n 'cps-table-row-selected': selectable && primengTable.isSelected(item)\n }\">\n <td *ngIf=\"rowExpansionTemplate\" class=\"cps-table-row-chevron-cell\">\n <div\n class=\"cps-table-row-chevron\"\n [ngClass]=\"{ 'cps-table-row-chevron-expanded': expanded }\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n color=\"text-dark\"\n [pRowToggler]=\"item\">\n </cps-icon>\n </div>\n </td>\n <td *ngIf=\"reorderableRows\" class=\"cps-table-row-drag-handle-cell\">\n <span class=\"cps-table-row-drag-handle\" pReorderableRowHandle>\u2630</span>\n </td>\n <td *ngIf=\"selectable\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <ng-container *ngIf=\"bodyTemplate\">\n <ng-container\n pTemplate=\"body\"\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: {\n $implicit: item,\n rowIndex: rowIndex,\n columns: columns,\n rowData: rowData\n }\n \">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!bodyTemplate\">\n <ng-container *ngIf=\"columns.length > 0\">\n <td *ngFor=\"let col of columns\">\n {{ rowData[col[colFieldName]] }}\n </td>\n </ng-container>\n </ng-container>\n <td *ngIf=\"showRowMenu\" class=\"cps-table-row-menu-cell\">\n <table-row-menu\n (editRowBtnClicked)=\"onEditRowClicked(item)\"\n (removeRowBtnClicked)=\"onRemoveRowClicked(item)\"></table-row-menu>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" *ngIf=\"rowExpansionTemplate\" let-item>\n <tr class=\"cps-table-row-expanded-content\">\n <td colspan=\"100\">\n <ng-container\n *ngTemplateOutlet=\"\n rowExpansionTemplate;\n context: {\n $implicit: item\n }\n \"></ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td\n colspan=\"100\"\n class=\"cps-table-empty-message-td\"\n [ngStyle]=\"{ height: emptyBodyHeight }\">\n {{ emptyMessage }}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"loadingicon\">\n <cps-loader [fullScreen]=\"false\" opacity=\"0\"></cps-loader>\n </ng-template>\n <ng-template pTemplate=\"paginatorleft\">\n <div class=\"cps-table-paginator-itms-per-page\">\n <span class=\"cps-table-paginator-items-per-page-title\"\n >Rows per page:\n </span>\n <cps-select\n [options]=\"rowOptions\"\n [hideDetails]=\"true\"\n [(ngModel)]=\"rows\"\n (valueChanged)=\"onRowsPerPageChanged()\"\n [returnObject]=\"false\"\n optionsClass=\"cps-paginator-page-options\">\n </cps-select>\n </div>\n </ng-template>\n</p-table>\n", styles: [":host ::ng-deep .p-component{font-family:Source Sans Pro,sans-serif;font-size:14px;font-weight:400}:host ::ng-deep .p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}:host ::ng-deep .p-datatable{position:relative}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable .p-datatable-header{font-weight:600;display:flex;justify-content:space-between;align-items:center;padding:0 10px;border:1px solid var(--cps-color-line-mid);border-left:4px solid var(--cps-color-surprise)!important;border-radius:4px 4px 0 0;font-size:16px;line-height:150%;background-color:#fff;color:var(--cps-color-text-dark);overflow:auto}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left .cps-table-tbar-global-filter{margin-left:12px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-remove-btn{margin-right:4px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-action-btn{margin-right:4px;margin-left:8px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn{display:contents}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon{margin-left:8px;margin-right:4px;cursor:pointer}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon:hover .cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon:hover .cps-icon{color:var(--cps-color-prepared)!important}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon .cps-icon{width:22px;height:22px}:host ::ng-deep .cps-tbar-small.p-datatable .p-datatable-header{height:43px}:host ::ng-deep .cps-tbar-normal.p-datatable .p-datatable-header{height:72px}:host ::ng-deep .p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}:host ::ng-deep .p-datatable-scrollable>.p-datatable-wrapper{position:relative}:host ::ng-deep .p-datatable>.p-datatable-wrapper{overflow:auto}:host ::ng-deep .p-datatable-table{border-spacing:0px;width:100%}:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#fff}:host ::ng-deep .p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight:hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;font-weight:400;color:var(--cps-color-text-mild);background:white;transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th:hover sortalticon{opacity:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead tr:not(:first-child) th{border-top:unset}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:var(--cps-color-text-dark)}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon{color:var(--cps-color-text-mild);margin-left:.5rem}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:var(--cps-color-calm)}:host ::ng-deep .p-icon{display:inline-block;width:1rem;height:1rem}:host ::ng-deep .p-sortable-column-icon{width:13px;height:13px}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .p-datatable .p-sortable-column .p-column-title,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:unset}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.125rem;min-width:1.125rem;line-height:1.125rem;color:var(--cps-color-calm);background:#f1eaec;margin-left:.5rem}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column:focus{box-shadow:none;outline:0 none}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(odd){background:var(--cps-color-bg-light)}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#ffffff}:host ::ng-deep .p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):not(.cps-table-row-expanded-content):hover{background:#f8f4f5}:host ::ng-deep .p-datatable .p-datatable-tbody>tr{background:#ffffff;color:var(--cps-color-text-dark);transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.cps-table-row-selected{background-color:#f1ebed!important}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}:host ::ng-deep .p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;padding:1rem}:host ::ng-deep td:has(p-tablecheckbox){text-align:center!important}:host ::ng-deep th:has(p-tableheadercheckbox){text-align:center!important;width:3rem!important}:host ::ng-deep .p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative;width:18px;height:18px}:host ::ng-deep .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}:host ::ng-deep .p-hidden-accessible input,:host ::ng-deep .p-hidden-accessible select{transform:scale(0)}:host ::ng-deep .p-checkbox .p-checkbox-box{background:#ffffff;width:18px;height:18px;color:var(--cps-color-text-dark);border:2px solid var(--cps-color-text-mild);border-radius:2px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .p-checkbox-box{display:flex;justify-content:center;align-items:center}:host ::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:var(--cps-color-calm);background:var(--cps-color-calm)}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:var(--cps-color-calm);background:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:var(--cps-color-calm)}:host ::ng-deep .p-checkbox .p-checkbox-box .p-icon{width:14px;height:14px}:host ::ng-deep .p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}:host ::ng-deep .p-datatable-reorderablerow-handle,:host ::ng-deep [pReorderableColumn]{cursor:move;font-size:20px;line-height:1}:host ::ng-deep .p-datatable-reorderablerow-handle:hover,:host ::ng-deep [pReorderableColumn]:hover{color:var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}:host ::ng-deep .p-paginator{background:white;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;color:var(--cps-color-text-dark);padding:1rem;border:solid var(--cps-color-line-mid)}:host ::ng-deep .p-paginator-left-content{margin-right:auto}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page{display:inline-flex;align-items:center}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-table-paginator-items-per-page-title{font-family:Source Sans Pro,sans-serif;font-size:14px;margin-right:12px}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box{min-height:32px!important;background:transparent!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-items{font-size:14px!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-chevron .cps-icon{width:14px;height:14px}:host ::ng-deep .p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:var(--cps-color-text-dark);min-width:3rem;margin:.143rem;padding:0 .5rem;font-family:Source Sans Pro,sans-serif;font-size:14px}:host ::ng-deep .p-paginator-page,:host ::ng-deep .p-paginator-next,:host ::ng-deep .p-paginator-last,:host ::ng-deep .p-paginator-first,:host ::ng-deep .p-paginator-prev,:host ::ng-deep .p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-first,:host ::ng-deep .p-paginator .p-paginator-prev,:host ::ng-deep .p-paginator .p-paginator-next,:host ::ng-deep .p-paginator .p-paginator-last{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-icon-wrapper{display:inline-flex}:host ::ng-deep .p-disabled,:host ::ng-deep .p-disabled *{cursor:default!important;pointer-events:none}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:var(--cps-color-calm);border-color:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-paginator-element:focus{z-index:1;position:relative}:host ::ng-deep .p-link:focus{outline:0 none;outline-offset:0}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;font-family:Source Sans Pro,sans-serif}:host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:.4}:host ::ng-deep .cps-table-empty-message-td{text-align:center!important;font-weight:600;background:white}:host ::ng-deep .cps-table-row-drag-handle-cell{text-align:center!important}:host ::ng-deep .cps-table-row-drag-handle-cell .cps-table-row-drag-handle{-webkit-user-select:none;user-select:none}:host ::ng-deep .cps-table-row-chevron-cell{text-align:center!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron{transition-duration:.2s;cursor:pointer;display:inline-flex}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron:hover cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron-expanded{transform:rotate(180deg)}:host ::ng-deep .cps-table-row-menu-cell{border-left:none!important}:host ::ng-deep .p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1001;top:0;left:0;width:100%;height:100%;background-color:#fff;transition-duration:.2s;border:1px solid var(--cps-color-line-mid)}:host ::ng-deep .p-datatable.cps-tbar-small .p-datatable-loading-overlay{top:43px;height:calc(100% - 43px)}:host ::ng-deep .p-datatable.cps-tbar-normal .p-datatable-loading-overlay{top:72px;height:calc(100% - 72px)}:host ::ng-deep .cps-table-loading .p-datatable{min-height:200px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-normal{min-height:272px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-small{min-height:243px}:host ::ng-deep .p-datatable.cps-tbar-small .p-datatable-header .cps-table-tbar-left .cps-table-tbar-global-filter cps-input .cps-input-container .cps-input-wrap input{line-height:1;border:none;border-bottom:1px solid var(--cps-color-text-lightest);border-radius:0}:host ::ng-deep .p-sortable-column.cps-table-col-filter-menu-open{cursor:default}:host ::ng-deep .cps-table-col-filter-menu-open .cps-table-col-filter-menu-button{color:var(--cps-color-text-dark)}:host ::ng-deep sortalticon{opacity:0}:host ::ng-deep p-sorticon{display:inline-flex;align-items:baseline}.cps-table-coltoggle-menu{display:block;max-height:242px;overflow-x:hidden;background:white}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item{padding:12px;justify-content:space-between;display:flex;cursor:pointer}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item:hover{background:#f8f4f5}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-label{color:var(--cps-color-text-dark)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-left{display:flex;align-items:center;margin-right:8px}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check{background-color:transparent;border:0;width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1);margin-right:8px;opacity:0}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check:after{color:var(--cps-color-calm);top:4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box;position:absolute;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected{font-weight:600}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-label,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-label{color:var(--cps-color-calm)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-check,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-check{opacity:1}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected{background:#efe4e7}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.highlighten{background:#f5eeef}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected.highlighten{background:#e6d4d9}.cps-table-coltoggle-menu .select-all-option{border-bottom:1px solid lightgrey;font-weight:600}::ng-deep .cps-select-options-menu.cps-paginator-page-options .cps-select-options-option{font-size:14px}\n"] }]
|
|
322
|
+
], template: "<p-table\n #primengTable\n withUnsort\n [ngClass]=\"{ 'cps-table-loading': loading }\"\n [styleClass]=\"styleClass\"\n [value]=\"data\"\n [dataKey]=\"dataKey\"\n [columns]=\"selectedColumns\"\n (selectionChange)=\"onSelectionChanged($event)\"\n [globalFilterFields]=\"globalFilterFields\"\n [scrollable]=\"scrollable\"\n [scrollHeight]=\"scrollHeight\"\n [lazy]=\"lazy\"\n [loading]=\"loading\"\n [lazyLoadOnInit]=\"lazyLoadOnInit\"\n [virtualScroll]=\"virtualScroll\"\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\n [virtualScrollOptions]=\"{ numToleratedItems: 3 }\"\n [paginator]=\"paginator\"\n [showCurrentPageReport]=\"true\"\n [alwaysShowPaginator]=\"alwaysShowPaginator\"\n [showInitialSortBadge]=\"false\"\n [rows]=\"rows\"\n [first]=\"first\"\n [totalRecords]=\"totalRecords\"\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\n [(selection)]=\"selectedRows\"\n [metaKeySelection]=\"false\"\n [rowHover]=\"rowHover\"\n [customSort]=\"customSort\"\n [sortMode]=\"sortMode\"\n [exportFilename]=\"exportFilename\"\n [csvSeparator]=\"csvSeparator\"\n (onPage)=\"onPageChange($event)\"\n (sortFunction)=\"onSortFunction($event)\"\n (onSort)=\"onSort($event)\"\n (onRowReorder)=\"onRowReorder($event)\">\n <ng-template pTemplate=\"caption\" *ngIf=\"hasToolbar\">\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!toolbarTemplate\">\n <div class=\"cps-table-tbar-left\">\n <div>{{ toolbarTitle }}</div>\n <div *ngIf=\"showGlobalFilter\" class=\"cps-table-tbar-global-filter\">\n <cps-input\n prefixIcon=\"search\"\n [placeholder]=\"globalFilterPlaceholder\"\n (valueChanged)=\"onFilterGlobal($event)\"\n [clearable]=\"true\"\n [appearance]=\"toolbarSize === 'small' ? 'underlined' : 'outlined'\"\n [hideDetails]=\"true\">\n </cps-input>\n </div>\n </div>\n <div class=\"cps-table-tbar-right\">\n <div\n *ngIf=\"showRemoveBtnOnSelect && selectedRows.length > 0\"\n class=\"cps-table-tbar-remove-btn\">\n <cps-button\n label=\"Remove\"\n color=\"prepared\"\n type=\"borderless\"\n icon=\"remove\"\n [size]=\"toolbarSize\"\n (clicked)=\"removeSelected()\">\n </cps-button>\n </div>\n <div *ngIf=\"showActionBtn\" class=\"cps-table-tbar-action-btn\">\n <cps-button\n [label]=\"actionBtnTitle\"\n color=\"prepared\"\n type=\"outlined\"\n [size]=\"toolbarSize\"\n (clicked)=\"onClickActionBtn()\">\n </cps-button>\n </div>\n <div\n *ngIf=\"showColumnsToggle && columns.length > 0\"\n class=\"cps-table-tbar-coltoggle-btn\">\n <cps-icon\n icon=\"columns\"\n size=\"normal\"\n color=\"prepared-lighten1\"\n (click)=\"colToggleMenu.toggle($event)\"></cps-icon>\n <cps-menu #colToggleMenu [withArrow]=\"false\">\n <div class=\"cps-table-coltoggle-menu\">\n <div\n class=\"cps-table-coltoggle-menu-item select-all-option\"\n [class.allselected]=\"selectedColumns.length === columns.length\"\n (click)=\"toggleAllColumns()\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"> </span>\n <span class=\"cps-table-coltoggle-menu-item-label\"\n >Show all columns</span\n >\n </span>\n </div>\n <div\n *ngFor=\"let col of columns\"\n class=\"cps-table-coltoggle-menu-item\"\n (click)=\"onSelectColumn(col)\"\n [class.selected]=\"isColumnSelected(col)\">\n <span class=\"cps-table-coltoggle-menu-item-left\">\n <span class=\"cps-table-coltoggle-menu-item-check\"></span>\n <span class=\"cps-table-coltoggle-menu-item-label\">{{\n col[colHeaderName]\n }}</span>\n </span>\n </div>\n </div>\n </cps-menu>\n </div>\n <div *ngIf=\"showExportBtn\" class=\"cps-table-tbar-export-btn\">\n <cps-icon\n icon=\"export\"\n size=\"normal\"\n color=\"prepared\"\n (click)=\"exportMenu.toggle($event)\"></cps-icon>\n <cps-menu\n #exportMenu\n [items]=\"exportMenuItems\"\n [compressed]=\"true\"\n [withArrow]=\"false\">\n </cps-menu>\n </div>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"nestedHeaderTemplate\" let-columns>\n <ng-container\n *ngTemplateOutlet=\"\n nestedHeaderTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-template>\n\n <ng-template pTemplate=\"header\" *ngIf=\"!nestedHeaderTemplate\" let-columns>\n <tr>\n <th style=\"width: 3rem\" *ngIf=\"rowExpansionTemplate\"></th>\n <th style=\"width: 3rem\" *ngIf=\"reorderableRows\"></th>\n <th style=\"width: 4rem\" *ngIf=\"selectable\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <ng-container *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate;\n context: {\n $implicit: columns,\n }\n \"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!headerTemplate && columns.length > 0\">\n <ng-container *ngIf=\"sortable\">\n <th *ngFor=\"let col of columns\" [cpsColSortable]=\"col[colFieldName]\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n <ng-container *ngIf=\"!sortable\">\n <th *ngFor=\"let col of columns\">\n {{ col[colHeaderName] }}\n </th>\n </ng-container>\n </ng-container>\n <th\n style=\"width: 2rem\"\n class=\"cps-table-row-menu-cell\"\n *ngIf=\"showRowMenu\"></th>\n </tr>\n </ng-template>\n\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns=\"columns\"\n let-item\n let-rowIndex=\"rowIndex\"\n let-expanded=\"expanded\">\n <tr\n [pReorderableRow]=\"rowIndex\"\n [ngClass]=\"{\n 'cps-table-row-selected': selectable && primengTable.isSelected(item)\n }\">\n <td *ngIf=\"rowExpansionTemplate\" class=\"cps-table-row-chevron-cell\">\n <div\n class=\"cps-table-row-chevron\"\n [ngClass]=\"{ 'cps-table-row-chevron-expanded': expanded }\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n color=\"text-dark\"\n [pRowToggler]=\"item\">\n </cps-icon>\n </div>\n </td>\n <td *ngIf=\"reorderableRows\" class=\"cps-table-row-drag-handle-cell\">\n <span class=\"cps-table-row-drag-handle\" pReorderableRowHandle>\u2630</span>\n </td>\n <td *ngIf=\"selectable\">\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n <ng-container *ngIf=\"bodyTemplate\">\n <ng-container\n pTemplate=\"body\"\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: {\n $implicit: item,\n rowIndex: rowIndex,\n columns: columns,\n rowData: rowData\n }\n \">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!bodyTemplate\">\n <ng-container *ngIf=\"columns.length > 0\">\n <td *ngFor=\"let col of columns\">\n {{ rowData[col[colFieldName]] }}\n </td>\n </ng-container>\n </ng-container>\n <td *ngIf=\"showRowMenu\" class=\"cps-table-row-menu-cell\">\n <table-row-menu\n (editRowBtnClicked)=\"onEditRowClicked(item)\"\n (removeRowBtnClicked)=\"onRemoveRowClicked(item)\"></table-row-menu>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" *ngIf=\"rowExpansionTemplate\" let-item>\n <tr class=\"cps-table-row-expanded-content\">\n <td colspan=\"100\">\n <ng-container\n *ngTemplateOutlet=\"\n rowExpansionTemplate;\n context: {\n $implicit: item\n }\n \"></ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td\n colspan=\"100\"\n class=\"cps-table-empty-message-td\"\n [ngStyle]=\"{ height: emptyBodyHeight }\">\n {{ emptyMessage }}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"loadingicon\">\n <cps-loader [fullScreen]=\"false\" opacity=\"0\"></cps-loader>\n </ng-template>\n <ng-template pTemplate=\"paginatorleft\">\n <div class=\"cps-table-paginator-itms-per-page\">\n <span class=\"cps-table-paginator-items-per-page-title\"\n >Rows per page:\n </span>\n <cps-select\n [options]=\"rowOptions\"\n [hideDetails]=\"true\"\n [(ngModel)]=\"rows\"\n (valueChanged)=\"onRowsPerPageChanged()\"\n [returnObject]=\"false\"\n optionsClass=\"cps-paginator-page-options\">\n </cps-select>\n </div>\n </ng-template>\n</p-table>\n", styles: [":host ::ng-deep .p-component{font-family:Source Sans Pro,sans-serif;font-size:14px;font-weight:400}:host ::ng-deep .p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}:host ::ng-deep .p-datatable{position:relative}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable .p-datatable-header{font-weight:600;display:flex;justify-content:space-between;align-items:center;padding:0 10px;border:1px solid var(--cps-color-line-mid);border-left:4px solid var(--cps-color-surprise)!important;border-radius:4px 4px 0 0;font-size:16px;line-height:150%;background-color:#fff;color:var(--cps-color-text-dark);overflow:auto}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-left .cps-table-tbar-global-filter{margin-left:12px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right{display:flex;align-items:center}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-remove-btn{margin-right:4px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-action-btn{margin-right:4px;margin-left:8px}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn{display:contents}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon{margin-left:8px;margin-right:4px;cursor:pointer}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-coltoggle-btn cps-icon:hover .cps-icon,:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon:hover .cps-icon{color:var(--cps-color-prepared)!important}:host ::ng-deep .p-datatable .p-datatable-header .cps-table-tbar-right .cps-table-tbar-export-btn cps-icon .cps-icon{width:22px;height:22px}:host ::ng-deep .cps-tbar-small.p-datatable .p-datatable-header{height:43px}:host ::ng-deep .cps-tbar-normal.p-datatable .p-datatable-header{height:72px}:host ::ng-deep .p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}:host ::ng-deep .p-datatable-scrollable>.p-datatable-wrapper{position:relative}:host ::ng-deep .p-datatable>.p-datatable-wrapper{overflow:auto}:host ::ng-deep .p-datatable-table{border-spacing:0px;width:100%}:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,:host ::ng-deep .p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#fff}:host ::ng-deep .p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight:hover{background:white;color:var(--cps-color-text-mild)}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;font-weight:400;color:var(--cps-color-text-mild);background:white;transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th:hover sortalticon{opacity:1}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-thead tr:not(:first-child) th{border-top:unset}:host ::ng-deep .p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:var(--cps-color-text-dark)}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon{color:var(--cps-color-text-mild);margin-left:.5rem}:host ::ng-deep .p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:var(--cps-color-calm)}:host ::ng-deep .p-icon{display:inline-block;width:1rem;height:1rem}:host ::ng-deep .p-sortable-column-icon{width:13px;height:13px}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .p-datatable .p-sortable-column .p-column-title,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-icon,:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:unset}:host ::ng-deep .p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.125rem;min-width:1.125rem;line-height:1.125rem;color:var(--cps-color-calm);background:#f1eaec;margin-left:.5rem}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}:host ::ng-deep .p-datatable .p-sortable-column:focus{box-shadow:none;outline:0 none}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(odd){background:var(--cps-color-bg-light)}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#ffffff}:host ::ng-deep .p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):not(.cps-table-row-expanded-content):hover{background:#f8f4f5}:host ::ng-deep .p-datatable .p-datatable-tbody>tr{background:#ffffff;color:var(--cps-color-text-dark);transition:box-shadow .2s}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.cps-table-row-selected{background-color:#f1ebed!important}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}:host ::ng-deep .p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}:host ::ng-deep .p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}:host ::ng-deep .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}:host ::ng-deep .p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid var(--cps-color-line-mid);border-width:0 0 1px 0;padding:1rem}:host ::ng-deep td:has(p-tablecheckbox){text-align:center!important}:host ::ng-deep th:has(p-tableheadercheckbox){text-align:center!important;width:3rem!important}:host ::ng-deep .p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative;width:18px;height:18px}:host ::ng-deep .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}:host ::ng-deep .p-hidden-accessible input,:host ::ng-deep .p-hidden-accessible select{transform:scale(0)}:host ::ng-deep .p-checkbox .p-checkbox-box{background:#ffffff;width:18px;height:18px;color:var(--cps-color-text-dark);border:2px solid var(--cps-color-text-mild);border-radius:2px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}:host ::ng-deep .p-checkbox-box{display:flex;justify-content:center;align-items:center}:host ::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:var(--cps-color-calm);background:var(--cps-color-calm)}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:var(--cps-color-calm);background:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:var(--cps-color-calm)}:host ::ng-deep .p-checkbox .p-checkbox-box .p-icon{width:14px;height:14px}:host ::ng-deep .p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}:host ::ng-deep .p-datatable-reorderablerow-handle,:host ::ng-deep [pReorderableColumn]{cursor:move;font-size:20px;line-height:1}:host ::ng-deep .p-datatable-reorderablerow-handle:hover,:host ::ng-deep [pReorderableColumn]:hover{color:var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px 0 0 var(--cps-color-calm)}:host ::ng-deep .p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}:host ::ng-deep .p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}:host ::ng-deep .p-paginator{background:white;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;color:var(--cps-color-text-dark);padding:1rem;border:solid var(--cps-color-line-mid)}:host ::ng-deep .p-paginator-left-content{margin-right:auto}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page{display:inline-flex;align-items:center}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-table-paginator-items-per-page-title{font-family:Source Sans Pro,sans-serif;font-size:14px;margin-right:12px}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box{min-height:32px!important;background:transparent!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-items{font-size:14px!important}:host ::ng-deep .p-paginator-left-content .cps-table-paginator-itms-per-page .cps-select-box .cps-select-box-chevron .cps-icon{width:14px;height:14px}:host ::ng-deep .p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:var(--cps-color-text-dark);min-width:3rem;margin:.143rem;padding:0 .5rem;font-family:Source Sans Pro,sans-serif;font-size:14px}:host ::ng-deep .p-paginator-page,:host ::ng-deep .p-paginator-next,:host ::ng-deep .p-paginator-last,:host ::ng-deep .p-paginator-first,:host ::ng-deep .p-paginator-prev,:host ::ng-deep .p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):active,:host ::ng-deep .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-first,:host ::ng-deep .p-paginator .p-paginator-prev,:host ::ng-deep .p-paginator .p-paginator-next,:host ::ng-deep .p-paginator .p-paginator-last{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-icon-wrapper{display:inline-flex}:host ::ng-deep .p-disabled,:host ::ng-deep .p-disabled *{cursor:default!important;pointer-events:none}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:var(--cps-color-calm);border-color:var(--cps-color-calm);color:#fff}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f8f4f5}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):active{background:#f1eaec}:host ::ng-deep .p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:1px solid var(--cps-color-text-dark);border-radius:4px;color:var(--cps-color-text-dark);min-width:32px;height:32px;margin:.143rem;transition:box-shadow .2s}:host ::ng-deep .p-paginator-element:focus{z-index:1;position:relative}:host ::ng-deep .p-link:focus{outline:0 none;outline-offset:0}:host ::ng-deep .p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;font-family:Source Sans Pro,sans-serif}:host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:.4}:host ::ng-deep .cps-table-empty-message-td{text-align:center!important;font-weight:600;background:white}:host ::ng-deep .cps-table-row-drag-handle-cell{text-align:center!important}:host ::ng-deep .cps-table-row-drag-handle-cell .cps-table-row-drag-handle{-webkit-user-select:none;user-select:none}:host ::ng-deep .cps-table-row-chevron-cell{text-align:center!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron{transition-duration:.2s;cursor:pointer;display:inline-flex}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron:hover cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host ::ng-deep .cps-table-row-chevron-cell .cps-table-row-chevron-expanded{transform:rotate(180deg)}:host ::ng-deep .cps-table-row-menu-cell{border-left:none!important}:host ::ng-deep .p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1001;top:0;left:0;width:100%;height:100%;background-color:#fff;transition-duration:.2s;border:1px solid var(--cps-color-line-mid)}:host ::ng-deep .p-datatable.cps-tbar-small .p-datatable-loading-overlay{top:43px;height:calc(100% - 43px)}:host ::ng-deep .p-datatable.cps-tbar-normal .p-datatable-loading-overlay{top:72px;height:calc(100% - 72px)}:host ::ng-deep .cps-table-loading .p-datatable{min-height:200px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-normal{min-height:272px}:host ::ng-deep .cps-table-loading .p-datatable.cps-tbar-small{min-height:243px}:host ::ng-deep .p-sortable-column.cps-table-col-filter-menu-open{cursor:default}:host ::ng-deep .cps-table-col-filter-menu-open .cps-table-col-filter-menu-button{color:var(--cps-color-text-dark)}:host ::ng-deep sortalticon{opacity:0}:host ::ng-deep p-sorticon{display:inline-flex;align-items:baseline}.cps-table-coltoggle-menu{display:block;max-height:242px;overflow-x:hidden;background:white}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item{padding:12px;justify-content:space-between;display:flex;cursor:pointer}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item:hover{background:#f8f4f5}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-label{color:var(--cps-color-text-dark)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-left{display:flex;align-items:center;margin-right:8px}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check{background-color:transparent;border:0;width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1);margin-right:8px;opacity:0}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item-check:after{color:var(--cps-color-calm);top:4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box;position:absolute;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected{font-weight:600}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-label,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-label{color:var(--cps-color-calm)}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected .cps-table-coltoggle-menu-item-check,.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.allselected .cps-table-coltoggle-menu-item-check{opacity:1}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected{background:#efe4e7}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.highlighten{background:#f5eeef}.cps-table-coltoggle-menu .cps-table-coltoggle-menu-item.selected.highlighten{background:#e6d4d9}.cps-table-coltoggle-menu .select-all-option{border-bottom:1px solid lightgrey;font-weight:600}::ng-deep .cps-select-options-menu.cps-paginator-page-options .cps-select-options-option{font-size:14px}\n"] }]
|
|
323
323
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
324
324
|
type: Input
|
|
325
325
|
}], columns: [{
|
|
@@ -441,4 +441,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
441
441
|
type: ViewChild,
|
|
442
442
|
args: ['primengTable', { static: true }]
|
|
443
443
|
}] } });
|
|
444
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9jcHMtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2Nwcy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25HLE9B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RGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUYWJsZSwgVGFibGVTZXJ2aWNlLCBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU29ydEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQ3BzSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9jcHMtaW5wdXQvY3BzLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtYnV0dG9uL2Nwcy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1zZWxlY3QvY3BzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNNZW51Q29tcG9uZW50LCBDcHNNZW51SXRlbSB9IGZyb20gJy4uL2Nwcy1tZW51L2Nwcy1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jcHMtbG9hZGVyL2Nwcy1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUm93TWVudUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1RhYmxlQ29sdW1uU29ydGFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY3BzLXRhYmxlLWNvbHVtbi1zb3J0YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFibGVVbnNvcnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaW50ZXJuYWwvdGFibGUtdW5zb3J0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBjb252ZXJ0U2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVybmFsL3NpemUtdXRpbHMnO1xuaW1wb3J0IHsgZmluZCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8vIGltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XG4vLyBpbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZUZhY3RvcnkodGFibGVDb21wb25lbnQ6IENwc1RhYmxlQ29tcG9uZW50KSB7XG4gIHJldHVybiB0YWJsZUNvbXBvbmVudC5wcmltZW5nVGFibGU7XG59XG5cbmV4cG9ydCB0eXBlIENwc1RhYmxlRXhwb3J0Rm9ybWF0ID0gJ2NzdicgfCAneGxzeCc7IC8vIHwgJ3BkZic7XG5leHBvcnQgdHlwZSBDcHNUYWJsZVNpemUgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgQ3BzVGFibGVUb29sYmFyU2l6ZSA9ICdzbWFsbCcgfCAnbm9ybWFsJztcbmV4cG9ydCB0eXBlIENwc1RhYmxlU29ydE1vZGUgPSAnc2luZ2xlJyB8ICdtdWx0aXBsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nwcy10YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIFRhYmxlVW5zb3J0RGlyZWN0aXZlLFxuICAgIENwc0lucHV0Q29tcG9uZW50LFxuICAgIENwc0J1dHRvbkNvbXBvbmVudCxcbiAgICBDcHNTZWxlY3RDb21wb25lbnQsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNNZW51Q29tcG9uZW50LFxuICAgIENwc0xvYWRlckNvbXBvbmVudCxcbiAgICBUYWJsZVJvd01lbnVDb21wb25lbnQsXG4gICAgQ3BzVGFibGVDb2x1bW5Tb3J0YWJsZURpcmVjdGl2ZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFRhYmxlU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBUYWJsZSxcbiAgICAgIHVzZUZhY3Rvcnk6IHRhYmxlRmFjdG9yeSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgZGVwczogW0Nwc1RhYmxlQ29tcG9uZW50XVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSA9IFtdO1xuICBASW5wdXQoKSBjb2xIZWFkZXJOYW1lID0gJ2hlYWRlcic7XG4gIEBJbnB1dCgpIGNvbEZpZWxkTmFtZSA9ICdmaWVsZCc7XG5cbiAgQElucHV0KCkgc3RyaXBlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGJvcmRlcmVkID0gdHJ1ZTtcbiAgQElucHV0KCkgc2l6ZTogQ3BzVGFibGVTaXplID0gJ25vcm1hbCc7XG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ05vIGRhdGEnO1xuICBASW5wdXQoKSBoYXNUb29sYmFyID0gdHJ1ZTtcbiAgQElucHV0KCkgdG9vbGJhclNpemU6IENwc1RhYmxlVG9vbGJhclNpemUgPSAnbm9ybWFsJztcbiAgQElucHV0KCkgdG9vbGJhclRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHNvcnRNb2RlOiBDcHNUYWJsZVNvcnRNb2RlID0gJ3NpbmdsZSc7XG4gIEBJbnB1dCgpIGN1c3RvbVNvcnQgPSBmYWxzZTtcbiAgQElucHV0KCkgcm93SG92ZXIgPSB0cnVlO1xuICBASW5wdXQoKSBkYXRhS2V5ID0gJyc7IC8vIGZpZWxkLCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgYSByZWNvcmQgaW4gZGF0YSAobmVlZGVkIGZvciBleHBhbmRhYmxlIHJvd3MpXG4gIEBJbnB1dCgpIHNob3dSb3dNZW51ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJhYmxlUm93cyA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93Q29sdW1uc1RvZ2dsZSA9IGZhbHNlOyAvLyBpZiBleHRlcm5hbCBib2R5IHRlbXBsYXRlIGlzIHByb3ZpZGVkLCB1c2UgY29sdW1uc1NlbGVjdGVkIGV2ZW50IGVtaXR0ZXJcbiAgQElucHV0KCkgc29ydGFibGUgPSBmYWxzZTsgLy8gbWFrZXMgYWxsIHNvcnRhYmxlIGlmIGNvbHVtbnMgYXJlIHByb3ZpZGVkXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzY3JvbGxhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJyc7IC8vICdmbGV4JyBvciB2YWx1ZSsncHgnXG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGwgPSBmYWxzZTsgLy8gd29ya3Mgb25seSBpZiBzY3JvbGxhYmxlIGlzIHRydWVcblxuICBASW5wdXQoKSBwYWdpbmF0b3IgPSBmYWxzZTtcbiAgQElucHV0KCkgYWx3YXlzU2hvd1BhZ2luYXRvciA9IHRydWU7XG4gIEBJbnB1dCgpIHJvd3NQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgZmlyc3QgPSAwO1xuICBASW5wdXQoKSByb3dzID0gMDtcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcblxuICBASW5wdXQoKSBlbXB0eUJvZHlIZWlnaHQgPSAnJztcblxuICBASW5wdXQoKSBsYXp5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhenlMb2FkT25Jbml0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzaG93R2xvYmFsRmlsdGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdsb2JhbEZpbHRlclBsYWNlaG9sZGVyID0gJ1NlYXJjaCc7XG4gIEBJbnB1dCgpIGdsb2JhbEZpbHRlckZpZWxkczogc3RyaW5nW10gPSBbXTtcblxuICBASW5wdXQoKSBzaG93UmVtb3ZlQnRuT25TZWxlY3QgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93QWN0aW9uQnRuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFjdGlvbkJ0blRpdGxlID0gJ0FjdGlvbic7XG5cbiAgQElucHV0KCkgc2hvd0V4cG9ydEJ0biA9IGZhbHNlO1xuICBASW5wdXQoKSBleHBvcnRGaWxlbmFtZSA9ICdkb3dubG9hZCc7XG4gIEBJbnB1dCgpIGNzdlNlcGFyYXRvciA9ICcsJztcblxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25CdG5DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZWRpdFJvd0J0bkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd3NSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBzb3J0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd3NSZW9yZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNvbHVtbnNTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBhbnkgfVtdPigpO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRvIGltcGxlbWVudCBjdXN0b20gc29ydGluZy4gY3VzdG9tU29ydCBtdXN0IGJlIHRydWUuXG4gICAqIEBwYXJhbSB7YW55fSBhbnkgLSBzb3J0IG1ldGEuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGN1c3RvbVNvcnRGdW5jdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAQ29udGVudENoaWxkKCd0b29sYmFyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyB0b29sYmFyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgaGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ25lc3RlZEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgbmVzdGVkSGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2JvZHknLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgncm93ZXhwYW5zaW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyByb3dFeHBhbnNpb25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgncHJpbWVuZ1RhYmxlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpbWVuZ1RhYmxlITogVGFibGU7XG5cbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuXG4gIHZpcnR1YWxTY3JvbGxJdGVtU2l6ZSA9IDA7XG5cbiAgcm93T3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH1bXSA9IFtdO1xuXG4gIHNlbGVjdGVkQ29sdW1uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdID0gW107XG5cbiAgZXhwb3J0TWVudUl0ZW1zID0gW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQ1NWJyxcbiAgICAgIGljb246ICdjc3YnLFxuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwb3J0VGFibGUoJ2NzdicpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdYTFNYJyxcbiAgICAgIGljb246ICd4bHMnLFxuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwb3J0VGFibGUoJ3hsc3gnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8ge1xuICAgIC8vICAgdGl0bGU6ICdQREYnLFxuICAgIC8vICAgaWNvbjogJ3BkZicsXG4gICAgLy8gICBhY3Rpb246ICgpID0+IHtcbiAgICAvLyAgICAgdGhpcy5leHBvcnRUYWJsZSgncGRmJyk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICBdIGFzIENwc01lbnVJdGVtW107XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbXB0eUJvZHlIZWlnaHQgPSBjb252ZXJ0U2l6ZSh0aGlzLmVtcHR5Qm9keUhlaWdodCk7XG4gICAgaWYgKCF0aGlzLnNjcm9sbGFibGUpIHRoaXMudmlydHVhbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMucGFnaW5hdG9yKSB7XG4gICAgICBpZiAodGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMubGVuZ3RoIDwgMSlcbiAgICAgICAgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMgPSBbNSwgMTAsIDI1LCA1MF07XG5cbiAgICAgIGlmICghdGhpcy5yb3dzKSB0aGlzLnJvd3MgPSB0aGlzLnJvd3NQZXJQYWdlT3B0aW9uc1swXTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoIXRoaXMucm93c1BlclBhZ2VPcHRpb25zLmluY2x1ZGVzKHRoaXMucm93cykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Jvd3NQZXJQYWdlT3B0aW9ucyBtdXN0IGluY2x1ZGUgcm93cycpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMucm93T3B0aW9ucyA9IHRoaXMucm93c1BlclBhZ2VPcHRpb25zLm1hcCgodikgPT4gKHtcbiAgICAgICAgbGFiZWw6ICcnICsgdixcbiAgICAgICAgdmFsdWU6IHZcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNob3dHbG9iYWxGaWx0ZXIgJiZcbiAgICAgIHRoaXMuZ2xvYmFsRmlsdGVyRmllbGRzPy5sZW5ndGggPCAxICYmXG4gICAgICB0aGlzLmRhdGE/Lmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMuZ2xvYmFsRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXModGhpcy5kYXRhWzBdKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucztcbiAgfVxuXG4gIGdldCBzdHlsZUNsYXNzKCkge1xuICAgIGNvbnN0IGNsYXNzZXNMaXN0ID0gW107XG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcbiAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgY2xhc3Nlc0xpc3QucHVzaCgncC1kYXRhdGFibGUtc20nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgIGNsYXNzZXNMaXN0LnB1c2goJ3AtZGF0YXRhYmxlLWxnJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRoaXMudG9vbGJhclNpemUpIHtcbiAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgY2xhc3Nlc0xpc3QucHVzaCgnY3BzLXRiYXItc21hbGwnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdub3JtYWwnOlxuICAgICAgICBjbGFzc2VzTGlzdC5wdXNoKCdjcHMtdGJhci1ub3JtYWwnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0cmlwZWQpIHtcbiAgICAgIGNsYXNzZXNMaXN0LnB1c2goJ3AtZGF0YXRhYmxlLXN0cmlwZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYm9yZGVyZWQpIHtcbiAgICAgIGNsYXNzZXNMaXN0LnB1c2goJ3AtZGF0YXRhYmxlLWdyaWRsaW5lcycpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzTGlzdC5qb2luKCcgJyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKCF0aGlzLnZpcnR1YWxTY3JvbGwgfHwgdGhpcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemUpIHJldHVybjtcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGxJdGVtU2l6ZSA9XG4gICAgICB0aGlzLnByaW1lbmdUYWJsZT8uZWw/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgPy5xdWVyeVNlbGVjdG9yKCcucC1kYXRhdGFibGUtdGJvZHknKVxuICAgICAgICA/LnF1ZXJ5U2VsZWN0b3IoJ3RyJyk/LmNsaWVudEhlaWdodCB8fCAwO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKHNlbGVjdGlvbjogYW55W10pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdChcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIHNlbGVjdGlvbi5tYXAoKHsgX2RlZmF1bHRTb3J0T3JkZXIsIC4uLnJlc3QgfSkgPT4gcmVzdClcbiAgICApO1xuICB9XG5cbiAgb25Tb3J0RnVuY3Rpb24oZXZlbnQ6IFNvcnRFdmVudCkge1xuICAgIHRoaXMuY3VzdG9tU29ydEZ1bmN0aW9uLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25GaWx0ZXJHbG9iYWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucHJpbWVuZ1RhYmxlLmZpbHRlckdsb2JhbCh2YWx1ZSwgJ2NvbnRhaW5zJyk7XG4gIH1cblxuICByZW1vdmVTZWxlY3RlZCgpIHtcbiAgICBjb25zdCBpbmRleGVzOiBudW1iZXJbXSA9IHRoaXMucHJpbWVuZ1RhYmxlLnNlbGVjdGlvbi5tYXAoXG4gICAgICAoczogYW55KSA9PiBzLl9kZWZhdWx0U29ydE9yZGVyXG4gICAgKTtcbiAgICBpbmRleGVzLnNvcnQoKGEsIGIpID0+IGIgLSBhKTtcblxuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5maWx0ZXIoXG4gICAgICAodjogYW55KSA9PiAhaW5kZXhlcy5pbmNsdWRlcyh2Ll9kZWZhdWx0U29ydE9yZGVyKVxuICAgICk7XG5cbiAgICB0aGlzLnJvd3NSZW1vdmVkLmVtaXQoXG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5tYXAoKHsgX2RlZmF1bHRTb3J0T3JkZXIsIC4uLnJlc3QgfSkgPT4gcmVzdClcbiAgICApO1xuXG4gICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBbXTtcbiAgfVxuXG4gIG9uQ2xpY2tBY3Rpb25CdG4oKSB7XG4gICAgdGhpcy5hY3Rpb25CdG5DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uUm93c1BlclBhZ2VDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmlyc3QgPSAwO1xuICAgIHRoaXMucHJpbWVuZ1RhYmxlLmZpcnN0ID0gdGhpcy5maXJzdDtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHRvZ2dsZUFsbENvbHVtbnMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZENvbHVtbnMgPVxuICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMubGVuZ3RoIDwgdGhpcy5jb2x1bW5zLmxlbmd0aCA/IHRoaXMuY29sdW1ucyA6IFtdO1xuICAgIHRoaXMuY29sdW1uc1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZENvbHVtbnMpO1xuICB9XG5cbiAgaXNDb2x1bW5TZWxlY3RlZChjb2w6IGFueSkge1xuICAgIHJldHVybiAhIWZpbmQodGhpcy5zZWxlY3RlZENvbHVtbnMsIChpdGVtKSA9PiBpc0VxdWFsKGl0ZW0sIGNvbCkpO1xuICB9XG5cbiAgb25TZWxlY3RDb2x1bW4oY29sOiBhbnkpIHtcbiAgICBsZXQgcmVzID0gW10gYXMgYW55O1xuICAgIGlmICh0aGlzLmlzQ29sdW1uU2VsZWN0ZWQoY29sKSkge1xuICAgICAgcmVzID0gdGhpcy5zZWxlY3RlZENvbHVtbnMuZmlsdGVyKCh2OiBhbnkpID0+ICFpc0VxdWFsKHYsIGNvbCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMuc29tZSgodjogYW55KSA9PiBpc0VxdWFsKHYsIG8pKSB8fFxuICAgICAgICAgIGlzRXF1YWwoY29sLCBvKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXMucHVzaChvKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gcmVzO1xuICAgIHRoaXMuY29sdW1uc1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZENvbHVtbnMpO1xuICB9XG5cbiAgb25FZGl0Um93Q2xpY2tlZChpdGVtOiBhbnkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgeyBfZGVmYXVsdFNvcnRPcmRlciwgLi4ucmVzdCB9ID0gaXRlbTtcbiAgICB0aGlzLmVkaXRSb3dCdG5DbGlja2VkLmVtaXQocmVzdCk7XG4gIH1cblxuICBvblJlbW92ZVJvd0NsaWNrZWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGVkUm93cy5maWx0ZXIoKHY6IGFueSkgPT4gdiAhPT0gaXRlbSk7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLmZpbHRlcigodjogYW55KSA9PiB2ICE9PSBpdGVtKTtcbiAgICBjb25zdCB7IF9kZWZhdWx0U29ydE9yZGVyLCAuLi5yZXN0IH0gPSBpdGVtO1xuICAgIHRoaXMucm93c1JlbW92ZWQuZW1pdChbcmVzdF0pO1xuICB9XG5cbiAgb25Tb3J0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNvcnRlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uUm93UmVvcmRlcihldmVudDogYW55KSB7XG4gICAgdGhpcy5yb3dzUmVvcmRlcmVkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgZXhwb3J0VGFibGUoZm9ybWF0OiBDcHNUYWJsZUV4cG9ydEZvcm1hdCkge1xuICAgIGlmICh0aGlzLmNvbHVtbnMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEVycm9yKCdDb2x1bW5zIG11c3QgYmUgZGVmaW5lZCEnKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbHVtbnMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEVycm9yKCdOb3RoaW5nIHRvIGV4cG9ydCEnKTtcblxuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICdjc3YnOlxuICAgICAgICB0aGlzLnByaW1lbmdUYWJsZS5leHBvcnRDU1YoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3hsc3gnOlxuICAgICAgICB0aGlzLmV4cG9ydFhMU1goKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIGNhc2UgJ3BkZic6XG4gICAgICAvLyAgIHRoaXMuZXhwb3J0UERGKCk7XG4gICAgICAvLyAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydFhMU1goKSB7XG4gICAgaW1wb3J0KCd4bHN4JykudGhlbigoeGxzeCkgPT4ge1xuICAgICAgY29uc3Qgc2hlZXREYXRhID0gW1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucy5tYXAoXG4gICAgICAgICAgKGM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IGNbdGhpcy5jb2xIZWFkZXJOYW1lXVxuICAgICAgICApLFxuICAgICAgICAuLi50aGlzLmRhdGEubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMubWFwKFxuICAgICAgICAgICAgKGM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IGl0ZW1bY1t0aGlzLmNvbEZpZWxkTmFtZV1dXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICBdO1xuXG4gICAgICBjb25zdCB3b3Jrc2hlZXQgPSB4bHN4LnV0aWxzLmpzb25fdG9fc2hlZXQoc2hlZXREYXRhLCB7XG4gICAgICAgIHNraXBIZWFkZXI6IHRydWVcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgd29ya2Jvb2sgPSB7XG4gICAgICAgIFNoZWV0czogeyBbdGhpcy5leHBvcnRGaWxlbmFtZV06IHdvcmtzaGVldCB9LFxuICAgICAgICBTaGVldE5hbWVzOiBbdGhpcy5leHBvcnRGaWxlbmFtZV1cbiAgICAgIH07XG4gICAgICBjb25zdCB4bHN4QnVmZmVyOiBhbnkgPSB4bHN4LndyaXRlKHdvcmtib29rLCB7XG4gICAgICAgIGJvb2tUeXBlOiAneGxzeCcsXG4gICAgICAgIHR5cGU6ICdhcnJheSdcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBFWENFTF9UWVBFID1cbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuICAgICAgY29uc3QgYmxvYjogQmxvYiA9IG5ldyBCbG9iKFt4bHN4QnVmZmVyXSwge1xuICAgICAgICB0eXBlOiBFWENFTF9UWVBFXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgZG93bmxvYWRMaW5rLmRvd25sb2FkID0gYCR7dGhpcy5leHBvcnRGaWxlbmFtZX0ueGxzeGA7XG4gICAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGV4cG9ydFBERigpIHtcbiAgLy8gICBjb25zdCBleHBvcnRDb2x1bW5zID0gdGhpcy5zZWxlY3RlZENvbHVtbnMubWFwKChjb2wpID0+ICh7XG4gIC8vICAgICB0aXRsZTogY29sW3RoaXMuY29sSGVhZGVyTmFtZV0sXG4gIC8vICAgICBkYXRhS2V5OiBjb2xbdGhpcy5jb2xGaWVsZE5hbWVdXG4gIC8vICAgfSkpO1xuICAvLyAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gIC8vICAgY29uc3QgZG9jID0gbmV3IGpzUERGKHtcbiAgLy8gICAgIG9yaWVudGF0aW9uOiB0aGlzLnNlbGVjdGVkQ29sdW1ucy5sZW5ndGggPiAzID8gJ2wnIDogJ3AnLFxuICAvLyAgICAgdW5pdDogJ3B4JyxcbiAgLy8gICAgIGZvcm1hdDogJ2E0J1xuICAvLyAgIH0pO1xuICAvLyAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAvLyAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6ICcjODcwYTNjJyB9LFxuICAvLyAgICAgY29sdW1uczogZXhwb3J0Q29sdW1ucyxcbiAgLy8gICAgIGJvZHk6IHRoaXMuZGF0YVxuICAvLyAgIH0pO1xuICAvLyAgIGRvYy5zYXZlKGAke3RoaXMuZXhwb3J0RmlsZW5hbWV9LnBkZmApO1xuICAvLyB9XG59XG4iLCI8cC10YWJsZVxuICAjcHJpbWVuZ1RhYmxlXG4gIHdpdGhVbnNvcnRcbiAgW25nQ2xhc3NdPVwieyAnY3BzLXRhYmxlLWxvYWRpbmcnOiBsb2FkaW5nIH1cIlxuICBbc3R5bGVDbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgW3ZhbHVlXT1cImRhdGFcIlxuICBbZGF0YUtleV09XCJkYXRhS2V5XCJcbiAgW2NvbHVtbnNdPVwic2VsZWN0ZWRDb2x1bW5zXCJcbiAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcbiAgW3Njcm9sbGFibGVdPVwic2Nyb2xsYWJsZVwiXG4gIFtzY3JvbGxIZWlnaHRdPVwic2Nyb2xsSGVpZ2h0XCJcbiAgW2xhenldPVwibGF6eVwiXG4gIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICBbbGF6eUxvYWRPbkluaXRdPVwibGF6eUxvYWRPbkluaXRcIlxuICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcbiAgW3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJ2aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxuICBbdmlydHVhbFNjcm9sbE9wdGlvbnNdPVwieyBudW1Ub2xlcmF0ZWRJdGVtczogMyB9XCJcbiAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxuICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxuICBbYWx3YXlzU2hvd1BhZ2luYXRvcl09XCJhbHdheXNTaG93UGFnaW5hdG9yXCJcbiAgW3Nob3dJbml0aWFsU29ydEJhZGdlXT1cImZhbHNlXCJcbiAgW3Jvd3NdPVwicm93c1wiXG4gIFtmaXJzdF09XCJmaXJzdFwiXG4gIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcbiAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIntmaXJzdH0gLSB7bGFzdH0gb2Yge3RvdGFsUmVjb3Jkc31cIlxuICBbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRSb3dzXCJcbiAgW21ldGFLZXlTZWxlY3Rpb25dPVwiZmFsc2VcIlxuICBbcm93SG92ZXJdPVwicm93SG92ZXJcIlxuICBbY3VzdG9tU29ydF09XCJjdXN0b21Tb3J0XCJcbiAgW3NvcnRNb2RlXT1cInNvcnRNb2RlXCJcbiAgW2V4cG9ydEZpbGVuYW1lXT1cImV4cG9ydEZpbGVuYW1lXCJcbiAgW2NzdlNlcGFyYXRvcl09XCJjc3ZTZXBhcmF0b3JcIlxuICAob25QYWdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgKHNvcnRGdW5jdGlvbik9XCJvblNvcnRGdW5jdGlvbigkZXZlbnQpXCJcbiAgKG9uU29ydCk9XCJvblNvcnQoJGV2ZW50KVwiXG4gIChvblJvd1Jlb3JkZXIpPVwib25Sb3dSZW9yZGVyKCRldmVudClcIj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIiAqbmdJZj1cImhhc1Rvb2xiYXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9vbGJhclRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9vbGJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0b29sYmFyVGVtcGxhdGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1sZWZ0XCI+XG4gICAgICAgIDxkaXY+e3sgdG9vbGJhclRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93R2xvYmFsRmlsdGVyXCIgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1nbG9iYWwtZmlsdGVyXCI+XG4gICAgICAgICAgPGNwcy1pbnB1dFxuICAgICAgICAgICAgcHJlZml4SWNvbj1cInNlYXJjaFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2xvYmFsRmlsdGVyUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvbkZpbHRlckdsb2JhbCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvY3BzLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS10YmFyLXJpZ2h0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cInNob3dSZW1vdmVCdG5PblNlbGVjdCAmJiBzZWxlY3RlZFJvd3MubGVuZ3RoID4gMFwiXG4gICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1yZW1vdmUtYnRuXCI+XG4gICAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgICAgdHlwZT1cImJvcmRlcmxlc3NcIlxuICAgICAgICAgICAgaWNvbj1cInJlbW92ZVwiXG4gICAgICAgICAgICBbc2l6ZV09XCJ0b29sYmFyU2l6ZVwiXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJyZW1vdmVTZWxlY3RlZCgpXCI+XG4gICAgICAgICAgPC9jcHMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dBY3Rpb25CdG5cIiBjbGFzcz1cImNwcy10YWJsZS10YmFyLWFjdGlvbi1idG5cIj5cbiAgICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgICAgW2xhYmVsXT1cImFjdGlvbkJ0blRpdGxlXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgICAgdHlwZT1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgIFtzaXplXT1cInRvb2xiYXJTaXplXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2xpY2tBY3Rpb25CdG4oKVwiPlxuICAgICAgICAgIDwvY3BzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cInNob3dDb2x1bW5zVG9nZ2xlICYmIGNvbHVtbnMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1jb2x0b2dnbGUtYnRuXCI+XG4gICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICBpY29uPVwiY29sdW1uc1wiXG4gICAgICAgICAgICBzaXplPVwibm9ybWFsXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWQtbGlnaHRlbjFcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbFRvZ2dsZU1lbnUudG9nZ2xlKCRldmVudClcIj48L2Nwcy1pY29uPlxuICAgICAgICAgIDxjcHMtbWVudSAjY29sVG9nZ2xlTWVudSBbd2l0aEFycm93XT1cImZhbHNlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLWNvbHRvZ2dsZS1tZW51XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1jb2x0b2dnbGUtbWVudS1pdGVtIHNlbGVjdC1hbGwtb3B0aW9uXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWxsc2VsZWN0ZWRdPVwic2VsZWN0ZWRDb2x1bW5zLmxlbmd0aCA9PT0gY29sdW1ucy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVBbGxDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10YWJsZS1jb2x0b2dnbGUtbWVudS1pdGVtLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRhYmxlLWNvbHRvZ2dsZS1tZW51LWl0ZW0tY2hlY2tcIj4gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtdGFibGUtY29sdG9nZ2xlLW1lbnUtaXRlbS1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5TaG93IGFsbCBjb2x1bW5zPC9zcGFuXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sdG9nZ2xlLW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Q29sdW1uKGNvbClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0NvbHVtblNlbGVjdGVkKGNvbClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10YWJsZS1jb2x0b2dnbGUtbWVudS1pdGVtLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRhYmxlLWNvbHRvZ2dsZS1tZW51LWl0ZW0tY2hlY2tcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10YWJsZS1jb2x0b2dnbGUtbWVudS1pdGVtLWxhYmVsXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgY29sW2NvbEhlYWRlck5hbWVdXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9jcHMtbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RXhwb3J0QnRuXCIgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1leHBvcnQtYnRuXCI+XG4gICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICBpY29uPVwiZXhwb3J0XCJcbiAgICAgICAgICAgIHNpemU9XCJub3JtYWxcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmVwYXJlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0TWVudS50b2dnbGUoJGV2ZW50KVwiPjwvY3BzLWljb24+XG4gICAgICAgICAgPGNwcy1tZW51XG4gICAgICAgICAgICAjZXhwb3J0TWVudVxuICAgICAgICAgICAgW2l0ZW1zXT1cImV4cG9ydE1lbnVJdGVtc1wiXG4gICAgICAgICAgICBbY29tcHJlc3NlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt3aXRoQXJyb3ddPVwiZmFsc2VcIj5cbiAgICAgICAgICA8L2Nwcy1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiAqbmdJZj1cIm5lc3RlZEhlYWRlclRlbXBsYXRlXCIgbGV0LWNvbHVtbnM+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIG5lc3RlZEhlYWRlclRlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW5zLFxuICAgICAgICB9XG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgKm5nSWY9XCIhbmVzdGVkSGVhZGVyVGVtcGxhdGVcIiBsZXQtY29sdW1ucz5cbiAgICA8dHI+XG4gICAgICA8dGggc3R5bGU9XCJ3aWR0aDogM3JlbVwiICpuZ0lmPVwicm93RXhwYW5zaW9uVGVtcGxhdGVcIj48L3RoPlxuICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDNyZW1cIiAqbmdJZj1cInJlb3JkZXJhYmxlUm93c1wiPjwvdGg+XG4gICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNHJlbVwiICpuZ0lmPVwic2VsZWN0YWJsZVwiPlxuICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94PjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxuICAgICAgPC90aD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGhlYWRlclRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbnMsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGVhZGVyVGVtcGxhdGUgJiYgY29sdW1ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzb3J0YWJsZVwiPlxuICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIiBbY3BzQ29sU29ydGFibGVdPVwiY29sW2NvbEZpZWxkTmFtZV1cIj5cbiAgICAgICAgICAgIHt7IGNvbFtjb2xIZWFkZXJOYW1lXSB9fVxuICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNvcnRhYmxlXCI+XG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxuICAgICAgICAgICAge3sgY29sW2NvbEhlYWRlck5hbWVdIH19XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDx0aFxuICAgICAgICBzdHlsZT1cIndpZHRoOiAycmVtXCJcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtcm93LW1lbnUtY2VsbFwiXG4gICAgICAgICpuZ0lmPVwic2hvd1Jvd01lbnVcIj48L3RoPlxuICAgIDwvdHI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlXG4gICAgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgbGV0LXJvd0RhdGFcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1pdGVtXG4gICAgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIlxuICAgIGxldC1leHBhbmRlZD1cImV4cGFuZGVkXCI+XG4gICAgPHRyXG4gICAgICBbcFJlb3JkZXJhYmxlUm93XT1cInJvd0luZGV4XCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2Nwcy10YWJsZS1yb3ctc2VsZWN0ZWQnOiBzZWxlY3RhYmxlICYmIHByaW1lbmdUYWJsZS5pc1NlbGVjdGVkKGl0ZW0pXG4gICAgICB9XCI+XG4gICAgICA8dGQgKm5nSWY9XCJyb3dFeHBhbnNpb25UZW1wbGF0ZVwiIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1jaGV2cm9uLWNlbGxcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1jaGV2cm9uXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjcHMtdGFibGUtcm93LWNoZXZyb24tZXhwYW5kZWQnOiBleHBhbmRlZCB9XCI+XG4gICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBjb2xvcj1cInRleHQtZGFya1wiXG4gICAgICAgICAgICBbcFJvd1RvZ2dsZXJdPVwiaXRlbVwiPlxuICAgICAgICAgIDwvY3BzLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCAqbmdJZj1cInJlb3JkZXJhYmxlUm93c1wiIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1kcmFnLWhhbmRsZS1jZWxsXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1kcmFnLWhhbmRsZVwiIHBSZW9yZGVyYWJsZVJvd0hhbmRsZT7imLA8L3NwYW4+XG4gICAgICA8L3RkPlxuICAgICAgPHRkICpuZ0lmPVwic2VsZWN0YWJsZVwiPlxuICAgICAgICA8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlQ2hlY2tib3g+XG4gICAgICA8L3RkPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJvZHlUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGJvZHlUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLFxuICAgICAgICAgICAgICByb3dJbmRleDogcm93SW5kZXgsXG4gICAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMsXG4gICAgICAgICAgICAgIHJvd0RhdGE6IHJvd0RhdGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBcIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYm9keVRlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XG4gICAgICAgICAgICB7eyByb3dEYXRhW2NvbFtjb2xGaWVsZE5hbWVdXSB9fVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8dGQgKm5nSWY9XCJzaG93Um93TWVudVwiIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1tZW51LWNlbGxcIj5cbiAgICAgICAgPHRhYmxlLXJvdy1tZW51XG4gICAgICAgICAgKGVkaXRSb3dCdG5DbGlja2VkKT1cIm9uRWRpdFJvd0NsaWNrZWQoaXRlbSlcIlxuICAgICAgICAgIChyZW1vdmVSb3dCdG5DbGlja2VkKT1cIm9uUmVtb3ZlUm93Q2xpY2tlZChpdGVtKVwiPjwvdGFibGUtcm93LW1lbnU+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJyb3dleHBhbnNpb25cIiAqbmdJZj1cInJvd0V4cGFuc2lvblRlbXBsYXRlXCIgbGV0LWl0ZW0+XG4gICAgPHRyIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1leHBhbmRlZC1jb250ZW50XCI+XG4gICAgICA8dGQgY29sc3Bhbj1cIjEwMFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJvd0V4cGFuc2lvblRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgIDx0cj5cbiAgICAgIDx0ZFxuICAgICAgICBjb2xzcGFuPVwiMTAwXCJcbiAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtZW1wdHktbWVzc2FnZS10ZFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBlbXB0eUJvZHlIZWlnaHQgfVwiPlxuICAgICAgICB7eyBlbXB0eU1lc3NhZ2UgfX1cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxvYWRpbmdpY29uXCI+XG4gICAgPGNwcy1sb2FkZXIgW2Z1bGxTY3JlZW5dPVwiZmFsc2VcIiBvcGFjaXR5PVwiMFwiPjwvY3BzLWxvYWRlcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInBhZ2luYXRvcmxlZnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXRhYmxlLXBhZ2luYXRvci1pdG1zLXBlci1wYWdlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNwcy10YWJsZS1wYWdpbmF0b3ItaXRlbXMtcGVyLXBhZ2UtdGl0bGVcIlxuICAgICAgICA+Um93cyBwZXIgcGFnZTpcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxjcHMtc2VsZWN0XG4gICAgICAgIFtvcHRpb25zXT1cInJvd09wdGlvbnNcIlxuICAgICAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwicm93c1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25Sb3dzUGVyUGFnZUNoYW5nZWQoKVwiXG4gICAgICAgIFtyZXR1cm5PYmplY3RdPVwiZmFsc2VcIlxuICAgICAgICBvcHRpb25zQ2xhc3M9XCJjcHMtcGFnaW5hdG9yLXBhZ2Utb3B0aW9uc1wiPlxuICAgICAgPC9jcHMtc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLXRhYmxlPlxuIl19
|
|
444
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9jcHMtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2Nwcy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25HLE9B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RGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUYWJsZSwgVGFibGVTZXJ2aWNlLCBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgU29ydEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQ3BzSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9jcHMtaW5wdXQvY3BzLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtYnV0dG9uL2Nwcy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1zZWxlY3QvY3BzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNNZW51Q29tcG9uZW50LCBDcHNNZW51SXRlbSB9IGZyb20gJy4uL2Nwcy1tZW51L2Nwcy1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jcHMtbG9hZGVyL2Nwcy1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUm93TWVudUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1RhYmxlQ29sdW1uU29ydGFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY3BzLXRhYmxlLWNvbHVtbi1zb3J0YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFibGVVbnNvcnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaW50ZXJuYWwvdGFibGUtdW5zb3J0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBjb252ZXJ0U2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVybmFsL3NpemUtdXRpbHMnO1xuaW1wb3J0IHsgZmluZCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8vIGltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XG4vLyBpbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZUZhY3RvcnkodGFibGVDb21wb25lbnQ6IENwc1RhYmxlQ29tcG9uZW50KSB7XG4gIHJldHVybiB0YWJsZUNvbXBvbmVudC5wcmltZW5nVGFibGU7XG59XG5cbmV4cG9ydCB0eXBlIENwc1RhYmxlRXhwb3J0Rm9ybWF0ID0gJ2NzdicgfCAneGxzeCc7IC8vIHwgJ3BkZic7XG5leHBvcnQgdHlwZSBDcHNUYWJsZVNpemUgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgQ3BzVGFibGVUb29sYmFyU2l6ZSA9ICdzbWFsbCcgfCAnbm9ybWFsJztcbmV4cG9ydCB0eXBlIENwc1RhYmxlU29ydE1vZGUgPSAnc2luZ2xlJyB8ICdtdWx0aXBsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nwcy10YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIFRhYmxlVW5zb3J0RGlyZWN0aXZlLFxuICAgIENwc0lucHV0Q29tcG9uZW50LFxuICAgIENwc0J1dHRvbkNvbXBvbmVudCxcbiAgICBDcHNTZWxlY3RDb21wb25lbnQsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNNZW51Q29tcG9uZW50LFxuICAgIENwc0xvYWRlckNvbXBvbmVudCxcbiAgICBUYWJsZVJvd01lbnVDb21wb25lbnQsXG4gICAgQ3BzVGFibGVDb2x1bW5Tb3J0YWJsZURpcmVjdGl2ZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFRhYmxlU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBUYWJsZSxcbiAgICAgIHVzZUZhY3Rvcnk6IHRhYmxlRmFjdG9yeSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgZGVwczogW0Nwc1RhYmxlQ29tcG9uZW50XVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSA9IFtdO1xuICBASW5wdXQoKSBjb2xIZWFkZXJOYW1lID0gJ2hlYWRlcic7XG4gIEBJbnB1dCgpIGNvbEZpZWxkTmFtZSA9ICdmaWVsZCc7XG5cbiAgQElucHV0KCkgc3RyaXBlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGJvcmRlcmVkID0gdHJ1ZTtcbiAgQElucHV0KCkgc2l6ZTogQ3BzVGFibGVTaXplID0gJ25vcm1hbCc7XG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ05vIGRhdGEnO1xuICBASW5wdXQoKSBoYXNUb29sYmFyID0gdHJ1ZTtcbiAgQElucHV0KCkgdG9vbGJhclNpemU6IENwc1RhYmxlVG9vbGJhclNpemUgPSAnbm9ybWFsJztcbiAgQElucHV0KCkgdG9vbGJhclRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHNvcnRNb2RlOiBDcHNUYWJsZVNvcnRNb2RlID0gJ3NpbmdsZSc7XG4gIEBJbnB1dCgpIGN1c3RvbVNvcnQgPSBmYWxzZTtcbiAgQElucHV0KCkgcm93SG92ZXIgPSB0cnVlO1xuICBASW5wdXQoKSBkYXRhS2V5ID0gJyc7IC8vIGZpZWxkLCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgYSByZWNvcmQgaW4gZGF0YSAobmVlZGVkIGZvciBleHBhbmRhYmxlIHJvd3MpXG4gIEBJbnB1dCgpIHNob3dSb3dNZW51ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJhYmxlUm93cyA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93Q29sdW1uc1RvZ2dsZSA9IGZhbHNlOyAvLyBpZiBleHRlcm5hbCBib2R5IHRlbXBsYXRlIGlzIHByb3ZpZGVkLCB1c2UgY29sdW1uc1NlbGVjdGVkIGV2ZW50IGVtaXR0ZXJcbiAgQElucHV0KCkgc29ydGFibGUgPSBmYWxzZTsgLy8gbWFrZXMgYWxsIHNvcnRhYmxlIGlmIGNvbHVtbnMgYXJlIHByb3ZpZGVkXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzY3JvbGxhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJyc7IC8vICdmbGV4JyBvciB2YWx1ZSsncHgnXG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGwgPSBmYWxzZTsgLy8gd29ya3Mgb25seSBpZiBzY3JvbGxhYmxlIGlzIHRydWVcblxuICBASW5wdXQoKSBwYWdpbmF0b3IgPSBmYWxzZTtcbiAgQElucHV0KCkgYWx3YXlzU2hvd1BhZ2luYXRvciA9IHRydWU7XG4gIEBJbnB1dCgpIHJvd3NQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgZmlyc3QgPSAwO1xuICBASW5wdXQoKSByb3dzID0gMDtcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcblxuICBASW5wdXQoKSBlbXB0eUJvZHlIZWlnaHQgPSAnJztcblxuICBASW5wdXQoKSBsYXp5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhenlMb2FkT25Jbml0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzaG93R2xvYmFsRmlsdGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdsb2JhbEZpbHRlclBsYWNlaG9sZGVyID0gJ1NlYXJjaCc7XG4gIEBJbnB1dCgpIGdsb2JhbEZpbHRlckZpZWxkczogc3RyaW5nW10gPSBbXTtcblxuICBASW5wdXQoKSBzaG93UmVtb3ZlQnRuT25TZWxlY3QgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93QWN0aW9uQnRuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFjdGlvbkJ0blRpdGxlID0gJ0FjdGlvbic7XG5cbiAgQElucHV0KCkgc2hvd0V4cG9ydEJ0biA9IGZhbHNlO1xuICBASW5wdXQoKSBleHBvcnRGaWxlbmFtZSA9ICdkb3dubG9hZCc7XG4gIEBJbnB1dCgpIGNzdlNlcGFyYXRvciA9ICcsJztcblxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25CdG5DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZWRpdFJvd0J0bkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd3NSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBzb3J0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJvd3NSZW9yZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNvbHVtbnNTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBhbnkgfVtdPigpO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRvIGltcGxlbWVudCBjdXN0b20gc29ydGluZy4gY3VzdG9tU29ydCBtdXN0IGJlIHRydWUuXG4gICAqIEBwYXJhbSB7YW55fSBhbnkgLSBzb3J0IG1ldGEuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGN1c3RvbVNvcnRGdW5jdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAQ29udGVudENoaWxkKCd0b29sYmFyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyB0b29sYmFyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgaGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ25lc3RlZEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgbmVzdGVkSGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2JvZHknLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgncm93ZXhwYW5zaW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyByb3dFeHBhbnNpb25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgncHJpbWVuZ1RhYmxlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpbWVuZ1RhYmxlITogVGFibGU7XG5cbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuXG4gIHZpcnR1YWxTY3JvbGxJdGVtU2l6ZSA9IDA7XG5cbiAgcm93T3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH1bXSA9IFtdO1xuXG4gIHNlbGVjdGVkQ29sdW1uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdID0gW107XG5cbiAgZXhwb3J0TWVudUl0ZW1zID0gW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQ1NWJyxcbiAgICAgIGljb246ICdjc3YnLFxuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwb3J0VGFibGUoJ2NzdicpO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdYTFNYJyxcbiAgICAgIGljb246ICd4bHMnLFxuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwb3J0VGFibGUoJ3hsc3gnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8ge1xuICAgIC8vICAgdGl0bGU6ICdQREYnLFxuICAgIC8vICAgaWNvbjogJ3BkZicsXG4gICAgLy8gICBhY3Rpb246ICgpID0+IHtcbiAgICAvLyAgICAgdGhpcy5leHBvcnRUYWJsZSgncGRmJyk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICBdIGFzIENwc01lbnVJdGVtW107XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbXB0eUJvZHlIZWlnaHQgPSBjb252ZXJ0U2l6ZSh0aGlzLmVtcHR5Qm9keUhlaWdodCk7XG4gICAgaWYgKCF0aGlzLnNjcm9sbGFibGUpIHRoaXMudmlydHVhbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMucGFnaW5hdG9yKSB7XG4gICAgICBpZiAodGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMubGVuZ3RoIDwgMSlcbiAgICAgICAgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMgPSBbNSwgMTAsIDI1LCA1MF07XG5cbiAgICAgIGlmICghdGhpcy5yb3dzKSB0aGlzLnJvd3MgPSB0aGlzLnJvd3NQZXJQYWdlT3B0aW9uc1swXTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoIXRoaXMucm93c1BlclBhZ2VPcHRpb25zLmluY2x1ZGVzKHRoaXMucm93cykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Jvd3NQZXJQYWdlT3B0aW9ucyBtdXN0IGluY2x1ZGUgcm93cycpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMucm93T3B0aW9ucyA9IHRoaXMucm93c1BlclBhZ2VPcHRpb25zLm1hcCgodikgPT4gKHtcbiAgICAgICAgbGFiZWw6ICcnICsgdixcbiAgICAgICAgdmFsdWU6IHZcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNob3dHbG9iYWxGaWx0ZXIgJiZcbiAgICAgIHRoaXMuZ2xvYmFsRmlsdGVyRmllbGRzPy5sZW5ndGggPCAxICYmXG4gICAgICB0aGlzLmRhdGE/Lmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMuZ2xvYmFsRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXModGhpcy5kYXRhWzBdKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucztcbiAgfVxuXG4gIGdldCBzdHlsZUNsYXNzKCkge1xuICAgIGNvbnN0IGNsYXNzZXNMaXN0ID0gW107XG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcbiAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgY2xhc3Nlc0xpc3QucHVzaCgncC1kYXRhdGFibGUtc20nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgIGNsYXNzZXNMaXN0LnB1c2goJ3AtZGF0YXRhYmxlLWxnJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRoaXMudG9vbGJhclNpemUpIHtcbiAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgY2xhc3Nlc0xpc3QucHVzaCgnY3BzLXRiYXItc21hbGwnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdub3JtYWwnOlxuICAgICAgICBjbGFzc2VzTGlzdC5wdXNoKCdjcHMtdGJhci1ub3JtYWwnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0cmlwZWQpIHtcbiAgICAgIGNsYXNzZXNMaXN0LnB1c2goJ3AtZGF0YXRhYmxlLXN0cmlwZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYm9yZGVyZWQpIHtcbiAgICAgIGNsYXNzZXNMaXN0LnB1c2goJ3AtZGF0YXRhYmxlLWdyaWRsaW5lcycpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzTGlzdC5qb2luKCcgJyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKCF0aGlzLnZpcnR1YWxTY3JvbGwgfHwgdGhpcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemUpIHJldHVybjtcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGxJdGVtU2l6ZSA9XG4gICAgICB0aGlzLnByaW1lbmdUYWJsZT8uZWw/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgPy5xdWVyeVNlbGVjdG9yKCcucC1kYXRhdGFibGUtdGJvZHknKVxuICAgICAgICA/LnF1ZXJ5U2VsZWN0b3IoJ3RyJyk/LmNsaWVudEhlaWdodCB8fCAwO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKHNlbGVjdGlvbjogYW55W10pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdChcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIHNlbGVjdGlvbi5tYXAoKHsgX2RlZmF1bHRTb3J0T3JkZXIsIC4uLnJlc3QgfSkgPT4gcmVzdClcbiAgICApO1xuICB9XG5cbiAgb25Tb3J0RnVuY3Rpb24oZXZlbnQ6IFNvcnRFdmVudCkge1xuICAgIHRoaXMuY3VzdG9tU29ydEZ1bmN0aW9uLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25GaWx0ZXJHbG9iYWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucHJpbWVuZ1RhYmxlLmZpbHRlckdsb2JhbCh2YWx1ZSwgJ2NvbnRhaW5zJyk7XG4gIH1cblxuICByZW1vdmVTZWxlY3RlZCgpIHtcbiAgICBjb25zdCBpbmRleGVzOiBudW1iZXJbXSA9IHRoaXMucHJpbWVuZ1RhYmxlLnNlbGVjdGlvbi5tYXAoXG4gICAgICAoczogYW55KSA9PiBzLl9kZWZhdWx0U29ydE9yZGVyXG4gICAgKTtcbiAgICBpbmRleGVzLnNvcnQoKGEsIGIpID0+IGIgLSBhKTtcblxuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5maWx0ZXIoXG4gICAgICAodjogYW55KSA9PiAhaW5kZXhlcy5pbmNsdWRlcyh2Ll9kZWZhdWx0U29ydE9yZGVyKVxuICAgICk7XG5cbiAgICB0aGlzLnJvd3NSZW1vdmVkLmVtaXQoXG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5tYXAoKHsgX2RlZmF1bHRTb3J0T3JkZXIsIC4uLnJlc3QgfSkgPT4gcmVzdClcbiAgICApO1xuXG4gICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBbXTtcbiAgfVxuXG4gIG9uQ2xpY2tBY3Rpb25CdG4oKSB7XG4gICAgdGhpcy5hY3Rpb25CdG5DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uUm93c1BlclBhZ2VDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmlyc3QgPSAwO1xuICAgIHRoaXMucHJpbWVuZ1RhYmxlLmZpcnN0ID0gdGhpcy5maXJzdDtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHRvZ2dsZUFsbENvbHVtbnMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZENvbHVtbnMgPVxuICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMubGVuZ3RoIDwgdGhpcy5jb2x1bW5zLmxlbmd0aCA/IHRoaXMuY29sdW1ucyA6IFtdO1xuICAgIHRoaXMuY29sdW1uc1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZENvbHVtbnMpO1xuICB9XG5cbiAgaXNDb2x1bW5TZWxlY3RlZChjb2w6IGFueSkge1xuICAgIHJldHVybiAhIWZpbmQodGhpcy5zZWxlY3RlZENvbHVtbnMsIChpdGVtKSA9PiBpc0VxdWFsKGl0ZW0sIGNvbCkpO1xuICB9XG5cbiAgb25TZWxlY3RDb2x1bW4oY29sOiBhbnkpIHtcbiAgICBsZXQgcmVzID0gW10gYXMgYW55O1xuICAgIGlmICh0aGlzLmlzQ29sdW1uU2VsZWN0ZWQoY29sKSkge1xuICAgICAgcmVzID0gdGhpcy5zZWxlY3RlZENvbHVtbnMuZmlsdGVyKCh2OiBhbnkpID0+ICFpc0VxdWFsKHYsIGNvbCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMuc29tZSgodjogYW55KSA9PiBpc0VxdWFsKHYsIG8pKSB8fFxuICAgICAgICAgIGlzRXF1YWwoY29sLCBvKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXMucHVzaChvKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gcmVzO1xuICAgIHRoaXMuY29sdW1uc1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZENvbHVtbnMpO1xuICB9XG5cbiAgb25FZGl0Um93Q2xpY2tlZChpdGVtOiBhbnkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgeyBfZGVmYXVsdFNvcnRPcmRlciwgLi4ucmVzdCB9ID0gaXRlbTtcbiAgICB0aGlzLmVkaXRSb3dCdG5DbGlja2VkLmVtaXQocmVzdCk7XG4gIH1cblxuICBvblJlbW92ZVJvd0NsaWNrZWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGVkUm93cy5maWx0ZXIoKHY6IGFueSkgPT4gdiAhPT0gaXRlbSk7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLmZpbHRlcigodjogYW55KSA9PiB2ICE9PSBpdGVtKTtcbiAgICBjb25zdCB7IF9kZWZhdWx0U29ydE9yZGVyLCAuLi5yZXN0IH0gPSBpdGVtO1xuICAgIHRoaXMucm93c1JlbW92ZWQuZW1pdChbcmVzdF0pO1xuICB9XG5cbiAgb25Tb3J0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNvcnRlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uUm93UmVvcmRlcihldmVudDogYW55KSB7XG4gICAgdGhpcy5yb3dzUmVvcmRlcmVkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgZXhwb3J0VGFibGUoZm9ybWF0OiBDcHNUYWJsZUV4cG9ydEZvcm1hdCkge1xuICAgIGlmICh0aGlzLmNvbHVtbnMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEVycm9yKCdDb2x1bW5zIG11c3QgYmUgZGVmaW5lZCEnKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbHVtbnMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEVycm9yKCdOb3RoaW5nIHRvIGV4cG9ydCEnKTtcblxuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICdjc3YnOlxuICAgICAgICB0aGlzLnByaW1lbmdUYWJsZS5leHBvcnRDU1YoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3hsc3gnOlxuICAgICAgICB0aGlzLmV4cG9ydFhMU1goKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIGNhc2UgJ3BkZic6XG4gICAgICAvLyAgIHRoaXMuZXhwb3J0UERGKCk7XG4gICAgICAvLyAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydFhMU1goKSB7XG4gICAgaW1wb3J0KCd4bHN4JykudGhlbigoeGxzeCkgPT4ge1xuICAgICAgY29uc3Qgc2hlZXREYXRhID0gW1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucy5tYXAoXG4gICAgICAgICAgKGM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IGNbdGhpcy5jb2xIZWFkZXJOYW1lXVxuICAgICAgICApLFxuICAgICAgICAuLi50aGlzLmRhdGEubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMubWFwKFxuICAgICAgICAgICAgKGM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IGl0ZW1bY1t0aGlzLmNvbEZpZWxkTmFtZV1dXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICBdO1xuXG4gICAgICBjb25zdCB3b3Jrc2hlZXQgPSB4bHN4LnV0aWxzLmpzb25fdG9fc2hlZXQoc2hlZXREYXRhLCB7XG4gICAgICAgIHNraXBIZWFkZXI6IHRydWVcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgd29ya2Jvb2sgPSB7XG4gICAgICAgIFNoZWV0czogeyBbdGhpcy5leHBvcnRGaWxlbmFtZV06IHdvcmtzaGVldCB9LFxuICAgICAgICBTaGVldE5hbWVzOiBbdGhpcy5leHBvcnRGaWxlbmFtZV1cbiAgICAgIH07XG4gICAgICBjb25zdCB4bHN4QnVmZmVyOiBhbnkgPSB4bHN4LndyaXRlKHdvcmtib29rLCB7XG4gICAgICAgIGJvb2tUeXBlOiAneGxzeCcsXG4gICAgICAgIHR5cGU6ICdhcnJheSdcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBFWENFTF9UWVBFID1cbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuICAgICAgY29uc3QgYmxvYjogQmxvYiA9IG5ldyBCbG9iKFt4bHN4QnVmZmVyXSwge1xuICAgICAgICB0eXBlOiBFWENFTF9UWVBFXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgZG93bmxvYWRMaW5rLmRvd25sb2FkID0gYCR7dGhpcy5leHBvcnRGaWxlbmFtZX0ueGxzeGA7XG4gICAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGV4cG9ydFBERigpIHtcbiAgLy8gICBjb25zdCBleHBvcnRDb2x1bW5zID0gdGhpcy5zZWxlY3RlZENvbHVtbnMubWFwKChjb2wpID0+ICh7XG4gIC8vICAgICB0aXRsZTogY29sW3RoaXMuY29sSGVhZGVyTmFtZV0sXG4gIC8vICAgICBkYXRhS2V5OiBjb2xbdGhpcy5jb2xGaWVsZE5hbWVdXG4gIC8vICAgfSkpO1xuICAvLyAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gIC8vICAgY29uc3QgZG9jID0gbmV3IGpzUERGKHtcbiAgLy8gICAgIG9yaWVudGF0aW9uOiB0aGlzLnNlbGVjdGVkQ29sdW1ucy5sZW5ndGggPiAzID8gJ2wnIDogJ3AnLFxuICAvLyAgICAgdW5pdDogJ3B4JyxcbiAgLy8gICAgIGZvcm1hdDogJ2E0J1xuICAvLyAgIH0pO1xuICAvLyAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAvLyAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6ICcjODcwYTNjJyB9LFxuICAvLyAgICAgY29sdW1uczogZXhwb3J0Q29sdW1ucyxcbiAgLy8gICAgIGJvZHk6IHRoaXMuZGF0YVxuICAvLyAgIH0pO1xuICAvLyAgIGRvYy5zYXZlKGAke3RoaXMuZXhwb3J0RmlsZW5hbWV9LnBkZmApO1xuICAvLyB9XG59XG4iLCI8cC10YWJsZVxuICAjcHJpbWVuZ1RhYmxlXG4gIHdpdGhVbnNvcnRcbiAgW25nQ2xhc3NdPVwieyAnY3BzLXRhYmxlLWxvYWRpbmcnOiBsb2FkaW5nIH1cIlxuICBbc3R5bGVDbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgW3ZhbHVlXT1cImRhdGFcIlxuICBbZGF0YUtleV09XCJkYXRhS2V5XCJcbiAgW2NvbHVtbnNdPVwic2VsZWN0ZWRDb2x1bW5zXCJcbiAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcbiAgW3Njcm9sbGFibGVdPVwic2Nyb2xsYWJsZVwiXG4gIFtzY3JvbGxIZWlnaHRdPVwic2Nyb2xsSGVpZ2h0XCJcbiAgW2xhenldPVwibGF6eVwiXG4gIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICBbbGF6eUxvYWRPbkluaXRdPVwibGF6eUxvYWRPbkluaXRcIlxuICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcbiAgW3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJ2aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxuICBbdmlydHVhbFNjcm9sbE9wdGlvbnNdPVwieyBudW1Ub2xlcmF0ZWRJdGVtczogMyB9XCJcbiAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxuICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxuICBbYWx3YXlzU2hvd1BhZ2luYXRvcl09XCJhbHdheXNTaG93UGFnaW5hdG9yXCJcbiAgW3Nob3dJbml0aWFsU29ydEJhZGdlXT1cImZhbHNlXCJcbiAgW3Jvd3NdPVwicm93c1wiXG4gIFtmaXJzdF09XCJmaXJzdFwiXG4gIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcbiAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIntmaXJzdH0gLSB7bGFzdH0gb2Yge3RvdGFsUmVjb3Jkc31cIlxuICBbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRSb3dzXCJcbiAgW21ldGFLZXlTZWxlY3Rpb25dPVwiZmFsc2VcIlxuICBbcm93SG92ZXJdPVwicm93SG92ZXJcIlxuICBbY3VzdG9tU29ydF09XCJjdXN0b21Tb3J0XCJcbiAgW3NvcnRNb2RlXT1cInNvcnRNb2RlXCJcbiAgW2V4cG9ydEZpbGVuYW1lXT1cImV4cG9ydEZpbGVuYW1lXCJcbiAgW2NzdlNlcGFyYXRvcl09XCJjc3ZTZXBhcmF0b3JcIlxuICAob25QYWdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgKHNvcnRGdW5jdGlvbik9XCJvblNvcnRGdW5jdGlvbigkZXZlbnQpXCJcbiAgKG9uU29ydCk9XCJvblNvcnQoJGV2ZW50KVwiXG4gIChvblJvd1Jlb3JkZXIpPVwib25Sb3dSZW9yZGVyKCRldmVudClcIj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIiAqbmdJZj1cImhhc1Rvb2xiYXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9vbGJhclRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9vbGJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0b29sYmFyVGVtcGxhdGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1sZWZ0XCI+XG4gICAgICAgIDxkaXY+e3sgdG9vbGJhclRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93R2xvYmFsRmlsdGVyXCIgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1nbG9iYWwtZmlsdGVyXCI+XG4gICAgICAgICAgPGNwcy1pbnB1dFxuICAgICAgICAgICAgcHJlZml4SWNvbj1cInNlYXJjaFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2xvYmFsRmlsdGVyUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvbkZpbHRlckdsb2JhbCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJ0b29sYmFyU2l6ZSA9PT0gJ3NtYWxsJyA/ICd1bmRlcmxpbmVkJyA6ICdvdXRsaW5lZCdcIlxuICAgICAgICAgICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIj5cbiAgICAgICAgICA8L2Nwcy1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1yaWdodFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJzaG93UmVtb3ZlQnRuT25TZWxlY3QgJiYgc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDBcIlxuICAgICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLXRiYXItcmVtb3ZlLWJ0blwiPlxuICAgICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgICBsYWJlbD1cIlJlbW92ZVwiXG4gICAgICAgICAgICBjb2xvcj1cInByZXBhcmVkXCJcbiAgICAgICAgICAgIHR5cGU9XCJib3JkZXJsZXNzXCJcbiAgICAgICAgICAgIGljb249XCJyZW1vdmVcIlxuICAgICAgICAgICAgW3NpemVdPVwidG9vbGJhclNpemVcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwicmVtb3ZlU2VsZWN0ZWQoKVwiPlxuICAgICAgICAgIDwvY3BzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93QWN0aW9uQnRuXCIgY2xhc3M9XCJjcHMtdGFibGUtdGJhci1hY3Rpb24tYnRuXCI+XG4gICAgICAgICAgPGNwcy1idXR0b25cbiAgICAgICAgICAgIFtsYWJlbF09XCJhY3Rpb25CdG5UaXRsZVwiXG4gICAgICAgICAgICBjb2xvcj1cInByZXBhcmVkXCJcbiAgICAgICAgICAgIHR5cGU9XCJvdXRsaW5lZFwiXG4gICAgICAgICAgICBbc2l6ZV09XCJ0b29sYmFyU2l6ZVwiXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJvbkNsaWNrQWN0aW9uQnRuKClcIj5cbiAgICAgICAgICA8L2Nwcy1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJzaG93Q29sdW1uc1RvZ2dsZSAmJiBjb2x1bW5zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLXRiYXItY29sdG9nZ2xlLWJ0blwiPlxuICAgICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICAgaWNvbj1cImNvbHVtbnNcIlxuICAgICAgICAgICAgc2l6ZT1cIm5vcm1hbFwiXG4gICAgICAgICAgICBjb2xvcj1cInByZXBhcmVkLWxpZ2h0ZW4xXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb2xUb2dnbGVNZW51LnRvZ2dsZSgkZXZlbnQpXCI+PC9jcHMtaWNvbj5cbiAgICAgICAgICA8Y3BzLW1lbnUgI2NvbFRvZ2dsZU1lbnUgW3dpdGhBcnJvd109XCJmYWxzZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1jb2x0b2dnbGUtbWVudVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcHMtdGFibGUtY29sdG9nZ2xlLW1lbnUtaXRlbSBzZWxlY3QtYWxsLW9wdGlvblwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFsbHNlbGVjdGVkXT1cInNlbGVjdGVkQ29sdW1ucy5sZW5ndGggPT09IGNvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQWxsQ29sdW1ucygpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtdGFibGUtY29sdG9nZ2xlLW1lbnUtaXRlbS1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10YWJsZS1jb2x0b2dnbGUtbWVudS1pdGVtLWNoZWNrXCI+IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXRhYmxlLWNvbHRvZ2dsZS1tZW51LWl0ZW0tbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICA+U2hvdyBhbGwgY29sdW1uczwvc3BhblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbHRvZ2dsZS1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdENvbHVtbihjb2wpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNDb2x1bW5TZWxlY3RlZChjb2wpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtdGFibGUtY29sdG9nZ2xlLW1lbnUtaXRlbS1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10YWJsZS1jb2x0b2dnbGUtbWVudS1pdGVtLWNoZWNrXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtdGFibGUtY29sdG9nZ2xlLW1lbnUtaXRlbS1sYWJlbFwiPnt7XG4gICAgICAgICAgICAgICAgICAgIGNvbFtjb2xIZWFkZXJOYW1lXVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvY3BzLW1lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0V4cG9ydEJ0blwiIGNsYXNzPVwiY3BzLXRhYmxlLXRiYXItZXhwb3J0LWJ0blwiPlxuICAgICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICAgaWNvbj1cImV4cG9ydFwiXG4gICAgICAgICAgICBzaXplPVwibm9ybWFsXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJlcGFyZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cG9ydE1lbnUudG9nZ2xlKCRldmVudClcIj48L2Nwcy1pY29uPlxuICAgICAgICAgIDxjcHMtbWVudVxuICAgICAgICAgICAgI2V4cG9ydE1lbnVcbiAgICAgICAgICAgIFtpdGVtc109XCJleHBvcnRNZW51SXRlbXNcIlxuICAgICAgICAgICAgW2NvbXByZXNzZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbd2l0aEFycm93XT1cImZhbHNlXCI+XG4gICAgICAgICAgPC9jcHMtbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgKm5nSWY9XCJuZXN0ZWRIZWFkZXJUZW1wbGF0ZVwiIGxldC1jb2x1bW5zPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICBuZXN0ZWRIZWFkZXJUZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICRpbXBsaWNpdDogY29sdW1ucyxcbiAgICAgICAgfVxuICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiICpuZ0lmPVwiIW5lc3RlZEhlYWRlclRlbXBsYXRlXCIgbGV0LWNvbHVtbnM+XG4gICAgPHRyPlxuICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDNyZW1cIiAqbmdJZj1cInJvd0V4cGFuc2lvblRlbXBsYXRlXCI+PC90aD5cbiAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAzcmVtXCIgKm5nSWY9XCJyZW9yZGVyYWJsZVJvd3NcIj48L3RoPlxuICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDRyZW1cIiAqbmdJZj1cInNlbGVjdGFibGVcIj5cbiAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cbiAgICAgIDwvdGg+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBoZWFkZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW5zLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhlYWRlclRlbXBsYXRlICYmIGNvbHVtbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic29ydGFibGVcIj5cbiAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCIgW2Nwc0NvbFNvcnRhYmxlXT1cImNvbFtjb2xGaWVsZE5hbWVdXCI+XG4gICAgICAgICAgICB7eyBjb2xbY29sSGVhZGVyTmFtZV0gfX1cbiAgICAgICAgICA8L3RoPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzb3J0YWJsZVwiPlxuICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICAgIHt7IGNvbFtjb2xIZWFkZXJOYW1lXSB9fVxuICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8dGhcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMnJlbVwiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1tZW51LWNlbGxcIlxuICAgICAgICAqbmdJZj1cInNob3dSb3dNZW51XCI+PC90aD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZVxuICAgIHBUZW1wbGF0ZT1cImJvZHlcIlxuICAgIGxldC1yb3dEYXRhXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtaXRlbVxuICAgIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCJcbiAgICBsZXQtZXhwYW5kZWQ9XCJleHBhbmRlZFwiPlxuICAgIDx0clxuICAgICAgW3BSZW9yZGVyYWJsZVJvd109XCJyb3dJbmRleFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdjcHMtdGFibGUtcm93LXNlbGVjdGVkJzogc2VsZWN0YWJsZSAmJiBwcmltZW5nVGFibGUuaXNTZWxlY3RlZChpdGVtKVxuICAgICAgfVwiPlxuICAgICAgPHRkICpuZ0lmPVwicm93RXhwYW5zaW9uVGVtcGxhdGVcIiBjbGFzcz1cImNwcy10YWJsZS1yb3ctY2hldnJvbi1jZWxsXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNwcy10YWJsZS1yb3ctY2hldnJvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnY3BzLXRhYmxlLXJvdy1jaGV2cm9uLWV4cGFuZGVkJzogZXhwYW5kZWQgfVwiPlxuICAgICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tZG93blwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgY29sb3I9XCJ0ZXh0LWRhcmtcIlxuICAgICAgICAgICAgW3BSb3dUb2dnbGVyXT1cIml0ZW1cIj5cbiAgICAgICAgICA8L2Nwcy1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQgKm5nSWY9XCJyZW9yZGVyYWJsZVJvd3NcIiBjbGFzcz1cImNwcy10YWJsZS1yb3ctZHJhZy1oYW5kbGUtY2VsbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy10YWJsZS1yb3ctZHJhZy1oYW5kbGVcIiBwUmVvcmRlcmFibGVSb3dIYW5kbGU+4piwPC9zcGFuPlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGFibGVcIj5cbiAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwiaXRlbVwiPjwvcC10YWJsZUNoZWNrYm94PlxuICAgICAgPC90ZD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJib2R5VGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIHBUZW1wbGF0ZT1cImJvZHlcIlxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBib2R5VGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgICAgICAgICAgcm93SW5kZXg6IHJvd0luZGV4LFxuICAgICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLFxuICAgICAgICAgICAgICByb3dEYXRhOiByb3dEYXRhXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJvZHlUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxuICAgICAgICAgICAge3sgcm93RGF0YVtjb2xbY29sRmllbGROYW1lXV0gfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHRkICpuZ0lmPVwic2hvd1Jvd01lbnVcIiBjbGFzcz1cImNwcy10YWJsZS1yb3ctbWVudS1jZWxsXCI+XG4gICAgICAgIDx0YWJsZS1yb3ctbWVudVxuICAgICAgICAgIChlZGl0Um93QnRuQ2xpY2tlZCk9XCJvbkVkaXRSb3dDbGlja2VkKGl0ZW0pXCJcbiAgICAgICAgICAocmVtb3ZlUm93QnRuQ2xpY2tlZCk9XCJvblJlbW92ZVJvd0NsaWNrZWQoaXRlbSlcIj48L3RhYmxlLXJvdy1tZW51PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicm93ZXhwYW5zaW9uXCIgKm5nSWY9XCJyb3dFeHBhbnNpb25UZW1wbGF0ZVwiIGxldC1pdGVtPlxuICAgIDx0ciBjbGFzcz1cImNwcy10YWJsZS1yb3ctZXhwYW5kZWQtY29udGVudFwiPlxuICAgICAgPHRkIGNvbHNwYW49XCIxMDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICByb3dFeHBhbnNpb25UZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cbiAgICA8dHI+XG4gICAgICA8dGRcbiAgICAgICAgY29sc3Bhbj1cIjEwMFwiXG4gICAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWVtcHR5LW1lc3NhZ2UtdGRcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IGhlaWdodDogZW1wdHlCb2R5SGVpZ2h0IH1cIj5cbiAgICAgICAge3sgZW1wdHlNZXNzYWdlIH19XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJsb2FkaW5naWNvblwiPlxuICAgIDxjcHMtbG9hZGVyIFtmdWxsU2NyZWVuXT1cImZhbHNlXCIgb3BhY2l0eT1cIjBcIj48L2Nwcy1sb2FkZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJwYWdpbmF0b3JsZWZ0XCI+XG4gICAgPGRpdiBjbGFzcz1cImNwcy10YWJsZS1wYWdpbmF0b3ItaXRtcy1wZXItcGFnZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtdGFibGUtcGFnaW5hdG9yLWl0ZW1zLXBlci1wYWdlLXRpdGxlXCJcbiAgICAgICAgPlJvd3MgcGVyIHBhZ2U6XG4gICAgICA8L3NwYW4+XG4gICAgICA8Y3BzLXNlbGVjdFxuICAgICAgICBbb3B0aW9uc109XCJyb3dPcHRpb25zXCJcbiAgICAgICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInJvd3NcIlxuICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uUm93c1BlclBhZ2VDaGFuZ2VkKClcIlxuICAgICAgICBbcmV0dXJuT2JqZWN0XT1cImZhbHNlXCJcbiAgICAgICAgb3B0aW9uc0NsYXNzPVwiY3BzLXBhZ2luYXRvci1wYWdlLW9wdGlvbnNcIj5cbiAgICAgIDwvY3BzLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC10YWJsZT5cbiJdfQ==
|