@indigina/ui-kit 1.1.329 → 1.1.331

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.
@@ -4902,6 +4902,7 @@ class KitGridComponent {
4902
4902
  this.pagerButtonCount = input(5, ...(ngDevMode ? [{ debugName: "pagerButtonCount" }] : []));
4903
4903
  this.pageSizes = input(...(ngDevMode ? [undefined, { debugName: "pageSizes" }] : []));
4904
4904
  this.pagerInfoText = input(this.translateService.instant('kit.grid.pagerItemsText'), ...(ngDevMode ? [{ debugName: "pagerInfoText" }] : []));
4905
+ this.noRecordsText = input(this.translateService.instant('kit.grid.noRecords'), ...(ngDevMode ? [{ debugName: "noRecordsText" }] : []));
4905
4906
  this.resizable = input(true, ...(ngDevMode ? [{ debugName: "resizable" }] : []));
4906
4907
  this.gridDetailTemplate = input(...(ngDevMode ? [undefined, { debugName: "gridDetailTemplate" }] : []));
4907
4908
  this.rowClassFn = input(...(ngDevMode ? [undefined, { debugName: "rowClassFn" }] : []));
@@ -5017,12 +5018,12 @@ class KitGridComponent {
5017
5018
  return size;
5018
5019
  }
5019
5020
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KitGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5020
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: KitGridComponent, isStandalone: true, selector: "kit-grid", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, gridDataBinding: { classPropertyName: "gridDataBinding", publicName: "gridDataBinding", isSignal: false, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: false, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: false, isRequired: false, transformFunction: null }, pageable: { classPropertyName: "pageable", publicName: "pageable", isSignal: false, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: false, isRequired: false, transformFunction: null }, skip: { classPropertyName: "skip", publicName: "skip", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, detailTemplateShowIf: { classPropertyName: "detailTemplateShowIf", publicName: "detailTemplateShowIf", isSignal: false, isRequired: false, transformFunction: null }, detailTemplateExpandDisableIf: { classPropertyName: "detailTemplateExpandDisableIf", publicName: "detailTemplateExpandDisableIf", isSignal: false, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: false, isRequired: false, transformFunction: null }, footerTitle: { classPropertyName: "footerTitle", publicName: "footerTitle", isSignal: false, isRequired: false, transformFunction: null }, footerData: { classPropertyName: "footerData", publicName: "footerData", isSignal: false, isRequired: false, transformFunction: null }, pdfOptions: { classPropertyName: "pdfOptions", publicName: "pdfOptions", isSignal: false, isRequired: false, transformFunction: null }, pagerButtonCount: { classPropertyName: "pagerButtonCount", publicName: "pagerButtonCount", isSignal: true, isRequired: false, transformFunction: null }, pageSizes: { classPropertyName: "pageSizes", publicName: "pageSizes", isSignal: true, isRequired: false, transformFunction: null }, pagerInfoText: { classPropertyName: "pagerInfoText", publicName: "pagerInfoText", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, gridDetailTemplate: { classPropertyName: "gridDetailTemplate", publicName: "gridDetailTemplate", isSignal: true, isRequired: false, transformFunction: null }, rowClassFn: { classPropertyName: "rowClassFn", publicName: "rowClassFn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChanged: "pageChanged", sortChanged: "sortChanged", dataStateChanged: "dataStateChanged", detailExpanded: "detailExpanded", detailCollapsed: "detailCollapsed", cellClicked: "cellClicked", excelExport: "excelExport" }, providers: [
5021
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: KitGridComponent, isStandalone: true, selector: "kit-grid", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, gridDataBinding: { classPropertyName: "gridDataBinding", publicName: "gridDataBinding", isSignal: false, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: false, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: false, isRequired: false, transformFunction: null }, pageable: { classPropertyName: "pageable", publicName: "pageable", isSignal: false, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: false, isRequired: false, transformFunction: null }, skip: { classPropertyName: "skip", publicName: "skip", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, detailTemplateShowIf: { classPropertyName: "detailTemplateShowIf", publicName: "detailTemplateShowIf", isSignal: false, isRequired: false, transformFunction: null }, detailTemplateExpandDisableIf: { classPropertyName: "detailTemplateExpandDisableIf", publicName: "detailTemplateExpandDisableIf", isSignal: false, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: false, isRequired: false, transformFunction: null }, footerTitle: { classPropertyName: "footerTitle", publicName: "footerTitle", isSignal: false, isRequired: false, transformFunction: null }, footerData: { classPropertyName: "footerData", publicName: "footerData", isSignal: false, isRequired: false, transformFunction: null }, pdfOptions: { classPropertyName: "pdfOptions", publicName: "pdfOptions", isSignal: false, isRequired: false, transformFunction: null }, pagerButtonCount: { classPropertyName: "pagerButtonCount", publicName: "pagerButtonCount", isSignal: true, isRequired: false, transformFunction: null }, pageSizes: { classPropertyName: "pageSizes", publicName: "pageSizes", isSignal: true, isRequired: false, transformFunction: null }, pagerInfoText: { classPropertyName: "pagerInfoText", publicName: "pagerInfoText", isSignal: true, isRequired: false, transformFunction: null }, noRecordsText: { classPropertyName: "noRecordsText", publicName: "noRecordsText", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, gridDetailTemplate: { classPropertyName: "gridDetailTemplate", publicName: "gridDetailTemplate", isSignal: true, isRequired: false, transformFunction: null }, rowClassFn: { classPropertyName: "rowClassFn", publicName: "rowClassFn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChanged: "pageChanged", sortChanged: "sortChanged", dataStateChanged: "dataStateChanged", detailExpanded: "detailExpanded", detailCollapsed: "detailCollapsed", cellClicked: "cellClicked", excelExport: "excelExport" }, providers: [
5021
5022
  LocalizationService,
5022
5023
  { provide: L10N_PREFIX, useValue: '' },
5023
5024
  PagerContextService,
5024
5025
  PagerNavigationService,
5025
- ], queries: [{ propertyName: "columnsContent", predicate: KitGridColumnComponent, isSignal: true }], viewQueries: [{ propertyName: "gridComponent", first: true, predicate: GridComponent, descendants: true }], 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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages [pagerItems]=\"pagerInfoText()\"\n [pagerOf]=\"'of'\">\n </kendo-grid-messages>\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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages pagerOf=\"of\"\n [pagerItems]=\"pagerInfoText()\">\n </kendo-grid-messages>\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 (kitSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"kitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (kitSortDirection.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(); as columns) {\n @if (footerTitle && column === columns[0]) {\n {{ footerTitle }}\n } @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n\n<ng-template #pagerTemplate\n kendoPagerTemplate>\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n</ng-template>\n", styles: [".kit-grid{border:none;background:none;max-height:100%}.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:8px;width:8px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-12);border-radius:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb:hover{background-color:var(--ui-kit-color-grey-18)}.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);box-shadow:none}.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;box-shadow:none}.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:0;padding:20px 0;justify-content:flex-start;background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .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-14);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:2px 0;color:var(--ui-kit-color-grey-10);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-numbers .k-button{width:32px;height:32px;color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:after,.kit-grid ::ng-deep .k-pager-numbers .k-button:before{display:none}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button:not(.k-selected):hover{background-color:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;border-radius:6px}.kit-grid ::ng-deep .k-pager-nav:before,.kit-grid ::ng-deep .k-pager-nav:after{display:none!important}.kit-grid ::ng-deep .k-pager-nav:not(.k-disabled):hover{background:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-info{flex:initial;border-radius:8px;background-color:#fff;padding:5px 16px}.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)}.kit-grid ::ng-deep .expand-disabled .k-hierarchy-cell a{pointer-events:none;opacity:.3}.kit-grid ::ng-deep .k-picker{height:32px;border-radius:4px;border:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .k-picker:hover{border-color:var(--ui-kit-color-hover)}.kit-grid ::ng-deep .k-picker.k-focus{border:1px solid var(--ui-kit-color-main);box-shadow:0 0 0 2px var(--ui-kit-color-focus)}.kit-grid ::ng-deep .k-picker[aria-expanded=true] .k-svg-i-caret-alt-down:before{transform:rotate(180deg)}.kit-grid ::ng-deep .k-picker .k-svg-i-caret-alt-down:before{content:\"\\e015\";color:var(--ui-kit-color-grey-12);font-family:WebComponentsIcons,sans-serif}::ng-deep .kit-grid.k-grid:has(.k-grid-norecords) .k-pager-numbers-wrap{display:none}::ng-deep .k-animation-container .k-list-item.k-selected{background-color:var(--ui-kit-color-main)}::ng-deep .k-animation-container .k-list-item:hover:not(.k-selected){color:var(--ui-kit-color-main)}\n"], dependencies: [{ kind: "ngmodule", type: GridModule }, { kind: "component", type: i1$b.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "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: i1$b.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "component", type: i1$b.CustomMessagesComponent, selector: "kendo-grid-messages" }, { kind: "directive", type: i1$b.ExpandDetailsDirective, selector: "[kendoGridExpandDetailsBy]", inputs: ["kendoGridExpandDetailsBy", "expandDetailBy", "expandedDetailKeys", "initiallyExpanded"], outputs: ["expandedDetailKeysChange"], exportAs: ["kendoGridExpandDetailsBy"] }, { kind: "component", type: i1$b.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i1$b.FooterTemplateDirective, selector: "[kendoGridFooterTemplate]" }, { kind: "directive", type: i1$b.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "directive", type: i1$b.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i1$b.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "component", type: i2$1.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i2$1.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i2$1.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i2$1.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i2$1.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "ngmodule", type: ExcelModule }, { kind: "component", type: i1$b.ExcelComponent, selector: "kendo-grid-excel", inputs: ["fileName", "filterable", "creator", "date", "forceProxy", "proxyURL", "fetchData", "paddingCellOptions", "headerPaddingCellOptions", "collapsible"] }, { kind: "ngmodule", type: PDFModule }, { kind: "component", type: i1$b.PDFComponent, selector: "kendo-grid-pdf", inputs: ["allPages", "delay"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5026
+ ], queries: [{ propertyName: "columnsContent", predicate: KitGridColumnComponent, isSignal: true }], viewQueries: [{ propertyName: "gridComponent", first: true, predicate: GridComponent, descendants: true }], 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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages [pagerItems]=\"pagerInfoText()\"\n [pagerOf]=\"'of'\"\n [noRecords]=\"noRecordsText()\">\n </kendo-grid-messages>\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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages pagerOf=\"of\"\n [pagerItems]=\"pagerInfoText()\"\n [noRecords]=\"noRecordsText()\">\n </kendo-grid-messages>\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 (kitSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"kitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (kitSortDirection.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(); as columns) {\n @if (footerTitle && column === columns[0]) {\n {{ footerTitle }}\n } @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n\n<ng-template #pagerTemplate\n kendoPagerTemplate>\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n</ng-template>\n", styles: [".kit-grid{border:none;background:none;max-height:100%}.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:8px;width:8px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-12);border-radius:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb:hover{background-color:var(--ui-kit-color-grey-18)}.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);box-shadow:none}.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;box-shadow:none}.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:0;padding:20px 0;justify-content:flex-start;background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .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-14);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:2px 0;color:var(--ui-kit-color-grey-10);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-numbers .k-button{width:32px;height:32px;color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:after,.kit-grid ::ng-deep .k-pager-numbers .k-button:before{display:none}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button:not(.k-selected):hover{background-color:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;border-radius:6px}.kit-grid ::ng-deep .k-pager-nav:before,.kit-grid ::ng-deep .k-pager-nav:after{display:none!important}.kit-grid ::ng-deep .k-pager-nav:not(.k-disabled):hover{background:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-info{flex:initial;border-radius:8px;background-color:#fff;padding:5px 16px}.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)}.kit-grid ::ng-deep .expand-disabled .k-hierarchy-cell a{pointer-events:none;opacity:.3}.kit-grid ::ng-deep .k-picker{height:32px;border-radius:4px;border:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .k-picker:hover{border-color:var(--ui-kit-color-hover)}.kit-grid ::ng-deep .k-picker.k-focus{border:1px solid var(--ui-kit-color-main);box-shadow:0 0 0 2px var(--ui-kit-color-focus)}.kit-grid ::ng-deep .k-picker[aria-expanded=true] .k-svg-i-caret-alt-down:before{transform:rotate(180deg)}.kit-grid ::ng-deep .k-picker .k-svg-i-caret-alt-down:before{content:\"\\e015\";color:var(--ui-kit-color-grey-12);font-family:WebComponentsIcons,sans-serif}::ng-deep .kit-grid.k-grid:has(.k-grid-norecords) .k-pager-numbers-wrap{display:none}::ng-deep .k-animation-container .k-list-item.k-selected{background-color:var(--ui-kit-color-main)}::ng-deep .k-animation-container .k-list-item:hover:not(.k-selected){color:var(--ui-kit-color-main)}\n"], dependencies: [{ kind: "ngmodule", type: GridModule }, { kind: "component", type: i1$b.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "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: i1$b.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "component", type: i1$b.CustomMessagesComponent, selector: "kendo-grid-messages" }, { kind: "directive", type: i1$b.ExpandDetailsDirective, selector: "[kendoGridExpandDetailsBy]", inputs: ["kendoGridExpandDetailsBy", "expandDetailBy", "expandedDetailKeys", "initiallyExpanded"], outputs: ["expandedDetailKeysChange"], exportAs: ["kendoGridExpandDetailsBy"] }, { kind: "component", type: i1$b.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i1$b.FooterTemplateDirective, selector: "[kendoGridFooterTemplate]" }, { kind: "directive", type: i1$b.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "directive", type: i1$b.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i1$b.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "component", type: i2$1.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i2$1.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i2$1.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i2$1.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i2$1.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "ngmodule", type: ExcelModule }, { kind: "component", type: i1$b.ExcelComponent, selector: "kendo-grid-excel", inputs: ["fileName", "filterable", "creator", "date", "forceProxy", "proxyURL", "fetchData", "paddingCellOptions", "headerPaddingCellOptions", "collapsible"] }, { kind: "ngmodule", type: PDFModule }, { kind: "component", type: i1$b.PDFComponent, selector: "kendo-grid-pdf", inputs: ["allPages", "delay"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5026
5027
  }
5027
5028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KitGridComponent, decorators: [{
5028
5029
  type: Component,
@@ -5038,7 +5039,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
5038
5039
  { provide: L10N_PREFIX, useValue: '' },
5039
5040
  PagerContextService,
5040
5041
  PagerNavigationService,
5041
- ], 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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages [pagerItems]=\"pagerInfoText()\"\n [pagerOf]=\"'of'\">\n </kendo-grid-messages>\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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages pagerOf=\"of\"\n [pagerItems]=\"pagerInfoText()\">\n </kendo-grid-messages>\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 (kitSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"kitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (kitSortDirection.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(); as columns) {\n @if (footerTitle && column === columns[0]) {\n {{ footerTitle }}\n } @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n\n<ng-template #pagerTemplate\n kendoPagerTemplate>\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n</ng-template>\n", styles: [".kit-grid{border:none;background:none;max-height:100%}.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:8px;width:8px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-12);border-radius:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb:hover{background-color:var(--ui-kit-color-grey-18)}.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);box-shadow:none}.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;box-shadow:none}.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:0;padding:20px 0;justify-content:flex-start;background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .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-14);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:2px 0;color:var(--ui-kit-color-grey-10);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-numbers .k-button{width:32px;height:32px;color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:after,.kit-grid ::ng-deep .k-pager-numbers .k-button:before{display:none}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button:not(.k-selected):hover{background-color:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;border-radius:6px}.kit-grid ::ng-deep .k-pager-nav:before,.kit-grid ::ng-deep .k-pager-nav:after{display:none!important}.kit-grid ::ng-deep .k-pager-nav:not(.k-disabled):hover{background:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-info{flex:initial;border-radius:8px;background-color:#fff;padding:5px 16px}.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)}.kit-grid ::ng-deep .expand-disabled .k-hierarchy-cell a{pointer-events:none;opacity:.3}.kit-grid ::ng-deep .k-picker{height:32px;border-radius:4px;border:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .k-picker:hover{border-color:var(--ui-kit-color-hover)}.kit-grid ::ng-deep .k-picker.k-focus{border:1px solid var(--ui-kit-color-main);box-shadow:0 0 0 2px var(--ui-kit-color-focus)}.kit-grid ::ng-deep .k-picker[aria-expanded=true] .k-svg-i-caret-alt-down:before{transform:rotate(180deg)}.kit-grid ::ng-deep .k-picker .k-svg-i-caret-alt-down:before{content:\"\\e015\";color:var(--ui-kit-color-grey-12);font-family:WebComponentsIcons,sans-serif}::ng-deep .kit-grid.k-grid:has(.k-grid-norecords) .k-pager-numbers-wrap{display:none}::ng-deep .k-animation-container .k-list-item.k-selected{background-color:var(--ui-kit-color-main)}::ng-deep .k-animation-container .k-list-item:hover:not(.k-selected){color:var(--ui-kit-color-main)}\n"] }]
5042
+ ], 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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages [pagerItems]=\"pagerInfoText()\"\n [pagerOf]=\"'of'\"\n [noRecords]=\"noRecordsText()\">\n </kendo-grid-messages>\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 [resizable]=\"resizable()\"\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 (excelExport)=\"excelExport.emit($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 (gridDetailTemplate()) {\n <ng-template kendoGridDetailTemplate let-dataItem\n [kendoGridDetailTemplateShowIf]=\"detailTemplateShowIf\">\n <ng-container *ngTemplateOutlet=\"gridDetailTemplate(); context: { $implicit: dataItem }\"\n ></ng-container>\n </ng-template>\n }\n }\n <kendo-grid-excel [fileName]=\"pdfOptions.fileName\" />\n <kendo-grid-pdf [fileName]=\"pdfOptions.fileName\"\n [allPages]=\"pdfOptions.allPages\"\n [paperSize]=\"pdfOptions.paperSize\"\n [scale]=\"pdfOptions.scale\"\n [landscape]=\"pdfOptions.landscape\"\n [repeatHeaders]=\"true\" />\n\n <ng-container *ngTemplateOutlet=\"pagerTemplate\" />\n <kendo-grid-messages pagerOf=\"of\"\n [pagerItems]=\"pagerInfoText()\"\n [noRecords]=\"noRecordsText()\">\n </kendo-grid-messages>\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 (kitSortDirection.ASC) {\n <kit-svg-icon class=\"grid-title-sort-icon\"\n [icon]=\"kitSvgIcon.SORT_ASCENDING\"\n ></kit-svg-icon>\n }\n @case (kitSortDirection.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(); as columns) {\n @if (footerTitle && column === columns[0]) {\n {{ footerTitle }}\n } @else {\n {{ footerData?.[column.field] || '' }}\n }\n }\n</ng-template>\n\n<ng-template #pagerTemplate\n kendoPagerTemplate>\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n</ng-template>\n", styles: [".kit-grid{border:none;background:none;max-height:100%}.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:8px;width:8px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb{background-color:var(--ui-kit-color-grey-12);border-radius:4px}.kit-grid ::ng-deep .k-grid-content::-webkit-scrollbar-thumb:hover{background-color:var(--ui-kit-color-grey-18)}.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);box-shadow:none}.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;box-shadow:none}.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:0;padding:20px 0;justify-content:flex-start;background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .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-14);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:2px 0;color:var(--ui-kit-color-grey-10);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-numbers .k-button{width:32px;height:32px;color:var(--ui-kit-color-grey-10);font-size:14px;font-weight:400;border-radius:6px;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:before{opacity:1;background:none;transition:none}.kit-grid ::ng-deep .k-pager-numbers .k-button:after,.kit-grid ::ng-deep .k-pager-numbers .k-button:before{display:none}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected{color:var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-selected:before{border:1px solid var(--ui-kit-color-main)}.kit-grid ::ng-deep .k-pager-numbers .k-button:not(.k-selected):hover{background-color:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-numbers .k-button.k-disabled{color:var(--ui-kit-color-grey-12)}.kit-grid ::ng-deep .k-pager-nav{width:32px;height:32px;border-radius:6px}.kit-grid ::ng-deep .k-pager-nav:before,.kit-grid ::ng-deep .k-pager-nav:after{display:none!important}.kit-grid ::ng-deep .k-pager-nav:not(.k-disabled):hover{background:var(--ui-kit-color-grey-11)!important}.kit-grid ::ng-deep .k-pager-info{flex:initial;border-radius:8px;background-color:#fff;padding:5px 16px}.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)}.kit-grid ::ng-deep .expand-disabled .k-hierarchy-cell a{pointer-events:none;opacity:.3}.kit-grid ::ng-deep .k-picker{height:32px;border-radius:4px;border:1px solid var(--ui-kit-color-grey-11);background:var(--ui-kit-color-white)}.kit-grid ::ng-deep .k-picker:hover{border-color:var(--ui-kit-color-hover)}.kit-grid ::ng-deep .k-picker.k-focus{border:1px solid var(--ui-kit-color-main);box-shadow:0 0 0 2px var(--ui-kit-color-focus)}.kit-grid ::ng-deep .k-picker[aria-expanded=true] .k-svg-i-caret-alt-down:before{transform:rotate(180deg)}.kit-grid ::ng-deep .k-picker .k-svg-i-caret-alt-down:before{content:\"\\e015\";color:var(--ui-kit-color-grey-12);font-family:WebComponentsIcons,sans-serif}::ng-deep .kit-grid.k-grid:has(.k-grid-norecords) .k-pager-numbers-wrap{display:none}::ng-deep .k-animation-container .k-list-item.k-selected{background-color:var(--ui-kit-color-main)}::ng-deep .k-animation-container .k-list-item:hover:not(.k-selected){color:var(--ui-kit-color-main)}\n"] }]
5042
5043
  }], ctorParameters: () => [], propDecorators: { data: [{
5043
5044
  type: Input
5044
5045
  }], gridDataBinding: [{
@@ -5067,7 +5068,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
5067
5068
  type: Input
5068
5069
  }], pdfOptions: [{
5069
5070
  type: Input
5070
- }], pagerButtonCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagerButtonCount", required: false }] }], pageSizes: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizes", required: false }] }], pagerInfoText: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagerInfoText", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], gridDetailTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridDetailTemplate", required: false }] }], rowClassFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClassFn", required: false }] }], pageChanged: [{
5071
+ }], pagerButtonCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagerButtonCount", required: false }] }], pageSizes: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizes", required: false }] }], pagerInfoText: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagerInfoText", required: false }] }], noRecordsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noRecordsText", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], gridDetailTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridDetailTemplate", required: false }] }], rowClassFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClassFn", required: false }] }], pageChanged: [{
5071
5072
  type: Output
5072
5073
  }], sortChanged: [{
5073
5074
  type: Output
@@ -6565,6 +6566,7 @@ const kitTranslations = {
6565
6566
  grid: {
6566
6567
  pagerItemsText: 'items',
6567
6568
  view: 'View',
6569
+ noRecords: 'No records available.',
6568
6570
  actions: {
6569
6571
  archive: 'Switch To Archive',
6570
6572
  refresh: 'Refresh',
@@ -6691,6 +6693,7 @@ const kitTranslations = {
6691
6693
  grid: {
6692
6694
  pagerItemsText: 'элементов',
6693
6695
  view: 'Вид',
6696
+ noRecords: 'Нет доступных записей.',
6694
6697
  actions: {
6695
6698
  archive: 'Перейти к архиву',
6696
6699
  refresh: 'Обновить',
@@ -9334,7 +9337,7 @@ class KitEntityGridComponent {
9334
9337
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: KitEntityGridComponent, isStandalone: true, selector: "kit-entity-grid", inputs: { gridData: { classPropertyName: "gridData", publicName: "gridData", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, gridColumns: { classPropertyName: "gridColumns", publicName: "gridColumns", isSignal: true, isRequired: true, transformFunction: null }, defaultViewName: { classPropertyName: "defaultViewName", publicName: "defaultViewName", isSignal: true, isRequired: true, transformFunction: null }, viewGroup: { classPropertyName: "viewGroup", publicName: "viewGroup", isSignal: true, isRequired: true, transformFunction: null }, viewGroupConfig: { classPropertyName: "viewGroupConfig", publicName: "viewGroupConfig", isSignal: true, isRequired: true, transformFunction: null }, pdfOptions: { classPropertyName: "pdfOptions", publicName: "pdfOptions", isSignal: true, isRequired: true, transformFunction: null }, getExportedData: { classPropertyName: "getExportedData", publicName: "getExportedData", isSignal: true, isRequired: true, transformFunction: null }, defaultSorting: { classPropertyName: "defaultSorting", publicName: "defaultSorting", isSignal: true, isRequired: false, transformFunction: null }, filterExcludedColumns: { classPropertyName: "filterExcludedColumns", publicName: "filterExcludedColumns", isSignal: true, isRequired: false, transformFunction: null }, systemViews: { classPropertyName: "systemViews", publicName: "systemViews", isSignal: true, isRequired: false, transformFunction: null }, translationMap: { classPropertyName: "translationMap", publicName: "translationMap", isSignal: true, isRequired: false, transformFunction: null }, isDetailTemplateVisible: { classPropertyName: "isDetailTemplateVisible", publicName: "isDetailTemplateVisible", isSignal: true, isRequired: false, transformFunction: null }, detailTemplateExpandDisableIf: { classPropertyName: "detailTemplateExpandDisableIf", publicName: "detailTemplateExpandDisableIf", isSignal: true, isRequired: false, transformFunction: null }, gridHasData: { classPropertyName: "gridHasData", publicName: "gridHasData", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, pagerInfoText: { classPropertyName: "pagerInfoText", publicName: "pagerInfoText", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumbs: { classPropertyName: "showBreadcrumbs", publicName: "showBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, pageSizes: { classPropertyName: "pageSizes", publicName: "pageSizes", isSignal: true, isRequired: false, transformFunction: null }, rowClassFn: { classPropertyName: "rowClassFn", publicName: "rowClassFn", isSignal: true, isRequired: false, transformFunction: null }, showArchiveToggle: { classPropertyName: "showArchiveToggle", publicName: "showArchiveToggle", isSignal: true, isRequired: false, transformFunction: null }, showRefreshButton: { classPropertyName: "showRefreshButton", publicName: "showRefreshButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { gridViewChanged: "gridViewChanged", archiveModeChanged: "archiveModeChanged", refreshButtonClicked: "refreshButtonClicked" }, providers: [
9335
9338
  KitBreadcrumbsService,
9336
9339
  KitGridUrlStateService,
9337
- ], queries: [{ propertyName: "columns", predicate: KitGridColumnComponent, isSignal: true }, { propertyName: "gridDetailTemplate", first: true, predicate: KitGridDetailTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, read: KitGridSearchComponent, isSignal: true }, { propertyName: "kitGridComponent", first: true, predicate: (KitGridComponent), descendants: true, isSignal: true }, { propertyName: "gridExportComponent", first: true, predicate: KitGridExportComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"kit-entity-grid\">\n @if (showBreadcrumbs()) {\n <kit-breadcrumbs [items]=\"breadcrumbs()\"></kit-breadcrumbs>\n }\n <kit-entity-title>{{ title() }}</kit-entity-title>\n <div class=\"grid-header\">\n <div class=\"grid-header-content\">\n <kit-grid-views class=\"grid-header-views\"\n [viewGroup]=\"viewGroup()\"\n [viewConfigGroup]=\"viewGroupConfig()\"\n [systemViews]=\"systemViews()\"\n [defaultColumns]=\"gridColumns()\"\n [defaultViewName]=\"defaultViewName()\"\n [defaultSorting]=\"defaultSorting()\"\n (viewChanged)=\"onGridViewChange()\"\n ></kit-grid-views>\n <div class=\"grid-header-actions\">\n <ng-content select=\"[headerActions]\"></ng-content>\n @if (showRefreshButton()) {\n <kit-button kitTooltip\n kitTooltipFilter=\"kit-button\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [title]=\"'kit.grid.actions.refresh' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.RESET\"\n (clicked)=\"onRefreshButtonClick()\"\n ></kit-button>\n }\n @if (showArchiveToggle()) {\n <kit-grid-archive-toggle (valueChange)=\"onArchiveToggle($event)\"\n ></kit-grid-archive-toggle>\n }\n <kit-grid-export [gridHasData]=\"gridHasData()\"\n [exportedFileName]=\"pdfOptions().fileName ?? ''\"\n [getExportedData]=\"getExportedData()\"\n [translationMap]=\"translationMap()\"\n [drawPdf]=\"drawPdf()\" />\n @if (filters$ | async; as filters) {\n <kit-button kitBadge\n kitTooltip\n kitTooltipFilter=\"kit-button\"\n [title]=\"'kit.filters.title' | translate\"\n [kitTooltipVisible]=\"searchIsOpen()\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [kitBadgeText]=\"filters.length\"\n [kitBadgeTheme]=\"kitBadgeTheme.DANGER\"\n [kitBadgeVisible]=\"filters.length > 0\"\n [label]=\"searchIsOpen() ? '' : ('kit.filters.title' | translate)\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.FILTER\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [active]=\"filtersVisible()\"\n (clicked)=\"onFiltersToggle()\"\n ></kit-button>\n <kit-grid-column-manager class=\"grid-column-manager\"\n [showLabel]=\"!searchIsOpen()\" />\n }\n </div>\n <div class=\"grid-header-search\">\n <kit-grid-search #search\n [disabled]=\"isSearchDisabled()\"\n (toggleSearch)=\"searchIsOpen.set($event)\" />\n </div>\n </div>\n @if (filtersVisible()) {\n <ng-content select=\"[filters]\"></ng-content>\n }\n </div>\n <ng-content select=\"[post-header-content]\"></ng-content>\n @if (gridData(); as data) {\n @if (!data.loading) {\n <kit-grid class=\"grid\"\n [data]=\"data.results\"\n [pageable]=\"true\"\n [pageSize]=\"gridState().take\"\n [sort]=\"gridState().sort\"\n [sortable]=\"sortable\"\n [detailTemplateShowIf]=\"isDetailTemplateVisible()\"\n [detailTemplateExpandDisableIf]=\"detailTemplateExpandDisableIf()\"\n [pdfOptions]=\"pdfOptions()\"\n [loading]=\"isExporting() || isLoading()\"\n [skip]=\"gridState().skip\"\n [pagerInfoText]=\"pagerInfoText()\"\n [pageSizes]=\"pageSizes()\"\n [rowClassFn]=\"rowClassFn()\"\n [gridDetailTemplate]=\"gridDetailTemplate()\"\n (pageChanged)=\"onPageSizeChanged($event)\"\n (dataStateChanged)=\"onDataStateChange($event)\"\n ></kit-grid>\n } @else {\n <kit-skeleton-grid\n ></kit-skeleton-grid>\n }\n }\n <ng-content select=\"[footerActions]\"></ng-content>\n</div>\n\n", styles: [".kit-entity-grid{display:flex;flex-direction:column;gap:25px;height:calc(100vh - var(--ui-kit-header-height) - 40px)}.kit-entity-grid .grid{overflow:auto}.grid-header{display:flex;flex-direction:column;gap:16px;container-type:inline-size}.grid-header-content{display:flex;gap:16px;width:100%}@container (max-width: 780px){.grid-header-content{display:grid;gap:10px;grid-template-areas:\"views .\" \"actions search\";grid-template-columns:repeat(2,1fr)}}.grid-header-views{min-width:0;flex:1;grid-area:views;grid-column:1/3}.grid-header-actions{display:flex;gap:16px;grid-area:actions}.grid-header-search{grid-area:search}@container (max-width: 780px){.grid-header-search{border:none;padding:0;display:flex;justify-content:flex-end}}.grid-header-filters{width:100%}::ng-deep .k-loading-pdf-mask{display:none}::ng-deep .k-pdf-export tbody>tr>td>a{display:none}\n"], dependencies: [{ kind: "component", type: KitBreadcrumbsComponent, selector: "kit-breadcrumbs", inputs: ["items"] }, { kind: "component", type: KitEntityTitleComponent, selector: "kit-entity-title" }, { kind: "component", type: KitGridViewsComponent, selector: "kit-grid-views", inputs: ["viewGroup", "viewConfigGroup", "defaultColumns", "defaultViewName", "defaultSorting", "systemViews"], outputs: ["viewChanged"] }, { kind: "component", type: KitGridExportComponent, selector: "kit-grid-export", inputs: ["getExportedData", "translationMap", "exportedFileName", "drawPdf", "gridHasData", "visibleColumns"] }, { kind: "directive", type: KitBadgeDirective, selector: "[kitBadge]", inputs: ["kitBadgeText", "kitBadgeTheme", "kitBadgeVisible"] }, { kind: "component", type: KitGridColumnManagerComponent, selector: "kit-grid-column-manager", inputs: ["showLabel"] }, { kind: "component", type: KitGridSearchComponent, selector: "kit-grid-search", inputs: ["disabled"], outputs: ["toggleSearch"] }, { kind: "component", type: KitGridComponent, selector: "kit-grid", inputs: ["data", "gridDataBinding", "sortable", "sort", "pageable", "pageSize", "skip", "loading", "detailTemplateShowIf", "detailTemplateExpandDisableIf", "showFooter", "footerTitle", "footerData", "pdfOptions", "pagerButtonCount", "pageSizes", "pagerInfoText", "resizable", "gridDetailTemplate", "rowClassFn"], outputs: ["pageChanged", "sortChanged", "dataStateChanged", "detailExpanded", "detailCollapsed", "cellClicked", "excelExport"] }, { kind: "component", type: KitSkeletonGridComponent, selector: "kit-skeleton-grid", inputs: ["itemsCount"] }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "directive", type: KitTooltipDirective, selector: "[kitTooltip]", inputs: ["kitTooltipPosition", "kitTooltipFilter", "kitTooltipTemplateRef", "kitTooltipVisible"] }, { kind: "component", type: KitGridArchiveToggle, selector: "kit-grid-archive-toggle", outputs: ["valueChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9340
+ ], queries: [{ propertyName: "columns", predicate: KitGridColumnComponent, isSignal: true }, { propertyName: "gridDetailTemplate", first: true, predicate: KitGridDetailTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, read: KitGridSearchComponent, isSignal: true }, { propertyName: "kitGridComponent", first: true, predicate: (KitGridComponent), descendants: true, isSignal: true }, { propertyName: "gridExportComponent", first: true, predicate: KitGridExportComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"kit-entity-grid\">\n @if (showBreadcrumbs()) {\n <kit-breadcrumbs [items]=\"breadcrumbs()\"></kit-breadcrumbs>\n }\n <kit-entity-title>{{ title() }}</kit-entity-title>\n <div class=\"grid-header\">\n <div class=\"grid-header-content\">\n <kit-grid-views class=\"grid-header-views\"\n [viewGroup]=\"viewGroup()\"\n [viewConfigGroup]=\"viewGroupConfig()\"\n [systemViews]=\"systemViews()\"\n [defaultColumns]=\"gridColumns()\"\n [defaultViewName]=\"defaultViewName()\"\n [defaultSorting]=\"defaultSorting()\"\n (viewChanged)=\"onGridViewChange()\"\n ></kit-grid-views>\n <div class=\"grid-header-actions\">\n <ng-content select=\"[headerActions]\"></ng-content>\n @if (showRefreshButton()) {\n <kit-button kitTooltip\n kitTooltipFilter=\"kit-button\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [title]=\"'kit.grid.actions.refresh' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.RESET\"\n (clicked)=\"onRefreshButtonClick()\"\n ></kit-button>\n }\n @if (showArchiveToggle()) {\n <kit-grid-archive-toggle (valueChange)=\"onArchiveToggle($event)\"\n ></kit-grid-archive-toggle>\n }\n <kit-grid-export [gridHasData]=\"gridHasData()\"\n [exportedFileName]=\"pdfOptions().fileName ?? ''\"\n [getExportedData]=\"getExportedData()\"\n [translationMap]=\"translationMap()\"\n [drawPdf]=\"drawPdf()\" />\n @if (filters$ | async; as filters) {\n <kit-button kitBadge\n kitTooltip\n kitTooltipFilter=\"kit-button\"\n [title]=\"'kit.filters.title' | translate\"\n [kitTooltipVisible]=\"searchIsOpen()\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [kitBadgeText]=\"filters.length\"\n [kitBadgeTheme]=\"kitBadgeTheme.DANGER\"\n [kitBadgeVisible]=\"filters.length > 0\"\n [label]=\"searchIsOpen() ? '' : ('kit.filters.title' | translate)\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.FILTER\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [active]=\"filtersVisible()\"\n (clicked)=\"onFiltersToggle()\"\n ></kit-button>\n <kit-grid-column-manager class=\"grid-column-manager\"\n [showLabel]=\"!searchIsOpen()\" />\n }\n </div>\n <div class=\"grid-header-search\">\n <kit-grid-search #search\n [disabled]=\"isSearchDisabled()\"\n (toggleSearch)=\"searchIsOpen.set($event)\" />\n </div>\n </div>\n @if (filtersVisible()) {\n <ng-content select=\"[filters]\"></ng-content>\n }\n </div>\n <ng-content select=\"[post-header-content]\"></ng-content>\n @if (gridData(); as data) {\n @if (!data.loading) {\n <kit-grid class=\"grid\"\n [data]=\"data.results\"\n [pageable]=\"true\"\n [pageSize]=\"gridState().take\"\n [sort]=\"gridState().sort\"\n [sortable]=\"sortable\"\n [detailTemplateShowIf]=\"isDetailTemplateVisible()\"\n [detailTemplateExpandDisableIf]=\"detailTemplateExpandDisableIf()\"\n [pdfOptions]=\"pdfOptions()\"\n [loading]=\"isExporting() || isLoading()\"\n [skip]=\"gridState().skip\"\n [pagerInfoText]=\"pagerInfoText()\"\n [pageSizes]=\"pageSizes()\"\n [rowClassFn]=\"rowClassFn()\"\n [gridDetailTemplate]=\"gridDetailTemplate()\"\n (pageChanged)=\"onPageSizeChanged($event)\"\n (dataStateChanged)=\"onDataStateChange($event)\"\n ></kit-grid>\n } @else {\n <kit-skeleton-grid\n ></kit-skeleton-grid>\n }\n }\n <ng-content select=\"[footerActions]\"></ng-content>\n</div>\n\n", styles: [".kit-entity-grid{display:flex;flex-direction:column;gap:25px;height:calc(100vh - var(--ui-kit-header-height) - 40px)}.kit-entity-grid .grid{overflow:auto}.grid-header{display:flex;flex-direction:column;gap:16px;container-type:inline-size}.grid-header-content{display:flex;gap:16px;width:100%}@container (max-width: 780px){.grid-header-content{display:grid;gap:10px;grid-template-areas:\"views .\" \"actions search\";grid-template-columns:repeat(2,1fr)}}.grid-header-views{min-width:0;flex:1;grid-area:views;grid-column:1/3}.grid-header-actions{display:flex;gap:16px;grid-area:actions}.grid-header-search{grid-area:search}@container (max-width: 780px){.grid-header-search{border:none;padding:0;display:flex;justify-content:flex-end}}.grid-header-filters{width:100%}::ng-deep .k-loading-pdf-mask{display:none}::ng-deep .k-pdf-export tbody>tr>td>a{display:none}\n"], dependencies: [{ kind: "component", type: KitBreadcrumbsComponent, selector: "kit-breadcrumbs", inputs: ["items"] }, { kind: "component", type: KitEntityTitleComponent, selector: "kit-entity-title" }, { kind: "component", type: KitGridViewsComponent, selector: "kit-grid-views", inputs: ["viewGroup", "viewConfigGroup", "defaultColumns", "defaultViewName", "defaultSorting", "systemViews"], outputs: ["viewChanged"] }, { kind: "component", type: KitGridExportComponent, selector: "kit-grid-export", inputs: ["getExportedData", "translationMap", "exportedFileName", "drawPdf", "gridHasData", "visibleColumns"] }, { kind: "directive", type: KitBadgeDirective, selector: "[kitBadge]", inputs: ["kitBadgeText", "kitBadgeTheme", "kitBadgeVisible"] }, { kind: "component", type: KitGridColumnManagerComponent, selector: "kit-grid-column-manager", inputs: ["showLabel"] }, { kind: "component", type: KitGridSearchComponent, selector: "kit-grid-search", inputs: ["disabled"], outputs: ["toggleSearch"] }, { kind: "component", type: KitGridComponent, selector: "kit-grid", inputs: ["data", "gridDataBinding", "sortable", "sort", "pageable", "pageSize", "skip", "loading", "detailTemplateShowIf", "detailTemplateExpandDisableIf", "showFooter", "footerTitle", "footerData", "pdfOptions", "pagerButtonCount", "pageSizes", "pagerInfoText", "noRecordsText", "resizable", "gridDetailTemplate", "rowClassFn"], outputs: ["pageChanged", "sortChanged", "dataStateChanged", "detailExpanded", "detailCollapsed", "cellClicked", "excelExport"] }, { kind: "component", type: KitSkeletonGridComponent, selector: "kit-skeleton-grid", inputs: ["itemsCount"] }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "directive", type: KitTooltipDirective, selector: "[kitTooltip]", inputs: ["kitTooltipPosition", "kitTooltipFilter", "kitTooltipTemplateRef", "kitTooltipVisible"] }, { kind: "component", type: KitGridArchiveToggle, selector: "kit-grid-archive-toggle", outputs: ["valueChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9338
9341
  }
9339
9342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KitEntityGridComponent, decorators: [{
9340
9343
  type: Component,
@@ -10028,6 +10031,7 @@ class KitCardDetailsComponent {
10028
10031
  this.kitTextboxComponent = viewChild.required(KitTextboxComponent);
10029
10032
  this.cardElement = contentChild('cardElement', ...(ngDevMode ? [{ debugName: "cardElement" }] : []));
10030
10033
  this.headerActions = contentChild('headerActions', ...(ngDevMode ? [{ debugName: "headerActions" }] : []));
10034
+ this.details = contentChild('details', ...(ngDevMode ? [{ debugName: "details" }] : []));
10031
10035
  this.kitSvgIcon = KitSvgIcon;
10032
10036
  this.kitButtonType = KitButtonType;
10033
10037
  this.kitButtonKind = KitButtonKind;
@@ -10041,6 +10045,16 @@ class KitCardDetailsComponent {
10041
10045
  take: 0,
10042
10046
  }, ...(ngDevMode ? [{ debugName: "dataState" }] : []));
10043
10047
  this.newCreatedCards = signal([], ...(ngDevMode ? [{ debugName: "newCreatedCards" }] : []));
10048
+ this.skipNewCreatedCardFilter = computed(() => {
10049
+ return this.newCreatedCards().length ? {
10050
+ logic: KitFilterLogic.AND,
10051
+ filters: this.newCreatedCards().map(card => ({
10052
+ field: 'id',
10053
+ operator: KitFilterOperator.NEQ,
10054
+ value: card.id,
10055
+ })),
10056
+ } : {};
10057
+ }, ...(ngDevMode ? [{ debugName: "skipNewCreatedCardFilter" }] : []));
10044
10058
  this.shouldAppendFetchedData = true;
10045
10059
  }
10046
10060
  ngOnInit() {
@@ -10052,16 +10066,6 @@ class KitCardDetailsComponent {
10052
10066
  this.initSearchSubscription();
10053
10067
  this.initStateFromUrl();
10054
10068
  }
10055
- get skipNewCreatedCardFilter() {
10056
- return this.newCreatedCards().length ? {
10057
- logic: KitFilterLogic.AND,
10058
- filters: this.newCreatedCards().map(card => ({
10059
- field: 'id',
10060
- operator: KitFilterOperator.NEQ,
10061
- value: card.id,
10062
- })),
10063
- } : {};
10064
- }
10065
10069
  loadMoreData() {
10066
10070
  this.shouldAppendFetchedData = true;
10067
10071
  this.dataState.update(state => ({
@@ -10071,54 +10075,50 @@ class KitCardDetailsComponent {
10071
10075
  }));
10072
10076
  this.updateData();
10073
10077
  }
10074
- onCardClick(id) {
10075
- this.dataState.update(state => ({ ...state, activeId: id.toString() }));
10076
- this.setStateToUrl(this.dataState());
10077
- this.cardClicked.emit({ id: id.toString() });
10078
+ onCardClick(card) {
10079
+ const normalizedId = this.normalizeCardId(card.id);
10080
+ this.dataState.update(state => ({ ...state, activeId: normalizedId }));
10081
+ this.navigateToCard(normalizedId);
10082
+ this.cardClicked.emit({ ...card, id: normalizedId });
10078
10083
  }
10079
- appendCards(cards) {
10084
+ appendCard(card, navigateToCard = true) {
10080
10085
  this.cardData.set([
10081
10086
  ...this.cardData(),
10082
- ...cards,
10087
+ card,
10083
10088
  ]);
10084
10089
  this.newCreatedCards.set([
10085
10090
  ...this.newCreatedCards(),
10086
- ...cards,
10091
+ card,
10087
10092
  ]);
10088
10093
  this.dataState.update(state => ({
10089
10094
  ...state,
10090
- filters: this.skipNewCreatedCardFilter,
10095
+ filters: this.skipNewCreatedCardFilter(),
10091
10096
  }));
10092
- this.total.set(this.total() + cards.length);
10097
+ this.total.set(this.total() + 1);
10098
+ if (navigateToCard) {
10099
+ this.onCardClick(card);
10100
+ }
10093
10101
  }
10094
10102
  deleteCard(cardId) {
10095
10103
  this.isLoading.set(true);
10096
- this.cardData.set(this.cardData().filter(card => card.id.toString() !== cardId.toString()));
10104
+ const normalizedId = this.normalizeCardId(cardId);
10105
+ this.cardData.set(this.cardData().filter(card => this.normalizeCardId(card.id) !== normalizedId));
10097
10106
  this.total.set(this.total() - 1);
10098
- const loadedCards = (this.dataState().take ?? this.pageSize()) + (this.dataState().skip ?? 0) - 1;
10099
- if (this.newCreatedCards().some(card => card.id.toString() === cardId.toString())) {
10100
- this.newCreatedCards.set(this.newCreatedCards().filter(card => card.id.toString() !== cardId.toString()));
10101
- this.dataState.update(state => ({
10102
- ...state,
10103
- filters: this.skipNewCreatedCardFilter,
10104
- }));
10107
+ if (this.newCreatedCards().some(card => this.normalizeCardId(card.id) === normalizedId)) {
10108
+ this.removeFromNewCreatedCards(normalizedId);
10105
10109
  this.isLoading.set(false);
10106
10110
  return;
10107
10111
  }
10112
+ const loadedCards = (this.dataState().take ?? this.pageSize()) + (this.dataState().skip ?? 0) - 1;
10108
10113
  if (loadedCards >= this.total()) {
10109
10114
  this.isLoading.set(false);
10110
10115
  return;
10111
10116
  }
10112
10117
  this.shouldAppendFetchedData = true;
10113
- this.dataStateChanged.emit({ skip: loadedCards, take: 1, filters: this.skipNewCreatedCardFilter, search: this.dataState().search });
10118
+ this.dataStateChanged.emit({ skip: loadedCards, take: 1, filters: this.skipNewCreatedCardFilter(), search: this.dataState().search });
10114
10119
  }
10115
10120
  updateSpecificCardData(cardData) {
10116
- this.cardData.set(this.cardData().map(card => {
10117
- if (card.id.toString() === cardData.id.toString()) {
10118
- return cardData;
10119
- }
10120
- return card;
10121
- }));
10121
+ this.cardData.set(this.cardData().map(card => this.normalizeCardId(card.id) === this.normalizeCardId(cardData.id) ? cardData : card));
10122
10122
  }
10123
10123
  scrollToCardById(id) {
10124
10124
  const cardsEl = this.host.nativeElement.querySelector('.kit-card-details .cards');
@@ -10156,7 +10156,7 @@ class KitCardDetailsComponent {
10156
10156
  this.updateData();
10157
10157
  }
10158
10158
  initCardDataSubscription() {
10159
- let { activeId } = this.getStateFromUrl();
10159
+ this.getStateFromUrl();
10160
10160
  this.cardData$().pipe(takeUntilDestroyed(this.destroyRef), filter(({ loading }) => !loading)).subscribe(data => {
10161
10161
  if (this.shouldAppendFetchedData) {
10162
10162
  this.cardData.set([
@@ -10166,44 +10166,38 @@ class KitCardDetailsComponent {
10166
10166
  this.total.set(data.results.total + this.newCreatedCards().length);
10167
10167
  this.shouldAppendFetchedData = false;
10168
10168
  }
10169
- if (!activeId && this.cardData()?.[0]) {
10170
- activeId = this.cardData()[0].id.toString();
10171
- }
10172
- if (activeId) {
10173
- if (!this.dataState().activeId && this.cardData().length) {
10174
- activeId = this.cardData().some(item => item.id.toString() === activeId)
10175
- ? activeId : this.cardData()[0].id.toString();
10176
- this.onCardClick(activeId);
10177
- this.isLoading.set(false);
10178
- requestAnimationFrame(() => {
10179
- activeId && this.scrollToCardById(activeId);
10180
- });
10181
- }
10182
- else {
10183
- activeId = this.dataState().activeId;
10184
- }
10185
- }
10186
10169
  this.isLoading.set(false);
10187
10170
  });
10188
10171
  }
10189
10172
  updateData() {
10190
10173
  this.isLoading.set(true);
10191
- this.setStateToUrl(this.dataState());
10174
+ this.setQueryParamsToUrl(this.dataState());
10192
10175
  this.dataStateChanged.emit(this.dataState());
10193
10176
  }
10177
+ normalizeCardId(id) {
10178
+ return id.toString();
10179
+ }
10180
+ removeFromNewCreatedCards(cardId) {
10181
+ this.newCreatedCards.set(this.newCreatedCards().filter(card => this.normalizeCardId(card.id) !== cardId));
10182
+ this.dataState.update(state => ({
10183
+ ...state,
10184
+ filters: this.skipNewCreatedCardFilter(),
10185
+ }));
10186
+ }
10194
10187
  getStateFromUrl() {
10195
- const params = this.activatedRoute.snapshot.queryParams;
10188
+ const queryParams = this.activatedRoute.snapshot.queryParams;
10189
+ const routeParams = this.activatedRoute.snapshot.firstChild?.params ?? this.activatedRoute.snapshot.params;
10196
10190
  return {
10197
- skip: params?.skip && Number(params.skip),
10198
- take: params?.take && Number(params.take),
10199
- search: params?.search && String(params.search),
10200
- activeId: params?.activeId && String(params.activeId),
10191
+ skip: queryParams?.skip && Number(queryParams.skip),
10192
+ take: queryParams?.take && Number(queryParams.take),
10193
+ search: queryParams?.search && String(queryParams.search),
10194
+ activeId: routeParams?.id && String(routeParams.id),
10201
10195
  };
10202
10196
  }
10203
- setStateToUrl(state) {
10197
+ setQueryParamsToUrl(state) {
10204
10198
  const queryParams = Object.keys(state).reduce((acc, key) => {
10205
10199
  const val = state[key];
10206
- if (val !== undefined && key !== 'filters') {
10200
+ if (val !== undefined && key !== 'filters' && key !== 'activeId') {
10207
10201
  acc[key] = val;
10208
10202
  }
10209
10203
  return acc;
@@ -10211,11 +10205,17 @@ class KitCardDetailsComponent {
10211
10205
  this.router.navigate([], {
10212
10206
  relativeTo: this.activatedRoute,
10213
10207
  queryParams,
10214
- queryParamsHandling: 'replace',
10208
+ queryParamsHandling: 'merge',
10209
+ });
10210
+ }
10211
+ navigateToCard(id) {
10212
+ this.router.navigate([id], {
10213
+ relativeTo: this.activatedRoute,
10214
+ queryParamsHandling: 'preserve',
10215
10215
  });
10216
10216
  }
10217
10217
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KitCardDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: KitCardDetailsComponent, isStandalone: true, selector: "kit-card-details", inputs: { cardData$: { classPropertyName: "cardData$", publicName: "cardData$", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { dataStateChanged: "dataStateChanged", cardClicked: "cardClicked" }, queries: [{ propertyName: "cardElement", first: true, predicate: ["cardElement"], descendants: true, isSignal: true }, { propertyName: "headerActions", first: true, predicate: ["headerActions"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "kitTextboxComponent", first: true, predicate: KitTextboxComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"kit-card-details\">\n <div class=\"header\">\n <kit-entity-title class=\"title\">\n {{ title() }}\n </kit-entity-title>\n <ng-container *ngTemplateOutlet=\"headerActions()\" />\n </div>\n\n <div class=\"content\">\n <div class=\"left-panel\">\n <div class=\"textbox-wrapper\">\n <kit-textbox class=\"search-textbox\"\n [placeholder]=\"'kit.search.placeholder' | translate\"\n [icon]=\"kitSvgIcon.SEARCH\"\n [disabled]=\"isLoading()\"\n [clearButton]=\"true\"\n [showStateIcon]=\"false\" />\n </div>\n\n <div class=\"cards\">\n @if (cardData$() | async; as cards) {\n @if (cards.loading) {\n @for (skeleton of [1, 2, 3]; track $index) {\n <kit-skeleton [width]=\"'100%'\" [height]=\"'200px'\"/>\n }\n } @else {\n @if (cards.results.data?.length === 0 && newCreatedCards().length === 0) {\n <kit-empty-section [text]=\"'kit.common.noData' | translate\"/>\n } @else {\n @for (card of cardData(); track $index) {\n <div class=\"card\"\n [attr.data-card-id]=\"card.id\"\n [class.active]=\"dataState().activeId === (card.id).toString()\"\n (click)=\"onCardClick(card.id)\">\n <ng-container *ngTemplateOutlet=\"cardElement(); context: { $implicit: card }\" />\n </div>\n }\n\n @if (total() > cardData().length) {\n <kit-button class=\"load-more-btn\"\n [label]=\"'kit.common.loadMore' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [icon]=\"isLoading() ? kitSvgIcon.RELOAD : kitSvgIcon.CHEVRON_DOWN\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"isLoading()\"\n (clicked)=\"loadMoreData()\" />\n }\n }\n }\n }\n </div>\n </div>\n\n <div class=\"details\">\n <ng-content select=\"[details]\"/>\n </div>\n </div>\n</div>\n", styles: [".kit-card-details{height:calc(100vh - var(--ui-kit-header-height) - 50px)}.kit-card-details .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.kit-card-details .content{display:flex;gap:10px;height:calc(100% - 50px)}.kit-card-details .left-panel{width:30%}.kit-card-details .left-panel .textbox-wrapper{margin-right:10px;margin-bottom:20px}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-card-details .left-panel .cards{overflow:hidden auto;padding-right:10px;display:flex;flex-direction:column;gap:10px;height:calc(100% - 60px)}.kit-card-details .left-panel .cards .card{background-color:var(--ui-kit-color-white);border:2px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:8px 10px;cursor:pointer}.kit-card-details .left-panel .cards .card.active{border-color:var(--ui-kit-color-main)}.kit-card-details .left-panel .cards .load-more-btn{margin:10px auto auto}.kit-card-details .details{overflow:hidden auto;flex:1;min-width:0;border:1px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:20px}\n"], dependencies: [{ kind: "component", type: KitSkeletonComponent, selector: "kit-skeleton", inputs: ["width", "height", "shape", "animation"] }, { kind: "component", type: KitEmptySectionComponent, selector: "kit-empty-section", inputs: ["text"] }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "component", type: KitTextboxComponent, selector: "kit-textbox", inputs: ["placeholder", "label", "labelTooltip", "defaultValue", "messageIcon", "messageText", "messageTemplate", "disabled", "maxlength", "state", "size", "icon", "clearButton", "showStateIcon"], outputs: ["defaultValueChange", "disabledChange", "blured", "focused", "changed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KitEntityTitleComponent, selector: "kit-entity-title" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10218
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: KitCardDetailsComponent, isStandalone: true, selector: "kit-card-details", inputs: { cardData$: { classPropertyName: "cardData$", publicName: "cardData$", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { dataStateChanged: "dataStateChanged", cardClicked: "cardClicked" }, queries: [{ propertyName: "cardElement", first: true, predicate: ["cardElement"], descendants: true, isSignal: true }, { propertyName: "headerActions", first: true, predicate: ["headerActions"], descendants: true, isSignal: true }, { propertyName: "details", first: true, predicate: ["details"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "kitTextboxComponent", first: true, predicate: KitTextboxComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"kit-card-details\">\n <div class=\"header\">\n <kit-entity-title class=\"title\">\n {{ title() }}\n </kit-entity-title>\n <ng-container *ngTemplateOutlet=\"headerActions()\" />\n </div>\n\n <div class=\"content\">\n <div class=\"left-panel\">\n <div class=\"textbox-wrapper\">\n <kit-textbox class=\"search-textbox\"\n [placeholder]=\"'kit.search.placeholder' | translate\"\n [icon]=\"kitSvgIcon.SEARCH\"\n [disabled]=\"isLoading()\"\n [clearButton]=\"true\"\n [showStateIcon]=\"false\" />\n </div>\n\n <div class=\"cards\">\n @if (cardData$() | async; as cards) {\n @if (cards.loading) {\n @for (skeleton of [1, 2, 3]; track $index) {\n <kit-skeleton [width]=\"'100%'\" [height]=\"'200px'\"/>\n }\n } @else {\n @if (cards.results.data?.length === 0 && newCreatedCards().length === 0) {\n <kit-empty-section [text]=\"'kit.common.noData' | translate\"/>\n } @else {\n @for (card of cardData(); track $index) {\n <div class=\"card\"\n [attr.data-card-id]=\"card.id\"\n [class.active]=\"dataState().activeId === (card.id).toString()\"\n (click)=\"onCardClick(card)\">\n <ng-container *ngTemplateOutlet=\"cardElement(); context: { $implicit: card }\" />\n </div>\n }\n\n @if (total() > cardData().length) {\n <kit-button class=\"load-more-btn\"\n [label]=\"'kit.common.loadMore' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [icon]=\"isLoading() ? kitSvgIcon.RELOAD : kitSvgIcon.CHEVRON_DOWN\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"isLoading()\"\n (clicked)=\"loadMoreData()\" />\n }\n }\n }\n }\n </div>\n </div>\n\n <div class=\"details\">\n <ng-container *ngTemplateOutlet=\"details(); context: { $implicit: dataState().activeId }\" />\n </div>\n </div>\n</div>\n", styles: [".kit-card-details{height:calc(100vh - var(--ui-kit-header-height) - 50px)}.kit-card-details .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.kit-card-details .content{display:flex;gap:10px;height:calc(100% - 50px)}.kit-card-details .left-panel{width:25%}.kit-card-details .left-panel .textbox-wrapper{margin-right:10px;margin-bottom:20px}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox .k-textbox{background-color:var(--ui-kit-color-white)}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox.disabled .k-input-inner{background-color:var(--ui-kit-color-grey-13)}.kit-card-details .left-panel .cards{overflow:hidden auto;padding-right:10px;display:flex;flex-direction:column;gap:10px;height:calc(100% - 60px)}.kit-card-details .left-panel .cards .card{background-color:var(--ui-kit-color-white);border:2px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:8px 10px;cursor:pointer}.kit-card-details .left-panel .cards .card.active{border-color:var(--ui-kit-color-main)}.kit-card-details .left-panel .cards .load-more-btn{margin:10px auto auto}.kit-card-details .details{overflow:hidden auto;flex:1;min-width:0;border:1px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:20px;height:100%}\n"], dependencies: [{ kind: "component", type: KitSkeletonComponent, selector: "kit-skeleton", inputs: ["width", "height", "shape", "animation"] }, { kind: "component", type: KitEmptySectionComponent, selector: "kit-empty-section", inputs: ["text"] }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "component", type: KitTextboxComponent, selector: "kit-textbox", inputs: ["placeholder", "label", "labelTooltip", "defaultValue", "messageIcon", "messageText", "messageTemplate", "disabled", "maxlength", "state", "size", "icon", "clearButton", "showStateIcon"], outputs: ["defaultValueChange", "disabledChange", "blured", "focused", "changed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KitEntityTitleComponent, selector: "kit-entity-title" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10219
10219
  }
10220
10220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: KitCardDetailsComponent, decorators: [{
10221
10221
  type: Component,
@@ -10228,8 +10228,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
10228
10228
  KitTextboxComponent,
10229
10229
  NgTemplateOutlet,
10230
10230
  KitEntityTitleComponent,
10231
- ], template: "<div class=\"kit-card-details\">\n <div class=\"header\">\n <kit-entity-title class=\"title\">\n {{ title() }}\n </kit-entity-title>\n <ng-container *ngTemplateOutlet=\"headerActions()\" />\n </div>\n\n <div class=\"content\">\n <div class=\"left-panel\">\n <div class=\"textbox-wrapper\">\n <kit-textbox class=\"search-textbox\"\n [placeholder]=\"'kit.search.placeholder' | translate\"\n [icon]=\"kitSvgIcon.SEARCH\"\n [disabled]=\"isLoading()\"\n [clearButton]=\"true\"\n [showStateIcon]=\"false\" />\n </div>\n\n <div class=\"cards\">\n @if (cardData$() | async; as cards) {\n @if (cards.loading) {\n @for (skeleton of [1, 2, 3]; track $index) {\n <kit-skeleton [width]=\"'100%'\" [height]=\"'200px'\"/>\n }\n } @else {\n @if (cards.results.data?.length === 0 && newCreatedCards().length === 0) {\n <kit-empty-section [text]=\"'kit.common.noData' | translate\"/>\n } @else {\n @for (card of cardData(); track $index) {\n <div class=\"card\"\n [attr.data-card-id]=\"card.id\"\n [class.active]=\"dataState().activeId === (card.id).toString()\"\n (click)=\"onCardClick(card.id)\">\n <ng-container *ngTemplateOutlet=\"cardElement(); context: { $implicit: card }\" />\n </div>\n }\n\n @if (total() > cardData().length) {\n <kit-button class=\"load-more-btn\"\n [label]=\"'kit.common.loadMore' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [icon]=\"isLoading() ? kitSvgIcon.RELOAD : kitSvgIcon.CHEVRON_DOWN\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"isLoading()\"\n (clicked)=\"loadMoreData()\" />\n }\n }\n }\n }\n </div>\n </div>\n\n <div class=\"details\">\n <ng-content select=\"[details]\"/>\n </div>\n </div>\n</div>\n", styles: [".kit-card-details{height:calc(100vh - var(--ui-kit-header-height) - 50px)}.kit-card-details .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.kit-card-details .content{display:flex;gap:10px;height:calc(100% - 50px)}.kit-card-details .left-panel{width:30%}.kit-card-details .left-panel .textbox-wrapper{margin-right:10px;margin-bottom:20px}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-card-details .left-panel .cards{overflow:hidden auto;padding-right:10px;display:flex;flex-direction:column;gap:10px;height:calc(100% - 60px)}.kit-card-details .left-panel .cards .card{background-color:var(--ui-kit-color-white);border:2px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:8px 10px;cursor:pointer}.kit-card-details .left-panel .cards .card.active{border-color:var(--ui-kit-color-main)}.kit-card-details .left-panel .cards .load-more-btn{margin:10px auto auto}.kit-card-details .details{overflow:hidden auto;flex:1;min-width:0;border:1px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:20px}\n"] }]
10232
- }], propDecorators: { cardData$: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardData$", required: true }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], dataStateChanged: [{ type: i0.Output, args: ["dataStateChanged"] }], cardClicked: [{ type: i0.Output, args: ["cardClicked"] }], kitTextboxComponent: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KitTextboxComponent), { isSignal: true }] }], cardElement: [{ type: i0.ContentChild, args: ['cardElement', { isSignal: true }] }], headerActions: [{ type: i0.ContentChild, args: ['headerActions', { isSignal: true }] }] } });
10231
+ ], template: "<div class=\"kit-card-details\">\n <div class=\"header\">\n <kit-entity-title class=\"title\">\n {{ title() }}\n </kit-entity-title>\n <ng-container *ngTemplateOutlet=\"headerActions()\" />\n </div>\n\n <div class=\"content\">\n <div class=\"left-panel\">\n <div class=\"textbox-wrapper\">\n <kit-textbox class=\"search-textbox\"\n [placeholder]=\"'kit.search.placeholder' | translate\"\n [icon]=\"kitSvgIcon.SEARCH\"\n [disabled]=\"isLoading()\"\n [clearButton]=\"true\"\n [showStateIcon]=\"false\" />\n </div>\n\n <div class=\"cards\">\n @if (cardData$() | async; as cards) {\n @if (cards.loading) {\n @for (skeleton of [1, 2, 3]; track $index) {\n <kit-skeleton [width]=\"'100%'\" [height]=\"'200px'\"/>\n }\n } @else {\n @if (cards.results.data?.length === 0 && newCreatedCards().length === 0) {\n <kit-empty-section [text]=\"'kit.common.noData' | translate\"/>\n } @else {\n @for (card of cardData(); track $index) {\n <div class=\"card\"\n [attr.data-card-id]=\"card.id\"\n [class.active]=\"dataState().activeId === (card.id).toString()\"\n (click)=\"onCardClick(card)\">\n <ng-container *ngTemplateOutlet=\"cardElement(); context: { $implicit: card }\" />\n </div>\n }\n\n @if (total() > cardData().length) {\n <kit-button class=\"load-more-btn\"\n [label]=\"'kit.common.loadMore' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [icon]=\"isLoading() ? kitSvgIcon.RELOAD : kitSvgIcon.CHEVRON_DOWN\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"isLoading()\"\n (clicked)=\"loadMoreData()\" />\n }\n }\n }\n }\n </div>\n </div>\n\n <div class=\"details\">\n <ng-container *ngTemplateOutlet=\"details(); context: { $implicit: dataState().activeId }\" />\n </div>\n </div>\n</div>\n", styles: [".kit-card-details{height:calc(100vh - var(--ui-kit-header-height) - 50px)}.kit-card-details .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.kit-card-details .content{display:flex;gap:10px;height:calc(100% - 50px)}.kit-card-details .left-panel{width:25%}.kit-card-details .left-panel .textbox-wrapper{margin-right:10px;margin-bottom:20px}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox-input .kit-svg-icon{stroke:var(--ui-kit-color-grey-10);fill:none}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox .k-textbox{background-color:var(--ui-kit-color-white)}.kit-card-details .left-panel .textbox-wrapper ::ng-deep .kit-textbox.disabled .k-input-inner{background-color:var(--ui-kit-color-grey-13)}.kit-card-details .left-panel .cards{overflow:hidden auto;padding-right:10px;display:flex;flex-direction:column;gap:10px;height:calc(100% - 60px)}.kit-card-details .left-panel .cards .card{background-color:var(--ui-kit-color-white);border:2px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:8px 10px;cursor:pointer}.kit-card-details .left-panel .cards .card.active{border-color:var(--ui-kit-color-main)}.kit-card-details .left-panel .cards .load-more-btn{margin:10px auto auto}.kit-card-details .details{overflow:hidden auto;flex:1;min-width:0;border:1px solid var(--ui-kit-color-grey-11);border-radius:8px;padding:20px;height:100%}\n"] }]
10232
+ }], propDecorators: { cardData$: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardData$", required: true }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], dataStateChanged: [{ type: i0.Output, args: ["dataStateChanged"] }], cardClicked: [{ type: i0.Output, args: ["cardClicked"] }], kitTextboxComponent: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KitTextboxComponent), { isSignal: true }] }], cardElement: [{ type: i0.ContentChild, args: ['cardElement', { isSignal: true }] }], headerActions: [{ type: i0.ContentChild, args: ['headerActions', { isSignal: true }] }], details: [{ type: i0.ContentChild, args: ['details', { isSignal: true }] }] } });
10233
10233
 
10234
10234
  class KitListComponent {
10235
10235
  constructor() {