@progress/kendo-angular-grid 20.1.0-develop.2 → 20.1.0-develop.21
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/column-menu/column-list.component.d.ts +0 -2
- package/columns/column.component.d.ts +8 -1
- package/columns/command-column.component.d.ts +1 -1
- package/columns/span-column.component.d.ts +1 -1
- package/editing/cancel-command.directive.d.ts +1 -1
- package/editing/edit-row-options.interface.d.ts +1 -1
- package/editing/edit-template.directive.d.ts +1 -1
- package/editing/remove-command.directive.d.ts +1 -1
- package/editing/save-command.directive.d.ts +1 -1
- package/editing-directives/edit-service.interface.d.ts +2 -2
- package/editing-directives/external-editing.directive.d.ts +1 -1
- package/editing-directives/in-cell-editing.directive.d.ts +1 -1
- package/editing-directives/reactive-editing.directive.d.ts +1 -1
- package/editing-directives/template-editing.directive.d.ts +1 -1
- package/esm2022/column-menu/column-list-kb-nav.service.mjs +1 -1
- package/esm2022/column-menu/column-list.component.mjs +7 -43
- package/esm2022/column-menu/column-menu-container.component.mjs +10 -1
- package/esm2022/column-menu/column-menu.component.mjs +7 -1
- package/esm2022/columns/column.component.mjs +9 -1
- package/esm2022/columns/command-column.component.mjs +1 -1
- package/esm2022/columns/span-column.component.mjs +1 -1
- package/esm2022/common/clipboard.directive.mjs +3 -0
- package/esm2022/editing/cancel-command.directive.mjs +1 -1
- package/esm2022/editing/edit-template.directive.mjs +1 -1
- package/esm2022/editing/remove-command.directive.mjs +1 -1
- package/esm2022/editing/save-command.directive.mjs +1 -1
- package/esm2022/editing-directives/external-editing.directive.mjs +1 -1
- package/esm2022/editing-directives/in-cell-editing.directive.mjs +1 -1
- package/esm2022/editing-directives/reactive-editing.directive.mjs +1 -1
- package/esm2022/editing-directives/template-editing.directive.mjs +1 -1
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +120 -31
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +2 -2
- package/esm2022/filtering/menu/filter-menu.component.mjs +11 -7
- package/esm2022/filtering/multicheckbox-filter.component.mjs +268 -0
- package/esm2022/grid.component.mjs +21 -3
- package/esm2022/index.mjs +1 -0
- package/esm2022/localization/messages.mjs +28 -1
- package/esm2022/navigation/logical-cell.directive.mjs +8 -2
- package/esm2022/navigation/navigation.service.mjs +1 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/common/field-accessor.pipe.mjs +1 -1
- package/esm2022/rendering/common/format.pipe.mjs +37 -0
- package/esm2022/rendering/header/header.component.mjs +1 -1
- package/esm2022/rendering/list.component.mjs +18 -2
- package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +1 -1
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +1 -1
- package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +2 -2
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +1 -1
- package/esm2022/scrolling/scroller.service.mjs +0 -3
- package/fesm2022/progress-kendo-angular-grid.mjs +556 -132
- package/filtering/filterable.d.ts +23 -0
- package/filtering/menu/filter-menu-container.component.d.ts +5 -1
- package/filtering/menu/filter-menu.component.d.ts +3 -4
- package/filtering/multicheckbox-filter.component.d.ts +41 -0
- package/grid.component.d.ts +3 -3
- package/index.d.ts +1 -0
- package/localization/messages.d.ts +22 -1
- package/navigation/navigation.service.d.ts +1 -0
- package/package.json +21 -21
- package/rendering/common/format.pipe.d.ts +17 -0
- package/rendering/list.component.d.ts +1 -0
- package/schematics/ngAdd/index.js +4 -4
|
@@ -58,7 +58,6 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
|
|
|
58
58
|
ngOnInit(): void;
|
|
59
59
|
ngAfterViewInit(): void;
|
|
60
60
|
ngOnChanges(changes: SimpleChanges): void;
|
|
61
|
-
onSelectAllClick(e: any): void;
|
|
62
61
|
onSelectAllCheckboxChange(checkedState: any): void;
|
|
63
62
|
ngOnDestroy(): void;
|
|
64
63
|
cancelChanges(): void;
|
|
@@ -70,7 +69,6 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
|
|
|
70
69
|
private disableFirstUnlockedCheckedCheckbox;
|
|
71
70
|
private enableLastDisabledColumn;
|
|
72
71
|
private setDisabledState;
|
|
73
|
-
checkBoxClick(e: any): void;
|
|
74
72
|
onCheckboxChange(checkedState: any, column: any, _index: number): void;
|
|
75
73
|
private setTabindex;
|
|
76
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnListComponent, [null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
@@ -14,6 +14,7 @@ import { FilterCellTemplateDirective } from '../filtering/cell/filter-cell-templ
|
|
|
14
14
|
import { FilterMenuTemplateDirective } from '../filtering/menu/filter-menu-template.directive';
|
|
15
15
|
import { IdService } from '../common/id.service';
|
|
16
16
|
import { FieldDataType } from '../common/field-datatype';
|
|
17
|
+
import { FilterVariant, FilterVariantSettings } from '../filtering/filterable';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
19
|
/**
|
|
19
20
|
* @hidden
|
|
@@ -72,6 +73,12 @@ export declare class ColumnComponent extends ColumnBase {
|
|
|
72
73
|
* @default 'text'
|
|
73
74
|
*/
|
|
74
75
|
filter: FieldDataType;
|
|
76
|
+
/**
|
|
77
|
+
* Specifies the filter type for the filter menu UI.
|
|
78
|
+
*
|
|
79
|
+
* @default 'default'
|
|
80
|
+
*/
|
|
81
|
+
filterVariant: FilterVariant | FilterVariantSettings;
|
|
75
82
|
/**
|
|
76
83
|
* Shows or hides the filter UI for this column. [See example](slug:filtering_grid).
|
|
77
84
|
*
|
|
@@ -101,5 +108,5 @@ export declare class ColumnComponent extends ColumnBase {
|
|
|
101
108
|
get filterMenuTemplateRef(): TemplateRef<any>;
|
|
102
109
|
get displayTitle(): string;
|
|
103
110
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnComponent, [{ optional: true; host: true; skipSelf: true; }, { optional: true; }]>;
|
|
104
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnComponent, "kendo-grid-column", never, { "field": { "alias": "field"; "required": false; }; "format": { "alias": "format"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "groupable": { "alias": "groupable"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; }, {}, ["template", "groupHeaderTemplate", "groupHeaderColumnTemplate", "groupFooterTemplate", "editTemplate", "filterCellTemplate", "filterMenuTemplate"], never, true, never>;
|
|
111
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnComponent, "kendo-grid-column", never, { "field": { "alias": "field"; "required": false; }; "format": { "alias": "format"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "groupable": { "alias": "groupable"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterVariant": { "alias": "filterVariant"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; }, {}, ["template", "groupHeaderTemplate", "groupHeaderColumnTemplate", "groupFooterTemplate", "editTemplate", "filterCellTemplate", "filterMenuTemplate"], never, true, never>;
|
|
105
112
|
}
|
|
@@ -10,7 +10,7 @@ import { CellRowspanFn } from './cell-rowspan';
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
/**
|
|
12
12
|
* Represents the command columns of the Grid. Define the content of the column inside an `<ng-template>` tag.
|
|
13
|
-
* For more information and examples, see the [
|
|
13
|
+
* For more information and examples, see the [Editing Action Buttons](slug:basics_editing_grid#editing-action-buttons) article.
|
|
14
14
|
*
|
|
15
15
|
* @example
|
|
16
16
|
* ```html
|
|
@@ -74,7 +74,7 @@ export declare class SpanColumnComponent extends ColumnBase {
|
|
|
74
74
|
includeInChooser: boolean;
|
|
75
75
|
/**
|
|
76
76
|
* Sets whether the edit template of the column is rendered.
|
|
77
|
-
* To enable editing for a spanned column, set an edit template for it ([see example](slug:
|
|
77
|
+
* To enable editing for a spanned column, set an edit template for it ([see example](slug:custom_editors_grid#setting-up-custom-editors)).
|
|
78
78
|
* @default false
|
|
79
79
|
*/
|
|
80
80
|
set editable(value: boolean);
|
|
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
/**
|
|
12
12
|
* Represents the `cancel` command of the Grid. Apply this directive to any `button`
|
|
13
13
|
* element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
14
|
-
* ([see example](slug:
|
|
14
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
15
15
|
*
|
|
16
16
|
* When a button with this directive is clicked, the
|
|
17
17
|
* [`cancel`]({% slug api_grid_gridcomponent %}#toc-cancel) event
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
/**
|
|
6
|
-
* Provides additional options for the [`editRow`]({% slug api_grid_gridcomponent %}#toc-editrow) method. [See example](
|
|
6
|
+
* Provides additional options for the [`editRow`]({% slug api_grid_gridcomponent %}#toc-editrow) method. [See example](slug:inline_editing_grid#managing-focus).
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* ```typescript
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { TemplateRef } from '@angular/core';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
/**
|
|
8
|
-
* Lets you customize the content of edited cells by providing a column edit-cell template for the Grid ([see example](slug:
|
|
8
|
+
* Lets you customize the content of edited cells by providing a column edit-cell template for the Grid ([see example](slug:custom_editors_grid#setting-up-custom-editors)).
|
|
9
9
|
* Place an `<ng-template>` tag with the `kendoGridEditTemplate` directive inside a `<kendo-grid-column>` tag to define the template.
|
|
10
10
|
*
|
|
11
11
|
* The template context includes:
|
|
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
/**
|
|
12
12
|
* Represents the `remove` command of the Grid. Apply this directive to any `button` element
|
|
13
13
|
* inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
14
|
-
* ([see example](slug:
|
|
14
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
15
15
|
* When you click the button with this directive, the
|
|
16
16
|
* [`remove`]({% slug api_grid_gridcomponent %}#toc-remove) event fires.
|
|
17
17
|
* The button with `kendoGridRemoveCommand` is automatically hidden when the row is in edit mode.
|
|
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
/**
|
|
12
12
|
* Represents the `save` command of the Grid. Apply this directive to any `button`
|
|
13
13
|
* element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
14
|
-
* ([see example](slug:
|
|
14
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
15
15
|
* When you click the button with this directive, the
|
|
16
16
|
* [`save`]({% slug api_grid_gridcomponent %}#toc-save) event fires.
|
|
17
17
|
* The button with `kendoGridSaveCommand` is automatically hidden when the row is not in edit mode.
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* The interface which must be extended when creating custom edit service.
|
|
7
7
|
* This interface defines the methods that a custom editing service should implement to handle create, update, and remove operations on grid items.
|
|
8
|
-
* Set the custom edit service to the `editService` input of the respective editing directive
|
|
9
|
-
* [See
|
|
8
|
+
* Set the custom edit service to the `editService` input of the respective editing directive
|
|
9
|
+
* [See example](slug:custom_editing_service_grid).
|
|
10
10
|
*/
|
|
11
11
|
export interface EditService {
|
|
12
12
|
/**
|
|
@@ -13,7 +13,7 @@ import { AdaptiveGridService } from '../common/adaptiveness.service';
|
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
/**
|
|
15
15
|
* Represents the Kendo UI Grid external editing directive. The directive manages editing operations in the Grid when using the
|
|
16
|
-
* External Form ([see example](slug:
|
|
16
|
+
* External Form ([see example](slug:external_editing_grid#quick-setup)).
|
|
17
17
|
*
|
|
18
18
|
* @example
|
|
19
19
|
* ```typescript
|
|
@@ -9,7 +9,7 @@ import { LocalDataChangesService } from '../editing/local-data-changes.service';
|
|
|
9
9
|
import { CreateFormGroup } from '../common/create-form-group';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
/**
|
|
12
|
-
* Represent the directive that manages in-cell editing operations in the Grid when using Reactive Forms ([see example](
|
|
12
|
+
* Represent the directive that manages in-cell editing operations in the Grid when using Reactive Forms ([see example](slug:editing_incell_grid#quick-setup)).
|
|
13
13
|
*
|
|
14
14
|
* @example
|
|
15
15
|
* ```html
|
|
@@ -8,7 +8,7 @@ import { LocalDataChangesService } from '../editing/local-data-changes.service';
|
|
|
8
8
|
import { CreateFormGroup } from '../common/create-form-group';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
/**
|
|
11
|
-
* Represents the directive that manages editing operations in the Grid when using Reactive Forms ([see example](slug:
|
|
11
|
+
* Represents the directive that manages editing operations in the Grid when using Reactive Forms ([see example](slug:inline_editing_grid#using-reactive-forms)).
|
|
12
12
|
*
|
|
13
13
|
* @example
|
|
14
14
|
* ```html
|
|
@@ -7,7 +7,7 @@ import { GridComponent } from '../grid.component';
|
|
|
7
7
|
import { LocalDataChangesService } from '../editing/local-data-changes.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
/**
|
|
10
|
-
* Represents the directive that manages editing operations in the Grid when using Template-Driven Angular Forms ([see example](
|
|
10
|
+
* Represents the directive that manages editing operations in the Grid when using Template-Driven Angular Forms ([see example](slug:inline_editing_grid#using-template-driven-forms)).
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```html
|
|
@@ -27,7 +27,7 @@ export class ColumnListKeyboardNavigation {
|
|
|
27
27
|
toggle(index, active) {
|
|
28
28
|
const element = this.items[index]?.hostElement.nativeElement.closest('.k-column-list-item');
|
|
29
29
|
element && this.renderer.setAttribute(element, 'tabindex', active ? '0' : '-1');
|
|
30
|
-
active && element?.focus();
|
|
30
|
+
active && element?.focus({ preventScroll: true });
|
|
31
31
|
}
|
|
32
32
|
toggleCheckedState() {
|
|
33
33
|
this.items[this.activeIndex].hostElement.nativeElement.closest('.k-column-list-item').firstElementChild.click();
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { Component, HostBinding, Input, ElementRef, NgZone, Renderer2, Output, EventEmitter, ViewChildren, QueryList, Optional, ChangeDetectorRef } from '@angular/core';
|
|
6
6
|
import { ColumnMenuService } from './column-menu.service';
|
|
7
7
|
import { ColumnListKeyboardNavigation } from './column-list-kb-nav.service';
|
|
8
|
-
import {
|
|
8
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
|
9
9
|
import { Subscription } from 'rxjs';
|
|
10
10
|
import { NgFor, NgIf } from '@angular/common';
|
|
11
11
|
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
|
@@ -136,15 +136,6 @@ export class ColumnListComponent {
|
|
|
136
136
|
this.service.menuTabbingService.lastFocusable = this.applyButton.nativeElement;
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
onSelectAllClick(e) {
|
|
140
|
-
if (e.target.classList.contains('k-checkbox')) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
e.preventDefault();
|
|
144
|
-
const label = e.target.closest('.k-column-list-item');
|
|
145
|
-
const input = label?.querySelector('input');
|
|
146
|
-
input.click();
|
|
147
|
-
}
|
|
148
139
|
onSelectAllCheckboxChange(checkedState) {
|
|
149
140
|
if (!checkedState && !this.allowHideAll) {
|
|
150
141
|
const columnsToKeep = [];
|
|
@@ -326,25 +317,6 @@ export class ColumnListComponent {
|
|
|
326
317
|
});
|
|
327
318
|
}
|
|
328
319
|
}
|
|
329
|
-
checkBoxClick(e) {
|
|
330
|
-
const closestItem = e.target.closest('.k-column-list-item');
|
|
331
|
-
if (!closestItem)
|
|
332
|
-
return;
|
|
333
|
-
const checkboxElement = closestItem.querySelector('.k-checkbox-wrap');
|
|
334
|
-
const input = checkboxElement?.querySelector('input');
|
|
335
|
-
if (e.target === input) {
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
e.preventDefault();
|
|
339
|
-
if (input) {
|
|
340
|
-
const index = parseInt(input.getAttribute('data-index'), 10);
|
|
341
|
-
const column = this.filteredColumns[index];
|
|
342
|
-
const isDisabled = checkboxElement.classList.contains('k-disabled');
|
|
343
|
-
if (column && !isDisabled) {
|
|
344
|
-
input.click();
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
320
|
onCheckboxChange(checkedState, column, _index) {
|
|
349
321
|
column.currentlyChecked = checkedState;
|
|
350
322
|
if (this.autoSync) {
|
|
@@ -378,9 +350,7 @@ export class ColumnListComponent {
|
|
|
378
350
|
<label
|
|
379
351
|
*ngIf="showSelectAll"
|
|
380
352
|
class='k-column-list-item'
|
|
381
|
-
role="option"
|
|
382
|
-
[kendoEventsOutsideAngular]="{click: onSelectAllClick}"
|
|
383
|
-
[scope]="this">
|
|
353
|
+
role="option">
|
|
384
354
|
<kendo-checkbox
|
|
385
355
|
#checkbox
|
|
386
356
|
[inputAttributes]="{'data-index': '0'}"
|
|
@@ -393,9 +363,7 @@ export class ColumnListComponent {
|
|
|
393
363
|
<label
|
|
394
364
|
*ngFor="let column of filteredColumns; let index = index;"
|
|
395
365
|
class='k-column-list-item'
|
|
396
|
-
role="option"
|
|
397
|
-
[kendoEventsOutsideAngular]="{click: checkBoxClick}"
|
|
398
|
-
[scope]="this">
|
|
366
|
+
role="option">
|
|
399
367
|
<kendo-checkbox
|
|
400
368
|
#checkbox
|
|
401
369
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
@@ -406,7 +374,7 @@ export class ColumnListComponent {
|
|
|
406
374
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
407
375
|
</label>
|
|
408
376
|
</div>
|
|
409
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }
|
|
377
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }] });
|
|
410
378
|
}
|
|
411
379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListComponent, decorators: [{
|
|
412
380
|
type: Component,
|
|
@@ -422,9 +390,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
422
390
|
<label
|
|
423
391
|
*ngIf="showSelectAll"
|
|
424
392
|
class='k-column-list-item'
|
|
425
|
-
role="option"
|
|
426
|
-
[kendoEventsOutsideAngular]="{click: onSelectAllClick}"
|
|
427
|
-
[scope]="this">
|
|
393
|
+
role="option">
|
|
428
394
|
<kendo-checkbox
|
|
429
395
|
#checkbox
|
|
430
396
|
[inputAttributes]="{'data-index': '0'}"
|
|
@@ -437,9 +403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
437
403
|
<label
|
|
438
404
|
*ngFor="let column of filteredColumns; let index = index;"
|
|
439
405
|
class='k-column-list-item'
|
|
440
|
-
role="option"
|
|
441
|
-
[kendoEventsOutsideAngular]="{click: checkBoxClick}"
|
|
442
|
-
[scope]="this">
|
|
406
|
+
role="option">
|
|
443
407
|
<kendo-checkbox
|
|
444
408
|
#checkbox
|
|
445
409
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
@@ -452,7 +416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
452
416
|
</div>
|
|
453
417
|
`,
|
|
454
418
|
standalone: true,
|
|
455
|
-
imports: [NgFor, NgIf, CheckBoxComponent
|
|
419
|
+
imports: [NgFor, NgIf, CheckBoxComponent]
|
|
456
420
|
}]
|
|
457
421
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.ColumnListKeyboardNavigation }, { type: i0.ChangeDetectorRef }, { type: i2.ColumnInfoService, decorators: [{
|
|
458
422
|
type: Optional
|
|
@@ -6,6 +6,7 @@ import { ColumnMenuItemDirective } from './column-menu-item.directive';
|
|
|
6
6
|
import { Component, ContentChildren, Inject, NgZone, QueryList } from '@angular/core';
|
|
7
7
|
import { take } from 'rxjs/operators';
|
|
8
8
|
import { ColumnMenuService } from './column-menu.service';
|
|
9
|
+
import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "./column-menu.service";
|
|
11
12
|
/**
|
|
@@ -33,7 +34,15 @@ export class ColumnMenuContainerComponent {
|
|
|
33
34
|
else {
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
|
-
this.ngZone.onStable.pipe(take(1)).subscribe(() =>
|
|
37
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
38
|
+
const firstFocusable = this.service.menuTabbingService.firstFocusable;
|
|
39
|
+
if (firstFocusable instanceof DropDownListComponent) {
|
|
40
|
+
firstFocusable.wrapper.nativeElement.focus({ preventScroll: true });
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
firstFocusable?.focus({ preventScroll: true });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
37
46
|
}
|
|
38
47
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuContainerComponent, deps: [{ token: i1.ColumnMenuService }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
48
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuContainerComponent, isStandalone: true, selector: "kendo-grid-columnmenu-container", queries: [{ propertyName: "columnMenuItems", predicate: ColumnMenuItemDirective, descendants: true }], ngImport: i0, template: `
|
|
@@ -353,7 +353,13 @@ export class ColumnMenuComponent {
|
|
|
353
353
|
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
354
354
|
}
|
|
355
355
|
focusRoot() {
|
|
356
|
-
|
|
356
|
+
if (this.isNavigable) {
|
|
357
|
+
this.navigationService.preventScroll = true;
|
|
358
|
+
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
this.anchor.nativeElement.focus({ preventScroll: true });
|
|
362
|
+
}
|
|
357
363
|
}
|
|
358
364
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.NavigationService }, { token: i2.SinglePopupService }, { token: i3.ColumnMenuService }, { token: i4.ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.ColumnInfoService }, { token: i6.IdService, optional: true }, { token: i7.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
359
365
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-grid-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
|
|
@@ -75,6 +75,12 @@ export class ColumnComponent extends ColumnBase {
|
|
|
75
75
|
* @default 'text'
|
|
76
76
|
*/
|
|
77
77
|
filter = 'text';
|
|
78
|
+
/**
|
|
79
|
+
* Specifies the filter type for the filter menu UI.
|
|
80
|
+
*
|
|
81
|
+
* @default 'default'
|
|
82
|
+
*/
|
|
83
|
+
filterVariant = 'default';
|
|
78
84
|
/**
|
|
79
85
|
* Shows or hides the filter UI for this column. [See example](slug:filtering_grid).
|
|
80
86
|
*
|
|
@@ -122,7 +128,7 @@ export class ColumnComponent extends ColumnBase {
|
|
|
122
128
|
return this.title === undefined ? this.field : this.title;
|
|
123
129
|
}
|
|
124
130
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnComponent, deps: [{ token: i1.ColumnBase, host: true, optional: true, skipSelf: true }, { token: i2.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnComponent, isStandalone: true, selector: "kendo-grid-column", inputs: { field: "field", format: "format", sortable: "sortable", groupable: "groupable", editor: "editor", filter: "filter", filterable: "filterable", editable: "editable" }, providers: [
|
|
131
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnComponent, isStandalone: true, selector: "kendo-grid-column", inputs: { field: "field", format: "format", sortable: "sortable", groupable: "groupable", editor: "editor", filter: "filter", filterVariant: "filterVariant", filterable: "filterable", editable: "editable" }, providers: [
|
|
126
132
|
{
|
|
127
133
|
provide: ColumnBase,
|
|
128
134
|
useExisting: forwardRef(() => ColumnComponent)
|
|
@@ -162,6 +168,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
162
168
|
type: Input
|
|
163
169
|
}], filter: [{
|
|
164
170
|
type: Input
|
|
171
|
+
}], filterVariant: [{
|
|
172
|
+
type: Input
|
|
165
173
|
}], filterable: [{
|
|
166
174
|
type: Input
|
|
167
175
|
}], editable: [{
|
|
@@ -11,7 +11,7 @@ import * as i1 from "./column-base";
|
|
|
11
11
|
import * as i2 from "../common/id.service";
|
|
12
12
|
/**
|
|
13
13
|
* Represents the command columns of the Grid. Define the content of the column inside an `<ng-template>` tag.
|
|
14
|
-
* For more information and examples, see the [
|
|
14
|
+
* For more information and examples, see the [Editing Action Buttons](slug:basics_editing_grid#editing-action-buttons) article.
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
17
|
* ```html
|
|
@@ -75,7 +75,7 @@ export class SpanColumnComponent extends ColumnBase {
|
|
|
75
75
|
includeInChooser = false;
|
|
76
76
|
/**
|
|
77
77
|
* Sets whether the edit template of the column is rendered.
|
|
78
|
-
* To enable editing for a spanned column, set an edit template for it ([see example](slug:
|
|
78
|
+
* To enable editing for a spanned column, set an edit template for it ([see example](slug:custom_editors_grid#setting-up-custom-editors)).
|
|
79
79
|
* @default false
|
|
80
80
|
*/
|
|
81
81
|
set editable(value) {
|
|
@@ -136,6 +136,9 @@ export class GridClipboardDirective {
|
|
|
136
136
|
const isPaste = operationType === 'paste';
|
|
137
137
|
const pastedData = args.clipboardData.getData('text');
|
|
138
138
|
const visibleCols = this.host.columns.toArray().filter(c => c.isVisible);
|
|
139
|
+
if (visibleCols.some(c => c.orderIndex > 0)) { // columns have been reordered
|
|
140
|
+
visibleCols.sort((a, b) => a.orderIndex - b.orderIndex);
|
|
141
|
+
}
|
|
139
142
|
const data = isPaste ?
|
|
140
143
|
{
|
|
141
144
|
dataString: pastedData,
|
|
@@ -15,7 +15,7 @@ import * as i2 from "../common/provider.service";
|
|
|
15
15
|
/**
|
|
16
16
|
* Represents the `cancel` command of the Grid. Apply this directive to any `button`
|
|
17
17
|
* element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
18
|
-
* ([see example](slug:
|
|
18
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
19
19
|
*
|
|
20
20
|
* When a button with this directive is clicked, the
|
|
21
21
|
* [`cancel`]({% slug api_grid_gridcomponent %}#toc-cancel) event
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { Directive, TemplateRef, Optional } from '@angular/core';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
/**
|
|
8
|
-
* Lets you customize the content of edited cells by providing a column edit-cell template for the Grid ([see example](slug:
|
|
8
|
+
* Lets you customize the content of edited cells by providing a column edit-cell template for the Grid ([see example](slug:custom_editors_grid#setting-up-custom-editors)).
|
|
9
9
|
* Place an `<ng-template>` tag with the `kendoGridEditTemplate` directive inside a `<kendo-grid-column>` tag to define the template.
|
|
10
10
|
*
|
|
11
11
|
* The template context includes:
|
|
@@ -15,7 +15,7 @@ import * as i2 from "../common/provider.service";
|
|
|
15
15
|
/**
|
|
16
16
|
* Represents the `remove` command of the Grid. Apply this directive to any `button` element
|
|
17
17
|
* inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
18
|
-
* ([see example](slug:
|
|
18
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
19
19
|
* When you click the button with this directive, the
|
|
20
20
|
* [`remove`]({% slug api_grid_gridcomponent %}#toc-remove) event fires.
|
|
21
21
|
* The button with `kendoGridRemoveCommand` is automatically hidden when the row is in edit mode.
|
|
@@ -15,7 +15,7 @@ import * as i2 from "../common/provider.service";
|
|
|
15
15
|
/**
|
|
16
16
|
* Represents the `save` command of the Grid. Apply this directive to any `button`
|
|
17
17
|
* element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
18
|
-
* ([see example](slug:
|
|
18
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
19
19
|
* When you click the button with this directive, the
|
|
20
20
|
* [`save`]({% slug api_grid_gridcomponent %}#toc-save) event fires.
|
|
21
21
|
* The button with `kendoGridSaveCommand` is automatically hidden when the row is not in edit mode.
|
|
@@ -16,7 +16,7 @@ import * as i2 from "../editing/local-data-changes.service";
|
|
|
16
16
|
import * as i3 from "../common/adaptiveness.service";
|
|
17
17
|
/**
|
|
18
18
|
* Represents the Kendo UI Grid external editing directive. The directive manages editing operations in the Grid when using the
|
|
19
|
-
* External Form ([see example](slug:
|
|
19
|
+
* External Form ([see example](slug:external_editing_grid#quick-setup)).
|
|
20
20
|
*
|
|
21
21
|
* @example
|
|
22
22
|
* ```typescript
|
|
@@ -12,7 +12,7 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
import * as i1 from "../grid.component";
|
|
13
13
|
import * as i2 from "../editing/local-data-changes.service";
|
|
14
14
|
/**
|
|
15
|
-
* Represent the directive that manages in-cell editing operations in the Grid when using Reactive Forms ([see example](
|
|
15
|
+
* Represent the directive that manages in-cell editing operations in the Grid when using Reactive Forms ([see example](slug:editing_incell_grid#quick-setup)).
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```html
|
|
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
import * as i1 from "../grid.component";
|
|
12
12
|
import * as i2 from "../editing/local-data-changes.service";
|
|
13
13
|
/**
|
|
14
|
-
* Represents the directive that manages editing operations in the Grid when using Reactive Forms ([see example](slug:
|
|
14
|
+
* Represents the directive that manages editing operations in the Grid when using Reactive Forms ([see example](slug:inline_editing_grid#using-reactive-forms)).
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
17
|
* ```html
|
|
@@ -10,7 +10,7 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
import * as i1 from "../grid.component";
|
|
11
11
|
import * as i2 from "../editing/local-data-changes.service";
|
|
12
12
|
/**
|
|
13
|
-
* Represents the directive that manages editing operations in the Grid when using Template-Driven Angular Forms ([see example](
|
|
13
|
+
* Represents the directive that manages editing operations in the Grid when using Template-Driven Angular Forms ([see example](slug:inline_editing_grid#using-template-driven-forms)).
|
|
14
14
|
*
|
|
15
15
|
* @example
|
|
16
16
|
* ```html
|