@progress/kendo-angular-grid 14.4.0-develop.9 → 15.0.0-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.
Files changed (52) hide show
  1. package/NOTICE.txt +146 -593
  2. package/common/clipboard-types.d.ts +102 -0
  3. package/common/clipboard.directive.d.ts +49 -0
  4. package/common/clipboard.service.d.ts +28 -0
  5. package/common/dom-events.service.d.ts +1 -0
  6. package/common/error-messages.d.ts +12 -0
  7. package/databinding.directive.d.ts +1 -1
  8. package/esm2020/column-menu/column-menu-item-base.mjs +2 -1
  9. package/esm2020/column-menu/column-menu.component.mjs +8 -5
  10. package/esm2020/columns/column-base.mjs +3 -2
  11. package/esm2020/columns/column-group.component.mjs +2 -1
  12. package/esm2020/columns/span-column.component.mjs +2 -1
  13. package/esm2020/common/clipboard-types.mjs +5 -0
  14. package/esm2020/common/clipboard.directive.mjs +185 -0
  15. package/esm2020/common/clipboard.service.mjs +218 -0
  16. package/esm2020/common/dom-events.service.mjs +1 -0
  17. package/esm2020/common/error-messages.mjs +45 -1
  18. package/esm2020/databinding.directive.mjs +3 -2
  19. package/esm2020/editing-directives/local-edit.service.mjs +2 -2
  20. package/esm2020/excel/excel.service.mjs +2 -1
  21. package/esm2020/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
  22. package/esm2020/filtering/cell/numeric-filter-cell.component.mjs +1 -1
  23. package/esm2020/filtering/menu/filter-menu-container.component.mjs +2 -2
  24. package/esm2020/filtering/menu/numeric-filter-menu-input.component.mjs +1 -1
  25. package/esm2020/grid.component.mjs +40 -34
  26. package/esm2020/grid.module.mjs +8 -4
  27. package/esm2020/grouping/group-scroll-binding.directive.mjs +2 -3
  28. package/esm2020/index.mjs +2 -0
  29. package/esm2020/package-metadata.mjs +2 -2
  30. package/esm2020/pager/pager-input.component.mjs +1 -1
  31. package/esm2020/pager/pager.component.mjs +1 -5
  32. package/esm2020/pdf/pdf.component.mjs +3 -2
  33. package/esm2020/pdf/pdf.service.mjs +2 -1
  34. package/esm2020/rendering/cell.component.mjs +33 -25
  35. package/esm2020/rendering/details/detail-template.directive.mjs +2 -1
  36. package/esm2020/rendering/header/header.component.mjs +16 -12
  37. package/esm2020/rendering/table-body.component.mjs +4 -4
  38. package/esm2020/selection/marquee.directive.mjs +11 -17
  39. package/esm2020/selection/selection-default.mjs +11 -5
  40. package/esm2020/utils.mjs +10 -0
  41. package/fesm2015/progress-kendo-angular-grid.mjs +598 -145
  42. package/fesm2020/progress-kendo-angular-grid.mjs +594 -145
  43. package/grid.component.d.ts +7 -1
  44. package/grid.module.d.ts +99 -98
  45. package/index.d.ts +3 -1
  46. package/package.json +16 -16
  47. package/pager/pager.component.d.ts +0 -1
  48. package/schematics/ngAdd/index.js +3 -3
  49. package/selection/marquee.directive.d.ts +4 -3
  50. package/selection/selection-default.d.ts +10 -4
  51. package/selection/types.d.ts +6 -0
  52. package/utils.d.ts +8 -0
@@ -34,6 +34,7 @@ import { FilterMenuModule } from "./filtering/menu/filter-menu.module";
34
34
  import { ColumnMenuModule } from './column-menu/column-menu.module';
35
35
  import { GridToolbarFocusableDirective } from './rendering/toolbar/toolbar-focusable.directive';
36
36
  import { DragAndDropModule } from '@progress/kendo-angular-utils';
37
+ import { GridClipboardDirective } from './common/clipboard.directive';
37
38
  import * as i0 from "@angular/core";
38
39
  import * as i1 from "./grouping/group-header-template.directive";
39
40
  import * as i2 from "./grouping/group-header-column-template.directive";
@@ -144,7 +145,8 @@ const exportedModules = [
144
145
  ...PagerModule.exports(),
145
146
  ...RowFilterModule.exports(),
146
147
  ...FilterMenuModule.exports(),
147
- ...ColumnMenuModule.exports()
148
+ ...ColumnMenuModule.exports(),
149
+ GridClipboardDirective
148
150
  ];
149
151
  const declarations = [
150
152
  GridComponent,
@@ -165,7 +167,8 @@ const declarations = [
165
167
  GridSpacerComponent,
166
168
  GridToolbarFocusableDirective,
167
169
  StatusBarComponent,
168
- StatusBarTemplateDirective
170
+ StatusBarTemplateDirective,
171
+ GridClipboardDirective
169
172
  ];
170
173
  /**
171
174
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -209,7 +212,8 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
209
212
  GridSpacerComponent,
210
213
  GridToolbarFocusableDirective,
211
214
  StatusBarComponent,
212
- StatusBarTemplateDirective], imports: [CommonModule,
215
+ StatusBarTemplateDirective,
216
+ GridClipboardDirective], imports: [CommonModule,
213
217
  GroupModule,
214
218
  SharedModule,
215
219
  BodyModule,
@@ -235,7 +239,7 @@ GridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
235
239
  InCellEditingDirective,
236
240
  ExpandDetailsDirective,
237
241
  ExpandGroupDirective,
238
- GridToolbarFocusableDirective, i1.GroupHeaderTemplateDirective, i2.GroupHeaderColumnTemplateDirective, i3.GroupFooterTemplateDirective, i4.ColumnComponent, i5.SpanColumnComponent, i6.ColumnGroupComponent, i7.FooterTemplateDirective, i8.DetailTemplateDirective, i9.FocusableDirective, i10.GridTableDirective, i11.CommandColumnComponent, i12.CheckboxColumnComponent, i13.SelectionCheckboxDirective, i14.CellTemplateDirective, i15.NoRecordsTemplateDirective, i16.EditTemplateDirective, i17.EditCommandDirective, i18.CancelCommandDirective, i19.SaveCommandDirective, i20.RemoveCommandDirective, i21.AddCommandDirective, i22.CellLoadingTemplateDirective, i23.LoadingTemplateDirective, i24.RowReorderColumnComponent, i25.HeaderTemplateDirective, i26.SelectAllCheckboxDirective, i27.PagerComponent, i28.PagerPrevButtonsComponent, i29.PagerNextButtonsComponent, i30.PagerNumericButtonsComponent, i31.PagerInputComponent, i32.PagerInfoComponent, i33.PagerPageSizesComponent, i34.PagerTemplateDirective, i35.PagerDropDownListDirective, i36.PagerInputDirective, i37.FilterRowComponent, i38.FilterCellComponent, i39.FilterCellTemplateDirective, i40.FilterCellOperatorsComponent, i41.StringFilterCellComponent, i42.NumericFilterCellComponent, i43.AutoCompleteFilterCellComponent, i44.BooleanFilterCellComponent, i45.DateFilterCellComponent, i40.FilterCellOperatorsComponent, i46.ContainsFilterOperatorComponent, i47.DoesNotContainFilterOperatorComponent, i48.EndsWithFilterOperatorComponent, i49.EqualFilterOperatorComponent, i50.IsEmptyFilterOperatorComponent, i51.IsNotEmptyFilterOperatorComponent, i52.IsNotNullFilterOperatorComponent, i53.IsNullFilterOperatorComponent, i54.NotEqualFilterOperatorComponent, i55.StartsWithFilterOperatorComponent, i56.GreaterFilterOperatorComponent, i57.GreaterOrEqualToFilterOperatorComponent, i58.LessFilterOperatorComponent, i59.LessOrEqualToFilterOperatorComponent, i60.AfterFilterOperatorComponent, i61.AfterEqFilterOperatorComponent, i62.BeforeEqFilterOperatorComponent, i63.BeforeFilterOperatorComponent, i64.StringFilterMenuComponent, i65.FilterMenuTemplateDirective, i66.NumericFilterMenuComponent, i67.DateFilterMenuComponent, i68.BooleanFilterMenuComponent, i69.FilterMenuDropDownListDirective, i70.BooleanFilterRadioButtonDirective, i40.FilterCellOperatorsComponent, i46.ContainsFilterOperatorComponent, i47.DoesNotContainFilterOperatorComponent, i48.EndsWithFilterOperatorComponent, i49.EqualFilterOperatorComponent, i50.IsEmptyFilterOperatorComponent, i51.IsNotEmptyFilterOperatorComponent, i52.IsNotNullFilterOperatorComponent, i53.IsNullFilterOperatorComponent, i54.NotEqualFilterOperatorComponent, i55.StartsWithFilterOperatorComponent, i56.GreaterFilterOperatorComponent, i57.GreaterOrEqualToFilterOperatorComponent, i58.LessFilterOperatorComponent, i59.LessOrEqualToFilterOperatorComponent, i60.AfterFilterOperatorComponent, i61.AfterEqFilterOperatorComponent, i62.BeforeEqFilterOperatorComponent, i63.BeforeFilterOperatorComponent, i71.ColumnChooserComponent, i72.ColumnMenuFilterComponent, i73.ColumnMenuItemComponent, i74.ColumnMenuItemContentTemplateDirective, i75.ColumnMenuSortComponent, i76.ColumnMenuLockComponent, i77.ColumnMenuStickComponent, i78.ColumnMenuPositionComponent, i79.ColumnMenuChooserComponent, i80.ColumnMenuTemplateDirective, i81.ColumnMenuContainerComponent, i82.ColumnMenuItemDirective, i83.ColumnMenuComponent, i84.ColumnMenuAutoSizeColumnComponent, i85.ColumnMenuAutoSizeAllColumnsComponent] });
242
+ GridToolbarFocusableDirective, i1.GroupHeaderTemplateDirective, i2.GroupHeaderColumnTemplateDirective, i3.GroupFooterTemplateDirective, i4.ColumnComponent, i5.SpanColumnComponent, i6.ColumnGroupComponent, i7.FooterTemplateDirective, i8.DetailTemplateDirective, i9.FocusableDirective, i10.GridTableDirective, i11.CommandColumnComponent, i12.CheckboxColumnComponent, i13.SelectionCheckboxDirective, i14.CellTemplateDirective, i15.NoRecordsTemplateDirective, i16.EditTemplateDirective, i17.EditCommandDirective, i18.CancelCommandDirective, i19.SaveCommandDirective, i20.RemoveCommandDirective, i21.AddCommandDirective, i22.CellLoadingTemplateDirective, i23.LoadingTemplateDirective, i24.RowReorderColumnComponent, i25.HeaderTemplateDirective, i26.SelectAllCheckboxDirective, i27.PagerComponent, i28.PagerPrevButtonsComponent, i29.PagerNextButtonsComponent, i30.PagerNumericButtonsComponent, i31.PagerInputComponent, i32.PagerInfoComponent, i33.PagerPageSizesComponent, i34.PagerTemplateDirective, i35.PagerDropDownListDirective, i36.PagerInputDirective, i37.FilterRowComponent, i38.FilterCellComponent, i39.FilterCellTemplateDirective, i40.FilterCellOperatorsComponent, i41.StringFilterCellComponent, i42.NumericFilterCellComponent, i43.AutoCompleteFilterCellComponent, i44.BooleanFilterCellComponent, i45.DateFilterCellComponent, i40.FilterCellOperatorsComponent, i46.ContainsFilterOperatorComponent, i47.DoesNotContainFilterOperatorComponent, i48.EndsWithFilterOperatorComponent, i49.EqualFilterOperatorComponent, i50.IsEmptyFilterOperatorComponent, i51.IsNotEmptyFilterOperatorComponent, i52.IsNotNullFilterOperatorComponent, i53.IsNullFilterOperatorComponent, i54.NotEqualFilterOperatorComponent, i55.StartsWithFilterOperatorComponent, i56.GreaterFilterOperatorComponent, i57.GreaterOrEqualToFilterOperatorComponent, i58.LessFilterOperatorComponent, i59.LessOrEqualToFilterOperatorComponent, i60.AfterFilterOperatorComponent, i61.AfterEqFilterOperatorComponent, i62.BeforeEqFilterOperatorComponent, i63.BeforeFilterOperatorComponent, i64.StringFilterMenuComponent, i65.FilterMenuTemplateDirective, i66.NumericFilterMenuComponent, i67.DateFilterMenuComponent, i68.BooleanFilterMenuComponent, i69.FilterMenuDropDownListDirective, i70.BooleanFilterRadioButtonDirective, i40.FilterCellOperatorsComponent, i46.ContainsFilterOperatorComponent, i47.DoesNotContainFilterOperatorComponent, i48.EndsWithFilterOperatorComponent, i49.EqualFilterOperatorComponent, i50.IsEmptyFilterOperatorComponent, i51.IsNotEmptyFilterOperatorComponent, i52.IsNotNullFilterOperatorComponent, i53.IsNullFilterOperatorComponent, i54.NotEqualFilterOperatorComponent, i55.StartsWithFilterOperatorComponent, i56.GreaterFilterOperatorComponent, i57.GreaterOrEqualToFilterOperatorComponent, i58.LessFilterOperatorComponent, i59.LessOrEqualToFilterOperatorComponent, i60.AfterFilterOperatorComponent, i61.AfterEqFilterOperatorComponent, i62.BeforeEqFilterOperatorComponent, i63.BeforeFilterOperatorComponent, i71.ColumnChooserComponent, i72.ColumnMenuFilterComponent, i73.ColumnMenuItemComponent, i74.ColumnMenuItemContentTemplateDirective, i75.ColumnMenuSortComponent, i76.ColumnMenuLockComponent, i77.ColumnMenuStickComponent, i78.ColumnMenuPositionComponent, i79.ColumnMenuChooserComponent, i80.ColumnMenuTemplateDirective, i81.ColumnMenuContainerComponent, i82.ColumnMenuItemDirective, i83.ColumnMenuComponent, i84.ColumnMenuAutoSizeColumnComponent, i85.ColumnMenuAutoSizeAllColumnsComponent, GridClipboardDirective] });
239
243
  GridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridModule, imports: [[
240
244
  CommonModule,
241
245
  GroupModule,
@@ -9,6 +9,7 @@ import { filterBy, process } from "@progress/kendo-data-query";
9
9
  import { isPresent, isArray } from "../utils";
10
10
  import { diffFilters, cloneFilters } from "../common/filter-descriptor-differ";
11
11
  import { LocalDataChangesService } from "../editing/local-data-changes.service";
12
+ import { GridConfigurationErrorMessages } from '../common/error-messages';
12
13
  import * as i0 from "@angular/core";
13
14
  import * as i1 from "../grid.component";
14
15
  import * as i2 from "../editing/local-data-changes.service";
@@ -193,9 +194,7 @@ export class GroupBindingDirective extends DataBindingDirective {
193
194
  }
194
195
  ngAfterContentInit() {
195
196
  if (isDevMode() && this.grid.isGroupExpanded) {
196
- throw new Error('Using the `kendoGridGroupBinding` directive in combination with the `kendoGridExpandGroupBy` directive ' +
197
- 'or the `isGroupExpanded` callback is not supported. To use grouping with the `kendoGridGroupBinding` directive, ' +
198
- 'set the Grid `groupable` property to `true`.');
197
+ throw new Error(GridConfigurationErrorMessages.groupBindingDirectives);
199
198
  }
200
199
  }
201
200
  groupExpand({ groupIndex }) {
package/esm2020/index.mjs CHANGED
@@ -151,6 +151,8 @@ export { ColumnMenuComponent } from './column-menu/column-menu.component';
151
151
  export { ColumnLockedChangeEvent } from './column-menu/column-locked-change-event';
152
152
  export { ColumnStickyChangeEvent } from './column-menu/column-sticky-change-event';
153
153
  export { SinglePopupService, PopupCloseEvent } from './common/single-popup.service';
154
+ // Clipboard
155
+ export { GridClipboardDirective } from './common/clipboard.directive';
154
156
  // addresses error NG3001: Unsupported private class
155
157
  export { ColumnMenuTemplateDirective } from './column-menu/column-menu-template.directive';
156
158
  export { EditCommandDirective } from './editing/edit-command.directive';
@@ -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: 1705406831,
13
- version: '14.4.0-develop.9',
12
+ publishDate: 1706611134,
13
+ version: '15.0.0-develop.2',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -105,7 +105,7 @@ PagerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
105
105
  </kendo-numerictextbox>
106
106
  {{textFor('pagerOf')}} {{totalPages}}
107
107
  </span>
108
- `, isInline: true, components: [{ type: i4.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: i5.PagerInputDirective, selector: "[kendoGridPagerInput]" }, { type: i6.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i7.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
108
+ `, isInline: true, components: [{ type: i4.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: i5.PagerInputDirective, selector: "[kendoGridPagerInput]" }, { type: i6.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i7.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
109
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInputComponent, decorators: [{
110
110
  type: Component,
111
111
  args: [{
@@ -50,7 +50,6 @@ export class PagerComponent {
50
50
  this.total = 0;
51
51
  this.skip = 1;
52
52
  this.pageChange = new EventEmitter();
53
- this.pagerWrapClass = true;
54
53
  this.gridPagerClass = true;
55
54
  this.settings = normalize({});
56
55
  this.subscriptions = new Subscription();
@@ -276,7 +275,7 @@ export class PagerComponent {
276
275
  }
277
276
  }
278
277
  PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: i1.PagerContextService }, { token: i2.NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i3.ContextService }, { token: CELL_CONTEXT, optional: true }, { token: i4.FocusRoot }, { token: i5.FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
279
- PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-pager-wrap": "this.pagerWrapClass", "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
278
+ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
280
279
  provide: FOCUS_ROOT_ACTIVE,
281
280
  useValue: true
282
281
  }, {
@@ -412,9 +411,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
412
411
  type: Input
413
412
  }], pageChange: [{
414
413
  type: Output
415
- }], pagerWrapClass: [{
416
- type: HostBinding,
417
- args: ['class.k-pager-wrap']
418
414
  }], gridPagerClass: [{
419
415
  type: HostBinding,
420
416
  args: ['class.k-grid-pager']
@@ -14,6 +14,7 @@ import { ColumnBase } from '../columns/column-base';
14
14
  import { PDFExportComponent } from '@progress/kendo-angular-pdf-export';
15
15
  import { isDocumentAvailable } from '@progress/kendo-angular-common';
16
16
  import { ContextService } from '../common/provider.service';
17
+ import { GridConfigurationErrorMessages } from '../common/error-messages';
17
18
  import * as i0 from "@angular/core";
18
19
  import * as i1 from "./pdf.service";
19
20
  import * as i2 from "../scrolling/suspend.service";
@@ -61,13 +62,13 @@ export class PDFComponent extends PDFExportComponent {
61
62
  * @hidden
62
63
  */
63
64
  saveAs(_) {
64
- throw new Error('Not supported. Use GridComponent.saveAsPDF');
65
+ throw new Error(GridConfigurationErrorMessages.unsupportedMethod('saveAs', 'GridComponent.saveAsPDF'));
65
66
  }
66
67
  /**
67
68
  * @hidden
68
69
  */
69
70
  export() {
70
- throw new Error('Not supported. Use GridComponent.drawPDF');
71
+ throw new Error(GridConfigurationErrorMessages.unsupportedMethod('export', 'GridComponent.drawPDF'));
71
72
  }
72
73
  savePDF(component) {
73
74
  this.createPDF(component, this.draw);
@@ -3,6 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { EventEmitter, Injectable, isDevMode } from '@angular/core';
6
+ import { GridConfigurationErrorMessages } from '../common/error-messages';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * @hidden
@@ -26,7 +27,7 @@ export class PDFService {
26
27
  emitEvent(emitter, args) {
27
28
  if (emitter.observers.length === 0) {
28
29
  if (isDevMode()) {
29
- throw new Error('Creating PDF requires including the PDFModule and adding the <kendo-grid-pdf> component.');
30
+ throw new Error(GridConfigurationErrorMessages.requiredModule('PDF', 'PDFModule', '<kendo-grid-pdf>'));
30
31
  }
31
32
  }
32
33
  else {
@@ -170,11 +170,13 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
170
170
  </ng-container>
171
171
  <ng-container *ngIf="isBoundColumn">{{ dataItem | valueOf: column.field: column.format}}</ng-container>
172
172
  <ng-container *ngIf="isCheckboxColumn && !isNew">
173
- <input
174
- class="k-checkbox k-checkbox-md k-rounded-md"
175
- [kendoGridSelectionCheckbox]="rowIndex"
176
- [attr.id]="selectionCheckboxId"
177
- [attr.aria-label]="selectionCheckboxLabel" />
173
+ <span class="k-checkbox-wrap">
174
+ <input
175
+ class="k-checkbox k-checkbox-md k-rounded-md"
176
+ [kendoGridSelectionCheckbox]="rowIndex"
177
+ [attr.id]="selectionCheckboxId"
178
+ [attr.aria-label]="selectionCheckboxLabel" />
179
+ </span>
178
180
  </ng-container>
179
181
  <ng-container *ngIf="isRowReorderColumn && !isNew">
180
182
  <kendo-icon-wrapper
@@ -213,13 +215,15 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
213
215
  kendoGridFocusable
214
216
  ></kendo-datepicker>
215
217
 
216
- <input
217
- *ngSwitchCase="'boolean'"
218
- type="checkbox"
219
- class="k-checkbox k-checkbox-md k-rounded-md"
220
- [formControl]="$any(formGroup.get(column.field))"
221
- kendoGridFocusable
222
- />
218
+ <span class="k-checkbox-wrap">
219
+ <input
220
+ *ngSwitchCase="'boolean'"
221
+ type="checkbox"
222
+ class="k-checkbox k-checkbox-md k-rounded-md"
223
+ [formControl]="$any(formGroup.get(column.field))"
224
+ kendoGridFocusable
225
+ />
226
+ </span>
223
227
 
224
228
  <input
225
229
  *ngSwitchDefault
@@ -231,7 +235,7 @@ CellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
231
235
  </ng-container>
232
236
  </ng-container>
233
237
  </ng-container>
234
- `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i5.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }, { type: i6.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i9.SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": i11.FieldAccessorPipe } });
238
+ `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i5.NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { type: i6.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }, { type: i9.SelectionCheckboxDirective, selector: "[kendoGridSelectionCheckbox]", inputs: ["kendoGridSelectionCheckbox"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "valueOf": i11.FieldAccessorPipe } });
235
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CellComponent, decorators: [{
236
240
  type: Component,
237
241
  args: [{
@@ -251,11 +255,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
251
255
  </ng-container>
252
256
  <ng-container *ngIf="isBoundColumn">{{ dataItem | valueOf: column.field: column.format}}</ng-container>
253
257
  <ng-container *ngIf="isCheckboxColumn && !isNew">
254
- <input
255
- class="k-checkbox k-checkbox-md k-rounded-md"
256
- [kendoGridSelectionCheckbox]="rowIndex"
257
- [attr.id]="selectionCheckboxId"
258
- [attr.aria-label]="selectionCheckboxLabel" />
258
+ <span class="k-checkbox-wrap">
259
+ <input
260
+ class="k-checkbox k-checkbox-md k-rounded-md"
261
+ [kendoGridSelectionCheckbox]="rowIndex"
262
+ [attr.id]="selectionCheckboxId"
263
+ [attr.aria-label]="selectionCheckboxLabel" />
264
+ </span>
259
265
  </ng-container>
260
266
  <ng-container *ngIf="isRowReorderColumn && !isNew">
261
267
  <kendo-icon-wrapper
@@ -294,13 +300,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
294
300
  kendoGridFocusable
295
301
  ></kendo-datepicker>
296
302
 
297
- <input
298
- *ngSwitchCase="'boolean'"
299
- type="checkbox"
300
- class="k-checkbox k-checkbox-md k-rounded-md"
301
- [formControl]="$any(formGroup.get(column.field))"
302
- kendoGridFocusable
303
- />
303
+ <span class="k-checkbox-wrap">
304
+ <input
305
+ *ngSwitchCase="'boolean'"
306
+ type="checkbox"
307
+ class="k-checkbox k-checkbox-md k-rounded-md"
308
+ [formControl]="$any(formGroup.get(column.field))"
309
+ kendoGridFocusable
310
+ />
311
+ </span>
304
312
 
305
313
  <input
306
314
  *ngSwitchDefault
@@ -3,6 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Directive, TemplateRef, Optional, Input } from '@angular/core';
6
+ import { GridConfigurationErrorMessages } from '../../common/error-messages';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * Represents the detail template of the Grid ([more information and examples]({% slug detailrowtemplate_grid %})).
@@ -32,7 +33,7 @@ export class DetailTemplateDirective {
32
33
  */
33
34
  set showIf(fn) {
34
35
  if (typeof fn !== 'function') {
35
- throw new Error(`showIf must be a function, but received ${JSON.stringify(fn)}.`);
36
+ throw new Error(GridConfigurationErrorMessages.functionType('showIf', fn));
36
37
  }
37
38
  this._condition = fn;
38
39
  }
@@ -590,12 +590,14 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
590
590
  </ng-container>
591
591
 
592
592
  <ng-container *ngIf="isCheckboxColumn(column) && !column.headerTemplateRef && $any(column).showSelectAll">
593
- <input
594
- class="k-checkbox k-checkbox-md k-rounded-md"
595
- [attr.id]="selectAllCheckboxId()"
596
- [attr.aria-label]="selectAllCheckboxLabel"
597
- kendoGridSelectAllCheckbox
598
- kendoGridFocusable>
593
+ <span class="k-checkbox-wrap">
594
+ <input
595
+ class="k-checkbox k-checkbox-md k-rounded-md"
596
+ [attr.id]="selectAllCheckboxId()"
597
+ [attr.aria-label]="selectAllCheckboxLabel"
598
+ kendoGridSelectAllCheckbox
599
+ kendoGridFocusable>
600
+ </span>
599
601
  </ng-container>
600
602
  <span kendoGridColumnHandle
601
603
  kendoDraggable
@@ -814,12 +816,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
814
816
  </ng-container>
815
817
 
816
818
  <ng-container *ngIf="isCheckboxColumn(column) && !column.headerTemplateRef && $any(column).showSelectAll">
817
- <input
818
- class="k-checkbox k-checkbox-md k-rounded-md"
819
- [attr.id]="selectAllCheckboxId()"
820
- [attr.aria-label]="selectAllCheckboxLabel"
821
- kendoGridSelectAllCheckbox
822
- kendoGridFocusable>
819
+ <span class="k-checkbox-wrap">
820
+ <input
821
+ class="k-checkbox k-checkbox-md k-rounded-md"
822
+ [attr.id]="selectAllCheckboxId()"
823
+ [attr.aria-label]="selectAllCheckboxLabel"
824
+ kendoGridSelectAllCheckbox
825
+ kendoGridFocusable>
826
+ </span>
823
827
  </ng-container>
824
828
  <span kendoGridColumnHandle
825
829
  kendoDraggable
@@ -497,7 +497,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
497
497
  [attr.data-kendo-grid-item-index]="$any(item).index"
498
498
  [class.k-selected]="isSelectable() && isRowSelected(item)">
499
499
  <ng-container *ngIf="!skipGroupDecoration">
500
- <td class="k-group-cell" *ngFor="let g of groups" role="presentation"></td>
500
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups" role="presentation"></td>
501
501
  </ng-container>
502
502
  <td class="k-hierarchy-cell k-table-td"
503
503
  *ngIf="detailTemplate?.templateRef"
@@ -599,7 +599,7 @@ TableBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
599
599
  [logicalCellsCount]="columns.length"
600
600
  [logicalSlaveCellsCount]="unlockedColumnsCount(item)">
601
601
  <ng-container *ngIf="!skipGroupDecoration">
602
- <td class="k-group-cell" *ngFor="let g of groups"></td>
602
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups"></td>
603
603
  </ng-container>
604
604
  <td class="k-hierarchy-cell k-table-td"
605
605
  *ngIf="detailTemplate?.templateRef"
@@ -727,7 +727,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
727
727
  [attr.data-kendo-grid-item-index]="$any(item).index"
728
728
  [class.k-selected]="isSelectable() && isRowSelected(item)">
729
729
  <ng-container *ngIf="!skipGroupDecoration">
730
- <td class="k-group-cell" *ngFor="let g of groups" role="presentation"></td>
730
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups" role="presentation"></td>
731
731
  </ng-container>
732
732
  <td class="k-hierarchy-cell k-table-td"
733
733
  *ngIf="detailTemplate?.templateRef"
@@ -829,7 +829,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
829
829
  [logicalCellsCount]="columns.length"
830
830
  [logicalSlaveCellsCount]="unlockedColumnsCount(item)">
831
831
  <ng-container *ngIf="!skipGroupDecoration">
832
- <td class="k-group-cell" *ngFor="let g of groups"></td>
832
+ <td class="k-group-cell k-table-td" *ngFor="let g of groups"></td>
833
833
  </ng-container>
834
834
  <td class="k-hierarchy-cell k-table-td"
835
835
  *ngIf="detailTemplate?.templateRef"
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { DomEventsService } from './../common/dom-events.service';
6
- import { Directive, HostBinding } from '@angular/core';
6
+ import { Directive, ElementRef, Renderer2 } from '@angular/core';
7
7
  import { DraggableDirective, isDocumentAvailable, isPresent } from '@progress/kendo-angular-common';
8
8
  import { SelectionService } from './selection.service';
9
9
  import { CellSelectionService } from './cell-selection.service';
@@ -37,19 +37,15 @@ const offsets = {
37
37
  * @hidden
38
38
  */
39
39
  export class GridMarqueeDirective {
40
- constructor(draggable, selection, cellSelection, domEvents) {
40
+ constructor(draggable, selection, cellSelection, domEvents, host, renderer) {
41
41
  this.draggable = draggable;
42
42
  this.selection = selection;
43
43
  this.cellSelection = cellSelection;
44
44
  this.domEvents = domEvents;
45
+ this.host = host;
46
+ this.renderer = renderer;
45
47
  this.selectionStarted = false;
46
48
  }
47
- get webkitUserSelection() {
48
- return (this.cellSelection.enableMarquee || this.selection.enableMarquee) ? 'none' : null;
49
- }
50
- get userSelection() {
51
- return (this.cellSelection.enableMarquee || this.selection.enableMarquee);
52
- }
53
49
  ngOnInit() {
54
50
  this.subscriptions = (this.draggable.kendoPress.subscribe(this.start.bind(this)));
55
51
  this.subscriptions.add(this.draggable.kendoDrag.subscribe(this.moveMarquee.bind(this)));
@@ -80,6 +76,8 @@ export class GridMarqueeDirective {
80
76
  const distance = Math.sqrt((args.pageX - press.pageX) ** 2 + (args.pageY - press.pageY) ** 2);
81
77
  if (distance > MINIMAL_DRAG_DISTANCE) {
82
78
  this.selectionStarted = true;
79
+ this.renderer.addClass(this.host.nativeElement, 'user-select-none');
80
+ this.renderer.setStyle(this.host.nativeElement, 'user-select', 'none');
83
81
  this.dragEndSubscription = merge(this.domEvents.cellMouseup.pipe(take(1)), this.draggable.kendoRelease.pipe(delay(1), take(1)))
84
82
  .subscribe(this.endSelection.bind(this));
85
83
  }
@@ -124,6 +122,8 @@ export class GridMarqueeDirective {
124
122
  if (this.dragEndSubscription) {
125
123
  this.dragEndSubscription.unsubscribe();
126
124
  }
125
+ this.renderer.removeClass(this.host.nativeElement, 'user-select-none');
126
+ this.renderer.removeStyle(this.host.nativeElement, 'user-select');
127
127
  this.dragEndSubscription = null;
128
128
  this.pressTarget = null;
129
129
  this.pressArgs = null;
@@ -160,17 +160,11 @@ export class GridMarqueeDirective {
160
160
  return null;
161
161
  }
162
162
  }
163
- GridMarqueeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, deps: [{ token: i1.DraggableDirective }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i4.DomEventsService }], target: i0.ɵɵFactoryTarget.Directive });
164
- GridMarqueeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]", host: { properties: { "style.-webkit-user-select": "this.webkitUserSelection", "class.user-select-none": "this.userSelection" } }, ngImport: i0 });
163
+ GridMarqueeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, deps: [{ token: i1.DraggableDirective }, { token: i2.SelectionService }, { token: i3.CellSelectionService }, { token: i4.DomEventsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
164
+ GridMarqueeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]", ngImport: i0 });
165
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GridMarqueeDirective, decorators: [{
166
166
  type: Directive,
167
167
  args: [{
168
168
  selector: '[kendoGridSelectionMarquee]'
169
169
  }]
170
- }], ctorParameters: function () { return [{ type: i1.DraggableDirective }, { type: i2.SelectionService }, { type: i3.CellSelectionService }, { type: i4.DomEventsService }]; }, propDecorators: { webkitUserSelection: [{
171
- type: HostBinding,
172
- args: ['style.-webkit-user-select']
173
- }], userSelection: [{
174
- type: HostBinding,
175
- args: ['class.user-select-none']
176
- }] } });
170
+ }], ctorParameters: function () { return [{ type: i1.DraggableDirective }, { type: i2.SelectionService }, { type: i3.CellSelectionService }, { type: i4.DomEventsService }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
@@ -34,6 +34,9 @@ export class Selection {
34
34
  this.cellSelectionState = new PairSet();
35
35
  this.init();
36
36
  }
37
+ /**
38
+ * @hidden
39
+ */
37
40
  get isCellSelectionMode() {
38
41
  return isPresent(this.ctx.grid.selectable) && this.ctx.grid.selectable['cell'];
39
42
  }
@@ -87,6 +90,14 @@ export class Selection {
87
90
  }
88
91
  return row.index;
89
92
  }
93
+ /**
94
+ * @hidden
95
+ */
96
+ stateToArray() {
97
+ return this.isCellSelectionMode ?
98
+ this.cellSelectionState.toArray('itemKey', 'columnKey') :
99
+ Array.from(this.rowSelectionState);
100
+ }
90
101
  getSelectionItem(row, col, colIndex) {
91
102
  const itemIdentifiers = {};
92
103
  itemIdentifiers.itemKey = this.getItemKey(row);
@@ -147,11 +158,6 @@ export class Selection {
147
158
  this.rowSelectionState = new Set(selectedKeys);
148
159
  }
149
160
  }
150
- stateToArray() {
151
- return this.isCellSelectionMode ?
152
- this.cellSelectionState.toArray('itemKey', 'columnKey') :
153
- Array.from(this.rowSelectionState);
154
- }
155
161
  }
156
162
  Selection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Selection, deps: [{ token: i1.ContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
157
163
  Selection.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Selection, selector: "kendo-grid-selection-base", inputs: { selectedKeys: "selectedKeys", rangeSelectionStartRow: "rangeSelectionStartRow", rangeSelectionStartColumnIndex: "rangeSelectionStartColumnIndex", selectionKey: ["kendoGridSelectBy", "selectionKey"], columnKey: "columnKey" }, outputs: { selectedKeysChange: "selectedKeysChange" }, usesOnChanges: true, ngImport: i0 });
package/esm2020/utils.mjs CHANGED
@@ -129,3 +129,13 @@ export const nodesToArray = (nodes) => [].slice.call(nodes);
129
129
  * @hidden
130
130
  */
131
131
  export const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
132
+ /**
133
+ * @hidden
134
+ */
135
+ export const recursiveFlatMap = (item) => isGroupResult(item) ? item.items.flatMap(recursiveFlatMap) : [{ ...item }];
136
+ /**
137
+ * @hidden
138
+ */
139
+ export const isGroupResult = (obj) => {
140
+ return 'aggregates' in obj && 'items' in obj && 'field' in obj && 'value' in obj;
141
+ };