@progress/kendo-angular-grid 20.0.4-develop.2 → 20.1.0-develop.10

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 (65) hide show
  1. package/adaptiveness/adaptive-renderer.component.d.ts +2 -3
  2. package/column-menu/column-chooser-content.component.d.ts +60 -0
  3. package/column-menu/column-chooser.component.d.ts +15 -4
  4. package/column-menu/column-list-kb-nav.service.d.ts +2 -2
  5. package/column-menu/column-list.component.d.ts +28 -21
  6. package/column-menu/column-menu-chooser.component.d.ts +2 -7
  7. package/column-menu/column-menu.component.d.ts +0 -4
  8. package/columns/column-base.d.ts +8 -0
  9. package/columns/command-column.component.d.ts +1 -1
  10. package/columns/span-column.component.d.ts +1 -1
  11. package/directives.d.ts +1 -2
  12. package/editing/cancel-command.directive.d.ts +1 -1
  13. package/editing/edit-row-options.interface.d.ts +1 -1
  14. package/editing/edit-template.directive.d.ts +1 -1
  15. package/editing/remove-command.directive.d.ts +1 -1
  16. package/editing/save-command.directive.d.ts +1 -1
  17. package/editing-directives/edit-service.interface.d.ts +2 -2
  18. package/editing-directives/external-editing.directive.d.ts +1 -1
  19. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  20. package/editing-directives/reactive-editing.directive.d.ts +1 -1
  21. package/editing-directives/template-editing.directive.d.ts +1 -1
  22. package/esm2022/adaptiveness/adaptive-renderer.component.mjs +26 -46
  23. package/esm2022/column-menu/column-chooser-content.component.mjs +306 -0
  24. package/esm2022/column-menu/column-chooser.component.mjs +39 -31
  25. package/esm2022/column-menu/column-list-kb-nav.service.mjs +4 -4
  26. package/esm2022/column-menu/column-list.component.mjs +221 -176
  27. package/esm2022/column-menu/column-menu-chooser.component.mjs +17 -36
  28. package/esm2022/column-menu/column-menu-container.component.mjs +10 -1
  29. package/esm2022/column-menu/column-menu.component.mjs +19 -29
  30. package/esm2022/columns/column-base.mjs +8 -0
  31. package/esm2022/columns/command-column.component.mjs +1 -1
  32. package/esm2022/columns/span-column.component.mjs +1 -1
  33. package/esm2022/common/column-info.service.mjs +3 -0
  34. package/esm2022/directives.mjs +0 -2
  35. package/esm2022/editing/cancel-command.directive.mjs +1 -1
  36. package/esm2022/editing/edit-template.directive.mjs +1 -1
  37. package/esm2022/editing/remove-command.directive.mjs +1 -1
  38. package/esm2022/editing/save-command.directive.mjs +1 -1
  39. package/esm2022/editing-directives/external-editing.directive.mjs +1 -1
  40. package/esm2022/editing-directives/in-cell-editing.directive.mjs +1 -1
  41. package/esm2022/editing-directives/reactive-editing.directive.mjs +1 -1
  42. package/esm2022/editing-directives/template-editing.directive.mjs +1 -1
  43. package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +2 -2
  44. package/esm2022/filtering/menu/filter-menu.component.mjs +7 -1
  45. package/esm2022/grid.component.mjs +6 -0
  46. package/esm2022/grid.module.mjs +47 -48
  47. package/esm2022/localization/messages.mjs +12 -1
  48. package/esm2022/navigation/logical-cell.directive.mjs +8 -2
  49. package/esm2022/navigation/navigation.service.mjs +1 -0
  50. package/esm2022/package-metadata.mjs +2 -2
  51. package/esm2022/rendering/list.component.mjs +23 -1
  52. package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +39 -13
  53. package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +1 -1
  54. package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +2 -2
  55. package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +1 -1
  56. package/fesm2022/progress-kendo-angular-grid.mjs +739 -391
  57. package/grid.module.d.ts +46 -47
  58. package/localization/messages.d.ts +10 -1
  59. package/navigation/navigation.service.d.ts +1 -0
  60. package/package.json +21 -21
  61. package/rendering/list.component.d.ts +1 -0
  62. package/rendering/toolbar/tools/column-chooser-tool.directive.d.ts +13 -1
  63. package/schematics/ngAdd/index.js +4 -4
  64. package/column-menu/column-chooser-item-checked.directive.d.ts +0 -21
  65. package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +0 -45
@@ -11,6 +11,7 @@ import { columnsIcon } from '@progress/kendo-svg-icons';
11
11
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
12
12
  import { ContextService } from '../common/provider.service';
13
13
  import { ColumnListComponent } from './column-list.component';
14
+ import { ColumnChooserContentComponent } from './column-chooser-content.component';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "../common/provider.service";
16
17
  import * as i2 from "../common/column-info.service";
