@progress/kendo-angular-grid 13.0.2 → 13.0.3-develop.2

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.
@@ -8,20 +8,22 @@ import { isPresent } from '../utils';
8
8
  import { DomEventsService } from '../common/dom-events.service';
9
9
  import { LocalDataChangesService } from '../editing/local-data-changes.service';
10
10
  import { NavigationService } from '../navigation/navigation.service';
11
+ import { CellSelectionAggregateService } from '../aggregates/selection-aggregate.service';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "../common/dom-events.service";
13
- import * as i2 from "../editing/local-data-changes.service";
14
- import * as i3 from "../navigation/navigation.service";
14
+ import * as i2 from "../aggregates/selection-aggregate.service";
15
+ import * as i3 from "../editing/local-data-changes.service";
16
+ import * as i4 from "../navigation/navigation.service";
15
17
  /**
16
18
  * @hidden
17
19
  */
18
20
  export class CellSelectionService {
19
- constructor(domEvents, localDataChangesService, navigationService) {
21
+ constructor(domEvents, aggregateService, localDataChangesService, navigationService) {
20
22
  this.domEvents = domEvents;
23
+ this.aggregateService = aggregateService;
21
24
  this.localDataChangesService = localDataChangesService;
22
25
  this.navigationService = navigationService;
23
26
  this.changes = new EventEmitter();
24
- this.aggregateChanges = new EventEmitter();
25
27
  this.mouseUpEvent = new EventEmitter();
26
28
  this.currentSelection = [];
27
29
  this.active = false;
@@ -107,9 +109,8 @@ export class CellSelectionService {
107
109
  }
108
110
  ev.ctrlKey = ctrlKey;
109
111
  ev.shiftKey = event.shiftKey;
110
- if (this.options.cellAggregates) {
111
- this.aggregateChanges.emit(ev);
112
- ev.cellAggregates = this.aggregates;
112
+ if (this.options.cellAggregates && !event.shiftKey) {
113
+ ev.cellAggregates = this.aggregateService.onSelectionChange(ev);
113
114
  }
114
115
  if (ev.shiftKey) {
115
116
  ev.rangeStartCell = this.lastSelectionItem;
@@ -222,8 +223,7 @@ export class CellSelectionService {
222
223
  }
223
224
  let cellAggregates;
224
225
  if (this.options.cellAggregates) {
225
- this.aggregateChanges.emit({ selectedCells, deselectedCells });
226
- cellAggregates = this.aggregates;
226
+ cellAggregates = this.aggregateService.onSelectionChange({ selectedCells, deselectedCells });
227
227
  }
228
228
  return {
229
229
  deselectedCells,
@@ -310,8 +310,8 @@ export class CellSelectionService {
310
310
  }
311
311
  }
312
312
  }
313
- CellSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellSelectionService, deps: [{ token: i1.DomEventsService }, { token: i2.LocalDataChangesService }, { token: i3.NavigationService }], target: i0.ɵɵFactoryTarget.Injectable });
313
+ CellSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellSelectionService, deps: [{ token: i1.DomEventsService }, { token: i2.CellSelectionAggregateService }, { token: i3.LocalDataChangesService }, { token: i4.NavigationService }], target: i0.ɵɵFactoryTarget.Injectable });
314
314
  CellSelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellSelectionService });
315
315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellSelectionService, decorators: [{
316
316
  type: Injectable
317
- }], ctorParameters: function () { return [{ type: i1.DomEventsService }, { type: i2.LocalDataChangesService }, { type: i3.NavigationService }]; } });
317
+ }], ctorParameters: function () { return [{ type: i1.DomEventsService }, { type: i2.CellSelectionAggregateService }, { type: i3.LocalDataChangesService }, { type: i4.NavigationService }]; } });
@@ -5,8 +5,10 @@
5
5
  import { Directive, HostBinding, ElementRef, Input, Renderer2, NgZone } from '@angular/core';
6
6
  import { SelectionService } from './selection.service';
7
7
  import { Keys } from '@progress/kendo-angular-common';
8
+ import { CellSelectionAggregateService } from '../aggregates/selection-aggregate.service';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "./selection.service";
11
+ import * as i2 from "../aggregates/selection-aggregate.service";
10
12
  /**
11
13
  * Represents the row-selection checkbox of the Grid. The directive expects the
12
14
  * index of the current row as an input parameter. Inside the [`CellTemplateDirective`](slug:api_grid_celltemplatedirective), apply the
@@ -26,8 +28,9 @@ import * as i1 from "./selection.service";
26
28
  * ```
27
29
  */
28
30
  export class SelectionCheckboxDirective {
29
- constructor(selectionService, el, renderer, ngZone) {
31
+ constructor(selectionService, aggregateService, el, renderer, ngZone) {
30
32
  this.selectionService = selectionService;
33
+ this.aggregateService = aggregateService;
31
34
  this.el = el;
32
35
  this.renderer = renderer;
33
36
  this.ngZone = ngZone;
@@ -54,8 +57,9 @@ export class SelectionCheckboxDirective {
54
57
  const ev = this.selectionService.toggleByIndex(this.itemIndex);
55
58
  ev.ctrlKey = true;
56
59
  ev.shiftKey = false;
57
- this.selectionService.aggregateChanges.emit(ev);
58
- ev.cellAggregates = this.selectionService.aggregates;
60
+ if (this.selectionService.options.cellAggregates) {
61
+ ev.cellAggregates = this.aggregateService.onSelectionChange(ev);
62
+ }
59
63
  this.selectionService.changes.emit(ev);
60
64
  });
61
65
  }
@@ -72,14 +76,14 @@ export class SelectionCheckboxDirective {
72
76
  this.renderer.setProperty(this.el.nativeElement, 'checked', this.selectionService.isSelected(this.itemIndex));
73
77
  }
74
78
  }
