@progress/kendo-angular-grid 12.0.0-develop.8 → 12.0.0-develop.9

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 (87) hide show
  1. package/column-menu/column-menu-item-content-template.directive.d.ts +13 -24
  2. package/column-menu/column-menu-template.directive.d.ts +14 -28
  3. package/columns/column-base.d.ts +4 -0
  4. package/columns/reorder-column.component.d.ts +31 -0
  5. package/databinding.directive.d.ts +15 -1
  6. package/editing/add-command.directive.d.ts +1 -1
  7. package/editing/cancel-command.directive.d.ts +4 -16
  8. package/editing/edit-template.directive.d.ts +2 -3
  9. package/editing/remove-command.directive.d.ts +6 -6
  10. package/editing/save-command.directive.d.ts +3 -15
  11. package/editing-directives/in-cell-editing.directive.d.ts +1 -1
  12. package/editing-directives/template-editing.directive.d.ts +1 -1
  13. package/esm2020/column-menu/column-menu-item-content-template.directive.mjs +13 -24
  14. package/esm2020/column-menu/column-menu-template.directive.mjs +14 -28
  15. package/esm2020/columns/column-base.mjs +4 -0
  16. package/esm2020/columns/reorder-column.component.mjs +55 -0
  17. package/esm2020/databinding.directive.mjs +30 -3
  18. package/esm2020/editing/add-command.directive.mjs +1 -1
  19. package/esm2020/editing/cancel-command.directive.mjs +4 -16
  20. package/esm2020/editing/edit-template.directive.mjs +2 -3
  21. package/esm2020/editing/remove-command.directive.mjs +6 -6
  22. package/esm2020/editing/save-command.directive.mjs +3 -15
  23. package/esm2020/editing-directives/in-cell-editing.directive.mjs +1 -1
  24. package/esm2020/editing-directives/template-editing.directive.mjs +1 -1
  25. package/esm2020/excel/excel-command.directive.mjs +2 -2
  26. package/esm2020/grid.component.mjs +195 -38
  27. package/esm2020/grid.module.mjs +70 -65
  28. package/esm2020/grouping/group-footer-template.directive.mjs +9 -35
  29. package/esm2020/grouping/group-header-column-template.directive.mjs +2 -2
  30. package/esm2020/grouping/group-header-template.directive.mjs +9 -37
  31. package/esm2020/index.mjs +1 -0
  32. package/esm2020/localization/messages.mjs +3 -1
  33. package/esm2020/navigation/focusable.directive.mjs +10 -41
  34. package/esm2020/package-metadata.mjs +2 -2
  35. package/esm2020/pager/pager-template.directive.mjs +13 -46
  36. package/esm2020/pdf/pdf-template.directive.mjs +10 -38
  37. package/esm2020/rendering/body.module.mjs +9 -4
  38. package/esm2020/rendering/cell-loading.template.directive.mjs +11 -8
  39. package/esm2020/rendering/cell-template.directive.mjs +11 -35
  40. package/esm2020/rendering/cell.component.mjs +43 -10
  41. package/esm2020/rendering/details/detail-template.directive.mjs +10 -58
  42. package/esm2020/rendering/details-expand.directive.mjs +1 -1
  43. package/esm2020/rendering/footer/footer-template.directive.mjs +8 -35
  44. package/esm2020/rendering/header/header-template.directive.mjs +9 -36
  45. package/esm2020/rendering/loading-template.directive.mjs +1 -1
  46. package/esm2020/rendering/no-records-template.directive.mjs +11 -58
  47. package/esm2020/rendering/toolbar/toolbar-template.directive.mjs +10 -56
  48. package/esm2020/row-reordering/row-reorder.service.mjs +232 -0
  49. package/esm2020/row-reordering/types.mjs +5 -0
  50. package/esm2020/row-reordering/utils.mjs +87 -0
  51. package/esm2020/selection/selectall-checkbox.directive.mjs +12 -1
  52. package/esm2020/selection/selection-checkbox.directive.mjs +11 -44
  53. package/esm2020/selection/selection-default.mjs +1 -0
  54. package/esm2020/selection/selection.directive.mjs +1 -1
  55. package/excel/excel-command.directive.d.ts +2 -2
  56. package/fesm2015/progress-kendo-angular-grid.mjs +830 -682
  57. package/fesm2020/progress-kendo-angular-grid.mjs +826 -682
  58. package/grid.component.d.ts +46 -4
  59. package/grid.module.d.ts +87 -85
  60. package/grouping/group-footer-template.directive.d.ts +9 -35
  61. package/grouping/group-header-column-template.directive.d.ts +2 -2
  62. package/grouping/group-header-template.directive.d.ts +9 -37
  63. package/index.d.ts +2 -0
  64. package/localization/messages.d.ts +5 -1
  65. package/navigation/focusable.directive.d.ts +10 -41
  66. package/package.json +15 -14
  67. package/pager/pager-template.directive.d.ts +13 -46
  68. package/pdf/pdf-template.directive.d.ts +10 -38
  69. package/rendering/body.module.d.ts +9 -8
  70. package/rendering/cell-loading.template.directive.d.ts +11 -8
  71. package/rendering/cell-template.directive.d.ts +11 -35
  72. package/rendering/cell.component.d.ts +5 -0
  73. package/rendering/details/detail-template.directive.d.ts +10 -58
  74. package/rendering/details-expand.directive.d.ts +1 -1
  75. package/rendering/footer/footer-template.directive.d.ts +8 -35
  76. package/rendering/header/header-template.directive.d.ts +9 -36
  77. package/rendering/loading-template.directive.d.ts +1 -1
  78. package/rendering/no-records-template.directive.d.ts +11 -58
  79. package/rendering/toolbar/toolbar-template.directive.d.ts +10 -56
  80. package/row-reordering/row-reorder.service.d.ts +56 -0
  81. package/row-reordering/types.d.ts +40 -0
  82. package/row-reordering/utils.d.ts +78 -0
  83. package/schematics/ngAdd/index.js +2 -2
  84. package/selection/selectall-checkbox.directive.d.ts +12 -1
  85. package/selection/selection-checkbox.directive.d.ts +11 -44
  86. package/selection/selection-default.d.ts +1 -0
  87. package/selection/selection.directive.d.ts +1 -1
@@ -0,0 +1,232 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { EventEmitter, Injectable, Output, Renderer2 } from '@angular/core';
6
+ import { isDocumentAvailable, isPresent } from '@progress/kendo-angular-common';
7
+ import { getOffset, isNextSibling, isPreviousSibling, dropPosition, hintIcons, hintSVGIcons, hintClasses, hintStyles, dropIndicatorClasses, dropIndicatorStyles, isDifferentParent, defaultSelectors } from './utils';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * @hidden
11
+ */
12
+ export class RowReorderService {
13
+ constructor(renderer) {
14
+ this.renderer = renderer;
15
+ this.hintElement = null;
16
+ this.defaultSelectors = defaultSelectors;
17
+ this.hintText = '';
18
+ this.lastDropPosition = dropPosition.forbidden;
19
+ this.dragTarget = null;
20
+ this.dropTarget = null;
21
+ this.rowReorder = new EventEmitter();
22
+ }
23
+ press(ev) {
24
+ this.dragTarget = ev.dragTarget;
25
+ }
26
+ dragStart() {
27
+ this.createDropIndicator();
28
+ }
29
+ drag(ev) {
30
+ if (isPresent(ev.hintElement) && !isPresent(this.hintElement)) {
31
+ this.hintElement = ev.hintElement;
32
+ this.decorateHint();
33
+ }
34
+ const position = {
35
+ x: ev.dragEvent.clientX,
36
+ y: ev.dragEvent.clientY
37
+ };
38
+ if (isPresent(this.hintElement)) {
39
+ this.renderer.setStyle(this.hintElement, 'left', `${position.x}px`);
40
+ this.renderer.setStyle(this.hintElement, 'top', `${position.y}px`);
41
+ }
42
+ this.positionDropIndicator(ev);
43
+ }
44
+ dragEnter(ev) {
45
+ this.dropTarget = ev.dropTarget;
46
+ }
47
+ dragLeave() {
48
+ this.dropTarget = null;
49
+ this.hide();
50
+ }
51
+ dragEnd() {
52
+ this.destroyDropIndicator();
53
+ this.dragTarget = null;
54
+ this.dropTarget = null;
55
+ this.hintElement = null;
56
+ }
57
+ drop(ev) {
58
+ this.destroyDropIndicator();
59
+ const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, ev.dragData);
60
+ this.rowReorder.emit(rowReorderArgs);
61
+ }
62
+ reorderRows(ev, collection) {
63
+ if (this.lastDropPosition === dropPosition.forbidden) {
64
+ return;
65
+ }
66
+ ;
67
+ const { draggedRows, dropTargetRow } = ev;
68
+ const draggedDataItem = draggedRows[0].dataItem;
69
+ const dropTargetDataItem = dropTargetRow.dataItem;
70
+ const draggedItemIndex = collection.indexOf(draggedDataItem);
71
+ const dropTargetIndex = collection.indexOf(dropTargetDataItem);
72
+ const idxToAdd = this.calculateIndexToAdd(draggedItemIndex, dropTargetIndex);
73
+ collection.splice(draggedItemIndex, 1);
74
+ collection.splice(idxToAdd, 0, draggedDataItem);
75
+ }
76
+ get hintIcon() {
77
+ return hintIcons[this.lastDropPosition];
78
+ }
79
+ get hintSVGIcon() {
80
+ return hintSVGIcons[this.lastDropPosition];
81
+ }
82
+ getDefaultHintText(columns, data) {
83
+ let hintText = '';
84
+ const columnFieldsArray = columns
85
+ .toArray()
86
+ .filter(column => !column.hidden && isPresent(column.field))
87
+ .map(column => column.field);
88
+ const draggedDragRow = this.getDragRowPerElement(this.dragTarget, data);
89
+ const draggedDataItem = draggedDragRow?.dataItem;
90
+ isPresent(draggedDataItem) && columnFieldsArray.forEach(column => {
91
+ const columnValue = draggedDataItem[column];
92
+ isPresent(columnValue) ? hintText += `${columnValue} ` : null;
93
+ });
94
+ return hintText.trim();
95
+ }
96
+ rowReorderArgs(dragRow, dropRow, data) {
97
+ const dragRowData = this.getDragRowPerElement(dragRow, data);
98
+ const dropRowData = this.getDragRowPerElement(dropRow, data);
99
+ return {
100
+ draggedRows: [dragRowData],
101
+ dropTargetRow: dropRowData,
102
+ dropPosition: this.lastDropPosition
103
+ };
104
+ }
105
+ getDragRowPerElement(row, data) {
106
+ let rowIndex = row?.getAttribute('data-kendo-grid-item-index');
107
+ rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;
108
+ const skip = this.skip || 0;
109
+ const dataItem = rowIndex === -1 ? null : data[rowIndex - skip];
110
+ return {
111
+ dataItem,
112
+ rowIndex,
113
+ element: row
114
+ };
115
+ }
116
+ createDropIndicator() {
117
+ if (!isDocumentAvailable()) {
118
+ return;
119
+ }
120
+ this.dropIndicator = document.createElement('div');
121
+ this.decorateDropIndicator();
122
+ this.dropIndicator.innerHTML = `
123
+ <div class="k-drop-hint-start"></div>
124
+ <div class="k-drop-hint-line"></div>
125
+ `;
126
+ document.body.appendChild(this.dropIndicator);
127
+ this.hide();
128
+ }
129
+ destroyDropIndicator() {
130
+ if (!isDocumentAvailable()) {
131
+ return;
132
+ }
133
+ ;
134
+ if (this.dropIndicator && this.dropIndicator.parentElement) {
135
+ document.body.removeChild(this.dropIndicator);
136
+ this.dropIndicator = null;
137
+ }
138
+ }
139
+ decorateHint() {
140
+ hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));
141
+ Object.keys(hintStyles)
142
+ .forEach(style => this.renderer.setStyle(this.hintElement, style, hintStyles[style]));
143
+ }
144
+ positionDropIndicator(ev) {
145
+ this.lastDropPosition = this.getDropPosition(ev.dragEvent);
146
+ this.updateDropIndicatorPosition();
147
+ }
148
+ calculateIndexToAdd(dragIndex, dropIndex) {
149
+ if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.after) {
150
+ return dropIndex + 1;
151
+ }
152
+ else if (dragIndex > dropIndex && this.lastDropPosition === dropPosition.before) {
153
+ return dropIndex;
154
+ }
155
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.after) {
156
+ return dropIndex;
157
+ }
158
+ else if (dragIndex < dropIndex && this.lastDropPosition === dropPosition.before) {
159
+ return dropIndex - 1;
160
+ }
161
+ }
162
+ decorateDropIndicator() {
163
+ dropIndicatorClasses.forEach(className => this.renderer.addClass(this.dropIndicator, className));
164
+ Object.keys(dropIndicatorStyles)
165
+ .forEach(style => this.renderer.setStyle(this.dropIndicator, style, dropIndicatorStyles[style]));
166
+ }
167
+ ;
168
+ getDropPosition(e) {
169
+ if (this.dropTarget === this.dragTarget || !isPresent(this.dropTarget)) {
170
+ return dropPosition.forbidden;
171
+ }
172
+ ;
173
+ if (isDifferentParent(this.dropTarget, this.dragTarget)) {
174
+ return dropPosition.forbidden;
175
+ }
176
+ ;
177
+ const itemViewPortCoords = this.dropTarget.getBoundingClientRect();
178
+ const itemDivisionsCount = 2;
179
+ const itemDivisionHeight = itemViewPortCoords.height / itemDivisionsCount;
180
+ const pointerPosition = e.clientY;
181
+ const itemTop = itemViewPortCoords.top;
182
+ let currentDropPosition = null;
183
+ if (pointerPosition < itemTop + itemDivisionHeight) {
184
+ currentDropPosition = dropPosition.before;
185
+ }
186
+ else if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) {
187
+ currentDropPosition = dropPosition.after;
188
+ }
189
+ if (currentDropPosition === dropPosition.before && isNextSibling(this.dropTarget, this.dragTarget)) {
190
+ currentDropPosition = dropPosition.forbidden;
191
+ }
192
+ else if (currentDropPosition === dropPosition.after && isPreviousSibling(this.dropTarget, this.dragTarget)) {
193
+ currentDropPosition = dropPosition.forbidden;
194
+ }
195
+ return currentDropPosition;
196
+ }
197
+ updateDropIndicatorPosition() {
198
+ if (this.shouldHideDropIndicator() || !this.dropTarget) {
199
+ this.hide();
200
+ return;
201
+ }
202
+ this.show();
203
+ const destinationItemOffset = getOffset(this.dropTarget);
204
+ let indicatorOffsetTop = destinationItemOffset.top;
205
+ const indicatorOffsetLeft = destinationItemOffset.left + this.dropIndicator.offsetWidth / 2;
206
+ if (this.lastDropPosition === dropPosition.after) {
207
+ indicatorOffsetTop += this.dropTarget.offsetHeight;
208
+ }
209
+ this.renderer.setStyle(this.dropIndicator, 'left', `${indicatorOffsetLeft}px`);
210
+ this.renderer.setStyle(this.dropIndicator, 'top', `${indicatorOffsetTop}px`);
211
+ }
212
+ shouldHideDropIndicator() {
213
+ return this.lastDropPosition === dropPosition.forbidden;
214
+ }
215
+ hide() {
216
+ if (isPresent(this.dropIndicator)) {
217
+ this.dropIndicator.style.display = 'none';
218
+ }
219
+ }
220
+ show() {
221
+ if (isPresent(this.dropIndicator)) {
222
+ this.dropIndicator.style.display = '';
223
+ }
224
+ }
225
+ }
226
+ RowReorderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
227
+ RowReorderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RowReorderService, decorators: [{
229
+ type: Injectable
230
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { rowReorder: [{
231
+ type: Output
232
+ }] } });
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -0,0 +1,87 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { cancelIcon, insertMiddleIcon } from '@progress/kendo-svg-icons';
6
+ /**
7
+ * @hidden
8
+ */
9
+ export const isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;
10
+ /**
11
+ * @hidden
12
+ */
13
+ export const isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;
14
+ /**
15
+ * @hidden
16
+ */
17
+ export const isDifferentParent = (dropTarget, dragTarget) => dropTarget?.parentElement !== dragTarget?.parentElement;
18
+ /**
19
+ * @hidden
20
+ */
21
+ export function getOffset(element) {
22
+ const { clientTop, clientLeft } = getDocument(element);
23
+ const { pageYOffset, pageXOffset } = getWindow(element);
24
+ const { top, left } = element.getBoundingClientRect();
25
+ return {
26
+ top: top + pageYOffset - clientTop,
27
+ left: left + pageXOffset - clientLeft
28
+ };
29
+ }
30
+ ;
31
+ /**
32
+ * @hidden
33
+ */
34
+ export const hintIcons = {
35
+ forbidden: 'cancel',
36
+ before: 'insert-middle',
37
+ after: 'insert-middle'
38
+ };
39
+ /**
40
+ * @hidden
41
+ */
42
+ export const hintSVGIcons = {
43
+ forbidden: cancelIcon,
44
+ before: insertMiddleIcon,
45
+ after: insertMiddleIcon
46
+ };
47
+ /**
48
+ * @hidden
49
+ */
50
+ export const dropPosition = {
51
+ forbidden: 'forbidden',
52
+ before: 'before',
53
+ after: 'after'
54
+ };
55
+ /**
56
+ * @hidden
57
+ */
58
+ export const hintStyles = {
59
+ zIndex: '20000',
60
+ display: 'flex',
61
+ position: 'fixed'
62
+ };
63
+ /**
64
+ * @hidden
65
+ */
66
+ export const hintClasses = ['k-drag-clue', 'k-reorder-clue'];
67
+ /**
68
+ * @hidden
69
+ */
70
+ export const dropIndicatorStyles = {
71
+ zIndex: '19000',
72
+ position: 'absolute'
73
+ };
74
+ /**
75
+ * @hidden
76
+ */
77
+ export const dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];
78
+ /**
79
+ * @hidden
80
+ */
81
+ export const defaultSelectors = {
82
+ handle: '.k-table-td.k-drag-cell',
83
+ dragTarget: '.k-master-row',
84
+ dropTarget: '.k-master-row'
85
+ };
86
+ const getDocument = element => element?.ownerDocument.documentElement;
87
+ const getWindow = element => element?.ownerDocument.defaultView;
@@ -10,7 +10,18 @@ import { hasObservers } from '@progress/kendo-angular-common';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "./selection.service";
12
12
  /**
13
- * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).
13
+ * Represents the select-all checkbox feature of the Grid ([see example](slug:grid_selection_persistence#toc-selecting-all-items)).
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <input
18
+ * type="checkbox"
19
+ * kendoCheckBox
20
+ * kendoGridSelectAllCheckbox
21
+ * [state]="selectAllState"
22
+ * (selectAllChange)="onSelectAllChange($event)"
23
+ * />
24
+ * ```
14
25
  */