@@ -43,6 +44,18 @@ export class ColumnChooserComponent {
43
44
  * @default false
44
45
  */
45
46
  autoSync = false;
47
+ /**
48
+ * Specifies if the column chooser displays a search box.
49
+ *
50
+ * @default true
51
+ */
52
+ filterable = true;
53
+ /**
54
+ * Specifies if the column chooser displays a select all checkbox.
55
+ *
56
+ * @default true
57
+ */
58
+ showSelectAll = true;
46
59
  /**
47
60
  * Specifies if all columns can be hidden.
48
61
  *
@@ -118,16 +131,6 @@ export class ColumnChooserComponent {
118
131
  this.close();
119
132
  }
120
133
  }
121
- /**
122
- * @hidden
123
- */
124
- onApply(changed) {
125
- this.close(true);
126
- if (changed.length) {
127
- this.changeDetector.markForCheck();
128
- this.columnInfoService.changeVisibility(changed);
129
- }
130
- }
131
134
  /**
132
135
  * @hidden
133
136
  */
@@ -135,6 +138,9 @@ export class ColumnChooserComponent {
135
138
  this.changeDetector.markForCheck();
136
139
  this.columnInfoService.changeVisibility(changed);
137
140
  }
141
+ /**
142
+ * @hidden
143
+ */
138
144
  close(focusAnchor = false) {
139
145
  if (this.popupRef) {
140
146
  this.popupRef.close();
@@ -152,7 +158,7 @@ export class ColumnChooserComponent {
152
158
  }
153
159
  }
154
160
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserComponent, deps: [{ token: i1.ContextService }, { token: i2.ColumnInfoService }, { token: i3.PopupService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
155
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChooserComponent, isStandalone: true, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }, { propertyName: "columnList", first: true, predicate: ["columnList"], descendants: true }], ngImport: i0, template: `
161
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChooserComponent, isStandalone: true, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", filterable: "filterable", showSelectAll: "showSelectAll", allowHideAll: "allowHideAll" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }, { propertyName: "columnList", first: true, predicate: ["columnList"], descendants: true }], ngImport: i0, template: `
156
162
  <button #anchor
157
163
  kendoButton
158
164
  type="button"
@@ -165,20 +171,19 @@ export class ColumnChooserComponent {
165
171
  [attr.aria-expanded]="!!(popupRef)"
166
172
  [attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
167
173
  <ng-template #template>
168
- <kendo-grid-columnlist
169
- #columnList
174
+ <kendo-grid-column-chooser-content
170
175
  [columns]="columns"
171
- [ariaLabel]="messageFor('columns')"
172
- [isLast]="true"
173
- [applyText]="messageFor('columnsApply')"
174
- [resetText]="messageFor('columnsReset')"
175
176
  [autoSync]="autoSync"
177
+ [filterable]="filterable"
178
+ [showSelectAll]="showSelectAll"
179
+ [closeOnReset]="false"
180
+ [isLast]="true"
176
181
  [allowHideAll]="allowHideAll"
177
- (apply)="onApply($event)"
178
- (columnChange)="onChange($event)">
179
- </kendo-grid-columnlist>
182
+ (close)="close(true)"
183
+ >
184
+ </kendo-grid-column-chooser-content>
180
185
  </ng-template>
181
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "showActions", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
186
+ `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: ColumnChooserContentComponent, selector: "kendo-grid-column-chooser-content", inputs: ["filterable", "showSelectAll", "showCheckedCount", "allowHideAll", "autoSync", "actionsClass", "closeOnReset", "columns", "isLast", "isExpanded", "service"], outputs: ["close"] }] });
182
187
  }
183
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserComponent, decorators: [{
184
189
  type: Component,
@@ -197,25 +202,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
197
202
  [attr.aria-expanded]="!!(popupRef)"
198
203
  [attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
199
204
  <ng-template #template>
200
- <kendo-grid-columnlist
201
- #columnList
205
+ <kendo-grid-column-chooser-content
202
206
  [columns]="columns"
203
- [ariaLabel]="messageFor('columns')"
204
- [isLast]="true"
205
- [applyText]="messageFor('columnsApply')"
206
- [resetText]="messageFor('columnsReset')"
207
207
  [autoSync]="autoSync"
208
+ [filterable]="filterable"
209
+ [showSelectAll]="showSelectAll"
210
+ [closeOnReset]="false"
211
+ [isLast]="true"
208
212
  [allowHideAll]="allowHideAll"
209
- (apply)="onApply($event)"
210
- (columnChange)="onChange($event)">
211
- </kendo-grid-columnlist>
213
+ (close)="close(true)"
214
+ >
215
+ </kendo-grid-column-chooser-content>
212
216
  </ng-template>
213
217
  `,
214
218
  standalone: true,
215
- imports: [ButtonComponent, ColumnListComponent]
219
+ imports: [ButtonComponent, ColumnListComponent, ColumnChooserContentComponent]
216
220
  }]
217
221
  }], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i2.ColumnInfoService }, { type: i3.PopupService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { autoSync: [{
218
222
  type: Input
223
+ }], filterable: [{
224
+ type: Input
225
+ }], showSelectAll: [{
226
+ type: Input
219
227
  }], allowHideAll: [{
220
228
  type: Input
221
229
  }], anchor: [{
@@ -25,12 +25,12 @@ export class ColumnListKeyboardNavigation {
25
25
  this.toggle(this.activeIndex, true);
26
26
  }
27
27
  toggle(index, active) {
28
- const element = this.items[index]?.host.nativeElement;
29
- element && this.renderer.setAttribute(this.items[index].host.nativeElement, 'tabindex', active ? '0' : '-1');
30
- active && element?.focus();
28
+ const element = this.items[index]?.hostElement.nativeElement.closest('.k-column-list-item');
29
+ element && this.renderer.setAttribute(element, 'tabindex', active ? '0' : '-1');
30
+ active && element?.focus({ preventScroll: true });
31
31
  }
32
32
  toggleCheckedState() {
33
- this.items[this.activeIndex].host.nativeElement.firstElementChild.click();
33
+ this.items[this.activeIndex].hostElement.nativeElement.closest('.k-column-list-item').firstElementChild.click();
34
34
  }
35
35
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListKeyboardNavigation, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
36
36
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListKeyboardNavigation });