@progress/kendo-angular-grid 20.0.0-develop.5 → 20.0.0-develop.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/grid.component.mjs +3 -0
- package/esm2022/navigation/navigation.service.mjs +1 -1
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/table-body.component.mjs +32 -5
- package/fesm2022/progress-kendo-angular-grid.mjs +38 -8
- package/package.json +21 -21
- package/schematics/ngAdd/index.js +4 -4
|
@@ -2178,6 +2178,9 @@ export class GridComponent {
|
|
|
2178
2178
|
}
|
|
2179
2179
|
attachDomEventHandlers() {
|
|
2180
2180
|
this.cellClickSubscription = this.domEvents.cellClick.subscribe((args) => {
|
|
2181
|
+
if (this.isStacked && !isPresent(args.column)) {
|
|
2182
|
+
return;
|
|
2183
|
+
}
|
|
2181
2184
|
this.cellClick.emit(Object.assign({ sender: this }, args));
|
|
2182
2185
|
});
|
|
2183
2186
|
}
|
|
@@ -907,7 +907,7 @@ export class NavigationService {
|
|
|
907
907
|
tableCellEntered = false;
|
|
908
908
|
stackedCellEntered = false;
|
|
909
909
|
handleStackedTabNavigation(args) {
|
|
910
|
-
if (!isPresent(this.activeCell
|
|
910
|
+
if (!isPresent(this.activeCell?.focusGroup)) {
|
|
911
911
|
return;
|
|
912
912
|
}
|
|
913
913
|
if (this.stackedFocusedCellIndex === -1) {
|
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: '20.0.0-develop.
|
|
13
|
+
publishDate: 1755877975,
|
|
14
|
+
version: '20.0.0-develop.6',
|
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
16
16
|
};
|
|
@@ -321,8 +321,8 @@ export class TableBodyComponent {
|
|
|
321
321
|
if (!selectionEnabled) {
|
|
322
322
|
return;
|
|
323
323
|
}
|
|
324
|
-
const cellComparer = this.isStackedMode ? closest(target,
|
|
325
|
-
const isCellFocused = cellComparer?.classList.contains('k-focus');
|
|
324
|
+
const cellComparer = this.isStackedMode ? closest(target, (el) => hasClasses(el, 'k-grid-stack-cell')) || closest(target, matchesNodeName('td')) : closest(target, matchesNodeName('td'));
|
|
325
|
+
const isCellFocused = cellComparer?.classList.contains('k-focus') || cellComparer === document.activeElement;
|
|
326
326
|
const isShiftOrCtrlPressed = eventArg.shiftKey || eventArg.ctrlKey || eventArg.metaKey;
|
|
327
327
|
if (isCellFocused && !isShiftOrCtrlPressed) {
|
|
328
328
|
eventArg.preventDefault();
|
|
@@ -367,6 +367,26 @@ export class TableBodyComponent {
|
|
|
367
367
|
if (cell) {
|
|
368
368
|
row = cell.parentElement.parentElement;
|
|
369
369
|
}
|
|
370
|
+
else {
|
|
371
|
+
cell = closest(currentTarget, (el) => {
|
|
372
|
+
if (!matchesNodeName('td')(el)) {
|
|
373
|
+
return false;
|
|
374
|
+
}
|
|
375
|
+
const parentRow = el.parentElement;
|
|
376
|
+
if (!parentRow || !matchesNodeName('tr')(parentRow)) {
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
return parentRow.parentElement === element;
|
|
380
|
+
});
|
|
381
|
+
if (cell) {
|
|
382
|
+
row = cell.parentElement;
|
|
383
|
+
body = element;
|
|
384
|
+
gridElement = null;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (!cell) {
|
|
389
|
+
return;
|
|
370
390
|
}
|
|
371
391
|
this.editService.preventCellClose();
|
|
372
392
|
const focusable = (!isCellTarget && target !== cell) && isFocusableWithTabKey(target, false);
|
|
@@ -412,20 +432,27 @@ export class TableBodyComponent {
|
|
|
412
432
|
}
|
|
413
433
|
cellClickArgs(cell, row, eventArg) {
|
|
414
434
|
const cells = this.isStackedMode ? row.querySelectorAll('.k-grid-stack-cell') : row.cells;
|
|
415
|
-
|
|
435
|
+
let index = columnCellIndex(cell, cells, this.isStackedMode);
|
|
436
|
+
// In stacked mode, clicks on the outer cell should not trigger Grid's cellClick event
|
|
437
|
+
let isOuterCellClicked = false;
|
|
438
|
+
if (this.isStackedMode && !isPresent(index)) {
|
|
439
|
+
const cells = row.cells;
|
|
440
|
+
index = columnCellIndex(cell, cells, this.isStackedMode);
|
|
441
|
+
isOuterCellClicked = true;
|
|
442
|
+
}
|
|
416
443
|
if (!isPresent(index)) {
|
|
417
444
|
return;
|
|
418
445
|
}
|
|
419
446
|
const column = this.columns.toArray()[index];
|
|
420
447
|
const columnIndex = (this.isStackedMode ? 0 : this.lockedColumnsCount) + index;
|
|
421
|
-
let rowIndex = (this.isStackedMode ? row.parentElement.parentElement : row).getAttribute('data-kendo-grid-item-index');
|
|
448
|
+
let rowIndex = (this.isStackedMode && !isOuterCellClicked ? row.parentElement.parentElement : row).getAttribute('data-kendo-grid-item-index');
|
|
422
449
|
rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
|
|
423
450
|
const dataItem = rowIndex === -1 ? this.editService.newDataItem : this.rowsToRender.find(item => +item.index === rowIndex && item.type === 'data')?.data;
|
|
424
451
|
const isEditedColumn = this.editService.isEditedColumn(rowIndex, column);
|
|
425
452
|
const isEditedRow = this.editService.isEdited(rowIndex);
|
|
426
453
|
const type = eventArg.type === 'keydown' ? 'click' : eventArg.type;
|
|
427
454
|
return {
|
|
428
|
-
column: column,
|
|
455
|
+
column: isOuterCellClicked ? null : column,
|
|
429
456
|
columnIndex: columnIndex,
|
|
430
457
|
dataItem: dataItem,
|
|
431
458
|
isEditedColumn: isEditedColumn,
|
|
@@ -4251,7 +4251,7 @@ class NavigationService {
|
|
|
4251
4251
|
tableCellEntered = false;
|
|
4252
4252
|
stackedCellEntered = false;
|
|
4253
4253
|
handleStackedTabNavigation(args) {
|
|
4254
|
-
if (!isPresent$1(this.activeCell
|
|
4254
|
+
if (!isPresent$1(this.activeCell?.focusGroup)) {
|
|
4255
4255
|
return;
|
|
4256
4256
|
}
|
|
4257
4257
|
if (this.stackedFocusedCellIndex === -1) {
|
|
@@ -20483,8 +20483,8 @@ class TableBodyComponent {
|
|
|
20483
20483
|
if (!selectionEnabled) {
|
|
20484
20484
|
return;
|
|
20485
20485
|
}
|
|
20486
|
-
const cellComparer = this.isStackedMode ? closest(target,
|
|
20487
|
-
const isCellFocused = cellComparer?.classList.contains('k-focus');
|
|
20486
|
+
const cellComparer = this.isStackedMode ? closest(target, (el) => hasClasses(el, 'k-grid-stack-cell')) || closest(target, matchesNodeName('td')) : closest(target, matchesNodeName('td'));
|
|
20487
|
+
const isCellFocused = cellComparer?.classList.contains('k-focus') || cellComparer === document.activeElement;
|
|
20488
20488
|
const isShiftOrCtrlPressed = eventArg.shiftKey || eventArg.ctrlKey || eventArg.metaKey;
|
|
20489
20489
|
if (isCellFocused && !isShiftOrCtrlPressed) {
|
|
20490
20490
|
eventArg.preventDefault();
|
|
@@ -20529,6 +20529,26 @@ class TableBodyComponent {
|
|
|
20529
20529
|
if (cell) {
|
|
20530
20530
|
row = cell.parentElement.parentElement;
|
|
20531
20531
|
}
|
|
20532
|
+
else {
|
|
20533
|
+
cell = closest(currentTarget, (el) => {
|
|
20534
|
+
if (!matchesNodeName('td')(el)) {
|
|
20535
|
+
return false;
|
|
20536
|
+
}
|
|
20537
|
+
const parentRow = el.parentElement;
|
|
20538
|
+
if (!parentRow || !matchesNodeName('tr')(parentRow)) {
|
|
20539
|
+
return false;
|
|
20540
|
+
}
|
|
20541
|
+
return parentRow.parentElement === element;
|
|
20542
|
+
});
|
|
20543
|
+
if (cell) {
|
|
20544
|
+
row = cell.parentElement;
|
|
20545
|
+
body = element;
|
|
20546
|
+
gridElement = null;
|
|
20547
|
+
}
|
|
20548
|
+
}
|
|
20549
|
+
}
|
|
20550
|
+
if (!cell) {
|
|
20551
|
+
return;
|
|
20532
20552
|
}
|
|
20533
20553
|
this.editService.preventCellClose();
|
|
20534
20554
|
const focusable = (!isCellTarget && target !== cell) && isFocusableWithTabKey(target, false);
|
|
@@ -20574,20 +20594,27 @@ class TableBodyComponent {
|
|
|
20574
20594
|
}
|
|
20575
20595
|
cellClickArgs(cell, row, eventArg) {
|
|
20576
20596
|
const cells = this.isStackedMode ? row.querySelectorAll('.k-grid-stack-cell') : row.cells;
|
|
20577
|
-
|
|
20597
|
+
let index = columnCellIndex(cell, cells, this.isStackedMode);
|
|
20598
|
+
// In stacked mode, clicks on the outer cell should not trigger Grid's cellClick event
|
|
20599
|
+
let isOuterCellClicked = false;
|
|
20600
|
+
if (this.isStackedMode && !isPresent(index)) {
|
|
20601
|
+
const cells = row.cells;
|
|
20602
|
+
index = columnCellIndex(cell, cells, this.isStackedMode);
|
|
20603
|
+
isOuterCellClicked = true;
|
|
20604
|
+
}
|
|
20578
20605
|
if (!isPresent(index)) {
|
|
20579
20606
|
return;
|
|
20580
20607
|
}
|
|
20581
20608
|
const column = this.columns.toArray()[index];
|
|
20582
20609
|
const columnIndex = (this.isStackedMode ? 0 : this.lockedColumnsCount) + index;
|
|
20583
|
-
let rowIndex = (this.isStackedMode ? row.parentElement.parentElement : row).getAttribute('data-kendo-grid-item-index');
|
|
20610
|
+
let rowIndex = (this.isStackedMode && !isOuterCellClicked ? row.parentElement.parentElement : row).getAttribute('data-kendo-grid-item-index');
|
|
20584
20611
|
rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
|
|
20585
20612
|
const dataItem = rowIndex === -1 ? this.editService.newDataItem : this.rowsToRender.find(item => +item.index === rowIndex && item.type === 'data')?.data;
|
|
20586
20613
|
const isEditedColumn = this.editService.isEditedColumn(rowIndex, column);
|
|
20587
20614
|
const isEditedRow = this.editService.isEdited(rowIndex);
|
|
20588
20615
|
const type = eventArg.type === 'keydown' ? 'click' : eventArg.type;
|
|
20589
20616
|
return {
|
|
20590
|
-
column: column,
|
|
20617
|
+
column: isOuterCellClicked ? null : column,
|
|
20591
20618
|
columnIndex: columnIndex,
|
|
20592
20619
|
dataItem: dataItem,
|
|
20593
20620
|
isEditedColumn: isEditedColumn,
|
|
@@ -22057,8 +22084,8 @@ const packageMetadata = {
|
|
|
22057
22084
|
productName: 'Kendo UI for Angular',
|
|
22058
22085
|
productCode: 'KENDOUIANGULAR',
|
|
22059
22086
|
productCodes: ['KENDOUIANGULAR'],
|
|
22060
|
-
publishDate:
|
|
22061
|
-
version: '20.0.0-develop.
|
|
22087
|
+
publishDate: 1755877975,
|
|
22088
|
+
version: '20.0.0-develop.6',
|
|
22062
22089
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
22063
22090
|
};
|
|
22064
22091
|
|
|
@@ -31557,6 +31584,9 @@ class GridComponent {
|
|
|
31557
31584
|
}
|
|
31558
31585
|
attachDomEventHandlers() {
|
|
31559
31586
|
this.cellClickSubscription = this.domEvents.cellClick.subscribe((args) => {
|
|
31587
|
+
if (this.isStacked && !isPresent(args.column)) {
|
|
31588
|
+
return;
|
|
31589
|
+
}
|
|
31560
31590
|
this.cellClick.emit(Object.assign({ sender: this }, args));
|
|
31561
31591
|
});
|
|
31562
31592
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-grid",
|
|
3
|
-
"version": "20.0.0-develop.
|
|
3
|
+
"version": "20.0.0-develop.6",
|
|
4
4
|
"description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"package": {
|
|
42
42
|
"productName": "Kendo UI for Angular",
|
|
43
43
|
"productCode": "KENDOUIANGULAR",
|
|
44
|
-
"publishDate":
|
|
44
|
+
"publishDate": 1755877975,
|
|
45
45
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
46
46
|
}
|
|
47
47
|
},
|
|
@@ -54,29 +54,29 @@
|
|
|
54
54
|
"@progress/kendo-data-query": "^1.0.0",
|
|
55
55
|
"@progress/kendo-drawing": "^1.21.0",
|
|
56
56
|
"@progress/kendo-licensing": "^1.7.0",
|
|
57
|
-
"@progress/kendo-angular-buttons": "20.0.0-develop.
|
|
58
|
-
"@progress/kendo-angular-common": "20.0.0-develop.
|
|
59
|
-
"@progress/kendo-angular-dateinputs": "20.0.0-develop.
|
|
60
|
-
"@progress/kendo-angular-layout": "20.0.0-develop.
|
|
61
|
-
"@progress/kendo-angular-navigation": "20.0.0-develop.
|
|
62
|
-
"@progress/kendo-angular-dropdowns": "20.0.0-develop.
|
|
63
|
-
"@progress/kendo-angular-excel-export": "20.0.0-develop.
|
|
64
|
-
"@progress/kendo-angular-icons": "20.0.0-develop.
|
|
65
|
-
"@progress/kendo-angular-inputs": "20.0.0-develop.
|
|
66
|
-
"@progress/kendo-angular-conversational-ui": "20.0.0-develop.
|
|
67
|
-
"@progress/kendo-angular-intl": "20.0.0-develop.
|
|
68
|
-
"@progress/kendo-angular-l10n": "20.0.0-develop.
|
|
69
|
-
"@progress/kendo-angular-label": "20.0.0-develop.
|
|
70
|
-
"@progress/kendo-angular-pager": "20.0.0-develop.
|
|
71
|
-
"@progress/kendo-angular-pdf-export": "20.0.0-develop.
|
|
72
|
-
"@progress/kendo-angular-popup": "20.0.0-develop.
|
|
73
|
-
"@progress/kendo-angular-toolbar": "20.0.0-develop.
|
|
74
|
-
"@progress/kendo-angular-utils": "20.0.0-develop.
|
|
57
|
+
"@progress/kendo-angular-buttons": "20.0.0-develop.6",
|
|
58
|
+
"@progress/kendo-angular-common": "20.0.0-develop.6",
|
|
59
|
+
"@progress/kendo-angular-dateinputs": "20.0.0-develop.6",
|
|
60
|
+
"@progress/kendo-angular-layout": "20.0.0-develop.6",
|
|
61
|
+
"@progress/kendo-angular-navigation": "20.0.0-develop.6",
|
|
62
|
+
"@progress/kendo-angular-dropdowns": "20.0.0-develop.6",
|
|
63
|
+
"@progress/kendo-angular-excel-export": "20.0.0-develop.6",
|
|
64
|
+
"@progress/kendo-angular-icons": "20.0.0-develop.6",
|
|
65
|
+
"@progress/kendo-angular-inputs": "20.0.0-develop.6",
|
|
66
|
+
"@progress/kendo-angular-conversational-ui": "20.0.0-develop.6",
|
|
67
|
+
"@progress/kendo-angular-intl": "20.0.0-develop.6",
|
|
68
|
+
"@progress/kendo-angular-l10n": "20.0.0-develop.6",
|
|
69
|
+
"@progress/kendo-angular-label": "20.0.0-develop.6",
|
|
70
|
+
"@progress/kendo-angular-pager": "20.0.0-develop.6",
|
|
71
|
+
"@progress/kendo-angular-pdf-export": "20.0.0-develop.6",
|
|
72
|
+
"@progress/kendo-angular-popup": "20.0.0-develop.6",
|
|
73
|
+
"@progress/kendo-angular-toolbar": "20.0.0-develop.6",
|
|
74
|
+
"@progress/kendo-angular-utils": "20.0.0-develop.6",
|
|
75
75
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
78
|
"tslib": "^2.3.1",
|
|
79
|
-
"@progress/kendo-angular-schematics": "20.0.0-develop.
|
|
79
|
+
"@progress/kendo-angular-schematics": "20.0.0-develop.6",
|
|
80
80
|
"@progress/kendo-common": "^1.0.1",
|
|
81
81
|
"@progress/kendo-file-saver": "^1.0.0"
|
|
82
82
|
},
|
|
@@ -4,14 +4,14 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
|
4
4
|
function default_1(options) {
|
|
5
5
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
|
|
6
6
|
// peer deps of the dropdowns
|
|
7
|
-
'@progress/kendo-angular-treeview': '20.0.0-develop.
|
|
8
|
-
'@progress/kendo-angular-navigation': '20.0.0-develop.
|
|
7
|
+
'@progress/kendo-angular-treeview': '20.0.0-develop.6',
|
|
8
|
+
'@progress/kendo-angular-navigation': '20.0.0-develop.6',
|
|
9
9
|
// peer dependency of kendo-angular-inputs
|
|
10
|
-
'@progress/kendo-angular-dialog': '20.0.0-develop.
|
|
10
|
+
'@progress/kendo-angular-dialog': '20.0.0-develop.6',
|
|
11
11
|
// peer dependency of kendo-angular-icons
|
|
12
12
|
'@progress/kendo-svg-icons': '^4.0.0',
|
|
13
13
|
// peer dependency of kendo-angular-layout
|
|
14
|
-
'@progress/kendo-angular-progressbar': '20.0.0-develop.
|
|
14
|
+
'@progress/kendo-angular-progressbar': '20.0.0-develop.6'
|
|
15
15
|
} });
|
|
16
16
|
return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
|
|
17
17
|
}
|