@progress/kendo-angular-grid 15.0.2-develop.7 → 15.0.2-develop.8

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.
@@ -22,6 +22,7 @@ export declare class ContextService {
22
22
  grid: GridComponent;
23
23
  topToolbarNavigation: GridToolbarNavigationService;
24
24
  bottomToolbarNavigation: GridToolbarNavigationService;
25
+ navigable: boolean;
25
26
  constructor(renderer: Renderer2, localization: LocalizationService);
26
27
  static ɵfac: i0.ɵɵFactoryDeclaration<ContextService, never>;
27
28
  static ɵprov: i0.ɵɵInjectableDeclaration<ContextService>;
@@ -5,7 +5,7 @@
5
5
  import { Input, Directive } from '@angular/core';
6
6
  import { GridComponent } from '../grid.component';
7
7
  import { LocalEditService } from './local-edit.service';
8
- import { Observable } from 'rxjs';
8
+ import { Subscription, Observable } from 'rxjs';
9
9
  import { LocalDataChangesService } from '../editing/local-data-changes.service';
10
10
  import { take } from 'rxjs/operators';
11
11
  import * as i0 from "@angular/core";
@@ -18,6 +18,7 @@ export class EditingDirectiveBase {
18
18
  constructor(grid, localDataChangesService) {
19
19
  this.grid = grid;
20
20
  this.localDataChangesService = localDataChangesService;
21
+ this.subscriptions = new Subscription();
21
22
  this.defaultEditService = this.createDefaultService();
22
23
  }
23
24
  // Consider adding support for the dependency injection of the service to allow for specifying a generic service without code.
@@ -35,7 +36,7 @@ export class EditingDirectiveBase {
35
36
  * @hidden
36
37
  */
37
38
  ngOnInit() {
38
- this.subscriptions = this.grid.add.subscribe(this.addHandler.bind(this));
39
+ this.subscriptions.add(this.grid.add.subscribe(this.addHandler.bind(this)));
39
40
  this.subscriptions.add(this.grid.remove.subscribe(this.removeHandler.bind(this)));
40
41
  this.subscriptions.add(this.grid.cancel.subscribe(this.cancelHandler.bind(this)));
41
42
  this.subscriptions.add(this.grid.save.subscribe(this.saveHandler.bind(this)));
@@ -618,8 +618,12 @@ export class GridComponent {
618
618
  set navigable(value) {
619
619
  if (typeof value === 'boolean') {
620
620
  this._navigable = value ? ['table', 'pager', 'toolbar'] : [];
621
+ this.ctx.navigable = value;
621
622
  return;
622
623
  }
624
+ else {
625
+ this.ctx.navigable = value.includes('table');
626
+ }
623
627
  this._navigable = value;
624
628
  }
625
629
  get navigable() {
@@ -5,9 +5,9 @@
5
5
  import { Directive, ElementRef, Inject, Input, Optional, Renderer2, SkipSelf } from '@angular/core';
6
6
  import { DefaultFocusableElement } from './default-focusable-element';
7
7
  import { CELL_CONTEXT } from '../rendering/common/cell-context';
8
- import { NavigationService } from './navigation.service';
8
+ import { ContextService } from '../common/provider.service';
9
9
  import * as i0 from "@angular/core";
10
- import * as i1 from "./navigation.service";
10
+ import * as i1 from "../common/provider.service";
11
11
  /**
12
12
  * A directive that controls the way focusable elements receive
13
13
  * [focus in a navigable Grid]({% slug keyboard_navigation_grid %}).
@@ -26,11 +26,11 @@ import * as i1 from "./navigation.service";
26
26
  * ```
27
27
  */
28
28
  export class FocusableDirective {
29
- constructor(cellContext, hostElement, renderer, navigationService) {
29
+ constructor(cellContext, hostElement, renderer, ctx) {
30
30
  this.cellContext = cellContext;
31
31
  this.hostElement = hostElement;
32
32
  this.renderer = renderer;
33
- this.navigationService = navigationService;
33
+ this.ctx = ctx;
34
34
  this.active = true;
35
35
  this._enabled = true;
36
36
  if (this.cellContext) {
@@ -61,7 +61,7 @@ export class FocusableDirective {
61
61
  return this._enabled;
62
62
  }
63
63
  ngAfterViewInit() {
64
- if (!this.element && this.navigationService.enabled) {
64
+ if (!this.element && this.ctx.navigable) {
65
65
  this.element = new DefaultFocusableElement(this.hostElement, this.renderer);
66
66
  }
67
67
  if (this.group && this.element) {
@@ -115,7 +115,7 @@ export class FocusableDirective {
115
115
  this.element = element;
116
116
  }
117
117
  }
118
- FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, deps: [{ token: CELL_CONTEXT, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NavigationService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
118
+ FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, deps: [{ token: CELL_CONTEXT, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Directive });
119
119
  FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: { enabled: ["kendoGridFocusable", "enabled"] }, ngImport: i0 });
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, decorators: [{
121
121
  type: Directive,
@@ -135,9 +135,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
135
135
  args: [CELL_CONTEXT]
136
136
  }, {
137
137
  type: SkipSelf
138
- }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.NavigationService, decorators: [{
139
- type: SkipSelf
140
- }] }]; }, propDecorators: { enabled: [{
138
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.ContextService }]; }, propDecorators: { enabled: [{
141
139
  type: Input,
142
140
  args: ['kendoGridFocusable']
143
141
  }] } });
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-grid',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1707920390,
13
- version: '15.0.2-develop.7',
12
+ publishDate: 1708007841,
13
+ version: '15.0.2-develop.8',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -2968,11 +2968,11 @@ const EMPTY_CELL_CONTEXT = {};
2968
2968
  * ```
2969
2969
  */
2970
2970
  class FocusableDirective {
2971
- constructor(cellContext, hostElement, renderer, navigationService) {
2971
+ constructor(cellContext, hostElement, renderer, ctx) {
2972
2972
  this.cellContext = cellContext;
2973
2973
  this.hostElement = hostElement;
2974
2974
  this.renderer = renderer;
2975
- this.navigationService = navigationService;
2975
+ this.ctx = ctx;
2976
2976
  this.active = true;
2977
2977
  this._enabled = true;
2978
2978
  if (this.cellContext) {
@@ -3003,7 +3003,7 @@ class FocusableDirective {
3003
3003
  return this._enabled;
3004
3004
  }
3005
3005
  ngAfterViewInit() {
3006
- if (!this.element && this.navigationService.enabled) {
3006
+ if (!this.element && this.ctx.navigable) {
3007
3007
  this.element = new DefaultFocusableElement(this.hostElement, this.renderer);
3008
3008
  }
3009
3009
  if (this.group && this.element) {
@@ -3057,7 +3057,7 @@ class FocusableDirective {
3057
3057
  this.element = element;
3058
3058
  }
3059
3059
  }
3060
- FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, deps: [{ token: CELL_CONTEXT, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NavigationService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
3060
+ FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, deps: [{ token: CELL_CONTEXT, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Directive });
3061
3061
  FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: { enabled: ["kendoGridFocusable", "enabled"] }, ngImport: i0 });
3062
3062
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, decorators: [{
3063
3063
  type: Directive,
@@ -3078,9 +3078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3078
3078
  args: [CELL_CONTEXT]
3079
3079
  }, {
3080
3080
  type: SkipSelf
3081
- }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NavigationService, decorators: [{
3082
- type: SkipSelf
3083
- }] }];
3081
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: ContextService }];
3084
3082
  }, propDecorators: { enabled: [{
3085
3083
  type: Input,
3086
3084
  args: ['kendoGridFocusable']
@@ -4535,8 +4533,8 @@ const packageMetadata = {
4535
4533
  name: '@progress/kendo-angular-grid',
4536
4534
  productName: 'Kendo UI for Angular',
4537
4535
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
4538
- publishDate: 1707920390,
4539
- version: '15.0.2-develop.7',
4536
+ publishDate: 1708007841,
4537
+ version: '15.0.2-develop.8',
4540
4538
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
4541
4539
  };
4542
4540
 
@@ -20555,8 +20553,12 @@ class GridComponent {
20555
20553
  set navigable(value) {
20556
20554
  if (typeof value === 'boolean') {
20557
20555
  this._navigable = value ? ['table', 'pager', 'toolbar'] : [];
20556
+ this.ctx.navigable = value;
20558
20557
  return;
20559
20558
  }
20559
+ else {
20560
+ this.ctx.navigable = value.includes('table');
20561
+ }
20560
20562
  this._navigable = value;
20561
20563
  }
20562
20564
  get navigable() {
@@ -26090,6 +26092,7 @@ class EditingDirectiveBase {
26090
26092
  constructor(grid, localDataChangesService) {
26091
26093
  this.grid = grid;
26092
26094
  this.localDataChangesService = localDataChangesService;
26095
+ this.subscriptions = new Subscription();
26093
26096
  this.defaultEditService = this.createDefaultService();
26094
26097
  }
26095
26098
  // Consider adding support for the dependency injection of the service to allow for specifying a generic service without code.
@@ -26107,7 +26110,7 @@ class EditingDirectiveBase {
26107
26110
  * @hidden
26108
26111
  */
26109
26112
  ngOnInit() {
26110
- this.subscriptions = this.grid.add.subscribe(this.addHandler.bind(this));
26113
+ this.subscriptions.add(this.grid.add.subscribe(this.addHandler.bind(this)));
26111
26114
  this.subscriptions.add(this.grid.remove.subscribe(this.removeHandler.bind(this)));
26112
26115
  this.subscriptions.add(this.grid.cancel.subscribe(this.cancelHandler.bind(this)));
26113
26116
  this.subscriptions.add(this.grid.save.subscribe(this.saveHandler.bind(this)));
@@ -503,6 +503,76 @@ const CELL_CONTEXT = new InjectionToken('grid-cell-context');
503
503
  */
504
504
  const EMPTY_CELL_CONTEXT = {};
505
505
 
506
+ /**
507
+ * @hidden
508
+ */
509
+ class GridToolbarNavigationService {
510
+ constructor(renderer) {
511
+ this.renderer = renderer;
512
+ this.navigableElements = [];
513
+ this.currentActiveIndex = 0;
514
+ this.defaultFocusableSelector = `
515
+ [kendogridtoolbarfocusable],
516
+ [kendogridaddcommand],
517
+ [kendogridcancelcommand],
518
+ [kendogrideditcommand],
519
+ [kendogridremovecommand],
520
+ [kendogridsavecommand],
521
+ [kendogridexcelcommand],
522
+ [kendogridpdfcommand]
523
+ `;
524
+ }
525
+ notify() {
526
+ // ensure focusable elements are in the same order as in the DOM
527
+ this.navigableElements = this.navigableElements.length && Array.from(this.navigableElements[0].parentElement.querySelectorAll(this.defaultFocusableSelector)) || [];
528
+ this.currentActiveIndex = 0;
529
+ this.updateFocus();
530
+ }
531
+ focus() {
532
+ this.navigableElements[this.currentActiveIndex]?.focus();
533
+ }
534
+ updateFocus() {
535
+ if (!this.navigableElements.length) {
536
+ return;
537
+ }
538
+ this.navigableElements.forEach(el => {
539
+ this.renderer.setAttribute(el, 'tabindex', '-1');
540
+ });
541
+ this.renderer.setAttribute(this.navigableElements[this.currentActiveIndex], 'tabindex', '0');
542
+ if (isDocumentAvailable() && document.activeElement.closest('.k-toolbar')) {
543
+ this.navigableElements[this.currentActiveIndex].focus();
544
+ }
545
+ }
546
+ }
547
+ GridToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
548
+ GridToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService });
549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService, decorators: [{
550
+ type: Injectable
551
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
552
+
553
+ /**
554
+ * @hidden
555
+ *
556
+ * The Context service is used to provide common
557
+ * services and DI tokens for a Grid instance.
558
+ *
559
+ * This keeps the constructor parameters stable
560
+ * and a avoids dependency cycles between components.
561
+ */
562
+ class ContextService {
563
+ constructor(renderer, localization) {
564
+ this.renderer = renderer;
565
+ this.localization = localization;
566
+ this.topToolbarNavigation = new GridToolbarNavigationService(this.renderer);
567
+ this.bottomToolbarNavigation = new GridToolbarNavigationService(this.renderer);
568
+ }
569
+ }
570
+ ContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
571
+ ContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService });
572
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService, decorators: [{
573
+ type: Injectable
574
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }]; } });
575
+
506
576
  /**
507
577
  * A directive that controls the way focusable elements receive
508
578
  * [focus in a navigable Grid]({% slug keyboard_navigation_grid %}).
@@ -521,11 +591,11 @@ const EMPTY_CELL_CONTEXT = {};
521
591
  * ```
522
592
  */
523
593
  class FocusableDirective {
524
- constructor(cellContext, hostElement, renderer, navigationService) {
594
+ constructor(cellContext, hostElement, renderer, ctx) {
525
595
  this.cellContext = cellContext;
526
596
  this.hostElement = hostElement;
527
597
  this.renderer = renderer;
528
- this.navigationService = navigationService;
598
+ this.ctx = ctx;
529
599
  this.active = true;
530
600
  this._enabled = true;
531
601
  if (this.cellContext) {
@@ -556,7 +626,7 @@ class FocusableDirective {
556
626
  return this._enabled;
557
627
  }
558
628
  ngAfterViewInit() {
559
- if (!this.element && this.navigationService.enabled) {
629
+ if (!this.element && this.ctx.navigable) {
560
630
  this.element = new DefaultFocusableElement(this.hostElement, this.renderer);
561
631
  }
562
632
  if (this.group && this.element) {
@@ -610,7 +680,7 @@ class FocusableDirective {
610
680
  this.element = element;
611
681
  }
612
682
  }
613
- FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, deps: [{ token: CELL_CONTEXT, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NavigationService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
683
+ FocusableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, deps: [{ token: CELL_CONTEXT, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Directive });
614
684
  FocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: { enabled: ["kendoGridFocusable", "enabled"] }, ngImport: i0 });
615
685
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FocusableDirective, decorators: [{
616
686
  type: Directive,
@@ -630,9 +700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
630
700
  args: [CELL_CONTEXT]
631
701
  }, {
632
702
  type: SkipSelf
633
- }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NavigationService, decorators: [{
634
- type: SkipSelf
635
- }] }]; }, propDecorators: { enabled: [{
703
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: ContextService }]; }, propDecorators: { enabled: [{
636
704
  type: Input,
637
705
  args: ['kendoGridFocusable']
638
706
  }] } });
@@ -1457,76 +1525,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1457
1525
  type: Injectable
1458
1526
  }] });
1459
1527
 
1460
- /**
1461
- * @hidden
1462
- */
1463
- class GridToolbarNavigationService {
1464
- constructor(renderer) {
1465
- this.renderer = renderer;
1466
- this.navigableElements = [];
1467
- this.currentActiveIndex = 0;
1468
- this.defaultFocusableSelector = `
1469
- [kendogridtoolbarfocusable],
1470
- [kendogridaddcommand],
1471
- [kendogridcancelcommand],
1472
- [kendogrideditcommand],
1473
- [kendogridremovecommand],
1474
- [kendogridsavecommand],
1475
- [kendogridexcelcommand],
1476
- [kendogridpdfcommand]
1477
- `;
1478
- }
1479
- notify() {
1480
- // ensure focusable elements are in the same order as in the DOM
1481
- this.navigableElements = this.navigableElements.length && Array.from(this.navigableElements[0].parentElement.querySelectorAll(this.defaultFocusableSelector)) || [];
1482
- this.currentActiveIndex = 0;
1483
- this.updateFocus();
1484
- }
1485
- focus() {
1486
- this.navigableElements[this.currentActiveIndex]?.focus();
1487
- }
1488
- updateFocus() {
1489
- if (!this.navigableElements.length) {
1490
- return;
1491
- }
1492
- this.navigableElements.forEach(el => {
1493
- this.renderer.setAttribute(el, 'tabindex', '-1');
1494
- });
1495
- this.renderer.setAttribute(this.navigableElements[this.currentActiveIndex], 'tabindex', '0');
1496
- if (isDocumentAvailable() && document.activeElement.closest('.k-toolbar')) {
1497
- this.navigableElements[this.currentActiveIndex].focus();
1498
- }
1499
- }
1500
- }
1501
- GridToolbarNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
1502
- GridToolbarNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService });
1503
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridToolbarNavigationService, decorators: [{
1504
- type: Injectable
1505
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
1506
-
1507
- /**
1508
- * @hidden
1509
- *
1510
- * The Context service is used to provide common
1511
- * services and DI tokens for a Grid instance.
1512
- *
1513
- * This keeps the constructor parameters stable
1514
- * and a avoids dependency cycles between components.
1515
- */
1516
- class ContextService {
1517
- constructor(renderer, localization) {
1518
- this.renderer = renderer;
1519
- this.localization = localization;
1520
- this.topToolbarNavigation = new GridToolbarNavigationService(this.renderer);
1521
- this.bottomToolbarNavigation = new GridToolbarNavigationService(this.renderer);
1522
- }
1523
- }
1524
- ContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
1525
- ContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService });
1526
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContextService, decorators: [{
1527
- type: Injectable
1528
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }]; } });
1529
-
1530
1528
  const isInSameGrid = (element, gridElement) => closest(element, matchesNodeName('kendo-grid')) === gridElement;
1531
1529
  const matchHeaderCell = matchesNodeName('th');
1532
1530
  const matchDataCell = matchesNodeName('td');
@@ -4503,8 +4501,8 @@ const packageMetadata = {
4503
4501
  name: '@progress/kendo-angular-grid',
4504
4502
  productName: 'Kendo UI for Angular',
4505
4503
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
4506
- publishDate: 1707920390,
4507
- version: '15.0.2-develop.7',
4504
+ publishDate: 1708007841,
4505
+ version: '15.0.2-develop.8',
4508
4506
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
4509
4507
  };
4510
4508
 
@@ -20468,8 +20466,12 @@ class GridComponent {
20468
20466
  set navigable(value) {
20469
20467
  if (typeof value === 'boolean') {
20470
20468
  this._navigable = value ? ['table', 'pager', 'toolbar'] : [];
20469
+ this.ctx.navigable = value;
20471
20470
  return;
20472
20471
  }
20472
+ else {
20473
+ this.ctx.navigable = value.includes('table');
20474
+ }
20473
20475
  this._navigable = value;
20474
20476
  }
20475
20477
  get navigable() {
@@ -25987,6 +25989,7 @@ class EditingDirectiveBase {
25987
25989
  constructor(grid, localDataChangesService) {
25988
25990
  this.grid = grid;
25989
25991
  this.localDataChangesService = localDataChangesService;
25992
+ this.subscriptions = new Subscription();
25990
25993
  this.defaultEditService = this.createDefaultService();
25991
25994
  }
25992
25995
  // Consider adding support for the dependency injection of the service to allow for specifying a generic service without code.
@@ -26004,7 +26007,7 @@ class EditingDirectiveBase {
26004
26007
  * @hidden
26005
26008
  */
26006
26009
  ngOnInit() {
26007
- this.subscriptions = this.grid.add.subscribe(this.addHandler.bind(this));
26010
+ this.subscriptions.add(this.grid.add.subscribe(this.addHandler.bind(this)));
26008
26011
  this.subscriptions.add(this.grid.remove.subscribe(this.removeHandler.bind(this)));
26009
26012
  this.subscriptions.add(this.grid.cancel.subscribe(this.cancelHandler.bind(this)));
26010
26013
  this.subscriptions.add(this.grid.save.subscribe(this.saveHandler.bind(this)));
@@ -5,7 +5,7 @@
5
5
  import { AfterViewInit, ElementRef, OnDestroy, Renderer2 } from '@angular/core';
6
6
  import { FocusableElement } from './focusable-element.interface';
7
7
  import { CellContext } from '../rendering/common/cell-context';
8
- import { NavigationService } from './navigation.service';
8
+ import { ContextService } from '../common/provider.service';
9
9
  import * as i0 from "@angular/core";
10
10
  /**
11
11
  * A directive that controls the way focusable elements receive
@@ -28,7 +28,7 @@ export declare class FocusableDirective implements FocusableElement, AfterViewIn
28
28
  private cellContext;
29
29
  private hostElement;
30
30
  private renderer;
31
- private navigationService;
31
+ private ctx;
32
32
  private active;
33
33
  private group;
34
34
  private element;
@@ -38,7 +38,7 @@ export declare class FocusableDirective implements FocusableElement, AfterViewIn
38
38
  */
39
39
  set enabled(value: any);
40
40
  get enabled(): any;
41
- constructor(cellContext: CellContext, hostElement: ElementRef, renderer: Renderer2, navigationService: NavigationService);
41
+ constructor(cellContext: CellContext, hostElement: ElementRef, renderer: Renderer2, ctx: ContextService);
42
42
  ngAfterViewInit(): void;
43
43
  ngOnDestroy(): void;
44
44
  /**
@@ -65,6 +65,6 @@ export declare class FocusableDirective implements FocusableElement, AfterViewIn
65
65
  * @hidden
66
66
  */
67
67
  registerElement(element: FocusableElement): void;
68
- static ɵfac: i0.ɵɵFactoryDeclaration<FocusableDirective, [{ optional: true; skipSelf: true; }, null, null, { skipSelf: true; }]>;
68
+ static ɵfac: i0.ɵɵFactoryDeclaration<FocusableDirective, [{ optional: true; skipSelf: true; }, null, null, null]>;
69
69
  static ɵdir: i0.ɵɵDirectiveDeclaration<FocusableDirective, "[kendoGridFocusable], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridCancelCommand], [kendoGridSelectionCheckbox] ", never, { "enabled": "kendoGridFocusable"; }, {}, never>;
70
70
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "15.0.2-develop.7",
3
+ "version": "15.0.2-develop.8",
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",
@@ -33,26 +33,26 @@
33
33
  "@progress/kendo-data-query": "^1.0.0",
34
34
  "@progress/kendo-drawing": "^1.19.0",
35
35
  "@progress/kendo-licensing": "^1.0.2",
36
- "@progress/kendo-angular-buttons": "15.0.2-develop.7",
37
- "@progress/kendo-angular-common": "15.0.2-develop.7",
38
- "@progress/kendo-angular-dateinputs": "15.0.2-develop.7",
39
- "@progress/kendo-angular-layout": "15.0.2-develop.7",
40
- "@progress/kendo-angular-dropdowns": "15.0.2-develop.7",
41
- "@progress/kendo-angular-excel-export": "15.0.2-develop.7",
42
- "@progress/kendo-angular-icons": "15.0.2-develop.7",
43
- "@progress/kendo-angular-inputs": "15.0.2-develop.7",
44
- "@progress/kendo-angular-intl": "15.0.2-develop.7",
45
- "@progress/kendo-angular-l10n": "15.0.2-develop.7",
46
- "@progress/kendo-angular-label": "15.0.2-develop.7",
47
- "@progress/kendo-angular-pdf-export": "15.0.2-develop.7",
48
- "@progress/kendo-angular-popup": "15.0.2-develop.7",
49
- "@progress/kendo-angular-utils": "15.0.2-develop.7",
36
+ "@progress/kendo-angular-buttons": "15.0.2-develop.8",
37
+ "@progress/kendo-angular-common": "15.0.2-develop.8",
38
+ "@progress/kendo-angular-dateinputs": "15.0.2-develop.8",
39
+ "@progress/kendo-angular-layout": "15.0.2-develop.8",
40
+ "@progress/kendo-angular-dropdowns": "15.0.2-develop.8",
41
+ "@progress/kendo-angular-excel-export": "15.0.2-develop.8",
42
+ "@progress/kendo-angular-icons": "15.0.2-develop.8",
43
+ "@progress/kendo-angular-inputs": "15.0.2-develop.8",
44
+ "@progress/kendo-angular-intl": "15.0.2-develop.8",
45
+ "@progress/kendo-angular-l10n": "15.0.2-develop.8",
46
+ "@progress/kendo-angular-label": "15.0.2-develop.8",
47
+ "@progress/kendo-angular-pdf-export": "15.0.2-develop.8",
48
+ "@progress/kendo-angular-popup": "15.0.2-develop.8",
49
+ "@progress/kendo-angular-utils": "15.0.2-develop.8",
50
50
  "rxjs": "^6.5.3 || ^7.0.0",
51
- "@progress/kendo-angular-spreadsheet": "15.0.2-develop.7"
51
+ "@progress/kendo-angular-spreadsheet": "15.0.2-develop.8"
52
52
  },
53
53
  "dependencies": {
54
54
  "tslib": "^2.3.1",
55
- "@progress/kendo-angular-schematics": "15.0.2-develop.7",
55
+ "@progress/kendo-angular-schematics": "15.0.2-develop.8",
56
56
  "@progress/kendo-common": "^0.2.0",
57
57
  "@progress/kendo-file-saver": "^1.0.0"
58
58
  },
@@ -4,13 +4,13 @@ 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 dep of the dropdowns
7
- '@progress/kendo-angular-treeview': '15.0.2-develop.7',
7
+ '@progress/kendo-angular-treeview': '15.0.2-develop.8',
8
8
  // peer dependency of kendo-angular-inputs
9
- '@progress/kendo-angular-dialog': '15.0.2-develop.7',
9
+ '@progress/kendo-angular-dialog': '15.0.2-develop.8',
10
10
  // peer dependency of kendo-angular-icons
11
11
  '@progress/kendo-svg-icons': '^2.0.0',
12
12
  // peer dependency of kendo-angular-layout
13
- '@progress/kendo-angular-progressbar': '15.0.2-develop.7'
13
+ '@progress/kendo-angular-progressbar': '15.0.2-develop.8'
14
14
  } });
15
15
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
16
16
  }