15
26
  export class SelectAllCheckboxDirective {
16
27
  constructor(selectionService, el, renderer, ngZone) {
@@ -9,53 +9,20 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "./selection.service";
10
10
  /**
11
11
  * Represents the row-selection checkbox of the Grid. The directive expects the
12
- * index of the current row as an input parameter. Inside the
13
- * [CheckboxColumnComponent]({% slug api_grid_checkboxcolumncomponent %}), apply the
14
- * directive to an `input` element. When the user clicks the checkbox that is associated
15
- * with the directive, a [selectionChange]({% slug api_grid_gridcomponent %}#toc-selectionChange)
12
+ * index of the current row as an input parameter. Inside the [`CellTemplateDirective`](slug:api_grid_celltemplatedirective), apply the
13
+ * `kendoGridSelectionCheckbox` to an `<input type="checkbox"/>` element. When the user clicks the checkbox that is associated
14
+ * with the directive, a [selectionChange](slug:api_grid_gridcomponent#toc-selectionChange)
16
15
  * event is triggered.
17
16
  *
18
17
  * @example
19
- * ```ts-preview
20
- *
21
- * _@Component({
22
- * selector: 'my-app',
23
- * template: `
24
- * <kendo-grid [data]="gridData" [selectable]="{enabled: true, checkboxOnly: true}">
25
- * <kendo-grid-checkbox-column title="Custom checkbox">
26
- * <ng-template kendoGridCellTemplate let-idx="rowIndex">
27
- * Select row <input [kendoGridSelectionCheckbox]="idx" />
28
- * </ng-template>
29
- * </kendo-grid-checkbox-column>
30
- * <kendo-grid-column field="ProductID" title="Product ID" [width]="120">
31
- * </kendo-grid-column>
32
- * <kendo-grid-column field="ProductName" title="Product Name">
33
- * </kendo-grid-column>
34
- * </kendo-grid>
35
- * `
36
- * })
37
- *
38
- * class AppComponent {
39
- * public gridData: any[];
40
- *
41
- * constructor() {
42
- * this.gridData = products;
43
- * }
44
- * }
45
- *
46
- * const products = [{
47
- * "ProductID": 1,
48
- * "ProductName": "Chai",
49
- * "UnitPrice": 18.0000,
50
- * "Discontinued": true
51
- * }, {
52
- * "ProductID": 2,
53
- * "ProductName": "Chang",
54
- * "UnitPrice": 19.0000,
55
- * "Discontinued": false
56
- * }
57
- * ];
58
- *
18
+ * ```html
19
+ * <kendo-grid ... >
20
+ * <kendo-grid-column>
21
+ * <ng-template kendoGridCellTemplate let-rowIndex="rowIndex">
22
+ * <input ... [kendoGridSelectionCheckbox]="rowIndex"/>
23
+ * </ng-template>
24
+ * </kendo-grid-column>
25
+ * </kendo-grid>
59
26
  * ```
60
27
  */
61
28
  export class SelectionCheckboxDirective {
@@ -17,6 +17,7 @@ export class Selection {
17
17
  this.cd = cd;
18
18
  /**
19
19
  * Defines the collection that will store the selected item keys.
20
+ * @default []
20
21
  */
21
22
  this.selectedKeys = [];
22
23
  /**
@@ -9,7 +9,7 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "../common/provider.service";
10
10
  /**
11
11
  * A directive which stores the row selection state of the Grid in memory
12
- * ([see example]({% slug selection_grid %}#toc-during-data-operations)).
12
+ * ([see example]({% slug selection_grid %}#toc-toggling-the-selection-functionality)).
13
13
  */
14
14
  export class SelectionDirective extends Selection {
15
15
  constructor(ctx, cd) {
@@ -10,13 +10,13 @@ import * as i0 from "@angular/core";
10
10
  /**
11
11
  * Represents the `export-to-Excel` command of the Grid. You can apply this
12
12
  * directive to any `button` element inside a
13
- * [ToolbarTemplate]({% slug api_grid_commandcolumncomponent %}).
13
+ * [ToolbarTemplate]({% slug api_grid_toolbartemplatedirective %}).
14
14
  * When the user clicks a button associated with the directive, the
15
15
  * [excelExport]({% slug api_grid_gridcomponent %}#toc-excelexport) event
16
16
  * fires ([see example]({% slug excelexport_grid %})).
17
17
  *
18
18
  * @example
19
- * ```html-no-run
19
+ * ```html
20
20
  * <kendo-grid>
21
21
  * <ng-template kendoGridToolbarTemplate>
22
22
  * <button kendoGridExcelCommand>Export to PDF</button>