75
- SelectionCheckboxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectionCheckboxDirective, deps: [{ token: i1.SelectionService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
79
+ SelectionCheckboxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectionCheckboxDirective, deps: [{ token: i1.SelectionService }, { token: i2.CellSelectionAggregateService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
76
80
  SelectionCheckboxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: { itemIndex: ["kendoGridSelectionCheckbox", "itemIndex"] }, host: { properties: { "attr.type": "this.type" } }, ngImport: i0 });
77
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectionCheckboxDirective, decorators: [{
78
82
  type: Directive,
79
83
  args: [{
80
84
  selector: '[kendoGridSelectionCheckbox]'
81
85
  }]
82
- }], ctorParameters: function () { return [{ type: i1.SelectionService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { itemIndex: [{
86
+ }], ctorParameters: function () { return [{ type: i1.SelectionService }, { type: i2.CellSelectionAggregateService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { itemIndex: [{
83
87
  type: Input,
84
88
  args: ['kendoGridSelectionCheckbox']
85
89
  }], type: [{
@@ -9,22 +9,24 @@ import { DomEventsService } from '../common/dom-events.service';
9
9
  import { LocalDataChangesService } from '../editing/local-data-changes.service';
10
10
  import { NavigationService } from '../navigation/navigation.service';
11
11
  import { ContextService } from '../common/provider.service';
12
+ import { CellSelectionAggregateService } from '../aggregates/selection-aggregate.service';
12
13
  import * as i0 from "@angular/core";
13
14
  import * as i1 from "../common/dom-events.service";
14
- import * as i2 from "../editing/local-data-changes.service";
15
- import * as i3 from "../navigation/navigation.service";
16
- import * as i4 from "../common/provider.service";
15
+ import * as i2 from "../aggregates/selection-aggregate.service";
16
+ import * as i3 from "../editing/local-data-changes.service";
17
+ import * as i4 from "../navigation/navigation.service";
18
+ import * as i5 from "../common/provider.service";
17
19
  /**
18
20
  * @hidden
19
21
  */
20
22
  export class SelectionService {
21
- constructor(domEvents, localDataChangesService, navigationService, ctxService) {
23
+ constructor(domEvents, aggregateService, localDataChangesService, navigationService, ctxService) {
22
24
  this.domEvents = domEvents;
25
+ this.aggregateService = aggregateService;
23
26
  this.localDataChangesService = localDataChangesService;
24
27
  this.navigationService = navigationService;
25
28
  this.ctxService = ctxService;
26
29
  this.changes = new EventEmitter();
27
- this.aggregateChanges = new EventEmitter();
28
30
  this.currentSelection = [];
29
31
  this.selectAllChecked = false;
30
32
  this.active = false;
@@ -113,8 +115,7 @@ export class SelectionService {
113
115
  ev.ctrlKey = ctrlKey;
114
116
  ev.shiftKey = event.shiftKey;
115
117
  if (this.options.cellAggregates) {
116
- this.aggregateChanges.emit(ev);
117
- ev.cellAggregates = this.aggregates;
118
+ ev.cellAggregates = this.aggregateService.onSelectionChange(ev);
118
119
  }
119
120
  if (ev.shiftKey) {
120
121
  ev.rangeStartRow = { dataItem: this.lastSelectionData, index: this.lastSelectionStartIndex };
@@ -254,6 +255,9 @@ export class SelectionService {
254
255
  selectedRows: selectedRows,
255
256
  shiftKey: true
256
257
  };
258
+ if (this.options.cellAggregates) {
259
+ ev.cellAggregates = this.aggregateService.onSelectionChange(ev);
260
+ }
257
261
  this.changes.emit(ev);
258
262
  }
259
263
  selectRange(startIndex, endIndex) {
@@ -278,8 +282,7 @@ export class SelectionService {
278
282
  }
279
283
  let cellAggregates;
280
284
  if (this.options.cellAggregates) {
281
- this.aggregateChanges.emit({ selectedRows, deselectedRows });
282
- cellAggregates = this.aggregates;
285
+ cellAggregates = this.aggregateService.onSelectionChange({ selectedRows, deselectedRows });
283
286
  }
284
287
  return {
285
288
  deselectedRows: deselectedRows,
@@ -380,8 +383,8 @@ export class SelectionService {
380
383
  }
381
384
  }
382
385
  }
383
- SelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectionService, deps: [{ token: i1.DomEventsService }, { token: i2.LocalDataChangesService }, { token: i3.NavigationService }, { token: i4.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
386
+ SelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectionService, deps: [{ token: i1.DomEventsService }, { token: i2.CellSelectionAggregateService }, { token: i3.LocalDataChangesService }, { token: i4.NavigationService }, { token: i5.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
384
387
  SelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectionService });
385
388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SelectionService, decorators: [{
386
389
  type: Injectable
387
- }], ctorParameters: function () { return [{ type: i1.DomEventsService }, { type: i2.LocalDataChangesService }, { type: i3.NavigationService }, { type: i4.ContextService }]; } });
390
+ }], ctorParameters: function () { return [{ type: i1.DomEventsService }, { type: i2.CellSelectionAggregateService }, { type: i3.LocalDataChangesService }, { type: i4.NavigationService }, { type: i5.ContextService }]; } });