@progress/kendo-angular-grid 19.0.0-develop.5 → 19.0.0-develop.7

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.
@@ -9,11 +9,12 @@ import * as i0 from "@angular/core";
9
9
  * @hidden
10
10
  */
11
11
  export declare class DragHintService {
12
- private santizer;
12
+ private sanitizer;
13
13
  private iconsService;
14
14
  private dom;
15
15
  private cancelIcon;
16
- constructor(santizer: DomSanitizer, iconsService: IconsService);
16
+ constructor(sanitizer: DomSanitizer, iconsService: IconsService);
17
+ ngOnDestroy(): void;
17
18
  create(title: string): void;
18
19
  attach(): Function;
19
20
  remove(): void;
@@ -65,21 +65,24 @@ const fontIconsMarkup = (safeTitle) => `
65
65
  * @hidden
66
66
  */
67
67
  export class DragHintService {
68
- santizer;
68
+ sanitizer;
69
69
  iconsService;
70
70
  dom;
71
71
  cancelIcon = cancelIcon;
72
- constructor(santizer, iconsService) {
73
- this.santizer = santizer;
72
+ constructor(sanitizer, iconsService) {
73
+ this.sanitizer = sanitizer;
74
74
  this.iconsService = iconsService;
75
75
  }
76
+ ngOnDestroy() {
77
+ this.remove();
78
+ }
76
79
  create(title) {
77
80
  if (!isDocumentAvailable()) {
78
81
  return;
79
82
  }
80
83
  this.dom = document.createElement("div");
81
84
  decorate(this.dom);
82
- const safeTitle = this.santizer.sanitize(SecurityContext.HTML, title);
85
+ const safeTitle = this.sanitizer.sanitize(SecurityContext.HTML, title);
83
86
  const innerHtml = this.isSVG ?
84
87
  svgIconsMarkup(this.cancelIcon.viewBox, this.cancelIcon.content, safeTitle) :
85
88
  fontIconsMarkup(safeTitle);
@@ -1250,6 +1250,12 @@ export class GridComponent {
1250
1250
  if (this.selectionSubscription) {
1251
1251
  this.selectionSubscription.unsubscribe();
1252
1252
  }
1253
+ if (this.rowReorderSubscription) {
1254
+ this.rowReorderSubscription.unsubscribe();
1255
+ }
1256
+ if (this.columnReorderSubscription) {
1257
+ this.columnReorderSubscription.unsubscribe();
1258
+ }
1253
1259
  if (this.stateChangeSubscription) {
1254
1260
  this.stateChangeSubscription.unsubscribe();
1255
1261
  }
@@ -625,7 +625,7 @@ export class NavigationService {
625
625
  if (!this.onCellKeydown(args)) {
626
626
  return;
627
627
  }
628
- const confirm = !args.defaultPrevented && args.keyCode === Keys.Enter && isTextInput(args.srcElement);
628
+ const confirm = !args.defaultPrevented && args.keyCode === Keys.Enter && isTextInput(args.target);
629
629
  if (args.keyCode === Keys.Escape || args.keyCode === Keys.F2 || confirm) {
630
630
  this.leaveCell();
631
631
  this.cursor.reset();
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1745841479,
14
- version: '19.0.0-develop.5',
13
+ publishDate: 1746022597,
14
+ version: '19.0.0-develop.7',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -369,6 +369,15 @@ export class TableBodyComponent {
369
369
  clickHandler(eventArg) {
370
370
  const element = this.element.nativeElement;
371
371
  const target = this.eventTarget(eventArg);
372
+ const selectionEnabled = this.selectable && this.selectable.enabled !== false;
373
+ if (eventArg.keyCode === Keys.Space) {
374
+ if (!selectionEnabled) {
375
+ return;
376
+ }
377
+ if (!this.editService.isEditing()) {
378
+ eventArg.preventDefault();
379
+ }
380
+ }
372
381
  let cell, row, body, gridElement;
373
382
  let currentTarget = target;
374
383
  do {
@@ -386,7 +395,6 @@ export class TableBodyComponent {
386
395
  if (!focusable && !matchesNodeName('label')(target) && !hasClasses(target, IGNORE_TARGET_CLASSSES) &&
387
396
  !closestInScope(target, matchesClasses(IGNORE_CONTAINER_CLASSES), cell)) {
388
397
  const args = this.cellClickArgs(cell, row, eventArg);
389
- const selectionEnabled = this.selectable && this.selectable.enabled !== false;
390
398
  if (selectionEnabled && !this.isRowSelectable({ index: args.rowIndex, dataItem: args.dataItem })) {
391
399
  return;
392
400
  }
@@ -417,7 +425,7 @@ export class TableBodyComponent {
417
425
  }));
418
426
  }
419
427
  cellKeydownHandler(args) {
420
- if (args.keyCode === Keys.Enter) {
428
+ if (args.keyCode === Keys.Enter || args.keyCode === Keys.Space) {
421
429
  this.clickHandler(args);
422
430
  }
423
431
  }
@@ -24,6 +24,10 @@ export class RowReorderService {
24
24
  constructor(renderer) {
25
25
  this.renderer = renderer;
26
26
  }
27
+ ngOnDestroy() {
28
+ this.destroyDropIndicator();
29
+ this.destroyHintElement();
30
+ }
27
31
  press(ev) {
28
32
  this.dragTarget = ev.dragTarget;
29
33
  this.offsetY = ev.dragEvent.offsetY;
@@ -55,12 +59,14 @@ export class RowReorderService {
55
59
  }
56
60
  dragEnd() {
57
61
  this.destroyDropIndicator();
62
+ this.destroyHintElement();
58
63
  this.dragTarget = null;
59
64
  this.dropTarget = null;
60
65
  this.hintElement = null;
61
66
  }
62
67
  drop(ev) {
63
68
  this.destroyDropIndicator();
69
+ this.destroyHintElement();
64
70
  const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, ev.dragData);
65
71
  this.rowReorder.emit(rowReorderArgs);
66
72
  }
@@ -142,6 +148,15 @@ export class RowReorderService {
142
148
  this.dropIndicator = null;
143
149
  }
144
150
  }
151
+ destroyHintElement() {
152
+ if (!isDocumentAvailable()) {
153
+ return;
154
+ }
155
+ if (this.hintElement?.parentElement) {
156
+ this.hintElement.parentElement.removeChild(this.hintElement);
157
+ this.hintElement = null;
158
+ }
159
+ }
145
160
  decorateHint() {
146
161
  hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
147
162
  Object.keys(hintStyles)
@@ -225,21 +225,24 @@ const fontIconsMarkup = (safeTitle) => `
225
225
  * @hidden
226
226
  */
227
227
  class DragHintService {
228
- santizer;
228
+ sanitizer;
229
229
  iconsService;
230
230
  dom;
231
231
  cancelIcon = cancelIcon;
232
- constructor(santizer, iconsService) {
233
- this.santizer = santizer;
232
+ constructor(sanitizer, iconsService) {
233
+ this.sanitizer = sanitizer;
234
234
  this.iconsService = iconsService;
235
235
  }
236
+ ngOnDestroy() {
237
+ this.remove();
238
+ }
236
239
  create(title) {
237
240
  if (!isDocumentAvailable()) {
238
241
  return;
239
242
  }
240
243
  this.dom = document.createElement("div");
241
244
  decorate(this.dom);
242
- const safeTitle = this.santizer.sanitize(SecurityContext.HTML, title);
245
+ const safeTitle = this.sanitizer.sanitize(SecurityContext.HTML, title);
243
246
  const innerHtml = this.isSVG ?
244
247
  svgIconsMarkup(this.cancelIcon.viewBox, this.cancelIcon.content, safeTitle) :
245
248
  fontIconsMarkup(safeTitle);
@@ -3921,7 +3924,7 @@ class NavigationService {
3921
3924
  if (!this.onCellKeydown(args)) {
3922
3925
  return;
3923
3926
  }
3924
- const confirm = !args.defaultPrevented && args.keyCode === Keys.Enter && isTextInput(args.srcElement);
3927
+ const confirm = !args.defaultPrevented && args.keyCode === Keys.Enter && isTextInput(args.target);
3925
3928
  if (args.keyCode === Keys.Escape || args.keyCode === Keys.F2 || confirm) {
3926
3929
  this.leaveCell();
3927
3930
  this.cursor.reset();
@@ -18638,6 +18641,15 @@ class TableBodyComponent {
18638
18641
  clickHandler(eventArg) {
18639
18642
  const element = this.element.nativeElement;
18640
18643
  const target = this.eventTarget(eventArg);
18644
+ const selectionEnabled = this.selectable && this.selectable.enabled !== false;
18645
+ if (eventArg.keyCode === Keys.Space) {
18646
+ if (!selectionEnabled) {
18647
+ return;
18648
+ }
18649
+ if (!this.editService.isEditing()) {
18650
+ eventArg.preventDefault();
18651
+ }
18652
+ }
18641
18653
  let cell, row, body, gridElement;
18642
18654
  let currentTarget = target;
18643
18655
  do {
@@ -18655,7 +18667,6 @@ class TableBodyComponent {
18655
18667
  if (!focusable && !matchesNodeName('label')(target) && !hasClasses(target, IGNORE_TARGET_CLASSSES) &&
18656
18668
  !closestInScope(target, matchesClasses(IGNORE_CONTAINER_CLASSES), cell)) {
18657
18669
  const args = this.cellClickArgs(cell, row, eventArg);
18658
- const selectionEnabled = this.selectable && this.selectable.enabled !== false;
18659
18670
  if (selectionEnabled && !this.isRowSelectable({ index: args.rowIndex, dataItem: args.dataItem })) {
18660
18671
  return;
18661
18672
  }
@@ -18686,7 +18697,7 @@ class TableBodyComponent {
18686
18697
  }));
18687
18698
  }
18688
18699
  cellKeydownHandler(args) {
18689
- if (args.keyCode === Keys.Enter) {
18700
+ if (args.keyCode === Keys.Enter || args.keyCode === Keys.Space) {
18690
18701
  this.clickHandler(args);
18691
18702
  }
18692
18703
  }
@@ -20001,8 +20012,8 @@ const packageMetadata = {
20001
20012
  productName: 'Kendo UI for Angular',
20002
20013
  productCode: 'KENDOUIANGULAR',
20003
20014
  productCodes: ['KENDOUIANGULAR'],
20004
- publishDate: 1745841479,
20005
- version: '19.0.0-develop.5',
20015
+ publishDate: 1746022597,
20016
+ version: '19.0.0-develop.7',
20006
20017
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
20007
20018
  };
20008
20019
 
@@ -21013,6 +21024,10 @@ class RowReorderService {
21013
21024
  constructor(renderer) {
21014
21025
  this.renderer = renderer;
21015
21026
  }
21027
+ ngOnDestroy() {
21028
+ this.destroyDropIndicator();
21029
+ this.destroyHintElement();
21030
+ }
21016
21031
  press(ev) {
21017
21032
  this.dragTarget = ev.dragTarget;
21018
21033
  this.offsetY = ev.dragEvent.offsetY;
@@ -21044,12 +21059,14 @@ class RowReorderService {
21044
21059
  }
21045
21060
  dragEnd() {
21046
21061
  this.destroyDropIndicator();
21062
+ this.destroyHintElement();
21047
21063
  this.dragTarget = null;
21048
21064
  this.dropTarget = null;
21049
21065
  this.hintElement = null;
21050
21066
  }
21051
21067
  drop(ev) {
21052
21068
  this.destroyDropIndicator();
21069
+ this.destroyHintElement();
21053
21070
  const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, ev.dragData);
21054
21071
  this.rowReorder.emit(rowReorderArgs);
21055
21072
  }
@@ -21131,6 +21148,15 @@ class RowReorderService {
21131
21148
  this.dropIndicator = null;
21132
21149
  }
21133
21150
  }
21151
+ destroyHintElement() {
21152
+ if (!isDocumentAvailable()) {
21153
+ return;
21154
+ }
21155
+ if (this.hintElement?.parentElement) {
21156
+ this.hintElement.parentElement.removeChild(this.hintElement);
21157
+ this.hintElement = null;
21158
+ }
21159
+ }
21134
21160
  decorateHint() {
21135
21161
  hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
21136
21162
  Object.keys(hintStyles)
@@ -24907,6 +24933,12 @@ class GridComponent {
24907
24933
  if (this.selectionSubscription) {
24908
24934
  this.selectionSubscription.unsubscribe();
24909
24935
  }
24936
+ if (this.rowReorderSubscription) {
24937
+ this.rowReorderSubscription.unsubscribe();
24938
+ }
24939
+ if (this.columnReorderSubscription) {
24940
+ this.columnReorderSubscription.unsubscribe();
24941
+ }
24910
24942
  if (this.stateChangeSubscription) {
24911
24943
  this.stateChangeSubscription.unsubscribe();
24912
24944
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "19.0.0-develop.5",
3
+ "version": "19.0.0-develop.7",
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",
@@ -26,7 +26,7 @@
26
26
  "package": {
27
27
  "productName": "Kendo UI for Angular",
28
28
  "productCode": "KENDOUIANGULAR",
29
- "publishDate": 1745841479,
29
+ "publishDate": 1746022597,
30
30
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
31
31
  }
32
32
  },
@@ -39,28 +39,28 @@
39
39
  "@progress/kendo-data-query": "^1.0.0",
40
40
  "@progress/kendo-drawing": "^1.21.0",
41
41
  "@progress/kendo-licensing": "^1.5.0",
42
- "@progress/kendo-angular-buttons": "19.0.0-develop.5",
43
- "@progress/kendo-angular-common": "19.0.0-develop.5",
44
- "@progress/kendo-angular-dateinputs": "19.0.0-develop.5",
45
- "@progress/kendo-angular-layout": "19.0.0-develop.5",
46
- "@progress/kendo-angular-dropdowns": "19.0.0-develop.5",
47
- "@progress/kendo-angular-excel-export": "19.0.0-develop.5",
48
- "@progress/kendo-angular-icons": "19.0.0-develop.5",
49
- "@progress/kendo-angular-inputs": "19.0.0-develop.5",
50
- "@progress/kendo-angular-indicators": "19.0.0-develop.5",
51
- "@progress/kendo-angular-intl": "19.0.0-develop.5",
52
- "@progress/kendo-angular-l10n": "19.0.0-develop.5",
53
- "@progress/kendo-angular-label": "19.0.0-develop.5",
54
- "@progress/kendo-angular-pager": "19.0.0-develop.5",
55
- "@progress/kendo-angular-pdf-export": "19.0.0-develop.5",
56
- "@progress/kendo-angular-popup": "19.0.0-develop.5",
57
- "@progress/kendo-angular-toolbar": "19.0.0-develop.5",
58
- "@progress/kendo-angular-utils": "19.0.0-develop.5",
42
+ "@progress/kendo-angular-buttons": "19.0.0-develop.7",
43
+ "@progress/kendo-angular-common": "19.0.0-develop.7",
44
+ "@progress/kendo-angular-dateinputs": "19.0.0-develop.7",
45
+ "@progress/kendo-angular-layout": "19.0.0-develop.7",
46
+ "@progress/kendo-angular-dropdowns": "19.0.0-develop.7",
47
+ "@progress/kendo-angular-excel-export": "19.0.0-develop.7",
48
+ "@progress/kendo-angular-icons": "19.0.0-develop.7",
49
+ "@progress/kendo-angular-inputs": "19.0.0-develop.7",
50
+ "@progress/kendo-angular-indicators": "19.0.0-develop.7",
51
+ "@progress/kendo-angular-intl": "19.0.0-develop.7",
52
+ "@progress/kendo-angular-l10n": "19.0.0-develop.7",
53
+ "@progress/kendo-angular-label": "19.0.0-develop.7",
54
+ "@progress/kendo-angular-pager": "19.0.0-develop.7",
55
+ "@progress/kendo-angular-pdf-export": "19.0.0-develop.7",
56
+ "@progress/kendo-angular-popup": "19.0.0-develop.7",
57
+ "@progress/kendo-angular-toolbar": "19.0.0-develop.7",
58
+ "@progress/kendo-angular-utils": "19.0.0-develop.7",
59
59
  "rxjs": "^6.5.3 || ^7.0.0"
60
60
  },
61
61
  "dependencies": {
62
62
  "tslib": "^2.3.1",
63
- "@progress/kendo-angular-schematics": "19.0.0-develop.5",
63
+ "@progress/kendo-angular-schematics": "19.0.0-develop.7",
64
64
  "@progress/kendo-common": "^1.0.1",
65
65
  "@progress/kendo-file-saver": "^1.0.0"
66
66
  },
@@ -28,6 +28,7 @@ export declare class RowReorderService {
28
28
  private offsetY;
29
29
  rowReorder: EventEmitter<RowReorderEvent>;
30
30
  constructor(renderer: Renderer2);
31
+ ngOnDestroy(): void;
31
32
  press(ev: DragTargetPressEvent): void;
32
33
  dragStart(): void;
33
34
  drag(ev: DragTargetDragEvent): void;
@@ -44,6 +45,7 @@ export declare class RowReorderService {
44
45
  private getDragRowPerElement;
45
46
  private createDropIndicator;
46
47
  private destroyDropIndicator;
48
+ private destroyHintElement;
47
49
  private decorateHint;
48
50
  private positionDropIndicator;
49
51
  private calculateIndexToAdd;
@@ -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': '19.0.0-develop.5',
8
- '@progress/kendo-angular-navigation': '19.0.0-develop.5',
7
+ '@progress/kendo-angular-treeview': '19.0.0-develop.7',
8
+ '@progress/kendo-angular-navigation': '19.0.0-develop.7',
9
9
  // peer dependency of kendo-angular-inputs
10
- '@progress/kendo-angular-dialog': '19.0.0-develop.5',
10
+ '@progress/kendo-angular-dialog': '19.0.0-develop.7',
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': '19.0.0-develop.5'
14
+ '@progress/kendo-angular-progressbar': '19.0.0-develop.7'
15
15
  } });
16
16
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
17
17
  }