@progress/kendo-angular-grid 21.1.1-develop.2 → 21.2.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.
- package/codemods/utils.js +805 -394
- package/codemods/v20/grid-kendogridgroupbinding.js +8 -11
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +850 -756
- package/esm2022/aggregates/status-bar.component.mjs +13 -11
- package/esm2022/column-menu/column-chooser-content.component.mjs +133 -123
- package/esm2022/column-menu/column-list.component.mjs +64 -61
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +12 -11
- package/esm2022/column-menu/column-menu-autosize.component.mjs +12 -11
- package/esm2022/column-menu/column-menu-item.component.mjs +221 -85
- package/esm2022/column-menu/column-menu-position.component.mjs +46 -43
- package/esm2022/column-menu/column-menu.component.mjs +401 -315
- package/esm2022/databinding.directive.mjs +1 -0
- package/esm2022/editing/add-command.directive.mjs +27 -17
- package/esm2022/editing/cancel-command.directive.mjs +27 -17
- package/esm2022/editing/edit-command.directive.mjs +27 -17
- package/esm2022/editing/form/form-formfield.component.mjs +97 -70
- package/esm2022/editing/form/form.component.mjs +77 -61
- package/esm2022/editing/remove-command.directive.mjs +27 -17
- package/esm2022/editing/save-command.directive.mjs +27 -17
- package/esm2022/excel/excel-command.directive.mjs +27 -17
- package/esm2022/filtering/cell/filter-cell-operators.component.mjs +20 -17
- package/esm2022/filtering/cell/filter-cell.component.mjs +35 -33
- package/esm2022/filtering/filter-row.component.mjs +37 -29
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +34 -31
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +8 -7
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +52 -49
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +115 -92
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +50 -47
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +36 -33
- package/esm2022/filtering/multicheckbox-filter.component.mjs +54 -43
- package/esm2022/grid.component.mjs +1579 -1483
- package/esm2022/grouping/group-header.component.mjs +113 -89
- package/esm2022/grouping/group-panel.component.mjs +84 -77
- package/esm2022/index.mjs +1 -0
- package/esm2022/navigation/navigation.service.mjs +4 -4
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pdf/pdf-command.directive.mjs +27 -17
- package/esm2022/rendering/cell.component.mjs +411 -365
- package/esm2022/rendering/common/col-group.component.mjs +25 -15
- package/esm2022/rendering/common/loading.component.mjs +23 -19
- package/esm2022/rendering/details/detail-template.directive.mjs +6 -4
- package/esm2022/rendering/footer/footer.component.mjs +128 -112
- package/esm2022/rendering/header/header.component.mjs +414 -353
- package/esm2022/rendering/list.component.mjs +227 -204
- package/esm2022/rendering/table-body.component.mjs +553 -493
- package/esm2022/rendering/toolbar/toolbar.component.mjs +13 -11
- package/esm2022/rendering/toolbar/tools/ai-assistant/ai-assistant.component.mjs +86 -79
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +54 -51
- package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +141 -118
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +72 -65
- package/fesm2022/progress-kendo-angular-grid.mjs +6462 -5545
- package/filtering/menu/date-filter-menu-input.component.d.ts +1 -2
- package/filtering/menu/filter-menu-container.component.d.ts +2 -2
- package/index.d.ts +1 -0
- package/package.json +25 -26
- package/rendering/details/detail-template.directive.d.ts +6 -4
- package/schematics/ngAdd/index.js +7 -7
- package/codemods/template-transformer/index.js +0 -93
|
@@ -12,7 +12,7 @@ import { caretAltDownIcon, caretAltRightIcon, caretAltLeftIcon } from '@progress
|
|
|
12
12
|
import { FieldAccessorPipe } from '../rendering/common/field-accessor.pipe';
|
|
13
13
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
14
14
|
import { LogicalCellDirective } from '../navigation/logical-cell.directive';
|
|
15
|
-
import {
|
|
15
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
16
16
|
import { TemplateContextDirective } from '@progress/kendo-angular-common';
|
|
17
17
|
import * as i0 from "@angular/core";
|
|
18
18
|
import * as i1 from "./groups.service";
|
|
@@ -118,13 +118,16 @@ export class GroupHeaderComponent {
|
|
|
118
118
|
return this.ctx.grid?.isStacked;
|
|
119
119
|
}
|
|
120
120
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupHeaderComponent, deps: [{ token: i1.GroupsService }, { token: i2.GroupInfoService }, { token: i3.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
122
|
-
|
|
121
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GroupHeaderComponent, isStandalone: true, selector: "[kendoGridGroupHeader]", inputs: { rowIndex: "rowIndex", logicalRowIndex: "logicalRowIndex", item: "item", skipGroupDecoration: "skipGroupDecoration", hasDetails: "hasDetails", totalColumnsCount: "totalColumnsCount", hasGroupHeaderColumn: "hasGroupHeaderColumn", groupHeaderColumns: "groupHeaderColumns", columns: "columns", groups: "groups" }, host: { properties: { "class.k-grouping-row": "this.groupItemClass", "class.k-table-group-row": "this.tableGroupRowClass" } }, ngImport: i0, template: `
|
|
122
|
+
@if (!skipGroupDecoration) {
|
|
123
|
+
@for (g of prefixGroupCell(item); track $index) {
|
|
123
124
|
<td class="k-group-cell k-table-td k-table-group-td"
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
role="presentation"
|
|
126
|
+
></td>
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
@if (!(skipGroupDecoration && hasGroupHeaderColumn)) {
|
|
130
|
+
<td [attr.colspan]="groupSpan(item)"
|
|
128
131
|
[attr.role]="ariaRole()"
|
|
129
132
|
aria-selected="false"
|
|
130
133
|
class="k-table-td"
|
|
@@ -136,19 +139,19 @@ export class GroupHeaderComponent {
|
|
|
136
139
|
[groupItem]="item"
|
|
137
140
|
[colSpan]="logicalColSpan()">
|
|
138
141
|
<p class="k-reset">
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
142
|
+
@if (!skipGroupDecoration) {
|
|
143
|
+
<a href="#" tabindex="-1" (click)="toggleGroup(item, $event)"
|
|
144
|
+
role="presentation"
|
|
145
|
+
[attr.title]="groupButtonTitle"
|
|
146
|
+
[attr.aria-label]="groupButtonTitle">
|
|
147
|
+
<kendo-icon-wrapper
|
|
148
|
+
[name]="arrowIcon"
|
|
149
|
+
[svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
|
|
150
|
+
</a>
|
|
151
|
+
@if (!groupHeaderTemplate(item)) {
|
|
152
|
+
{{groupTitle(item)}}: {{item.data | valueOf:"value": formatForGroup(item)}}
|
|
153
|
+
}
|
|
154
|
+
<ng-template
|
|
152
155
|
[templateContext]="{
|
|
153
156
|
templateRef: groupHeaderTemplate(item),
|
|
154
157
|
group: item.data,
|
|
@@ -159,13 +162,15 @@ export class GroupHeaderComponent {
|
|
|
159
162
|
expanded: isExpanded,
|
|
160
163
|
$implicit: item.data
|
|
161
164
|
}">
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
</ng-template>
|
|
166
|
+
}
|
|
164
167
|
</p>
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
168
|
+
@if (isStacked) {
|
|
169
|
+
<div class="k-grid-column-template">
|
|
170
|
+
@for (column of groupHeaderColumns; track column; let index = $index) {
|
|
171
|
+
@if (column.groupHeaderColumnTemplateRef) {
|
|
172
|
+
<div class="k-column-template-item">
|
|
173
|
+
<ng-template [ngTemplateOutlet]="column.groupHeaderColumnTemplateRef"
|
|
169
174
|
[ngTemplateOutletContext]="{
|
|
170
175
|
group: item.data,
|
|
171
176
|
aggregates: item.data?.aggregates,
|
|
@@ -174,24 +179,29 @@ export class GroupHeaderComponent {
|
|
|
174
179
|
index: item.index,
|
|
175
180
|
$implicit: item.data
|
|
176
181
|
}">
|
|
177
|
-
|
|
182
|
+
</ng-template>
|
|
178
183
|
</div>
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
</div>
|
|
187
|
+
}
|
|
188
|
+
</td>
|
|
189
|
+
}
|
|
190
|
+
@if (hasGroupHeaderColumn && !isStacked) {
|
|
191
|
+
@for (column of groupHeaderColumns; track column; let index = $index) {
|
|
192
|
+
<td
|
|
193
|
+
role="gridcell"
|
|
194
|
+
class="k-table-td"
|
|
195
|
+
aria-selected="false"
|
|
196
|
+
kendoGridLogicalCell
|
|
197
|
+
[logicalRowIndex]="logicalRowIndex"
|
|
198
|
+
[logicalColIndex]="index + 1"
|
|
199
|
+
[logicalSlaveCell]="false"
|
|
200
|
+
[groupItem]="item"
|
|
201
|
+
[colSpan]="1"
|
|
202
|
+
>
|
|
203
|
+
@if (column.groupHeaderColumnTemplateRef) {
|
|
204
|
+
<ng-template [ngTemplateOutlet]="column.groupHeaderColumnTemplateRef"
|
|
195
205
|
[ngTemplateOutletContext]="{
|
|
196
206
|
group: item.data,
|
|
197
207
|
aggregates: item.data?.aggregates,
|
|
@@ -201,21 +211,26 @@ export class GroupHeaderComponent {
|
|
|
201
211
|
$implicit: item.data
|
|
202
212
|
}">
|
|
203
213
|
</ng-template>
|
|
214
|
+
}
|
|
204
215
|
</td>
|
|
205
|
-
|
|
206
|
-
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LogicalCellDirective, selector: "[kendoGridLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "colIndex", "colSpan", "rowSpan", "groupItem", "dataRowIndex", "dataItem", "detailExpandCell", "headerLabelText"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: FieldAccessorPipe, name: "valueOf" }] });
|
|
207
219
|
}
|
|
208
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupHeaderComponent, decorators: [{
|
|
209
221
|
type: Component,
|
|
210
222
|
args: [{
|
|
211
223
|
selector: '[kendoGridGroupHeader]',
|
|
212
224
|
template: `
|
|
213
|
-
|
|
225
|
+
@if (!skipGroupDecoration) {
|
|
226
|
+
@for (g of prefixGroupCell(item); track $index) {
|
|
214
227
|
<td class="k-group-cell k-table-td k-table-group-td"
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
228
|
+
role="presentation"
|
|
229
|
+
></td>
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
@if (!(skipGroupDecoration && hasGroupHeaderColumn)) {
|
|
233
|
+
<td [attr.colspan]="groupSpan(item)"
|
|
219
234
|
[attr.role]="ariaRole()"
|
|
220
235
|
aria-selected="false"
|
|
221
236
|
class="k-table-td"
|
|
@@ -227,19 +242,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
227
242
|
[groupItem]="item"
|
|
228
243
|
[colSpan]="logicalColSpan()">
|
|
229
244
|
<p class="k-reset">
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
245
|
+
@if (!skipGroupDecoration) {
|
|
246
|
+
<a href="#" tabindex="-1" (click)="toggleGroup(item, $event)"
|
|
247
|
+
role="presentation"
|
|
248
|
+
[attr.title]="groupButtonTitle"
|
|
249
|
+
[attr.aria-label]="groupButtonTitle">
|
|
250
|
+
<kendo-icon-wrapper
|
|
251
|
+
[name]="arrowIcon"
|
|
252
|
+
[svgIcon]="arrowSVGIcon"></kendo-icon-wrapper>
|
|
253
|
+
</a>
|
|
254
|
+
@if (!groupHeaderTemplate(item)) {
|
|
255
|
+
{{groupTitle(item)}}: {{item.data | valueOf:"value": formatForGroup(item)}}
|
|
256
|
+
}
|
|
257
|
+
<ng-template
|
|
243
258
|
[templateContext]="{
|
|
244
259
|
templateRef: groupHeaderTemplate(item),
|
|
245
260
|
group: item.data,
|
|
@@ -250,13 +265,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
250
265
|
expanded: isExpanded,
|
|
251
266
|
$implicit: item.data
|
|
252
267
|
}">
|
|
253
|
-
|
|
254
|
-
|
|
268
|
+
</ng-template>
|
|
269
|
+
}
|
|
255
270
|
</p>
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
271
|
+
@if (isStacked) {
|
|
272
|
+
<div class="k-grid-column-template">
|
|
273
|
+
@for (column of groupHeaderColumns; track column; let index = $index) {
|
|
274
|
+
@if (column.groupHeaderColumnTemplateRef) {
|
|
275
|
+
<div class="k-column-template-item">
|
|
276
|
+
<ng-template [ngTemplateOutlet]="column.groupHeaderColumnTemplateRef"
|
|
260
277
|
[ngTemplateOutletContext]="{
|
|
261
278
|
group: item.data,
|
|
262
279
|
aggregates: item.data?.aggregates,
|
|
@@ -265,24 +282,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
265
282
|
index: item.index,
|
|
266
283
|
$implicit: item.data
|
|
267
284
|
}">
|
|
268
|
-
|
|
285
|
+
</ng-template>
|
|
269
286
|
</div>
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
</div>
|
|
290
|
+
}
|
|
291
|
+
</td>
|
|
292
|
+
}
|
|
293
|
+
@if (hasGroupHeaderColumn && !isStacked) {
|
|
294
|
+
@for (column of groupHeaderColumns; track column; let index = $index) {
|
|
295
|
+
<td
|
|
296
|
+
role="gridcell"
|
|
297
|
+
class="k-table-td"
|
|
298
|
+
aria-selected="false"
|
|
299
|
+
kendoGridLogicalCell
|
|
300
|
+
[logicalRowIndex]="logicalRowIndex"
|
|
301
|
+
[logicalColIndex]="index + 1"
|
|
302
|
+
[logicalSlaveCell]="false"
|
|
303
|
+
[groupItem]="item"
|
|
304
|
+
[colSpan]="1"
|
|
305
|
+
>
|
|
306
|
+
@if (column.groupHeaderColumnTemplateRef) {
|
|
307
|
+
<ng-template [ngTemplateOutlet]="column.groupHeaderColumnTemplateRef"
|
|
286
308
|
[ngTemplateOutletContext]="{
|
|
287
309
|
group: item.data,
|
|
288
310
|
aggregates: item.data?.aggregates,
|
|
@@ -292,11 +314,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
292
314
|
$implicit: item.data
|
|
293
315
|
}">
|
|
294
316
|
</ng-template>
|
|
317
|
+
}
|
|
295
318
|
</td>
|
|
296
|
-
|
|
297
|
-
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
`,
|
|
298
322
|
standalone: true,
|
|
299
|
-
imports: [
|
|
323
|
+
imports: [LogicalCellDirective, IconWrapperComponent, TemplateContextDirective, NgTemplateOutlet, FieldAccessorPipe]
|
|
300
324
|
}]
|
|
301
325
|
}], ctorParameters: () => [{ type: i1.GroupsService }, { type: i2.GroupInfoService }, { type: i3.ContextService }], propDecorators: { rowIndex: [{
|
|
302
326
|
type: Input
|
|
@@ -16,10 +16,9 @@ import { ContextService } from '../common/provider.service';
|
|
|
16
16
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
17
17
|
import { ChipComponent, ChipListComponent } from '@progress/kendo-angular-buttons';
|
|
18
18
|
import { closest } from '../rendering/common/dom-queries';
|
|
19
|
-
import { DraggableDirective, EventsOutsideAngularDirective, Keys,
|
|
19
|
+
import { DraggableDirective, EventsOutsideAngularDirective, Keys, normalizeKeys } from '@progress/kendo-angular-common';
|
|
20
20
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
21
21
|
import { DraggableColumnDirective } from '../dragdrop/draggable-column.directive';
|
|
22
|
-
import { NgIf, NgFor } from '@angular/common';
|
|
23
22
|
import * as i0 from "@angular/core";
|
|
24
23
|
import * as i1 from "../dragdrop/drag-hint.service";
|
|
25
24
|
import * as i2 from "../dragdrop/drop-cue.service";
|
|
@@ -176,7 +175,7 @@ export class GroupPanelComponent {
|
|
|
176
175
|
});
|
|
177
176
|
}
|
|
178
177
|
handleKeyDown = (e) => {
|
|
179
|
-
const code =
|
|
178
|
+
const code = normalizeKeys(e);
|
|
180
179
|
if (code === Keys.ArrowDown || code === Keys.ArrowUp) {
|
|
181
180
|
e.preventDefault();
|
|
182
181
|
const relatedItemType = e.target.matches(':first-child') ? 'next' : 'previous';
|
|
@@ -289,26 +288,27 @@ export class GroupPanelComponent {
|
|
|
289
288
|
}
|
|
290
289
|
}
|
|
291
290
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPanelComponent, deps: [{ token: i1.DragHintService }, { token: i2.DropCueService }, { token: i3.GroupInfoService }, { token: i4.ContextService }, { token: i0.ChangeDetectorRef }, { token: i5.PopupService }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
292
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
293
|
-
|
|
294
|
-
|
|
291
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GroupPanelComponent, isStandalone: true, selector: "kendo-grid-group-panel", inputs: { text: "text", navigable: "navigable", groups: "groups" }, outputs: { change: "change" }, host: { properties: { "class.k-grouping-header": "this.groupHeaderClass" } }, viewQueries: [{ propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }], ngImport: i0, template: `
|
|
292
|
+
@if (groups.length === 0) {
|
|
293
|
+
<div
|
|
295
294
|
class="k-grouping-drop-container"
|
|
296
295
|
[context]="{
|
|
297
296
|
lastTarget: true
|
|
298
297
|
}"
|
|
299
298
|
kendoDropTarget
|
|
300
|
-
|
|
299
|
+
>
|
|
301
300
|
{{ text }}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
301
|
+
</div>
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
@if (groups.length !== 0) {
|
|
305
|
+
<kendo-chiplist
|
|
306
306
|
[navigable]="navigable"
|
|
307
307
|
role="none"
|
|
308
308
|
[orientation]="null"
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
309
|
+
>
|
|
310
|
+
@for (group of groups; track group; let index = $index; let first = $first; let last = $last) {
|
|
311
|
+
<kendo-chip
|
|
312
312
|
#chip
|
|
313
313
|
kendoDropTarget
|
|
314
314
|
kendoDraggableColumn
|
|
@@ -333,43 +333,46 @@ export class GroupPanelComponent {
|
|
|
333
333
|
(remove)="remove(group)"
|
|
334
334
|
(menuToggle)="toggleMenu(chip, first, last, group.field)"
|
|
335
335
|
(keydown.alt.arrowdown)="$event.preventDefault(); toggleMenu(chip, first, last, group.field)"
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
336
|
+
>
|
|
337
|
+
</kendo-chip>
|
|
338
|
+
}
|
|
339
|
+
</kendo-chiplist>
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
@if (groups.length !== 0) {
|
|
343
|
+
<div
|
|
342
344
|
class="k-grouping-drop-container"
|
|
343
345
|
[context]="{
|
|
344
346
|
lastTarget: true
|
|
345
347
|
}"
|
|
346
348
|
kendoDropTarget
|
|
347
|
-
|
|
348
|
-
|
|
349
|
+
> </div>
|
|
350
|
+
}
|
|
351
|
+
|
|
349
352
|
<ng-template #defaultTemplate>
|
|
350
353
|
<ul unselectable="on" role="menu" class="k-group k-menu-group k-reset k-menu-group-md" [kendoEventsOutsideAngular]="{
|
|
351
354
|
keydown: handleKeyDown,
|
|
352
355
|
click: handleClick
|
|
353
356
|
}">
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
357
|
+
<li role="menuitem" unselectable="on" class="k-item k-menu-item" [attr.aria-disabled]="first">
|
|
358
|
+
<span class="k-link k-menu-link" [class.k-disabled]="first">
|
|
359
|
+
<kendo-icon-wrapper
|
|
360
|
+
[name]="rtl ? 'arrow-right' : 'arrow-left'"
|
|
361
|
+
[svgIcon]="rtl ? arrowRightIcon : arrowLeftIcon"></kendo-icon-wrapper>
|
|
362
|
+
<span class="k-menu-link-text">{{messageFor('groupChipMenuPrevious')}}</span>
|
|
363
|
+
</span>
|
|
364
|
+
</li>
|
|
365
|
+
<li role="menuitem" unselectable="on" class="k-item k-menu-item" [attr.aria-disabled]="last">
|
|
366
|
+
<span class="k-link k-menu-link" [class.k-disabled]="last">
|
|
367
|
+
<kendo-icon-wrapper
|
|
368
|
+
[name]="rtl ? 'arrow-left' : 'arrow-right'"
|
|
369
|
+
[svgIcon]="rtl ? arrowLeftIcon : arrowRightIcon"></kendo-icon-wrapper>
|
|
370
|
+
<span class="k-menu-link-text">{{messageFor('groupChipMenuNext')}}</span>
|
|
371
|
+
</span>
|
|
372
|
+
</li>
|
|
373
|
+
</ul>
|
|
371
374
|
</ng-template>
|
|
372
|
-
|
|
375
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { kind: "component", type: ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["orientation", "selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "component", type: ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarSettings", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { kind: "directive", type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
373
376
|
}
|
|
374
377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPanelComponent, decorators: [{
|
|
375
378
|
type: Component,
|
|
@@ -377,25 +380,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
377
380
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
378
381
|
selector: 'kendo-grid-group-panel',
|
|
379
382
|
template: `
|
|
380
|
-
|
|
381
|
-
|
|
383
|
+
@if (groups.length === 0) {
|
|
384
|
+
<div
|
|
382
385
|
class="k-grouping-drop-container"
|
|
383
386
|
[context]="{
|
|
384
387
|
lastTarget: true
|
|
385
388
|
}"
|
|
386
389
|
kendoDropTarget
|
|
387
|
-
|
|
390
|
+
>
|
|
388
391
|
{{ text }}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
392
|
+
</div>
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
@if (groups.length !== 0) {
|
|
396
|
+
<kendo-chiplist
|
|
393
397
|
[navigable]="navigable"
|
|
394
398
|
role="none"
|
|
395
399
|
[orientation]="null"
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
400
|
+
>
|
|
401
|
+
@for (group of groups; track group; let index = $index; let first = $first; let last = $last) {
|
|
402
|
+
<kendo-chip
|
|
399
403
|
#chip
|
|
400
404
|
kendoDropTarget
|
|
401
405
|
kendoDraggableColumn
|
|
@@ -420,45 +424,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
420
424
|
(remove)="remove(group)"
|
|
421
425
|
(menuToggle)="toggleMenu(chip, first, last, group.field)"
|
|
422
426
|
(keydown.alt.arrowdown)="$event.preventDefault(); toggleMenu(chip, first, last, group.field)"
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
427
|
+
>
|
|
428
|
+
</kendo-chip>
|
|
429
|
+
}
|
|
430
|
+
</kendo-chiplist>
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
@if (groups.length !== 0) {
|
|
434
|
+
<div
|
|
429
435
|
class="k-grouping-drop-container"
|
|
430
436
|
[context]="{
|
|
431
437
|
lastTarget: true
|
|
432
438
|
}"
|
|
433
439
|
kendoDropTarget
|
|
434
|
-
|
|
435
|
-
|
|
440
|
+
> </div>
|
|
441
|
+
}
|
|
442
|
+
|
|
436
443
|
<ng-template #defaultTemplate>
|
|
437
444
|
<ul unselectable="on" role="menu" class="k-group k-menu-group k-reset k-menu-group-md" [kendoEventsOutsideAngular]="{
|
|
438
445
|
keydown: handleKeyDown,
|
|
439
446
|
click: handleClick
|
|
440
447
|
}">
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
448
|
+
<li role="menuitem" unselectable="on" class="k-item k-menu-item" [attr.aria-disabled]="first">
|
|
449
|
+
<span class="k-link k-menu-link" [class.k-disabled]="first">
|
|
450
|
+
<kendo-icon-wrapper
|
|
451
|
+
[name]="rtl ? 'arrow-right' : 'arrow-left'"
|
|
452
|
+
[svgIcon]="rtl ? arrowRightIcon : arrowLeftIcon"></kendo-icon-wrapper>
|
|
453
|
+
<span class="k-menu-link-text">{{messageFor('groupChipMenuPrevious')}}</span>
|
|
454
|
+
</span>
|
|
455
|
+
</li>
|
|
456
|
+
<li role="menuitem" unselectable="on" class="k-item k-menu-item" [attr.aria-disabled]="last">
|
|
457
|
+
<span class="k-link k-menu-link" [class.k-disabled]="last">
|
|
458
|
+
<kendo-icon-wrapper
|
|
459
|
+
[name]="rtl ? 'arrow-left' : 'arrow-right'"
|
|
460
|
+
[svgIcon]="rtl ? arrowLeftIcon : arrowRightIcon"></kendo-icon-wrapper>
|
|
461
|
+
<span class="k-menu-link-text">{{messageFor('groupChipMenuNext')}}</span>
|
|
462
|
+
</span>
|
|
463
|
+
</li>
|
|
464
|
+
</ul>
|
|
458
465
|
</ng-template>
|
|
459
|
-
|
|
466
|
+
`,
|
|
460
467
|
standalone: true,
|
|
461
|
-
imports: [
|
|
468
|
+
imports: [DropTargetDirective, ChipListComponent, ChipComponent, DraggableColumnDirective, DraggableDirective, EventsOutsideAngularDirective, IconWrapperComponent]
|
|
462
469
|
}]
|
|
463
470
|
}], ctorParameters: () => [{ type: i1.DragHintService }, { type: i2.DropCueService }, { type: i3.GroupInfoService }, { type: i4.ContextService }, { type: i0.ChangeDetectorRef }, { type: i5.PopupService }, { type: i0.NgZone }, { type: i0.Renderer2 }], propDecorators: { change: [{
|
|
464
471
|
type: Output
|
package/esm2022/index.mjs
CHANGED
|
@@ -218,3 +218,4 @@ export { GridTableDirective } from './rendering/grid-table.directive';
|
|
|
218
218
|
// Needed as it is an optional injection of the FilterService
|
|
219
219
|
export { MenuTabbingService } from './filtering/menu/menu-tabbing.service';
|
|
220
220
|
export * from './rendering/toolbar/tools/ai-assistant/models';
|
|
221
|
+
export { AdaptiveGridService } from './common/adaptiveness.service';
|
|
@@ -11,7 +11,7 @@ import { GridFocusableElement } from './grid-focusable-element';
|
|
|
11
11
|
import { NavigationCursor } from './navigation-cursor';
|
|
12
12
|
import { NavigationModel } from './navigation-model';
|
|
13
13
|
import { DomEventsService } from '../common/dom-events.service';
|
|
14
|
-
import { hasClasses, isDocumentAvailable, isPresent, Keys,
|
|
14
|
+
import { hasClasses, isDocumentAvailable, isPresent, Keys, normalizeKeys } from '@progress/kendo-angular-common';
|
|
15
15
|
import { EditService } from '../editing/edit.service';
|
|
16
16
|
import { GroupsService } from '../grouping/groups.service';
|
|
17
17
|
import { PagerContextService } from '@progress/kendo-angular-pager';
|
|
@@ -510,7 +510,7 @@ export class NavigationService {
|
|
|
510
510
|
}
|
|
511
511
|
const row = this.cursor.row;
|
|
512
512
|
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
513
|
-
const code =
|
|
513
|
+
const code = normalizeKeys(args);
|
|
514
514
|
// Handle row reordering keyboard shortcuts (Ctrl/Cmd + Shift + Up/Down Arrow)
|
|
515
515
|
if (modifier && args.shiftKey && (code === Keys.ArrowUp || code === Keys.ArrowDown)) {
|
|
516
516
|
if (this.handleRowReorderKeyboard(args, code, row)) {
|
|
@@ -704,7 +704,7 @@ export class NavigationService {
|
|
|
704
704
|
return;
|
|
705
705
|
}
|
|
706
706
|
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
707
|
-
const code =
|
|
707
|
+
const code = normalizeKeys(args);
|
|
708
708
|
const confirm = !args.defaultPrevented && code === Keys.Enter && isTextInput(args.target);
|
|
709
709
|
if (code === Keys.Escape || code === Keys.F2 || confirm) {
|
|
710
710
|
if (this.tableCellEntered && code === Keys.F2 && this.activeRow.dataRowIndex > -1) {
|
|
@@ -728,7 +728,7 @@ export class NavigationService {
|
|
|
728
728
|
onCellKeydown(args) {
|
|
729
729
|
if (this.editService.isEditingCell()) {
|
|
730
730
|
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
731
|
-
const code =
|
|
731
|
+
const code = normalizeKeys(args);
|
|
732
732
|
const confirm = code === Keys.Enter;
|
|
733
733
|
const cancel = code === Keys.Escape;
|
|
734
734
|
const navigate = isNavigationKey(code);
|
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: '21.
|
|
13
|
+
publishDate: 1764593065,
|
|
14
|
+
version: '21.2.0-develop.10',
|
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
16
16
|
};
|