@indigina/ui-kit 1.1.89 → 1.1.90
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.
|
@@ -41,6 +41,10 @@ export class KitGridComponent {
|
|
|
41
41
|
* Title to display in the first column of the footer row
|
|
42
42
|
*/
|
|
43
43
|
this.footerTitle = '';
|
|
44
|
+
/**
|
|
45
|
+
* Method to add additional logic to the row class
|
|
46
|
+
*/
|
|
47
|
+
this.addRowClass = () => ({});
|
|
44
48
|
/**
|
|
45
49
|
* An action which is emitted when the page of the grid is changed
|
|
46
50
|
*/
|
|
@@ -72,9 +76,13 @@ export class KitGridComponent {
|
|
|
72
76
|
this.expandedRows = [];
|
|
73
77
|
this.getCssRowClass = (context) => {
|
|
74
78
|
const expanded = this.expandedRows.includes(context.dataItem);
|
|
75
|
-
|
|
79
|
+
const classes = {
|
|
76
80
|
expanded,
|
|
77
81
|
};
|
|
82
|
+
if (this.addRowClass) {
|
|
83
|
+
Object.assign(classes, this.addRowClass(context));
|
|
84
|
+
}
|
|
85
|
+
return classes;
|
|
78
86
|
};
|
|
79
87
|
}
|
|
80
88
|
onDataStateChange(event) {
|
|
@@ -119,7 +127,7 @@ export class KitGridComponent {
|
|
|
119
127
|
this.expandedRows = [];
|
|
120
128
|
}
|
|
121
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KitGridComponent, selector: "kit-grid", inputs: { data: "data", gridDataBinding: "gridDataBinding", sortable: "sortable", sort: "sort", pageable: "pageable", pageSize: "pageSize", skip: "skip", loading: "loading", detailTemplateShowIf: "detailTemplateShowIf", showFooter: "showFooter", footerTitle: "footerTitle", footerData: "footerData" }, outputs: { pageChanged: "pageChanged", sortChanged: "sortChanged", dataStateChanged: "dataStateChanged", detailExpanded: "detailExpanded", detailCollapsed: "detailCollapsed", cellClicked: "cellClicked" }, queries: [{ propertyName: "columns", predicate: KitGridColumnComponent, isSignal: true }, { propertyName: "kitGridDetailTemplate", first: true, predicate: KitGridDetailTemplateDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (data) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [data]=\"data\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (sortChange)=\"onSortChange($event)\"\n (pageChange)=\"onPageChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n@if (gridDataBinding) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [kendoGridBinding]=\"gridDataBinding\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (pageChange)=\"onPageChange($event)\"\n (sortChange)=\"onSortChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n<ng-template #columnHeaderTemplate let-column>\n <div class=\"grid-title\"\n [class.sortable]=\"isColumnSortable(column)\">\n @if (column.titleIcon) {\n <kit-svg-icon class=\"grid-title-icon\"\n [icon]=\"column.titleIcon\"\n [ngClass]=\"column.titleIconType\"\n ></kit-svg-icon>\n }\n\n <div class=\"grid-title-text\">\n {{ column.title }}\n </div>\n\n @if (sortable && column.sortable) {\n @switch (getSortingDirection(column.field)) {\n @case (KitGridSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (KitGridSortDirection.DESC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_DESCENDING\"\n ></kit-svg-icon>\n }\n }\n }\n </div>\n</ng-template>\n\n<ng-template #footerTemplate let-column>\n @if (columns()) {\n @if (footerTitle && column === columns()[0]) {\n {{ footerTitle }}\n }\n @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n", styles: [".kit-grid{border:none;background:none}.kit-grid .grid-title{display:flex;align-items:center;gap:8px;flex:1;line-height:1;min-width:0}.kit-grid .grid-title-icon{display:block;width:16px;height:16px;flex-shrink:0}.kit-grid .grid-title-icon.fill{fill:var(--ui-kit-color-grey-12);stroke:none}.kit-grid .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-grey-12)}.kit-grid .grid-title-text{font-weight:500;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid .grid-title-sort-icon{display:block;margin-left:auto;width:16px;height:16px;fill:var(--ui-kit-color-grey-12)}.kit-grid .grid-title.sortable{cursor:pointer}.kit-grid ::ng-deep .k-grid-table{color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400}.kit-grid ::ng-deep .k-grid-header{padding:0!important;border:none}.kit-grid ::ng-deep .k-grid-footer{padding:0!important}.kit-grid ::ng-deep .k-grid-content{overflow-y:auto}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar{height:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-17);border-radius:2px}.kit-grid ::ng-deep .k-table{margin:0}.kit-grid ::ng-deep .k-table-th{padding:8px 0;border:none;border-bottom:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-grey-15)}.kit-grid ::ng-deep .k-table-th .k-cell-inner{margin:0}.kit-grid ::ng-deep .k-table-th .k-cell-inner .k-link{padding:0 8px;border-right:1px solid var(--ui-kit-color-grey-11);cursor:default}.kit-grid ::ng-deep .k-table-th .k-sort-icon{display:none}.kit-grid ::ng-deep .k-table-th .k-sort-order{margin-left:2px;color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted{color:var(--ui-kit-color-main);border-bottom:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.fill{fill:var(--ui-kit-color-main);stroke:none}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-sort-icon{fill:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-row:not(.k-detail-row):hover,.kit-grid ::ng-deep .k-table-row:hover{background:none}.kit-grid ::ng-deep .k-table-row .k-table-td{border-bottom-width:1px}.kit-grid ::ng-deep .k-table-alt-row{background:none}.kit-grid ::ng-deep .k-table-td{padding:12px 8px;border-color:var(--ui-kit-color-grey-11);border-bottom-width:1px;background:var(--ui-kit-color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid ::ng-deep .k-table-td:first-child{border-inline-start-width:1px}.kit-grid ::ng-deep .k-master-row.expanded .k-table-td{color:var(--ui-kit-color-main);border-bottom-color:var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-master-row.expanded .k-icon:before{color:var(--ui-kit-color-main);transform:rotate(90deg)}.kit-grid ::ng-deep .k-detail-row>.k-table-td{border-bottom:1px solid var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-detail-row .k-detail-cell{padding:0}.kit-grid ::ng-deep .k-detail-row .k-pager{margin:20px 0;justify-content:flex-start}.kit-grid ::ng-deep .k-detail-row .k-grid-norecords{text-align:left}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon{display:flex;align-items:center;justify-content:center;font-family:WebComponentsIcons,sans-serif;font-size:22px}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:before{content:\"\\e005\";color:var(--ui-kit-color-grey-12);transform:rotate(0);transition:transform .2s ease}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:hover:before{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon svg{display:none}.kit-grid ::ng-deep .k-pager{display:flex;justify-content:flex-end;margin-top:20px;padding:0;border:none;background:none}.kit-grid ::ng-deep .k-pager:focus{box-shadow:none}.kit-grid ::ng-deep .k-pager-numbers-wrap{gap:8px}.kit-grid ::ng-deep .k-pager-numbers{gap:8px}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-nav:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-nav:after{opacity:0}.kit-grid ::ng-deep .k-pager-nav.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav:not(.k-selected):hover:before{background-color:#0000000f}.kit-grid ::ng-deep .k-pager-nav.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager .k-pager-first,.kit-grid ::ng-deep .k-pager .k-pager-last{display:none}.kit-grid ::ng-deep .k-pager .k-button-icon{font-family:WebComponentsIcons,sans-serif}.kit-grid ::ng-deep .k-pager .k-button-icon svg{display:none}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-left:before{content:\"\\e016\"}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-right:before{content:\"\\e014\"}.kit-grid ::ng-deep .k-grid-aria-root{position:relative}.kit-grid ::ng-deep .k-loading-color{background:var(--ui-kit-color-grey-13)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i2.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "directive", type: i2.ExpandDetailsDirective, selector: "[kendoGridExpandDetailsBy]", inputs: ["kendoGridExpandDetailsBy", "expandDetailBy", "expandedDetailKeys", "initiallyExpanded"], outputs: ["expandedDetailKeysChange"], exportAs: ["kendoGridExpandDetailsBy"] }, { kind: "component", type: i2.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i2.FooterTemplateDirective, selector: "[kendoGridFooterTemplate]" }, { kind: "directive", type: i2.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "directive", type: i2.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i2.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "component", type: i3.KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KitGridComponent, selector: "kit-grid", inputs: { data: "data", gridDataBinding: "gridDataBinding", sortable: "sortable", sort: "sort", pageable: "pageable", pageSize: "pageSize", skip: "skip", loading: "loading", detailTemplateShowIf: "detailTemplateShowIf", showFooter: "showFooter", footerTitle: "footerTitle", footerData: "footerData", addRowClass: "addRowClass" }, outputs: { pageChanged: "pageChanged", sortChanged: "sortChanged", dataStateChanged: "dataStateChanged", detailExpanded: "detailExpanded", detailCollapsed: "detailCollapsed", cellClicked: "cellClicked" }, queries: [{ propertyName: "columns", predicate: KitGridColumnComponent, isSignal: true }, { propertyName: "kitGridDetailTemplate", first: true, predicate: KitGridDetailTemplateDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (data) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [data]=\"data\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (sortChange)=\"onSortChange($event)\"\n (pageChange)=\"onPageChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n@if (gridDataBinding) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [kendoGridBinding]=\"gridDataBinding\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (pageChange)=\"onPageChange($event)\"\n (sortChange)=\"onSortChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n<ng-template #columnHeaderTemplate let-column>\n <div class=\"grid-title\"\n [class.sortable]=\"isColumnSortable(column)\">\n @if (column.titleIcon) {\n <kit-svg-icon class=\"grid-title-icon\"\n [icon]=\"column.titleIcon\"\n [ngClass]=\"column.titleIconType\"\n ></kit-svg-icon>\n }\n\n <div class=\"grid-title-text\">\n {{ column.title }}\n </div>\n\n @if (sortable && column.sortable) {\n @switch (getSortingDirection(column.field)) {\n @case (KitGridSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (KitGridSortDirection.DESC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_DESCENDING\"\n ></kit-svg-icon>\n }\n }\n }\n </div>\n</ng-template>\n\n<ng-template #footerTemplate let-column>\n @if (columns()) {\n @if (footerTitle && column === columns()[0]) {\n {{ footerTitle }}\n }\n @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n", styles: [".kit-grid{border:none;background:none}.kit-grid .grid-title{display:flex;align-items:center;gap:8px;flex:1;line-height:1;min-width:0}.kit-grid .grid-title-icon{display:block;width:16px;height:16px;flex-shrink:0}.kit-grid .grid-title-icon.fill{fill:var(--ui-kit-color-grey-12);stroke:none}.kit-grid .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-grey-12)}.kit-grid .grid-title-text{font-weight:500;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid .grid-title-sort-icon{display:block;margin-left:auto;width:16px;height:16px;fill:var(--ui-kit-color-grey-12)}.kit-grid .grid-title.sortable{cursor:pointer}.kit-grid ::ng-deep .k-grid-table{color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400}.kit-grid ::ng-deep .k-grid-header{padding:0!important;border:none}.kit-grid ::ng-deep .k-grid-footer{padding:0!important}.kit-grid ::ng-deep .k-grid-content{overflow-y:auto}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar{height:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-17);border-radius:2px}.kit-grid ::ng-deep .k-table{margin:0}.kit-grid ::ng-deep .k-table-th{padding:8px 0;border:none;border-bottom:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-grey-15)}.kit-grid ::ng-deep .k-table-th .k-cell-inner{margin:0}.kit-grid ::ng-deep .k-table-th .k-cell-inner .k-link{padding:0 8px;border-right:1px solid var(--ui-kit-color-grey-11);cursor:default}.kit-grid ::ng-deep .k-table-th .k-sort-icon{display:none}.kit-grid ::ng-deep .k-table-th .k-sort-order{margin-left:2px;color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted{color:var(--ui-kit-color-main);border-bottom:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.fill{fill:var(--ui-kit-color-main);stroke:none}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-sort-icon{fill:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-row:not(.k-detail-row):hover,.kit-grid ::ng-deep .k-table-row:hover{background:none}.kit-grid ::ng-deep .k-table-row .k-table-td{border-bottom-width:1px}.kit-grid ::ng-deep .k-table-alt-row{background:none}.kit-grid ::ng-deep .k-table-td{padding:12px 8px;border-color:var(--ui-kit-color-grey-11);border-bottom-width:1px;background:var(--ui-kit-color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid ::ng-deep .k-table-td:first-child{border-inline-start-width:1px}.kit-grid ::ng-deep .k-master-row.expanded .k-table-td{color:var(--ui-kit-color-main);border-bottom-color:var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-master-row.expanded .k-icon:before{color:var(--ui-kit-color-main);transform:rotate(90deg)}.kit-grid ::ng-deep .k-detail-row>.k-table-td{border-bottom:1px solid var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-detail-row .k-detail-cell{padding:0}.kit-grid ::ng-deep .k-detail-row .k-pager{margin:20px 0;justify-content:flex-start}.kit-grid ::ng-deep .k-detail-row .k-grid-norecords{text-align:left}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon{display:flex;align-items:center;justify-content:center;font-family:WebComponentsIcons,sans-serif;font-size:22px}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:before{content:\"\\e005\";color:var(--ui-kit-color-grey-12);transform:rotate(0);transition:transform .2s ease}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:hover:before{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon svg{display:none}.kit-grid ::ng-deep .k-pager{display:flex;justify-content:flex-end;margin-top:20px;padding:0;border:none;background:none}.kit-grid ::ng-deep .k-pager:focus{box-shadow:none}.kit-grid ::ng-deep .k-pager-numbers-wrap{gap:8px}.kit-grid ::ng-deep .k-pager-numbers{gap:8px}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-nav:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-nav:after{opacity:0}.kit-grid ::ng-deep .k-pager-nav.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav:not(.k-selected):hover:before{background-color:#0000000f}.kit-grid ::ng-deep .k-pager-nav.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager .k-pager-first,.kit-grid ::ng-deep .k-pager .k-pager-last{display:none}.kit-grid ::ng-deep .k-pager .k-button-icon{font-family:WebComponentsIcons,sans-serif}.kit-grid ::ng-deep .k-pager .k-button-icon svg{display:none}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-left:before{content:\"\\e016\"}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-right:before{content:\"\\e014\"}.kit-grid ::ng-deep .k-grid-aria-root{position:relative}.kit-grid ::ng-deep .k-loading-color{background:var(--ui-kit-color-grey-13)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i2.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "directive", type: i2.ExpandDetailsDirective, selector: "[kendoGridExpandDetailsBy]", inputs: ["kendoGridExpandDetailsBy", "expandDetailBy", "expandedDetailKeys", "initiallyExpanded"], outputs: ["expandedDetailKeysChange"], exportAs: ["kendoGridExpandDetailsBy"] }, { kind: "component", type: i2.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i2.FooterTemplateDirective, selector: "[kendoGridFooterTemplate]" }, { kind: "directive", type: i2.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "directive", type: i2.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i2.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "component", type: i3.KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
123
131
|
}
|
|
124
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitGridComponent, decorators: [{
|
|
125
133
|
type: Component,
|
|
@@ -148,6 +156,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
148
156
|
type: Input
|
|
149
157
|
}], footerData: [{
|
|
150
158
|
type: Input
|
|
159
|
+
}], addRowClass: [{
|
|
160
|
+
type: Input
|
|
151
161
|
}], pageChanged: [{
|
|
152
162
|
type: Output
|
|
153
163
|
}], sortChanged: [{
|
|
@@ -164,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
164
174
|
type: ContentChild,
|
|
165
175
|
args: [KitGridDetailTemplateDirective, { read: TemplateRef }]
|
|
166
176
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9raXQtZ3JpZC9raXQtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1ncmlkL2tpdC1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBS3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVdoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFRdEYsTUFBTSxPQUFPLGdCQUFnQjtJQU43QjtRQWlCRTs7V0FFRztRQUNNLGFBQVEsR0FBa0MsS0FBSyxDQUFDO1FBRXpEOztXQUVHO1FBQ00sU0FBSSxHQUE0QixFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBT25DOztXQUVHO1FBQ00sU0FBSSxHQUFXLENBQUMsQ0FBQztRQUUxQjs7V0FFRztRQUNNLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDTSx5QkFBb0IsR0FBNkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBRXRFOztXQUVHO1FBQ00sZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVyQzs7V0FFRztRQUNNLGdCQUFXLEdBQVcs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Q2pELENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OEdBNUpVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG1rQkE2Rm1ELHNCQUFzQixxRkFGdEYsOEJBQThCLDJCQUFVLFdBQVcsNkJDL0huRSw0NEtBbUpBOzsyRkQvR2EsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTTs4QkFNdEMsSUFBSTtzQkFBWixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBS0csY0FBYztzQkFBdkIsTUFBTTtnQkFLRyxlQUFlO3NCQUF4QixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRThELHFCQUFxQjtzQkFBekYsWUFBWTt1QkFBQyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBTaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtpdEdyaWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2tpdC1ncmlkLWNvbHVtbi9raXQtZ3JpZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFBhZ2VyU2V0dGluZ3MsXG4gIFJvd0NsYXNzQXJncyxcbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ3JpZCc7XG5pbXBvcnQgeyBLaXRTdmdJY29uIH0gZnJvbSAnLi4va2l0LXN2Zy1pY29uL2tpdC1zdmctaWNvbi5jb25zdCc7XG5pbXBvcnQge1xuICBLaXRHcmlkRGF0YVN0YXRlQ2hhbmdlRXZlbnQsXG4gIEtpdEdyaWRTb3J0RGVzY3JpcHRvcixcbiAgS2l0R3JpZFNvcnRTZXR0aW5ncyxcbiAgS2l0R3JpZFBhZ2VDaGFuZ2VFdmVudCxcbiAgS2l0R3JpZERldGFpbEV4cGFuZEV2ZW50LFxuICBLaXRHcmlkRGV0YWlsQ29sbGFwc2VFdmVudCxcbiAgS2l0R3JpZERhdGFSZXN1bHQsXG4gIEtpdEdyaWRDZWxsQ2xpY2tFdmVudCxcbn0gZnJvbSAnLi9raXQtZ3JpZC5tb2RlbCc7XG5pbXBvcnQgeyBLaXRHcmlkU29ydERpcmVjdGlvbiB9IGZyb20gJy4va2l0LWdyaWQuY29uc3QnO1xuaW1wb3J0IHsgS2l0R3JpZERldGFpbFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9raXQtZ3JpZC1kZXRhaWwtdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2l0LWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4va2l0LWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4va2l0LWdyaWQuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgS2l0R3JpZENvbXBvbmVudDxUPiB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXRhIG9mIHRoZSBncmlkLiBBbGxvd3MgdXNlciB0byBpbXBsZW1lbnQgZGF0YSBvcGVyYXRpb25zIG1hbnVhbGx5XG4gICAqL1xuICBASW5wdXQoKSBkYXRhPzogVFtdIHwgS2l0R3JpZERhdGFSZXN1bHQ8VD47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRhdGEgb2YgdGhlIGdyaWQuIEFsbG93cyB1c2VyIHRvIGltcGxlbWVudCBkYXRhIG9wZXJhdGlvbnMgYXV0b21hdGljYWxseVxuICAgKi9cbiAgQElucHV0KCkgZ3JpZERhdGFCaW5kaW5nPzogVFtdO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBzb3J0aW5nIG9mIHRoZSBncmlkIGNvbHVtbnNcbiAgICovXG4gIEBJbnB1dCgpIHNvcnRhYmxlOiBLaXRHcmlkU29ydFNldHRpbmdzIHwgYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRvcnMgYnkgd2hpY2ggdGhlIGRhdGEgd2lsbCBiZSBzb3J0ZWRcbiAgICovXG4gIEBJbnB1dCgpIHNvcnQ6IEtpdEdyaWRTb3J0RGVzY3JpcHRvcltdID0gW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHBhZ2VyIG9mIHRoZSBncmlkXG4gICAqL1xuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBwYWdlIHNpemVcbiAgICovXG4gIEBJbnB1dCgpIHBhZ2VTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0byBiZSBza2lwcGVkIGJ5IHRoZSBwYWdlclxuICAgKi9cbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIHRoZSBsb2FkaW5nIGluZGljYXRvciBvZiB0aGUgZ3JpZCB3aWxsIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdGhlIGRldGFpbCB0ZW1wbGF0ZSBzaG91bGQgYmUgdmlzaWJsZVxuICAgKi9cbiAgQElucHV0KCkgZGV0YWlsVGVtcGxhdGVTaG93SWY6IChkYXRhSXRlbTogVCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRvIHNob3cgb3IgaGlkZSB0aGUgZm9vdGVyIHJvd1xuICAgKi9cbiAgQElucHV0KCkgc2hvd0Zvb3RlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaXRsZSB0byBkaXNwbGF5IGluIHRoZSBmaXJzdCBjb2x1bW4gb2YgdGhlIGZvb3RlciByb3dcbiAgICovXG4gIEBJbnB1dCgpIGZvb3RlclRpdGxlOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogRGF0YSB0byBkaXNwbGF5IGluIHRoZSBmb290ZXIgcm93XG4gICAqL1xuICBASW5wdXQoKSBmb290ZXJEYXRhPzogUGFydGlhbDxSZWNvcmQ8a2V5b2YgVCwgVFtrZXlvZiBUXT4+O1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCB3aGVuIHRoZSBwYWdlIG9mIHRoZSBncmlkIGlzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEtpdEdyaWRQYWdlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLaXRHcmlkUGFnZUNoYW5nZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCBvbmNlIHRoZSBzb3J0aW5nIG9mIHRoZSBncmlkIGlzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEtpdEdyaWRTb3J0RGVzY3JpcHRvcltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8S2l0R3JpZFNvcnREZXNjcmlwdG9yW10+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGFjdGlvbiB3aGljaCBpcyBlbWl0dGVkIHdoZW4gdGhlIGRhdGEgc3RhdGUgb2YgdGhlIGdyaWQgaXMgY2hhbmdlZFxuICAgKi9cbiAgQE91dHB1dCgpIGRhdGFTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxLaXRHcmlkRGF0YVN0YXRlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLaXRHcmlkRGF0YVN0YXRlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGFjdGlvbiB3aGljaCBpcyBlbWl0dGVkIHdoZW4gdGhlIG1hc3RlciByb3cgaXMgZXhwYW5kZWRcbiAgICovXG4gIEBPdXRwdXQoKSBkZXRhaWxFeHBhbmRlZDogRXZlbnRFbWl0dGVyPEtpdEdyaWREZXRhaWxFeHBhbmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtpdEdyaWREZXRhaWxFeHBhbmRFdmVudD4oKTtcblxuICAvKipcbiAgICogQW4gYWN0aW9uIHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiB0aGUgbWFzdGVyIHJvdyBpcyBjb2xsYXBzZWRcbiAgICovXG4gIEBPdXRwdXQoKSBkZXRhaWxDb2xsYXBzZWQ6IEV2ZW50RW1pdHRlcjxLaXRHcmlkRGV0YWlsQ29sbGFwc2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtpdEdyaWREZXRhaWxDb2xsYXBzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIGEgY2VsbFxuICAgKi9cbiAgQE91dHB1dCgpIGNlbGxDbGlja2VkOiBFdmVudEVtaXR0ZXI8S2l0R3JpZENlbGxDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2l0R3JpZENlbGxDbGlja0V2ZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGQoS2l0R3JpZERldGFpbFRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGtpdEdyaWREZXRhaWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcmVhZG9ubHkgY29sdW1uczogU2lnbmFsPHJlYWRvbmx5IEtpdEdyaWRDb2x1bW5Db21wb25lbnRbXT4gPSBjb250ZW50Q2hpbGRyZW4oS2l0R3JpZENvbHVtbkNvbXBvbmVudCk7XG4gIHJlYWRvbmx5IEtpdFN2Z0ljb246IHR5cGVvZiBLaXRTdmdJY29uID0gS2l0U3ZnSWNvbjtcbiAgcmVhZG9ubHkgS2l0R3JpZFNvcnREaXJlY3Rpb246IHR5cGVvZiBLaXRHcmlkU29ydERpcmVjdGlvbiA9IEtpdEdyaWRTb3J0RGlyZWN0aW9uO1xuICBleHBhbmRlZFJvd3M6IFRbXSA9IFtdO1xuXG4gIG9uRGF0YVN0YXRlQ2hhbmdlKGV2ZW50OiBLaXRHcmlkRGF0YVN0YXRlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNraXAgPSBldmVudC5za2lwO1xuICAgIHRoaXMuc29ydCA9IGV2ZW50LnNvcnQgfHwgW107XG4gICAgdGhpcy5jb2xsYXBzZUFsbFJvd3MoKTtcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gIH1cblxuICBvblNvcnRDaGFuZ2UoZXZlbnQ6IEtpdEdyaWRTb3J0RGVzY3JpcHRvcltdKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0ID0gZXZlbnQ7XG4gICAgdGhpcy5jb2xsYXBzZUFsbFJvd3MoKTtcbiAgICB0aGlzLnNvcnRDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgZ2V0U29ydGluZ0RpcmVjdGlvbihjb2x1bW5GaWVsZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc29ydC5maW5kKGl0ZW0gPT4gaXRlbS5maWVsZCA9PT0gY29sdW1uRmllbGQpPy5kaXIgPz8gbnVsbDtcbiAgfVxuXG4gIGlzQ29sdW1uU29ydGFibGUoY29sdW1uOiBLaXRHcmlkQ29sdW1uQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zb3J0YWJsZSAmJiBjb2x1bW4uc29ydGFibGU7XG4gIH1cblxuICBvbkRldGFpbEV4cGFuZChldmVudDogS2l0R3JpZERldGFpbEV4cGFuZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kZXRhaWxFeHBhbmRlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uRGV0YWlsQ29sbGFwc2UoZXZlbnQ6IEtpdEdyaWREZXRhaWxDb2xsYXBzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kZXRhaWxDb2xsYXBzZWQuZW1pdChldmVudCk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IEtpdEdyaWRQYWdlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNraXAgPSBldmVudC5za2lwO1xuICAgIHRoaXMuY29sbGFwc2VBbGxSb3dzKCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQ2VsbENsaWNrKGV2ZW50OiBLaXRHcmlkQ2VsbENsaWNrRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNlbGxDbGlja2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgZ2V0Q3NzUm93Q2xhc3MgPSAoY29udGV4dDogUm93Q2xhc3NBcmdzKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IGV4cGFuZGVkOiBib29sZWFuID0gdGhpcy5leHBhbmRlZFJvd3MuaW5jbHVkZXMoY29udGV4dC5kYXRhSXRlbSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXhwYW5kZWQsXG4gICAgfTtcbiAgfTtcblxuICBnZXRQYWdlclNldHRpbmdzKCk6IGJvb2xlYW4gfCBQYWdlclNldHRpbmdzIHtcbiAgICBjb25zdCBwYWdlclNldHRpbmdzOiBQYWdlclNldHRpbmdzID0ge1xuICAgICAgYnV0dG9uQ291bnQ6IDUsXG4gICAgICBpbmZvOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucGFnZWFibGUgJiYgcGFnZXJTZXR0aW5ncyB8fCBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VBbGxSb3dzKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRSb3dzID0gW107XG4gIH1cbn1cbiIsIkBpZiAoZGF0YSkge1xuICA8a2VuZG8tZ3JpZCBjbGFzcz1cImtpdC1ncmlkXCJcbiAgICAgICAgICAgICAga2VuZG9HcmlkRXhwYW5kRGV0YWlsc0J5XG4gICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICBbc29ydGFibGVdPVwic29ydGFibGVcIlxuICAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcbiAgICAgICAgICAgICAgW3Jvd0NsYXNzXT1cImdldENzc1Jvd0NsYXNzXCJcbiAgICAgICAgICAgICAgW3BhZ2VhYmxlXT1cImdldFBhZ2VyU2V0dGluZ3MoKVwiXG4gICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgIFtza2lwXT1cInNraXBcIlxuICAgICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgICAgICAgWyhleHBhbmRlZERldGFpbEtleXMpXT1cImV4cGFuZGVkUm93c1wiXG4gICAgICAgICAgICAgIChjZWxsQ2xpY2spPVwib25DZWxsQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChkZXRhaWxFeHBhbmQpPVwib25EZXRhaWxFeHBhbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChkZXRhaWxDb2xsYXBzZSk9XCJvbkRldGFpbENvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgICAgICAoc29ydENoYW5nZSk9XCJvblNvcnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGRhdGFTdGF0ZUNoYW5nZSk9XCJvbkRhdGFTdGF0ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnMoKTsgdHJhY2sgY29sdW1uKSB7XG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gW2ZpZWxkXT1cImNvbHVtbi5maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJjb2x1bW4uaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiY29sdW1uLndpZHRoXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uSGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIEBpZiAoY29sdW1uLmNlbGxUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5jZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhSXRlbSB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzaG93Rm9vdGVyKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZEZvb3RlclRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sdW1uIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICBAaWYgKGtpdEdyaWREZXRhaWxUZW1wbGF0ZSkge1xuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRGV0YWlsVGVtcGxhdGUgbGV0LWRhdGFJdGVtXG4gICAgICAgICAgICAgICAgICAgICBba2VuZG9HcmlkRGV0YWlsVGVtcGxhdGVTaG93SWZdPVwiZGV0YWlsVGVtcGxhdGVTaG93SWZcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwia2l0R3JpZERldGFpbFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZGF0YUl0ZW0gfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIH1cbiAgPC9rZW5kby1ncmlkPlxufVxuXG5AaWYgKGdyaWREYXRhQmluZGluZykge1xuICA8a2VuZG8tZ3JpZCBjbGFzcz1cImtpdC1ncmlkXCJcbiAgICAgICAgICAgICAga2VuZG9HcmlkRXhwYW5kRGV0YWlsc0J5XG4gICAgICAgICAgICAgIFtrZW5kb0dyaWRCaW5kaW5nXT1cImdyaWREYXRhQmluZGluZ1wiXG4gICAgICAgICAgICAgIFtyb3dDbGFzc109XCJnZXRDc3NSb3dDbGFzc1wiXG4gICAgICAgICAgICAgIFtwYWdlYWJsZV09XCJnZXRQYWdlclNldHRpbmdzKClcIlxuICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICAgICAgICBbc29ydGFibGVdPVwic29ydGFibGVcIlxuICAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcbiAgICAgICAgICAgICAgW3NraXBdPVwic2tpcFwiXG4gICAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgICAgICAgICAgICBbKGV4cGFuZGVkRGV0YWlsS2V5cyldPVwiZXhwYW5kZWRSb3dzXCJcbiAgICAgICAgICAgICAgKGNlbGxDbGljayk9XCJvbkNlbGxDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGRldGFpbENvbGxhcHNlKT1cIm9uRGV0YWlsQ29sbGFwc2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAoZGF0YVN0YXRlQ2hhbmdlKT1cIm9uRGF0YVN0YXRlQ2hhbmdlKCRldmVudClcIj5cbiAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1ucygpOyB0cmFjayBjb2x1bW4pIHtcbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cImNvbHVtbi5oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCJjb2x1bW4ud2lkdGhcIj5cbiAgICAgICAgQGlmIChjb2x1bW4uY2VsbFRlbXBsYXRlKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGFJdGVtIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cblxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkSGVhZGVyVGVtcGxhdGU+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbkhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sdW1uIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRm9vdGVyVGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIEBpZiAoa2l0R3JpZERldGFpbFRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWREZXRhaWxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgIFtrZW5kb0dyaWREZXRhaWxUZW1wbGF0ZVNob3dJZl09XCJkZXRhaWxUZW1wbGF0ZVNob3dJZlwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJraXRHcmlkRGV0YWlsVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhSXRlbSB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICB9XG4gICAgfVxuICA8L2tlbmRvLWdyaWQ+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uSGVhZGVyVGVtcGxhdGUgbGV0LWNvbHVtbj5cbiAgPGRpdiBjbGFzcz1cImdyaWQtdGl0bGVcIlxuICAgICAgIFtjbGFzcy5zb3J0YWJsZV09XCJpc0NvbHVtblNvcnRhYmxlKGNvbHVtbilcIj5cbiAgICBAaWYgKGNvbHVtbi50aXRsZUljb24pIHtcbiAgICAgIDxraXQtc3ZnLWljb24gY2xhc3M9XCJncmlkLXRpdGxlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJjb2x1bW4udGl0bGVJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLnRpdGxlSWNvblR5cGVcIlxuICAgICAgPjwva2l0LXN2Zy1pY29uPlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJncmlkLXRpdGxlLXRleHRcIj5cbiAgICAgIHt7IGNvbHVtbi50aXRsZSB9fVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChzb3J0YWJsZSAmJiBjb2x1bW4uc29ydGFibGUpIHtcbiAgICAgIEBzd2l0Y2ggKGdldFNvcnRpbmdEaXJlY3Rpb24oY29sdW1uLmZpZWxkKSkge1xuICAgICAgICBAY2FzZSAoS2l0R3JpZFNvcnREaXJlY3Rpb24uQVNDKSB7XG4gICAgICAgICAgPGtpdC1zdmctaWNvbiBjbGFzcz1cImdyaWQtdGl0bGUtc29ydC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIktpdFN2Z0ljb24uU09SVF9BU0NFTkRJTkdcIlxuICAgICAgICAgID48L2tpdC1zdmctaWNvbj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoS2l0R3JpZFNvcnREaXJlY3Rpb24uREVTQykge1xuICAgICAgICAgIDxraXQtc3ZnLWljb24gY2xhc3M9XCJncmlkLXRpdGxlLXNvcnQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJLaXRTdmdJY29uLlNPUlRfREVTQ0VORElOR1wiXG4gICAgICAgICAgPjwva2l0LXN2Zy1pY29uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgbGV0LWNvbHVtbj5cbiAgQGlmIChjb2x1bW5zKCkpIHtcbiAgICBAaWYgKGZvb3RlclRpdGxlICYmIGNvbHVtbiA9PT0gY29sdW1ucygpWzBdKSB7XG4gICAgICB7eyBmb290ZXJUaXRsZSB9fVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB7eyBmb290ZXJEYXRhPy5bY29sdW1uLmZpZWxkXSB8fCAnJyB9fVxuICAgIH1cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9raXQtZ3JpZC9raXQtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1ncmlkL2tpdC1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBS3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVdoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFRdEYsTUFBTSxPQUFPLGdCQUFnQjtJQU43QjtRQWlCRTs7V0FFRztRQUNNLGFBQVEsR0FBa0MsS0FBSyxDQUFDO1FBRXpEOztXQUVHO1FBQ00sU0FBSSxHQUE0QixFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBT25DOztXQUVHO1FBQ00sU0FBSSxHQUFXLENBQUMsQ0FBQztRQUUxQjs7V0FFRztRQUNNLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDTSx5QkFBb0IsR0FBNkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBRXRFOztXQUVHO1FBQ00sZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVyQzs7V0FFRztRQUNNLGdCQUFXLEdBQVcs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QUMsOEJBQThCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgU2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLaXRHcmlkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9raXQtZ3JpZC1jb2x1bW4va2l0LWdyaWQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBQYWdlclNldHRpbmdzLFxuICBSb3dDbGFzc0FyZ3MsXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWQnO1xuaW1wb3J0IHsgS2l0U3ZnSWNvbiB9IGZyb20gJy4uL2tpdC1zdmctaWNvbi9raXQtc3ZnLWljb24uY29uc3QnO1xuaW1wb3J0IHtcbiAgS2l0R3JpZERhdGFTdGF0ZUNoYW5nZUV2ZW50LFxuICBLaXRHcmlkU29ydERlc2NyaXB0b3IsXG4gIEtpdEdyaWRTb3J0U2V0dGluZ3MsXG4gIEtpdEdyaWRQYWdlQ2hhbmdlRXZlbnQsXG4gIEtpdEdyaWREZXRhaWxFeHBhbmRFdmVudCxcbiAgS2l0R3JpZERldGFpbENvbGxhcHNlRXZlbnQsXG4gIEtpdEdyaWREYXRhUmVzdWx0LFxuICBLaXRHcmlkQ2VsbENsaWNrRXZlbnQsXG59IGZyb20gJy4va2l0LWdyaWQubW9kZWwnO1xuaW1wb3J0IHsgS2l0R3JpZFNvcnREaXJlY3Rpb24gfSBmcm9tICcuL2tpdC1ncmlkLmNvbnN0JztcbmltcG9ydCB7IEtpdEdyaWREZXRhaWxUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4va2l0LWdyaWQtZGV0YWlsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpdC1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2tpdC1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2tpdC1ncmlkLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEtpdEdyaWRDb21wb25lbnQ8VD4ge1xuICAvKipcbiAgICogU2V0cyB0aGUgZGF0YSBvZiB0aGUgZ3JpZC4gQWxsb3dzIHVzZXIgdG8gaW1wbGVtZW50IGRhdGEgb3BlcmF0aW9ucyBtYW51YWxseVxuICAgKi9cbiAgQElucHV0KCkgZGF0YT86IFRbXSB8IEtpdEdyaWREYXRhUmVzdWx0PFQ+O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXRhIG9mIHRoZSBncmlkLiBBbGxvd3MgdXNlciB0byBpbXBsZW1lbnQgZGF0YSBvcGVyYXRpb25zIGF1dG9tYXRpY2FsbHlcbiAgICovXG4gIEBJbnB1dCgpIGdyaWREYXRhQmluZGluZz86IFRbXTtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgc29ydGluZyBvZiB0aGUgZ3JpZCBjb2x1bW5zXG4gICAqL1xuICBASW5wdXQoKSBzb3J0YWJsZTogS2l0R3JpZFNvcnRTZXR0aW5ncyB8IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0b3JzIGJ5IHdoaWNoIHRoZSBkYXRhIHdpbGwgYmUgc29ydGVkXG4gICAqL1xuICBASW5wdXQoKSBzb3J0OiBLaXRHcmlkU29ydERlc2NyaXB0b3JbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBwYWdlciBvZiB0aGUgZ3JpZFxuICAgKi9cbiAgQElucHV0KCkgcGFnZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgcGFnZSBzaXplXG4gICAqL1xuICBASW5wdXQoKSBwYWdlU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgdG8gYmUgc2tpcHBlZCBieSB0aGUgcGFnZXJcbiAgICovXG4gIEBJbnB1dCgpIHNraXA6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgbG9hZGluZyBpbmRpY2F0b3Igb2YgdGhlIGdyaWQgd2lsbCBiZSBkaXNwbGF5ZWRcbiAgICovXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIHRoZSBkZXRhaWwgdGVtcGxhdGUgc2hvdWxkIGJlIHZpc2libGVcbiAgICovXG4gIEBJbnB1dCgpIGRldGFpbFRlbXBsYXRlU2hvd0lmOiAoZGF0YUl0ZW06IFQpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcblxuICAvKipcbiAgICogRmxhZyB0byBzaG93IG9yIGhpZGUgdGhlIGZvb3RlciByb3dcbiAgICovXG4gIEBJbnB1dCgpIHNob3dGb290ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGl0bGUgdG8gZGlzcGxheSBpbiB0aGUgZmlyc3QgY29sdW1uIG9mIHRoZSBmb290ZXIgcm93XG4gICAqL1xuICBASW5wdXQoKSBmb290ZXJUaXRsZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIERhdGEgdG8gZGlzcGxheSBpbiB0aGUgZm9vdGVyIHJvd1xuICAgKi9cbiAgQElucHV0KCkgZm9vdGVyRGF0YT86IFBhcnRpYWw8UmVjb3JkPGtleW9mIFQsIFRba2V5b2YgVF0+PjtcbiAgXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gYWRkIGFkZGl0aW9uYWwgbG9naWMgdG8gdGhlIHJvdyBjbGFzc1xuICAgKi9cbiAgQElucHV0KCkgYWRkUm93Q2xhc3M/OiAoY29udGV4dD86IFJvd0NsYXNzQXJncykgPT4gUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSAoKSA9PiAoe30pO1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCB3aGVuIHRoZSBwYWdlIG9mIHRoZSBncmlkIGlzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEtpdEdyaWRQYWdlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLaXRHcmlkUGFnZUNoYW5nZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCBvbmNlIHRoZSBzb3J0aW5nIG9mIHRoZSBncmlkIGlzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEtpdEdyaWRTb3J0RGVzY3JpcHRvcltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8S2l0R3JpZFNvcnREZXNjcmlwdG9yW10+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGFjdGlvbiB3aGljaCBpcyBlbWl0dGVkIHdoZW4gdGhlIGRhdGEgc3RhdGUgb2YgdGhlIGdyaWQgaXMgY2hhbmdlZFxuICAgKi9cbiAgQE91dHB1dCgpIGRhdGFTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxLaXRHcmlkRGF0YVN0YXRlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLaXRHcmlkRGF0YVN0YXRlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGFjdGlvbiB3aGljaCBpcyBlbWl0dGVkIHdoZW4gdGhlIG1hc3RlciByb3cgaXMgZXhwYW5kZWRcbiAgICovXG4gIEBPdXRwdXQoKSBkZXRhaWxFeHBhbmRlZDogRXZlbnRFbWl0dGVyPEtpdEdyaWREZXRhaWxFeHBhbmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtpdEdyaWREZXRhaWxFeHBhbmRFdmVudD4oKTtcblxuICAvKipcbiAgICogQW4gYWN0aW9uIHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiB0aGUgbWFzdGVyIHJvdyBpcyBjb2xsYXBzZWRcbiAgICovXG4gIEBPdXRwdXQoKSBkZXRhaWxDb2xsYXBzZWQ6IEV2ZW50RW1pdHRlcjxLaXRHcmlkRGV0YWlsQ29sbGFwc2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtpdEdyaWREZXRhaWxDb2xsYXBzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIGEgY2VsbFxuICAgKi9cbiAgQE91dHB1dCgpIGNlbGxDbGlja2VkOiBFdmVudEVtaXR0ZXI8S2l0R3JpZENlbGxDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2l0R3JpZENlbGxDbGlja0V2ZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGQoS2l0R3JpZERldGFpbFRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGtpdEdyaWREZXRhaWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcmVhZG9ubHkgY29sdW1uczogU2lnbmFsPHJlYWRvbmx5IEtpdEdyaWRDb2x1bW5Db21wb25lbnRbXT4gPSBjb250ZW50Q2hpbGRyZW4oS2l0R3JpZENvbHVtbkNvbXBvbmVudCk7XG4gIHJlYWRvbmx5IEtpdFN2Z0ljb246IHR5cGVvZiBLaXRTdmdJY29uID0gS2l0U3ZnSWNvbjtcbiAgcmVhZG9ubHkgS2l0R3JpZFNvcnREaXJlY3Rpb246IHR5cGVvZiBLaXRHcmlkU29ydERpcmVjdGlvbiA9IEtpdEdyaWRTb3J0RGlyZWN0aW9uO1xuICBleHBhbmRlZFJvd3M6IFRbXSA9IFtdO1xuXG4gIG9uRGF0YVN0YXRlQ2hhbmdlKGV2ZW50OiBLaXRHcmlkRGF0YVN0YXRlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNraXAgPSBldmVudC5za2lwO1xuICAgIHRoaXMuc29ydCA9IGV2ZW50LnNvcnQgfHwgW107XG4gICAgdGhpcy5jb2xsYXBzZUFsbFJvd3MoKTtcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gIH1cblxuICBvblNvcnRDaGFuZ2UoZXZlbnQ6IEtpdEdyaWRTb3J0RGVzY3JpcHRvcltdKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0ID0gZXZlbnQ7XG4gICAgdGhpcy5jb2xsYXBzZUFsbFJvd3MoKTtcbiAgICB0aGlzLnNvcnRDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgZ2V0U29ydGluZ0RpcmVjdGlvbihjb2x1bW5GaWVsZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc29ydC5maW5kKGl0ZW0gPT4gaXRlbS5maWVsZCA9PT0gY29sdW1uRmllbGQpPy5kaXIgPz8gbnVsbDtcbiAgfVxuXG4gIGlzQ29sdW1uU29ydGFibGUoY29sdW1uOiBLaXRHcmlkQ29sdW1uQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zb3J0YWJsZSAmJiBjb2x1bW4uc29ydGFibGU7XG4gIH1cblxuICBvbkRldGFpbEV4cGFuZChldmVudDogS2l0R3JpZERldGFpbEV4cGFuZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kZXRhaWxFeHBhbmRlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uRGV0YWlsQ29sbGFwc2UoZXZlbnQ6IEtpdEdyaWREZXRhaWxDb2xsYXBzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kZXRhaWxDb2xsYXBzZWQuZW1pdChldmVudCk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IEtpdEdyaWRQYWdlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNraXAgPSBldmVudC5za2lwO1xuICAgIHRoaXMuY29sbGFwc2VBbGxSb3dzKCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQ2VsbENsaWNrKGV2ZW50OiBLaXRHcmlkQ2VsbENsaWNrRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNlbGxDbGlja2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgZ2V0Q3NzUm93Q2xhc3MgPSAoY29udGV4dDogUm93Q2xhc3NBcmdzKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IGV4cGFuZGVkOiBib29sZWFuID0gdGhpcy5leHBhbmRlZFJvd3MuaW5jbHVkZXMoY29udGV4dC5kYXRhSXRlbSk7XG5cbiAgICBjb25zdCBjbGFzc2VzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHtcbiAgICAgIGV4cGFuZGVkLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5hZGRSb3dDbGFzcykge1xuICAgICAgT2JqZWN0LmFzc2lnbihjbGFzc2VzLCB0aGlzLmFkZFJvd0NsYXNzKGNvbnRleHQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfTtcblxuICBnZXRQYWdlclNldHRpbmdzKCk6IGJvb2xlYW4gfCBQYWdlclNldHRpbmdzIHtcbiAgICBjb25zdCBwYWdlclNldHRpbmdzOiBQYWdlclNldHRpbmdzID0ge1xuICAgICAgYnV0dG9uQ291bnQ6IDUsXG4gICAgICBpbmZvOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucGFnZWFibGUgJiYgcGFnZXJTZXR0aW5ncyB8fCBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VBbGxSb3dzKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRSb3dzID0gW107XG4gIH1cbn1cbiIsIkBpZiAoZGF0YSkge1xuICA8a2VuZG8tZ3JpZCBjbGFzcz1cImtpdC1ncmlkXCJcbiAgICAgICAgICAgICAga2VuZG9HcmlkRXhwYW5kRGV0YWlsc0J5XG4gICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICBbc29ydGFibGVdPVwic29ydGFibGVcIlxuICAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcbiAgICAgICAgICAgICAgW3Jvd0NsYXNzXT1cImdldENzc1Jvd0NsYXNzXCJcbiAgICAgICAgICAgICAgW3BhZ2VhYmxlXT1cImdldFBhZ2VyU2V0dGluZ3MoKVwiXG4gICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgIFtza2lwXT1cInNraXBcIlxuICAgICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgICAgICAgWyhleHBhbmRlZERldGFpbEtleXMpXT1cImV4cGFuZGVkUm93c1wiXG4gICAgICAgICAgICAgIChjZWxsQ2xpY2spPVwib25DZWxsQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChkZXRhaWxFeHBhbmQpPVwib25EZXRhaWxFeHBhbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChkZXRhaWxDb2xsYXBzZSk9XCJvbkRldGFpbENvbGxhcHNlKCRldmVudClcIlxuICAgICAgICAgICAgICAoc29ydENoYW5nZSk9XCJvblNvcnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGRhdGFTdGF0ZUNoYW5nZSk9XCJvbkRhdGFTdGF0ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnMoKTsgdHJhY2sgY29sdW1uKSB7XG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gW2ZpZWxkXT1cImNvbHVtbi5maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJjb2x1bW4uaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiY29sdW1uLndpZHRoXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uSGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIEBpZiAoY29sdW1uLmNlbGxUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5jZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhSXRlbSB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzaG93Rm9vdGVyKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZEZvb3RlclRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sdW1uIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICBAaWYgKGtpdEdyaWREZXRhaWxUZW1wbGF0ZSkge1xuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRGV0YWlsVGVtcGxhdGUgbGV0LWRhdGFJdGVtXG4gICAgICAgICAgICAgICAgICAgICBba2VuZG9HcmlkRGV0YWlsVGVtcGxhdGVTaG93SWZdPVwiZGV0YWlsVGVtcGxhdGVTaG93SWZcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwia2l0R3JpZERldGFpbFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZGF0YUl0ZW0gfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIH1cbiAgPC9rZW5kby1ncmlkPlxufVxuXG5AaWYgKGdyaWREYXRhQmluZGluZykge1xuICA8a2VuZG8tZ3JpZCBjbGFzcz1cImtpdC1ncmlkXCJcbiAgICAgICAgICAgICAga2VuZG9HcmlkRXhwYW5kRGV0YWlsc0J5XG4gICAgICAgICAgICAgIFtrZW5kb0dyaWRCaW5kaW5nXT1cImdyaWREYXRhQmluZGluZ1wiXG4gICAgICAgICAgICAgIFtyb3dDbGFzc109XCJnZXRDc3NSb3dDbGFzc1wiXG4gICAgICAgICAgICAgIFtwYWdlYWJsZV09XCJnZXRQYWdlclNldHRpbmdzKClcIlxuICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICAgICAgICBbc29ydGFibGVdPVwic29ydGFibGVcIlxuICAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcbiAgICAgICAgICAgICAgW3NraXBdPVwic2tpcFwiXG4gICAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgICAgICAgICAgICBbKGV4cGFuZGVkRGV0YWlsS2V5cyldPVwiZXhwYW5kZWRSb3dzXCJcbiAgICAgICAgICAgICAgKGNlbGxDbGljayk9XCJvbkNlbGxDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGRldGFpbENvbGxhcHNlKT1cIm9uRGV0YWlsQ29sbGFwc2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAoZGF0YVN0YXRlQ2hhbmdlKT1cIm9uRGF0YVN0YXRlQ2hhbmdlKCRldmVudClcIj5cbiAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1ucygpOyB0cmFjayBjb2x1bW4pIHtcbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cImNvbHVtbi5oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCJjb2x1bW4ud2lkdGhcIj5cbiAgICAgICAgQGlmIChjb2x1bW4uY2VsbFRlbXBsYXRlKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGFJdGVtIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cblxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkSGVhZGVyVGVtcGxhdGU+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbkhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sdW1uIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRm9vdGVyVGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIEBpZiAoa2l0R3JpZERldGFpbFRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWREZXRhaWxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgIFtrZW5kb0dyaWREZXRhaWxUZW1wbGF0ZVNob3dJZl09XCJkZXRhaWxUZW1wbGF0ZVNob3dJZlwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJraXRHcmlkRGV0YWlsVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBkYXRhSXRlbSB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICB9XG4gICAgfVxuICA8L2tlbmRvLWdyaWQ+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uSGVhZGVyVGVtcGxhdGUgbGV0LWNvbHVtbj5cbiAgPGRpdiBjbGFzcz1cImdyaWQtdGl0bGVcIlxuICAgICAgIFtjbGFzcy5zb3J0YWJsZV09XCJpc0NvbHVtblNvcnRhYmxlKGNvbHVtbilcIj5cbiAgICBAaWYgKGNvbHVtbi50aXRsZUljb24pIHtcbiAgICAgIDxraXQtc3ZnLWljb24gY2xhc3M9XCJncmlkLXRpdGxlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJjb2x1bW4udGl0bGVJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLnRpdGxlSWNvblR5cGVcIlxuICAgICAgPjwva2l0LXN2Zy1pY29uPlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJncmlkLXRpdGxlLXRleHRcIj5cbiAgICAgIHt7IGNvbHVtbi50aXRsZSB9fVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChzb3J0YWJsZSAmJiBjb2x1bW4uc29ydGFibGUpIHtcbiAgICAgIEBzd2l0Y2ggKGdldFNvcnRpbmdEaXJlY3Rpb24oY29sdW1uLmZpZWxkKSkge1xuICAgICAgICBAY2FzZSAoS2l0R3JpZFNvcnREaXJlY3Rpb24uQVNDKSB7XG4gICAgICAgICAgPGtpdC1zdmctaWNvbiBjbGFzcz1cImdyaWQtdGl0bGUtc29ydC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIktpdFN2Z0ljb24uU09SVF9BU0NFTkRJTkdcIlxuICAgICAgICAgID48L2tpdC1zdmctaWNvbj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoS2l0R3JpZFNvcnREaXJlY3Rpb24uREVTQykge1xuICAgICAgICAgIDxraXQtc3ZnLWljb24gY2xhc3M9XCJncmlkLXRpdGxlLXNvcnQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJLaXRTdmdJY29uLlNPUlRfREVTQ0VORElOR1wiXG4gICAgICAgICAgPjwva2l0LXN2Zy1pY29uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGUgbGV0LWNvbHVtbj5cbiAgQGlmIChjb2x1bW5zKCkpIHtcbiAgICBAaWYgKGZvb3RlclRpdGxlICYmIGNvbHVtbiA9PT0gY29sdW1ucygpWzBdKSB7XG4gICAgICB7eyBmb290ZXJUaXRsZSB9fVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB7eyBmb290ZXJEYXRhPy5bY29sdW1uLmZpZWxkXSB8fCAnJyB9fVxuICAgIH1cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -5050,6 +5050,10 @@ class KitGridComponent {
|
|
|
5050
5050
|
* Title to display in the first column of the footer row
|
|
5051
5051
|
*/
|
|
5052
5052
|
this.footerTitle = '';
|
|
5053
|
+
/**
|
|
5054
|
+
* Method to add additional logic to the row class
|
|
5055
|
+
*/
|
|
5056
|
+
this.addRowClass = () => ({});
|
|
5053
5057
|
/**
|
|
5054
5058
|
* An action which is emitted when the page of the grid is changed
|
|
5055
5059
|
*/
|
|
@@ -5081,9 +5085,13 @@ class KitGridComponent {
|
|
|
5081
5085
|
this.expandedRows = [];
|
|
5082
5086
|
this.getCssRowClass = (context) => {
|
|
5083
5087
|
const expanded = this.expandedRows.includes(context.dataItem);
|
|
5084
|
-
|
|
5088
|
+
const classes = {
|
|
5085
5089
|
expanded,
|
|
5086
5090
|
};
|
|
5091
|
+
if (this.addRowClass) {
|
|
5092
|
+
Object.assign(classes, this.addRowClass(context));
|
|
5093
|
+
}
|
|
5094
|
+
return classes;
|
|
5087
5095
|
};
|
|
5088
5096
|
}
|
|
5089
5097
|
onDataStateChange(event) {
|
|
@@ -5128,7 +5136,7 @@ class KitGridComponent {
|
|
|
5128
5136
|
this.expandedRows = [];
|
|
5129
5137
|
}
|
|
5130
5138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5131
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KitGridComponent, selector: "kit-grid", inputs: { data: "data", gridDataBinding: "gridDataBinding", sortable: "sortable", sort: "sort", pageable: "pageable", pageSize: "pageSize", skip: "skip", loading: "loading", detailTemplateShowIf: "detailTemplateShowIf", showFooter: "showFooter", footerTitle: "footerTitle", footerData: "footerData" }, outputs: { pageChanged: "pageChanged", sortChanged: "sortChanged", dataStateChanged: "dataStateChanged", detailExpanded: "detailExpanded", detailCollapsed: "detailCollapsed", cellClicked: "cellClicked" }, queries: [{ propertyName: "columns", predicate: KitGridColumnComponent, isSignal: true }, { propertyName: "kitGridDetailTemplate", first: true, predicate: KitGridDetailTemplateDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (data) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [data]=\"data\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (sortChange)=\"onSortChange($event)\"\n (pageChange)=\"onPageChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n@if (gridDataBinding) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [kendoGridBinding]=\"gridDataBinding\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (pageChange)=\"onPageChange($event)\"\n (sortChange)=\"onSortChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n<ng-template #columnHeaderTemplate let-column>\n <div class=\"grid-title\"\n [class.sortable]=\"isColumnSortable(column)\">\n @if (column.titleIcon) {\n <kit-svg-icon class=\"grid-title-icon\"\n [icon]=\"column.titleIcon\"\n [ngClass]=\"column.titleIconType\"\n ></kit-svg-icon>\n }\n\n <div class=\"grid-title-text\">\n {{ column.title }}\n </div>\n\n @if (sortable && column.sortable) {\n @switch (getSortingDirection(column.field)) {\n @case (KitGridSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (KitGridSortDirection.DESC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_DESCENDING\"\n ></kit-svg-icon>\n }\n }\n }\n </div>\n</ng-template>\n\n<ng-template #footerTemplate let-column>\n @if (columns()) {\n @if (footerTitle && column === columns()[0]) {\n {{ footerTitle }}\n }\n @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n", styles: [".kit-grid{border:none;background:none}.kit-grid .grid-title{display:flex;align-items:center;gap:8px;flex:1;line-height:1;min-width:0}.kit-grid .grid-title-icon{display:block;width:16px;height:16px;flex-shrink:0}.kit-grid .grid-title-icon.fill{fill:var(--ui-kit-color-grey-12);stroke:none}.kit-grid .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-grey-12)}.kit-grid .grid-title-text{font-weight:500;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid .grid-title-sort-icon{display:block;margin-left:auto;width:16px;height:16px;fill:var(--ui-kit-color-grey-12)}.kit-grid .grid-title.sortable{cursor:pointer}.kit-grid ::ng-deep .k-grid-table{color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400}.kit-grid ::ng-deep .k-grid-header{padding:0!important;border:none}.kit-grid ::ng-deep .k-grid-footer{padding:0!important}.kit-grid ::ng-deep .k-grid-content{overflow-y:auto}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar{height:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-17);border-radius:2px}.kit-grid ::ng-deep .k-table{margin:0}.kit-grid ::ng-deep .k-table-th{padding:8px 0;border:none;border-bottom:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-grey-15)}.kit-grid ::ng-deep .k-table-th .k-cell-inner{margin:0}.kit-grid ::ng-deep .k-table-th .k-cell-inner .k-link{padding:0 8px;border-right:1px solid var(--ui-kit-color-grey-11);cursor:default}.kit-grid ::ng-deep .k-table-th .k-sort-icon{display:none}.kit-grid ::ng-deep .k-table-th .k-sort-order{margin-left:2px;color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted{color:var(--ui-kit-color-main);border-bottom:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.fill{fill:var(--ui-kit-color-main);stroke:none}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-sort-icon{fill:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-row:not(.k-detail-row):hover,.kit-grid ::ng-deep .k-table-row:hover{background:none}.kit-grid ::ng-deep .k-table-row .k-table-td{border-bottom-width:1px}.kit-grid ::ng-deep .k-table-alt-row{background:none}.kit-grid ::ng-deep .k-table-td{padding:12px 8px;border-color:var(--ui-kit-color-grey-11);border-bottom-width:1px;background:var(--ui-kit-color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid ::ng-deep .k-table-td:first-child{border-inline-start-width:1px}.kit-grid ::ng-deep .k-master-row.expanded .k-table-td{color:var(--ui-kit-color-main);border-bottom-color:var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-master-row.expanded .k-icon:before{color:var(--ui-kit-color-main);transform:rotate(90deg)}.kit-grid ::ng-deep .k-detail-row>.k-table-td{border-bottom:1px solid var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-detail-row .k-detail-cell{padding:0}.kit-grid ::ng-deep .k-detail-row .k-pager{margin:20px 0;justify-content:flex-start}.kit-grid ::ng-deep .k-detail-row .k-grid-norecords{text-align:left}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon{display:flex;align-items:center;justify-content:center;font-family:WebComponentsIcons,sans-serif;font-size:22px}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:before{content:\"\\e005\";color:var(--ui-kit-color-grey-12);transform:rotate(0);transition:transform .2s ease}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:hover:before{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon svg{display:none}.kit-grid ::ng-deep .k-pager{display:flex;justify-content:flex-end;margin-top:20px;padding:0;border:none;background:none}.kit-grid ::ng-deep .k-pager:focus{box-shadow:none}.kit-grid ::ng-deep .k-pager-numbers-wrap{gap:8px}.kit-grid ::ng-deep .k-pager-numbers{gap:8px}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-nav:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-nav:after{opacity:0}.kit-grid ::ng-deep .k-pager-nav.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav:not(.k-selected):hover:before{background-color:#0000000f}.kit-grid ::ng-deep .k-pager-nav.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager .k-pager-first,.kit-grid ::ng-deep .k-pager .k-pager-last{display:none}.kit-grid ::ng-deep .k-pager .k-button-icon{font-family:WebComponentsIcons,sans-serif}.kit-grid ::ng-deep .k-pager .k-button-icon svg{display:none}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-left:before{content:\"\\e016\"}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-right:before{content:\"\\e014\"}.kit-grid ::ng-deep .k-grid-aria-root{position:relative}.kit-grid ::ng-deep .k-loading-color{background:var(--ui-kit-color-grey-13)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$3.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i2$3.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "directive", type: i2$3.ExpandDetailsDirective, selector: "[kendoGridExpandDetailsBy]", inputs: ["kendoGridExpandDetailsBy", "expandDetailBy", "expandedDetailKeys", "initiallyExpanded"], outputs: ["expandedDetailKeysChange"], exportAs: ["kendoGridExpandDetailsBy"] }, { kind: "component", type: i2$3.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i2$3.FooterTemplateDirective, selector: "[kendoGridFooterTemplate]" }, { kind: "directive", type: i2$3.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "directive", type: i2$3.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i2$3.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KitGridComponent, selector: "kit-grid", inputs: { data: "data", gridDataBinding: "gridDataBinding", sortable: "sortable", sort: "sort", pageable: "pageable", pageSize: "pageSize", skip: "skip", loading: "loading", detailTemplateShowIf: "detailTemplateShowIf", showFooter: "showFooter", footerTitle: "footerTitle", footerData: "footerData", addRowClass: "addRowClass" }, outputs: { pageChanged: "pageChanged", sortChanged: "sortChanged", dataStateChanged: "dataStateChanged", detailExpanded: "detailExpanded", detailCollapsed: "detailCollapsed", cellClicked: "cellClicked" }, queries: [{ propertyName: "columns", predicate: KitGridColumnComponent, isSignal: true }, { propertyName: "kitGridDetailTemplate", first: true, predicate: KitGridDetailTemplateDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (data) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [data]=\"data\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (sortChange)=\"onSortChange($event)\"\n (pageChange)=\"onPageChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n@if (gridDataBinding) {\n <kendo-grid class=\"kit-grid\"\n kendoGridExpandDetailsBy\n [kendoGridBinding]=\"gridDataBinding\"\n [rowClass]=\"getCssRowClass\"\n [pageable]=\"getPagerSettings()\"\n [pageSize]=\"pageSize\"\n [sortable]=\"sortable\"\n [sort]=\"sort\"\n [skip]=\"skip\"\n [loading]=\"loading\"\n [(expandedDetailKeys)]=\"expandedRows\"\n (cellClick)=\"onCellClick($event)\"\n (detailExpand)=\"onDetailExpand($event)\"\n (detailCollapse)=\"onDetailCollapse($event)\"\n (pageChange)=\"onPageChange($event)\"\n (sortChange)=\"onSortChange($event)\"\n (dataStateChange)=\"onDataStateChange($event)\">\n @for (column of columns(); track column) {\n <kendo-grid-column [field]=\"column.field\"\n [sortable]=\"column.sortable\"\n [hidden]=\"column.hidden\"\n [width]=\"column.width\">\n @if (column.cellTemplate) {\n <ng-template kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"column.cellTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n\n <ng-template kendoGridHeaderTemplate>\n <ng-container *ngTemplateOutlet=\"columnHeaderTemplate; context: { $implicit: column }\"\n ></ng-container>\n </ng-template>\n\n @if (showFooter) {\n <ng-template kendoGridFooterTemplate>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: column }\"></ng-container>\n </ng-template>\n }\n </kendo-grid-column>\n\n @if (kitGridDetailTemplate) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"kitGridDetailTemplate; context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n </kendo-grid>\n}\n\n<ng-template #columnHeaderTemplate let-column>\n <div class=\"grid-title\"\n [class.sortable]=\"isColumnSortable(column)\">\n @if (column.titleIcon) {\n <kit-svg-icon class=\"grid-title-icon\"\n [icon]=\"column.titleIcon\"\n [ngClass]=\"column.titleIconType\"\n ></kit-svg-icon>\n }\n\n <div class=\"grid-title-text\">\n {{ column.title }}\n </div>\n\n @if (sortable && column.sortable) {\n @switch (getSortingDirection(column.field)) {\n @case (KitGridSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (KitGridSortDirection.DESC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"KitSvgIcon.SORT_DESCENDING\"\n ></kit-svg-icon>\n }\n }\n }\n </div>\n</ng-template>\n\n<ng-template #footerTemplate let-column>\n @if (columns()) {\n @if (footerTitle && column === columns()[0]) {\n {{ footerTitle }}\n }\n @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n", styles: [".kit-grid{border:none;background:none}.kit-grid .grid-title{display:flex;align-items:center;gap:8px;flex:1;line-height:1;min-width:0}.kit-grid .grid-title-icon{display:block;width:16px;height:16px;flex-shrink:0}.kit-grid .grid-title-icon.fill{fill:var(--ui-kit-color-grey-12);stroke:none}.kit-grid .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-grey-12)}.kit-grid .grid-title-text{font-weight:500;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid .grid-title-sort-icon{display:block;margin-left:auto;width:16px;height:16px;fill:var(--ui-kit-color-grey-12)}.kit-grid .grid-title.sortable{cursor:pointer}.kit-grid ::ng-deep .k-grid-table{color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400}.kit-grid ::ng-deep .k-grid-header{padding:0!important;border:none}.kit-grid ::ng-deep .k-grid-footer{padding:0!important}.kit-grid ::ng-deep .k-grid-content{overflow-y:auto}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar{height:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-17);border-radius:2px}.kit-grid ::ng-deep .k-table{margin:0}.kit-grid ::ng-deep .k-table-th{padding:8px 0;border:none;border-bottom:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-grey-15)}.kit-grid ::ng-deep .k-table-th .k-cell-inner{margin:0}.kit-grid ::ng-deep .k-table-th .k-cell-inner .k-link{padding:0 8px;border-right:1px solid var(--ui-kit-color-grey-11);cursor:default}.kit-grid ::ng-deep .k-table-th .k-sort-icon{display:none}.kit-grid ::ng-deep .k-table-th .k-sort-order{margin-left:2px;color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted{color:var(--ui-kit-color-main);border-bottom:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.fill{fill:var(--ui-kit-color-main);stroke:none}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-icon.stroke{fill:none;stroke:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-th.k-sorted .grid-title-sort-icon{fill:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-table-row:not(.k-detail-row):hover,.kit-grid ::ng-deep .k-table-row:hover{background:none}.kit-grid ::ng-deep .k-table-row .k-table-td{border-bottom-width:1px}.kit-grid ::ng-deep .k-table-alt-row{background:none}.kit-grid ::ng-deep .k-table-td{padding:12px 8px;border-color:var(--ui-kit-color-grey-11);border-bottom-width:1px;background:var(--ui-kit-color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kit-grid ::ng-deep .k-table-td:first-child{border-inline-start-width:1px}.kit-grid ::ng-deep .k-master-row.expanded .k-table-td{color:var(--ui-kit-color-main);border-bottom-color:var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-master-row.expanded .k-icon:before{color:var(--ui-kit-color-main);transform:rotate(90deg)}.kit-grid ::ng-deep .k-detail-row>.k-table-td{border-bottom:1px solid var(--ui-kit-color-grey-10)}.kit-grid ::ng-deep .k-detail-row .k-detail-cell{padding:0}.kit-grid ::ng-deep .k-detail-row .k-pager{margin:20px 0;justify-content:flex-start}.kit-grid ::ng-deep .k-detail-row .k-grid-norecords{text-align:left}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon{display:flex;align-items:center;justify-content:center;font-family:WebComponentsIcons,sans-serif;font-size:22px}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:before{content:\"\\e005\";color:var(--ui-kit-color-grey-12);transform:rotate(0);transition:transform .2s ease}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon:hover:before{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-hierarchy-cell .k-icon svg{display:none}.kit-grid ::ng-deep .k-pager{display:flex;justify-content:flex-end;margin-top:20px;padding:0;border:none;background:none}.kit-grid ::ng-deep .k-pager:focus{box-shadow:none}.kit-grid ::ng-deep .k-pager-numbers-wrap{gap:8px}.kit-grid ::ng-deep .k-pager-numbers{gap:8px}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-nav:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-nav:after{opacity:0}.kit-grid ::ng-deep .k-pager-nav.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-nav:not(.k-selected):hover:before{background-color:#0000000f}.kit-grid ::ng-deep .k-pager-nav.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager .k-pager-first,.kit-grid ::ng-deep .k-pager .k-pager-last{display:none}.kit-grid ::ng-deep .k-pager .k-button-icon{font-family:WebComponentsIcons,sans-serif}.kit-grid ::ng-deep .k-pager .k-button-icon svg{display:none}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-left:before{content:\"\\e016\"}.kit-grid ::ng-deep .k-pager .k-svg-i-caret-alt-right:before{content:\"\\e014\"}.kit-grid ::ng-deep .k-grid-aria-root{position:relative}.kit-grid ::ng-deep .k-loading-color{background:var(--ui-kit-color-grey-13)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$3.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i2$3.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "directive", type: i2$3.ExpandDetailsDirective, selector: "[kendoGridExpandDetailsBy]", inputs: ["kendoGridExpandDetailsBy", "expandDetailBy", "expandedDetailKeys", "initiallyExpanded"], outputs: ["expandedDetailKeysChange"], exportAs: ["kendoGridExpandDetailsBy"] }, { kind: "component", type: i2$3.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i2$3.FooterTemplateDirective, selector: "[kendoGridFooterTemplate]" }, { kind: "directive", type: i2$3.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "directive", type: i2$3.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i2$3.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5132
5140
|
}
|
|
5133
5141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitGridComponent, decorators: [{
|
|
5134
5142
|
type: Component,
|
|
@@ -5157,6 +5165,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
5157
5165
|
type: Input
|
|
5158
5166
|
}], footerData: [{
|
|
5159
5167
|
type: Input
|
|
5168
|
+
}], addRowClass: [{
|
|
5169
|
+
type: Input
|
|
5160
5170
|
}], pageChanged: [{
|
|
5161
5171
|
type: Output
|
|
5162
5172
|
}], sortChanged: [{
|