@progress/kendo-angular-grid 19.3.0-develop.3 → 19.3.0-develop.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/columns/columns-container.d.ts +2 -0
- package/common/data-layout-mode.d.ts +19 -0
- package/common/provider.service.d.ts +2 -0
- package/common/stacked-layout-settings.d.ts +24 -0
- package/data/data-mapping.service.d.ts +3 -1
- package/directives.d.ts +7 -4
- package/editing-directives/editing-directive-base.d.ts +3 -0
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1 -2
- package/esm2022/column-menu/column-list.component.mjs +10 -10
- package/esm2022/column-menu/column-menu.component.mjs +1 -1
- package/esm2022/columns/column-base.mjs +4 -4
- package/esm2022/columns/column.component.mjs +1 -1
- package/esm2022/columns/columns-container.mjs +3 -0
- package/esm2022/common/column-info.service.mjs +1 -1
- package/esm2022/common/data-layout-mode.mjs +5 -0
- package/esm2022/common/provider.service.mjs +1 -0
- package/esm2022/common/stacked-layout-settings.mjs +5 -0
- package/esm2022/common/toolbar-tool-base.directive.mjs +3 -2
- package/esm2022/data/data-mapping.service.mjs +14 -3
- package/esm2022/directives.mjs +8 -1
- package/esm2022/editing/form/form-formfield.component.mjs +2 -2
- package/esm2022/editing-directives/editing-directive-base.mjs +17 -2
- package/esm2022/editing-directives/in-cell-editing.directive.mjs +3 -1
- package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/date-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/filter-cell-operators.component.mjs +1 -2
- package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/cell/string-filter-cell.component.mjs +1 -1
- package/esm2022/filtering/filter-row.component.mjs +6 -3
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +1 -2
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +1 -1
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +1 -1
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +1 -1
- package/esm2022/filtering/menu/filter-menu.component.mjs +1 -1
- package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +1 -1
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +1 -1
- package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +1 -1
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +1 -1
- package/esm2022/grid.component.mjs +190 -39
- package/esm2022/grid.module.mjs +103 -100
- package/esm2022/grouping/group-header.component.mjs +39 -4
- package/esm2022/grouping/group-panel.component.mjs +7 -3
- package/esm2022/highlight/highlight-item.mjs +5 -0
- package/esm2022/highlight/highlight.directive.mjs +132 -0
- package/esm2022/index.mjs +4 -0
- package/esm2022/localization/messages.mjs +57 -3
- package/esm2022/navigation/default-focusable-element.mjs +14 -2
- package/esm2022/navigation/focusable.directive.mjs +1 -1
- package/esm2022/navigation/navigation-cursor.mjs +7 -1
- package/esm2022/navigation/navigation-metadata.mjs +3 -1
- package/esm2022/navigation/navigation.service.mjs +136 -5
- package/esm2022/navigation/toolbar-tool-name.mjs +2 -1
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pdf/export-element.mjs +14 -5
- package/esm2022/pdf/pdf.component.mjs +3 -1
- package/esm2022/rendering/cell.component.mjs +466 -188
- package/esm2022/rendering/common/col-group.component.mjs +20 -7
- package/esm2022/rendering/footer/footer.component.mjs +117 -54
- package/esm2022/rendering/header/header.component.mjs +5 -2
- package/esm2022/rendering/list.component.mjs +14 -9
- package/esm2022/rendering/table-body.component.mjs +388 -171
- package/esm2022/rendering/toolbar/tools/ai-assistant/ai-assistant.component.mjs +290 -0
- package/esm2022/rendering/toolbar/tools/ai-assistant/ai-tool.directive.mjs +269 -0
- package/esm2022/rendering/toolbar/tools/ai-assistant/utils.mjs +47 -0
- package/esm2022/rendering/toolbar/tools/select-all-command-tool.directive.mjs +93 -0
- package/esm2022/row-reordering/row-reorder.service.mjs +2 -2
- package/esm2022/row-reordering/utils.mjs +6 -4
- package/esm2022/selection/cell-selection.service.mjs +6 -3
- package/esm2022/selection/pair-set.mjs +87 -10
- package/esm2022/utils.mjs +0 -4
- package/fesm2022/progress-kendo-angular-grid.mjs +2460 -599
- package/filtering/filter-row.component.d.ts +1 -0
- package/grid.component.d.ts +29 -1
- package/grid.module.d.ts +102 -99
- package/grouping/group-header.component.d.ts +1 -0
- package/highlight/highlight-item.d.ts +17 -0
- package/highlight/highlight.directive.d.ts +56 -0
- package/index.d.ts +7 -0
- package/localization/messages.d.ts +39 -3
- package/navigation/default-focusable-element.d.ts +3 -1
- package/navigation/focus-group.d.ts +1 -1
- package/navigation/navigation-metadata.d.ts +2 -1
- package/navigation/navigation.service.d.ts +6 -0
- package/navigation/toolbar-tool-name.d.ts +1 -0
- package/package.json +22 -21
- package/rendering/cell.component.d.ts +30 -15
- package/rendering/common/col-group.component.d.ts +5 -0
- package/rendering/footer/footer.component.d.ts +4 -1
- package/rendering/header/header.component.d.ts +1 -0
- package/rendering/list.component.d.ts +4 -1
- package/rendering/table-body.component.d.ts +3 -1
- package/rendering/toolbar/tools/ai-assistant/ai-assistant.component.d.ts +50 -0
- package/rendering/toolbar/tools/ai-assistant/ai-tool.directive.d.ts +119 -0
- package/rendering/toolbar/tools/ai-assistant/utils.d.ts +110 -0
- package/rendering/toolbar/tools/select-all-command-tool.directive.d.ts +36 -0
- package/row-reordering/row-reorder.service.d.ts +1 -1
- package/row-reordering/utils.d.ts +1 -1
- package/schematics/ngAdd/index.js +4 -4
- package/selection/cell-selection.service.d.ts +1 -0
- package/selection/pair-set.d.ts +36 -8
- package/utils.d.ts +0 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, Output, Renderer2, QueryList, ViewChild, isDevMode, NgZone, ViewChildren, ChangeDetectorRef, ViewEncapsulation, ViewContainerRef } from '@angular/core';
|
|
5
|
+
import { Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, Output, Renderer2, QueryList, ViewChild, isDevMode, NgZone, ViewChildren, ChangeDetectorRef, ViewEncapsulation, ViewContainerRef, ContentChild } from '@angular/core';
|
|
6
6
|
import { ZoneAwareEventEmitter } from './common/event-emitter';
|
|
7
7
|
import { FormControl, FormGroup } from '@angular/forms';
|
|
8
8
|
import { merge } from 'rxjs';
|
|
@@ -71,7 +71,7 @@ import { CellLoadingTemplateDirective } from './rendering/cell-loading.template.
|
|
|
71
71
|
import { ContextService } from './common/provider.service';
|
|
72
72
|
import { LoadingTemplateDirective } from './rendering/loading-template.directive';
|
|
73
73
|
import { SizingOptionsService } from './layout/sizing-options.service';
|
|
74
|
-
import { DraggableDirective, WatermarkOverlayComponent, guid, shouldShowValidationUI } from '@progress/kendo-angular-common';
|
|
74
|
+
import { DraggableDirective, WatermarkOverlayComponent, guid, shouldShowValidationUI, getLicenseMessage } from '@progress/kendo-angular-common';
|
|
75
75
|
import { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
|
|
76
76
|
import { RowReorderService } from './row-reordering/row-reorder.service';
|
|
77
77
|
import { StatusBarTemplateDirective } from './aggregates/status-bar-template.directive';
|
|
@@ -101,6 +101,7 @@ import { AdaptiveRendererComponent } from './adaptiveness/adaptive-renderer.comp
|
|
|
101
101
|
import { ColumnMenuService } from './column-menu/column-menu.service';
|
|
102
102
|
import { MenuTabbingService } from './filtering/menu/menu-tabbing.service';
|
|
103
103
|
import { DataMappingService } from './data/data-mapping.service';
|
|
104
|
+
import { AIAssistantToolbarDirective } from './rendering/toolbar/tools/ai-assistant/ai-tool.directive';
|
|
104
105
|
import * as i0 from "@angular/core";
|
|
105
106
|
import * as i1 from "./layout/browser-support.service";
|
|
106
107
|
import * as i2 from "./selection/selection.service";
|
|
@@ -141,7 +142,7 @@ const handleExpandCollapseGroupsService = (service, expandEmitter, collapseEmitt
|
|
|
141
142
|
.subscribe((x) => x.expand ? expandEmitter.emit(map(x)) : collapseEmitter.emit(map(x))));
|
|
142
143
|
const handleExpandCollapseDetailsService = (service, expandEmitter, collapseEmitter, map) => (service.changes.pipe(filter(({ dataItem }) => isPresent(dataItem)))
|
|
143
144
|
.subscribe((x) => x.expand ? expandEmitter.emit(map(x)) : collapseEmitter.emit(map(x))));
|
|
144
|
-
const isInEditedCell = (element, gridElement) => closest(element, matchesClasses('k-grid-edit-cell')) &&
|
|
145
|
+
const isInEditedCell = (element, gridElement, isStacked = false) => (closest(element, matchesClasses('k-grid-edit-cell')) || (isStacked && closest(element, matchesClasses('k-grid-stack-edit-cell')))) &&
|
|
145
146
|
closest(element, matchesNodeName('kendo-grid')) === gridElement;
|
|
146
147
|
const NOTIFY_DELAY = 500;
|
|
147
148
|
/**
|
|
@@ -388,7 +389,7 @@ export class GridComponent {
|
|
|
388
389
|
* @hidden
|
|
389
390
|
*/
|
|
390
391
|
get isLocked() {
|
|
391
|
-
return this.lockedLeafColumns.length > 0;
|
|
392
|
+
return (this.lockedLeafColumns.length > 0 && !this.isStacked);
|
|
392
393
|
}
|
|
393
394
|
/**
|
|
394
395
|
* @hidden
|
|
@@ -414,7 +415,9 @@ export class GridComponent {
|
|
|
414
415
|
* @hidden
|
|
415
416
|
*/
|
|
416
417
|
get showGroupPanel() {
|
|
417
|
-
|
|
418
|
+
const isGroupable = this.groupable && this.groupable.enabled !== false;
|
|
419
|
+
const isGrouped = this.group?.length > 0;
|
|
420
|
+
return this.isStacked ? isGroupable && isGrouped : isGroupable;
|
|
418
421
|
}
|
|
419
422
|
/**
|
|
420
423
|
* @hidden
|
|
@@ -692,6 +695,12 @@ export class GridComponent {
|
|
|
692
695
|
get isGroupExpanded() {
|
|
693
696
|
return this.groupsService.userCallback;
|
|
694
697
|
}
|
|
698
|
+
/**
|
|
699
|
+
* Sets the Grid data layout display mode.
|
|
700
|
+
*
|
|
701
|
+
* @default 'columns'
|
|
702
|
+
*/
|
|
703
|
+
dataLayoutMode = 'columns';
|
|
695
704
|
/**
|
|
696
705
|
* Fires when the Grid data is filtered through the UI and the filter descriptor changes.
|
|
697
706
|
*/
|
|
@@ -819,8 +828,11 @@ export class GridComponent {
|
|
|
819
828
|
get sizeMediumClass() {
|
|
820
829
|
return this.size === 'medium' || !this.size;
|
|
821
830
|
}
|
|
831
|
+
get stackedClass() {
|
|
832
|
+
return this.dataLayoutMode === 'stacked';
|
|
833
|
+
}
|
|
822
834
|
get lockedClasses() {
|
|
823
|
-
return this.lockedLeafColumns.length > 0;
|
|
835
|
+
return this.lockedLeafColumns.length > 0 && !this.isStacked;
|
|
824
836
|
}
|
|
825
837
|
get virtualClasses() {
|
|
826
838
|
return this.isVirtual;
|
|
@@ -914,6 +926,7 @@ export class GridComponent {
|
|
|
914
926
|
this._customToolbarTemplate = customToolbarTemplate;
|
|
915
927
|
}
|
|
916
928
|
columnMenuTemplates;
|
|
929
|
+
aiAssistantToolbarTool;
|
|
917
930
|
lockedHeader;
|
|
918
931
|
header;
|
|
919
932
|
footer = new QueryList();
|
|
@@ -921,6 +934,7 @@ export class GridComponent {
|
|
|
921
934
|
dragTargetContainer;
|
|
922
935
|
dropTargetContainer;
|
|
923
936
|
dialogContainer;
|
|
937
|
+
windowContainer;
|
|
924
938
|
adaptiveRenderer;
|
|
925
939
|
listComponent;
|
|
926
940
|
get scrollbarWidth() {
|
|
@@ -973,6 +987,10 @@ export class GridComponent {
|
|
|
973
987
|
selectionDirective = false;
|
|
974
988
|
ariaRootId = `k-${guid()}`;
|
|
975
989
|
showLicenseWatermark = false;
|
|
990
|
+
/**
|
|
991
|
+
* @hidden
|
|
992
|
+
*/
|
|
993
|
+
licenseMessage;
|
|
976
994
|
columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
|
|
977
995
|
if (!isUniversal()) {
|
|
978
996
|
column.matchesMedia = this.matchesMedia(column);
|
|
@@ -1038,6 +1056,12 @@ export class GridComponent {
|
|
|
1038
1056
|
get isScrollable() {
|
|
1039
1057
|
return this.scrollable !== 'none';
|
|
1040
1058
|
}
|
|
1059
|
+
/**
|
|
1060
|
+
* @hidden
|
|
1061
|
+
*/
|
|
1062
|
+
get isStacked() {
|
|
1063
|
+
return typeof this.dataLayoutMode === 'string' ? this.dataLayoutMode !== 'columns' : this.dataLayoutMode.mode !== 'columns';
|
|
1064
|
+
}
|
|
1041
1065
|
get visibleColumns() {
|
|
1042
1066
|
return this.columnsContainer.allColumns;
|
|
1043
1067
|
}
|
|
@@ -1075,11 +1099,14 @@ export class GridComponent {
|
|
|
1075
1099
|
return this.nonLockedLeafColumns;
|
|
1076
1100
|
}
|
|
1077
1101
|
get lockedWidth() {
|
|
1102
|
+
if (this.isStacked) {
|
|
1103
|
+
return 0;
|
|
1104
|
+
}
|
|
1078
1105
|
const groupCellsWidth = this.group.length * GROUP_CELL_WIDTH;
|
|
1079
1106
|
return expandColumns(this.lockedLeafColumns.toArray()).reduce((prev, curr) => prev + (curr.width || 0), groupCellsWidth);
|
|
1080
1107
|
}
|
|
1081
1108
|
get nonLockedWidth() {
|
|
1082
|
-
if ((!this.rtl && this.lockedLeafColumns.length) || this.virtualColumns) {
|
|
1109
|
+
if (((!this.rtl && this.lockedLeafColumns.length) || this.virtualColumns) && !this.isStacked) {
|
|
1083
1110
|
return !this.virtualColumns ? this.columnsContainer.unlockedWidth :
|
|
1084
1111
|
this.leafViewportColumns.reduce((acc, column) => acc + (column.width || 0), 0);
|
|
1085
1112
|
}
|
|
@@ -1105,7 +1132,7 @@ export class GridComponent {
|
|
|
1105
1132
|
* @hidden
|
|
1106
1133
|
*/
|
|
1107
1134
|
getDefaultSelectors(type) {
|
|
1108
|
-
return this.rowReorderService.defaultSelectors[type];
|
|
1135
|
+
return this.rowReorderService.defaultSelectors(this.isStacked)[type];
|
|
1109
1136
|
}
|
|
1110
1137
|
/**
|
|
1111
1138
|
* @hidden
|
|
@@ -1176,8 +1203,10 @@ export class GridComponent {
|
|
|
1176
1203
|
this.rowReorderService = rowReorderService;
|
|
1177
1204
|
this.dataMappingService = dataMappingService;
|
|
1178
1205
|
const isValid = validatePackage(packageMetadata);
|
|
1206
|
+
this.licenseMessage = getLicenseMessage(packageMetadata);
|
|
1179
1207
|
this.showLicenseWatermark = shouldShowValidationUI(isValid);
|
|
1180
1208
|
this.ctx.grid = this;
|
|
1209
|
+
this.ctx.navigable = typeof this.navigable === 'boolean' ? this.navigable : this.navigable.includes('table');
|
|
1181
1210
|
this.groupChange = new ZoneAwareEventEmitter(this.ngZone);
|
|
1182
1211
|
this.cellClick = new ZoneAwareEventEmitter(this.ngZone);
|
|
1183
1212
|
this.columnResize = new ZoneAwareEventEmitter(this.ngZone);
|
|
@@ -1215,6 +1244,7 @@ export class GridComponent {
|
|
|
1215
1244
|
this.columnReorderSubscription = this.columnReorderService
|
|
1216
1245
|
.changes.subscribe(this.reorder.bind(this));
|
|
1217
1246
|
this.columnRangeChangeSubscription = this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this));
|
|
1247
|
+
this.columnsContainer.isStacked = this.isStacked;
|
|
1218
1248
|
}
|
|
1219
1249
|
/**
|
|
1220
1250
|
* Expands the master row at the specified data row index ([see example]({% slug hierarchy_grid %})).
|
|
@@ -1335,6 +1365,15 @@ export class GridComponent {
|
|
|
1335
1365
|
}
|
|
1336
1366
|
}
|
|
1337
1367
|
}
|
|
1368
|
+
if (isChanged('dataLayoutMode', changes)) {
|
|
1369
|
+
if (this.isStacked) {
|
|
1370
|
+
this.generateStackedColumns();
|
|
1371
|
+
}
|
|
1372
|
+
else {
|
|
1373
|
+
this.stackedColumns = { columns: [], areDefault: false };
|
|
1374
|
+
}
|
|
1375
|
+
this.columnsContainer.isStacked = this.isStacked;
|
|
1376
|
+
}
|
|
1338
1377
|
}
|
|
1339
1378
|
ngAfterContentInit() {
|
|
1340
1379
|
this.shouldGenerateColumns = !this.columns.length;
|
|
@@ -1361,6 +1400,7 @@ export class GridComponent {
|
|
|
1361
1400
|
if (this.navigable.length) {
|
|
1362
1401
|
this.navigationService.init(this.navigationMetadata(), this.navigable);
|
|
1363
1402
|
}
|
|
1403
|
+
this.isStacked && this.generateStackedColumns();
|
|
1364
1404
|
}
|
|
1365
1405
|
ngOnDestroy() {
|
|
1366
1406
|
if (this.selectionSubscription) {
|
|
@@ -1531,7 +1571,7 @@ export class GridComponent {
|
|
|
1531
1571
|
editCell(rowIndex, column, group) {
|
|
1532
1572
|
const instance = this.columnInstance(column);
|
|
1533
1573
|
this.editService.editCell(rowIndex, instance, group);
|
|
1534
|
-
this.focusEditElement('.k-grid-edit-cell');
|
|
1574
|
+
this.focusEditElement(this.isStacked ? '.k-grid-stack-edit-cell' : '.k-grid-edit-cell');
|
|
1535
1575
|
}
|
|
1536
1576
|
/**
|
|
1537
1577
|
* Closes the current cell in edit mode and fires the [`cellClose`]({% slug api_grid_gridcomponent %}#toc-cellclose) event.
|
|
@@ -1912,7 +1952,8 @@ export class GridComponent {
|
|
|
1912
1952
|
isRowSelectable: this.isRowSelectable,
|
|
1913
1953
|
selectable: this.selectable,
|
|
1914
1954
|
view: this.view,
|
|
1915
|
-
columns: cellSelectionMode ? this.columnList.toArray() : undefined
|
|
1955
|
+
columns: cellSelectionMode ? this.columnList.toArray() : undefined,
|
|
1956
|
+
isStacked: this.isStacked
|
|
1916
1957
|
});
|
|
1917
1958
|
if (!this.selectionDirective && !this.selectableSettings.enabled) {
|
|
1918
1959
|
this.defaultSelection.reset();
|
|
@@ -1966,7 +2007,7 @@ export class GridComponent {
|
|
|
1966
2007
|
if (this.lockedLeafColumns.length && !this.nonLockedLeafColumns.length) {
|
|
1967
2008
|
console.warn(GridConfigurationErrorMessages.nonLockedColumnPresent);
|
|
1968
2009
|
}
|
|
1969
|
-
if ((locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
2010
|
+
if (!this.isStacked && (locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
1970
2011
|
console.warn(ColumnConfigurationErrorMessages.requiredWidth(locked ? 'Locked' : 'Virtual'));
|
|
1971
2012
|
}
|
|
1972
2013
|
if (locked && !this.isScrollable) {
|
|
@@ -1990,7 +2031,7 @@ export class GridComponent {
|
|
|
1990
2031
|
if (!this.detailRowHeight && this.isVirtual && this.detailTemplate) {
|
|
1991
2032
|
console.warn(GridConfigurationErrorMessages.rowHeightVirtual);
|
|
1992
2033
|
}
|
|
1993
|
-
if (stickyColumns && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
2034
|
+
if (!this.isStacked && stickyColumns && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {
|
|
1994
2035
|
console.warn(ColumnConfigurationErrorMessages.requiredWidth('Sticky'));
|
|
1995
2036
|
}
|
|
1996
2037
|
if (this.rowSticky && this.scrollable === 'virtual') {
|
|
@@ -2014,6 +2055,47 @@ export class GridComponent {
|
|
|
2014
2055
|
}));
|
|
2015
2056
|
}
|
|
2016
2057
|
}
|
|
2058
|
+
/**
|
|
2059
|
+
* @hidden
|
|
2060
|
+
*/
|
|
2061
|
+
stackedColumns = { columns: [], areDefault: false };
|
|
2062
|
+
generateStackedColumns() {
|
|
2063
|
+
if (!this.isStacked || !isPresent(this.dataLayoutMode)) {
|
|
2064
|
+
return;
|
|
2065
|
+
}
|
|
2066
|
+
this.stackedColumns.columns = [];
|
|
2067
|
+
if (typeof this.dataLayoutMode === 'object') {
|
|
2068
|
+
if (this.dataLayoutMode.mode === 'stacked' && this.dataLayoutMode.stackedLayoutSettings?.cols) {
|
|
2069
|
+
const columns = this.dataLayoutMode.stackedLayoutSettings.cols;
|
|
2070
|
+
if (typeof columns === 'number') {
|
|
2071
|
+
for (let i = 0; i < columns; i++) {
|
|
2072
|
+
const currCol = { width: `${this.wrapper.nativeElement.clientWidth / columns}px` };
|
|
2073
|
+
this.stackedColumns.columns.push(currCol);
|
|
2074
|
+
}
|
|
2075
|
+
this.stackedColumns.areDefault = true;
|
|
2076
|
+
}
|
|
2077
|
+
else if (Array.isArray(columns)) {
|
|
2078
|
+
this.stackedColumns.columns = columns.map((colSize) => {
|
|
2079
|
+
const stackedColumn = {};
|
|
2080
|
+
if (typeof colSize === 'number') {
|
|
2081
|
+
stackedColumn.width = `${colSize}px`;
|
|
2082
|
+
}
|
|
2083
|
+
else if (typeof colSize === 'object' && colSize?.width) {
|
|
2084
|
+
stackedColumn.width = typeof colSize.width === 'number' ? `${colSize.width}px` : colSize.width;
|
|
2085
|
+
}
|
|
2086
|
+
else if (typeof colSize === 'string') {
|
|
2087
|
+
stackedColumn.width = colSize;
|
|
2088
|
+
}
|
|
2089
|
+
return stackedColumn;
|
|
2090
|
+
});
|
|
2091
|
+
this.stackedColumns.areDefault = false;
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
2095
|
+
else {
|
|
2096
|
+
this.stackedColumns = { columns: [{ width: this.wrapper.nativeElement.clientWidth }], areDefault: true };
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2017
2099
|
attachStateChangesEmitter() {
|
|
2018
2100
|
this.stateChangeSubscription =
|
|
2019
2101
|
merge(this.pageChange.pipe(map(x => ({
|
|
@@ -2096,14 +2178,14 @@ export class GridComponent {
|
|
|
2096
2178
|
!closest(args.target, matchesClasses('k-animation-container k-grid-ignore-click')) &&
|
|
2097
2179
|
!(activeElement &&
|
|
2098
2180
|
(closest(activeElement, matchesClasses('k-animation-container')) ||
|
|
2099
|
-
isInEditedCell(activeElement, this.wrapper.nativeElement)))) {
|
|
2181
|
+
isInEditedCell(activeElement, this.wrapper.nativeElement, this.isStacked)))) {
|
|
2100
2182
|
this.editService.closeCell(args);
|
|
2101
2183
|
}
|
|
2102
2184
|
});
|
|
2103
2185
|
const windowBlurSubscription = this.renderer.listen('window', 'blur', (args) => {
|
|
2104
2186
|
const activeElement = document.activeElement;
|
|
2105
2187
|
if (activeElement && !(matchesNodeName('input')(activeElement) && activeElement.type === 'file' &&
|
|
2106
|
-
isInEditedCell(activeElement, this.wrapper.nativeElement))) {
|
|
2188
|
+
isInEditedCell(activeElement, this.wrapper.nativeElement, this.isStacked))) {
|
|
2107
2189
|
this.editService.closeCell(args);
|
|
2108
2190
|
}
|
|
2109
2191
|
this.domEvents.windowBlur.emit(args);
|
|
@@ -2222,8 +2304,8 @@ export class GridComponent {
|
|
|
2222
2304
|
const dataRows = isVirtual ? this.view.total : pageSize;
|
|
2223
2305
|
const addRowOffset = this.editService.hasNewItem ? 1 : 0;
|
|
2224
2306
|
const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;
|
|
2225
|
-
const headerRows = this.totalColumnLevels + 1 + filterRowOffset + addRowOffset;
|
|
2226
|
-
return new NavigationMetadata(dataRows, headerRows, isVirtual, this.hasPager, isPresent(this.detailTemplate), this.wrapper, this.virtualColumns, this.columnsContainer);
|
|
2307
|
+
const headerRows = this.isStacked ? 0 : this.totalColumnLevels + 1 + filterRowOffset + addRowOffset;
|
|
2308
|
+
return new NavigationMetadata(dataRows, headerRows, isVirtual, this.hasPager, isPresent(this.detailTemplate), this.wrapper, this.virtualColumns, this.columnsContainer, this.isStacked);
|
|
2227
2309
|
}
|
|
2228
2310
|
applyAutoSize() {
|
|
2229
2311
|
const cols = this.columns.filter((c) => this.autoSize ? c.autoSize !== false : c.autoSize);
|
|
@@ -2328,7 +2410,7 @@ export class GridComponent {
|
|
|
2328
2410
|
this.dropTargetContainer?.notify();
|
|
2329
2411
|
}
|
|
2330
2412
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, deps: [{ token: i1.BrowserSupportService }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i0.ElementRef }, { token: i4.GroupInfoService }, { token: i5.GroupsService }, { token: i6.ChangeNotificationService }, { token: i7.DetailsService }, { token: i8.EditService }, { token: i9.FilterService }, { token: i10.PDFService }, { token: i11.ResponsiveService }, { token: i0.Renderer2 }, { token: i12.ExcelService }, { token: i0.NgZone }, { token: i13.ScrollSyncService }, { token: i14.DomEventsService }, { token: i15.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i16.ColumnReorderService }, { token: i17.ColumnInfoService }, { token: i18.NavigationService }, { token: i19.SortService }, { token: i20.ScrollRequestService }, { token: i21.LocalizationService }, { token: i22.ContextService }, { token: i23.SizingOptionsService }, { token: i24.AdaptiveGridService }, { token: i25.RowReorderService }, { token: i26.DataMappingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2331
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridComponent, isStandalone: true, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", adaptiveMode: "adaptiveMode", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", gridResizable: "gridResizable", rowReorderable: "rowReorderable", navigable: "navigable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", isRowSelectable: "isRowSelectable", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", showInactiveTools: "showInactiveTools", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", rowReorder: "rowReorder", dataStateChange: "dataStateChange", gridStateChange: "gridStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass", "class.k-grid-resizable": "this.isResizable", "style.minWidth": "this.minWidth", "style.maxWidth": "this.maxWidth", "style.minHeight": "this.minHeight", "style.maxHeight": "this.maxHeight" } }, providers: [
|
|
2413
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridComponent, isStandalone: true, selector: "kendo-grid", inputs: { data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", adaptiveMode: "adaptiveMode", detailRowHeight: "detailRowHeight", skip: "skip", scrollable: "scrollable", selectable: "selectable", sort: "sort", size: "size", trackBy: "trackBy", filter: "filter", group: "group", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", groupable: "groupable", gridResizable: "gridResizable", rowReorderable: "rowReorderable", navigable: "navigable", autoSize: "autoSize", rowClass: "rowClass", rowSticky: "rowSticky", rowSelected: "rowSelected", isRowSelectable: "isRowSelectable", cellSelected: "cellSelected", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", showInactiveTools: "showInactiveTools", isDetailExpanded: "isDetailExpanded", isGroupExpanded: "isGroupExpanded", dataLayoutMode: "dataLayoutMode" }, outputs: { filterChange: "filterChange", pageChange: "pageChange", groupChange: "groupChange", sortChange: "sortChange", selectionChange: "selectionChange", rowReorder: "rowReorder", dataStateChange: "dataStateChange", gridStateChange: "gridStateChange", groupExpand: "groupExpand", groupCollapse: "groupCollapse", detailExpand: "detailExpand", detailCollapse: "detailCollapse", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", columnStickyChange: "columnStickyChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClass", "class.k-grid-sm": "this.sizeSmallClass", "class.k-grid-md": "this.sizeMediumClass", "class.k-grid-stack": "this.stackedClass", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass", "class.k-grid-resizable": "this.isResizable", "style.minWidth": "this.minWidth", "style.maxWidth": "this.maxWidth", "style.minHeight": "this.minHeight", "style.maxHeight": "this.maxHeight" } }, providers: [
|
|
2332
2414
|
BrowserSupportService,
|
|
2333
2415
|
LocalizationService,
|
|
2334
2416
|
ColumnInfoService,
|
|
@@ -2379,7 +2461,7 @@ export class GridComponent {
|
|
|
2379
2461
|
ColumnMenuService,
|
|
2380
2462
|
MenuTabbingService,
|
|
2381
2463
|
DataMappingService
|
|
2382
|
-
], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "adaptiveRenderer", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
|
|
2464
|
+
], queries: [{ propertyName: "aiAssistantToolbarTool", first: true, predicate: AIAssistantToolbarDirective, descendants: true }, { propertyName: "columns", predicate: ColumnBase }, { propertyName: "detailTemplateChildren", predicate: DetailTemplateDirective }, { propertyName: "cellLoadingTemplateChildren", predicate: CellLoadingTemplateDirective }, { propertyName: "loadingTemplateChildren", predicate: LoadingTemplateDirective }, { propertyName: "statusBarTemplateChildren", predicate: StatusBarTemplateDirective }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "windowContainer", first: true, predicate: ["windowContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "adaptiveRenderer", first: true, predicate: AdaptiveRendererComponent, descendants: true }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoGrid"], usesOnChanges: true, ngImport: i0, template: `
|
|
2383
2465
|
<ng-container kendoGridLocalizedMessages
|
|
2384
2466
|
i18n-groupPanelEmpty="kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty"
|
|
2385
2467
|
groupPanelEmpty="Drag a column header and drop it here to group by that column"
|
|
@@ -2612,10 +2694,10 @@ export class GridComponent {
|
|
|
2612
2694
|
i18n-columnsReset="kendo.grid.columnsReset|The text shown in the column menu or column chooser for the columns reset button"
|
|
2613
2695
|
columnsReset="Reset"
|
|
2614
2696
|
|
|
2615
|
-
i18n-detailExpand="kendo.grid.detailExpand|The title of the expand icon of detail rows."
|
|
2697
|
+
i18n-detailExpand="kendo.grid.detailExpand|The title of the expand icon of detail rows. Applies also to the expand button text in stacked mode."
|
|
2616
2698
|
detailExpand="Expand Details"
|
|
2617
2699
|
|
|
2618
|
-
i18n-detailCollapse="kendo.grid.detailCollapse|The title of the collapse icon of detail rows."
|
|
2700
|
+
i18n-detailCollapse="kendo.grid.detailCollapse|The title of the collapse icon of detail rows. Applies also to the collapse button text in stacked mode."
|
|
2619
2701
|
detailCollapse="Collapse Details"
|
|
2620
2702
|
|
|
2621
2703
|
i18n-filterDateToday="kendo.grid.filterDateToday|The text of the Today button of the Date filter."
|
|
@@ -2725,6 +2807,33 @@ export class GridComponent {
|
|
|
2725
2807
|
|
|
2726
2808
|
i18n-externalEditingCancelText="kendo.grid.externalEditingCancelText|The text of the external editing form Cancel button"
|
|
2727
2809
|
externalEditingCancelText="Cancel"
|
|
2810
|
+
|
|
2811
|
+
i18n-aiAssistantToolbarToolText="kendo.grid.aiAssistantToolbarToolText|The text of the AI Assistant toolbar tool"
|
|
2812
|
+
aiAssistantToolbarToolText="AI Assistant"
|
|
2813
|
+
|
|
2814
|
+
i18n-aiAssistantWindowTitle="kendo.grid.aiAssistantWindowTitle|The text of the AI Assistant Window title"
|
|
2815
|
+
aiAssistantWindowTitle="AI Assistant"
|
|
2816
|
+
|
|
2817
|
+
i18n-aiAssistantApplyButtonText="kendo.grid.aiAssistantApplyButtonText|The text of the AI Assistant Apply button"
|
|
2818
|
+
aiAssistantApplyButtonText="Apply"
|
|
2819
|
+
|
|
2820
|
+
i18n-aiAssistantWindowCloseTitle="kendo.grid.aiAssistantWindowCloseTitle|The title of the AI Assistant Window close button"
|
|
2821
|
+
aiAssistantWindowCloseTitle="Close"
|
|
2822
|
+
|
|
2823
|
+
i18n-aiAssistantWindowMaximizeTitle="kendo.grid.aiAssistantWindowMaximizeTitle|The title of the AI Assistant Window maximize button"
|
|
2824
|
+
aiAssistantWindowMaximizeTitle="Maximize"
|
|
2825
|
+
|
|
2826
|
+
i18n-aiAssistantWindowMinimizeTitle="kendo.grid.aiAssistantWindowMinimizeTitle|The title of the AI Assistant Window minimize button"
|
|
2827
|
+
aiAssistantWindowMinimizeTitle="Minimize"
|
|
2828
|
+
|
|
2829
|
+
i18n-aiAssistantWindowRestoreTitle="kendo.grid.aiAssistantWindowRestoreTitle|The title of the AI Assistant Window restore button"
|
|
2830
|
+
aiAssistantWindowRestoreTitle="Restore"
|
|
2831
|
+
|
|
2832
|
+
i18n-aiAssistantOutputCardTitle="kendo.grid.aiAssistantOutputCardTitle|The title of the AI Assistant Prompt Output Card"
|
|
2833
|
+
aiAssistantOutputCardTitle="Generated with AI"
|
|
2834
|
+
|
|
2835
|
+
i18n-aiAssistantOutputCardBodyContent="kendo.grid.aiAssistantOutputCardBodyContent|The success message dispayed in the AI Assistant Prompt Output Card's body"
|
|
2836
|
+
aiAssistantOutputCardBodyContent="Operation is successful. Data is:"
|
|
2728
2837
|
>
|
|
2729
2838
|
</ng-container>
|
|
2730
2839
|
<kendo-grid-toolbar
|
|
@@ -2810,7 +2919,7 @@ export class GridComponent {
|
|
|
2810
2919
|
[attr.aria-rowcount]="ariaRowCount"
|
|
2811
2920
|
[attr.aria-colcount]="ariaColCount">
|
|
2812
2921
|
<ng-container *ngIf="isScrollable">
|
|
2813
|
-
<div *ngIf="!hideHeader"
|
|
2922
|
+
<div *ngIf="!hideHeader && !isStacked"
|
|
2814
2923
|
class="k-grid-header"
|
|
2815
2924
|
[class.k-grid-draggable-header]="groupable || reorderable"
|
|
2816
2925
|
role="presentation"
|
|
@@ -2934,7 +3043,7 @@ export class GridComponent {
|
|
|
2934
3043
|
class="k-grid-footer"
|
|
2935
3044
|
[style.padding]="headerPadding">
|
|
2936
3045
|
<div
|
|
2937
|
-
*ngIf="lockedLeafColumns.length"
|
|
3046
|
+
*ngIf="lockedLeafColumns.length && !isStacked"
|
|
2938
3047
|
class="k-grid-footer-locked"
|
|
2939
3048
|
[style.width.px]="lockedWidth">
|
|
2940
3049
|
<table
|
|
@@ -2945,7 +3054,7 @@ export class GridComponent {
|
|
|
2945
3054
|
[style.width.px]="lockedWidth"
|
|
2946
3055
|
kendoGridTable
|
|
2947
3056
|
[size]="size">
|
|
2948
|
-
<colgroup kendoGridColGroup
|
|
3057
|
+
<colgroup kendoGridColGroup *ngIf="!isStacked"
|
|
2949
3058
|
[columns]="$any(lockedLeafColumns)"
|
|
2950
3059
|
[groups]="group"
|
|
2951
3060
|
[detailTemplate]="detailTemplate">
|
|
@@ -2963,7 +3072,7 @@ export class GridComponent {
|
|
|
2963
3072
|
</div>
|
|
2964
3073
|
<div #footer
|
|
2965
3074
|
class="k-grid-footer-wrap" data-scrollable
|
|
2966
|
-
[kendoGridResizableContainer]="lockedLeafColumns.length > 0"
|
|
3075
|
+
[kendoGridResizableContainer]="lockedLeafColumns.length > 0 && !isStacked"
|
|
2967
3076
|
[lockedWidth]="lockedWidth + scrollbarWidth + 3">
|
|
2968
3077
|
<table
|
|
2969
3078
|
role="presentation"
|
|
@@ -2972,7 +3081,7 @@ export class GridComponent {
|
|
|
2972
3081
|
kendoGridTable
|
|
2973
3082
|
kendoGridResizableTable
|
|
2974
3083
|
[size]="size">
|
|
2975
|
-
<colgroup kendoGridColGroup
|
|
3084
|
+
<colgroup kendoGridColGroup *ngIf="!isStacked"
|
|
2976
3085
|
[columns]="$any(headerLeafColumns)"
|
|
2977
3086
|
[groups]="isLocked ? [] : group"
|
|
2978
3087
|
[detailTemplate]="detailTemplate">
|
|
@@ -2982,7 +3091,7 @@ export class GridComponent {
|
|
|
2982
3091
|
[scrollable]="true"
|
|
2983
3092
|
[groups]="isLocked ? [] : group"
|
|
2984
3093
|
[columns]="$any(headerColumns)"
|
|
2985
|
-
[lockedColumnsCount]="lockedLeafColumns.length"
|
|
3094
|
+
[lockedColumnsCount]="isStacked ? 0 : lockedLeafColumns.length"
|
|
2986
3095
|
[detailTemplate]="detailTemplate"
|
|
2987
3096
|
[totalColumns]="columnsContainer"
|
|
2988
3097
|
[totalColumnsCount]="leafColumns.length">
|
|
@@ -3006,7 +3115,7 @@ export class GridComponent {
|
|
|
3006
3115
|
[detailTemplate]="detailTemplate">
|
|
3007
3116
|
</colgroup>
|
|
3008
3117
|
<thead kendoGridHeader
|
|
3009
|
-
*ngIf="!hideHeader"
|
|
3118
|
+
*ngIf="!hideHeader && !isStacked"
|
|
3010
3119
|
class="k-grid-header"
|
|
3011
3120
|
[class.k-grid-draggable-header]="groupable || reorderable"
|
|
3012
3121
|
role="rowgroup"
|
|
@@ -3144,8 +3253,10 @@ export class GridComponent {
|
|
|
3144
3253
|
|
|
3145
3254
|
<kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
|
|
3146
3255
|
|
|
3147
|
-
<div
|
|
3148
|
-
|
|
3256
|
+
<div *ngIf="aiAssistantToolbarTool" #windowContainer></div>
|
|
3257
|
+
|
|
3258
|
+
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
|
|
3259
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "rowsToRender", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }, { kind: "component", type: i27.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i27.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i27.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i27.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i27.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i27.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i27.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i27.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i27.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange", "pagerInputVisibilityChange", "pageTextVisibilityChange", "itemsTextVisibilityChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }], encapsulation: i0.ViewEncapsulation.None });
|
|
3149
3260
|
}
|
|
3150
3261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
|
|
3151
3262
|
type: Component,
|
|
@@ -3438,10 +3549,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3438
3549
|
i18n-columnsReset="kendo.grid.columnsReset|The text shown in the column menu or column chooser for the columns reset button"
|
|
3439
3550
|
columnsReset="Reset"
|
|
3440
3551
|
|
|
3441
|
-
i18n-detailExpand="kendo.grid.detailExpand|The title of the expand icon of detail rows."
|
|
3552
|
+
i18n-detailExpand="kendo.grid.detailExpand|The title of the expand icon of detail rows. Applies also to the expand button text in stacked mode."
|
|
3442
3553
|
detailExpand="Expand Details"
|
|
3443
3554
|
|
|
3444
|
-
i18n-detailCollapse="kendo.grid.detailCollapse|The title of the collapse icon of detail rows."
|
|
3555
|
+
i18n-detailCollapse="kendo.grid.detailCollapse|The title of the collapse icon of detail rows. Applies also to the collapse button text in stacked mode."
|
|
3445
3556
|
detailCollapse="Collapse Details"
|
|
3446
3557
|
|
|
3447
3558
|
i18n-filterDateToday="kendo.grid.filterDateToday|The text of the Today button of the Date filter."
|
|
@@ -3551,6 +3662,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3551
3662
|
|
|
3552
3663
|
i18n-externalEditingCancelText="kendo.grid.externalEditingCancelText|The text of the external editing form Cancel button"
|
|
3553
3664
|
externalEditingCancelText="Cancel"
|
|
3665
|
+
|
|
3666
|
+
i18n-aiAssistantToolbarToolText="kendo.grid.aiAssistantToolbarToolText|The text of the AI Assistant toolbar tool"
|
|
3667
|
+
aiAssistantToolbarToolText="AI Assistant"
|
|
3668
|
+
|
|
3669
|
+
i18n-aiAssistantWindowTitle="kendo.grid.aiAssistantWindowTitle|The text of the AI Assistant Window title"
|
|
3670
|
+
aiAssistantWindowTitle="AI Assistant"
|
|
3671
|
+
|
|
3672
|
+
i18n-aiAssistantApplyButtonText="kendo.grid.aiAssistantApplyButtonText|The text of the AI Assistant Apply button"
|
|
3673
|
+
aiAssistantApplyButtonText="Apply"
|
|
3674
|
+
|
|
3675
|
+
i18n-aiAssistantWindowCloseTitle="kendo.grid.aiAssistantWindowCloseTitle|The title of the AI Assistant Window close button"
|
|
3676
|
+
aiAssistantWindowCloseTitle="Close"
|
|
3677
|
+
|
|
3678
|
+
i18n-aiAssistantWindowMaximizeTitle="kendo.grid.aiAssistantWindowMaximizeTitle|The title of the AI Assistant Window maximize button"
|
|
3679
|
+
aiAssistantWindowMaximizeTitle="Maximize"
|
|
3680
|
+
|
|
3681
|
+
i18n-aiAssistantWindowMinimizeTitle="kendo.grid.aiAssistantWindowMinimizeTitle|The title of the AI Assistant Window minimize button"
|
|
3682
|
+
aiAssistantWindowMinimizeTitle="Minimize"
|
|
3683
|
+
|
|
3684
|
+
i18n-aiAssistantWindowRestoreTitle="kendo.grid.aiAssistantWindowRestoreTitle|The title of the AI Assistant Window restore button"
|
|
3685
|
+
aiAssistantWindowRestoreTitle="Restore"
|
|
3686
|
+
|
|
3687
|
+
i18n-aiAssistantOutputCardTitle="kendo.grid.aiAssistantOutputCardTitle|The title of the AI Assistant Prompt Output Card"
|
|
3688
|
+
aiAssistantOutputCardTitle="Generated with AI"
|
|
3689
|
+
|
|
3690
|
+
i18n-aiAssistantOutputCardBodyContent="kendo.grid.aiAssistantOutputCardBodyContent|The success message dispayed in the AI Assistant Prompt Output Card's body"
|
|
3691
|
+
aiAssistantOutputCardBodyContent="Operation is successful. Data is:"
|
|
3554
3692
|
>
|
|
3555
3693
|
</ng-container>
|
|
3556
3694
|
<kendo-grid-toolbar
|
|
@@ -3636,7 +3774,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3636
3774
|
[attr.aria-rowcount]="ariaRowCount"
|
|
3637
3775
|
[attr.aria-colcount]="ariaColCount">
|
|
3638
3776
|
<ng-container *ngIf="isScrollable">
|
|
3639
|
-
<div *ngIf="!hideHeader"
|
|
3777
|
+
<div *ngIf="!hideHeader && !isStacked"
|
|
3640
3778
|
class="k-grid-header"
|
|
3641
3779
|
[class.k-grid-draggable-header]="groupable || reorderable"
|
|
3642
3780
|
role="presentation"
|
|
@@ -3760,7 +3898,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3760
3898
|
class="k-grid-footer"
|
|
3761
3899
|
[style.padding]="headerPadding">
|
|
3762
3900
|
<div
|
|
3763
|
-
*ngIf="lockedLeafColumns.length"
|
|
3901
|
+
*ngIf="lockedLeafColumns.length && !isStacked"
|
|
3764
3902
|
class="k-grid-footer-locked"
|
|
3765
3903
|
[style.width.px]="lockedWidth">
|
|
3766
3904
|
<table
|
|
@@ -3771,7 +3909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3771
3909
|
[style.width.px]="lockedWidth"
|
|
3772
3910
|
kendoGridTable
|
|
3773
3911
|
[size]="size">
|
|
3774
|
-
<colgroup kendoGridColGroup
|
|
3912
|
+
<colgroup kendoGridColGroup *ngIf="!isStacked"
|
|
3775
3913
|
[columns]="$any(lockedLeafColumns)"
|
|
3776
3914
|
[groups]="group"
|
|
3777
3915
|
[detailTemplate]="detailTemplate">
|
|
@@ -3789,7 +3927,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3789
3927
|
</div>
|
|
3790
3928
|
<div #footer
|
|
3791
3929
|
class="k-grid-footer-wrap" data-scrollable
|
|
3792
|
-
[kendoGridResizableContainer]="lockedLeafColumns.length > 0"
|
|
3930
|
+
[kendoGridResizableContainer]="lockedLeafColumns.length > 0 && !isStacked"
|
|
3793
3931
|
[lockedWidth]="lockedWidth + scrollbarWidth + 3">
|
|
3794
3932
|
<table
|
|
3795
3933
|
role="presentation"
|
|
@@ -3798,7 +3936,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3798
3936
|
kendoGridTable
|
|
3799
3937
|
kendoGridResizableTable
|
|
3800
3938
|
[size]="size">
|
|
3801
|
-
<colgroup kendoGridColGroup
|
|
3939
|
+
<colgroup kendoGridColGroup *ngIf="!isStacked"
|
|
3802
3940
|
[columns]="$any(headerLeafColumns)"
|
|
3803
3941
|
[groups]="isLocked ? [] : group"
|
|
3804
3942
|
[detailTemplate]="detailTemplate">
|
|
@@ -3808,7 +3946,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3808
3946
|
[scrollable]="true"
|
|
3809
3947
|
[groups]="isLocked ? [] : group"
|
|
3810
3948
|
[columns]="$any(headerColumns)"
|
|
3811
|
-
[lockedColumnsCount]="lockedLeafColumns.length"
|
|
3949
|
+
[lockedColumnsCount]="isStacked ? 0 : lockedLeafColumns.length"
|
|
3812
3950
|
[detailTemplate]="detailTemplate"
|
|
3813
3951
|
[totalColumns]="columnsContainer"
|
|
3814
3952
|
[totalColumnsCount]="leafColumns.length">
|
|
@@ -3832,7 +3970,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3832
3970
|
[detailTemplate]="detailTemplate">
|
|
3833
3971
|
</colgroup>
|
|
3834
3972
|
<thead kendoGridHeader
|
|
3835
|
-
*ngIf="!hideHeader"
|
|
3973
|
+
*ngIf="!hideHeader && !isStacked"
|
|
3836
3974
|
class="k-grid-header"
|
|
3837
3975
|
[class.k-grid-draggable-header]="groupable || reorderable"
|
|
3838
3976
|
role="rowgroup"
|
|
@@ -3970,7 +4108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3970
4108
|
|
|
3971
4109
|
<kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
|
|
3972
4110
|
|
|
3973
|
-
<div
|
|
4111
|
+
<div *ngIf="aiAssistantToolbarTool" #windowContainer></div>
|
|
4112
|
+
|
|
4113
|
+
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
|
|
3974
4114
|
`,
|
|
3975
4115
|
standalone: true,
|
|
3976
4116
|
imports: [
|
|
@@ -4053,6 +4193,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4053
4193
|
type: Input
|
|
4054
4194
|
}], isGroupExpanded: [{
|
|
4055
4195
|
type: Input
|
|
4196
|
+
}], dataLayoutMode: [{
|
|
4197
|
+
type: Input
|
|
4056
4198
|
}], filterChange: [{
|
|
4057
4199
|
type: Output
|
|
4058
4200
|
}], pageChange: [{
|
|
@@ -4124,6 +4266,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4124
4266
|
}], sizeMediumClass: [{
|
|
4125
4267
|
type: HostBinding,
|
|
4126
4268
|
args: ['class.k-grid-md']
|
|
4269
|
+
}], stackedClass: [{
|
|
4270
|
+
type: HostBinding,
|
|
4271
|
+
args: ['class.k-grid-stack']
|
|
4127
4272
|
}], lockedClasses: [{
|
|
4128
4273
|
type: HostBinding,
|
|
4129
4274
|
args: ['class.k-grid-lockedcolumns']
|
|
@@ -4172,6 +4317,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4172
4317
|
}], columnMenuTemplates: [{
|
|
4173
4318
|
type: ContentChildren,
|
|
4174
4319
|
args: [ColumnMenuTemplateDirective]
|
|
4320
|
+
}], aiAssistantToolbarTool: [{
|
|
4321
|
+
type: ContentChild,
|
|
4322
|
+
args: [AIAssistantToolbarDirective]
|
|
4175
4323
|
}], lockedHeader: [{
|
|
4176
4324
|
type: ViewChild,
|
|
4177
4325
|
args: ['lockedHeader']
|
|
@@ -4193,6 +4341,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4193
4341
|
}], dialogContainer: [{
|
|
4194
4342
|
type: ViewChild,
|
|
4195
4343
|
args: ['dialogContainer', { read: ViewContainerRef }]
|
|
4344
|
+
}], windowContainer: [{
|
|
4345
|
+
type: ViewChild,
|
|
4346
|
+
args: ['windowContainer', { read: ViewContainerRef }]
|
|
4196
4347
|
}], adaptiveRenderer: [{
|
|
4197
4348
|
type: ViewChild,
|
|
4198
4349
|
args: [AdaptiveRendererComponent]
|